Está en la página 1de 9

índice

Introducción.......................................................................................................................................3
Lenguaje de Descripción Arquitectónica (LDA)...................................................................................4
Lenguaje de Descripción Arquitectónica Wright................................................................................6
Lenguaje de Descripción Arquitectónica: ACME.................................................................................7
Lenguaje de Descripción Arquitectónica ADML..................................................................................8
Lenguaje de Descripción Arquitectónica Rapide Stanford..................................................................9
Conclusión:.......................................................................................................................................10
Introducción
El Lenguaje de Descripción Arquitectónica (LDA) desempeña un papel esencial en la labor
arquitectónica, aunque aún carece de una definición universal y precisa. A pesar de esta
falta de una conceptualización única, se reconoce que debe satisfacer ciertas condiciones
necesarias para facilitar y respaldar el progreso, la evolución y la creación de un sistema.

.
Lenguaje de Descripción Arquitectónica (LDA)
Desde la década de 1990 hasta la actualidad, han surgido varias propuestas para describir
y analizar arquitecturas de software, muchas de las cuales han adoptado la forma de
Lenguajes de Descripción de Arquitectura (ADL). Estos ADL proporcionan herramientas
para definir abstracciones arquitectónicas y métodos para descomponer sistemas en
componentes y conectores, detallando cómo estos elementos se combinan para crear
configuraciones y estableciendo categorías de arquitecturas o estilos. Al hacer uso de un
ADL, los arquitectos pueden analizar con precisión las propiedades del sistema,
manteniendo un nivel de abstracción genérico pero útil. Algunas de estas propiedades
podrían incluir protocolos de interacción, ancho de banda, latencia, almacenamiento,
cumplimiento de estándares arquitectónicos y previsiones para futuras evoluciones del
sistema.

Hasta que se publicaron las sistematizaciones de autores como Shaw y Garlan, Kogut y
Clements, o Nenad Medvidovic, había poco acuerdo sobre qué constituye un ADL, qué
lenguajes de modelado califican como ADL y cuáles no, qué aspectos de la arquitectura
deberían ser modelados con un ADL y cuáles de ellos eran más apropiados para
representar qué. El uso de ADL comenzó a ser más común en la década de 1990 debido al
crecimiento en tamaño y complejidad de los sistemas emergentes. Esto se debió a diversas
razones:

- Comunicación entre stakeholders.


- Decisiones de diseño.
- Abstracción transferible de un sistema.
- Estructuras arquitectónicas

Existen diferentes tipos de vistas que permiten ver la arquitectura de un sistema


más en detalle:

1) Vista lógica
2) Vista de código
3) Vista de desarrollo
4) Vista de coincidencia
5) Vista física

Una de las definiciones más tempranas sostiene que un ADL debe modelar o soportar lo
siguiente.

Conceptos
 Componentes.
 Conexiones.
 Composición jerárquica, en la que un componente puede contener una sub-
arquitectura completa.
 Paradigmas de computación, es decir, semánticas, restricciones y propiedades
no funcionales.
 Paradigmas de comunicación.
 Modelos formales subyacentes.
 Soporte de herramientas para modelado, análisis, evaluación y verificación.
 Composición automática de código aplicativo.

El proceso de desarrollo de software incorpora elementos arquitectónicos que definen la


estructura del sistema, conocida como arquitectura del software. Hay diversas definiciones
de arquitectura, pero en general se refiere a las organizaciones de un sistema y sus
componentes visibles externamente.

La arquitectura del software también se considera un conjunto de patrones que guían la


construcción del software, permitiendo a los desarrolladores compartir una línea de
trabajo y cubrir objetivos y limitaciones de la aplicación. Aunque hay divergencias en las
definiciones, todos concuerdan en que la arquitectura implica abstracción y define la
interacción entre componentes.

Las Arquitecturas de Referencia de Software (ARS) surgen en un contexto de evolución de


la Arquitectura de Software, con diferentes enfoques como diseño orientado a objetos,
estilos arquitectónicos y patrones. Los Lenguajes de Descripción de Arquitectura (ADLs)
permiten modelar arquitecturas antes de la programación, analizar su adecuación y
simular su comportamiento.

la arquitectura del software define la estructura y relaciones de un sistema, guiada por


patrones y abstracciones. Las ARS y los ADLs son herramientas para desarrollar y analizar
arquitecturas desde una perspectiva abstracta. En la actualidad, existen alrededor de
veinticinco Lenguajes de Descripción de Arquitectura (ADL) en la industria. Sin embargo,
varios de ellos, entre cuatro o cinco, han enfrentado dificultades en su desarrollo o no han
logrado establecerse en el mercado de herramientas de arquitectura.

Estos ADL varían desde entornos altamente intuitivos con interfaces gráficas ocasionales
hasta sistemas rigurosamente formales con notaciones simbólicas, donde cada elemento
se vincula con algún teorema.

Definir categóricamente qué es un ADL resulta problemático. En ocasiones, otras


notaciones y formalismos se utilizan como si fueran ADL para describir arquitecturas.
Ejemplos de esto serían CHAM, UML y Z. Aunque se mencionan, es importante aclarar que
no son ADL en el sentido estricto, y a pesar de los cinco estereotipos históricos
(principalmente en el caso de UML), no se emplean para las mismas tareas que los
lenguajes descriptivos de arquitectura, diseñados específicamente para ese propósito.
Lenguaje de Descripción Arquitectónica Wright
Wright es un lenguaje de descripción arquitectónica desarrollado en la Universidad de
Carnegie Mellon, en el ámbito de la ingeniería de software. Su enfoque radica en la
formalización de la arquitectura de software mediante conceptos esenciales como
componentes, enlaces, funciones y puertos. Los procesos de comunicación secuencial
(CSP) derivados del álgebra de procesos se emplean para expresar la dinámica de los
puertos de los componentes y los roles que desempeñan en las interacciones, siguiendo el
marco CSP. Esta formalidad intrínseca facilita la verificación automática de compatibilidad
y coherencia en los puertos y roles, garantizando la cohesión global del sistema. Los
precursores principales en el desarrollo de Wright son Robert Allen y David Garlan.

Wright sobresale como una herramienta de relevancia académica en el campo de los


métodos formales. Su propósito radica en amalgamar una metodología formal con la
descripción arquitectónica, aplicando técnicas formales como álgebras de proceso y
refinamiento de procesos para habilitar la verificación automatizada de propiedades en
arquitecturas de software. Se destaca por su enfoque en enlaces explícitos, validación
automática de características arquitectónicas y formalización de estilos arquitectónicos.
Para mejorar la materialización y aplicación de abstracciones arquitectónicas, Wright
presenta un conjunto de pruebas y controles de integridad que fortalecen la confianza del
diseñador en el proceso de diseño. Estos controles están precisamente definidos en el
marco de Wright, basado en CSP, y pueden ser sometidos a evaluación mediante enfoques
estándar de verificación. En Wright, la descripción de un componente consta de dos
partes: interfaz y computación. La interfaz está compuesta por puertos que representan
interacciones independientes en las que el componente participa.

El empleo de notaciones precisas, como Wright, simplifica la comunicación entre


arquitectos y sienta las bases para analizar arquitecturas. Las descripciones de enlaces
permiten determinar si cumplen propiedades esenciales, como coherencia interna del
protocolo y restricciones adecuadas en los roles para asegurar un funcionamiento preciso
de los componentes. Estas descripciones, que desempeñan el papel de "tipos" abstractos y
generales, permiten instancias concretas en el sistema final. Las configuraciones en Wright
son jerárquicas, donde cada componente puede ser definido mediante una especificación
individual o como parte de una nueva descripción de sistema.

Algunas de las características destacadas de Wright:


 Composición: Facilita la representación del sistema como una amalgama de partes.
 Configuración y Abstracción: Define roles abstractos de componentes en la
arquitectura.
 Flexibilidad: Permite crear nuevas interacciones entre componentes.
 Reutilización: Posibilita el reaprovechamiento de componentes y de la propia
arquitectura.
 Heterogeneidad: Capacidad de combinar descripciones diversas.
 Análisis: Facilita múltiples formas de análisis de la arquitectura y el sistema.
Lenguaje de Descripción Arquitectónica: ACME
Acme es un lenguaje genérico y sencillo de descripción de arquitectura de software (ADL)
que cumple dos roles importantes: sirve como formato de intercambio estándar para
herramientas de diseño arquitectónico y también como base para el desarrollo de nuevas
herramientas de análisis y diseño arquitectónico. El proyecto Acme surgió en 1995 con el
objetivo de crear un lenguaje común que facilitara el intercambio de descripciones
arquitectónicas entre diversas herramientas de diseño. A lo largo del tiempo, el lenguaje
Acme y su conjunto de herramientas se han convertido en una base sólida sobre la cual se
pueden construir nuevas herramientas de diseño y análisis arquitectónico sin necesidad de
rehacer la infraestructura estándar. Las capacidades fundamentales que ofrece el lenguaje
Acme y su conjunto de herramientas son:

