70
Capítulo 16. Diagrama de Clases UML Florentino TORRES M. CINVESTAV-Tamaulipas 15 de Oct del 2012 Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 1 / 70

Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Embed Size (px)

Citation preview

Page 1: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML

Florentino TORRES M.

CINVESTAV-Tamaulipas

15 de Oct del 2012

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 1 / 70

Page 2: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

1 Capítulo 16. Diagrama de Clases UMLAplicando UML: Notación de diagramas de clase comúnSímbolos y cuerpos de los métodosDependenciasAgrupación y ComposiciónRestricciones y AsociacionesCompartimientos definidos por el UsuarioClases Activas

2 Capítulo 17. GRASP: Diseño de Objetos con ResponsabilidadesGRASP: Diseño de Objetos con Responsabilidades

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 2 / 70

Page 3: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común

1 Capítulo 16. Diagrama de Clases UMLAplicando UML: Notación de diagramas de clase comúnSímbolos y cuerpos de los métodosDependenciasAgrupación y ComposiciónRestricciones y AsociacionesCompartimientos definidos por el UsuarioClases Activas

2 Capítulo 17. GRASP: Diseño de Objetos con ResponsabilidadesGRASP: Diseño de Objetos con Responsabilidades

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 3 / 70

Page 4: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común

Aplicando UML: Notación de diagramas de clasecomún

Los Diagramas de clases están incluidos en UML para ilustrarclases, interfaces y sus asociaciones.

En capítulos anteriores se han visto los principios del diseñoorientado a objetos, en éste se explican los diagramas de clasespara ayudar a entender el diseño orientado a objetos.

En un nivel muy alto la notación del Diagrama de clases UMLpuede resumirse como muestra la siguiente imagen:

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 4 / 70

Page 5: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común

Aplicando UML: Notación de diagramas de clasecomún

Notación Diagrama de Clases UML

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 5 / 70

Page 6: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común

Aplicando UML: Notación de diagramas de clasecomún

Los Diagramas de Clase UML pueden ser utilizados en múltiplesperspectivas, ya sea conceptual para ver el dominio del sistema oen la perspectiva de diseño para visualizar las clases.

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 6 / 70

Page 7: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común

Aplicando UML: Notación de diagramas de clasecomún

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 7 / 70

Page 8: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común

Aplicando UML: Notación de diagramas de clasecomún

¿Qué es un clasificador? En UML un clasificador es un elementodel modelo que describe el comportamiento y características dela estructura, ejemplos de ellos son: clases, interfaces, casos deuso y actores.

En el diagrama de clases los más comunes son clases einterfaces.

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 8 / 70

Page 9: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común

Aplicando UML: Notación de diagramas de clasecomún

Manera de mostrar los Atributos en UML:Usando atributos en forma de texto, ejemplo: venta: VentaUsando líneas de asociación: —–>O ambas

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 9 / 70

Page 10: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común

Aplicando UML: Notación de diagramas de clasecomún

Mostrar Atributos en UML

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 10 / 70

Page 11: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común

Aplicando UML: Notación de diagramas de clasecomún

El formato completo para la notación de atributos es el siguiente:nombre : tipo = valor

También se pueden utilizar sintaxis de lenguajes de programaciónpara la declaración de atributos. Usando + para público y – paraprivado. Se asume que son privados si no se les asigna algunavisibilidad.

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 11 / 70

Page 12: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común

Aplicando UML: Notación de diagramas de clasecomún

Mostrar Atributos en UML

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 12 / 70

Page 13: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común

Aplicando UML: Notación de diagramas de clasecomún

Notación para la asociación de clases

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 13 / 70

Page 14: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Símbolos y cuerpos de los métodos

1 Capítulo 16. Diagrama de Clases UMLAplicando UML: Notación de diagramas de clase comúnSímbolos y cuerpos de los métodosDependenciasAgrupación y ComposiciónRestricciones y AsociacionesCompartimientos definidos por el UsuarioClases Activas

2 Capítulo 17. GRASP: Diseño de Objetos con ResponsabilidadesGRASP: Diseño de Objetos con Responsabilidades

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 14 / 70

Page 15: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Símbolos y cuerpos de los métodos

Símbolos y cuerpos de los métodos

Método: conjunto de instrucciones que implementan unaoperación UML

Comentario o nota no tiene ningún impacto semántico.

Las restricciones UML deben de estar contenidas entre { }

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 15 / 70

Page 16: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Símbolos y cuerpos de los métodos

