Está en la página 1de 13

DSI – 3K3

Unidad 1: Patrones GRASP


Diseño de Sistemas – Curso: 3K3
Docentes: Ing. Marcela F. Cattaneo
Ing. Germán Vélez

Patrones GRASP
● Son patrones para asignación de responsabilidades a los
objetos.
● La decisión de qué operaciones, dónde colocarlas y cómo
deberían interactuar los objetos es muy importante.
● Se aplican al elaborar los diagramas de interacción.

Responsabilidad se define en UML como “un contrato u


obligación de un clasificador”

DSI - 3K3 - Patrones GRASP (Unidad 1) 2

Docentes: Ing. Marcela F. Cattaneo


Ing. Germán Vélez 1
DSI – 3K3

Patrones GRASP

Responsabilidades Responsabilidades
HACER CONOCER

Hacer algo el mismo objeto Conocer los datos privados


encapsulados

Iniciar una acción en otros objetos Conocer los objetos relacionados

Coordinar y controlar actividades en Conocer las cosas que puede derivar


otros objetos o calcular

DSI - 3K3 - Patrones GRASP (Unidad 1) 3

Patrones GRASP para análisis

Experto en información

Creador

Controlador

Bajo Acoplamiento

Alta Cohesión

DSI - 3K3 - Patrones GRASP (Unidad 1) 4

Docentes: Ing. Marcela F. Cattaneo


Ing. Germán Vélez 2
DSI – 3K3

Patrones GRASP Experto en información

Creador

Experto en información
Controlador

Bajo Acoplamiento

Alta Cohesión

PROBLEMA

¿Cuál es el principio fundamental en virtud del cual se asignan


las responsabilidades en el diseño orientado a objetos?

SOLUCION

Asignar una responsabilidad al experto en información: la clase


que cuenta con la información necesaria para cumplir con la
responsabilidad.
DSI - 3K3 - Patrones GRASP (Unidad 1) 5

Patrones GRASP Experto en información

Creador

Experto en información
Controlador

Bajo Acoplamiento

Alta Cohesión

Pensemos…

DSI - 3K3 - Patrones GRASP (Unidad 1) 6

Docentes: Ing. Marcela F. Cattaneo


Ing. Germán Vélez 3
DSI – 3K3

Patrones GRASP Experto en información

Creador

Experto en información
Controlador

Bajo Acoplamiento

Alta Cohesión

¿Así? NO ¿Por qué no?

DSI - 3K3 - Patrones GRASP (Unidad 1) 7

Patrones GRASP Experto en información

Creador

Experto en información
Controlador

Bajo Acoplamiento

Alta Cohesión

Así:

DSI - 3K3 - Patrones GRASP (Unidad 1) Aplica Patrón Experto 8

Docentes: Ing. Marcela F. Cattaneo


Ing. Germán Vélez 4
DSI – 3K3

Patrones GRASP Experto en información

Creador

Creador
Controlador

PROBLEMA Bajo Acoplamiento

Alta Cohesión

¿Quién debería ser el responsable de crear una nueva instancia


de alguna clase?
SOLUCION
Asignar a la clase B la responsabilidad de crear una instancia de la
clase A en uno de los siguientes casos:
• B agrega los objetos de A.
• B contiene los objetos de A.
• B registra las instancias de los objetos de A.
• B utiliza específicamente los objetos de A.
• B tiene los datos de inicialización que serán transmitidos a A cuando
sea creado (así B es un experto respecto de la creación de A).
DSI - 3K3 - Patrones GRASP (Unidad 1) 9

Patrones GRASP Experto en información

Creador

Creador
Controlador

Bajo Acoplamiento

Alta Cohesión

¿Así? NO ¿Por qué no?

DSI - 3K3 - Patrones GRASP (Unidad 1) 10

Docentes: Ing. Marcela F. Cattaneo


Ing. Germán Vélez 5
DSI – 3K3

Patrones GRASP Experto en información

Creador

Creador
Controlador

Bajo Acoplamiento

Alta Cohesión

Así:
Ver mensajes:
27 – 28 – 29- 30

Aplica
Patrón
Creador

DSI - 3K3 - Patrones GRASP (Unidad 1) 11

Patrones GRASP Experto en información

Creador

Creador
Controlador

Bajo Acoplamiento

Alta Cohesión

El TODO crea a las PARTES

DSI - 3K3 - Patrones GRASP (Unidad 1) 12

Docentes: Ing. Marcela F. Cattaneo


Ing. Germán Vélez 6
DSI – 3K3

Patrones GRASP Experto en información

Creador

Controlador
Controlador

Bajo Acoplamiento

PROBLEMA
Alta Cohesión

¿Quién debería encargarse de atender un evento del


sistema/de un caso de uso?

SOLUCION

Un manejador artificial de todos los eventos del sistema de


un caso de uso, generalmente denominado “Manejador
<Nombre de Caso de Uso> (controlador de caso de uso).

DSI - 3K3 - Patrones GRASP (Unidad 1) 13

Patrones GRASP Experto en información

Creador

Controlador
Controlador

Bajo Acoplamiento

Alta Cohesión

