DRS_U1_EA_JECO

October 11, 2017 | Author: Jeronimo Colin | Category: Front And Back Ends, Software, Client–Server Model, Design, Server (Computing)
Share Embed Donate


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

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF