Professional Documents
Culture Documents
Software Technology Methods and Tools 51st International Conference TOOLS 2019 Innopolis Russia October 15 17 2019 Proceedings Manuel Mazzara
Software Technology Methods and Tools 51st International Conference TOOLS 2019 Innopolis Russia October 15 17 2019 Proceedings Manuel Mazzara
Software Technology Methods and Tools 51st International Conference TOOLS 2019 Innopolis Russia October 15 17 2019 Proceedings Manuel Mazzara
https://textbookfull.com/product/testing-software-and-
systems-31st-ifip-wg-6-1-international-conference-
ictss-2019-paris-france-october-15-17-2019-proceedings-
christophe-gaston/
https://textbookfull.com/product/information-and-software-
technologies-25th-international-conference-icist-2019-vilnius-
lithuania-october-10-12-2019-proceedings-robertas-damasevicius/
Dependable Software Engineering Theories Tools and
Applications 5th International Symposium SETTA 2019
Shanghai China November 27 29 2019 Proceedings Nan Guan
https://textbookfull.com/product/dependable-software-engineering-
theories-tools-and-applications-5th-international-symposium-
setta-2019-shanghai-china-november-27-29-2019-proceedings-nan-
guan/
https://textbookfull.com/product/frontiers-in-cyber-security-
second-international-conference-fcs-2019-xi-an-china-
november-15-17-2019-proceedings-bazhong-shen/
https://textbookfull.com/product/present-and-ulterior-software-
engineering-manuel-mazzara/
Software Technology:
Methods and Tools
51st International Conference, TOOLS 2019
Innopolis, Russia, October 15–17, 2019
Proceedings
Lecture Notes in Computer Science 11771
Founding Editors
Gerhard Goos
Karlsruhe Institute of Technology, Karlsruhe, Germany
Juris Hartmanis
Cornell University, Ithaca, NY, USA
Software Technology:
Methods and Tools
51st International Conference, TOOLS 2019
Innopolis, Russia, October 15–17, 2019
Proceedings
123
Editors
Manuel Mazzara Jean-Michel Bruel
Innopolis University IUT de Blagnac
Innopolis, Russia Blagnac, France
Bertrand Meyer Alexander Petrenko
Innopolis University Ivannikov Institute for System Programming
Innopolis, Russia Russian Academy of Sciences
Moscow, Russia
This Springer imprint is published by the registered company Springer Nature Switzerland AG
The registered company address is: Gewerbestrasse 11, 6330 Cham, Switzerland
Preface
Started in 1989, the TOOLS conference series has played a major role in the devel-
opment of object technology and has contributed in making it popular, mainstream, and
ubiquitous. The 50th edition of the series “The Triumph of Objects,” was held in
Prague in 2012 and was meant to be the closing edition for a conference that had
brought, to a large audience, ideas originally shared only by a niche. After an inter-
ruption of seven years, TOOLS now starts again with a scope extended to software
technologies and applications and all the modern approaches to software engineering,
robotics, and machine learning.
The edition 50th+1 was held at Innopolis University, the educational center of the
techno-city of Tatarstan, Russia. The numbering (50+1) is to emphasize the reopening
of the series and celebrate it. The venue, being one of the most recently established
universities in the world (2012), seemed to be the right place to celebrate a synergy
between tradition and future. This volume contains the papers presented at TOOLS 50
+1 during the period October 15–17, 2019. There were 62 submissions. Each sub-
mission was reviewed by at least three Program Committee members. The committee
decided to accept 32 papers, including long and short contributions. The program also
includes four invited talks.
The conference was made possible by the joint effort of several colleagues and
departments. We would like to thank Bertrand Meyer and Alexandr Tormasov in their
role as general chairs, as well as Inna Baskakova, Oksana Zhirosh, Sergey Masyagin,
Giancarlo Succi, Alberto Sillitti, Andrey Sadovykh, Mansur Khazeev, and Alexandr
Naumchev for supporting the creation and organization of the event. JooYoung Lee,
Adil Adelshin, and Sophie Ebersold were instrumental in promoting the conference in
Russia and abroad. Last but not least the Program Committee that operated effectively
in defining the program (a full list of names of additional reviewers is included in this
volume). The process of volume preparation was enabled and simplified by a funda-
mental tool like EasyChair. Financially, we have also received the support of Eiffel
Software, SOFTEAM, and Springer, which funded the Best Paper Awards.
Program Committee
Muhammad Ahmad Messina University, Italy
Danilo Ardagna Politecnico di Milano, Italy
Marco Autili Università dell’Aquila, Italy
Sergey Avdoshin National Research University Higher School
of Economics, Russia
Luciano Baresi Politecnico di Milano, Italy
Alexandre Bergel University of Chile, Chile
Jean Bezivin Software Consultant, France
Judith Bishop University of Stellenbosch, South Africa
Jean-Michel Bruel IRIT, France
Antonio Bucchiarone FBK-IRST, Italy
Paolo Ciancarini University of Bologna, Italy
Salvatore Distefano Messina University, Italy
Nicola Dragoni Technical University of Denmark, Denmark
Catherine Dubois ENSIIE-Samovar, France
Schahram Dustdar Vienna University of Technology, Austria
Angelo Gargantini University of Bergamo, Italy
Adil Khan Innopolis University, Russia
Victor Kuliamin Institute for System Programming, Russian Academy
of Sciences, Russia
Cosimo Laneve University of Bologna, Italy
Jooyoung Lee Innopolis University, Russia
Manuel Mazzara Innopolis University, Russia
Hernan Melgratti Universidad de Buenos Aires, Argentina
Bertrand Meyer ETH Zurich, Switzerland
Raffaela Mirandola Politecnico di Milano, Italy
James Noble Victoria University of Wellington, New Zealand
Manuel Oriol ABB Corporate Research, Sweden
Richard Paige University of York, UK
Alexander K. Petrenko ISP RAS, Russia
Mauro Pezzè University of Lugano, Switzerland
Victor Rivera Australian National University, Australia
Andrey Sadovykh Softeam, France
Ebersold Sophie IRIT, France
Jan Vitek Northeastern University, USA
Jim Woodcock University of York, UK
Gianluigi Zavattaro University of Bologna, Italy
viii Organization
Additional Reviewers
Ali, Mohsin
De Sanctis, Martina
Giaretta, Alberto
Ivanov, Vladimir
Kumar, Devender
Ligozat, Anne-Laure
Missiroli, Marcello
Nibouche, Omar
Strugar, Dragos
Veschetti, Adele
Abstracts of Invited Talks
Science of Computing: From Functions
and Sequentiality to Processes
and Concurrency
Davide Sangiorgi
Abstract. The first part of the talk will be about history: I will discuss the
origins of a few important concepts of concurrency theory, and how these
concepts have changed the meaning of ‘Science of Computing’.
The second part of the talk will focus on one of such concepts, namely
coinduction. Coinduction is the dual of induction – a pervasive tool in Computer
Science and Mathematics for defining objects and proving properties on them.
Today coinduction is widely used in Computer Science, but also in other fields,
including Artificial Intelligence, Cognitive Science, Mathematics, Modal Logics,
Philosophy, particularly for reasoning about objects that may be potentially
infinite or circular. If time permits I will show examples in which coinductive
techniques are combined with other techniques, such as inductive techniques or
type-based techniques or techniques based on unique-solution of equations [1–3].
References
1. Durier, A., Hirschkoff, D., Sangiorgi, D.: Eager functions as processes. In: 33nd Annual
ACM/IEEE Symposium on Logic in Computer Science. LICS 2018. IEEE Computer Society
(2018)
2. Pous, D., Sangiorgi, D.: Enhancements of the bisimulation proof method. In: Sangiorgi, D.,
Rutten, J. (eds.) Advanced Topics in Bisimulation and Coinduction. Cambridge University
Press (2012)
3. Sangiorgi, D.: Typed π-calculus at work: a correctness proof of Jones’s parallelisation
transformation on concurrent objects. Theory Pract. Object Syst. 5(1), 25–34 (1999)
Design and Assurance Methods for Dependable
Cyber Physical Systems
Sergey Tverdyshev
sergey.tverdyshev@sysgo.com
Machine Learning
Internet of Things
UniquID: A Quest to Reconcile Identity Access Management and the IoT . . . 237
Alberto Giaretta, Stefano Pepe, and Nicola Dragoni
Security
Projects
2 Background
The idea of linking software development and art has been already explored in
the past, though mostly superficially. In 1962 Donald Knuth started a series of
volumes titles “The Art of Computer Programming,” which started to be printed
from 1968 and which is mostly incomplete [11]. In the 80’s Sterling and Shapiro
wrote a book titled “The Art of Prolog” using the term “art” as a metaphor
for software development [18]. More recently Herlihy and Shavit published “The
Art of Multiprocessor Programming” [9].
There is also a book named “Hackers1 and Painters” written by Graham
[8], where the author considers some similarities between developers and visual
artists. He also suggests lessons, that software developers can learn from artists
(these lessons are presented below).
4 Early Results
At the moment intermediate results have been obtained, specifically: revealed
some similarities between software development and drawing, the literature
review has been conducted and several artists have been interviewed.
As mentioned, the starting point for the research was the ideas presented in
the mentioned book “Hackers and Painters” [8], namely:
1
by “hackers” the author refers to developers.
Kent Beck or Pablo Picasso? 5
Fig. 2. A sketch by the Russian painter Repin to the Italian singer Eleonora Duse
These findings support the hypothesis that developers have something to learn
from artists.
This can be elaborated further analyzing [13], where it is evidenced that the
way a painting is conceived and created is not simple, as it might seem. Each
painting requires a particular, individual approach, therefore, special methods
and techniques are required for its solution. There are no exact recipes for cre-
ating pictures. This is also true for software development.
6 S. Masyagin et al.
2
See URL https://en.wikipedia.org/wiki/Girl with Peaches, visited on May 20, 2019.
Kent Beck or Pablo Picasso? 7
4.1 Lessons
Literature review brings ideas about what artistic techniques could be applied
to software engineering and what lessons developers could learn from artists.
For example, P. Graham relying on observation on artists suggests the following
lessons [8]:
– Division of work and doing your job in your own temp (the division of work
allows Shuhaev to accomplish picture 52 years later after Yakovlev finish his
part)
– Both painters studied in one academy of arts and had the same level of
training.
– The artists had a common vision and common methods of work.
This information is valuable and even could be projected onto the software devel-
opment domain.
5 Conclusion
Acknowledgments. The work presented in this paper was supported by the grant of
Russian Science Foundation No 19-19-00623.
References
1. Altshuler, B.: Art by instruction and the pre-history of do it
2. Beck, K., et al.: Manifesto for agile software development (2001)
3. Corral, L., Georgiev, A.B., Sillitti, A., Succi, G.: A method for characterizing
energy consumption in Android smartphones. In: 2nd International Workshop on
Green and Sustainable Software (GREENS 2013), pp. 38–45. IEEE, May 2013
4. Corral, L., Sillitti, A., Succi, G.: Software development processes for mobile sys-
tems: is agile really taking over the business? In: 2013 1st International Workshop
on the Engineering of Mobile-Enabled Systems (MOBS), pp. 19–24, May 2013
5. Corral, L., Sillitti, A., Succi, G., Garibbo, A., Ramella, P.: Evolution of mobile
software development from platform-specific to web-based multiplatform paradigm.
In: Proceedings of the 10th SIGPLAN Symposium on New Ideas, New Paradigms,
and Reflections on Programming and Software, Onward! 2011, pp. 181–183. ACM,
New York (2011)
6. Di Bella, E., Sillitti, A., Succi, G.: A multivariate classification of open source
developers. Inf. Sci. 221, 72–83 (2013)
7. Fronza, I., Sillitti, A., Succi, G.: An interpretation of the results of the analysis
of pair programming during novices integration in a team. In: Proceedings of the
2009 3rd International Symposium on Empirical Software Engineering and Mea-
surement, ESEM 2009, pp. 225–235. IEEE Computer Society (2009)
8. Graham, P.: Hackers & Painters: Big Ideas from the Computer Age. O’Reilly
Media, Newton (2004)
Kent Beck or Pablo Picasso? 9
9. Herlihy, M., Shavit, N.: The Art of Multiprocessor Programming. Morgan Kauf-
mann Publishers Inc., San Francisco (2008)
10. Kivi, J., Haydon, D., Hayes, J., Schneider, R., Succi, G.: Extreme programming: a
university team design experience. In: 2000 Canadian Conference on Electrical and
Computer Engineering. Conference Proceedings. Navigating to a New Era (Cat.
No.00TH8492), vol. 2, pp. 816–820, May 2000
11. Knuth, D.E.: The Art of Computer Programming. Addison-Wesley Professional,
Boston (2011)
12. Kovács, G.L., Drozdik, S., Zuliani, P., Succi, G.: Open source software for the public
administration. In: Proceedings of the 6th International Workshop on Computer
Science and Information Technologies, October 2004
13. Ostrovskij, G.: In Russian: Kak sozdayetsya kartina. In English: How the picture
is created. Gosudarstvennaya Akademiya Hudozhestvennyh nauk (1962)
14. Pedrycz, W., Russo, B., Succi, G.: Knowledge transfer in system modeling and
its realization through an optimal allocation of information granularity. Appl. Soft
Comput. 12(8), 1985–1995 (2012)
15. Petrinja, E., Sillitti, A., Succi, G.: Comparing OpenBRR, QSOS, and OMM assess-
ment models. In: Ågerfalk, P., Boldyreff, C., González-Barahona, J.M., Madey,
G.R., Noll, J. (eds.) OSS 2010. IAICT, vol. 319, pp. 224–238. Springer, Heidelberg
(2010). https://doi.org/10.1007/978-3-642-13244-5 18
16. Rossi, B., Russo, B., Succi, G.: Adoption of free/libre open source software in
public organizations: factors of impact. Inf. Technol. People 25(2), 156–187 (2012)
17. Sillitti, A., Janes, A., Succi, G., Vernazza, T.: Measures for mobile users: an archi-
tecture. J. Syst. Architect. 50(7), 393–405 (2004)
18. Sterling, L., Shapiro, E.: The Art of Prolog. MIT Press, Cambridge (1986)
19. Succi, G., Paulson, J., Eberlein, A.: Preliminary results from an empirical study
on the growth of open source and commercial software products. In: EDSER-3
Workshop, pp. 14–15 (2001)
20. Valerio, A., Succi, G., Fenaroli, M.: Domain analysis and framework-based software
development. SIGAPP Appl. Comput. Rev. 5(2), 4–15 (1997)
21. Vernazza, T., Granatella, G., Succi, G., Benedicenti, L., Mintchev, M.: Defining
metrics for software components. In: Proceedings of the World Multiconference on
Systemics, Cybernetics and Informatics, vol. XI, pp. 16–23, July 2000
22. Vladislava, R.: In Russian: Stanovleniye kontseptsii “iskusstva po-instruktsii”. In
English: Formation of the concept of “art on-instructions”. Art & Cult, pp. 72–77
(2017)
23. Yakovleva, E.: Russian: Eto bylo schastliveysheye vremya...(a.ye. yakovlev, v.i.
shukhayev i v.e. meyyerkhol’d. k istorii sozdaniya dvoynogo avtoportreta a. yakovl-
eva i v. shukhayeva arlekin i p’yero) english: It was the happiest time...(a.e.
yakovlev, v.i. shuhaev i v.eh. mejerhol’d. to the history of the creation of a double
self-portrait of a. yakovlev and v. shukhaev “harlequin and pierrot”), Neva, pp.
171–176 (1987)
Towards an Anatomy of Software
Requirements
1 Introduction
A software system, like any other engineering construction, exists to satisfy cer-
tain human objectives, known as its requirements. The evolution of software
engineering has produced ample evidence that the quality of systems fundamen-
tally depends on the quality of their requirements.
It has also led to the realization that requirements are software: like code,
tests and other products of the software process, requirements for today’s ambi-
tious systems are software artifacts, susceptible to some of the same practices
(such as configuration management), and in need of theoretical studies. The
present discussion defines a standard framework for such studies.
Section 2 explains the scope of the discussion. Section 3 defines basic termi-
nology. The next two sections provide the principal contribution of this work in
the form of two taxonomies: a taxonomy of requirement elements themselves in
Sect. 4; and a taxonomy of relations between requirements in Sect. 5. The rest
of the discussion explores the application of these concepts: Sect. 6 applies the
taxonomies to analyze an extract from a representative requirements document;
Sect. 7 examines popular approaches to requirements engineering in light of the
c Springer Nature Switzerland AG 2019
M. Mazzara et al. (Eds.): TOOLS 2019, LNCS 11771, pp. 10–40, 2019.
https://doi.org/10.1007/978-3-030-29852-4_2
Towards an Anatomy of Software Requirements 11
2 Scope
This presentation is descriptive rather than prescriptive. Textbooks are an exam-
ple of prescriptive presentation, stating how one should write requirements. Here
the intent is to study requirements as they are, which in the industry’s practice
does not always mean as they should be. For example, the relationship taxonomy
(Sect. 5) has a category for requirements that contradict each other, a case that
is obviously not desirable but occurs in practice. Prescriptive discussions will
benefit from the analysis, since they should be rooted in a precise understanding
of the concepts. Occasionally, as in Sect. 9, the discussion veers into prescriptive
territory.
The presentation is, however, normative, since it proposes standard defini-
tions and classifications of requirement concepts and terminology relevant to
requirements authors regardless of which methodology they follow.
Its ambition is also universal : we have tried to cover all possible properties
of requirements, with the understanding that this work should be revised if we
missed any. In this spirit, enumerations (see for example the list of activities in
the definition of “project” in Sect. 3.1) never end with such phrases as “etc.”,
useful to protect authors but detrimental to the quality of definitions. Here there
is no such protection; any omission is a mistake and will have to be corrected.
While Sect. 9 is the place for a more detailed analysis of the applicability of
this work, it is legitimate to ask at the outset for a general justification: why is
it worthwhile to engage in such an effort at precision (at the risk of pedantry) to
define and classify concepts that are widely used in practice with their intuitive
meaning?
The general justification is that requirements are a difficult concept to appre-
hend because they straddle the border between the formal and the informal, the
exact and the approximate, the technical and the human. Some software engi-
neering concepts are formal, exact and technical: programming languages, for
example, have precise definitions, and any single detail of a million-line program
may critically affect its correctness. At the other end of the spectrum, equally
important concepts of software engineering, such as methods of project manage-
ment, are informal, approximate and human.
Requirements bridge these two worlds. To be effective, they must cover the
needs of both. Insufficient rigor in the handling of requirements concepts ham-
pers this goal. As an example, there is wide disagreement in the field as to what
constitutes the difference between “functional” and “non-functional” require-
ments, to the point that some authors even reject this distinction altogether.
The rest of the literature treats it as a given, but without a generally agreed
precise definition.
12 B. Meyer et al.
A software system is often just one part of a larger system whose other
elements may be people and organizations, as in enterprise systems, or physical
devices, as in cyber-physical systems. While the authors’ primary interest and
the examples in this article are software-related, the intent of the definitions and
taxonomies is to encompass systems of any kind.
3 Underlying Concepts
To discuss requirements we need a set of basic concepts and their precise def-
inition. This section introduces the terminology that serves as a basis for the
rest of the discussion. It does not intentionally introduce any novel concept, but
gives precise definitions of known concepts. These definitions are not the most
general possible ones for the corresponding English words as used in an arbitrary
context; rather, they are tailored to the needs of this discussion of requirements.
– A project is, per this definition, applied to one system. While a project can
in practice involve the development of several systems, the definition loses no
generality since we can consider them, for the purpose of the definition, to be
subsystems of one larger system.
– A particular project may involve only some of the activities mentioned (plan-
ning, construction, revision, operation). In particular, the revision of a system
(which may also be called maintenance, reconstruction, redesign, evolution
and “brownfield development”) can be an extension of a previous project for
this system, or a new project.
Towards an Anatomy of Software Requirements 13
1.D. The copyright laws of the place where you are located also
govern what you can do with this work. Copyright laws in most
countries are in a constant state of change. If you are outside the
United States, check the laws of your country in addition to the terms
of this agreement before downloading, copying, displaying,
performing, distributing or creating derivative works based on this
work or any other Project Gutenberg™ work. The Foundation makes
no representations concerning the copyright status of any work in
any country other than the United States.
• You pay a royalty fee of 20% of the gross profits you derive from
the use of Project Gutenberg™ works calculated using the
method you already use to calculate your applicable taxes. The
fee is owed to the owner of the Project Gutenberg™ trademark,
but he has agreed to donate royalties under this paragraph to
the Project Gutenberg Literary Archive Foundation. Royalty
payments must be paid within 60 days following each date on
which you prepare (or are legally required to prepare) your
periodic tax returns. Royalty payments should be clearly marked
as such and sent to the Project Gutenberg Literary Archive
Foundation at the address specified in Section 4, “Information
about donations to the Project Gutenberg Literary Archive
Foundation.”
• You comply with all other terms of this agreement for free
distribution of Project Gutenberg™ works.
1.F.
1.F.4. Except for the limited right of replacement or refund set forth in
paragraph 1.F.3, this work is provided to you ‘AS-IS’, WITH NO
OTHER WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR ANY PURPOSE.
Please check the Project Gutenberg web pages for current donation
methods and addresses. Donations are accepted in a number of
other ways including checks, online payments and credit card
donations. To donate, please visit: www.gutenberg.org/donate.
Most people start at our website which has the main PG search
facility: www.gutenberg.org.