Architectural Description Languages

Slides:



Advertisements
Presentaciones similares
Metodologías para el desarrollo de aplicaciones Web.
Advertisements

MODELOS ORIENTADOS A OBJETOS
U.M.L A/Gx. Diego Gutiérrez Application Analysis and Design.
INGENIERÍA DE SOFTWARE Introducción Arquitectura de Software
Architect Academy Webcast #4: Diseñando la arquitectura
Plan de Implantación Sistemas de Información III
Fundamentos de Diseño de Software INFT.1
CLASIFICACIÓN DE CLASES Orientación a objetos UNIVERSIDAD DEL VALLE DEL FUERTE Análisis y Diseño Orientado a Objetos Cañedo Encinas Fernando Onorat. Ingeniería.
Lenguaje Unificado de Modelado
Modelando aplicaciones
UNIVERSIDAD TECNOLÓGICA ISRAEL CARRERA DE SISTEMAS INFORMÁTICOS
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA 2006.
Metodologías OMT Republica bolivariana de Venezuela
Introducción a la Orientación a Objetos
Introducción a la Programación
Fundamentos de Ingeniería de Software
Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz.
Tipo de Dato Abstracto Tipos de datos:
Etapas y actividades en el desarrollo OO basado en UML
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno.
Ingeniería del Software
© Manuel ColladoHerramientas software-1 Herramientas software Clasificación. Integración de herramientas.
PROGRAMACION ORIENTADA
DIAGRAMA DE COMPONENTES INTEGRANTES Córdova Vásquez Giovanny Escobar Alvares Calixto Gomez Quinteros Adelaida Pinto Flores Yarmila.
El paradigma de la orientación a objetos La programación orientada a objetos genera códigos eficientes y estandariza la metodología de programación, además.
Unified Modeling Language (Lenguaje de Modelamiento unificado)
Profesor: Miguel Angel Vidal
Actividad 8 Equipo 3: o Gemma Cedillo Saucedo. o Alejandra Castillo Almazán. o Adriana Lara Mata. o Jorge Arregoytia García. o Aleida Villegas Rodríguez.
VHDL.
Modelado Arquitectónico
LEDA Un Lenguaje para la Especificación y Validación de Arquitecturas de Software Carlos Canal Velasco Depto. de Lenguajes y Ciencias de la Computación.
Ingeniería de Software
Arquitectura de una aplicación
Ingeniería de Software Orientado a Objetos
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
Tema I Arquitectura de Software. Arquitectura de software es un conjunto de reglas que definen la estructura de un sistema y las relaciones entre sus.
Poder Expresivo de UML 2.0 para especificar arquitecturas de Software
Introducción al modelo Cliente-Servidor Carlos Rojas Kramer Universidad Cristóbal Colón.
Desarrollo de aplicaciones para ambientes distribuidos
Tecnología para la Comunidad
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA 2006.
Metodologías Orientadas a Objetos Maestría de Ingeniería Telemática Universidad del Azuay Sesión 2.
Ingeniería en Sistemas de Información
UML 2.0 Integrantes: Diana Carolina Valencia M. Jhon Fernando Lopez T. Carlos Alberto Castillo.
Diseño e Implementación de Sistemas Basados en Conocimiento
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Lenguajes de Programación
Unidad ll Equipo 2 Juan Carlos Martínez Ramos Erik Iván Mancilla Romero Cristian Suarez Luis Ángel Santiago Alex Joshua Serrano.
Diseño de Software y su Proceso
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
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.
Facultad de Ingeniería
Equipo 7. Hipertexto  En informática, es el nombre que recibe el texto que en la pantalla de un dispositivo electrónico, permite conducir a otros textos.
MIME EXTENSIONES DE CORREO INTERNET MULTIPROPÓSITO. SERIE DE ESPECIFICACIONES DIRIGIDAS AL INTERCAMBIO TRANSPARENTE DE TODO TIPO DE ARCHIVOS A TRAVÉS DE.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) LENGUAJES DE PROGRAMACIÓN PARA EL DESARROLLO DE INTERFACES.
Diseño de Sistemas.
Conceptos Fundamentales
Ingeniería de Requisitos
DIAGRAMA DE SECUENCIA Y ACTIVIDADES.
Taller de Sistemas de Programas Clase 6 Dpto. de Computación y T.I.
Actividades en el Proceso de desarrollo de Software
Unified Modeling Language (Lenguaje de Modelamiento unificado)
La Programación Orientado a Objetos
Maestría en Gerencia en Tecnología de la Información Cátedra Ingeniería de Software Profesora: Mary Carmen Milano. Integrantes: Rosa Arellano Osbaldo Goitia.
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
Integrantes: Castro José República Bolivariana De Venezuela Ministerio Del Poder Popular Para La Educación Superior Instituto Universitario Tecnológico.
Fundamentos de Ingeniería de Software
Presentación De UML Lenguaje estándar para escribir planos de software Se usa para visualizar, especificar, construir y documentar los artefactos de un.
Universidad Nacional de Ingeniería Comprendiendo los Fundamentos de
Transcripción de la presentación:

Architectural Description Languages Carlos Reynoso* – Nicolás Kicillof Universidad de Buenos Aires * billyreyno@hotmail.com

Agenda Ubicación de ADLs en Arquitectura Estilos Definiciones de ADLs Short List Demo - Jacal

Arquitectura Arquitectura de software - IEEE 1471-2000: “...la organización fundamental de un sistema encarnada en sus componentes, sus relaciones con cada uno de los otros y con el entorno, y los principios que orientan su diseño y evolución”.

Estilos Flujo de datos Llamada y Retorno Procesos interactivos Secuencial en lotes Red de flujo de datos (tuberías & filtros) Bucle de control cerrado Llamada y Retorno Programa principal / subrutinas Ocultamiento de información (ADT, objeto, cliente/servidor elemental) Procesos interactivos Procesos comunicantes Sistemas de eventos (invocación implícita, eventos puros) Repositorio Orientado a Datos Bases de datos transaccionales (cliente/servidor genuino) Pizarra Compilador moderno Datos Compartidos Documentos compuestos Hipertexto Fortran COMMON Procesos LW Jerárquicos - En capas (intérpretes)

ADLs Herramientas de modelado que soportan desarrollos basados en arquitecturas Estructura de alto nivel, no detalle de implementación Poco consenso respecto a definición de ADL, aspectos a considerar y adecuación de ADLs a estilos Poca distinción entre ADL, especificación formal, interconexión de módulos (MIL), herramientas de modelado y hasta lenguajes de programación

Condiciones de ADLs Shaw y otros, 1995: Capacidad para modelar componentes con aserciones de propiedades, interfaces e implementaciones Capacidad de modelar conectores con protocolos, aserción de propiedades e implementaciones Abstracción y encapsulamiento Tipos y verificación de tipos Capacidad para integrar herramientas de análisis

Condiciones… Componentes Conectores Configuraciones o sistemas Propiedades no funcionales Restricciones Estilos Evolución Herramientas de verificación

Otras herramientas Lenguajes de especificacíón (LARCH, Z) Lenguajes de prototipado (Modechart, PSDL) Lenguajes de modelado (UML) Lenguajes de programación (CODE, Ada) Herramientas para definición de ciclo de vida (UNAS/SALE)

ADLs

Acme / Armani Lenguaje de intercambio de arquitectura 1995, Carnegie Mellon Lenguaje Acme Acme Tool Developer’s Library (AcmeLib) 4 tipos de arquitectura Estructura, propiedades (comportamiento), restricciones, tipos y estilos Estructura: componentes, conectores, sistemas, puertos, roles, representaciones y rep-mapas

Acme/Armani Semántica sólo como comentario No genera código Maneja estilos (familia) Varias herramientas en ambiente Windows: AcmeStudio Armani con front-end Visio ISI: front-end Powerpoint ADML: lenguaje de markup de arquitectura, derivado de Acme (estándar) Armani: ADL. Declarativo Acme Armani

Acme/Armani

ADML Open Group, 2000 ADML: XML con DTD xADL (“Zaydal”,UCI): Schemas para estilos (Aplicación de xArch) xArch (UCI/Carnegie Mellon): lenguaje basado en XML para descripción de arquitecturas – Placeholder para implementaciones variables

Aesop (1/4) Parte del proyecto ABLE de CMU (con Wright) Herramienta para construir ambientes de desarrollo que soporta Estilos Conjunto de estilos para definir nuevos diseños Design manager Interface gráfica Basado en Tcl/Tk – Corre por separado y puede reemplazarse por otros Tool integration framework: Incorporación de otras herramientas (compiladores, herramientas de análisis, etc) Repositorio para reutilización de patrones Semántica como comentario

Aesop (2/4) Ontología basada en 7 entidades Componentes Conectores Configuraciones Topologías de componentes y conectores Puertos Interfaces de componentes Roles Interfaces de conectores Representaciones “Contenidos” de componente o conector Bindings Correspondencias entre configuración externa o externa de puertas o roles

Aesop (3/4) Requiere manejar diversos lenguajes FAM Command Language (FCL) – Extensión de Tcl/Tk que soporta modelización arquitectónica, etc Los elementos de definen por herencia de tipos básicos (componente, conector, etc) Actualmente corre sobre workstations Sun (SunOS) http://www.cs.cme.edu/Web/Groups/ABLE/Aesop El link para obtener Aesop parece no estar activo (enero/2004) Aesop

Aesop (4/4)

C2 SADL, C2SADEL C2 SADL (Simulation Architecture Description Language) ADL que permite describir arquitecturas en estilo C2 C2SADEL – Variante. Incluye DRADEL (Development of Robust Architectures using a Description and Evolution Language) xArch, xADL: Inicialmente ligados a C2

C2 SADL, C2SADEL SADL Windows: Módulos declarativos e imperativos 1) IDN Interface Description Notation 2) ADN Architecture Description Notation 3) ACN Architecture Construction Notation Windows: DRADEL (Int. Para C2SADEL) SAAGE (requiere Rose o Dradel) ArchStudio – Argo (discontinuado) SADL – IDN, ADN

C2

