Está en la página 1de 39

Modelo de Diseño:

Diseño y Patrones Arquitectónicos


Modelo de Diseño
 El modelo de diseño se encarga de refinar la
arquitectura definida en el modelo de análisis
adaptándola al ambiente de implementación.

 Se requiere un modelo de diseño, ya que el


modelo de análisis no es suficientemente formal
para alcanzar el código fuente.

2
Modelo de Diseño
 El resultado del modelo de diseño son especificaciones muy
detalladas de todos los objetos, incluyendo operaciones y
atributos.

 Otro objetivo del modelo de diseño es validar los resultados de


los modelos de requisitos y de análisis.

 En el diseño se puede hacer uso de patrones arquitectónicos


para refinar la arquitectura del sistema.

 La robustez, reusabilidad y extensibilidad son factores de calidad


tomados en cuenta en el diseño del sistema, por está razón se
utilizan patrones de diseño para aplicar o reutilizar soluciones
exitosas a problemas específicos.
Modelo de Diseño
 En el diseño del sistema el punto de vista en
este modelo cambia
 Análisis: Modelo conceptual y lógico.

 Diseño: Abstracción del código fuente.


 Descripción de cómo debe estructurarse, administrarse y
escribirse el código fuente.

 Considera por separado el diseño de objetos y sistema.


Estrategias de Diseño
En el diseño se deben tomar decisiones con base en los
siguientes conceptos:

 Arquitectura.

 Robustez.

 Reuso.

 Extensibilidad del sistema.

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 5


Estrategias de Diseño
 Arquitectura
 Se refiere a la organización de las clases dentro del sistema
partiendo del Modelo de Análisis. (Patrones Arquitectónicos)

 Robustez
 El sistema debe estar protegido contra errores y ofrecer
diagnóstico que permita identificar fallas.

 Reuso
 Cuanto más se pueda reutilizar el código será mejor la robustez
del sistema (Patrones de diseño).

 Extensibilidad
 El sistema debe presentar características que permitan en un
futuro agregarle nuevas funcionalidades.

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 6


Modelo de Diseño
 Para llevar acabo los objetivos del modelo de
diseño, se deben considerar por separado los
siguientes aspectos:

 Diseño de objetos.

 Diseño de sistema.

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 7


Diseño de Objetos
 Se refina y formaliza el modelo para generar
especificaciones detalladas de todos los
objetos, incluyendo sus operaciones y atributos.

 Se describe cómo interactúan los objetos en


cada caso de uso específico, especificando que
debe hacer cada operación en cada objeto.

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 8


Diseño de Objetos
 Para diseñar un objeto se seguirá el diseño por
responsabilidades (RDD – Responsability – Driven
Design):

 Diseño basado en un modelo cliente – servidor.


 Cliente: Genera alguna petición hacia otra clase.

 Servidor: Cuando recibe peticiones de otras clases.

 Las clases definen responsabilidades, servicios, colaboraciones.

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 9


Diseño de Objetos

 Responsabilidades
 Especificación del comportamiento de cada una
de las clases (Operaciones y Métodos).
 Se identifican a través del Modelo de Casos de
Uso.

 Colaboraciones
 Solicitudes de un objeto cliente a un objeto
servidor.

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 10


Diseño de Objetos

 Jerarquías
 Mediante las jerarquías se logra agrupar una
arquitectura de clases más compacta (uso de la
herencia), pudiendo reducir el número de clases

 Mecanismos utilizados
 Polimorfismo
 Clases Abstractas (Agrupación de responsabilidades
comunes)

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 11


Diseño de Objetos

 Tarjetas de clases o CRC (Case –


Responsibility - Colaboration):
 Permiten visualizar la información de cada clase.
Clase:
Descripción:
Módulo:
Estereotipo:
Propiedades:
Superclases:
Subclases:
Atributos:
Responsabilidades Colaboraciones

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 12


Diseño de Objetos

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 13


Diseño de Objetos

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 14


Diseño de Sistema
 Selección del lenguaje de implementación.

 Incorporación de bibliotecas necesarias, como


