Metodologia OMT

download Metodologia OMT

of 28

Transcript of Metodologia OMT

Captulo 8

Metodologa OMT8.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 OMTNombre de Clae Nombre atgributo-1 Nombre atributo-2 Operacin 1 Operacion 2 ......

249

Figura~8.2: Notacin de Clase, Atributos y Operaciones

8.1.7Enlace

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 quese 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.28.2.1

El Modelo DinmicoIntroduccin

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.