Você está na página 1de 28

Captulo 8

Metodologa OMT
8.1 El Modelo de Objetos

Captura la estructura esttica del sistema, mostrando: objetos relaciones entre objetos atributos operaciones Es el ms importante, puesto que el sistema se construye alrededor de los objetos. Conceptos, notacin y ejemplos.

8.1.1

Objetos y Clases

Concepto, abstraccin o cosa con fronteras denidas y signicado para nuestro problema. Permite una mejor comprensin del mundo y proporciona la base para una implementacin sobre el ordenador. No existe una representacin exacta. Todos los objetos tienen una identidad y son distinguibles.

8.1.2

Clase:

Describe grupos de objetos con propiedades (atributos) similares, comportamiento (operaciones) comunes, relaciones con otros objetos y semntica comn. Cada objeto sabe cul es su clase, ya que es una instancia de la misma. Elemento esencial para la abstraccin y generalizacin.

8.1.3

Diagrama de Objetos

Notacin grca para modelar los objetos, clases y sus relaciones. Dos clase de diagrama: 247

CAPTULO 8. METODOLOGA OMT De clases De objetos (instancias) Diagrama de clases

248

Esquema, patrn o plantilla para describir muchos casos posibles de datos. Describe clases de objetos. Diagrama de objetos Describe cmo se relacionan un grupo particular de objetos entre s.

8.1.4

Notacin de clases y objetos Atributos

Valor de un dato dentro de un objeto. Cada atributo tiene un valor para cada objeto. El nombre de un atributo es nico dentro de una clase. Debera ser un dato puro, no un objeto (no tiene identidad). Si un objeto necesita otro objeto habr que modelarlo como asociacin. Adems del nombre podemos especicar el Tipo y el Valor por defecto. Los identicadores de objetos explcitos no se necesitan en el Modelo de Objetos.
CLASES OBJETOS

EMPLEADO

(EMPLEADO) OSCAR

(EMPLEADO) MARA

(EMPLEADO) RUBEN

Figura~8.1: Notacin de Clases y Objetos

8.1.5

Notacin de atributos Operaciones y Mtodos

Funcin o transformacin que se aplica a o por los objetos en una clase. Tienen un objeto destino como argumento implcito (el objeto actual). Polimorsmo: la misma operacin puede aplicarse a clases diferentes dentro de una jerarqua de herencia. Mtodo: implementacin de una operacin para una clase. Las operaciones con mtodos en varias clases deben compartir la misma signatura (tipos de sus argumentos y valor que devuelven).

8.1.6

Notacin de operaciones y mtodos

Se describe en el primer cuadrante el Nombre de la Clase, luego, en el segundo, los atributos de dicha clase, nalmente, en el ultimo se detallan las operaciones que intervienen en la Clase. Como lo podemos apreciar en la gura siguiente.

CAPTULO 8. METODOLOGA OMT


Nombre de Clae Nombre atgributo-1 Nombre atributo-2 Operacin 1 Operacion 2 ......

249

Figura~8.2: Notacin de Clase, Atributos y Operaciones

8.1.7
Enlace

Enlaces y Asociaciones

Conexin fsica o conceptual entre objetos. Asociacin Grupo de enlaces con la misma estructura y semntica comn. Sentido de una asociacin: Inherentemente son bidireccionales. directa (forward) e inversa (inverse). Implementacin comn en los lenguajes de programacin mediante punteros o referencias, aunque en la fase de modelizacin no es recomendable esta prctica. Las asociaciones pueden ser binarias, ternarias o de rdenes superiores y los nombres de las asociaciones son opcionales en la notacin (se escriben en cursiva).
Pas Nombre tiene-capital Ciudad Nombre Diagramas de Clases

(Pas) Canada

tiene-capital

(Ciudad) Otawa Diagramas de Casos

(Pas) Per

tiene-capital

(Ciudad) Lima

Figura~8.3: Diagrama de Clase y de Casos

CAPTULO 8. METODOLOGA OMT

250

8.1.8

Multiplicidad

La multiplicidad especica cuntos objetos de una clase pueden relacionarse con un nico objeto de una clase asociada. Se especica mediante: Un subconjunto (posiblemente innito) de enteros no negativos: 0..n. Uno o varios intervalos no conexo: 1..4, 7. No debemos preocuparnos de ajustar la multiplicidad demasiado pronto en nuestro Modelo de Objetos. En los Diagrama de Objetos la multiplicidad se especica mediante smbolos especiales en los extremos de las lneas de las asociaciones.
Association 0..n

Association

0,1

1 1+ 1..n

3,7-9 rangos

Figura~8.4: Multiplicidad en OMT

8.1.9

Atributos de los enlaces

Las propiedades de los enlaces de una asociacin son: Opcionales en los enlaces uno-a-uno y uno-a-muchos. Obligatorios en los enlaces muchos-a-muchos.

8.1.10

Modelando una Asociacin como una Clase

Adems de los atributos de un enlace, permite aadir un nombre y operaciones. Son tiles cuando: Los enlaces pueden participar en asociaciones con otros objetos. Los enlaces estn sujetos a operaciones.

CAPTULO 8. METODOLOGA OMT

251

Association Archivo Usuario

permiso de acceso

Figura~8.5: Atributos en los enlaces

8.1.11

Roles

Se lo coloca en uno de los extremos de una asociacin. El Nombre de Rol identica de forma nica el nal de una asociacin. Atributo derivado cuyo valor es un conjunto de objetos relacionados. Deben ser nicos en las asociaciones de una clase. Suelen aparecer como nombres en los enunciados de los problemas. En relaciones n-arias se debe colocar un rol en cada extremo.
Empleado Persona trabaja para empresario Compaia

Empleado Mauricio Vallejos Juan Lopez

Empresario simple comentarios

Figura~8.6: Nombres de Rol para una asociacin Los roles proporcionan una forma de ver las asociaciones como recorrido desde un objeto hacia otro conjunto de objetos. Su uso es opcional. A veces resulta ms claro su uso que los nombres de las asociaciones. Normalmente son necesarios en las relaciones entre objetos de la misma clase, o cuando existe ms de una asociacin entre el mismo par de clases.

8.1.12

Ordenacin

Se utiliza en la parte de la multiplicidad muchos de una asociacin en la que los objetos deben estar ordenados.

8.1.13

Cualicadores

Su funcin especica es describir una asociacin cualicada, esta relaciona dos clases mediante un cualicador. Puede considerarse como un tipo de asociacin ternaria.

CAPTULO 8. METODOLOGA OMT

252

atributo especial que puede reducir la multiplicidad de una asociacin. Pueden utilizarse en asociaciones uno a muchos o muchos a muchos. Distinguen conjuntos de objetos en el extremo muchos de la asociacin. Mejora la semntica y aumenta la visibilidad de caminos de navegacin. Se representa mediante un cuadro en el extremo ms prximo a la clase a la que cualica. Ejemplo 8.1 Directorio + nombre de archivo.

Cualicador:

Directorio

Nombre de Archivo

Archivo

Figura~8.7: Una asociacin cualicada Notacin de cualicacin Un directorio contiene ms de un archivo. El nombre del directorio ms el nombre del archivo en el directorio, identican de forma nica al archivo: Una compaa tiene muchos empleados. El cualicador descompone el conjunto total de los empleados en subconjuntos disjuntos (por cargo) de ms de un objeto.

8.1.14

Agregacin

Relacin parte-todo o parte-de, el ensamblaje se relaciona con sus componentes. Verica las propiedades transitiva y antisimtrica. Tambin es comn la agregacin recursiva. Cuando tenemos duda en la etapa de modelamiento, mejor es utilizar una asociacin ordinaria. Preguntas tiles para identicar agregaciones: Se puede utilizar la frase parte de? Se propagan algunas operaciones del todo a las partes de forma automtica? Se propagan algunos valores de los atributos del todo a alguna o todas de las partes? Existe una asimetra intrnseca en la asociacin, por la cual un objeto est subordinado a otro (la eliminacin del todo implica la de las partes)? Notacin de agregacin Agregados jos: estructura ja, con el nmero y tipos de subpartes predendos.. Agregados variables: tienen un nmero nito de niveles, pero el nmero de partes vara. Propagacin de las operaciones Aplicacin automtica de una operacin a una red de objetos cuando se aplica la operacin a un objeto inicial. La propagacin de una operacin a las partes es un buen indicador de agregacin. Agregados recursivos: contienen, directa o indirectamente, un caso de la misma clase.

CAPTULO 8. METODOLOGA OMT

253

Impresora

Cabezal

compartimento de hojas

sistema de arrastre

Figura~8.8: Agregacin

8.1.15

Generalizacin y herencia

Generalizacin: relacin entre una clase (superclase) y una o ms versiones renadas de ella (subclases). Relacin se describe con la frase es un. Las subclases heredan las caractersticas, atributos y operaciones de su super clase. Una instancia de una subclase es una instancia de sus clases antecesoras o ascendientes. Distincin entre generalizacin y herencia:

Generacin: relacin entre clases. Herencia: mecanismo para compartir caractersticas. Ascendientes y descendientes: generalizacin en mltiples niveles. Discriminador: atributo de tipo enumerado, que indica la propiedad del objeto que
se est abstrayendo para una relacin de generalizacin. Solo debera discriminarse una propiedad a la vez.

Ejemplo 8.2 Fichero. Contenido: de texto, binario, de datos; Acceso: secuencial, directo, indexado; Carcter: ejecutable, no ejecutable. Generalizacin como extensin y restriccin Una instancia de una clase es una instancia de todas sus clases ascendientes y no puede omitir o suprimir un atributo de sus ascendientes. Una subclase puede aadir nuevas caractersticas: extensin. Una subclase puede redenir una caracterstica de sus ascendientes: restriccin. Ejemplo 8.3 Limitar los valores en un rango menor (crculo es una elipse de a=b).

8.1.16

Agregacin vs. Generalizacin.

La agregacin relaciona instancias (relacin y), la generalizacin relaciona clases (relacin o).

CAPTULO 8. METODOLOGA OMT Redenicin

254

Una subclase reemplaza una caracterstica de su superclase deniendo una caracterstica con el mismo nombre. Motivos para redenir Especicar un comportamiento que dependa de la subclase. Aplicar de forma ms rigurosa las especicaciones de una caracterstica. Mejorar el rendimiento. No se debe reemplazar la signatura de una caracterstica. Debe preservar: Tipos de los atributos. Nmero y tipos de argumentos de funciones. Tipo del valor devuelto por una operacin. Redenir operaciones por: Extensin. Restriccin. Optimizacin. Conveniencia. Reglas prcticas: Todas las operaciones de consulta y actualizacin se heredan por todas las subclases. Las operaciones de actualizacin que modiquen atributos o asociaciones restringidas, deben mantener la misma restriccin. Las operaciones heredadas se pueden renar aadiendo un nuevo comportamiento.

