Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad

Slides:



Advertisements
Presentaciones similares
U.M.L A/Gx. Diego Gutiérrez Application Analysis and Design.
Advertisements

INGENIERÍA DE SOFTWARE Introducción Arquitectura de Software
Fundamentos de Diseño de Software INFT.1
Lenguaje Unificado de Modelado
TECNICATURA UNIVERSITARIA EN INFORMATICA
DISEÑO ORIENTADO AL OBJETO
CASO DE ESTUDIO. El software HogarSeguro le permite al propietario de la casa configurar el sistema de seguridad una vez que este se instala, controla.
Carlos Rojas Kramer Universidad Cristóbal Colón
Prof. César Luza Montero
COMPONENTIZACIÓN DE ALGORITMOS GENETICOS Y SU IMPLEMENTACIÓN EN UNA PLATAFORMA ABIERTA PARA APRENDIZAJE COMPUTACIONAL.
CONCEPTOS Y PRINCIPIOS ORIENTADOS A OBJETOS
CONCEPTOS Y PRINCIPIOS DE DISEÑO
Administración de redes
Ingeniería del Software
Análisis y Diseño O.O. Click to add notes Preguntas del diseño :
Aspectos Avanzados de la Tecnología de Objetos
DIAGRAMA DE COMPONENTES INTEGRANTES Córdova Vásquez Giovanny Escobar Alvares Calixto Gomez Quinteros Adelaida Pinto Flores Yarmila.
M.S.C. Ivette Hernández Dávila
SISTEMAS DE INFORMACION
Requerimientos No Funcionales
Unified Modeling Language (Lenguaje de Modelamiento unificado)
Análisis y Diseño orientado a objetos con UML.
Fundamentos de Programación
Modelado Arquitectónico
 LOPEZ MENDOZA CORINA AMALINALLI  GRUPO 304.  Una base de datos o banco de datos (en ocasiones abreviada BB.DD.) es un conjunto de datos pertenecientes.
Diseño del Software Diseño de datos Diseño arquitectónico
(c) P. Gomez-Gil, INAOE DISEÑO DE COMPONENTES DE SOFTWARE * NOTAS DEL CURSO Ingeniería de Software I DRA. MARIA DEL PILAR GÓMEZ GIL INAOEP.
CONCEPTOS DE NUEVOS SISTEMAS 1. Un sistema de manejo de información 1. Un sistema de manejo de información Desde la perspectiva del usuario final todas.
Arquitectura de una aplicación
Ingeniería de Software Orientado a Objetos
DISEÑO DE SOFTWARE 1ª. Parte
Bases de Datos Modelamiento.
Poder Expresivo de UML 2.0 para especificar arquitecturas de Software
Comunicación y Multimedia
Administración Proyectos Jorge Baracaldo Robin Ochoa.
LENGUAJES DE PROGRAMACIÓN
Ingeniería en Sistemas de Información Diseño de Sistemas (3K1)
Ingeniería del Software
Ingeniería en Sistemas de Información
Organización y Estructuración de Datos
SICSTRA Sistema de Información para el control de solicitudes de tramites jurídicos Ministerio de Justicia y Seguridad Pública.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Arquitecturas de Sistemas Interactivos: Introducción
Importancia en la efectividad del:
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
VISIÓN GENERAL DE LA IS Con independencia del modelo de proceso hay tres fases genéricas: Fase de definición Fase de desarrollo Fase de mantenimiento Cada.
El modelo de análisis tiene como objetivo generar una arquitectura de objetos que sirva como base para el diseño posterior del sistema. Dependiendo del.
Ing. Noretsys Rodríguez. Definición de Conceptos  Falla: Ocurre cuando un programa no se comporta de manera adecuada. Es una propiedad estadística de.
Ingeniería del software
Diseño Arquitectonico
Modelo de 3 capas.
Diseño de Sistemas.
Ingeniería de Requisitos
INSTALACIÓN Y ADMINISTRACIÓN DE REDES DE ÁREA LOCAL
Fundamentos de Sistemas Expertos
Fundamentos técnicos de la información Andrea Del Salto.
Ingeniería de Requerimientos
Unidad 3 MODELO DE ANALISIS.
Unified Modeling Language (Lenguaje de Modelamiento unificado)
UNIDAD 2: “Características del Modelado UML” CONTENDIDO Elaborado por: Ingeniero Harold Cabrera Meza Actualizado por: Ingeniero Nilson Albeiro Ferreira.
Ciclo de Vida del Software
Proceso de desarrollo de Software
Arquitectura de una aplicación Arquitectur a: desarrolla un plan general del sistema, asegurando que las necesidades de los usuarios sean atendidas. Ingeniería.
Especificación del Problema Partimos del hecho de un programador no puede resolver un problema que no entiende. Por esta razón, la primera etapa en todo.
Modelo de procesos de software
CICLO DE VIDA DE UN SOFTWARE. Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados, que forman parte de.
Fundamentos de Ingeniería de Software
Verificación y Validación del Software
VERIFICACIÓN Y VALIDACIÓN DE SISTEMAS 3.10 Fase de manejo de requerimientos 4.1 Modelado de pruebas en UML Ponente: ing. Alejandro tapia vazquez.
Entregables del Proyecto
Transcripción de la presentación:

Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad Ingeniería en Sistemas Computacionales Especialidad en Ingeniería de Software Arquitectura de Software Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad

El diseño arquitectónico es un proceso de conversión de requerimientos en una arquitectura de software que cumple con los requisitos funcionales. AS RF Diseño Arquitectónico

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.

Diseño Arquitectónico Basado en la Funcionalidad La primera fase se compone de cuatro pasos: Definir el contexto del sistema Identificar los arquetipos (un patrón o modelo donde todas las cosas del mismo tipo son representaciones o copias) Descomponer la arquitectura en componentes Describir instancias del sistema (verificación)

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.

Sistema Usado por Depende de usa

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.

Ejemplo 1. Información del capitulo 3 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

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

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

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.

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)

Diagrama de Contexto SACI Sistema de Alarmas Contra Incendio interfaz Detector Salida Sist. Autom. edificio Operador Asociar RF con interfaces

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.

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

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?

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.

Sistema de Alarmas Contra Incendio (SACI) Unidad de Control Punto Se comunica con Detector Salida

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

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

Paso 3. Identificar y Especificar Componentes 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.

Componentes Dimensiones de descomposición Funcionalidad vs. Basado en entidades Dominio del Problema vs. Dominio de Solución Dominio del Problema Compiladores Teoría de control Funcionalidad Entidad (LP Pascal, C) (LP Java, C++) Sistemas de información (3 capas) GUIs Dominio de Solución

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

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 monitor de puntos físicos

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.

Cada componente contiene: 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.

Ver figura 18 de pag. 71 Detector de Humo Detector de Humo Alarma Unidad de Control Interfaz de Usuario Detector de Humo Detector de Humo

Arquitectura de Software Especificación de Requerimientos Prioridad Resultados de Evaluación Requerimientos de Calidad Funcionales Expediente de escenarios Diagrama de Contexto Interfase Arquetipos Relación Componentes Decisión de Diseño Estructura