Capítulo 16. Diagrama de Clases UML - …ertello/swe/sesion12.pdf · 1 Capítulo 16. Diagrama de...

Preview:

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Capítulo 16. Diagrama de Clases UML Dependencias

Dependencias

Mostrando Dependencias

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

Capítulo 16. Diagrama de Clases UML Dependencias

Dependencias

Mostrando Dependencias

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Recommended