8.1.17

Clases abstractas

Las clases abstractas sirven para denir un comportamiento y/o estructura comn a un conjunto de subclases. No es instanciable (no existen objetos de esa clase). Sin embargo, sus subclases pueden ser clases concretas (que s son instanciables). Organizan caractersticas comunes de varias clases. Pueden denir el protocolo para una operacin sin proporcionar un mtodo correspondiente (operacin abstracta). Una clase concreta no puede contener operaciones abstractas. La naturaleza abstracta de una clase es siempre provisional.

CAPTULO 8. METODOLOGA OMT

255

8.1.18

Herencia mltiple

Esta caracterstica permite a una clase tener ms de una superclase, y heredar las caractersticas de todos sus padres. Las principales ventajas son: Una mayor potencia a la hora de denir nuevas clases. Oportunidades adicionales de reutilizacin. Acercamiento a la forma natural de pensar. Ejemplo 8.4 El tringulo relleno signica que las subclases no son disjuntas. Las principales desventajas se encuentra en los: Problemas de implementacin (por ejemplo, la herencia repetida de C++). Clase vnculo (join): clase con ms de un padre. Herencia mltiple accidental. Un instructor es inherentemente Profesor y Alumno, cmo modelar un Profesor de una Universidad que recibe clases en otra?

8.1.19

Metadatos

Son Clases de las Clases. Son datos que describen otros datos: los modelos son metadatos, denicin de una clase, p.e. Los SGBDR tambin utilizan metatablas para almacenar las deniciones de las tablas (el catlogo). Introducen confusin pues difuminan la diferencia entre el modelo y el mundo real. Patrones y Metadatos: La instanciacin relaciona una clase con sus instancias. La representacin explcita del proceso de instanciacin puede ser til si tanto la clase como los objetos han de ser manipulados como objetos.

8.1.20

Caractersticas de clase

Las clases pueden ser consideradas tambin como Metaobjetos. Atributos de clase: Describen un valor comn para todos los objetos de la clase. Permiten almacenar informacin que puede usarse como valor por defecto en la instanciacin. Permiten almacenar informacin sobre las instancias de la clase.

CAPTULO 8. METODOLOGA OMT Operaciones de clase: Operacin que tiene lugar sobre atributos de la clase. Se invoca sobre la clase y no sobre una instancia concreta. Ejemplo 8.5 New. Ejemplo 8.6 Smalltalk: x:= Dictionary new Ejemplo 8.7 C++: en la declaracin del objeto se llama al constructor de la clase

256

8.1.21

Claves candidatas

Una clave candidata es un conjunto mnimo de atributos que identican un objeto o enlace. El identicador de objeto (OID) es siempre una clave candidata. Es un concepto lgico muy utilizado en el mundo de los SGBDR. Se denotan en los diagrama de clases mediante corchetes.

8.1.22

Restricciones

Es una relacin funcional entre entidades (clase, objeto, atributo, enlace o asociacin) dentro del Modelo de Objetos que limita los valores que la entidad puede tomar. Restricciones sobre enlaces: Restricciones generales. Se expresan mediante lenguaje natural o ecuaciones. Se denota mediante una lnea de puntos entre las clases implicadas y con la descripcin entre llaves. Un objeto derivado se dene como una funcin de uno o ms objetos. Es redundante, pero se introduce en el Modelo para facilitar la comprensin. Tambin existen enlaces y atributos derivados. Objetos, enlaces y atributos derivados.

8.1.23

Homomorsmo

El homomorsmo es un tipo especial de asociacin que supone una correspondencia entre dos asociaciones. Aparecen en la prctica en aplicaciones complejas que tratan metadatos.

8.1.24

Modelo de Datos vs Modelo de Objetos

Una BD se desarrolla mediante un Modelo de Datos. 1. Se construye el Modelo de Datos sobre el dominio de la aplicacin. 2. Se transforma del Modelo de Datos en un Diseo de la BD mediante la aplicacin de una serie de transformaciones estndar (normalizacin). Un Sistema de Objetos se construye modelando mediante tcnicas diferentes, pues las tcnicas del Modelo de Datos son bastante limitadas para soportar el Modelo de Objetos.

CAPTULO 8. METODOLOGA OMT Consejos prcticos

257

No comenzar construyendo diagrama de clases; primero, es necesario comprender el problema. Intentar mantener el Modelo sencillo. Seleccionar con cuidado los nombres. No introducir punteros o referencias a otros objetos como atributos. Intentar evitar asociaciones n-arias. No intentar establecer el grado de multiplicidad perfecto al principio. No introducir atributos de enlace dentro de la clase. Utilizar asociaciones cualicadas donde sea posible. Intentar evitar generalizaciones profundamente anidadas. Intentar asociaciones uno a uno. No se sorprenda si su modelo requiere una revisin. Documentar siempre los Modelos de Objetos.

8.1.25

Resumen del Modelo de Objetos

El Modelo de Objetos describe la estructura esttica de las clases, los objetos y sus relaciones. Conceptos de clase, atributo, objeto y operacin. Enlaces y asociaciones. Agregacin. Generalizacin y herencia. Caractersticas avanzadas: clases abstractas, herencia mltiple, metadatos, claves candidatas y restricciones.

8.1.26

Diferencias entere el Modelo de Datos y el Modelo de Objetos.

