Estilos Arquitectónicos

Documentos relacionados
Arquitecturas de Software

Diseño arquitectónico 1ª edición (2002)

Diagramas De Casos De Uso

INDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación

Arquitectura de Software III: Elaboración. Contenido del curso. III: Elaboración

Calidad y Reutilización de Software. Dr. Cuauhtémoc Lemus Olalde. Centro de Investigación en Matemáticas (CIMAT) Febrero, 2003

Ingeniería del Software. Diseño. Diseño en el PUD. Diseño de software. Patrones arquitectónicos. Diseño Orientado a Objetos en UML

Arquitecturas Software. Arquitecturas Software. Arquitecturas Software. Juan José Moreno Navarro. Motivación: Idea principal: Características:

Contenido. 1. El proceso 2. Los modelos 3. Los diagramas 4. Ejemplo

Ingeniería del Software I

Guía del Curso Analista Programador Java: Business Apps Expert

1. Asignar Responsabilidades a componentes de software es la habilidad más importante del AOO. Porque:

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

SILABO DE LA ASIGNATURA INGENIERIA DEL SOFTWARE

Clasificación n de los Sistemas Operativos. Clasificación de los SO Estructuras de los SO Modos de procesamiento

Universidad Salesiana de Bolivia

Arquitectura de Software

SISTEMAS DE INFORMACIÓN II TEORÍA

INGENIERÍA DEL SOFTWARE I Práctica 5 Modelado de Diseño

UNIDAD I: INTRODUCCIÓN A LA ARQUITECTURA DE SOFTWARE

Planificaciones Análisis de la Información. Docente responsable: GONZALEZ NORBERTO DANIEL. 1 de 6


Tema: Herramientas UML, Análisis y diseño UML

IFCD0210 Desarrollo de Aplicaciones con Tecnologías Web

M. C. Felipe Santiago Espinosa

Arquitecturas de Software

Capas de presentación

Tema: Herramientas UML, Análisis y diseño UML

HERENCIA Y TIPOS. Articulo. Video Audio Altavoces. Amplificador

Documentando la arquitectura de software Principios básicos por Omar Gómez

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

El Proceso. Capítulo 2 Roger Pressman, 5 a Edición. El Proceso de Desarrollo de Software

Conceptos de Programación Orientada a Objetos

Lenguajes de marcado para presentación de Páginas web.

Estilos y Patrones Arquitectónicos

Proceso de Arquitectura de Software. Segunda. Semana. Dr. Cuauhtémoc Lemus Olalde. Noviembre 7, Informática

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Ingeniería de Requerimientos. requiere de un Sistema de Software.

2. Codificar de forma sistemática la secuencia de instrucciones en un lenguaje.

Automatización de banco de ensayo de engranajes para el estudio de métodos de detección de estado

Universidad Centroccidental Lisandro Alvarado. Decanato de Ciencias y Tecnología Departamento de Sistemas

GOBIERNO ELECTRÓNICO

Universidad Central Del Este U C E Facultad de Ciencias y Humanidades Escuela de Pedagogía Mención Informática.

Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET

Introducción a los Sistemas Operativos

Contenido de la sesión. Diseño de Software Principios del Diseño Arquitectura de Software Especificación de Arquitecturas

UNIVERSIDAD NACIONAL DEL SUR 1 BAHIA BLANCA DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACION

SISTEMAS OPERATIVOS MONOPUESTO 1. CONTENIDOS MÍNIMOS PARA LA EVALUACIÓN POSITIVA

Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET 2010

Estilos Arquitectónicos

Intel lanza su procesador Caballero Medieval habilitado para Inteligencia Artificial

DIAGRAMAS UML ANDRÉS ESTEBAN MARTÍNEZ HUTA CICLO DE VIDA DEL SOFTWARE GLORIA CECILIA RÍOS MUÑOZ

HOJA DE CONTROL DE CAMBIOS EN LA NORMATIVA INTERNA DE EP PETROECUADOR

Sistemas Distribuidos. Soporte de Sistemas Operativos

Clase 2: Arquitectura de Software

PROGRAMA DE LA ASIGNATURA CURSO BASICO: ARQUITECTURA DEL SOFTWARE

Maestría en Ingeniería Énfasis en Sistemas y Computación

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O

Estilos Arquitectónicos

AUTOMATIZACIÓN INDUSTRIAL

Metodologías en la Ingeniería del Software Métodos Orientados a Objetos

DIAGRAMAS DE ACTIVIDAD SESION 9. Cap. 9 Kendall & Kendall Cap 5 Jacobson

Arquitectura del Software. Estableciendo la estructura global de un sistema de software

Sistemas Operativos. Introducción. Tema 6

Requerimientos de Software

PROGRAMA DE ESTUDIO. Nombre de la asignatura: MICROPROCESADORES Y MICROCONTROLADORES. Horas de Práctica

Departamento Ingeniería en Sistemas de Información

Tema 2 Introducción a la Programación en C.

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS.

Instituto Schneider Electric de Formación

Cristian Blanco

Guía docente de la asignatura

Capítulo 16. Diagrama de Clases UML

Parte I:Teoría. Tema 3:Introducción a los Sistemas operativos. Instalación

OBJETIVOS DE LA MATERIA... 4 PROGRAMA ANALÍTICO. CONTENIDOS TEÓRICOS Y PRÁCTICOS... 5 BIBLIOGRAFIA... 7

Unidad 1: Conceptos generales de Sistemas Operativos.

Tema II: Metodología para la construcción de programas. Profesora: Nelly García Mora

Modelo OSI y TCP/IP. Teleprocesamiento Ing. Zoila Marquez.

Ingeniería del Software Ingeniería del Software de Gestión. Tema 3 Metodologías de Desarrollo de Software

30/04/2015. Ejemplo Diagrama de un sistema tal como aparece en ejecución (alto nivel)

METODOLOGÍAS ÁGILES. Proceso Unificado Ágil (AUP) Ingeniería del Software II Análisis de Sistemas

UNIVERSIDAD DE LOS ANDES FACULTAD DE CIENCIAS FORESTALES Y AMBIENTALES ESCUELA DE INGENIERIA FORESTAL RÉGIMEN ANUAL PROGRAMA

Pontificia Universidad Católica del Ecuador

GUÍA DOCENTE 2016/2017. Introducción a los Sistemas Operativos Grado en INGENIERÍA INFORMÁTICA 1º curso. Modalidad Presencial

PROGRAMA DE CURSO. Metodologías de Diseño y Programación. Nombre en Inglés. Design and Programming Methodologies.

El Lenguaje Unificado de Modelado (UML)

Transcripción:

Diseño y Arquitectura de Software Grado en Ingeniería de Software Carlos E. Cuesta carlos.cuesta@urjc.es

Indican: Los tipos de componentes y conectores involucrados. Patrones y restricciones de interconexión o composición entre ellos Invariantes del estilo (restricciones) Asociados a cada estilo hay una serie de propiedades que lo caracterizan Determinan sus ventajas e inconvenientes Condicionan la elección de uno u otro estilo. 2

Clasificación General de los Estilos Sistemas Basados en Flujos de Datos Filtro-Tubería Secuencial por Lotes Sistemas Call/Return Sistema Modular Arquitectura Orientada a Objetos Jerarquía de Capas Componentes Independientes Procesos en Comunicación Sistemas de Eventos Máquinas Virtuales Intérpretes Sistemas basados en conocimiento (KBS) Sistemas de Control Lazo Abierto o Cerrado Sistemas Centrados en Datos (repositorios) Bases de Datos Sistemas de HiperTexto Modelo REST (también) Arquitectura de Pizarra 3

Arquitectura Filtro-Tubería (Pipes & Filters) Incorporada como elemento base en Unix (McIlroy) Hoy con un significado mucho más amplio Filtros Tuberías 4

Filtros y Tuberías (Pipes & Filters) Descripción Cada componente tiene un conjunto de entradas y un conjunto de salidas. Un componente lee entradas y las transforma en salidas Restricciones: Los filtros deben ser independientes. No deben compartir estado con otros filtros. Los filtros realizan la labor independientemente del flujo de entrada. Especializaciones del estilo Pipelines Bounded pipes Typed pipes 5

Filtros y Tuberías (Pipes & Filters) Ventajas Permite entender el sistema global en términos de la combinación de componentes Soporta de buena manera la reutilización. Los filtros son independientes de sus vecinos Facilidad de Mantenimiento y mejora Facilidad de diagnóstico (rendimiento, deadlocks) Soportan la ejecución concurrente Desventajas No aconsejable para cuando se necesita interactividad Problemas de rendimiento ya que los datos 6 se transmiten en forma completa entre filtros

Arquitecturas de Sistemas OO Se incluyen otros Tipos Abstractos de Datos obj objetos op Operaciones (invocaciones a métodos) 7

Arquitectura de Sistemas OO Descripción Las representaciones de los datos y las operaciones están encapsulados en un tipo abstracto de datos u objeto Los componentes son objetos Las invocaciones de métodos son los conectores Restricciones: Los objetos son responsables de la integridad de sus representaciones Dicha representación es ocultada al resto de los objetos 8

Tipos Abstractos de Datos y OO Ventajas Gracias al invariante de ocultación es posible reemplazar la implementación sin que afecte a los clientes ( clientes del objeto) Desventajas Para invocar métodos de un objeto se debe conocer su identidad Parece obvio pero no lo es en absoluto Efectos colaterales 9

Invocación Implícita (Basada en Eventos) Emisión de eventos Objetos o Procesos Invocación Implícita 10

Invocación Implícita Basada en Eventos Descripción En lugar de invocaciones de procedimientos explícitas o directas, un componente anuncia uno o más eventos y otros componentes registran el interés en un evento asociando un procedimiento a dicho evento. La ocurrencia de un evento causa la invocación implícita de procedimientos en otros módulos. Los componentes son los módulos cuyas interfaces ofrecen un conjunto de procedimientos y de eventos Los conectores incluyen llamadas a procedimientos tradicionales, así como la ligadura de eventos con llamadas a procedimientos 11

