Vous êtes sur la page 1sur 18

SISTEMAS DE INFORMACIN II

UNIDAD 1 Principios de Diseo.


PATRONES DE DISEO - GRASP

Patrones de Diseo
PATRN GRASP
En la creacin de sistemas de informacin se entiende que la estructura se
compone de objetos que, para interactuar, envan mensajes a otros objetos,
ejecutando los mtodos.

Para una buena interaccin es necesario establecer los parmetros iniciales


para las responsabilidades de cada objeto y los resultados de cada mtodo
ejecutado.

Esto se puede diagramar a travs de los diagramas de interaccin UML.

Patrones de Diseo
PATRN GRASP
GRASP es el acrnimo para patrones generales de software para asignacin
de responsabilidades. Es un conjunto de patrones que establecen las
responsabilidades de los objetos al disear la colaboracin entre ellos.

El concepto en s no se entiende tanto como un patrn definido, sino como


un conjunto de buenas prcticas de aplicacin, recomendadas para el
desarrollo de software.

GRASP = General Responsability Assignment Software Pattern.

Patrones de Diseo
PATRN GRASP
El patrn GRASP se compone de los siguientes patrones:

Experto.
Creador.
Bajo Acoplamiento.
Alta Cohesin.
Controlador.

Patrones de Diseo - GRASP


PATRN EXPERTO
En el diseo de la interaccin de objetos, se disea tambin la asignacin de
responsabilidades de las clases. Al hacerlo bien, los sistemas resultan ser
ms fciles de entender, mantener y extender.

El patrn experto supone la responsabilidad de la implementacin de un


determinado mtodo, debe recaer sobre la clase que conoce la mayor
cantidad de informacin necesaria para hacerlo.

Patrones de Diseo - GRASP


PATRN EXPERTO
Ejemplo: Quin debera implementar ese mtodo?

Vended
or

- Cdigo.
+ RUT.
+ Nombre.
- Cdigo
Clientes.
+
+ Empresa.
venderProducto(
);
+
visitarClientes();

+
generarFacturaElectrnica
();

Factu
ra

- Folio.
+ Empresa.
+ RUT
Empresa.
+
Productos[].
+ calcularIVA();
+
+ Precios[].
calcularValorNeto
();

Patrones de Diseo - GRASP


PATRN EXPERTO
El gran beneficio de este patrn es que optimiza el encapsulamiento, ya que
los objetos utilizan su propia informacin (atributos o parmetros) para llevar
a cabo sus operaciones (mtodos).

A travs de la distribucin de los comportamientos de las clases que


contienen la informacin requerida se mantiene un diseo fcil de entender y
mantener.

Este patrn hace una analoga a la vida real, ya que se le asignan


responsabilidades al individuo que dispone de la informacin necesaria.

Patrones de Diseo - GRASP


PATRN CREADOR
En un sistema orientado a objeto, la accin ms realizada es la instanciacin
de clases.

El patrn creador se encarga de identificar quin debe ser el responsable de


la instanciacin de nuevos clases. Esto debe ser determinado por la clase
que:
Tiene la informacin necesaria para la realizacin del objeto.
Usa directamente las instancias del objeto.
Almacena o maneja varias instancias de la clase.

Patrones de Diseo - GRASP


PATRN CREADOR
Este patrn permite mejorar la visibilidad entre la clase creada y la clase
creador.

Tambin facilita un bajo acoplamiento, que es menos dependencias respecto


al mantenimiento y mejores oportunidades de reutilizacin.

Patrones de Diseo - GRASP


PATRN BAJO ACOPLAMIENTO
El acoplamiento se entiende como la fuerza con que una

est

clase conectada a otras clases, con que las conoce y con que recurre a
ellas.
Una clase con alto acoplamiento (depende de muchas clases) presenta los
siguientes problemas:

Las cambios a esta clase afectan a gran cantidad de clases locales.


Son ms difciles de entender cuando estn aisladas.
Son ms difciles de reutilizar porque dependen de una gran cantidad de clases
para funcionar.

Patrones de Diseo - GRASP


PATRN BAJO ACOPLAMIENTO
Con este patrn de bajo acoplamiento se pretende tener las clases lo menos
ligadas entre s que se pueda.

De esta forma, en caso de producirse una modificacin, se tendr la mnima


repercusin posible en el resto de las clases, potenciando la reutilizacin, y
disminuyendo la dependencia entre clases.

Patrones de Diseo - GRASP


PATRN BAJO ACOPLAMIENTO
Los tipos que hay son:

1. Acoplamiento de contenido: cuando un mdulo referencia directamente el


contenido de otro mdulo.
2. Acoplamiento comn: cuando 2 mdulos acceden (y afectan) a un mismo
valor global.
3. Acoplamiento de control: cuando un mdulo le enva un elemento de control
que determina la lgica de ejecucin del mismo.

Patrones de Diseo - GRASP

Patrones de Diseo - GRASP


PATRN ALTA COHESIN
Un desafo es mantener la complejidad de un diseo dentro de lmites
manejables, y para eso hay que mantener la cohesin, que es una medida de
cun relacionados y enfocados estn las responsabilidades de una clase.
responsabilidades
Una alta cohesin caracteriza a las clases con
realizando
estrechamente
relacionadas para que no terminen
trabajos
enormes.

Ejemplo: suponga que la clase Caja realiza la generacin de pagos, pero ms


adelante le asignan ms tareas dentro del sistema generando poca cohesin.

Patrones de Diseo - GRASP


PATRN ALTA COHESIN
Muy baja cohesin: una clase es la nica responsable de muchas tareas
distintas en reas funcionales diferentes.
Baja

cohesin: una clase tiene la responsabilidad exclusiva de una

tarea compleja dentro de un rea funcional.


Alta cohesin: una clase tiene responsabilidades moderadas en un rea y
colabora con las otras para realizar las tareas.

Patrones de Diseo - GRASP

Patrones de Diseo - GRASP


PATRN CONTROLADOR
Este patrn sirve de intermediario entre una determinada interfaz y el
algoritmo que la implementa. Por lo que es la que recibe los datos del
usuario y es la que los enva a las diferentes clases.

A travs de este patrn se recomienda dividir los eventos del sistema en el


mayor nmero de controladores para aumentar la cohesin y disminuir el
acoplamiento.

Conocidos como manejadores en los diagramas UML.

Vous aimerez peut-être aussi