Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Patrones
Es una solucin a un problema recurrente Capturan las mejores prcticas establecidas para diseo Describen un problema que ocurre repetidas veces en algn contexto determinado de desarrollo de software y entregan una buena solucin ya probada Est definido por su nombre, un resumen de la solucin y una descripcin del problema que resuelve
2
Patrones
Los patrones no son siempre la mejor solucin Beneficios:
Diseo correcto en menos tiempo Facilita la documentacin y comunicacin con otros miembros del equipo de desarrollo. No se necesita reinventar soluciones para problemas comunes Mantenibilidad (disminuye errores), extensibilidad (adicionar nuevas caractersticas), reestructuracin (reorganizacin de componentes), portabilidad.
GRASP
GRASP: General Responsabilities Assignment Software Patterns (Patrones de Asignacin de Responsabilidades). Son principios fundamentales de asignacin de responsabilidades expresados como patrones La responsabilidad consiste de obligaciones o contratos de una clase describe que comportamiento necesita satisfacer Existen dos tipos de responsabilidades:
Conocer
conocer la informacin privada del objeto, conocer acerca de los objetos relacionados, conocer acerca de lo que se puede calcular derivar realizar algo l mismo, ejecutar un clculo, crear un objeto, iniciar acciones en otros objetos, controlar o coordinar actividades en otros objetos
Hacer
GRASP
Los mtodos son implementados para satisfacer las responsabilidades Las responsabilidades se asignan en las fases de anlisis y diseo
Anlisis:
Definicin de atributos de las clases del modelo conceptual del mundo Definicin de diagramas de interaccin, para refinar el modelo conceptual del mundo.
GRASP
Los mtodos Analizadores (get) tienen una responsabilidad de conocimiento Los mtodos Modificadores (set) tienen una responsabilidad de hacer
Diseo:
Definicin de mtodos
5 6
10
1..*
1: calcTotal():float
SalesLineItem
1.1: calSubTotal():float 1.1.1: getPrice():float
-quantity:int +calSubTotal:float
0..*
Expert Pattern
11
12
GRASP Patrn Creador (Creator)Por ejemplo Sale agrega (contiene) muchas SaleLineItem, por lo tanto Sale debe ser el creador de instancias de SaleLineItem. Por lo tanto una responsabilidad del sistema es que Sale necesita un mtodo makeLineItem
aSale Sale aBtn 1: makeLineItem(ProductEspecification,int):void aSaleDetail SalesLineItem
1.1: <constructor>(ProductEspecification,int)
13
14
Low coupling (decentralized) Each object sees two other objects at most
17 18
23
24
26
Object6 Object9
28
29
30
Patrones Beneficios
Experto: conserva el encapsulamiento, bajo acoplamiento, alta cohesin Creador: bajo acoplamiento Bajo Acoplamiento: no se afectan por cambios de otros componentes, fciles de entender por separado, fciles de reutilizar Alta Cohesin: mejoran la claridad y facilidad con que se entiende el diseo, se simplifica el mantenimiento y mejoras, se genera bajo acoplamiento, reutilizacin Controlador: mayor potencial de los componentes reutilizables
32
Referencias
Larman C., UML y Patrones, Prentice Hall, Segunda Edicin, 2003 Bruegge B., Ingenieria de Software Orientada a Objetos, Ed. Prentice Hall, Mexico 2002
33