=Paper=
{{Paper
|id=Vol-1867/w1
|storemode=property
|title=Towards an Approach for Engineering Complex Systems: Agents and Agility
|pdfUrl=https://ceur-ws.org/Vol-1867/w1.pdf
|volume=Vol-1867
|authors=Massimo Cossentino,Luca Sabatucci,Valeria Seidita
|dblpUrl=https://dblp.org/rec/conf/woa/CossentinoSS17
}}
==Towards an Approach for Engineering Complex Systems: Agents and Agility==
1
Towards an Approach for Engineering Complex
Systems: Agents and Agility
Massimo Cossentino, Luca Sabatucci Valeria Seidita
Istituto di Calcolo e Reti ad Alte Prestazioni Dip. dell’Innovazione Industriale e Digitale
CNR, Palermo, Italy Università degli Studi di Palermo, Italy
massimo.cossentino, luca.sabatucci@icar.cnr.it valeria.seidita@unipa.it
Abstract—The way in which we use and conceive modern Promising approaches to engineering complex physical sys-
software systems is changing. Humans/users are becoming more tems like these span from Agile approaches to a new current
and more immersed in today complex systems operation, systems where design time and runtime approach are plunging into
interact in a dynamic fashion with the users and with changing
and dynamic environments. New design paradigms are necessary. each other.
In this paper we propose a first insight to engineering complex In this paper, we propose the use of the framework MUSA
physical systems by employing agility and a framework for self- supported by an agile approach that sees users and agents
adaptive service composition. highly immersed in the design process. Agility let realize the
user inclusion.
I. I NTRODUCTION
The paper is structured as follows: section II outlines
Due to the advancements in computer technologies, we are motivations and challenges of the work from a design point
now drawing near a new era where each of us owns more of view; section III describes the MUSA framework and how
than one computer (or smart or wearable device and so on). it is engaged in including the user in the design loop; section
Computers and devices are more and more interconnected and IV illustrates Agile approaches features and how they may
we are getting used to work and live with them in an active be useful in the complex systems domain; section V focuses
fashion. on the use of MUSA and agility detailing how the use of
Our life is shared and in partnership with the technology. MUSA realize agility; finally in section VI some conclusions
This brings to the necessity of communication, collaboration, are drawn.
cooperation and understanding among different devices and
among users and devices. The everyday life style is deeply II. M OTIVATION
changing and consequently a new way of considering the Engineering and developing complex physical systems
creation and the interconnection of modern software systems is where humans (or users) work together with the system and
arising. Indeed, modern computer and devices must be more they both are immersed and continuously interact with a very
than simple responders; they have to be able to sense and dynamic environment, requires to consider several factors that
anticipate users’ needs in order to support them in the right may be summarized in: changing operational context and
way. Instructions we give to software systems are not passive changing environment. Complex software systems supporting
and plan of actions no more decided at design time. digital economy have to intrinsically exhibit adaptation.
The scenario from now on is: humans work in tandem with A complex (self-adaptive) physical system is a system able
their devices (and software systems). At the same time soft- to modify its behavior in order to respond or to face changes
ware systems have to interact in a proactive fashion in order occurring in the environment it is working on or inside the
to guide and support users on the base of their preferences, system itself. Adaptation depends on all the actors that interact
habits, constraints and contexts they live. with the system, the environment whose changes are affected
Such a kind of situations is common, for instance, in the by and affect the system. The system behavior itself is a source
field of smart cities, e-health, e-commerce, etc. and the open of changes and adaptation. Adaptive behavior is prone to three
challenges are still a lot, from design approaches to standards, types of dependency: actor-dependency, system-dependency
from interoperability to trust and so on. and environment-dependency. These factors are taken into
Software systems where users are included and are part account during the requirement engineering phase of complex
of the system require a high level of adaptivity and self- physical (self-adaptive) systems.
organization. Classic design approaches are not suitable for Different kinds of approaches for engineering self adaptive
analyzing, designing and developing software systems sup- systems exist, they span from control theory to service oriented
porting users in the cited scenarios where, in a few words, and from agent-based approaches to nature inspired ones. They
main features are: continuous changing operational context all map to the four MAPE activities - well known in the field
and changing environment. We have to change the way in of Autonomic Computing - Monitoring, Analyzing, Planning
which we look at software development. and Executing.
2
A promising approach to manage complexity in runtime terconnected and various than before, designers have not
environments and to implement MAPE activities is to de- the right means to anticipate and design interactions among
velop adaptation mechanisms that involves software models. different components, and interactions among users and the
This is referred to as models@run.time [3]. The idea is to system. Indeed, (self-adaptive) software system properties are
extend the model produced using MDE approaches to runtime effectively known only when all the relationships among
environment. The authors of [3] emphasize the importance the software components and between the software and the
that software models (artifacts) may play at runtime stating environment have been expressed and have been made explicit.
that if .....“a system changes, the representation of the system Such issues have to be dealt with at runtime; modeling and
(the models) should all change, and viceversa”. In so doing, monitoring users and the environment is the key for enabling
researchers in this field stop at artifact levels; they wish artifact software to be adaptive [11], [7]. Self-adaptation deals with
produced were tied to the process used for creating them. requirements that vary at run time. Therefore it is important
However at the best of our knowledge this is still a vision, that requirements lend themselves to be dynamically observed,
an idea and nothing has been really realized for really putting i.e., during execution.
the design phases at runtime. We are moving into a new era of research for engineer-
Baresi et al. [2] introduce the need of bringing near the ing complex (self-adaptive) physical systems. A new design
design time to the runtime: “The clear separation between paradigm is necessary for enabling the design and development
development-time and run-time is blurring and may disappear of systems that adapt their behavior at runtime with little, or
in the future for relevant classes of applications”. This allows better, no human intervention.
some changing activities to be shifted from design and devel- This paper attempts at framing some characteristics related
opment to run time and some changing responsibilities to be to engineering complex physical systems by merging Agile
assigned to the system itself instead of to the analysts or de- approach to design at runtime. This is a first experiment to
signers. Thus realizing and really implementing adaptation [1], engineering complex systems and exploit the lessons learnt
[6]. on the use of self-adaptive composition of services in dynamic
Hence, requirements engineering has to deal with require- and distributed environment by means of MUSA (Middleware
ments that change at run time, for instance as the result of for User-Driven Service Adaptation).
changing in the environment. Uncertainty and incompleteness
are at the base of requirements engineering for complex III. A M IDDLEWARE FOR U SER - DRIVEN
(self-adaptive) physical systems [11], [7]. Some researchers S ELF -A DAPTATION (MUSA)
investigated the use of a goal model for specifying behavior The Middleware for User-driven Self-Adaptation (MUSA)
and requirements [14], [10] and for supporting the modeling has arisen for managing evolution and adaptivity of dy-
of adaptation mechanism instead of implementing adaptation namic workflows [19]. Compared to traditional languages (e.g.
at run time. BPMN and BPEL) MUSA provides a wider space of solution
The life cycle of a complex (self-adaptive) physical system, that improve the freedom of action when it is necessary
or of one of its components, starts with its design and does to overcome exceptional events such as failures or resource
not terminate with its deployment and testing. The life-cycle unavailability. The authors adopted the solution of relaxing
continues with some monitoring phases aiming at identifying the high constrained workflow specification to increase the
and handling new or emergent requirements and/or needs from flexibility in dynamically generating alternative solutions.
users. The key concept is a clear separation between ‘what the
Classic heavyweight methodologies cannot be used anymore system has to address’ and ‘how it will operate for addressing
for engineering and developing such a kind of systems in fact, it’. The enablers of the MUSA vision are: a) representing the
normally, they prescribe a very disciplined process that follows two dimensions, what and how, as a couple of run-time arti-
a well specific life-cycle; the main aim is to make the software facts (respectively goals and capabilities); b) implementing a
development as more predictable as possible. In these cases reasoning system for dynamic binding of capabilities to goals;
all the requirements have to be identified and analyzed in the c) representing goals and capabilities with some formalism,
very early activities of the design process and transformed based on a common grounding semantic.
into code through whatever life cycle the designer considers The result is a multi-agent system, implemented in the
more useful (waterfall, iterative and incremental and so on). Jason [4] agent-oriented programming language.
This way of working has been well established for years for
all those systems that do not require particular changes. What A. What: a Declarative Specification of Goals
we mean is: normally, a software system is the solution to The characteristics of being autonomous and proactive make
a problem, regardless the level of complexity of the problem the agents able to explore a solution space, even when this
and the software, and the level of adaptability to changing space dynamically changes or contains uncertainty.
requirements is managed at design time using ad-hoc life Indeed, MUSA accepts, at run-time, requirements as a set
cycles or process models. of goals to be addressed [21].
Due to the features of complex (self-adaptive) physical The main language for goal injection is GoalSPEC, based on
systems and the fact that, nowadays, systems are more in- the natural language, and specifically conceived to be attractive
3
for a business audience. This language allows for describing through this space. Therefore self-configuration is defined as
workflows as a set of the user’s goals that are delegated to the a space search problem.
management system. Actually, the automatic reasoner is not a property of a single
GoalSPEC supports Adaptivity because it is intended to agent, but rather it is a social ability of all the agents of the
make the business goals explicit in the process. Goals do not system. Indeed, the algorithm is distributed and decentralized
specify how to operate, but they rather define the expected (for details see [20]).
results.
GoalSPEC also supports Evolution because business pro- D. The Self-Adaptation property
cesses change during the time. This could happen because of The main advantage of using MUSA for executing work-
the introduction of new business goals (laws to be respected flows is the ability to self-adapt the running instance when
or new desired functionalities). Whereas, traditionally, all the something unexpected happens. The self-adaptation property
revisions imply to check inter-dependencies among process’s is based on the feedback loop [5].
tasks, with a consequent hard work of maintenance, MUSA In MUSA, the feedback loop is composed of two nested
accepts run time variations in the set of injected goals. loops. The inner loop is a traditional MAPE-K loop [7] where
In the last years, MUSA and GoalSPEC have been used the activities are: Monitor, Analyze, Plan, and Act. This loop is
in many different application domains, from document man- responsible for managing the periods of stability of the system.
agement systems, smart travel planning, to cloud application During this time the system tries to run a specific workflow
mashup. The design activity necessary for instantiating the configuration. Local task replacement may be enacted for
system in a specific domain includes the definition of an ensuring the continuity of service.
ontology/conceptual diagram. However, it is possible that some severe malfunctioning
occurs and that the monitor reveals a violation of requirements
B. How: a Declarative Specification of Capabilities forces the system to stop working. The system becomes un-
The concept of capability is a mixture of planning ac- stable and some fixing is necessary. These events are captured
tions [8] and services (or micro-services [16]). MUSA respects by the outer adaptation loop. In this case the system blocks
this dual nature by separating the abstract capability – a any capability concerning the current execution and executes a
symbolic description of the effect of the action – and the new self-configuration phase. The result may be a totally new
concrete capability – a small, independent, composable unit workflow instance to be executed for replacing the previous
of computation that produces some concrete result. one.
The capability supports self-adaptation because it is not The outer loop also monitors the goal injection, retrieving
specific for a given goal, but it can be reused for addressing cases in which the running workflow is obsolete with respect
several ones. It also is implemented for explicit fault isolation. to the new injected goals. Also in these case the system’s
Moreover, we focus on the idea that capabilities make it objective is that of switching from a workflow configuration
easier to deploy new versions of the software frequently. to another one that is able of addressing the new set of goals.
Indeed, providing capabilities as run-time entities constitute
the basis for continuous data exchange between human and
agents and therefore system evolution. Moreover, each capa- IV. AGILITY AND C OMPLEX ( SELF - ADAPTIVE ) S YSTEMS
bility is relatively small, and therefore easier for a developer Agile is not strictly a methodology, it is more a way of
to implement. It can be deployed independently of other conceiving working in teams. Agile movements were born
capabilities. By separating the overall functionality through and are operating for exploring new alternatives to traditional
capabilities, it is easier to organize the overall development software development. Proponents of Agile approaches think
effort around multiple teams. that software development process can adapt to changing
and dynamic operational conditions, imposed by variable and
C. Self-Configuring a Solution unpredictable environment, by putting emphasis to actual
MUSA provides an automatic reasoner that, at run-time, working code [13]. In this way Agile allows people to act in
configures the workflow by associating available capabilities response to uncertainty and unpredictability through iterations,
to the injected goals. increments and feedbacks.
The approach is possible because both goals and capabilities Agile is an efficacious alternative to traditional software
are first-class entities to be used within agent deliberation. sequential development. Agile development paradigm is well
An agent requiring to address an unanticipated goal must suited to the design of systems where requirements contin-
decide which capability (or combination of capabilities) have uously change. Requirements changing is, in the case of
to execute. the system we are considering here, due to uncertain and
The automatic reasoner selects and associates capabilities dynamic development environments resulting from: evolv-
according to the goals that are injected [18]. The basic idea is ing technologies, changing customer requirements and other
that of exploring a space of solutions, where goals represent changes related to the analysis and design phase. All the
points of the space that must be reached, and the abstract existing Agile approaches face changes with incremental and
capabilities provide evolution functions that allow moving small software releases, with highly adaptation to sudden or
4
Design Time Runtime
System Design (offline)
New
Execution and
Requirements
Monitoring
Requirements System Design Acquisition
Analysis (online)
able to
no re-plan yes
MUSA
Minimal human system is
intervention autonomous
feedback loop
Fig. 1. Designing complex self-adaptive systems employing MUSA and Agility
last moment changes and with the production of the amount bring to the illustration on how its use is agile.
of documentation necessary only for learning and modifying.
V. D ESIGNING C OMPLEX S ELF -A DAPTIVE S YSTEMS
So how and why talking about agility in the context of
E MPLOYING MUSA AND AGILITY
complex (self-adaptive) physical systems and agents? In [9]
the author states that lightweight methodologies, including XP Using the MUSA framework allows to include the user
and Agile, “include some concepts and principles of natural in the design process by employing the following agents:
complex systems”. The main principles of natural complex discovery agent, specification manager, negotiator, worker e
systems (see [17] for a literature review) are: case manager; moreover it partially realizes the design time at
run time [18].
• open systems and inner interactions - complex adaptive
Fig. 1 is intended to explain which are the main activities to
physical systems are open systems exchanging informa-
be performed when developing an application with MUSA.
tion in open and dynamic environments and components
The process is divided in two parts, the first one (the left
of the systems interact dynamically each other. Interac-
block in the figure) includes the standard design activities
tions affect the overall behavior of the system.
(Requirements Analysis and System Design) for developing
• feedback loop and emergent behavior - changes in some
a first release of an application. During the very first step,
parts or components of the system result in changes in
the system design activity is performed “offline”, hence re-
other parts or in the whole system.
quirements are captured and analyzed in a quite common and
• distributed control - control is distributed through the
standard fashion and then they are converted in the design of
system.
the multi-agent system underpinning MUSA. During the first
• emergent behavior - features of the system and its be-
execution at runtime (the first specific workflow configuration)
havior in its whole cannot be described and understood
the system starts to monitor the environment and each time a
only looking at the single components, a holistic vision
change occurs, a new requirement or a need, then the system
is necessary, interactions among components let the be-
tries to re-plan. If re-planning is possible then the system goes
havior arise.
on in its work and continues the executing and monitoring
These principles perfectly fit agile practices, the most im- phase otherwise the system searches for a new solution. An
portant one is that Agile greatly focuses attention on the “online” system design is performed, users and agents in
continuous open interaction among all the involved stakeholder MUSA collaborate in order to find a new solution at run
of the system. So, our hypothesis is: complex physical system time as explained in the previous section. The design phase is
involves software components and users both at run time and immersed in the run time one, agents and users work in team.
design time. If we consider the complex adaptive physical During the “online” System Design the presence of agents lets
system and its design process as it were a whole, as if one users apply a minimal intervention thus enhancing adaptation.
were an integral part of the other then we may apply the Agile Moreover, the team formed by agents and users, during the
principles. Agile principles assure us to use one of the best implementation of the feedback loop, apply an agile approach
approaches for engineering self-adaptation [12], [15]; agents, that, as said in section IV, gives a means and is one of the most
in some moments of the software development, are “agilists”. promising approaches for designing and developing complex
Users are included in the design process with the support of (self-adaptive) systems.
the multi-agent system from which MUSA is made. In the In the following we analyze the Manifesto for Agile Soft-
following we give an overview of the MUSA framework in ware Development1 with respect to the rationale underpinning
order to let understand how it (by means of agents) support
in the developing and enacting a software application and to 1 http://agilemanifesto.org
5
TABLE I
MUSA FEATURES SUPPORTING AGILITY
Agile Manifesto MUSA general Features
Early and continuous delivery of valuable software. The Proactive Means-End-Reasoning for producing plans allows to create
soon a working software and to continually update it by (re)starting from
a set of goals and capabilities. (See also the following principle).
Deliver working software frequently with a preference to the shorter Once a new set of goals is specified, MUSA, by means of the injection
timescale. technique, allows to produce new portions of working software. (See also
the previous principle).
Business people and developers must work together daily throughout the Regardless of the role played by agents or humans in the MUSA loop, the
project. use of goals allows to specify the business logic of how services have to
be composed thus realizing the continuous collaboration among business
people and developers.
Give projects the environment and support they need, and trust the job will Capabilities and goal specifications are compliant with the conceptualiza-
be done. tion of the environment.
Working software is the primary measure of progress. MUSA, by means of the solution explorer agent, checks in the space of
solutions if the new set of goal has been reached.
Agile processes promote sustainable (all the involved stakeholder maintain The use of MUSA as a middle layer, for realizing design process at runtime,
a constant pace) development. Simplicity–the art of maximizing the amount allows of some part the process to be made automatic thus reducing the
of work not done–is essential. amount of work to be done and documentation to be produced.
The best architectures, requirements, and designs emerge from self- The core of MUSA collaboration issues is guaranteed by the holonic ar-
organizing teams. chitecture. Holons allow self organization among, distributed coordination
and knowledge sharing.
Frequently tuning and adjusting team’s behavior for becoming more With regard to the team composed both by agents, holons continuously
effective. know the state of the environment and so they are able to reach all the
new goals by organizing and self adapting their behavior.
the use of MUSA: right column shows which MUSA’s feature helps in putting
Individuals and interactions over process and into practice agility.
tools VI. C ONCLUSION
MUSA interacts with its environment. There is no Actually, complex physical (self-adaptive) systems are re-
need to follow a rigid design process and the pres- quired to be much more than simply an ensemble of interacting
ence of MUSA guarantees that the user is the center components; components are not only intertwined but they
of design/runtime as well as interaction between form a unique ensemble of persons, technologies, organi-
users and software. zations and environmental contexts. Environment, moreover,
Working software over comprehensive documen- could involve laws and rules regulating the social interactions
tation and the interaction of people with the technology. Humans
Using MUSA does not imply to produce documen- are immersed together with devices in a highly dynamic
tation; the only useful documentation is the one for environment where a great amount of data and services are
describing the environment through the ontology and constantly available. It is unthinkable that a human user were
for the newly introduced capabilities and goals. able to act in such a kind of environment and to consciously
Customer collaboration over contract negotiation handle all the offered possibilities.
Considering the runtime phase as part of the design Standard analysis and design of systems with these extended
process, the user and the customer are at the center features are more challenging than ever, mainly because the
of MUSA activities; the customer collaboration starts behavior of system components depends and have to be
with the definition of the requirements and contin- specified in terms of their interactions and communications
ues during the execution with advising new goals. with the physical environment. Moreover, interactions and
Negotiation happens at run time with a pay per use communications are affected by environment dynamics at
criterion, it is automatic and has a minor importance runtime.
with respect to collaboration. Inspired by models@runtime [3] research line and by Baresi
Responding to change over following a plan et al. [2] that suggest to reduce the boundary gap between
No plans are pre-defined but the system is made able design time and run time, we propose the use of MUSA
to configure itself at runtime each time a change along with some Agile design activities that see users and
occurs. agents highly included and immersed in the design process.
In Table I, we show how the principles behind the Agile Agility allows to realize user inclusion and to provide a means
Manifesto2 are met by using MUSA, both during the self- for establishing a design approach that adapt and evolve at
adaptive system development and its running. In the left run time while new requirements arise from the continuous
column the principles of Agile Manifest are summarized, the interaction among users and dynamic environment.
What we illustrate here is a first experiment towards en-
2 http://agilemanifesto.org/principles.html gineering complex (self-adaptive) physical systems; it was
6
helpfulfor gaining useful insights on design activities in order [21] Luca Sabatucci, Patrizia Ribino, Carmelo Lodato, Salvatore Lopes,
to complete the development of a design methodology for and Massimo Cossentino. Goalspec: A goal specification language
supporting adaptivity and evolution. In International Workshop on
complex systems we are working on. Engineering Multi-Agent Systems, pages 235–254. Springer, 2013.
R EFERENCES
[1] Jesper Andersson, Luciano Baresi, Nelly Bencomo, Rogério de Lemos,
Alessandra Gorla, Paola Inverardi, and Thomas Vogel. Software engi-
neering processes for self-adaptive systems. In Software Engineering
for Self-Adaptive Systems II, pages 51–75. Springer, 2013.
[2] Luciano Baresi and Carlo Ghezzi. The disappearing boundary between
development-time and run-time. In Proceedings of the FSE/SDP
workshop on Future of software engineering research, pages 17–22.
ACM, 2010.
[3] G. Blair, N. Bencomo, and R. B. France. Models@ run.time. Computer,
42(10):22–27, Oct 2009.
[4] Rafael H Bordini, Jomi Fred Hübner, and Michael Wooldridge. Pro-
gramming multi-agent systems in AgentSpeak using Jason, volume 8.
John Wiley & Sons, 2007.
[5] Yuriy Brun, Giovanna Di Marzo Serugendo, Cristina Gacek, Holger
Giese, Holger Kienle, Marin Litoiu, Hausi Müller, Mauro Pezzè, and
Mary Shaw. Engineering self-adaptive systems through feedback
loops. In Software engineering for self-adaptive systems, pages 48–70.
Springer, 2009.
[6] Jim Buckley, Tom Mens, Matthias Zenger, Awais Rashid, and Günter
Kniesel. Towards a taxonomy of software change. Journal of Software
Maintenance and Evolution: Research and Practice, 17(5):309–332,
2005.
[7] Betty HC Cheng, Rogerio De Lemos, Holger Giese, Paola Inverardi, Jeff
Magee, Jesper Andersson, Basil Becker, Nelly Bencomo, Yuriy Brun,
Bojan Cukic, et al. Software engineering for self-adaptive systems: A
research roadmap. In Software engineering for self-adaptive systems,
pages 1–26. Springer, 2009.
[8] Michael Gelfond and Vladimir Lifschitz. Action languages. Computer
and Information Science, 3(16), 1998.
[9] M Gerber. Keynote speech: Lightweight methods and their foundations
in chaos theory. In 6th IEEE International Enterprise Distributed Object
Computing Conference (EDOC 2002), Ecole Polytechnique Fédérale de
Lausanne (EPFL), Switzerland, 2002.
[10] Heather J Goldsby, Pete Sawyer, Nelly Bencomo, Betty HC Cheng, and
Danny Hughes. Goal-based modeling of dynamically adaptive system
requirements. In Engineering of Computer Based Systems, 2008. ECBS
2008. 15th Annual IEEE International Conference and Workshop on the,
pages 36–45. IEEE, 2008.
[11] Paola Inverardi. Software of the future is the future of software? In
International Symposium on Trustworthy Global Computing, pages 69–
85. Springer, 2006.
[12] Radhika Jain and Peter Meso. Theory of complex adaptive systems and
agile software development. AMCIS 2004 Proceedings, page 197, 2004.
[13] Philippe Kruchten. Agility with the rup. Cutter IT journal, 14(12):27–
33, 2001.
[14] Sotirios Liaskos, Alexei Lapouchnian, Yiqiao Wang, Yijun Yu, and Steve
Easterbrook. Configuring common personal software: a requirements-
driven approach. In 13th IEEE International Conference on Require-
ments Engineering (RE’05), pages 9–18. IEEE, 2005.
[15] Peter Meso and Radhika Jain. Agile software development: Adaptive
systems principles and best practices. Information Systems Management,
23(3):19–30, 2006.
[16] Dmitry Namiot and Manfred Sneps-Sneppe. On micro-services archi-
tecture. International Journal of Open Information Technologies, 2(9),
2014.
[17] Mark EJ Newman. Complex systems: A survey. arXiv preprint
arXiv:1112.1440, 2011.
[18] Luca Sabatucci and Massimo Cossentino. From Means-End Analysis to
Proactive Means-End Reasoning. In Proceedings of 10th International
Symposium on Software Engineering for Adaptive and Self-Managing
Systems, May 18-19 2015, Florence, Italy.
[19] Luca Sabatucci, Carmelo Lodato, Salvatore Lopes, and Massimo
Cossentino. Towards self-adaptation and evolution in business process.
In AIBP@ AI* IA, pages 1–10. Citeseer, 2013.
[20] Luca Sabatucci, Salvatore Lopes, and Massimo Cossentino. Self-
configuring cloud application mashup with goals and capabilities.
Cluster Computing - The Journal of Networks Software Tools and
Applications, 2017.