Invocación Implícita (Basada en Eventos) Restricciones: Quien anuncia el evento no conoce a qué componentes afecta éste No se pueden hacer asunciones acerca del orden de procesamiento Ventajas Provee un robusto soporte para la reutilización Facilita la evolución del sistema Desventajas Pérdida de control en el comportamiento del sistema Problemas en el intercambio de datos Es difícil asegurar la corrección global del sistema 12

Sistemas basados en Capas Aplicaciones Llamadas a Procedimientos Utilidad básica Nivel Núcleo Usuarios 13

Sistemas basados en Capas Descripción Organizado jerárquicamente en capas, donde cada capa provee servicios a la capa superior y es servido por la capa inferior Los componentes son cada una de las capas Los conectores son los protocolos de interacción entre las capas Restricciones: La interacción está limitada a las capas adyacentes Aplicaciones 14

Sistemas basados en Capas Ventajas Facilita la descomposición del problema en varios niveles de abstracción. Soporta fácilmente la evolución del sistema; los cambios sólo afectan a las capas vecinas Se pueden cambiar las implementaciones respetando las interfaces con las capas adyacentes. Desventajas No todos los sistemas pueden estructurarse en capas. A menudo es difícil encontrar la separación en capas adecuada Aplicaciones 15

Sistemas basados en repositorios ks1 ks2 Procesamiento ks8 ks7 Pizarra (datos Compartidos) ks3 ks4 Accesos Directos ks6 ks5 Memoria compartida (típicamente asociativa) 16

Sistemas basados en repositorios Descripción Existen dos tipos de componentes Una estructura central de datos (representa el estado del proceso) Componentes independientes (operan en función del depósito de datos) Las interacciones entre el repositorio y los demás componentes es variable: La entrada de los datos es seleccionada por los componentes El estado de los datos del repositorio selecciona el proceso a ejecutar (pizarra) ks8 ks7 ks1 Pizarra (datos Compartidos) ks2 ks3 ks4 17 ks6 ks5

Sistemas basados en repositorios Ventajas Posibilita la integración de agentes. Adecuado para la resolución de problemas no deterministas. Se puede resumir el estado de conocimiento en cada momento del proceso Desventajas Estructura de datos común a todos los agentes Problemas de carga a la hora de chequear y vigilar el estado de la pizarra. ks1 ks2 ks8 ks7 Pizarra (datos Compartidos) ks3 ks4 18 ks6 ks5

Máquina virtual (o intérprete) Entradas Datos (Estado del programa) Programa siendo interpretado Salidas Máquina de Interpretación simulada Instrucción seleccionada Datos seleccionados Estado Interno Del Interprete 19

Máquina virtual o intérprete Descripción Formado por cuatro componentes Ventajas Un motor de simulación o interpretación Una memoria que contiene el código a interpretar Una representación del estado de la interpretación Una representación del estado del programa que se esta simulando Solución software a problemas hardware. Desventajas No siempre es aplicable Reducido a lenguajes de programación 20

Otros Estilos Procesos distribuidos Sistemas cliente/servidor Sistemas en 3 capas Programa Principal/Subrutinas Típica de lenguajes procedurales Un programa principal gestiona el control de ejecución de las subrutinas Sistemas de Transición de Estados Arquitecturas Heterogéneas Se da por la mezcla de estilos Existen diferentes maneras de combinar 21

Lenguajes de Descripción de Arquitecturas (LDA) Un LDA (ADL) es un lenguaje o notación para describir una arquitectura software: Descripción de los componentes, los conectores y enlaces entre ellos A menudo existen también herramientas para la verificación de la arquitectura y el prototipado rápido. Existen LDAs de propósito general y otros de dominio específico (DSLs/DSSA) Requisitos de un LDA Composición Debe describir el sistema como una composición de partes 22

Lenguajes de Descripción de Arquitecturas (LDA) Configuración Debe describir la arquitectura independientemente de los componentes Abstracción Debe describir los roles abstractos que juegan los componentes Reutilización Debe permitir reutilizar componentes, conectores, y arquitecturas Heterogeneidad Debe permitir combinar descripciones heterogéneas Análisis Debe permitir diversas formas de análisis de la arquitectura 23

Lenguajes de Descripción de Arquitecturas (LDA) Ejemplos Lenguajes de Descripción de Arquitectura: Unicon (Mary Shaw y colaboradores, CMU) Wright (Allen y Garlan, SEI) Darwin (Magee y Kramer, IC) Rapide (Luckham, Stanford) C2 (Medvidovic, UCI/USC) LEDA (Canal, U. Málaga) Se trata o no de un ADL Lenguaje Unificado de Modelado (UML) Lenguajes de interconexión de módulos y de descripción de interfaz (CORBA-IDL) 24

Bibliografía Software Architecture Perspectives on an Emerging Discipline M. Shaw, D. Garlan 1997 Prentice Hall. Design and Use of Software Architectures J. Bosch 2000 Addison Wesley Documenting Software Architectures: Views and Beyond P. Clements, F. Bachmann, L. Bass et al. 2003 Addison Wesley Software Architectures (USC CS 578) http://sunset.usc.edu/classes/cs578_2005/ 25