Professional Documents
Culture Documents
Full Chapter Software Architecture 14Th European Conference Ecsa 2020 L Aquila Italy September 14 18 2020 Proceedings Anton Jansen PDF
Full Chapter Software Architecture 14Th European Conference Ecsa 2020 L Aquila Italy September 14 18 2020 Proceedings Anton Jansen PDF
https://textbookfull.com/product/software-architecture-12th-
european-conference-on-software-architecture-ecsa-2018-madrid-
spain-september-24-28-2018-proceedings-carlos-e-cuesta/
https://textbookfull.com/product/software-architecture-13th-
european-conference-ecsa-2019-paris-france-
september-9-13-2019-proceedings-tomas-bures/
https://textbookfull.com/product/computer-security-
esorics-2020-25th-european-symposium-on-research-in-computer-
security-esorics-2020-guildford-uk-
Addressing Global Challenges and Quality Education 15th
European Conference on Technology Enhanced Learning EC
TEL 2020 Heidelberg Germany September 14 18 2020
Proceedings Carlos Alario-Hoyos
https://textbookfull.com/product/addressing-global-challenges-
and-quality-education-15th-european-conference-on-technology-
enhanced-learning-ec-tel-2020-heidelberg-germany-
september-14-18-2020-proceedings-carlos-alario-hoyos/
https://textbookfull.com/product/wireless-sensor-networks-14th-
china-conference-cwsn-2020-dunhuang-china-
september-18-21-2020-revised-selected-papers-zhanjun-hao/
https://textbookfull.com/product/computer-algebra-in-scientific-
computing-22nd-international-workshop-casc-2020-linz-austria-
september-14-18-2020-proceedings-francois-boulier/
https://textbookfull.com/product/business-process-
management-18th-international-conference-bpm-2020-seville-spain-
september-13-18-2020-proceedings-dirk-fahland/
Software
Architecture
14th European Conference, ECSA 2020
L’Aquila, Italy, September 14–18, 2020
Proceedings
Lecture Notes in Computer Science 12292
Founding Editors
Gerhard Goos
Karlsruhe Institute of Technology, Karlsruhe, Germany
Juris Hartmanis
Cornell University, Ithaca, NY, USA
Software
Architecture
14th European Conference, ECSA 2020
L’Aquila, Italy, September 14–18, 2020
Proceedings
123
Editors
Anton Jansen Ivano Malavolta
Koninklijke Philips N.V. VU Amsterdam
Eindhoven, The Netherlands Amsterdam, The Netherlands
Henry Muccini Ipek Ozkaya
University of L’Aquila Carnegie Mellon University
L’Aquila, Italy Pittsburg, PA, USA
Olaf Zimmermann
University of Applied Sciences
of Eastern Switzerland
Rapperswil, Switzerland
This Springer imprint is published by the registered company Springer Nature Switzerland AG
The registered company address is: Gewerbestrasse 11, 6330 Cham, Switzerland
Preface
General Chair
Henry Muccini University of L’Aquila, Italy
Steering Committee
Muhammad Ali Babar The University of Adelaide, Australia
Paris Avgeriou University of Groningen, The Netherlands
Tomas Bures Charles University, Czech Republic
Rogério de Lemos University of Kent, UK
Laurence Duchien CRIStAL, University of Lille, France
Carlos E. Cuesta Rey Juan Carlos University, Spain
David Garlan Carnegie Mellon University, USA
Paola Inverardi University of L’Aquila, Italy
Patricia Lago Vrije Universiteit Amsterdam, The Netherlands
Antónia Lopes University of Lisbon, Portugal
Ivano Malavolta Vrije Universiteit Amsterdam, The Netherlands
Raffaela Mirandola Politecnico di Milano, Italy
Henry Muccini University of L’Aquila, Italy
Flavio Oquendo (Chair) IRISA, University of South Brittany, France
Ipek Ozkaya Carnegie Mellon University, USA
Jennifer Pérez Technical University of Madrid, Spain
Bedir Tekinerdogan Wageningen University, The Netherlands
Danny Weyns KU Leuven, Belgium
Uwe Zdun University of Vienna, Austria
Research Track
Program Committee Chairs
Ivano Malavolta Vrije Universiteit Amsterdam, The Netherlands
Ipek Ozkaya Carnegie Mellon University, USA
Program Committee
Jesper Andersson Linnaeus University, Sweden
Paris Avgeriou University of Groningen, The Netherlands
Rami Bahsoon University of Birmingham, UK
Luciano Baresi Politecnico di Milano, Italy
Thais Batista Federal University of Rio Grande do Norte, Brazil
Steffen Becker University of Stuttgart, Germany
Stefan Biffl TU Wien, Austria
viii Organization
Additional Reviewers
Industry Track
Program Committee Chairs
Anton Jansen Philips, The Netherlands
Olaf Zimmermann Hochschule für Technik Rapperswil, Switzerland
Program Committee
Mohsen Anvaari Independent Consultant, Norway
Andrei Furda Hitachi Rail STS, Australia
Heiko Koziolek ABB Corporate Research, Germany
Thomas Kurpick Trusted Shops, Germany
Xabier Larrucea Tecnalia, Spain
Daniel Lübke iQuest GmbH, Germany
Željko Obrenović Incision, The Netherlands
Eltjo Poort CGI, The Netherlands
Daniele Spinosi Micron Technology, Italy
Michael Stal Siemens, Germany
Johannes Wettinger Bosch, Germany
Erik Wittern IBM T.J. Watson Research Center, USA
Eoin Woods Endava, UK
x Organization
Additional Reviewers
Stefan Kapferer
Mirko Stocker
Organizing Committee
Proceedings Chair
Mirco Franzago University of L’Aquila, Italy
Web Chair
Karthik Vaidhyanathan Gran Sasso Science Institute, Italy
Workshops Chairs
Mauro Caporuscio Linnaeus University, Sweden
Anne Koziolek Karlsruhe Institute of Technology, Germany
Publicity Chairs
Stéphanie Challita Inria, France
Juergen Musil TU Wien, Austria
Virtualization Chairs
Claudio Di Sipio University of L’Aquila, Italy
Luca Traini University of L’Aquila, Italy
Keynotes
AI Engineering — New Challenges in System
and Software Architecting and Managing
Lifecycle for AI-based Systems
Ivica Crnkovic
Short Bio
Diomidis Spinellis
Abstract. Unix has evolved over five decades, shaping modern operating sys-
tems, key software technologies, and development practices. Studying the
evolution of this remarkable system from an architectural perspective can pro-
vide insights on how to manage the growth of large, complex, and long-lived
software systems. Along main Unix releases leading to the FreeBSD lineage we
examine core architectural design decisions, the number of features, and code
complexity, based on the analysis of source code, reference documentation, and
related publications. We see that the growth in size has been uniform, with some
notable outliers, while cyclomatic complexity has been religiously safeguarded.
A large number of Unix-defining design decisions were implemented right from
the very early beginning, with most of them still playing a major role. Unix
continues to evolve from an architectural perspective, but the rate of architec-
tural innovation has slowed down over the system’s lifetime. Architectural
technical debt has accrued in the forms of functionality duplication and unused
facilities, but in terms of cyclomatic complexity it is systematically being paid
back through what appears to be a self-correcting process. Some unsung
architectural forces that shaped Unix are the emphasis on conventions over rigid
enforcement, the drive for portability, a sophisticated ecosystem of other
operating systems and development organizations, and the emergence of a
federated architecture, often through the adoption of third-party subsystems.
These findings allow us to form an initial theory on the architecture evolution of
large, complex operating system software.
Short Bio
IEEE Software editorial board, authoring the regular “Tools of the Trade” column, and
as the magazine’s Editor-in- Chief over the period 2015–2018. He has contributed code
that ships with Apple’s macOS and BSD Unix and is the developer of UMLGraph,
CScout, git-issue, and other open-source software packages, libraries, and tools.
Dr. Spinellis is a senior member of the ACM and the IEEE.
Mighty Methods: Four Essential Tools
for Every Software Architect’s Silver Toolbox
Michael Keeling
LendingHome, USA
mkeeling@neverletdown.net
Short Bio
Michael Keeling is a software engineer at LendingHome and the author of Design It!:
From Programmer to Software Architect. Prior to LendingHome, Keeling worked at
IBM on the Watson Discovery Service, Vivisimo, BuzzHoney, and Black Knight
Technology. Keeling has also served as an Adjunct Faculty member at Carnegie
Mellon University in the Master of Software Engineering Distance Program since
2009. He holds a Master in Software Engineering from Carnegie Mellon University in
Pittsburgh, PA and a Bachelor of Science in Computer Science from the College of
William and Mary in Williamsburg, VA.
Keeling’s current research interests include software architecture design methods,
agile software development, and human factors of software engineering. He is a regular
speaker in the architecture and agile communities, presenting papers and talks, and
facilitating workshops for both national and international audiences. Keeling is a
two-time winner of the SEI/IEEE Software “Architecture in Practice” Best Presentation
Award for talks given at the 2012 and 2014 SATURN conferences. A full list of his
talks and workshops are available on his website:
http://www.neverletdown.net/p/speaking-and-writing.html.
Contents
Microservices
Model-Based Approaches
1 Introduction
same; and different technologies in different parts of the system implement the
patterns in different ways, making the automatic parsing of code and identifica-
tion of the patterns a haphazard process.
This work focuses on describing a method for assessing architecture con-
formance to coupling-related patterns and practices in microservice architec-
tures. Coupling between microservices is caused by existence of dependencies,
e.g. whenever one service calls another service to fulfill a request or share data.
Loose coupling is an established topic in service-oriented architectures [22] but
the application to the specific context of microservice architectures has not, to
our knowledge, been examined so far.
Strong coupling is conflicting with some of the key microservice tenets men-
tioned above. In particular, releasability, which is a highly desirable character-
istic in modern systems due to the emergence of DevOps practices, relies on
the rapid and independent release of individual microservices, and is compro-
mised by strong dependencies between them. For the same reason, development
in independent teams becomes more difficult, and independent deployment of
individual microservices in lightweight containers is also impeded. This work
covers three broad coupling aspects: Coupling through Databases, resulting from
reliance on commonly accessed data via shared databases; Coupling through Syn-
chronous Invocations, resulting from synchronous communication between indi-
vidual services; and Coupling through Shared Services, which arises through the
dependence on common shared services (for details see Sect. 3).
In reality, of course, no microservice system can support all microservice
tenets well at the same time. Rather the architectural decisions for or against the
use of specific patterns and practices must reflect a trade-off between ensuring
the desired tenets and other important quality attributes [12,22]. From these
considerations, this paper aims to study the following research questions:
– RQ1 How can we automatically assess conformance to loose coupling-related
patterns and practices in the context of microservice architecture decision
options?
– RQ2 How well do measures for assessing coupling-related decision options
and their associated tenets perform?
– RQ3 What is a set of minimal elements needed in a microservice architecture
model to compute such measures?
In pursuing of these questions, we surveyed the relevant literature (Sect. 2)
and gathered knowledge sources about established architecture practices and
patterns, their relations and tenets in form of a qualitative study on microser-
vice architectures. This enabled us to create a meta-model for the description
of microservice architectures, which was verified and refined through iterative
application in modelling a number of real-world systems, as outlined in Sect. 4.
We manually assessed all models and model variants on whether each deci-
sion option is supported, thereby deriving an objective ground truth (Sect. 5).
As the basis for an automatic assessment, we defined a number of generic,
technology-independent metrics to measure architecture conformance to the
decision options, i.e. at least one metric per major decision option (Sect. 6).
Assessing Architecture Conformance 5
These metrics (and combinations thereof) were applied on the models and model
variants to derive a numeric assessment, and then compared to the ground truth
assessment via an ordinal regression analysis (Sect. 7). Section 8 discusses the
results of our approach, as well as its limitations and potential threats to valid-
ity. Finally, in Sect. 9 we draw our conclusions and discuss options for future
work.
2 Related Work
Many studies focus on best practices for microservice architectures. Richard-
son [18] has published a collection of microservice patterns related to major
design and architectural practices. Patterns related to microservice APIs have
been introduced by Zimmermann et al. [23], while Skowronski [19] collected best
practices for event-driven microservice architectures. Microservice fundamentals
and best practices are also discussed by Fowler and Lewis [14], and are summa-
rized in a mapping study by Pahl and Jamshidi [16]. Taibi and Lenarduzzi [20]
study microservice “bad smells”, i.e. practices that should be avoided (which
would correspond to violations in our work).
Many software metrics-related studies for evaluating the system architecture
and individual architectural components exist, but most of them are not specific
to the microservices domain. Allen et al. [1,2] study component metrics for mea-
suring a number of quality attributes, e.g. size, coupling, cohesion, dependencies
of components, and the complexity of the architecture. Additional studies for
assessing quality attributes related to coupling and cohesion have been proposed
and validated in the literature [3,4,6,11]. Furthermore, a small number of stud-
ies [5,17,21] propose metrics specifically for assessing microservice-based soft-
ware architectures. Although these works study various aspects of architecture,
design metrics, and architecture-relevant tenets such as coupling and indepen-
dent deployment, their approach is usually generic. None of the works covers all
the related software aspects for measuring coupling in a microservice context:
the use of databases, system asynchronicity, and shared components. This is the
overarching perspective of our work, and the chief contribution of this paper.
3 Decisions
loosely coupled and thus able to be developed, deployed, and scaled indepen-
dently [14]. At one extreme of the scale, one option is No Persistent Data Storage,
which is applicable only for services whose functions are performed on transient
data. Otherwise, the most recommended option is the Database per Service pat-
tern [18]: each service has its own database and manages its own data indepen-
dently. Another option, which negatively affects loose coupling, is to use a Shared
Database [18]: a service writes its data in a common database and other services
can read these data when required. There are two different ways to implement
this pattern: in Data Shared via Shared Database multiple services share the
same table, resulting in a strongly coupled system, whereas in Databased Shared
but no Data Sharing each service writes to and reads from its own tables, which
has a lesser impact on coupling.
Inter-Service Coupling Through Synchronous Invocations. Service inte-
gration is another core decision when building a microservice-based system. A
theoretically optimal system of independent microservices would feature no com-
munication between them. Of course, services need to communicate in reality,
and so the question of integrating them so as to not result in tight inter-service
coupling becomes paramount. The recommended practice is that communica-
tion between the microservices should be, as much as possible, asynchronous.
This can be achieved through several patterns which are widely implemented in
typical technology stacks: the Publish/Subscribe [13] pattern, in which services
can subscribe to a channel to which other services can publish; the use of a
Messaging [13] middleware, which decouples communication by using a queue
to store messages sent by the producer until they are received by the consumer;
the Data Polling [18] pattern, in which services periodically poll other services
for data changes; and the Event Sourcing [18] pattern, that ensures that all
changes to application state are stored as a sequence of events; Asynchronous
Direct Invocation technique, in which services communicate asynchronously via
direct invocations. Applying these patterns ensures loose coupling (to different
degrees), and increases the system reliability.
Inter-Service Coupling Through Shared Services. Many of the microser-
vice patterns focus on system structure, i.e. avoiding services sharing other ser-
vices altogether, or at least not in a strongly coupled way. An optimal system
in terms of architecture quality should not have any shared service. In reality,
this is often not feasible, and in larger systems service sharing leads to chains of
transitive dependencies between services. This is problematic when a service is
unaware of its transitive dependencies, and of course for the shared service itself,
where the needs of its dependents must always be taken into account during its
evolution. We define three cases: a Directly Shared Service is a microservice which
is directly linked to and required by more than one other service; a Transitively
Shared Service is a microservice which is linked to other services via at least one
intermediary service; and a Cyclic Dependency [10] which is formed when there
is a direct or transitive path that leads back to its origin, i.e. that allows a ser-
vice to be ultimately dependent on itself after a number of intermediary services.
Cyclic dependencies often emerge inadvertently through increasing complexity
Assessing Architecture Conformance 7
over the system’s lifecycle, and require extensive refactoring to resolve. All three
cases are inimical to the principle of loose coupling as well as to system qualities
such as performance, modifiability, reusability, and scalability.
Web Resources
Determine Decision Impacts for
each option
Model Generation
The systems were taken from 9 independent sources in total. They were devel-
oped by practitioners with microservice experience, and they are representative
of the best practices summarized in Sect. 3. We performed a fully manual static
code analysis for those models where the source code was available (7 of our 9
sources; two were modeled from documentation published by the practitioners).
To create our models, we used our existing modeling tool CodeableModels2 , a
Python implementation for the precise specification of meta-models, models, and
model instances in code. Based on CodeableModels, we specified meta-models
for components, connectors and relationships. We then manually created model
instances for each of the systems in Table 1. In addition, we realized automated
constraint checkers and PlantUML code generators to generate graphical visu-
alizations of all meta-models and models.
The result is a set of precisely modeled component models of the examined
software systems (modeled using the techniques described below). This resulted
in a total of 27 models summarized in Table 1. We assume that our evaluation
systems are, or reflect, real-world practical examples of microservice architec-
tures. As many of them are open source systems with the purpose of demon-
strating practices or technologies, they are at most of medium size and modest
complexity, though.
2
https://github.com/uzdun/CodeableModels.
Assessing Architecture Conformance 9
Maar keeren wij tot de tunnamen terug. Andere zulke namen, als
plaatsnamen zoo veelvuldig in Engeland voorkomende, zijn nog
Eckington, Edington, Alkington, Kensington,
B e n n i n g t o n , S h e r r i n g t o n , en honderden anderen, schier
allen patronymicale namen.
Het moet ons niet verwonderen, dat wij in Artesië, even als ook in
Engeland, de Sassische tun- en de Frankische en Friesche
hemnamen thans naast en nevens elkanderen, als ’t ware onder
elkanderen vermengd vinden. Wij weten immers, dat de benden
volks, de volkplanters of landverhuizers, de uitwijkelingen die
Brittannië veroverden en bevolkten, uit maagschappen, gezinnen en
enkelingen van verschillenden volksaard, uit Sassen, Angelen,
Jutten (of Noord-Friezen) en Friezen waren samengesteld.
A u d r e s e l l e s , A r i n g z e l e , T r a m e z e l e . De eerste dezer
namen is verfranscht in zijnen hedendaagschen vorm. Is hij
oorspronkelijk [114]O u d e r z e l e (Ter ouder Zele, woonstede bij de
oude zale of halle) geweest? Dus de zelfde naam die nog eigen is
aan het dorp O u d e z e l e in Fransch-Vlaanderen, en aan het stadje
O l d e n z a a l (ook O l d e n z e e l genoemd) in Twente?
Waarschijnlijk wel.—A r i n g z e l e is weêr een oorbeeldig
Germaansche naam, bestaande uit een patronymicon, met het
bekende woord zele daar achter, dat zoo menigvuldig aan
Vlaamsche plaatsnamen eigen is. De mansnaam, die aan dit
patronymicon ten grondslag ligt komt als A r a en A r o , en in
samengestelde vormen als de mansnamen A r a f r i d en A r a g i s ,
en de vrouwennamen A r o h i l d i s en A r o l i n d a in oude
geschriften voor. Ook leefde hij nog, als A r e , bij de Friezen in de
jaren 1500. A r e m a , oudtijds A e r m a geschreven, is nog heden
een Friesche maagschapsnaam, even als het patronymicon in den
Sassischen vorm A r i n k nog elders in de Nederlanden als
geslachtsnaam bestaat.
Eene andere verbastering van het woord hove kan men aantoonen
bij den naam van het Artesische dorp O f f e k e r q u e , eene
verbastering die lichtelijk op een dwaalspoor, ter naamsverklaring,
leiden kan. Immers het ligt voor de hand om dezen naam te duiden
als O f f e k e r k e , de kerk (ter kerke in den locativus) van O f f e , van
den man die O f f e heette. O f f e toch (O f f o , O f f a , U f f o ) is
een Oud-Germaansche mansnaam, die nog heden bij de Friezen als
zoodanig in volle gebruik is, en al mede oorsprong gegeven heeft
aan de Friesche geslachtsnamen O f f i n g a , O f f e m a , O f f e s ,
O f f e n , O f k e s , enz. en aan de plaatsnamen O f f i n g a w i e r ,
een dorp in Friesland; O f f e n w a r d e n , een dorp bij Bremen
(Duitschland); O f f i g n i e s (dat is oorspronkelijk het patronymicon
O f f i n g e n ), een dorp in Picardië (Frankrijk); O f f a ’ s D y k e , een
oude grenswal in Engeland, in de 8ste eeuw opgericht door O f f a
den Angel-Sassischen koning van Mercia; enz. Intusschen, het
Artesische O f f e k e r q u e heeft met dezen ouden mansnaam niets
te maken. Deze plaatsnaam is oorspronkelijk H o v e k e r k e (ter
kerke bij den hove), zoo als hij nog in oude geschriften voorkomt. In
eene oorkonde [116]van den jare 1100 heet deze plaats eenvoudig
H o v e ; misschien was daar toenmaals nog geen kerk aanwezig.
Aan den voet der heuvels of bergen strekken de dalen zich uit; en
zoo zoekt men ook, nevens de bergnamen, onder de Artesische
plaatsnamen de dalnamen niet te vergeefs. Deze namen zijn zoo
wel eigen aan de werkelijke dalen zelven, als aan de dorpen,
gehuchten, landhoeven, in die dalen gelegen. Op zich zelven,
zonder bijvoegsel, is het woord dal, als naam, eigen aan D a l l e ,
een gehucht bij Lacre. Met bijvoegsels vinden wij de plaatsnamen
W a t e r d a l , gehucht bij Seninghem; B r a m e n d a l , bij
Boisdinghem; L a n g h e n d a l e ; D i e p e n d a l , geh. bij
Boucquehault. Verder B r u c k d a l , gehucht bij Hesdin-l’Abbé;
G r i s e n d a l e , eene landhoeve bij Wimille; M e r l i n g d a l , hoeve,
bij Verlincthun; P i t t e n d a l , To t e n d a l , W y s q u e d a l ,
K i n e n d a l e , enz. De vier eerstgenoemden van deze dalnamen
zijn nog geheel oorbeeldig Dietsch, en in hunne beteekenis
volkomen duidelijk voor iederen Nederlander. In B r u c k d a l
herkennen wij het woord bruck, broek, moeras, dat ook in den naam
Brussel (oorspronkelijk B r o e k z e l e ) voorkomt; in P i t t e n d a l het
woord put, dat ook in West-Vlaanderen en elders in dezen
bijzonderen vorm wordt uitgesproken. Aan den naam M e r l i n g d a l
ligt een patronymicon ten grondslag.