Símbolos y cuerpos de los métodos

Mostrar un método en un diagrama de Clases

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 16 / 70

Page 17: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Símbolos y cuerpos de los métodos

Símbolos y cuerpos de los métodos

Las operaciones son las asignaciones que están en la terceracaja de un diagrama de clases.

Si no se asigna visibilidad al método se asume que es público.

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 17 / 70

Page 18: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Símbolos y cuerpos de los métodos

Símbolos y cuerpos de los métodos

¿Cómo mostrar métodos en diagramas de clase?

Un método es una implementación de una operación. Tiene dosmaneras de ilustrarlo:

Diagramas de interacción en forma de detalles y secuencia demensajes.En diagramas de clase mediante una nota que contenga la palabra«método»Ambas.

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 18 / 70

Page 19: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Símbolos y cuerpos de los métodos

Símbolos y cuerpos de los métodos

Palabras reservadas: Son palabras que utilizan para representarun elemento del modelo, ejemplo:

«interface»representa una interface«actor»representa a la figura del actorabstract: representa una clase abstractaordered: grupo de objetos ordenados

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 19 / 70

Page 20: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Símbolos y cuerpos de los métodos

Símbolos y cuerpos de los métodos

PropiedadesEs un valor con nombre que denota a una característica de unelemento.name1 = valor1, nombre2 = valor2clase {abstract}etiqueta {left}

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 20 / 70

Page 21: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Símbolos y cuerpos de los métodos

Símbolos y cuerpos de los métodos

Mostrando propiedades y palabras reservadas

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 21 / 70

Page 22: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Dependencias

1 Capítulo 16. Diagrama de Clases UMLAplicando UML: Notación de diagramas de clase comúnSímbolos y cuerpos de los métodosDependenciasAgrupación y ComposiciónRestricciones y AsociacionesCompartimientos definidos por el UsuarioClases Activas

2 Capítulo 17. GRASP: Diseño de Objetos con ResponsabilidadesGRASP: Diseño de Objetos con Responsabilidades

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 22 / 70

Page 23: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Dependencias

Dependencias

Dependencia: Indica que un elemento1 está relacionado con unelemento2, y que cualquier cambio en el elemento1 podría afectaral elemento2. Las líneas de dependencia se marcan con líneaspunteadas. Las maneras de dependencia son:

Tener un atributo de tipo elemento1 en elemento2Enviar un mensaje a elemento1, donde elemento1 podría tener untipo de parámetro a recibir.Recibir un parámetro en elemento2 de un tipo específico deelemento1.Elemento1 es una superclase o interface.

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 23 / 70

Page 24: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Dependencias

Dependencias

Mostrando Dependencias

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 24 / 70

Page 25: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Dependencias

Dependencias

Mostrando Dependencias

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 25 / 70

Page 26: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Dependencias

Dependencias

Dependencias en Interfaces: Hay diferentes formas de mostrar lasdependencias en interfaces:

Notación socket:

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 26 / 70

Page 27: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Dependencias

Dependencias

Clock2 implementa la interfaz Timer. Windows2 usa una interfacecuando está colaborando con Clock2.

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 27 / 70

Page 28: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Agrupación y Composición

1 Capítulo 16. Diagrama de Clases UMLAplicando UML: Notación de diagramas de clase comúnSímbolos y cuerpos de los métodosDependenciasAgrupación y ComposiciónRestricciones y AsociacionesCompartimientos definidos por el UsuarioClases Activas

2 Capítulo 17. GRASP: Diseño de Objetos con ResponsabilidadesGRASP: Diseño de Objetos con Responsabilidades

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 28 / 70

Page 29: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Agrupación y Composición

Agrupación y Composición

Agrupación es una asociación para mostrar relaciones deinstancias.

Composición es una agrupación compuesta.Una instancia debe de pertencer solamente a una instanciacompuesta.No debe de haber instancias libres.Una instancia compuesta es responsable de crear y eliminarpartes.Si la instancia compuesta se destruye entonces las instanciastambién se destruyen.

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 29 / 70

Page 30: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Agrupación y Composición

Agrupación y Composición

Ejemplo de una composición UML

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 30 / 70

Page 31: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Restricciones y Asociaciones

1 Capítulo 16. Diagrama de Clases UMLAplicando UML: Notación de diagramas de clase comúnSímbolos y cuerpos de los métodosDependenciasAgrupación y ComposiciónRestricciones y AsociacionesCompartimientos definidos por el UsuarioClases Activas

2 Capítulo 17. GRASP: Diseño de Objetos con ResponsabilidadesGRASP: Diseño de Objetos con Responsabilidades

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 31 / 70

Page 32: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Restricciones y Asociaciones

Restricciones y Asociaciones

Restricciones: Se muestran usando {}. Ejemplo:

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 32 / 70

Page 33: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Restricciones y Asociaciones

Restricciones y Asociaciones

Asociación Calificada: Es utilizada para seleccionar un objeto deun grupo de objetos más grande, Ejemplo:

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 33 / 70

Page 34: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Restricciones y Asociaciones

Restricciones y Asociaciones

Asociación de clases: Permite asociar clases así mismas comouna clase, y modelarla con atributos, operaciones y caraterísticas.Ejemplo:

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 34 / 70

Page 35: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Restricciones y Asociaciones

Restricciones y Asociaciones

Clases de instancia única: Es un tipo de clase que sólo se puedeinstanciar una vez, se debe de marcar con 1 en la esquinasuperior derecha.

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 35 / 70

Page 36: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Compartimientos definidos por el Usuario

1 Capítulo 16. Diagrama de Clases UMLAplicando UML: Notación de diagramas de clase comúnSímbolos y cuerpos de los métodosDependenciasAgrupación y ComposiciónRestricciones y AsociacionesCompartimientos definidos por el UsuarioClases Activas

2 Capítulo 17. GRASP: Diseño de Objetos con ResponsabilidadesGRASP: Diseño de Objetos con Responsabilidades

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 36 / 70

Page 37: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Compartimientos definidos por el Usuario

Compartimientos definidos por el Usuario

El usuario puede agregar compartimientos como sea necesario.

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 37 / 70

Page 38: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Clases Activas

1 Capítulo 16. Diagrama de Clases UMLAplicando UML: Notación de diagramas de clase comúnSímbolos y cuerpos de los métodosDependenciasAgrupación y ComposiciónRestricciones y AsociacionesCompartimientos definidos por el UsuarioClases Activas

2 Capítulo 17. GRASP: Diseño de Objetos con ResponsabilidadesGRASP: Diseño de Objetos con Responsabilidades

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 38 / 70

Page 39: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Clases Activas

Clases Activas

Una clase activa corre y controla su propio hilo de ejecución. Semuestra con dobles líneas verticales.

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 39 / 70

Page 40: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 16. Diagrama de Clases UML Clases Activas

Clases Activas

¿Cuál es la relación entre Diagrama de Interacción y Diagrama deClases?

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 40 / 70

Page 41: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 17. GRASP: Diseño de Objetos con Responsabilidades GRASP: Diseño de Objetos con Responsabilidades

1 Capítulo 16. Diagrama de Clases UMLAplicando UML: Notación de diagramas de clase comúnSímbolos y cuerpos de los métodosDependenciasAgrupación y ComposiciónRestricciones y AsociacionesCompartimientos definidos por el UsuarioClases Activas

2 Capítulo 17. GRASP: Diseño de Objetos con ResponsabilidadesGRASP: Diseño de Objetos con Responsabilidades

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 41 / 70

Page 42: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 17. GRASP: Diseño de Objetos con Responsabilidades GRASP: Diseño de Objetos con Responsabilidades

GRASP: Diseño de Objetos con Responsabilidades

ObjetivosSe entenderá la esencia del diseño orientado a objetos.Entender las responsabilidades que son la clave de un buen diseñoorientado a objetos.Aprender los principios para el diseño orientado a objetos.

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 42 / 70

Page 43: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 17. GRASP: Diseño de Objetos con Responsabilidades GRASP: Diseño de Objetos con Responsabilidades

GRASP: Diseño de Objetos con Responsabilidades

Diseño de objetos: Ejemplo de entradas.

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 43 / 70

Page 44: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 17. GRASP: Diseño de Objetos con Responsabilidades GRASP: Diseño de Objetos con Responsabilidades

GRASP: Diseño de Objetos con Responsabilidades

Actividades del diseño de objetos:

En ésta parte el equipo se debe de reunir para llevar a cabo lassiguientes actividades de modelado:

Por dificultad.Interfaz de usuarioEl modelado de la base de datos.

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 44 / 70

Page 45: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 17. GRASP: Diseño de Objetos con Responsabilidades GRASP: Diseño de Objetos con Responsabilidades

GRASP: Diseño de Objetos con Responsabilidades

¿Cuáles son las salidas?Diagramas de Interacción.Diagramas de Clase.Prototipos de Interfaz.Modelos de Bases de Datos.

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 45 / 70

