Modelling 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: