Table Of ContentUn Lenguaje para la Especificaci´on y Validaci´on de
Arquitecturas de Software
Tesis Doctoral
Presentada por
D. Carlos Canal Velasco
para optar al grado de
Doctor Ingeniero en Inform´atica
Dirigida por el Dr.
D. Jos´e Mar´ıa Troya Linero,
Catedr´atico de Universidad del
´
Area de Lenguajes y Sistemas Inform´aticos
y por el Dr.
D. Ernesto Pimentel S´anchez,
Titular de Universidad del
´
Area de Lenguajes y Sistemas Inform´aticos
M´alaga, Diciembre de 2000
D. Jos´e Mar´ıa Troya Linero, Catedr´atico de Universidad del A´rea de Lenguajes y Sistemas
Inform´aticos de la E.T.S. de Ingenier´ıa Inform´atica de la Universidad de M´alaga, y
D. Ernesto Pimentel S´anchez, Titular de Universidad del A´rea de Lenguajes y Sistemas
Inform´aticos de la E.T.S. de Ingenier´ıa Inform´atica de la Universidad de M´alaga,
Certifican
Que D. Jos´e Carlos Canal Velasco, Licenciado en Inform´atica, ha realizado en el Departa-
mento de Lenguajes y Ciencias de la Computaci´on de la Universidad de M´alaga, bajo nuestra
direcci´on, el trabajo de investigaci´on correspondiente a su Tesis Doctoral titulada
Un Lenguaje para la Especificacio´n y Validaci´on de Arquitecturas de Software
Revisadoelpresentetrabajo,estimamosquepuedeserpresentadoaltribunalquehadejuzgarlo,
y autorizamos la presentaci´on de esta Tesis Doctoral en la Universidad de M´alaga.
M´alaga, Diciembre de 2000
Fdo.: Jos´e Mar´ıa Troya Linero Fdo.: Ernesto Pimentel S´anchez
Catedr´atico de Universidad del A´rea Titular de Universidad del A´rea
de Lenguajes y Sistemas Inform´aticos. de Lenguajes y Sistemas Inform´aticos.
La naturaleza esconde, no revela. Todo ese universo
luminoso y oscuro a cuya suma de energ´ıas llamamos
naturaleza es una m´ascara, un vestido y un suen˜o.
La naturaleza no es Isis, sino el velo de Isis.
Fernando Pessoa
Agradecimientos
La realizaci´on de una tesis doctoral es una aventura vital de
car´acter personal, pero que al igual que la propia vida, no puede
llegar a buen puerto sin la ayuda, el aliento y el afecto de quienes
nos rodean.
Sirva esta p´agina para dar las gracias a todos los que, de un mo-
do u otro, han contribuido a la culminaci´on de esta aventura:
familiares, compan˜eros, amigos... Resulta imposible hacer aqu´ı
una enumeracio´n exhaustiva. No obstante, quiero dedicar espe-
cialmente este trabajo a las siguientes personas, como muestra de
mi agradecimiento hacia ellas:
En primer lugar, debo mencionar a mis directores —Jos´e Mar´ıa y
Ernesto—, quienes depositaron en m´ı su confianza para la realiza-
ci´on de este trabajo. Quiero daros las gracias por vuestros sabios
consejos y por la dedicaci´on que me hab´eis prestado a lo largo de
todo este tiempo.
Tambi´enaAntonio, compan˜erodefatigas, deestudioydiscusiones
sobre ´este y otros muchos temas. Gracias por tu paciencia y tus
valiosos comentarios a la hora de revisar esta memoria.
Una menci´on muy especial la merece Lidia, compan˜era y amiga en
todo y a pesar de todo. ¿Qu´e puedo decir respecto a ti? Cualquier
cosa ser´ıa poco. Gracias por ser como eres.
A Antonio, Carmen y Carmen por los buenos y malos momentos
que hemos pasado juntos. Gracias por estar siempre ah´ı.
Por u´ltimo, a Dani y a Alfonso, por vuestra amistad y por todo el
apoyo que me hab´eis ofrecido en los momentos dif´ıciles.
A todos vosotros, gracias.
Portada: Iglesia de San Miguel de Lillo.
Monte Naranco (Asturias).
Estilo prerrom´anico asturiano. Siglo IX.
´
Indice General
Pr´ologo xi
1 Introducci´on 1
1.1 Ingenier´ıa del Software basada en Componentes . . . . . . . . . . . . . . . . . . . 1
1.1.1 Sistemas de componentes . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.2 Noci´on de componente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.3 Componentes y objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.4 Marcos de trabajo composicionales . . . . . . . . . . . . . . . . . . . . . . 5
1.1.5 Componentes y arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Arquitectura del Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.1 Caracterizaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.2 Patrones arquitect´onicos y patrones de disen˜o . . . . . . . . . . . . . . . . 9
1.2.3 L´ıneas de investigaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3 Niveles de abstracci´on arquitect´onicos . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3.1 Estilos arquitect´onicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3.2 Modelos y arquitecturas de referencia . . . . . . . . . . . . . . . . . . . . 14
1.3.3 Marcos de trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.4 Familias y l´ıneas de productos . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3.5 Instancias arquitect´onicas . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.4 Descripci´on de la arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.4.1 Notaciones diagram´aticas . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.4.2 El Lenguaje Unificado de Modelado . . . . . . . . . . . . . . . . . . . . . 18
1.4.3 Lenguajes de programaci´on modular . . . . . . . . . . . . . . . . . . . . . 19
1.4.4 Lenguajes de interconexi´on de m´odulos y de descripci´on de interfaz . . . . 21
1.4.5 Lenguajes de descripci´on de arquitectura . . . . . . . . . . . . . . . . . . 22
Unicon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Wright . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Darwin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Rapide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
ix
x ´INDICE GENERAL
C2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.5 M´etodos formales usados en Arquitectura del Software . . . . . . . . . . . . . . . 32
1.5.1 A´lgebras de procesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
CCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
ACP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
CSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
El c´alculo π . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Limitaciones de las ´algebras de procesos . . . . . . . . . . . . . . . . . . . 43
1.5.2 Otras aproximaciones formales . . . . . . . . . . . . . . . . . . . . . . . . 44
Redes de Petri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
La m´aquina qu´ımica abstracta . . . . . . . . . . . . . . . . . . . . . . . . 45
Lenguajes de coordinaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
L´ogica temporal de acciones . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Notaci´on Z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Lenguajes de especificaci´on algebraica . . . . . . . . . . . . . . . . . . . . 50
1.6 Requisitos de un lenguaje de descripci´on de arquitectura . . . . . . . . . . . . . . 52
Componentes y conectores . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Dinamismo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Verificaci´on de propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Desarrollo del sistema y reutilizaci´on . . . . . . . . . . . . . . . . . . . . . 55
2 Fundamentos formales 59
2.1 El c´alculo π . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.1.1 Sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.1.2 Sistema de transiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
2.1.3 Movilidad en el c´alculo π . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.1.4 Congruencia estructural . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.1.5 Sustituciones, distinciones y constantes . . . . . . . . . . . . . . . . . . . 64
2.1.6 Equivalencia y bisimulaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.1.7 El c´alculo π poli´adico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
2.1.8 Modelizaci´on de espacios de tuplas . . . . . . . . . . . . . . . . . . . . . . 69
2.2 Especificaci´on de la arquitectura del software . . . . . . . . . . . . . . . . . . . . 71
2.2.1 Nociones intuitivas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.2.2 Formalizaci´on del concepto de rol . . . . . . . . . . . . . . . . . . . . . . . 73
2.2.3 Correcci´on de los roles de un componente . . . . . . . . . . . . . . . . . . 77
2.2.4 Formalizaci´on de los conceptos de conexi´on y arquitectura . . . . . . . . . 80
2.3 Compatibilidad de comportamiento . . . . . . . . . . . . . . . . . . . . . . . . . . 82
2.3.1 Relaci´on de compatibilidad . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Description:Informáticos de la E.T.S. de Ingenierıa Informática de la Universidad de Málaga, y. D. Ernesto La naturaleza no es Isis, sino el velo de Isis. Fernando