"Un Lenguaje para Especificación de Arquitecturas Dinámicas basado en Pi-cálculo"
La disciplina de la Arquitectura del Software trata con la descripción, verificación y reutilización de los sistemas software. En este nivel de diseño se presta especial atención a la interacción entre componentes del sistema, en vez de atender a los cómputos internos que realizan estas componentes. En este trabajo se presenta LEDA, un LEnguaje de Decripción de Arquitecturas para la especificación y análisis de sistemas dinámicos. El lenguaje es estructurado en dos niveles: componentes, que representan módulos del sistema, y roles, que describen el comportamiento de las componentes; es decir, la forma en que ellas interaccionan entre sí. La arquitectura de un sistema se representa en LEDA por medio de enlaces entre los roles de sus componentes. La semántica de LEDA (objetivo principal del trabajo que se presenta) se expresa en términos del pi-cálculo. La correspondencia entre la semántica del lenguaje propuesto y la semántica operacional del álgebra de procesos subyacente hace posible que las especificaciones LEDA puedan ser comprobadas y analizadas. En particular, es posible automatizar la comprobación de compatibilidad entre roles, lo que permite comprobar (mediante herramientas) que los enlaces que conforman la arquitectura de un sistema son correctos. Nuestra propuesta también contempla aspectos de herencia y polimorfismo de comportamiento, que son utilizados en este contexto para extender y especializar roles, asegurando que los roles derivados preservan la compatibilidad de sus ascendientes. La noción de herencia también se aplica a componentes, de forma que es posible especializar y parametrizar arquitecturas, fortaleciendo de este modo la reutilización de los diseños arquitectónicos.