Page 46: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 17. GRASP: Diseño de Objetos con Responsabilidades GRASP: Diseño de Objetos con Responsabilidades

GRASP: Diseño de Objetos con Responsabilidades

Responsibilidades y Diseño Enfocado a Responsabilidad (RDD)Manera de diseñar objetos de sofware o componentes, es decir,responsabilidades, roles y colaboraciones.Responsabilidad: Obligación de un clasificador.Hacer algo con un objeto, hacer un cálculo, etc.Coordinar actividades de otros objetos.Iniciar objetos.

Ejemplo: Una venta debe de ser capaz de agregar productos yconocer el total.

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 46 / 70

Page 47: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 17. GRASP: Diseño de Objetos con Responsabilidades GRASP: Diseño de Objetos con Responsabilidades

GRASP: Diseño de Objetos con Responsabilidades

Grandes responsabilidades pueden incluir varias clases ypequeñas responsabilidades pueden ser métodos.

Por ejemplo, un objeto tipo venta debe de registrar los productos,calcular el total y para ellos necesita hacer uso de otros métodos

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 47 / 70

Page 48: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 17. GRASP: Diseño de Objetos con Responsabilidades GRASP: Diseño de Objetos con Responsabilidades

GRASP: Diseño de Objetos con Responsabilidades

GRASP: Enfoque metódico para diseño orientado a objetos.Basado en patrones de asignaciones de responsabilidad.En los diagramas hay interacciones que suelen hacerse comométodos.

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 48 / 70

Page 49: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 17. GRASP: Diseño de Objetos con Responsabilidades GRASP: Diseño de Objetos con Responsabilidades

GRASP: Diseño de Objetos con Responsabilidades

¿Cuál es la conexión entre las responsabilidades GRASP y losdiagramas UML?

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 49 / 70

Page 50: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 17. GRASP: Diseño de Objetos con Responsabilidades GRASP: Diseño de Objetos con Responsabilidades

GRASP: Diseño de Objetos con Responsabilidades

¿Qué son los patrones?Son principios que se utilizan para resolver problemas de maneraestructurada que describen el problema, la solución y el nombre.Ejemplo:Nombre del patrón: Asignación ResponsabilidadesProblema: ¿Cuál es el principio básico para la asignación deresponsabilidades a los objetos?Solución: Asignar la responsabilidad de la clase que tiene lainformación necesaria para cumplirla.

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 50 / 70

Page 51: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 17. GRASP: Diseño de Objetos con Responsabilidades GRASP: Diseño de Objetos con Responsabilidades

GRASP: Diseño de Objetos con Responsabilidades

Pequeño ejemplo de un diseño de objetos con GRASP aplicado elcaso de estudio de monopolio

Hay 9 patrones GRASP pero sólo se verán los siguientes en ésteejemplo:

CreadorInformación de expertosBajo acoplamientoControladorAlta Cohesión

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 51 / 70

Page 52: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 17. GRASP: Diseño de Objetos con Responsabilidades GRASP: Diseño de Objetos con Responsabilidades

GRASP: Diseño de Objetos con Responsabilidades

Nombre: Creador

Problema: ¿Quién creará la clase A?

Solución: Asignar a la clase B la responsabilidad de crear la claseA.

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 52 / 70

Page 53: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 17. GRASP: Diseño de Objetos con Responsabilidades GRASP: Diseño de Objetos con Responsabilidades

GRASP: Diseño de Objetos con Responsabilidades

El diseño quedaría así:

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 53 / 70

Page 54: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 17. GRASP: Diseño de Objetos con Responsabilidades GRASP: Diseño de Objetos con Responsabilidades

GRASP: Diseño de Objetos con Responsabilidades

Información de ExpertosNombre: Información de expertosProblema: ¿Cuál es el principio para asignar responsabilidades alos objetos de otros objetos?Solución: Asignar la responsabilidad a la clase que tenga lainformación necesaria de estos objetos.

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 54 / 70

Page 55: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 17. GRASP: Diseño de Objetos con Responsabilidades GRASP: Diseño de Objetos con Responsabilidades

GRASP: Diseño de Objetos con Responsabilidades

El diseño quedaría así:

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 55 / 70

Page 56: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 17. GRASP: Diseño de Objetos con Responsabilidades GRASP: Diseño de Objetos con Responsabilidades

GRASP: Diseño de Objetos con Responsabilidades

