Unidades 4.5 y 4.6
Patrones de diseño - Documento de diseño de objetos
Patrones de diseño
Que es?
son soluciones parciales a problemas comunes, como la separación de una interfaz con respecto a varias implementaciones alternas, Ia envoltura de un conjunto de clases heredadas, la protección de quien llama con respecto a cambios asociados con plataformas especificas.
De que esta compuesto?
Un patron de diseño está compuesto por una pequeña cantidad de clases que, mediante delegacion y herencia, proporcionan una solución robusta y modificable
Patrones
encapsulado de plataformas es:
Este patrón se usa para aislar una aplicación con respecto a las clases concretas proporcionadas por una plataforma especifica, como un estilo de ventanas o un sistema operativo
envoltura alrededor de código heredado es:
Este patrón encapsula un fragmento de código heredado que no fue diseñado para trabajar con el sistema. También limita el impacto de la sustitución del fragmento de código heredado con un componente diferente
Puente: permitir implementaciones alternas es:
Este patron desacopla la interfaz de una clase con respecto a su implementación. A diferencia del patron Adaptador, el desarrollador no está restringido por un fragmento de cOdigo
existente.
Comando: encapsulamiento del control es:
Este patron permite el encapsulamiento del control de tal forma que las peticiones del usuario pueden tratarse de manera uniforme, independientemente de la petición especIfica. Este patron protege esos objetos contra los cambios que resultan de nueva funcionalidad
Compuesto: representación de jerarquias recurrentes es:
Este patron representa una jerarquIa recurrente. Los servicios relacionados con la jerarquIa contenedora se factorizan usando herencia, permitiendo que un sistema trate a una hoja
o a un compuesto de manera uniforme.
Fachada: encapsulamiento de subsistemas es:
El patron Fachada reduce las dependencias entre clases encapsulando un subsistema con una interfaz unificada simple
Observador: desacoplamiento de entidades con respecto a vistas es:
Este patron nos permite mantener consistencia entre los estados de un Publicador
y varios Suscriptor
Apoderado: encapsulamiento de objetos caros es:
Este patron mejora el desempeño o la seguridad de un sistema retrasando cálculos caros, usando memoria solo cuando se necesita o revisando ci acceso antes de cargar un objeto en memoria
Documento de Diseño de Objetos
Que es ?
Describe los compromisos del diseño de objetos tomados por los desarrolladores,
los lineamientos que siguieron para las interfaces de subsistemas, la descomposición de subsistemas en paquetes y clases y las interfaces de clase
Para que se usa?
se usa para intercambiar la información
de interfaz entre equipos y como una referencia durante las pruebas. La audiencia del ODD incluye
a los arquitectos del sistema (es decir, los desarrolladores que participaron en el diseflo del
sistema), los desarrolladores que implementan cada subsistema y quienes hacen las pruebas
Que permite?
permite que los desarrolladores comprendan el subsistema lo bastante bien como
para que puedan usarlo. Además, una buena especificación de interfaz permite que otros desarroliadores implementen las clases en forma concurrente
Enfoques principales para documentar el diseño de objetos
autocontenido generado a partir del modelo
Documentar el modelo de diseño de objetos en la misma forma en que documentamos el modelo de análisis o el modelo de diseño del sistema: escribimos y mantenemos un modelo UML usando una herramienta y generamos el documento en forma automática
El ODD como extension del RAD
El segundo enfoque es tratar al modelo de diseflo de
objetos como una extension del modelo de análisis
ODD incrustado en el código fuente
El tercer enfoque es incrustar el ODD en el código
fuente. Al igual que en el primer enfoque, primero representamos al ODD usando una herramienta de modelado. Una vez que el ODD liega a ser estable usamos la herramienta de modelado para generar los stubs de clase.
Plantilla de un Documento de Diseño de Objetos
Documento de diseno de objetos
Introducción
1.1 Intercambios del diseflo de objetos
1.2 Lineamientos para la documentación de interfaces
1.3 Definiciones, siglas y abreviaturas
1.4 Referencias
Paquetes
Interfaces de clases
Glosario