CHAM Chemical Abstract Machine Técnica de especificación basada en álgebra de procesos Moléculas (componentes básicos) Soluciones de moléculas (multiconjuntos que definen estados) Reglas de transformación (cambios de estado) – No determinismo si hay + de una regla para una molécula o solución

CHAM Ejemplo de compilador Lisp CHAM

Darwin (1/2) ADL orientado a arquitecturas dinámicas Descripción de tipo de componente mediante interfaz Interfaz: colección de servicios (a) provistos [declarados por componente], o (b) requeridos [presentes en el entorno] Desarrollo consiste en instanciar declaraciones de componentes y establecer relaciones entre servicios Soporta reconfiguración dinámica e instanciación tardía

Darwin (2/2) Las propiedades de un componente son sólo comentarios No hay soporte real de estilos: sólo se pueden expresar constructivamente (construyendo algoritmos que representen los miembros) Semántica basada en cálculo Pi Interfaz gráfica: Software Architect’s Assistant, discontinuado Darwin

Darwin

Jacal (1/2)

Jacal (2/2)

LILEANNA Navegación de helicópteros, Loral Federal Systems / ARPA No es ADL en sentido estricto La estructura se modela distribuyendo información entre la definición de componentes individuales y conectores Es un lenguaje de interconexión de módulos (MIL, MCL) Utiliza Ada para implementación y Anna para especificación

MetaH / AADL (1/2) Guía, navegacíon y control aeronáutico MetaH: Base textual para AADL (Avionics…) – No confundir con Axiomatic… [diseño computadoras paralelas] Windows: MetaH Graphical Editor basado en DoME

MetaH / AADL (2/2)

Rapide (1/2) Lenguaje de descripción de propósito general – Modelado de interfaces de componentes y conductas observables (Stanford) ADL + lenguaje de simulación 5 lenguajes: de tipos (interfaces de componentes); de arquitectura (flujo de eventos); de especificación (restricciones abstractas de conducta); ejecutable (describe módulos ejecutables); de patrones (describe patrones de eventos) Modela conducta (= Wright) Genera código C++ o Ada …

Rapide (2/2) Define tipos de componentes llamados interfaces: colecciones de eventos de comunicación que pueden ser (a) observados (acciones externas) o (b) iniciados (acciones públicas) El comportamiento se define vinculando observación de acciones externas con iniciación de acciones públicas Cada especificación posee conducta asociada que se define mediante conjuntos de eventos parcialmente ordenados (posets) También descripción de comportamientos con lenguaje basado en SML, con eventos y patrones de eventos Medvidovic: simulación verifica una arquitectura, pero no un escenario (un poset distinto) Toolset disponible para Sun, Linux, etc – No evoluciona desde 1997 Rapide

UML No es un ADL Deficiencias como lenguaje de especificación … [estereotipos] Deficiencias en torno de roundtrip engineering … [metamodelos] Ej: Asociación – Agregación - Composición Se ha usado como metalenguaje para implementar semántica de C2 SADL o Wright

UniCon (1/2) Universal Connector Support, Shaw et al, 1995 – Proyecto Vitruvius, CMU Herramienta de diseño para construir configuraciones ejecutables Tipos de componentes, implementaciones y conexiones expertas Orientado a construir sistemas a partir de descripciones arquitectónicas Sitio muerto desde hace un tiempo UniCon

UniCon (2/2) No posee recursos de descripción de estilos Los puntos de interfaz de componente (players) tienen (1) tipo que detalla la interacción esperada, (2) propiedades que detallan la interacción En momento de configuración, se asocian players de componentes con roles de conectores Sólo tiene un conjunto limitado de tipos (= Darwin) Omitimos código de definición de pipe-filter por ser casi tan extenso como el de un modelo en lenguaje de implementación

Wright (1/2) Herramienta de formalización de conexiones arquitectónicas, CMU (parte de proyecto ABLE) ABLE: herramienta de diseño (Aesop), especificación formal (Wright) Integración de metodología formal con descripciones arquitectónicas Aplica procesos formales (álgebra de proceso y refinamiento de proceso) a verificación automatizada de propiedades de arquitectura

Wright (2/2) Declara conjunto de tipos de componentes y conectores y conjunto de restricciones Modelo semántico basado en CSP (Communicating Sequential Process de Hoare) Verificación mediante verificador comercial FDR Restricciones: predicado que debe ser satisfecho por cualquier configuración que se declare miembro del estilo Notación de restricciones: cálculo de predicados de primer orden Sub-estilos: heredan de estilos No posee interfaz gráfica nativa No genera código ejecutable Wright

Modelos formales Darwin: cálculo Pi Wright: CSP, lógica de primer orden LILEANNA: programación parametrizada e hiper-programación Rapide: Posets SAM: Redes de Petri de transición de predicados, lógica temporal de primer orden Jacal: Redes de Petri Casi todos los ADLs tienen BNF Modelo estructural no ligado a OO

Shortlist Acme / Armani Aesop / Wright xADL Jacal

billyr@microsoft.com nicok@dc.uba.ar ¿Preguntas? billyr@microsoft.com nicok@dc.uba.ar