DRS_U1_EA_JECO
Short Description
Download DRS_U1_EA_JECO...
Description
Diseño y Arquitectura de Software Unidad 1. Arquitectura Evidencia de aprendizaje. Lenguaje descriptor y patrones de arquitectura de software Alumno: Jerónimo Colín Ortiz, Matrícula: AL10506040 1. Identifica y describe los diferentes lenguajes descriptores de arquitectura y agrega la utilidad que tiene.
Lenguajes descriptores de arquitectura ADL Lenguaje
Descripción
Características
ACME ARMANI
ACME es una herramienta que soporta el mapeo de especificaciones arquitectónicas entre diferentes ADLs.
AESOP
Su objetivo es explorar las bases formales de la arquitectura de software, el desarrollo del concepto de estilo arquitectónico y la producción de herramientas útiles a la arquitectura.
ARTEK
Se lo conoce también como ARDEC/Teknowledge Architecture Description Language.
ADML
El propósito de ADML (Architecture Description Markup Language) es estandarizar la descripción de arquitecturas en base a XML, de modo que pueda ser leída por cualquier parser de XML.
1. Soporta la definición de cuatro tipos de arquitectura: 2. Estructura (organización de un sistema en sus partes constituyentes) 3. Propiedades de interés (información que permite razonar sobre el comportamiento local o global, tanto funcional como no funcional) 4. Restricciones (lineamientos sobre la posibilidad del cambio en el tiempo) 5. Tipos y estilos. 1. Se describe mediante la definición de subtipos de los tipos arquitectónicos básicos: Componente, Conector, Puerto, Rol, Configuración y Binding 2. Los puntos de interfaz se llaman puertos (ports). 3. Sólo soporta nativamente desarrollos realizados en C++. 4. Genera código C++. 1. Tiene la capacidad de modelar ciertos aspectos de una arquitectura. 2. Puede generarse un modelo a partir de una instancia particular de uso. Permite definir vínculos con objetos externos a la arquitectura (fundamentación racional, diseños, componentes, etc.), así como interactuar con diversos repositorios de industria, tales como las especificaciones de OASIS relativas a esquemas para SWIFT, IFX, OFX/OFE, BIPS, OTP, OMF, HL7, RosettaNet o similares.
Fecha de aparición
Desarrolladores
Utilidad
1995
Monroe & Garlan (CMU), Wile (USC)
Sirve como lenguaje de intercambio de arquitectura.
1994
Garlan (CMU)
Es una herramienta para construir ambientes de diseño de software basada en principios de arquitectura.
1994
Terry, Hayes-Roth, Erman (Teknowledge, DSSA) The Open Group Architectural Framework
Lenguaje específico de dominio No es ADL
2000
Vincular descripciones arquitectónicas y modelos directamente con cualquier binario, scripting o entidad en cualquier plataforma y en cualquier lenguaje.
Diseño y Arquitectura de Software Unidad 1. Arquitectura Evidencia de aprendizaje. Lenguaje descriptor y patrones de arquitectura de software Alumno: Jerónimo Colín Ortiz, Matrícula: AL10506040 Lenguaje CHAM
DARWIN
C2 SADL
Descripción
Características
Fecha de aparición
Desarrolladores
Utilidad
Proporciona la base para la Descripción de una arquitectura debido a su capacidad de componer especificaciones para las partes y describir explícitamente las reglas de composición. Describe un tipo de componente mediante una interfaz consistente en una colección de servicios que son ya sea provistos (declarados por ese componente) o requeridos (o sea, que se espera ocurran en el entorno). Las configuraciones se desarrollan instanciando las declaraciones de componentes y estableciendo vínculos entre ambas clases de servicios. C2 o Chiron-2 no es estrictamente un ADL sino un estilo de arquitectura de software que se ha impuesto como estándar en el modelado de sistemas que requieren intensivamente pasaje de mensajes y que suelen poseer una interfaz gráfica dominante.
1. CHAM es un modelo de máquina abstracta independiente de plataforma y del lenguaje o paradigma de programación que se vaya a utilizar en el sistema que se modela.
1990
Berry / Boudol
Lenguaje especificación
1. Soporta la descripción de arquitecturas que se reconfiguran dinámicamente a través de dos construcciones. 2. Cada servicio de Darwin se modeliza como un nombre de canal, y cada declaración de binding es un proceso que trasmite el nombre del canal al componente que requiere el servicio.
1991
Magee, Dulay, Eisenbach, Kramer
ADL con énfasis en dinámica
1. Los mensajes de requerimiento sólo se pueden enviar “hacia arriba” en la arquitectura, y los de notificación sólo “hacia abajo”. 3. La comunicación es a través de MENSAJES.
1996
Taylor/Medvidovic (UCI)
ADL estilo
específico
de
de
Diseño y Arquitectura de Software Unidad 1. Arquitectura Evidencia de aprendizaje. Lenguaje descriptor y patrones de arquitectura de software Alumno: Jerónimo Colín Ortiz, Matrícula: AL10506040 Lenguaje Jacal
LILEANNA
MetaH
Rapide
Descripción
Características
El objetivo principal de Jacal es “animación” de arquitecturas. Esto es, poder visualizar una simulación de cómo se comportaría en la práctica un sistema basado en la arquitectura que se ha representado. Cuenta con una representación gráfica que permite a simple vista transmitir la arquitectura del sistema, sin necesidad de recurrir a información adicional. LILEANNA es un ADL (o más estrictamente un MIL) que utiliza el lenguaje Ada para la implementación y Anna para la especificación. Fue desarrollado como parte del proyecto DSSA ADAGE, patrocinado por ARPA.
1. Puede ser utilizado para expresar arquitecturas de distintos estilos. 2. Cada componente cuenta con puertos (ports) que constituyen su interfaz y a los que pueden adosarse conectores.
MetaH modela arquitecturas en los dominios de guía, navegación y control (GN&C) y en el diseño aeronáutico. Es un lenguaje de descripción de sistemas de propósito general que permite modelar interfaces de componentes y su conducta observable.
Fecha de aparición 1997
Desarrolladores
Utilidad
Kicillof , Yankelevich (Universidad de Buenos Aires)
ADL - Notación de alto nivel para descripción y prototipado
1. Soporta diferentes estilos de comunicación, tales como variables compartidas, tuberías, paso de mensajes y blackboarding. 2. Mediante un sistema auxiliar llamado TOOR, se hace el rastreo (tracing) de dependencias entre objetos potencialmente evolutivos y relaciones entre objetos en función del tiempo. 1. MetaH está exclusivamente ligado a desarrollos hechos en Ada en el dominio de referencia.
1993
Tracz (Loral Federal)
Lenguaje de conexión de módulos
1993
Binns, Englehart (Honeywell)
ADL específico dominio
1. En Rapide los puntos de interfaz de los componentes se llaman constituyentes. 2. En Rapide (al igual que en Darwin) no es posible poner nombre, sub-tipear o reutilizar un conector.
1990
Luckham (Stanford)
ADL & simulación
de
Diseño y Arquitectura de Software Unidad 1. Arquitectura Evidencia de aprendizaje. Lenguaje descriptor y patrones de arquitectura de software Alumno: Jerónimo Colín Ortiz, Matrícula: AL10506040 Lenguaje
Descripción
UniCon
Proporciona una herramienta de diseño para construir configuraciones ejecutables basadas en tipos de componentes, implementaciones y “conexiones expertas” que soportan tipos particulares de conectores.
Wright
Es una herramienta de formalización de conexiones arquitectónicas.
Características 1. El propósito de UniCon es generar código ejecutable a partir de una descripción, a partir de componentes primitivos adecuados. 2. Capacidad de manejo de métodos de análisis de tiempo real a través de RMA (Rate Monotonic Analysis). 3. Proporciona medios para describir o delinear familias de sistemas o estilos. 4. Soporta notación gráfica. 1. En Wright (igual que en Acme y Aesop) los puntos de interfaz se llaman puertos (ports). 2. Permite modelar la conducta de sus componentes. 3. Permite analizar los conectores para verificar que no haya deadlocks.
Fecha de aparición 1995
Desarrolladores
Utilidad
Shaw (CMU)
ADL de propósito general, énfasis en conectores y estilos
1994
Garlan (CMU)
ADL de propósito general, énfasis en comunicación
Diseño y Arquitectura de Software Unidad 1. Arquitectura Evidencia de aprendizaje. Lenguaje descriptor y patrones de arquitectura de software Alumno: Jerónimo Colín Ortiz, Matrícula: AL10506040 2. Identifica y describe los patrones de arquitectura y agrega la utilidad que tienen.
BlackBoard
Es una aplicación de inteligencia artificial basada en una base común de conocimientos llamada el pizarrón. A partir de la especificación de un problema se plantea la solución. Cada sistema experto envía a la pizarra una posible solución. Si la solución es aplicable queda como un borrador. Cada sistema experto interactúa con el borrador hasta hallar una solución final.
Cliente-Servidor
Se tiene una máquina cliente, que requiere un servicio de una máquina servidor, y éste realiza la función para la que está programado. El sistema queda distribuido entre múltiples procesadores donde hay clientes que solicitan servicios y servidores que los proporcionan. Los servicios se separan situándolos en su plataforma más adecuada. Esto permite a los usuarios finales obtener acceso a la información en forma transparente aún en entornos multiplataforma. En el modelo cliente servidor, el cliente envía un mensaje solicitando un determinado servicio a un servidor (hace una petición), y este envía uno o varios mensajes con la respuesta (provee el servicio).
Diseño y Arquitectura de Software Unidad 1. Arquitectura Evidencia de aprendizaje. Lenguaje descriptor y patrones de arquitectura de software Alumno: Jerónimo Colín Ortiz, Matrícula: AL10506040
Computo Distribuido
Las computadoras interactúan entre sí, para lograr un objetivo en común. Utiliza un gran número de computadoras organizado en racimos por medio de una estructura de telecomunicaciones. Cada usuario comparte tiempo de procesamiento de su máquina para manejar grandes volúmenes de información.
Front-End, Back-End
Front-End.- Es la parte del software que interactúa con los usuarios Back-End.- Es la parte que procesa la entrada de datos proveniente del Front-End El Front-End es responsable de recolectar los datos de entrada y los procesa conforme a las especificaciones del Back-End para que este las pueda utilizar. La conexión del Frot-End y el Back-End es de tipo interface ya sea de manera física o virtual.
Diseño y Arquitectura de Software Unidad 1. Arquitectura Evidencia de aprendizaje. Lenguaje descriptor y patrones de arquitectura de software Alumno: Jerónimo Colín Ortiz, Matrícula: AL10506040
Monolítico
Tres capas
Cada capa está separada, únicamente puede comunicarse con la siguiente capa. Es la más utilizada debido a su escalabilidad y flexibilidad La interfaz del usuario, la lógica funcional del proceso, almacenamiento de datos y acceso a los datos son desarrollados y mantenidos como módulos independientes comúnmente en plataformas separadas. Permite que cualquiera de sus capas sea reemplazada sin afectar a las demás.
Toda la estructura y grupo funcional está en un mismo lugar. Existen interfaces gráficas de usuario (GUI). Servicios de presentación, negocio y persistencia en la misma máquina. No hay concurrencia de usuarios. Alto acoplamiento entre niveles.
Diseño y Arquitectura de Software Unidad 1. Arquitectura Evidencia de aprendizaje. Lenguaje descriptor y patrones de arquitectura de software Alumno: Jerónimo Colín Ortiz, Matrícula: AL10506040 4. Elabora ejemplos de uso de la combinación de lenguajes y patrones y describe cada ejemplo (mínimo 2).
Caso 1 Problema: Varios usuarios manipulan la misma información almacenada en un Server, conectándose intermitentemente a dicho Server.
Principio de usabilidad: Cada computadora es provista de un Sync Engine.
Contexto: Se debe desarrollar un sistema que permita tener información idéntica almacenada en diferentes equipos los cuales se encuentran conectados intermitentemente a la red. Muchos usuarios aplican cambios a la información de manera simultánea.
Fuerza: La información almacenada en los equipos de cada usuario pierde el sincronismo cuando el usuario aplica cambios a su copia local y los equipos se conectan intermitentemente a la red.
Solucion: El Sync Engine mantiene un seguimiento de las modificaciones que se aplican a la información local, intercambia modificaciones con otros dispositivos cada vez que se reconectan y detecta conflicto e implementa una estrategia de resolución
Usuario
Usuario
Consecuencias:
Este patrón puede ser utilizado cuando la información almacenada en diferentes equipos no tiene que estar actualizada en tiempo real. La información poco estructurada debe ser comparada registro por registro lo que incrementa la probabilidad de conflictos no deseados. Este patrón no es aplicable a información de video o audio.
Diseño y Arquitectura de Software Unidad 1. Arquitectura Evidencia de aprendizaje. Lenguaje descriptor y patrones de arquitectura de software Alumno: Jerónimo Colín Ortiz, Matrícula: AL10506040
Caso 2 Problema: Dada la gran cantidad de tareas que debe de realizar un usuario, tiene la necesidad de tener abiertos al mismo tiempo varios ventanas.
Principio de usabilidad: Guiar al usuario y dar el control de la interacción al usuario. Contexto: El usuario tiene dificultades para acceder directamente a las ventanas del sistema informático y desconoce cuál de entre ellas es la ventana actual de trabajo. Fuerza: El sistema debe siempre mostrar la lista de ventanas navegables
Solucion: 1. Retroalimentación visual de navegación directa: 2. Permite al usuario seleccionar directamente la ventana de la interfaz y mostrar de forma continua la ventana activa y desactiva.
Consecuencias:
El acceso directo a las ventanas del sistema no solo beneficia la manipulación directa de ellas sino también la manipulación de los objetos que retienen ya que cada ventana es definida en términos de sus objetos de interacción (e.g. iconos, ítems de menú, radio botones) los cuales permiten la adquisición y la restitución de información que requiere el usuario
Diseño y Arquitectura de Software Unidad 1. Arquitectura Evidencia de aprendizaje. Lenguaje descriptor y patrones de arquitectura de software Alumno: Jerónimo Colín Ortiz, Matrícula: AL10506040 4. Investiga la aplicación de lenguajes y patrones que no se hayan presentado en el desarrollo de la unidad.
5. En un archivo de texto, redacta un reporte con los elementos solicitados en los puntos 1, 2, 3 y 4.
Diseño y Arquitectura de Software Unidad 1. Arquitectura Evidencia de aprendizaje. Lenguaje descriptor y patrones de arquitectura de software Alumno: Jerónimo Colín Ortiz, Matrícula: AL10506040
Diseño y Arquitectura de Software Unidad 1. Arquitectura Evidencia de aprendizaje. Lenguaje descriptor y patrones de arquitectura de software Alumno: Jerónimo Colín Ortiz, Matrícula: AL10506040 1.- Identifica y describe qué es un patrón de arquitectura. Los patrones de arquitectura, son patrones de diseño de software que ofrecen soluciones a problemas en un contexto. Un patrón codifica conocimiento específico acumulado por la experiencia en un dominio. Cada patrón describe un problema y una solución de manera que se puede usar esa solución un número infinito de veces sin tener que hacer la misma cosa dos veces. Los elementos que componen a un patrón son los siguientes: 1. 2. 3. 4.
Nombre: Define un vocabulario de diseño y facilita su abstracción Problema: Describe cuando aplicar el patrón, el objetivo y los requisitos Solución: Incluye los elementos que constituyen el diseño (template), la forma canónica para resolver fuerzas Consecuencias: Resultados, extensiones y tradeoffs
2. Redacta una lista de manera tabular para cada patrón de arquitectura, incluyendo sus principales características.
Comentario
Problema
Solución
Patrones de Arquitectura
Relacionados a la interacción de objetos dentro o entre niveles arquitectónicos
Patrones de Diseño
Conceptos de ciencia de computación en general, independiente de aplicación
Problemas arquitectónicos, adaptabilidad a requerimientos cambiantes, performance, modularidad, acoplamiento Claridad de diseño, multiplicación de clases, adaptabilidad a requerimientos cambiantes, etc
Patrones de llamadas entre objetos (similar a los patrones de diseño), decisiones y criterios arquitectónicos, empaquetado de funcionalidad Comportamiento de factoría, Clase-ResponsabilidadContrato (CRC)
Patrones de Análisis
Usualmente específicos de aplicación o industria
Modelado del dominio, completitud, integración y equilibrio de objetivos múltiples, planeamiento para capacidades adicionales comunes Productividad, comunicación efectiva y eficiente
Modelos de dominio, conocimiento sobre lo que habrá de incluirse (p. ej. logging & reinicio
Patrones de Proceso o de Organización
Desarrollo o procesos de administración de proyectos, o técnicas, o estructuras de organización
Armado de equipo, ciclo de vida del software, asignación de roles, prescripciones de comunicación
Etapa de desarro
Diseño i
Diseño de
Análi
Planeam
Diseño y Arquitectura de Software Unidad 1. Arquitectura Evidencia de aprendizaje. Lenguaje descriptor y patrones de arquitectura de software Alumno: Jerónimo Colín Ortiz, Matrícula: AL10506040 Estándares de codificación y proyecto Idiomas
Operaciones comunes bien conocidas en un nuevo ambiente, o a través de un grupo. Legibilidad, predictibilidad.
Sumamente específicos de un lenguaje, plataforma o ambiente
Implemen Mantenimiento
View more...
Comments