You are on page 1of 10

Diseo y arquitectura de software

Alumno: Cristbal de Jess Flores Iiguez


AL13503107
Evidencia de aprendizaje: Lenguaje
descriptor y patrones de arquitectura de
software

Lenguajes descriptores de arquitectura de


software
ACME
Se define como una herramienta capaz de soportar el mapeo de
especificaciones arquitectnicas entre diferentes ADL, o en otras
palabras, como un lenguaje de intercambio de arquitectura. Es
considerado como un ADL de 2da generacin.
Se compone bsicamente de:

Componentes

Conectores

Sistemas

Puertos

Roles

Representaciones

Mapas de representacin.

*Funcionalidades bsicas:
-Intercambio arquitectural

- Plataforma extensible de herramientas de arquitectura


- Descripcin de arquitecturas
-Provee un mecanismo de anotaciones
- Provee tipos arquitecturales (Estilos)
- Marco de anlisis semntico
-Formalismo lgico basado en relaciones y restricciones
- Una descripcin ACME se representa con un predicado; El predicado
puede ser consultado mediante sentencias lgicas

Rapide
Se puede caracterizar como un lenguaje de descripcin de sistemas
de propsito general
que permite modelar interfaces de componentes y su conducta
observable. Sera tanto un ADL como un lenguaje de simulacin. La
estructura de Rapide es sumamente compleja, y en realidad articula
cinco lenguajes: el lenguaje de tipos describe las interfaces de los
componentes; el lenguaje de arquitectura describe el flujo de eventos
entre componentes; El lenguaje de especificacin describe
restricciones abstractas para la conducta de los componentes; el
lenguaje ejecutable describe mdulos ejecutables; y el lenguaje de
patrones describe patrones de los eventos. Los diversos sub-lenguajes
comparten la misma visibilidad, scoping y reglas de denominacin,
as como un nico modelo de ejecucin
*Principales elementos:
-Component:
1.-Interface Objects
2.-Module (Implementan los Objetos Interface)
-Connector:
1.-Interfaces de envo y recepcin
2.-Los componentes se comunican a travs de conectores

3.- Tres tipos de conexiones


4.-Bsicas, Pipes y Agentes
-Constraints:
Se definen en las conexiones de la arquitectura
Wright
Se puede caracterizar sucintamente como una herramienta de
formalizacin de conexiones arquitectnicas. Ha sido desarrollado por
la Escuela de Ciencias Informticas de la Universidad Carnegie Mellon,
como parte del proyecto mayor ABLE. Este proyecto a su vez se
articula en dos iniciativas: la produccin de una herramienta de
diseo, que ha sido Aesop, y una especificacin formal de descripcin
de arquitecturas, que es propiamenteWright.
Objetivo principal Wright es probablemente la herramienta ms
acorde con criterios acadmicos de mtodos formales. Su objetivo
declarado es la integracin de una metodologa formal con una
descripcin arquitectnica y la aplicacin de procesos formales tales
como lgebras de proceso y refinamiento de procesos a una
verificacin automatizada de las propiedades de las arquitecturas de
software.
Xadl
Lenguaje de Descripcin de Arquitecturas basado en XML
*Principales elementos:
-Componente
-Conector
-Interfaces
-Configuraciones
-Es fcilmente extensible( modular)
Diagrama descriptivo de Xadl

Unicon
En UniCon los componentes son las unidades de compilacin de los
lenguajes de programacin y otros objetos del nivel del usuario, por
ejemplo un fichero. Pero los conectores no pueden identificarse tan
fcilmente en el nivel del usuario por ejemplo: entradas en una tabla,
directivas de ensamblado, estructuras de datos utilizadas en tiempo
de ejecucin, protocolos estndares de comunicacin, etc.
Tanto a los componentes como a los conectores se les asocia un tipo
o clase, que es la que determina cual ser su interfaz, adems estos
estn descritos mediante una serie de atributos y tienen una
implementacin determinada. Los atributos de los componentes
describen caractersticas tales como su funcionalidad, rendimiento,
etc., mientras que su implementacin ser el cdigo en un lenguaje
de programacin. Los atributos de un conector incluyen diversas
caractersticas por ejemplo la garanta de entrega de paquetes en una
red de comunicacin, restricciones sobre el orden de envi o
recepcin de eventos, reglas sobre la instanciacin de parmetros,
restricciones sobre el nmero de componentes que conectan y los
papeles que estos componentes juegan en la conexin, entre otros.