Intercambio arquitectónico: Al proporcionar un formato de intercambio genérico para


diseños arquitectónicos, Acme permite que los desarrolladores de herramientas
arquitectónicas integren fácilmente sus herramientas con otras complementarias. Los
arquitectos que utilizan herramientas compatibles con Acme tienen a su disposición un
conjunto más amplio de herramientas de análisis y diseño en comparación con los que
están limitados a un solo lenguaje de descripción arquitectónica.

Base extensible para nuevas herramientas: Muchas herramientas de diseño y análisis


arquitectónico requieren una representación para describir, almacenar y manipular
diseños arquitectónicos. Acme reduce la complejidad y el costo de desarrollar estas
herramientas al ofrecer un lenguaje y un conjunto de herramientas como base. Esto evita
la necesidad de reconstruir la infraestructura estándar y brinda una base sólida y
extensible para nuevas herramientas. Además, el origen genérico de Acme permite que las
herramientas desarrolladas en su base sean compatibles con una variedad de lenguajes y
conjuntos de herramientas existentes.

Descripción de Arquitectura: Acme no solo se utiliza como lenguaje de intercambio o base


para herramientas, sino que también se ha consolidado como un lenguaje útil en sí mismo
para describir arquitecturas. Ofrece un conjunto de construcciones de lenguaje para
describir la estructura, tipos y estilos arquitectónicos, así como propiedades anotadas de
los elementos arquitectónicos. Aunque no es adecuado para todas las aplicaciones, el
lenguaje de descripción de arquitectura de Acme proporciona una introducción efectiva a
la modelización arquitectónica y una forma sencilla de describir arquitecturas de software
relativamente simples.

El proyecto Acme ha evolucionado con las contribuciones y comentarios de miembros de


la comunidad de diseño de arquitecturas de software. El diseño del lenguaje y el desarrollo
de herramientas principales han sido llevados a cabo por el grupo ABLE en la Universidad
Carnegie Mellon y Dave Wile en el Instituto de Ciencias de la Información de USC. Este
proceso ha contado con aportes significativos y frecuentes por parte de miembros del
proyecto DARPA EDCS.
Lenguaje de Descripción Arquitectónica ADML
Conforme el mundo del desarrollo web experimentaba una expansión generalizada, surgió
una necesidad imperante: estandarizar el proceso de descripción de arquitecturas. Así es
como nacieron los ADML (Architecture Description Markup Language), una respuesta
concreta para estandarizar la narrativa arquitectónica a través del uso del lenguaje XML.
Desde el año 2000, The Open Group tomó la iniciativa de promover esta evolución, cuyos
cimientos se gestaron originalmente en MCC (Microelectronics and Computer Technology
Corporation).

El aporte más significativo de los ADML es su capacidad para insertar en el dominio de los
Lenguajes de Descripción de Arquitectura (ADLs) un formato de representación cimentado
en los estándares de la industria. Este enfoque permite que cualquier analizador de XML
pueda leer y comprender estas descripciones arquitectónicas. En plataformas Windows, el
analizador principal y el serializador de XML se instalan conjuntamente con Microsoft
Internet Explorer desde la versión 4 en adelante. Además, todas las aplicaciones de Office,
así como SQL Server, poseen una integración nativa con XML y, por ende, con el lenguaje
arquitectónico basado en marcado. De igual forma, el Framework .NET de Microsoft
presenta clases específicas (xmlreader, xmlwriter) que simplifican drásticamente la
implementación del procesamiento de documentos ADML, xADL, xArch y sus variaciones.

Conforme el alcance de Internet se expandía en armonía, ADML también abría la


posibilidad de definir conexiones con elementos externos a la arquitectura en cuestión.
Esto incluía elementos como justificaciones racionales, diseños y componentes, al mismo
tiempo que habilitaba una interacción fluida con diversos repositorios industriales. En este
contexto, las especificaciones desarrolladas por OASIS para esquemas como SWIFT, IFX,
OFX/OFE, BIPS, OTP, OMF, HL7, ossettaNet y otros similares encontraron en ADML un
medio eficaz de comunicación y colaboración.

El valor de ADML trasciende aún más, ya que también sienta las bases para una serie de
especificaciones especializadas. Inicialmente, ADML se apoyaba en DTD (Definición de Tipo
de Documento), una sintaxis de metadatos que actualmente se considera obsoleta. No
obstante, las iteraciones más recientes han adoptado esquemas extensibles de XML, una
evolución que busca proporcionar mayor flexibilidad y capacidad de adaptación.