Glosario agregacin generalizacin mtodo redenicin asociacin identidad mdulo cualicacin atributo herencia multiplicidad rol clase instancia objeto discriminador enlace operacin atributo de enlace clasicacin especializacin clase abstracta restriccin clase concreta clase vnculo metadato metaclase clave candidata propagacin homomorsmo herencia mltiple

CAPTULO 8. METODOLOGA OMT

258

8.1.27

Cambios introducidos por OMT-2

OMT-2 introduce cambios en el modelo de objetos (compatibilidad con UML) Notacin de Objetos: Objeto como un rectngulo con la siguiente sintaxis NombreObjeto : nombreClase Multiplicidad: la multiplicidad muchos aade informacin al smbolo del crculo relleno, incorporando informacin textual adicional. Atributos de la relacin: un atributo de la relacin es un caso particular de una clase asociacin. Clase asociacin: la notacin es ahora una lnea discontinua que une la clase asociacin con la asociacin. Generalizacin: la representacin es aqu una echa cuyo extremo toca la clase ms genrica. Puede organizarse en rbol. Smbolo de cruce: se introduce para evitar ambigedades.

8.2
8.2.1

El Modelo Dinmico
Introduccin

El Modelo Dinmico, modela los aspectos del sistema que tienen que ver con el tiempo y los cambios. o modela el Control, aspecto del sistema que describe la secuencia de operaciones que ocurren como respuesta a unos estmulos. Conceptos principales del Modelo Dinmico: Sucesos o Eventos: representan los estmulos externos. Estados: representan valores de los objetos. La notacin a utilizar en este libro es la de David Harel, para dibujar los diagrama de estado estructurado, empleando contornos anidados con objeto de mostrar la estructura.

8.2.2

Sucesos y Estados

El Suceso es estmulo individual de un objeto a otro. Ocurre en un determinado instante y no tiene duracin. El Estado son valores de los atributos y enlaces de un objeto en un instante dado. Se representan con los Diagrama de Estado, que no es otra cosa que un patrn de sucesos, estados y transiciones entre estados para una clase determinada. El Modelo Dinmico consiste en mltiples diagrama de estado, uno por cada clase con comportamiento dinmico signicativo. La denicin de sucesos y estados depende del nivel de abstraccin que se utilice. Sucesos Dos sucesos pueden darse consecutivamente de forma lgica (causa-efecto) o no (concurrentes). Son un medio de transmisin de informacin de un objeto a otro, unidireccional.

CAPTULO 8. METODOLOGA OMT

259

Clase de sucesos: Indica estructura y comportamiento comunes. Pueden contener atributos para expresar la informacin que manejan.
Ejemplo 8.8 Pulsacin de un botn del ratn (botn, posicin) o la salida de un vuelo (avin, nmero vuelo, ciudad). Escenarios y trazas de sucesos El Escenario es una secuencia de sucesos que tienen lugar durante una ejecucin particular del sistema.
el locutor descuelga el tubo telefonico (receptor) comienza el tono para el marcado del nmero el locutor marca el nmero (seis digitos, uno despues de otro) el telefono llamado comienza a sonar aparece la seal de llamada en el telefono del locutor el destinatario responde el telefono del destinatario deja de sonar el tono de llamada desaparece en el telefono del locutor los telefonos se conectan se produce un tiempo de comunicacin el destinatario cuelga los telefonos se desconectan el locutor cuelga

Figura~8.9: Escenario para una llamada telefnica En los Escenarios y trazas de sucesos pueden enviarse sucesos concurrentes. La descripcin de escenarios es el primer paso del modelo dinmico, al que debe seguir la identicacin de los objetos emisores y receptores de sucesos. El Diagrama de traza de sucesos (DTS): especican la secuencia de sucesos en el tiempo. En la etapa de diseo hay que renar los DTSs. Estados Abstraccin de los valores de los atributos y enlaces de un objeto. Especica la respuesta de un objeto a los sucesos que llegan (accin/cambio de estado).Representan intervalos de tiempo. En su denicin, se ignoran los atributos que no intervienen en el comportamiento del objeto. Caracterizacin de un Estado Caracterizacin mediante la indicacin de varias pautas que identican al objeto y que pueden solaparse: Nombre: alarma sonando Descripcin: la alarma en el reloj suena para indicar la hora seleccionada.

CAPTULO 8. METODOLOGA OMT Secuencia de sucesos que producen el estado: Activar alarma (hora seleccionada) Cualquier secuencia excluyendo desactivar (alarma) Hora actual=Hora seleccionada Condiciones que caracterizan el Estado:

260

Alarma = s, Hora selec. <= Hora actual <= Hora selec. + 20 segundos, y no botn pulsado desde Hora selec. Sucesos aceptados en el Estado: Suceso Accin Siguiente Estado Ejemplo 8.9 Hora actual = Hora selec. + 20 iniciar(alarma) Normal Ejemplo 8.10 Botn Pulsado (cualquiera) iniciar (alarma) Normal Diagrama de Estado Relaciona Sucesos y Estados.El siguiente Estado depende del Suceso recibido y del Estado actual. Las transiciones para abandonar un Estado deben corresponder a sucesos diferentes. Si un Suceso no genera una transicin que abandone el Estado, se ignora. Los Estados no denen por completo todos los valores del objeto y pueden representar bucles continuos o ejecuciones no repetitivo.. Los diagrama que representan ejecuciones no repetitivo: Tienen estados iniciales y nales Se utilizan como subrutinas referenciadas desde diversos diagrama de ms alto nivel. Condiciones Funciones lgicas sobre los valores de los objetos. Se indican entre corchetes. Vlidas durante un intervalo de tiempo. Se pueden utilizar como guardas sobre las transiciones: se disparan slo si se cumple la condicin.

CAPTULO 8. METODOLOGA OMT


colg ar

261
colgs r

En reposo

Tono de marcar
digito n digito n

tiempo agotado

tiempo agotado
tiempo agotado

marcando
nro. ocupado

nro. no valido

mensaje grabado

linea ocupada

nmero valido

red sobrecarga da

conectando
encaminado

seal de ocupado sonando


responde el telefono llamado

mensaje terminado

conectado
cuelga el telefono llamado

desconecta do

Figura~8.10: Diagrama de Estado para una lnea telefnica

8.2.3

Operaciones

Estn asociadas a las transiciones entre Estados. Tipos: Acciones: operacin instantnea asociada a un suceso. Tambin pueden representar operaciones de control interno. Actividades: operacin con duracin en el tiempo, asociada a un Estado.

8.2.4

Diagrama de Estado anidados

Los Diagrama de Estado se pueden estructurar de forma similar a la de los objetos. Generalizacin: actividades de anidamiento que permiten organizar los Estados y Sucesos de forma jerrquica. Agregacin: permite la descomposicin de un Estado en componentes ortogonales, siendo equivalente a la concurrencia de los Estados. Anidamiento de Estados Una actividad en un Estado puede expandirse como un Diagrama de Estado de nivel inferior, en el que cada Estado representa una etapa de la actividad. Los Sucesos tambin pueden expandirse en Diagrama de Estados subordinados.

8.2.5

Generalizacin de Estados

En general, los Estados en un Diagrama anidado pueden interactuar con otros Estados. Los Estados pueden tener subestados que heredan sus transiciones, a menos que las reemplacen por otras equivalentes.

CAPTULO 8. METODOLOGA OMT


monedas insertadas

262

en reposo

Recaudando dinero moneda insertada (cantidad/) aadir al saldo

devolver moneda

selelccin itrem agotado

cambio < 0

hacer: comprobar item y calcular cambio

cambio = 0

cambio >0

hacer: dispensar item

hacer: dar cambio

Figura~8.11: Anidamiento de diagramas de estados (mquina expendedora de dinero)


Transmisin Poner Reversa

Punto muerto
Poner Punto Muerto

Marcha atrs

Poner Punto Muerto

Poner Marecha Adelante

Marcha Adelante
parada cambiar cambiar

Primera
reducir

Segunda
reducir

Tercera

Figura~8.12: Diagrama de stado de la transmisin de un vehculo

8.2.6

Generalizacin de Sucesos

Los Sucesos pueden organizarse en una jerarqua de generalizacin en la que se heredan los atributos de los Sucesos. Permiten utilizar distintos niveles de abstraccin en diferentes partes del Modelo.

8.2.7

Concurrencia

Un Diagrama de Estados para un sistema compuesto es una coleccin de diagramas, uno por cada componente. La agregacin implica Concurrencia. Los Diagramas de Estado de los componentes suelen ser independientes, pero pueden interactuar (las guardas de las transiciones para un objeto en un determinado estado pueden depender de otro objeto). Concurrencia dentro de un objeto: Podemos dividir un objeto en subconjuntos de atributos y enlaces, cada uno con su propio diagrama.

CAPTULO 8. METODOLOGA OMT


suceso hora

263

entrada de usuario dispositivo

boton de raton posicin

caracter del teclado nmero

boton de raton pulsado

boton de raton soltado

control

grafico imprimible

espacio

alfanmerico

puntuacin

Figura~8.13: Jerarqua parcial de sucesos (teclado) Acciones de Entrada (Entry) y de Salida (Exit) Acciones que se ejecutan cuando se entra o se sale de un Estado por cualquier suceso. Estas acciones se simplican cuando todas las transiciones impliquen esas mismas acciones para la entrada o la salida. Orden de ejecucin de las acciones: Acciones en la transicin que llega. Acciones de Entrada. Actividades. Acciones de Salida. Acciones en la transicin de Salida. Acciones internas Un Suceso puede provocar que se ejecute una accin sin cambiar de Estado. En la notacin se reeja como suceso / accin Transiciones automticas y Envo de Sucesos Transiciones automticas:

CAPTULO 8. METODOLOGA OMT


Abriendose
pulsar / motor arriba Puerta abierta / Motor apagado

264

Cerrada

pulsar / motor arriba

Abierta

puerta cerrada / motor apagado

Cerrandose

pulsar / motor abajo

Abriendose entrada / motor abajo


pulsar / motor arriba Puerta abierta / Motor apagado

Cerrada entrada / motor apagado

pulsar / motor arriba

Abierta entrada / motor apagado

Cerrandose
puerta cerrada / motor apagado

entrada / motor abajo

pulsar / motor abajo

