1. Diseño – qué es
Significado:
Proceso por el que se genera una solución a un problema
Descripción de la solución
(Gp:) Diseño 1
(Gp:) Diseño 2
(Gp:) Diseño n
(Gp:) …
Distintos Diseños (Alternativas) permiten cumplir con los requerimientos, pero cada uno ofrece prestaciones específicas
Requeri-
mientos
Restricciones
DISEÑO CONCEPTUAL
función
DISEÑO
TÉCNICO
forma
QUÉ
CÓMO
Constructores
del Sistema
Diseñadores
del Sistema
Clientes
Diseño y Especificación de Requerimientos(1)
Diseño y Especificación de Requerimientos(2)
“El usuario podrá enviar mensajes a cualquier usuario en cualquier otra computadora en red”
Topología de Red
Protocolo
Velocidad (bps)
. . .
DISEÑO
TÉCNICO
DISEÑO
CONCEPTUAL
Descomposición y Modularidad
Determinar un conjunto de componentes e interfaces entre ellos, que satisfacen un conjunto especificado de requerimientos (De Marco 1982)
Métodos de descomposición (Wasserman 1995)
Modular (a partir de las funciones)
A partir de los Datos
A partir de Eventos (y transiciones de Estados)
A partir de las Entradas (de afuera hacia adentro)
Orientado a Objetos
Sistema Modular: cuando cada una de las actividades la realiza exactamente un único componente donde además están bien definidas c/u de sus entradas y salidas.
Proceso de Descomposición
Nivel Superior
Primer Nivel de
descomposición
Segundo Nivel de
descomposición
Niveles de Diseño
(1) Arquitectura:
Requerimientos => componentes del sistema y sus interconexiones
(2) Diseño del Código:
Módulos => algoritmos y estructuras de datos
(3) Diseño de la Ejecución:
Algoritmos (código) => asignación de memoria, tiempo de ejecución, optimizaciones de código
ENFOQUE: trabajar desde lo general a lo particular
Proceso genérico de Diseño (Sommerville)
Diseño
Arquitectónico
Especificación
subsistemas
Especificación
interfaces
Diseño
estructuras
de datos
Diseño
algoritmos
Diseño
elementos
NIVEL 1
NIVEL 2
NIVEL 3: se realiza sobre el nivel 2
2. Arquitectura (1)
Definición, estilos y evaluación:
Primer nivel de descomposición, que muestra como se organiza el sistema en términos de sus componentes y las interacciones entre ellos.
Cambiar la Arquitectura de un producto ya construido en general exige mucho esfuerzo
=> Evaluación de Arquitecturas
Distintos “estilos” que definen familias de sistemas en términos de patrones de organización estructural.
Un estilo de arquitectura implica sus componentes, conectores y exigencias al combinarlos.
Identificarlos y caracterizarlos para facilitar la comunicación entre diseñadores
2. Arquitectura (2)
Influencia y características:
Sus características condicionan las características del producto final (escalabilidad, capacidad, desempeño, consistencia, mantenibilidad, compatibilidad, etc.)
Estilo y estructura particular elegidos pueden depender de Requerimientos No Funcionales:
1 – Desempeño: localizar operaciones críticas en un número reducido de subsistemas con poca comunicación. Componentes de grano grueso.
2 – Seguridad: estructurar en capas con los recursos más críticos protegidos por las capas más internas con alto nivel de validación.
3 – Mantenibilidad: componentes autocontenidos que puedan ser intercambiados con facilidad, evitando estructuras de datos compartidas. Componentes de grano fino.
CONFLICTO DE INTERESES: entre los requerimientos 1 y 3, si se tienen ambos se deberá buscar una solución intermedia.
2. Arquitectura (3)
Elementos para la documentación:
SAD (Software Architecture Description) salida del proceso de diseño de arquitectura, donde se incluyen modelos gráficos que muestran perspectivas distintas del sistema y descripciones textuales.
Documentarla para que pueda ser utilizada y mantenida por otros, con suficiente detalle, sin ambiguedades ni repeticiones, registrando decisiones tomadas.
Notaciones: UML general, accesible.
ADL’s formales, para expertos.
Complejidad se maneja documentando diferentes vistas de la arq., proyección en una dimensión mostrada desde una perspectiva, sin tener en cuenta entidades no relevantes a esa perspectiva.
The “4+1” View Model of Software Architecture – Kruchten’95
Vistas definidas: lógica, procesos, implementación, física y CU. Todas son guiadas por los CU (o escenarios) significativos a la arquitectura
Página siguiente |