Modelo de Diseño - Facultad de Ciencias-UCV

Download Report

Transcript Modelo de Diseño - Facultad de Ciencias-UCV

Modelo de Diseño:
Diseño y Patrones Arquitectónicos
Centro ISYS
Escuela de Computación
Facultad de Ciencias. UCV
Profa. Zulma González
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.
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
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.
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
3
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.
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
4
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.


La selección de elementos estructurales.


¿Cuáles serán los componentes?
El comportamiento de los componentes.


¿Cómo será el diseño de la solución?
¿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
independientes y
ordenadas jerárquicamente.
Cliente
Capa N

Cada capa:

Usa lo servicios de la capa
inmediatamente inferior.

Ofrece servicios a la capa
inmediatamente superior.
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Capa N-1
Capa 1
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
estructura de tres capas:
Cliente
Capa de Presentación


Capa de Presentación.
Capa del Dominio de la
Aplicación.
Capa del Dominio de la
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
reportes, gráficos, etc.)

Interfaces de usuario.

Interactuar con las capas
inferiores del sistema.
Capa de Presentación
Capa del Dominio de la
Aplicación
Capa del Repositorio
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
Aplicación:


Implementa las funciones
solicitadas por los clientes a
través de a interfaz de
presentación. (Ej: Validar Cliente)
Reúne todos los componentes del
software que apoyan los
procesos de negocio que llevan a
cabo los usuarios.
Cliente
Capa de Presentación
Capa del Dominio de la
Aplicación
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

Cliente
Capa del Repositorio:


Gestiona todos los elementos
de información. (Archivos,
XML, BD).
Reúne todos los componentes
de software que se encargan
del manejo de datos
persistentes.
Capa de Presentación
Capa del Dominio de la
Aplicación
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:

Se define la
funcionalidad del sistema
desde el punto de vista
del cliente.
Cliente
Capa de Presentación
Capa del Dominio de la
Aplicación

Se propaga por capas
según las necesidades
identificadas en las
capas anteriores.
Capa del Repositorio
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.

Encapsular la funcionalidad
existente.

Adaptar la salida de la
aplicación a las
necesidades del cliente.
Capa del Dominio de la
Aplicación
Capa del Repositorio
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>>
Nombre de la clase
<<Vista>>
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
AgregarEstudiante
Estudiante
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
Model
Control
Escuela
VentanaPrincipal
ControladorPrincipal
controlVer
ventVer
ControladorVer
VerEstudiantes
-codigo
-nombreEscuela
+getCodigo()
+setCodigo()
+getNombreEscuela()
+setNombreEscuela()
+getEstudiantes()
+setEstudiantes()
+agregarEstudiante()
escuela
*
estudiantes
Estudiante
+buscarEstudiantes()
ventAgregar
controlAgregar
AgregarEstudiante
ControladorAgregar
+agregarEstudiante()
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
-nombre
-apellido
-cedula
-sexo
+getNombre()
+setNombre()
+getApellido()
+setApellido()
+getCedula()
+setCedula()
+getSexo()
+setSexo()
+getEscuela()
+setEscuela()
39