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 |