Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad Ingeniería en Sistemas Computacionales...
-
Upload
desideria-jacinto -
Category
Documents
-
view
252 -
download
0
Transcript of Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad Ingeniería en Sistemas Computacionales...
![Page 1: Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad Ingeniería en Sistemas Computacionales Especialidad en Ingeniería de Software Arquitectura de.](https://reader036.fdocuments.co/reader036/viewer/2022081420/5665b4451a28abb57c90936b/html5/thumbnails/1.jpg)
Unidad 4Diseño Arquitectónico
Basado en la Funcionalidad
Ingeniería en Sistemas ComputacionalesEspecialidad en Ingeniería de Software
Arquitectura de Software
![Page 2: Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad Ingeniería en Sistemas Computacionales Especialidad en Ingeniería de Software Arquitectura de.](https://reader036.fdocuments.co/reader036/viewer/2022081420/5665b4451a28abb57c90936b/html5/thumbnails/2.jpg)
• El diseño arquitectónico es un proceso de conversión de requerimientos en una arquitectura de software que cumple con los requisitos funcionales.
RF Diseño Arquitectónico AS
![Page 3: Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad Ingeniería en Sistemas Computacionales Especialidad en Ingeniería de Software Arquitectura de.](https://reader036.fdocuments.co/reader036/viewer/2022081420/5665b4451a28abb57c90936b/html5/thumbnails/3.jpg)
• La primera fase del proceso de diseño basado en la funcionalidad es:
Determinar una arquitectura inicial que capture los requerimientos funcionales del sistema, sin ignorar los requisitos de calidad.
![Page 4: Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad Ingeniería en Sistemas Computacionales Especialidad en Ingeniería de Software Arquitectura de.](https://reader036.fdocuments.co/reader036/viewer/2022081420/5665b4451a28abb57c90936b/html5/thumbnails/4.jpg)
Diseño Arquitectónico Basado en la Funcionalidad
La primera fase se compone de cuatro pasos:1. Definir el contexto del sistema
2. Identificar los arquetipos (un patrón o modelo donde todas las cosas del mismo tipo son representaciones o copias)
3. Descomponer la arquitectura en componentes
4. Describir instancias del sistema (verificación)
![Page 5: Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad Ingeniería en Sistemas Computacionales Especialidad en Ingeniería de Software Arquitectura de.](https://reader036.fdocuments.co/reader036/viewer/2022081420/5665b4451a28abb57c90936b/html5/thumbnails/5.jpg)
Contexto del Sistema
• Definir las interfaces del sistema con entidades externas. • Identificar cada entidad externa a un nivel:
– Nivel superior. El sistema es usado por otros sistemas para un comportamiento mas inteligente o completo.
– Nivel inferior. El sistema usa o depende de otros sistemas para su funcionamiento. (interfaces de red, sensores, etc)
– Nivel igual al sistema. Sistemas en otro dominio que proporcionan información para integración de requerimientos.
• Asociar requerimientos funcionales a cada interfaz. • Los requerimientos de calidad tanto operacionales como
de desarrollo deben ser también asociados con interfaces.
![Page 6: Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad Ingeniería en Sistemas Computacionales Especialidad en Ingeniería de Software Arquitectura de.](https://reader036.fdocuments.co/reader036/viewer/2022081420/5665b4451a28abb57c90936b/html5/thumbnails/6.jpg)
Sistema
Usado por
Depende de
usausa
![Page 7: Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad Ingeniería en Sistemas Computacionales Especialidad en Ingeniería de Software Arquitectura de.](https://reader036.fdocuments.co/reader036/viewer/2022081420/5665b4451a28abb57c90936b/html5/thumbnails/7.jpg)
Contexto para Líneas de Productos
• Para líneas de productos de software deben identificarse y especificarse explícitamente la variabilidad de las interfaces soportadas por varios productos en la misma línea.
![Page 8: Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad Ingeniería en Sistemas Computacionales Especialidad en Ingeniería de Software Arquitectura de.](https://reader036.fdocuments.co/reader036/viewer/2022081420/5665b4451a28abb57c90936b/html5/thumbnails/8.jpg)
Ejemplo 1. Información del capitulo 3.
Sistema de Alarmas Contra Incendio
• Dominio– Función Principal del sistema
• Monitorear un conjunto de detectores• Cuando un detector se activa, enviar alguna salida
– Tipos de Salidas: Campanas, texto en pantallas, activar extinguidores, avisar a bomberos, etc.
– Tipos de Detectores: medidor de temperatura, detector de humo– Rango del sistema: Sistemas sensitivos, detectores avanzados de alta
velocidad, etc.– Las alarmas están distribuidas físicamente en uno o más edificios– Funcionalidad: monitoreo constante con activación de salidas– Plataformas: microcontroladores de 8 o 16 bits– Configuración: asignar nombres a dispositivos, localización física y
relaciones ente detectores y salidas
![Page 9: Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad Ingeniería en Sistemas Computacionales Especialidad en Ingeniería de Software Arquitectura de.](https://reader036.fdocuments.co/reader036/viewer/2022081420/5665b4451a28abb57c90936b/html5/thumbnails/9.jpg)
Sistema de Alarmas Contra Incendio
• Estado Actual de Sistemas:– Sistemas con diferentes kernels en tiempo real– Diferente hardware– Diferentes lenguajes de programación – Diferentes idiomas– Funcionalidad específica para cada país
![Page 10: Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad Ingeniería en Sistemas Computacionales Especialidad en Ingeniería de Software Arquitectura de.](https://reader036.fdocuments.co/reader036/viewer/2022081420/5665b4451a28abb57c90936b/html5/thumbnails/10.jpg)
Sistema de Alarmas Contra Incendio
• Requerimientos de Calidad– Configurabilidad: simple de obtener instancias– Demostrabilidad: simplificar pruebas y
facilitar la demostración de la confiabilidad– Eficiencia: El sistema no debe ser mas lento
que un sistema actual (específico)– Mantenibilidad: el sistema podrá incorporar
nuevos requerimientos
![Page 11: Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad Ingeniería en Sistemas Computacionales Especialidad en Ingeniería de Software Arquitectura de.](https://reader036.fdocuments.co/reader036/viewer/2022081420/5665b4451a28abb57c90936b/html5/thumbnails/11.jpg)
Sistema de Alarmas Contra Incendio
• Configuración y mantenimiento son los principales atributos
• Requerimientos potenciales:– Cambios en tecnología (detectores/extinguidores)– Compatibilidad con otros sistemas para compartir
información– Hardware. Nuevo hardware podrá ser incorporado– Interfaces Hombre-Máquina. Incorporar múltiples
interfaces (focos, botones, teclado, gráficas, audio, etc.)– Instancias adaptadas al usuario. Se podrán incorporar
requerimientos específicos de un cliente.
![Page 12: Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad Ingeniería en Sistemas Computacionales Especialidad en Ingeniería de Software Arquitectura de.](https://reader036.fdocuments.co/reader036/viewer/2022081420/5665b4451a28abb57c90936b/html5/thumbnails/12.jpg)
Sistema de Alarmas Contra Incendio
• Consideraciones:– Son los detectores y alarmas (hardware) parte del
sistema o no?
– El sistema de comunicación es parte del sistema?
– Actividades del operador:• Recibir alarmas
• Activar y desactivar partes del sistema
• Monitorear el comportamiento del sistema
– Interacción con otros sistemas automatizados del edificio (desactivar control de puertas)
![Page 13: Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad Ingeniería en Sistemas Computacionales Especialidad en Ingeniería de Software Arquitectura de.](https://reader036.fdocuments.co/reader036/viewer/2022081420/5665b4451a28abb57c90936b/html5/thumbnails/13.jpg)
Diagrama de Contexto SACI
Sistema de Alarmas Contra Incendio
interfaz interfaz
interfaz interfaz
Detector Salida
Sist. Autom.edificio
Operador
Asociar RF con interfaces
![Page 14: Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad Ingeniería en Sistemas Computacionales Especialidad en Ingeniería de Software Arquitectura de.](https://reader036.fdocuments.co/reader036/viewer/2022081420/5665b4451a28abb57c90936b/html5/thumbnails/14.jpg)
Paso 2. Identificación de Arquetipos
• Los límites del sistema se establecen en la primera etapa (definición del contexto)
• El objetivo de la segunda etapa es identificar y definir los arquetipos.
• Actividad: – Encontrar un conjunto pequeño de entidades
abstractas que al combinarlas sean capaces de describir la mayor parte del comportamiento del sistema.
![Page 15: Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad Ingeniería en Sistemas Computacionales Especialidad en Ingeniería de Software Arquitectura de.](https://reader036.fdocuments.co/reader036/viewer/2022081420/5665b4451a28abb57c90936b/html5/thumbnails/15.jpg)
Identificación de Arquetipos• Entender el papel que representa el sistema en su contexto.
• Perspectiva holista del sistema (Top-Down), establecer partes de
la funcionalidad e integrarlas al sistema completo. (proceso
iterativo)
• Identificar candidatos (aparecen recurrentemente en las
instancias)
• De los candidatos, seleccionar un conjunto pequeño, algunos
podrán ser excluidos y otros compactados
• Identificar relaciones entre los arquetipos
Este es un proceso difícil que depende en gran parte de la creatividad, intuición y experiencia del AS
![Page 16: Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad Ingeniería en Sistemas Computacionales Especialidad en Ingeniería de Software Arquitectura de.](https://reader036.fdocuments.co/reader036/viewer/2022081420/5665b4451a28abb57c90936b/html5/thumbnails/16.jpg)
Sistema de Alarmas Contra Incendio (SACI)
• Arquetipos :Buscar las entidades abstractas que capturan el comportamiento de diversas entidades.
• Candidatos:– Que requerimos para crear una instancia de un
SACI?– Como podemos localizar alarmas y detectores?– Como controlar a las alarmas y detectores?
![Page 17: Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad Ingeniería en Sistemas Computacionales Especialidad en Ingeniería de Software Arquitectura de.](https://reader036.fdocuments.co/reader036/viewer/2022081420/5665b4451a28abb57c90936b/html5/thumbnails/17.jpg)
Arquetipos
– Punto: Representa una abstracción dentro del dominio del SACI. Lugar de ubicación de otras entidades.
– Detector: Captura la funcionalidad principal del equipo de detección del sistema.
– Salida: Este arquetipo contiene funcionalidad de tipo genérica en el sistema. (Cualquier dispositivo/proceso de salida)
– Unidad de Control: La naturaleza del sistema es distribuida. Una unidad de control controla a varios puntos los cuales interactúan con detectores y salidas.
![Page 18: Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad Ingeniería en Sistemas Computacionales Especialidad en Ingeniería de Software Arquitectura de.](https://reader036.fdocuments.co/reader036/viewer/2022081420/5665b4451a28abb57c90936b/html5/thumbnails/18.jpg)
Sistema de Alarmas Contra Incendio (SACI)
Punto
Detector Salida
Unidad de Control
Se comunica con
![Page 19: Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad Ingeniería en Sistemas Computacionales Especialidad en Ingeniería de Software Arquitectura de.](https://reader036.fdocuments.co/reader036/viewer/2022081420/5665b4451a28abb57c90936b/html5/thumbnails/19.jpg)
Descomposición
• Los arquetipos capturan las abstracciones mas importantes del sistema, pero no representan la arquitectura del sistema.
• Una vez que se han identificado los componentes, deben identificarse las relaciones (conectores) entre estos.
• Pueden definirse varios niveles para representar algunas partes críticas del sistema.– Verificar que se cumplan los requerimientos– Mantener la complejidad manejable
![Page 20: Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad Ingeniería en Sistemas Computacionales Especialidad en Ingeniería de Software Arquitectura de.](https://reader036.fdocuments.co/reader036/viewer/2022081420/5665b4451a28abb57c90936b/html5/thumbnails/20.jpg)
Paso 3. Identificar y Especificar Componentes
• Interfaces del sistema. Cada interfaz debe estar conectada a un componente.
• Dominio. Asociar los dominios cubiertos por el sistema con componentes.– Dominio de la aplicación. Asociado al problema
– Dominio de Computación. Protocolos de comunicación, procesos, etc.
• Capas de abstracción. Definir una serie de capas que implementan la funcionalidad y simplifican la especificación
![Page 21: Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad Ingeniería en Sistemas Computacionales Especialidad en Ingeniería de Software Arquitectura de.](https://reader036.fdocuments.co/reader036/viewer/2022081420/5665b4451a28abb57c90936b/html5/thumbnails/21.jpg)
• Entidades de dominio. Identificar componentes con entidades del dominio del problema. Los expertos conocen el dominio de la aplicación.
• Instancias de los arquetipos. Los arquetipos identifican patrones que aparecen constantemente en el sistema y pueden representar componentes.
Paso 3. Identificar y Especificar Componentes
![Page 22: Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad Ingeniería en Sistemas Computacionales Especialidad en Ingeniería de Software Arquitectura de.](https://reader036.fdocuments.co/reader036/viewer/2022081420/5665b4451a28abb57c90936b/html5/thumbnails/22.jpg)
Componentes• Dimensiones de descomposición
– Funcionalidad vs. Basado en entidades– Dominio del Problema vs. Dominio de Solución
Compiladores
Sistemas de información
(3 capas)
Teoría de control
GUIs
Funcionalidad Entidad(LP Pascal, C) (LP Java, C++)
Dominio de Solución
Dominio del Problema
![Page 23: Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad Ingeniería en Sistemas Computacionales Especialidad en Ingeniería de Software Arquitectura de.](https://reader036.fdocuments.co/reader036/viewer/2022081420/5665b4451a28abb57c90936b/html5/thumbnails/23.jpg)
Componentes y Relaciones
Una vez que se han identificado los componentes, deben identificarse las relaciones entre estos.
• Componentes por capas de abstracción, las relaciones se dan entre capas.
• Arquetipos, las relaciones entre componentes se definen con las relaciones entre las instancias de los arquetipos.
• Se pueden usar escenarios de uso para identificar las relaciones entre componentes, i.e. Que componentes se comunican con otros.
• Maximizar Cohesión – Minimizar Acoplamiento
![Page 24: Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad Ingeniería en Sistemas Computacionales Especialidad en Ingeniería de Software Arquitectura de.](https://reader036.fdocuments.co/reader036/viewer/2022081420/5665b4451a28abb57c90936b/html5/thumbnails/24.jpg)
Componentes de un Sistema de Alarmas Contra Incendio
Puntos físicos Comunicación
Sección
Instancia del arquetipo Punto
Entidad de dominio en SACI
Componente basado en El dominio de la solución
Controlador y monitorde puntos físicos
![Page 25: Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad Ingeniería en Sistemas Computacionales Especialidad en Ingeniería de Software Arquitectura de.](https://reader036.fdocuments.co/reader036/viewer/2022081420/5665b4451a28abb57c90936b/html5/thumbnails/25.jpg)
Instancias del Sistema
• Antes de evaluar la arquitectura diseñada, deben crearse algunas instancias para verificar que la arquitectura realmente corresponde al sistema cumpliendo con los requerimientos establecidos.
![Page 26: Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad Ingeniería en Sistemas Computacionales Especialidad en Ingeniería de Software Arquitectura de.](https://reader036.fdocuments.co/reader036/viewer/2022081420/5665b4451a28abb57c90936b/html5/thumbnails/26.jpg)
• Los componentes de la arquitectura del sistema son recursivamente descompuestos en componentes de nivel mas bajo.
• Cada componente contiene:– instancias de arquetipos que proveen la funcionalidad
del sistema o– se representa por un arquetipo individual
• Se verifican las relaciones genéricas entre las instancias de los arquetipos y se evalúa la compatibilidad entre las abstracciones que componen al sistema.
• Se verifica que exista suficiente variabilidad definiendo múltiples instancias que representen varios productos.
![Page 27: Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad Ingeniería en Sistemas Computacionales Especialidad en Ingeniería de Software Arquitectura de.](https://reader036.fdocuments.co/reader036/viewer/2022081420/5665b4451a28abb57c90936b/html5/thumbnails/27.jpg)
Ver figura 18 de pag. 71
Unidad de Control
Detector deHumo
Detector deHumo
Detector deHumo
Detector deHumo
Detector deHumo Alarma
Interfaz deUsuario
![Page 28: Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad Ingeniería en Sistemas Computacionales Especialidad en Ingeniería de Software Arquitectura de.](https://reader036.fdocuments.co/reader036/viewer/2022081420/5665b4451a28abb57c90936b/html5/thumbnails/28.jpg)
Prioridad
Arquitectura deSoftware
Especificación deRequerimientos
Resultados de Evaluación
Requerimientos deCalidad
RequerimientosFuncionales
Expediente de escenarios
Diagrama deContexto
Interfase
Arquetipos Relación
Componentes
Relación
Decisión de Diseño
Estructura