En el caso de los conectores su implementacin es tambin diversa,


se realiza a travs de mecanismos proporcionados por los lenguajes
de programacin y no son ms que variables globales o llamadas a
procedimiento, por medio de entradas en tablas de tareas o de
encaminamiento y llamadas a funciones del sistema operativo o una
plataforma subyacente, como por ejemplo para la lectura y escritura
de sockets o para el envi y recepcin de mensajes etc.
Con este ADL la descripcin de la interfaz se lleva a cabo con el
propsito de definir las posibles conexiones entre componentes y
conectores para formar sistemas ms grandes. En los componentes la
interfaz est constituida por varios actores mientras que en los
conectores est formada por roles. Los actores y roles son de un tipo
especfico que se describe a travs de atributos que dependen del
tipo de que se trate, de tal forma que los actores y roles conectados
entre s deben ser de un mismo tipo.
En UniCon estos tipos estn predeterminados y forman parte del
propio lenguaje, por lo que se tiene control sobre los tipos
componentes y conectores que pueden utilizarse y cules son las
posibilidades de combinarlos, y es precisamente esto lo que permite a
UniCon la generacin de un sistema ejecutable en C a partir de una
descripcin arquitectnica, pero por otra parte no es posible definir
sub.-tipos y por lo tanto carece de capacidad de evolucin.

Hace nfasis en conectores y estilos


*Se compone solo de componentes y conectores
*los componentes son especificados por una interfaz y dicha interfaz
contiene 3 tipos de informacin:
-Tipo de componente
-Propiedades
-definiciones de usuario
*Los conectores son especificados por protocolos los cuales definen
las interacciones permitidas entre una coleccin de componentes y
estos contienen 3 tipos de informacin:
-Tipo de conector
-propiedades

-definiciones de rol
Dichos protocolos garantizan la comunicacin adecuada entre
componentes.

Ejemplos de aplicacin de patrones de arquitectura


APLICACIN DE PATRON DE PIPES Y FILTROS
Compilador MOCHA (Modular Object Computation with Hypothetical Algorithms)

Los sucesivos filtros comparten un cierto estado: la tabla de


smbolos.

No es una arquitectura Pipes y Filtros estricta.

La implementacin es un nico programa.

EJEMPLO DE APLICACIN DE PATRON DE CAPAS O LAYERS


Este ejemplo representa las capaz que se pueden implementar a la
implementacin de una pagina web, cuyas capaz de abstracciones
mas bajas son las bases de datos donde se almacena la informacin
que es requerida de dicha pagina, siendo a si la capa menos

abstracta aquella que solo presenta dicha informacin al usuario


ultimo( cliente).

EJEMPLO DE APLICACIN DEL PATRON DE ARQUITECTURA MODELOVISTA CONTROL


Los siguientes son ejemplos claros de la implementacin de este
patrn:

Sistema de elecciones polticas.

Los usuarios votan a travs de una interfaz grfica.

La informacin se muestra con distintos formatos.

Los cambios por votacin deben reflejarse en forma inmediata.

La imagen anterior muestra el ejemplo de una votacin, donde los


componentes que se involucran son:
Modelo: Almacenar los votos y realizar clculos de suma y
acumulacin de los votos
Vistas: Actualizacin en tiempo real de las estadsticas arrojadas por
las votaciones o recopilacin de datos
Controlador: La interfaz de usuario que pedir los votos y dejaran
saber al usuario cuando su voto ha sido emitido satisfactoriamente.

Conclusiones finales:
En general los distintos ADLs nos sirven para formalizar un lenguaje
para describir una arquitectura y llegar as a cierto convenio para que
dicha arquitectura pueda ser entenidada y adems para poderse
llevar a cabo de manera correcta, los patrones de arquitectura nos
sirven como gua para poder adaptar alguna arquitectura ya
previamente establecida a algn problema en particular que
queramos solucionar mediante el software, por lo que es importante
conocer dichos patrones para facilitar en cierta medida el trabajo que
conlleva implementar algn diseo de software

You might also like