Destacando entre estas especificaciones se encuentra xADL (pronunciado como "zaydal"),


desarrollada por la Universidad de California en Irvine. xADL se erige como una de las
contribuciones más relevantes al definir esquemas XML para describir familias
arquitectónicas, lo que equivale a definir estilos particulares de arquitectura.

En resumen, ADML representa una excelente base sobre la cual los proveedores de
herramientas pueden implementar herramientas capaces de satisfacer las necesidades del
arquitecto empresarial tanto en el presente como en el futuro.
Lenguaje de Descripción Arquitectónica Rapide Stanford
Desarrollado en la Universidad de Stanford, se presenta como un Lenguaje de Descripción
de Arquitectura (ADL) que ha destacado por su enfoque en la descripción y análisis de
sistemas distribuidos y concurrentes. Su diseño se enfoca en la especificación formal y
precisa de las interacciones y comportamientos entre componentes en las arquitecturas
de software. A diferencia de algunos otros ADLs, Rapide se distingue por su énfasis en la
modelización de eventos y su habilidad para describir la concurrencia y sincronización en
sistemas en tiempo real y sistemas distribuidos. Se vale de un enfoque basado en eventos
para capturar la dinámica de las interacciones entre componentes, lo que le permite
representar de manera efectiva escenarios complejos en los cuales múltiples componentes
colaboran y comunican.

Su capacidad para describir protocolos de comunicación y restricciones temporales, lo que


facilita la especificación de interacciones precisas y la detección temprana de posibles
problemas de diseño. Además, Rapide ofrece herramientas para la verificación automática
de propiedades arquitectónicas, ayudando a los diseñadores a garantizar que el sistema
cumpla con los requisitos deseados y evite situaciones indeseadas como bloqueos o
comportamientos incorrectos. La computación en Rapide implica la manipulación explícita
de un orden parcial de eventos. Por lo tanto, la implementación debe codificar y
almacenar un orden parcial. Un algoritmo desarrollado de manera independiente puede
usarse para codificar el orden parcial sin requerir sincronización o enlaces de
comunicación adicionales, ni tampoco un proceso central de marca de tiempo. Sin
embargo, si hay n procesos, el algoritmo requiere vectores de longitud n. Aunque la
cantidad de procesos en Rapide puede cambiar durante la computación, describimos este
algoritmo como si el número, n, estuviera fijo.

En el algoritmo de Fidge-Mattern, cada uno de los n procesos mantiene un vector entero


de longitud n. Intuitivamente, el componente i-ésimo de este vector representa una
aproximación del contador de eventos del i-ésimo proceso. El algoritmo FM procede de la
siguiente manera: todos los vectores se inicializan en (0, 0, ..., 0). El proceso i incrementa
el componente i-ésimo de su vector antes de enviar un evento. Cuando un proceso envía
un evento, incluye el valor actual de su propio vector. Cuando un proceso recibe un vector,
actualiza su propio vector al máximo componente a componente entre su propio vector y
el vector que recibe. Con este algoritmo en su lugar, el evento e ocurre antes que el evento
f en el orden causal si y solo si cada componente del vector e es menor o igual que el
componente correspondiente del vector f, y al menos un componente es estrictamente
menor.

La confiabilidad de Rapide permite un análisis exhaustivo y aumenta la confianza en la


corrección de las arquitecturas de software. Sin embargo, debido a su enfoque en sistemas
concurrentes y distribuidos, su adopción puede estar más dirigida a dominios específicos
que requieren una modelización detallada de las interacciones y comportamientos en
tiempo real.
Conclusión:
En conclusión, los Lenguajes de Descripción de Arquitectura (ADLs) desempeñan un papel
esencial en la ingeniería de software y la arquitectura de sistemas. Estas herramientas
permiten a los arquitectos y diseñadores comunicar, modelar y analizar estructuras y
comportamientos arquitectónicos de manera precisa y formal. Los ADLs ofrecen la
capacidad de capturar las complejidades de los sistemas, facilitando la detección temprana
de problemas, la verificación de propiedades y la toma de decisiones fundamentadas. A
través de su variedad de enfoques y características, los ADLs se convierten en valiosos
aliados para la creación y evolución de sistemas robustos, adaptables y eficientes en una
amplia gama de dominios y aplicaciones.

También podría gustarte