Aplica Patrón Controlador

Si no se aplica patrón controlador, habría un acoplamiento


inadecuado de la capa de Presentación con la capa de Lógica
de Negocio.
DSI - 3K3 - Patrones GRASP (Unidad 1) 14

Docentes: Ing. Marcela F. Cattaneo


Ing. Germán Vélez 7
DSI – 3K3

Patrones GRASP Experto en información

Creador

Bajo Acoplamiento
Controlador

Bajo Acoplamiento

PROBLEMA
Alta Cohesión

¿Cómo dar soporte a una dependencia escasa y a un aumento


de reutilización?
Problemas del alto acoplamiento:
• Los cambios de las clases afines ocasionan cambios locales.
• Son difíciles de entender de manera aislada
• Son más difíciles de reutilizar porque se requiere la presencia de las
clases de las que depende.

SOLUCION
Asignar una responsabilidad para mantener bajo el acoplamiento.
DSI - 3K3 - Patrones GRASP (Unidad 1) 15

Patrones GRASP Experto en información

Creador

Bajo Acoplamiento
Controlador

Bajo Acoplamiento

Alta Cohesión

¿Cómo resolvemos el “mostrarDatosCategoría”?

DSI - 3K3 - Patrones GRASP (Unidad 1) 16

Docentes: Ing. Marcela F. Cattaneo


Ing. Germán Vélez 8
DSI – 3K3

Patrones GRASP Experto en información

Creador

Bajo Acoplamiento
Controlador

Bajo Acoplamiento

Alta Cohesión

¿Así? NO ¿Por qué no?

DSI - 3K3 - Patrones GRASP (Unidad 1) 17

Patrones GRASP Experto en información

Creador

Bajo Acoplamiento
Controlador

Bajo Acoplamiento

Alta Cohesión

¿Así? NO ¿Por qué no?

Aumenta las
dependencias

DSI - 3K3 - Patrones GRASP (Unidad 1) 18

Docentes: Ing. Marcela F. Cattaneo


Ing. Germán Vélez 9
DSI – 3K3

Patrones GRASP Experto en información

Creador

Bajo Acoplamiento
Controlador

Bajo Acoplamiento

Alta Cohesión

Así: ¿Qué otro patrón se aplica?

DSI - 3K3 - Patrones GRASP (Unidad 1) 19

Patrones GRASP Experto en información

Creador

Bajo Acoplamiento
Controlador

Bajo Acoplamiento

Alta Cohesión

Así:

Pocas
dependencias

DSI - 3K3 - Patrones GRASP (Unidad 1) 20

Docentes: Ing. Marcela F. Cattaneo


Ing. Germán Vélez 10
DSI – 3K3

Patrones GRASP Experto en información

Creador

Alta Cohesión
Controlador

Bajo Acoplamiento

PROBLEMA Alta Cohesión

¿Cómo mantener la complejidad dentro de límites manejables?


Problemas de las clases con baja cohesión:
• Son difíciles de entender.
• Son difíciles de reutilizar.
• Son difíciles de conservar.
• Son delicadas: las afectan constantemente los cambios.

SOLUCION
Asignar una responsabilidad de modo que la cohesión siga siendo alta.
DSI - 3K3 - Patrones GRASP (Unidad 1) 21

Patrones GRASP Experto en información

Creador

Alta Cohesión
Controlador

Bajo Acoplamiento

Alta Cohesión

Beneficios:

• Se incrementa la claridad y facilita la comprensión del diseño.


• Se simplifican el mantenimiento y las mejoras.
• Se soporta a menudo bajo acoplamiento.
• El grano fino de funcionalidad altamente relacionada incrementa la
reutilización porque una clase cohesiva se puede utilizar para un
propósito muy específico

DSI - 3K3 - Patrones GRASP (Unidad 1) 22

Docentes: Ing. Marcela F. Cattaneo


Ing. Germán Vélez 11
DSI – 3K3

Patrones GRASP Experto en información

Creador

Alta Cohesión
Controlador

Bajo Acoplamiento

Alta Cohesión
Volver

DSI - 3K3 - Patrones GRASP (Unidad 1) 23

Patrones GRASP - Analizar ejemplo Experto en información

Creador

Controlador

Bajo Acoplamiento

Alta Cohesión

¿Qué patrones se
aplicaron?
¿En qué mensajes?

DSI - 3K3 - Patrones GRASP (Unidad 1) 24

Docentes: Ing. Marcela F. Cattaneo


Ing. Germán Vélez 12
DSI – 3K3

Patrones GRASP Experto en información

Creador

Analizar ejemplo
Controlador

Bajo Acoplamiento

Alta Cohesión

DSI - 3K3 - Patrones GRASP (Unidad 1) 25

Bibliografía
● Larman , Craig “UML Y PATRONES” – Editorial Prentice Hall -
Año 2003.
● Meles Judith, Apunte de cátedra DSI: Patrones para el Análisis y
Diseño de Software Orientado a Objetos

DSI - 3K3 - Patrones GRASP (Unidad 1) 26

Docentes: Ing. Marcela F. Cattaneo


Ing. Germán Vélez 13

También podría gustarte