You are on page 1of 8

2013

Rodolfo Ramn Lpez AL11503411


Ingeniera en Desarrollo de Software

[DISEO Y ARQUITECTURA DE
SOFTWARE]
Mxico D. F. a 12 DE Julio de 2013.

Diseo y Arquitectura de Software


Unidad 1. Arquitectura
Evidencia de Aprendizaje. Lenguaje descriptor y patrones de arquitectura de Software.
Lenguajes Descriptores de Arquitectura (ADLs)

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.

Robert Monroe y David Garlan

Creador:

Define 4 tipos dentro de la arquitectura y 7 elementos fundamentales.

Tipos

La estructura: Organizacin de un sistema en sus partes constituyentes.


Las propiedades de inters: informacin que permite razonar sobre el comportamiento local o global, tanto funcional como no
funcional
Las restricciones: lineamientos sobre la posibilidad del cambio en el tiempo,
Los tipos y estilos.

Elementos

Componentes
Conectores
Sistemas
Puertos
Roles
Representaciones
Mapas de representacin.

Sistemas Operativos Compatibles:

Multiplataforma

Idioma:

Ingls y Espaol

Licencia

Software Propietario

Rodolfo Ramn Lpez


Ingeniera en Diseo de Software

AL11503411

Diseo y Arquitectura de Software


Unidad 1. Arquitectura
Evidencia de Aprendizaje. Lenguaje descriptor y patrones de arquitectura de Software.

UniCon
ADL de propsito general con nfasis en conectores y estilos. Sus siglas significan Conector Universal de Soporte.
Creador:

Mary Shaw

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 cul 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, 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 se realiza a travs de mecanismos proporcionados por los lenguajes de programacin, por medio
de entradas en tablas de tareas o de encaminamiento y llamadas a funciones del sistema operativo o una plataforma subyacente.
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. Actores y roles constituyen un 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, pero por otra parte no es posible definir sub.-tipos y por lo tanto
carece de capacidad de evolucin.

Sistemas Operativos Compatibles:

Windows

Idioma:

Ingls

Licencia :

Software Propietario

Rodolfo Ramn Lpez


Ingeniera en Diseo de Software

AL11503411

Diseo y Arquitectura de Software


Unidad 1. Arquitectura
Evidencia de Aprendizaje. Lenguaje descriptor y patrones de arquitectura de Software.

Jacal.
ADL de propsito general que se basa en la notacin de alto nivel para descripcin y creacin de prototipos de una arquitectura de
software
Creador:

Nicols Kicillof y Daniel Yankelevich

Este ADL posee un conjunto predefinido y extensible de conectores, cada uno con una representacin distinta. Se utiliza para expresar
arquitecturas de distintos estilos. No ofrece una forma de restringir una configuracin a un estilo especfico, ni de validar la conformidad.
Cada componente cuenta con puertos que constituyen su interfaz y a los que pueden adosarse conectores.
Jacal tiene una semntica denotacional que asocia a cada arquitectura una red correspondiente que est dada en funcin de las redes de Petri la
cual justifica la animacin de las arquitecturas.
Ofrece adems del nivel de interfaz un nivel de comportamiento en el cual se describe la relacin entre las comunicaciones recibidas y enviadas
por un componente, usando diagramas de transicin de estados con etiquetas en los ejes que corresponden a nombres de puertos por los que se
espera o se enva un mensaje.
El objetivo principal de Jacal es lo que actualmente se denomina animacin de arquitecturas, que no es ms que poder visualizar una simulacin
de cmo se comportara en la prctica un sistema basado en la arquitectura que se ha representado ya que la notacin principal de Jacal es
grfica.

Sistemas Operativos Compatibles:

Windows

Idioma:

Ingls

Licencia :

Software Propietario

LEDA.
Es un lenguaje de especificacin y validacin de arquitecturas de software que fue desarrollado por el grupo de ingeniera de software de la
Universidad de Mlaga. Por sus caractersticas se considera un ADL.
Creador :

Ingeniera de software de la Universidad de Mlaga

Posee dos niveles fundamentales, uno para la definicin de componentes los cuales representan partes o mdulos del sistema, proporcionando
cada uno de ellos una determinada funcionalidad al mismo; y otro para la definicin de roles los cuales describen el comportamiento observable de
los componentes y los protocolos de interaccin que siguen con el resto de los componentes, esto es utilizado para crear prototipos, validacin y
ejecucin de la arquitectura.
Los roles se logran especificar aplicando el clculo pi que es un lgebra de procesos que expresa de forma natural la movilidad lo que permite la
especificacin de arquitecturas cuya topologa de comunicacin vara en el tiempo es decir las arquitecturas dinmicas.
Los componentes estn compuestos por otros componentes. La estructura o arquitectura de los mismos se indica mediante las relaciones
establecidas entre sus subcomponentes, lo cual es expresado por un conjunto de conexiones entre los roles de dichos subcomponentes.
En LEDA los conectores se especifican como otro tipo de compones permitiendo que el lenguaje sea ms simple y regular, a la vez que no impone
un modelo composicional concreto para la descripcin de arquitecturas de software.
Con LEDA se puede adaptar un componente a otro donde la interfaz que no sea compatible con la suya a travs de los adaptadores, lo que
permite la reutilizacin del componente. Los adaptadores al igual que lo roles se describen usando el clculo pi.
Una descripcin arquitectnica realizada usando este lenguaje es marco de trabajo genricos que puede ser instanciados y reutilizados tantas
veces como sea necesario.

Sistemas Operativos Compatibles:

Windows

Idioma:

Ingls y Espaol

Licencia:

Software Propietario

Rodolfo Ramn Lpez


Ingeniera en Diseo de Software

AL11503411

Diseo y Arquitectura de Software


Unidad 1. Arquitectura
Evidencia de Aprendizaje. Lenguaje descriptor y patrones de arquitectura de Software.

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.
Creador:

Universidad de Stanford

Interfaces En Rapide los puntos de interfaz de los componentes se llaman constituyentes.


Conectores en Rapide (al igual que en Darwin) no es posible poner nombre, sub-tipear o reutilizar un conector.
Semntica Mientras muchos lenguajes de tipo ADL no soportan ninguna especificacin semntica de sus componentes ms all de la
descripcin de sus interfaces, permite modelar la conducta de sus componentes.
Rapide define tipos de componentes de eventos de
comunicacin que pueden ser observados (acciones externas) o iniciados (acciones pblicas).
Las interfaces de Rapide definen el comportamiento computacional de un componente vinculando la observacin de acciones externas con la
iniciacin de acciones pblicas.
Cada especificacin posee una conducta asociada que se define a travs de conjuntos de eventos parcialmente ordenados (posets); Rapide
utiliza patrones de eventos para identificar posets, de manera anloga a la del mtodo match de las expresiones regulares de .NET
Framework. Para describir comportamientos
Rapide tambin implementa un lenguaje cuyo modelo de interfaz se basa en Standard ML, extendido con eventos y patrones de eventos.
Anlisis y verificacin automtica
El monitoreo de eventos y las herramientas nativas de filtrado facilitan el anlisis de arquitectura. Tambin es posible implementar verificacin
de consistencia y anlisis mediante simulacin. En esencia, en Rapide toda la arquitectura es simulada, generando un conjunto de eventos
que se supone es compatible con las especificaciones de interfaz, conducta y restricciones. La simulacin es entonces til para detectar
alternativas de ejecucin.
Rapide tambin proporciona una caja de herramientas especfica para simular la arquitectura junto con la ejecucin de la implementacin. Sin
embargo un proceso de ejecucin solamente provee una idea del comportamiento con un juego particular de variables (un poset en
particular), antes que una confirmacin de la conducta frente a todos los valores y escenarios posibles. Esto implica que una corrida del
proceso de simulacin simplemente testea la arquitectura, y no proporciona un anlisis exhaustivo del escenario. Nada garantiza que no
pueda surgir una inconsistencia en una ejecucin diferente.

Sistemas Operativos Compatibles:

Solaris 2.5, SunOS 4.1.3. y Linux

Idioma:

Ingls

Licencia :

Software Propietario

Patrn de Diseo

Whole-Part

Descripcin

Ayuda a constituir una coleccin de objetos que juntos conforman una unidad semntica

.
Atributos asociados:

Reusabilidad

Atributos en conflicto:

Desempeo

Patrn de Diseo
Descripcin

Master-Slave

Atributos asociados:

Escalabilidad

Atributos en conflicto:

Portabilidad

Modificabilidad

Un componente maestro (master) distribuye el trabajo a los componentes esclavos (slaves). El componente maestro
calcula un resultado final a partir de los resultados arrojados por los componentes esclavos.

Rodolfo Ramn Lpez


Ingeniera en Diseo de Software

Desempeo

AL11503411

Diseo y Arquitectura de Software


Unidad 1. Arquitectura
Evidencia de Aprendizaje. Lenguaje descriptor y patrones de arquitectura de Software.
Patrn de Diseo

Proxy

Descripcin
Atributos asociados:

Los clientes asociados a un componente se comunican con un representante de ste, en lugar del componente en s
mismo.
Desempeo
Reusabilidad

Atributos en conflicto:

Desempeo

Patrn de Diseo

Command Procesor

Descripcin:

Separa las solicitudes de un servicio de su ejecucin. Maneja las solicitudes como objetos separados, programa sus
ejecuciones y provee servicios adicionales como el almacenamiento de los objetos solicitados, para permitir que el
usuario pueda deshacer alguna solicitud.

Atributos asociados:

Funcionalidad

Atributos en conflicto:

Desempeo

Patrn de Diseo:

View Handler

Descripcin:

Ayuda a manejar todas las vistas que provee un sistema de software. Permite a los clientes abrir, manipular y eliminar
vistas. Tambin coordina dependencias entre vistas y organiza su actualizacin.

Atributos Asociados:

Escalabilidad

Atributos en conflictos:

Desempeo

Patrn de Diseo:

Forwarder-Receiver

Descripcin:

Provee una comunicacin transparente entre procesos de un sistema de software con un modelo de interaccin punto a
punto (peer to peer).

Atribvutos Asociados:

Mantenibilidad

Atributos en conflictos:

Configurabilidad

Patrn de Diseo:

Client-Dispatcher-Server

Descripcin:

Introduce una capa intermedia entre clientes y servidores, es el componente despachador (dispatcher). Provee una
ubicacin transparente por medio de un nombre de servicio, y esconde los detalles del establecimiento de una conexin
de comunicacin entre clientes y servidores.

Atributos Asociados:

Configurabilidad

Portabilidad

Atributos en conflicto:

Desempeo

Modificabilidad

Patrn de Diseo:

Publisher-Subscriber

Descripcin:

Ayuda a mantener sincronizados los componentes en cooperacin. Para ello, habilita una va de propagacin de cambios:
un editor (publisher) notifica a los suscriptores (suscribers) sobre los cambios en su estado.

Atributos Asociados:

Escalabilidad

Atributos en conflicto:

Desempeo

Rodolfo Ramn Lpez


Ingeniera en Diseo de Software

Modificabilidad

Facilidad de Prueba

Modificabilidad

Modificabilidad

Desempeo

Escalabilidad

AL11503411

Disponibilidad

Diseo y Arquitectura de Software


Unidad 1. Arquitectura
Evidencia de Aprendizaje. Lenguaje descriptor y patrones de arquitectura de Software.
La siguiente figura presenta la relacin de abstraccin existente entre los conceptos de estilo arquitectnico, patrn
arquitectnico y patrn de diseo. En ella se representa el planteamiento de Buschmann et al. (1996), que propone el
desarrollo de arquitecturas de software como un sistema de patrones, y distintos niveles de abstraccin .

Ejemplos:

Ejemplo da la utilizacin de la notacin


UML para exponer un patrn de diseo

Ejemplo 1:

Formato de Christopher Alexander (1979)


El Arquitecto Alexander, aunque encamino sus esfuerzos a la rama de la construccin, aport sin
embargo, las bases que dan soporte a la Arquitectura de Software, como el siguiente Patrn con
instrucciones precisas de cmo llevar a cabo las actividades que da solucin a cualquier problema.
- Imagen mostrando un ejemplo arquitectnico del patrn (Diseado mediante ADLs)
- Prrafo introductorio del contexto del patrn (explicando la extensibilidad)
- Una lnea que resuma la esencia del problema
- El cuerpo del problema documentacin emprica, validez, manifestacin, sntomas- La solucin
- Representacin diagramtico de la solucin (ADLs)
- Mencin de los patrones relacionados

Rodolfo Ramn Lpez


Ingeniera en Diseo de Software

AL11503411

Diseo y Arquitectura de Software


Unidad 1. Arquitectura
Evidencia de Aprendizaje. Lenguaje descriptor y patrones de arquitectura de Software.
Ejemplo 2:

Formato patrones grupo Hillside (1993)


El Grupo de Hillside envi una convocatoria de patrones y, en 1995, se celebr la primera conferencia
de patrn en Allerton Park en el centro de Illinois en los Estados Unidos. La segunda conferencia,
tambin en Allerton, seguira un ao ms tarde. Estas dos primeras conferencias plop fue testigo de un
puado de modelos de organizacin:
- Nombre
- Problema
- Contexto
- Fuerzas (componentes del problema)
- Solucin
- Contexto resultante
- Racionalizacin (reflexin del patrn creado)

Bibliografa:
RED. Revista de Educacin a Distancia. http://www.um.es/ead/red/M10/
http://prof.usb.ve/lmendoza/Documentos/PS-6116/Guia%20Arquitectura%20v.2.pdf
Conclusiones:

La inmadurez de la Ingeniera del Software como disciplina ingenieril queda plasmada cada vez que se
reinventa la rueda para afrontar un nuevo proyecto software, en lugar de recurrir a la gua de soluciones ya
existentes como sucede en otras ingenieras.
Este problema de falta de madurez se hace ms patente cuanto mayor es la organizacin, donde los proyectos
caminan independientes resolviendo una y otra vez problemas similares (por no decir idnticos en un alto
porcentaje de los casos) a los ya resueltos en otros proyectos.
Los ADLs y los patrones Arquitectonicos, y en general la nocin de patrn, constituyen una forma flexible y
adecuada que favorece la reutilizacin de la experiencia embebida en los procesos que representan soluciones a
problemas de software, con independencia de su nivel de abstraccin (anlisis, diseo o implementacin).
Dentro de los patrones software, los ms tiles desde el punto de vista de aportacin a la reutilizacin del
software son los patrones que se denominan generativos, esto es, aquellos que son activos y dinmicos, que no
se limitan a mostrar las caractersticas de los sistemas que se consideran adecuados, sino que ensean a
construirlos.

Rodolfo Ramn Lpez


Ingeniera en Diseo de Software

AL11503411

You might also like