Interfaces Gráficas de Usuario (GUI), bibliotecas
matemáticas y de estructura de datos.

 Incorporación de bases de datos.

 Incorporación de archivos.

 Consideraciones de procesamiento, como


concurrencia, paralelismo, distribución y tiempo real.
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 15
¿Qué es un Patrón?
 Un patrón es un modelo que podemos
seguir para realizar algo. Los patrones
surgen de la experiencia de seres humanos
de tratar de lograr ciertos objetivos.

 Los patrones capturan la experiencia


existente y probada para promover buenas
prácticas.

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 16


Patrones
 Patrones Arquitectónicos
 Describen prácticas para definir la arquitectura
del sistema.

 Patrones de Diseño
 Describen soluciones a problemas mucho más
específicos en el diseño.

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 17


Patrones Arquitectónicos
 Los patrones arquitectónicos determinan:
 La organización estructural del sistema.
 ¿Cómo será el diseño de la solución?
 La selección de elementos estructurales.
 ¿Cuáles serán los componentes?
 El comportamiento de los componentes.
 ¿Cuál será la función de cada componente?
 Las interfaces entre ellos.
 ¿Cómo se van a comunicar esos componentes?

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 18


Patrones Arquitectónicos
 Algunos patrones arquitectónicos son los
siguientes:

 Patrón de Arquitectura basada en Capas.

 Patrón MVC.

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 19


Patrón de Arquitectura basada
en Capas
 Descompone una aplicación
en un conjunto de capas
Cliente
independientes y
ordenadas jerárquicamente.
Capa N
 Cada capa:
 Usa lo servicios de la capa
inmediatamente inferior. Capa N-1

 Ofrece servicios a la capa


Capa 1
inmediatamente superior.

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 20


Patrón de Arquitectura basada
en Capas
 Ventajas:
 Reutilización de una capa en varias aplicaciones.
 Permite la estandarización.

 Desventajas:
 Si el número de capas es muy alto, puede ser una solución
ineficiente.

 Trabajo innecesario de paso de argumentos entre niveles.

 Si hay pocas capas el sistema será poco organizado. Si


hay excesivas capas el sistema será muy complejo e
ineficiente.

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 21


Patrón de Arquitectura basada
en Capas
 La metodología presentada
por Larman presupone una Cliente
estructura de tres capas:
Capa de Presentación
 Capa de Presentación.
Capa del Dominio de la
 Capa del Dominio de la Aplicación
Aplicación.
Capa del Repositorio
 Capa del Repositorio.

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 22


Patrón de Arquitectura basada
en Capas

Cliente
 Capa de Presentación:
 Encargada de presentar la
información. (Formato de Capa de Presentación
reportes, gráficos, etc.)
Capa del Dominio de la
 Interfaces de usuario. Aplicación

 Interactuar con las capas Capa del Repositorio


inferiores del sistema.

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 23


Patrón de Arquitectura basada
en Capas

 Capa del Dominio de la Cliente


Aplicación:
 Implementa las funciones
solicitadas por los clientes a
través de a interfaz de Capa de Presentación
presentación. (Ej: Validar Cliente)

 Reúne todos los componentes del Capa del Dominio de la


software que apoyan los Aplicación
procesos de negocio que llevan a
cabo los usuarios.
Capa del Repositorio
 También se conoce como la capa
de la Lógica de la aplicación.

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 24


Patrón de Arquitectura basada
en Capas

 Capa del Repositorio: Cliente


 Gestiona todos los elementos
de información. (Archivos,
Capa de Presentación
XML, BD).

 Reúne todos los componentes Capa del Dominio de la


de software que se encargan Aplicación
del manejo de datos
persistentes.
Capa del Repositorio

 También conocida como capa


de gestión de recursos.

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 25


Patrón de Arquitectura basada
en Capas
 Tipos de diseños basados en la arquitectura
en capas:

 Diseño top-down de capas.

 Diseño bottom-up de capas.

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 26


Patrón de Arquitectura basada
en Capas
 Diseño top-down de
capas: Cliente

 Se define la
funcionalidad del sistema Capa de Presentación
desde el punto de vista
del cliente.
Capa del Dominio de la
Aplicación
 Se propaga por capas
según las necesidades
identificadas en las Capa del Repositorio
capas anteriores.

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 27


Patrón de Arquitectura basada
en Capas
 Diseño top-down de capas:
 Ventaja:
 Al inicio del proyecto se tienen claras las funcionalidades
y se dirige el desarrollo sobre ellas.

 Desventaja:
 Sólo es posible aplicarlos a sistemas desarrollados desde
cero.

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 28


Patrón de Arquitectura basada
en Capas
 Diseño bottom-up de
capas:
Cliente
 Consecuencia de la
necesidad de integrar de
sistemas.
Capa de Presentación
 Es necesario evaluar
recursos existentes.
Capa del Dominio de la
 Encapsular la funcionalidad Aplicación
existente.

 Adaptar la salida de la Capa del Repositorio


aplicación a las
necesidades del cliente.

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 29


Patrón de Arquitectura basada
en Capas
 Diseño bottom-up de capas:
 Ventaja:
 Los componentes por lo general son poco acoplados y
pueden ser reutilizados.

 Desventaja:
 Viene impuesto por necesidades existentes.

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 30


Patrón MVC
 Modelo, Vista, Controlador (MVC, Model –
View – Control)
Es un patrón de arquitectura de software que busca
agrupar los componentes de la aplicación en tres niveles
lógicos.
<<Controlador>>
Nombre de la clase

<<Modelo>> <<Vista>>
Nombre de la clase Nombre de la clase

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 31


Patrón MVC
 Modelo:
 El modelo es la representación específica de la
información con la cual el sistema opera.

 Los objetos del modelo guardan información sobre el


estado interno del sistema a corto y largo plazo.

 Se encarga de la lógica de datos y de asegurar la


integridad de estos. Ej: Validar que no se compre un
número negativo de unidades.

 Permite derivar nuevos datos. Ej: Calcular si hoy es el


cumpleaños del usuario o los totales, impuestos en un
carrito de la compra.

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 32


Patrón MVC
 Vista:
 La Vista está formada por el conjunto de objetos
que manejan la presentación visual de los datos
representados por el Modelo.

 Genera una representación visual del Modelo y


muestra los datos al usuario.

 Interactúa con el Modelo a través de una


referencia al propio Modelo.

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 33


Patrón MVC
 Controlador:
 Este responde a eventos, usualmente acciones
del usuario e invoca cambios en el Modelo y
probablemente en la Vista.

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 34


Patrón MVC
 Ejemplo: (Contexto)
 En el Modelo de Requisitos se obtuvo el siguiente Diagrama de
Casos de Uso del Sistema:
Sistema

Agregar Estudiante

Administrador

Ver Estudiantes

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 35


Patrón MVC
 Igualmente en el Modelo de Requisitos se obtuvo el siguiente
Modelo de Objetos del Dominio:

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 36


Patrón MVC
 En el Modelo de Análisis se identificaron los siguientes objetos:

Controlador
Agregar
Estudiante
AgregarEstudiante

VentanaPrincipal

Escuela

VerEstudiantes
Controlador
Ver

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 37


Patrón MVC
 Finalmente, en el Modelo de Diseño se aplica el patrón Modelo –
Vista – Controlador de la siguiente manera:

View Control Model

Administrador

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 38


Patrón MVC
View Control Model

Escuela
VentanaPrincipal -codigo
ControladorPrincipal
-nombreEscuela
+getCodigo()
+setCodigo() escuela
+getNombreEscuela()
+setNombreEscuela()
controlVer +getEstudiantes()
ventVer
+setEstudiantes()
ControladorVer estudiantes
VerEstudiantes +agregarEstudiante() *
Estudiante
+buscarEstudiantes() -nombre
ventAgregar controlAgregar
-apellido
-cedula
AgregarEstudiante ControladorAgregar -sexo
+getNombre()
+setNombre()
+agregarEstudiante()
+getApellido()
+setApellido()
+getCedula()
+setCedula()
+getSexo()
+setSexo()
+getEscuela()
+setEscuela()

Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008 39

También podría gustarte