Figura~8.14: Arriba: Acciones en la transiciones. Abajo: Acciiones de entrada en los distintos estados
Estado 1 hacer: actividad 1 entrada / accin 2 salida / accin 3 suceso / accin 4 Estado 2
suceso 1 (atributos 1) [condicin 1[ / accin 1

suceso 2 (atributo 2)

Clase de Objeto

Figura~8.15: Resmen de la notacin extendida para Diagramas de Estados Se disparan siempre que la actividad asociada con el Estado fuente ha terminado, y se cumplen las condiciones de las guardas (transiciones lambda). Envo de Sucesos: Los sucesos pueden dirigirse a un solo objeto o a un conjunto de ellos. La recepcin concurrente de Sucesos de denomina condicin de carrera. No es un error de diseo pero en general no deseadas. Sincronizacin de Actividades Concurrentes A veces, un objeto puede realizar actividades de forma concurrente. Los pasos internos de las actividades no han de estar sincronizados, pero to-das ellas han de completarse para poder pasar al siguiente Estado: Divisin del Control (split).

CAPTULO 8. METODOLOGA OMT Fusin del Control (merge).

265

8.2.8

Relacin entre Modelo de Objetos y Modelo Dinmico

El Diagrama de Estados describe toda o una parte del comportamiento de un objeto de una clase. Los Estados son los equivalentes a los valores de los atributos y enlaces de las clases. Los Sucesos se pueden representar como operaciones en el Modelo de Objetos. La estructura del Modelo Dinmico est relacionada y restringida por la del Modelo de Objetos (generalizacin por restriccin). Un Estado Compuesto es el agregado de ms de un subestado concurrente. En el Modelo de Objetos hay tres fuentes de concurrencia: Concurrencia entre componentes: cada componente tiene su propio Estado independiente. Concurrencia entre partes de un componente: agregacin dentro de un objeto. Concurrencia del objeto: comportamiento concurrente de un objeto. El Modelo Dinmico de una clase lo heredan sus subclases. La jerarqua de Sucesos es independiente de la jerarqua de clases (pueden denirse a travs de diferentes clases de objetos, y son ms expresivos que las operaciones).

8.2.9

Consejos prcticos

Construir Diagrama de Estado slo para las clases con comportamiento dinmico signicativo. Utilizar escenarios. Considerar slo los atributos relevantes. Vericar la consistencia de los diferentes Diagramas de Estado. Considerar las necesidades de la aplicacin a la hora de decidir el grado de granularidad de los Sucesos y Estados. Distinguir entre actividades y acciones. Poner acciones de entrada cuando todas las transiciones entrantes generen la misma accin. dem para las de Salida. Utilizar Estados anidados cuando las mismas transiciones se apliquen a varios Estados. Intentar mantener los Diagramas de estados de las subclases independientes de los de las superclases. Tener cuidado con las posibles condiciones de carrera en los Diagramas de Estado.

CAPTULO 8. METODOLOGA OMT Resumen del Modelo Dinmico

266

Representa la informacin de control, secuencia de sucesos, estados y operaciones que ocurren dentro de un sistema de objetos. Patrn para los posibles escenarios que se puedan presentar. Notacin: compromiso entre simplicidad y expresividad (donde no llegue la notacin, lenguaje natural). Suceso: seal de que ha pasado algo. Estado: intervalo entre Sucesos que especica el contexto en el que se interpretan los Sucesos: Generalizaciones de restriccin sobre una clase. Una subclase hereda los diagramas de estado de su clase base. Transicin: respuesta a un suceso, incluido el siguiente estado, acciones posibles y sucesos enviados a otros objetos Transiciones automticas: se disparan cuando se cumplen sus condiciones y se han realizado todas las actividades dentro del Estado. Las transiciones pueden dividir o juntar el ujo de control. Accin: operacin instantnea en respuesta a un suceso. Acciones de Entrada y Salida: se pueden asociar con un Estado. Acciones Internas que representan transiciones que no cambian de Estado. Actividad: secuencia de acciones que requieren un tiempo para realizarse. Sucesos y Estados pueden expandirse mediante Diagramas de Estados Anidados para mostrar mayor detalle, y pueden organizarse en jerarquas de herencia. Los objetos son inherentemente concurrentes. Los Diagramas de Estado muestran la concurrencia: como agregado de Estados Concurrentes como agregado dentro de un objeto mediante el comportamiento concurrente de los objetos.

8.3

El Modelo Funcional

El modelo funcional describe los clculos existentes del sistema sin describir ni como ni cuando se calculan. El modelo funciona especica lo que sucede, el modelo dinmico especica cuando sucede y el modelo de objetos especica a que le sucede.

8.3.1

Diagrama de Flujo de Datos

El modelo funcional consta de mltiples diagrama de ujo de datos, que especican el signicado de las operaciones y de las restricciones. Un diagrama de ujos de datos (DFD) muestra las relaciones funcionales entre los valores calculados por un sistema, incluyendo los valores introducidos, los obtenidos, y los almacenes internos de datos. Es un grafo que muestra el ujo de valores de datos desde sus fuentes en los objetos mediante procesos que los transforman, hasta sus destinos en otros objetos. No muestra informacin de control.

CAPTULO 8. METODOLOGA OMT

267

Un diagrama de ujo de datos contiene procesos que transforman datos, ujos de datos que los trasladan, objetos actores que producen y consumen datos, y de almacenes de datos que los almacenan de forma pasiva. La siguiente gura muestra un DFD tpico.
Def. iconos ventana

tamao nombre

posicin

expandir lista de aplicacin posicin

recortar lista de ventana

desplazar

lista en pantalla

Figura~8.16: Diagramas de ujo de datos tipico Procesos Un proceso transforma valores de datos. Los procesos del ms bajo nivel son funciones puras, sin efectos laterales. Un grfo completo de ujos de datos es un proceso de alto nivel. Los procesos pueden tener efectos laterales si contienen componentes no funcionales, tales como almacenes de datos u objetos externos. Los resultados de estos procesos dependen del comportamiento del sistema, segn se especique en el modelo dinmico. Los procesos se dibujan en forma de elipse que contienen una descripcin de la transformacin, normalmente su nombre. Cada proceso tiene un nmero jo de echas de entrada y salida de datos, cada una de las cuales lleva un valor de un tipo dado. Las entradas y salidas se pueden rotular, para mostrar su papel en el clculo, pero es frecuente que baste el tipo de valor asociado al ujo de datos.
sustraendo

diferencia resultado minuendo

Figura~8.17: Proceso

CAPTULO 8. METODOLOGA OMT Actores

268

Un actor es un objeto activo que controla el grfo de ujo de datos produciendo o consumiendo valores. Los actores estn asociados a las entradas y salida del grfo del ujo de datos. En cierto sentido, los actores yacen en la frontera del grfo, pero hacen que concluya el ujo de datos como fuentes y sumideros de datos, as que en algunos casos se denominan terminadores. Almacenes de datos Un almacn de datos es un objeto pasivo dentro de un diagrama de ujo de datos que almacena datos para su posterior utilizacin. Dieren con los atores en que no generan ninguna operacin por si mismos, sino que se limitan a responder a solicitudes de almacenamiento y acceso a datos. Los almacenes se dibujan en forma de un par de lneas paralelas que contienen el nombre del almacn. Las echas de entradas indican informacin u operaciones que modican los datos almacenados; esto incluye la adicin, modicacin o el borrado de elementos. Las echas de salidas indican informacin que se ha extrado del almacn. La gura siguiente muestra un almacn tpico dentro de un DFD.
credito

importe Cuenta Corriente

debito

Figura~8.18: Almacen Tanto los actores como los almacenes de datos son objetos. Se diferencian en que su comportamiento y utilizacin suelen ser distintos, aun cuando en un lenguaje orientado a objetos ambos pudieran ser implementados como objetos. Tambin el almacn puede ser implementado como un chero y el terminador como un dispositivo externo. Diagrama de ujo de datos anidados Un DFD resulta especialmente til para mostrar funcionalidad de alto nivel de un sistema, y su descomposicin en unidades funcionales ms pequeas. Un proceso se puede expandir en otro diagrama de ujo de datos. Todas las entradas y salidas del proceso lo sern tambin del nuevo diagrama, tambin pueden tener almacenes de datos que no se muestren en el diagrama de nivel superior.

CAPTULO 8. METODOLOGA OMT Flujos de control

269

Un diagrama de ujo de control muestra todas las posibles vas de computacin para los valores. No muestra cuales son las vas que se ejecutan ni en que orden. Las decisiones y la secuencias son problemas de control, que forman parte del modelo dinmico. Una decisin afecta a si una o ms funciones llegan incluso a ejecutarse, en lugar de proporcionarlos un valor. Aun cuando las funciones no poseen valores de entrada procedentes de estas funciones de decisin, a veces resulta til incluirlas en este modelo funcional, para que no se olviden, y para que sea posible mostrar sus dependencias de datos. Esto se hace incluyendo ujos de control en el diagrama de ujo de datos. Un ujo de control es un valor booleano que afecta a si un proceso es o no evaluado. Los ujos de control se muestran en los diagramas con una lnea discontnua que va desde un proceso que produce un valor booleano hasta el que se esta controlando. Especicaciones de proceso Toda operacin se podr especicar de diferentes maneras, entre las que se cuentan las siguientes: Funciones matemticas, tales como las funciones trigonomtricas; Tablas de valores de entrada y salida para pequeos conjuntos nitos Ecuaciones que especican la salida en trminos de la entrada Condiciones previas y posteriores Tablas de decisin Pseudocodigo Lenguaje natural Diagrama de ujos Diagrama de rboles etc. Restricciones Una restriccin muestra la relacin entre dos objetos al mismo tiempo (tal como la frecuencia y la longitud de onda) o bien entre distintos valores del mismo objeto en instantes diferentes (tal como el numero de acciones de un fondo de pensiones). Las restricciones se pueden expresar como una funcin total o como una funcin parcial. Las restricciones pueden aparecer en todas las clases de modelo. Las restricciones de objetos especican que algunos objetos dependen entera o parcialmente de otros objetos. Las restricciones dinmicas especican relaciones entre los estados o sucesos de distintos objetos. Las restricciones funcionales especican limitaciones aplicables a operaciones.

CAPTULO 8. METODOLOGA OMT

270

8.4

Preguntas y Ejercicios de Revisin

1. Prepare un diagrama de clase para representar su rbol genealgico.. Desde su tatarabuelo hasta sus nietos. 2. Prepare un diagrama de objetos del ejercicio anterior. 3. Prepare un diagrama de objetos que muestren al menos 10 relaciones entre las siguientes clases de objetos. Incluir asociaciones, agregaciones y generalizaciones. Si es posible utiliza asociaciones cualicadas y mostrar la multiplicidad en los diagramas. Universidad, Campus, Consejo Acadmico, aulas, alumno,profesor, bar, mantenimiento, laboratorio, mobiliario. 1. Aadir atributos y operaciones al ejercicio anterior. 2. Decidir a que categora (generalizacin, agregacin o asociacin) pertenecen las relaciones siguientes. Puede existir relaciones ternarias. Todo pas tiene una Ciudad que es su Capital. Los archivos contienen registros. Los mdems y teclado son dispositivos de E/S. Una ruta conecta dos ciudades. 1. Preparar una porcin de un diagrama de objetos para un sistema de prstamo de libros en una biblioteca, sistema que mostrara la fecha en que debe devolverse un libro y las multas por retraso para libros que no se hayan devuelto a tiempo en forma de objetos derivados. 2. Escribir un Escenario para las actividades siguientes: 3. Trasladar una cabra, un lobo, alfalfa a travs del ro Parana, empleando una canoa. Solo se puede llevar una cosa en cada viaje. Tener en cuenta que si dejamos a la cabra con el lobo, este se comer a la cabra. Si dejamos a la cabra sola con la alfalfa, esta se comer la alfalfa. 4. Describa el signicado de la gura 8.12.

Ejercicio 1. Se desea desarrollar un sistema de recogida de encuestas a travs de Internet. Cualquier persona desde su navegador puede inscribirse en el sistema a travs de un formulario. El formulario recoge los siguientes datos obligatorios del nuevo usuario:
Apellidos y Nombre. Nombre de usuario deseado para acceder al sistema. Direccin de correo electrnico.

CAPTULO 8. METODOLOGA OMT

271

Temas en los que est interesado (seleccionando uno o ms de los que se le ofrecen). Para cada uno de estos temas, especicar un grado de preferencia en una escala de 1 a 10, segn el grado de inters que tenga en cada uno de ellos. Una vez validados los datos, el sistema le devuelve al usuario una palabra clave nica, que le permitir acceder al sistema, junto con el nombre de usuario. Peridicamente, el usuario recibir mediante correo electrnico un cuestionario sobre uno de los temas que seleccion en su inscripcin. Al recibirlo, deber rellenarlo y devolverlo al sistema tambin mediante el correo. A partir de todos los cuestionarios recogidos sobre un tema, el sistema publicar unos resultados estadsticos que podrn consultarse mediante una pgina Web. Para contestar al cuestionario el usuario marcar una (y solo una) de las cuatro respuestas propuestas a cada pregunta, pero en el futuro se permitir tambin hacer preguntas de otros tipos, como seleccin mltiple y preguntas abiertas, y debemos acomodar nuestro anlisis a esta circunstancia. Realice, utilizando la metodologa OMT, un anlisis completo del sistema descrito, incluyendo: anlisis de requisitos (casos de uso), escenarios, modelo esttico (diagrama de clases), modelo dinmico (diagrama de traza de sucesos de los escenarios principales) y modelo funcional. Tenga en cuenta que el sistema deber realizar entre otras las siguientes funcionalidades: Consultas del nmero de usuarios que han contestado una determinada pregunta. Consultas del nmero de usuarios que han contestado alguna encuesta relacionada con un determinado tema. Ejercicio 2. Se desea desarrollar una aplicacin de educacin asistida por ordenador a travs de Internet. La aplicacin requiere a cada nuevo alumno la formalizacin de una inscripcin como paso previo a la matriculacin. En la inscripcin se le solicitan al alumno sus datos personales y acadmicos as como sus preferencias en cuanto a las reas de inters de los cursos; para cada rea especicar un nivel de preferencia, segn el grado de inters. De acuerdo con el perl introducido, el sistema propone al alumno una serie de cursos de forma que el alumno podr elegir uno en el que matricularse. A partir de este momento, el alumno consulta y estudia los contenidos de los temas del curso. Cada curso est estructurado en varios temas, cada uno de los cuales tiene varias unidades didctica.. Cada vez que se siente preparado, solicita al sistema un examen sobre el curso. Cada examen consta de un nmero variable de ejercicios. Cada ejercicio consiste en contestar a una de las preguntas cerradas, seleccionando como mucho una de las respuestas de esa pregunta. Una pregunta cerrada (tipo test) tiene cuatro respuestas posibles y slo una de ellas es correcta. El alumno puede matricularse en un nuevo curso siempre que haya terminado el anterior. En el futuro, un examen podr incluir preguntas no slo de tipo test con respuesta nica sino de otros tipos, como seleccin mltiple o preguntas abiertas, para lo cual se deber acomodar el anlisis a esta coyuntura. Realice, utilizando la metodologa OMT, un anlisis completo del sistema descrito, incluyendo: anlisis de requisitos (casos de uso), escenarios, modelo esttico (diagrama de clases), modelo dinmico (diagrama de traza de sucesos de los escenarios principales) y modelo funcional. Tenga en cuenta que el sistema deber realizar entre otras las siguientes funcionalidades:

CAPTULO 8. METODOLOGA OMT

272

Consultas del nmero de alumnos que han aprobado algn examen de un determinado curso. Cuntos alumnos han acertado una determinada pregunta. Ejercicio 3. En un determinado sistema operativo orientado a objetos, un proceso puede estar en diversos estados dependiendo del planicador. Cuando se crea el proceso, se sita en un estado llamado en espera, en el cual se encuentra esperando para entrar en la CPU. El sistema a modelar contempla los siguientes estados para los procesos: En ejecucin (est en la CPU) Suspendido (se estaba ejecutando y se le ha retirado de la CPU por alguno de los siguientes motivos: ha llegado un proceso con mayor prioridad, est implicado en un interbloqueo o se encuentra esperando la nalizacin de una operacin de E/S) Terminado (ha nalizado Encontrar todas las posibles transiciones entre estados y las actividades de cada estado para el supuesto anterior y modelarlo utilizando la notacin de OMT.

CAPTULO 8. METODOLOGA OMT

273

Referencia Bibliogrcas

[12] James Rumbaugh. Modelado y diseo orientado a Objetos. Prentice Hall, 1998.

Parte IV

Presentacin de la Propuesta y Diseo

274

Você também pode gostar