Table Of ContentModelling Architecture Styles
THÈSE NO 7324 (2016)
PRÉSENTÉE LE 21 DÉCEMBRE 2016
À LA FACULTÉ INFORMATIQUE ET COMMUNICATIONS
LABORATOIRE POUR LA CONCEPTION RIGOUREUSE DES SYSTÈMES
PROGRAMME DOCTORAL EN INFORMATIQUE ET COMMUNICATIONS
ÉCOLE POLYTECHNIQUE FÉDÉRALE DE LAUSANNE
POUR L'OBTENTION DU GRADE DE DOCTEUR ÈS SCIENCES
PAR
Anastasia MAVRIDOU
acceptée sur proposition du jury:
Prof. B. Faltings, président du jury
Prof. J. Sifakis, Dr S. Bliudze, directeurs de thèse
Prof. J. Sztipanovits, rapporteur
Prof. B. Rumpe, rapporteur
Prof. R. Guerraoui, rapporteur
Suisse
2016
Σα βγεις στον πηγαιμό για την Ιθάκη,
να εύχεσαι νάναι μακρύς ο δρόμος,
γεμάτος περιπέτειες, γεμάτος γνώσεις.
Κ. Π. Καβάφης
Στους παππούδες μου Αναστασία & Ιωάννη,
στους γονείς μου Ισαβέλλα & Ιωάννη,
& σε όλους τους δασκάλους μου.
To my grandparents Anastasia & Ioanni,
to my parents Isavella & Ioanni,
& to all my teachers.
Acknowledgements
I had the fortune, the honour and the absolute privilege to be advised by Prof. Joseph
Sifakis and Dr. Simon Bliudze. Prof. Sifakis gave me the opportunity to explore very
interesting research problems, while teaching me the beauty of theoretical rigour. Working
with Prof. Sifakis has been a unique experience; I truly admire his passion and energy, as
well as the enthusiasm with which he disseminates his knowledge. Dr. Bliudze always kept
an open door, was happy to help with any kind of issue and patiently answer my numerous
questions. I thank him for the insightful scientific discussions, which I greatly enjoyed.
Ultimately, a few sentences would show nothing about how indebted I feel towards both
Prof. Sifakis and Dr. Bliudze. The support and guidance I received was unbounded and
highly motivational. I sincerely hope that my future work would partly meet their efforts.
I am grateful to Prof. Boi Faltings, Prof. Rachid Guerraoui, Prof. Bernhard Rumpe and
Prof. Janos Sztipanovits for honouring me by accepting to serve on my thesis committee.
I thank them for taking the time to read my thesis and for their invaluable comments on
my work and its perspectives. I would like to additionally thank Prof. Sztipanovits for
being my mentor during a summer internship at Vanderbilt University, which helped me to
significantly increase my knowledge on model-based software engineering.
Special thanks go to Stefanos Skalistis, Goran Radanovic, Manos Karpathiotakis and Aron
Laszka for proofreading my thesis. They helped me improve the flow and presentation of
the thesis by finding several places in which further clarifications were needed.
I want to thank all my colleagues with whom I co-authored a paper: Emmanouela Stachtiari,
Prof. Panagiotis Katsaros, Dr. Anton Ivanov and Alina Zolotukhina. Special thanks go
to Dr. Radoslaw Szymanek for his invaluable guidance on the implementation parts of
this thesis. Special thanks also go to Eduard Baranov with whom I had the pleasure to
extensively interact, constructively argue and co-author several papers. I also thank my
colleagues Alena Simalatsar, Wang Qiang, Wajeb Saab, Alexandre Sikiaridis and Vladimir
Ilievski for creating a pleasant and motivating working environment. I thank Mrs. Arianne
Staudenmann for her continuous help on administrative tasks while always having a smile
on her face.
I would also like to express my gratitude to my dear friends for their continuous support and
for making my life happier. Thank you Alex, Christos, Eleni, Eralia, Evi, Giannis, Iliana,
Katerina, Kiki, Loukia, Manos, Matt, Pavlos, Stefanos, Theano and Zoi.
i
Acknowledgements
Last but not least, I thank my parents, Isavella and Ioannis, and my sister, Ifigeneia for
their unconditional love throughout the years. They were there for me, even when we were
physically apart.
Lausanne, 14 December 2016 A. M.
ii
Abstract
Software systems tend to increase over time in size and complexity. Their development
usually spans a long period of time and may result in systems that are hard to understand,
debug and maintain. Architectures are common means for organising coordination between
components in order to build complex systems and make them manageable. They allow
thinking on a higher plane and avoiding low-level mistakes. Grouping architectures that
share common characteristics into architecture styles assists component re-use and thus,
the cost-effective development of systems. Architecture styles provide means for ensuring
correctness-by-construction by enforcing global properties. The main goal of this thesis is to
propose and study formalisms for modelling architectures and architecture styles.
For the specification of architectures, we study interaction logics, which are Boolean algebras
on a set of component actions. We study a modelling methodology based on first-order
interaction logic for writing architecture constraints. To validate the applicability of the
approach,wedevelopedtheJavaBIPframeworkthatintegratesarchitecturesintomainstream
software development. JavaBIP receives as input architecture specifications, which it then
uses to coordinate software components without requiring access to their source code.
JavaBIP implements the principles of the BIP component framework.
Forthespecificationofarchitecturestyles,weproposeconfiguration logics,whicharepowerset
extensions of interaction logic. Propositional configuration logic formulas are generated from
formulas of interaction logic by using the operators union, intersection and complementation,
as well as a coalescing operator. We provide a complete axiomatisation of the propositional
configuration logic and a decision procedure for checking that an architecture satisfies given
logicalspecifications. Toallowgenericityofspecifications,westudyhigher-orderextensionsof
thepropositionalconfigurationlogic. Weprovideseveralexamplesillustratingtheapplication
of configuration logics to the characterisation of architecture styles.
For the specification of architecture styles, we also propose architecture diagrams, which is
a graphical language rooted in rigorous semantics. We provide methods to assist software
developers to specify consistent architecture diagrams, generate the conforming architectures
of a style and check whether an architecture model meets given style requirements. We
present a full encoding of architecture diagrams into configuration logics. Finally, we report
on applications of architecture diagrams to modelling architecture styles identified in realistic
case studies of on-board satellite software.
iii
Acknowledgements
Keywords: architecture styles, architectures, interaction logics, configuration logics, archi-
tecture diagrams, architecture-based design, BIP, JavaBIP, component coordination.
iv
Résumé
Leslogicielsinformatiquesonttendanceàaugmenteraufildutempsentailleetencomplexité.
Leur développement couvre généralement une longue période de temps et se traduit souvent
par des systèmes qui sont difficiles à comprendre, réparer et maintenir. Les architectures
sont un moyen répandu pour organiser la coordination de composants afin de construire
des systèmes complexes et simplifier leur gestion. Ils permettent de penser à un niveau
d’abstraction supérieur et éviter les erreurs de bas niveau. Regrouper des architectures
partageant des caractéristiques communes en des styles d’architecture aide à la réutilisation
des composants et ainsi, au développement rentable de systèmes. En outre, les styles
d’architecture offrent des moyens pour assurer l’exactitude par construction de systèmes,
par l’application de propriétés globales. Le principal objectif de cette thèse est de proposer
et étudier des formalismes pour modéliser des architectures et des styles d’architecture.
Pour la spécification d’architectures, nous étudions des logiques d’interaction, c’est-à-dire
l’application d’algèbre booléenne sur des ensembles d’actions de composants. Nous étudions
une méthodologie de modélisation basée sur la logique d’interaction de premier ordre pour
l’écriture des contraintes d’architecture. Pour valider cette approche, nous avons développé le
cadre JavaBIP, qui intègre les architectures dans le développement de logiciels grand public.
JavaBIP reçoit comme entrée les spécifications d’architectures, qui sont ensuite utilisées pour
coordonner les composants logiciels sans nécessiter l’accès à leur code source. JavaBIP met
ainsi en œuvre les principes du cadre de programmation de composants BIP.
Pour la spécification des styles d’architecture, nous proposons des logiques de configuration,
qui sont des extensions en ensemble des parties d’un ensemble (powerset en anglais) de la
logique d’interaction. Les formules logiques de configuration propositionnelles sont générées
à partir des formules logiques d’interaction à l’aide des opérateurs d’union, d’intersection et
de complémentation, ainsi qu’un opérateur coalescent. Nous fournissons une axiomatisation
complète de la logique de configuration propositionnelle et une procédure de décision pour
vérifier qu’une architecture satisfait les spécifications logiques données. Pour permettre la
généricité des spécifications, nous étudions les extensions d’ordre supérieur de la logique de
configuration propositionnelle. Nous proposons plusieurs exemples illustrant l’application de
la logique de configuration à la caractérisation des styles d’architecture.
Pour la spécification des styles d’architecture, nous proposons également des diagrammes
d’architecture, c’est-à-dire un langage graphique basé sur une sémantique rigoureuse. Nous
fournissons des méthodes pour aider les développeurs de logiciels à spécifier des diagrammes
v
Résumé
d’architecture cohérents, à générer des architectures conformes à un style, et à vérifier
qu’un modèle d’architecture réponde aux exigences d’un style donné. Nous présentons un
encodage complet des diagrammes d’architecture dans les logiques de configuration. Enfin,
nous présentons des applications de diagrammes d’architecture à des styles d’architecture
de modélisation, identifiées dans des études de cas réalistes de logiciel embarqué pour un
satellite.
Mots clefs : styles d’architecture, architectures, logiques d’interaction, logiques de configura-
tion,diagrammesd’architecture,designbasésurunearchitecture,BIP,JavaBIP,coordination
de composants.
vi
Description:Nous proposons plusieurs exemples illustrant l'application de la logique .. 3.7 Data-wire specification for Trackers and Peers . 4.6 Rewriting system for computing the normal form clearly express a programmer's intent, so that the parallel architecture of a program is more coordination structure