Bajo AcoplamientoNombre: Bajo AcoplamientoProblema: ¿Cómo reducir el impacto del cambio?Solución: Asignar responsabilidades sólo cuando sean necesariaspara mantener un acoplamiento bajo.

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 56 / 70

Page 57: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 17. GRASP: Diseño de Objetos con Responsabilidades GRASP: Diseño de Objetos con Responsabilidades

GRASP: Diseño de Objetos con Responsabilidades

Análisis del Diseño:

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 57 / 70

Page 58: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 17. GRASP: Diseño de Objetos con Responsabilidades GRASP: Diseño de Objetos con Responsabilidades

GRASP: Diseño de Objetos con Responsabilidades

ControladorNombre: ControladorProblema: ¿Qué objeto recibe y coordina la operación del sistema?Solución: Asignar la responsabilidad a un objeto que representeuna de estas opciones.

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 58 / 70

Page 59: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 17. GRASP: Diseño de Objetos con Responsabilidades GRASP: Diseño de Objetos con Responsabilidades

GRASP: Diseño de Objetos con Responsabilidades

Análisis del Diseño:

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 59 / 70

Page 60: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 17. GRASP: Diseño de Objetos con Responsabilidades GRASP: Diseño de Objetos con Responsabilidades

GRASP: Diseño de Objetos con Responsabilidades

Aplicando el principio:

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 60 / 70

Page 61: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 17. GRASP: Diseño de Objetos con Responsabilidades GRASP: Diseño de Objetos con Responsabilidades

GRASP: Diseño de Objetos con Responsabilidades

Alta CohesiónNombre: Alta CohesiónProblema: ¿Cómo conservar los objetos enfocados, entendibles yadministrables con acomplamiento?Solución: Asignar la responsabilidad a un objeto que representeuna de estas opciones.

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 61 / 70

Page 62: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 17. GRASP: Diseño de Objetos con Responsabilidades GRASP: Diseño de Objetos con Responsabilidades

GRASP: Diseño de Objetos con Responsabilidades

Análisis del Diseño:

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 62 / 70

Page 63: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 17. GRASP: Diseño de Objetos con Responsabilidades GRASP: Diseño de Objetos con Responsabilidades

GRASP: Diseño de Objetos con Responsabilidades

Aplicando GRASP a un diseño de Objetos.

GRASP: General Responsability Assignment Software Patterns

Los 9 patrones GRASP son:CreadorInformación ExpertosBajo AcomplamientoControladorAlta CohesiónPolimorfismoFabricación PuraIndirecciónVariaciones Protegidas

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 63 / 70

Page 64: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 17. GRASP: Diseño de Objetos con Responsabilidades GRASP: Diseño de Objetos con Responsabilidades

GRASP: Diseño de Objetos con Responsabilidades

Creador: Sale es un buen candidato para crear objetosSalesLineItem

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 64 / 70

Page 65: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 17. GRASP: Diseño de Objetos con Responsabilidades GRASP: Diseño de Objetos con Responsabilidades

GRASP: Diseño de Objetos con Responsabilidades

Información de Expertos: ¿Qué clase necesita conocer el total dela venta?

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 65 / 70

Page 66: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 17. GRASP: Diseño de Objetos con Responsabilidades GRASP: Diseño de Objetos con Responsabilidades

GRASP: Diseño de Objetos con Responsabilidades

Bajo Acoplamiento: Registrar el pago de una venta.

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 66 / 70

Page 67: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 17. GRASP: Diseño de Objetos con Responsabilidades GRASP: Diseño de Objetos con Responsabilidades

GRASP: Diseño de Objetos con Responsabilidades

Bajo Acoplamiento: Registrar el pago de una venta. (2 Opción)

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 67 / 70

Page 68: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 17. GRASP: Diseño de Objetos con Responsabilidades GRASP: Diseño de Objetos con Responsabilidades

GRASP: Diseño de Objetos con Responsabilidades

Controlador

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 68 / 70

Page 69: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 17. GRASP: Diseño de Objetos con Responsabilidades GRASP: Diseño de Objetos con Responsabilidades

GRASP: Diseño de Objetos con Responsabilidades

Controlador

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 69 / 70

Page 70: Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de Clases UML Aplicando UML: Notación de diagramas de clase común Símbolos y cuerpos

Capítulo 17. GRASP: Diseño de Objetos con Responsabilidades GRASP: Diseño de Objetos con Responsabilidades

GRASP: Diseño de Objetos con Responsabilidades

Alta Cohesión

Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 70 / 70