<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Designing adaptive systems 1</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">João</forename><surname>Pimentel</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Centro de Informática</orgName>
								<orgName type="institution">Universidade Federal de Pernambuco Recife</orgName>
								<address>
									<country key="BR">Brazil</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Jaelson</forename><surname>Castro</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Centro de Informática</orgName>
								<orgName type="institution">Universidade Federal de Pernambuco Recife</orgName>
								<address>
									<country key="BR">Brazil</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Designing adaptive systems 1</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">DAC64535AA7CEC87A872DB25332B8B5F</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T06:16+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>Requirements-driven software adaptation</term>
					<term>architecture-driven software adaptation</term>
					<term>goal-oriented requirements models</term>
					<term>model-driven development</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>In this work, we investigate the interplay between requirements and architecture in the context of adaptive systems. Furthermore, we propose the Multi-Level Adaptation for Software Systems (MULAS) framework. It is centred on the iterative and incremental refinement of a goal model, towards the creation of a design goal model, which can be used at runtime to drive adaptation on a system that is properly instrumented. Moreover, the framework includes a toolsupported process for generating statechart behavioural models from a design goal model.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>Different approaches to support the development of self-adaptive systems have been proposed in the literature. However, those are often restricted to a single aspect of software development. For instance, the Zanshin framework <ref type="bibr" target="#b0">[1]</ref> provides support for handling adaptation at the requirements level, enacting a monitoring-diagnosis-compensation cycle. With Zanshin, adaptation is specified in terms of stakeholders' goals, tasks, quality constraints, and other elements. On the other hand, Rainbow <ref type="bibr" target="#b1">[2]</ref> provides similar capabilities, but addressing architectural models. Thus, it is concerned with properties of systems' components and connectors, e.g., response time, number of servers and load balancing. The differences between requirements-based and architecture-based approaches are discussed in <ref type="bibr" target="#b2">[3]</ref>.</p><p>Requirements engineering and architectural design, while addressing the system specification at different abstraction levels, comprise intertwined activities <ref type="bibr" target="#b3">[4]</ref>. The former focuses on the problem at hand, whereas the latter provides solutions for that problem.</p><p>Approaches that only support requirements-based or architecture-based adaptation thus, lack relevant elements of the adaptation space. For instance, architecture-based Copyright © 2015 for this paper by its authors. Copying permitted for private and academic purposes.</p><p>approaches might ignore stakeholders' goals and preferences, while requirements-based ones may not address concerns related to the system implementation, such as algorithms and components.</p><p>Hence, the investigation of how to support seamless adaptation mechanisms across the different phases of software development seems to be a promising venue to improve the development of self-adaptive software systems. In this paper we provide an overview of a design process centred on an extended goal model, which incorporate elements aiming to support requirements-based and architectural-based adaptation. To illustrate, we adopt a meeting scheduler exemplar.</p><p>The remainder of this paper is organized as follows. In Section 2, we present our process to design adaptive systems, focusing on behavioural specification. Section 3 discusses the limitations of this work. Later, we present ongoing and future work in Section 4.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Design process</head><p>The proposed process, which is a part of the Multi-Level Adaptation for Software Systems (MULAS) framework, comprises eight steps (Fig. <ref type="figure" target="#fig_0">1</ref>). The first five steps are related to the refinement of design goal models: Identify design tasks, constraints and assumptions; Assign tasks; Define basic flows; Identify indicators, parameters and relations; and Specify adaptation strategies. The other three steps are related to statecharts: Generate base statechart; Specify transitions; and Include adaptation elements. While these steps may be followed mostly sequentially, waterfall-like, in realistic settings it is expected that the architect will go back and forth, by introducing additional refinements to already refined elements.  The first step, Identify design tasks, constraints and assumptions, supports the refinement of a goal model by including elements that are not initially required by stakeholders, but are relevant from the architectural point of view, expressed as design tasks, design constraints and design assumptions. The second step, Assign tasks, consists of assigning the responsibilities for the execution of tasks -e.g., tasks that will be performed by an external actor (human or otherwise). This assignment is helpful for defining the scope of the system.</p><p>In the next step, Define basic flows, the architect introduces possible flows for every sub-tree in the goal model. Roughly, these flows describe the order that the sub-elements are going to be fulfilled or executed, so that their parent element can be considered fulfilled or executed. These flows are expressed as alternative flow expressions, introduced as annotations to a goal model using a top-down, bottom-up, or middle-out strategy. These expressions are later used to automatically generate a statechart that represents the system's behaviour.</p><p>The next two steps are related to the adaptation capabilities of the system: Identify indicators, parameters and relations and Specify adaptation strategies. The former is related to the addition, in the design goal model, of some elements proposed by Zashin <ref type="bibr" target="#b0">[1]</ref>, in light of the design elements previously included in the first step. In the Specify adaptation strategies step it is considered how the system will react to failures -e.g., by retrying the execution of a task, or by changing the parameters described in the goal model.</p><p>The second part of the process is related to system behaviour. The first step, Generate base statechart, makes use of derivation patterns to automatically create a statechart from the flow expressions previously defined. Although flow expressions are a useful intermediate abstraction between goal models and statecharts, they are not as expressive as statecharts. Thus, in the next step, Specify transitions, the transitions of the statechart are refined with their events and conditions, which are identified by analyzing when any given transition should take place.</p><p>An example of a resulting (Design) Goal Model is shown in Fig. <ref type="figure" target="#fig_1">2</ref>, which is an excerpt from a Meeting Scheduler system <ref type="bibr" target="#b9">[10]</ref>. Besides the scheduling itself, the system supports the characterization of meetings, the gathering of timetables and the management of meetings, while satisfying the non-functional requirements of scalability and portability. The excerpt on Fig. <ref type="figure" target="#fig_1">2</ref> depicts the sub-tree of the Define Schedule goal, which is refined with the Schedule Manually and Schedule Automatically tasks. Both tasks must be supported by the system, thus it is an AND-refinement. The automatic scheduling can only be performed if the Rooms Available assumption is satisfied, since the system is not able to book additional rooms. Moreover, the Schedule Automatically task is refined with design elements -elements that result from design decisions, i.e., they are not mandated by customers or users.</p><p>The tasks defined during architectural design (the so called design tasks) in this example are: Brute Force Algorithm, Heuristics-based Algorithm, and Select Date. The first two tasks define algorithms that can be executed to perform the scheduling, while Select Date is a task that must be performed once the algorithms find a set of possible dates. Additionally, the automatic scheduling presents two design constraints: it must be performed in less than ten minutes and it must be implemented with web-services. In particular, the selected web-service must be available at least 90 % of the time.</p><p>Besides goals, tasks, constraints and assumptions, the DGM also contains flow expressions, an extension of regular expressions that allow the definition of the execution flow of the system. Six constructs can be used in these expressions: alternative (vertical bar, |), optional (question mark, ?), sequence (blank space, ), repetition (star or plus symbol, * or +), parallelism (hyphen,-), and idle states (iX, where X is a natural number).</p><p>Each flow expression defines the behaviour for the element which it is on top of. For instance in Fig. <ref type="figure" target="#fig_1">2</ref>, the (t15|t16) expression states that, when the system needs to Define Schedule, it may either perform Schedule Manually (t15) or Schedule Automatically (t16). Moreover, for the execution of Schedule Automatically, the expression is ((dt52|dt53) dt54), with this meaning: after performing either Brute Force Algorithm (dt52) or Heuristics-based Algorithm (dt53), the system will perform the Select Date task (dt54).</p><p>Lastly, the DGM defines what must be monitored during the system execution (the so called awareness requirements), and what can be modified in the system (the parameters). In our example, the AR1 awareness requirement, linked to the Schedule Automatically task, states that it must never fail. AR2, linked to the Rooms Available assumption, indicates that it should be false no more than twice a week (Max Failure 2, 7d). On the other hand, AR3 linked to the Availability of Service design constraint, defines that its success rate should not decrease for two days in a row (NotTrendDecrease 1d, 2).</p><p>As illustrated with the aforementioned example, the design goal model allows the integration of requirements and architectural concerns in a single model. Both requirements and architecture elements can be used to specify the system adaptation, with awareness requirements, parameters, relations, and adaptation strategies. In the next subsection we discuss some of the limitations of the proposed process and the design goal model. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Limitations</head><p>This MULAS design process, as well as the design goal model, presents a series of limitations, regarding the following aspects: expressiveness of the design goal model, heuristics for selecting optimal flows, tool support, and compositional adaptation.</p><p>Expressiveness of the design goal model -The design goal model proposed in this paper is based on goal model extension <ref type="bibr" target="#b0">[1]</ref>. That extension includes awareness requirements and parameters, which are relevant as they correspond to the control theory concepts of reference value and control input. However, as a result of the focus on these control theory concepts, two other important concepts have been partially neglected: contribution links and context. The explicit use of contribution links and context annotations may improve the expressiveness of the design goal model. Nonetheless, it is necessary to balance this expressivity with the complexity of the proposed model.</p><p>Heuristics for selecting optimal flows -In the MULAS framework, we propose the use of flow expressions to define the possible flows of the system. However, we do not provide any guidance that helps the architect in the decision of which flow may be best in different contexts and scenarios. Further investigation is required in order to identify heuristics, patterns, or techniques to facilitate such decision.</p><p>Tool support -A supporting tool was developed specifically to support the MULAS framework. Even though this tool is functional, more effort is required in order to make the tool suitable for public use, related not only to actual development but also to the creation of user documentation, such as user guides or tutorials.</p><p>Compositional adaptation -Parameterized adaptation is adaptation related to the modification of variables. In contrast, compositional adaptation is related to modifying structural parts of the system. While we have conducted early endeavours on the latter <ref type="bibr">[6][7]</ref> during this research, the MULAS framework is focused only on the former.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Ongoing and Future Work</head><p>This is an ongoing work, with early results presented in <ref type="bibr">[9][10]</ref>. Its most recent results composed a doctoral thesis <ref type="bibr" target="#b7">[8]</ref> which includes: detailed description of the MULAS framework; description of a support tool; case studies; experiments. We were able to use this framework for developing information systems, which were verified by means of simulation. Moreover, a mobile differential drive robot was designed and developed using the MULAS framework, providing satisfactory results. Through an experiment with 15 requirements engineering students, we were able to obtain evidence in favour of the feasibility of the framework. Nonetheless, further experimentation is required in order to properly evaluate and evolve the proposal, specifically in the context of large industrial system.</p><p>Another interesting line of research is to adapt the MULAS framework for developing context-sensitive systems <ref type="bibr" target="#b10">[11]</ref>. As future work, we intend to investigate the integration of a control theoretic approach (Zanshin) with a context-based one, aiming to expand the expressiveness of the proposal.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 .</head><label>1</label><figDesc>Fig. 1.MULAS design process</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 2 .</head><label>2</label><figDesc>Fig. 2.Excerpt of the design goal model of the Meeting Scheduler system.</figDesc></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" xml:id="foot_0">Proceedings of the Eighth International i* Workshop (istar 2015), CEUR Vol-978</note>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Acknowledgments</head><p>This work has been supported by the ERC advanced grant 267856 "Lucretius: Foundations for Software Evolution", as well as by the following Brazilian institutions: FACEPE, CAPES and CNPq.</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<title level="m" type="main">Requirements-based software system adaptation</title>
		<author>
			<persName><forename type="first">V</forename><forename type="middle">E S</forename><surname>Souza</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2012">2012</date>
		</imprint>
	</monogr>
	<note type="report_type">Ph.D. Thesis</note>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Rainbow: architecturebased self-adaptation with reusable infrastructure</title>
		<author>
			<persName><forename type="first">D</forename><surname>Garlan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S.-W</forename><surname>Cheng</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A.-C</forename><surname>Huang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Schmerl</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Steenkiste</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Computer</title>
		<imprint>
			<biblScope unit="volume">37</biblScope>
			<biblScope unit="page" from="46" to="54" />
			<date type="published" when="2004">2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Requirements and Architectural Approaches to Adaptive Software Systems: A Comparative Study</title>
		<author>
			<persName><forename type="first">K</forename><surname>Angelopoulos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><forename type="middle">E S</forename><surname>Souza</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Pimentel</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems</title>
				<imprint>
			<date type="published" when="2013">2013</date>
			<biblScope unit="page" from="23" to="32" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Changing attitudes towards the generation of architectural models</title>
		<author>
			<persName><forename type="first">J</forename><surname>Castro</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Lucena</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Silva</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Alencar</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Santos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Pimentel</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of Systems and Software</title>
		<imprint>
			<biblScope unit="volume">85</biblScope>
			<biblScope unit="page" from="463" to="479" />
			<date type="published" when="2012">2012</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<title level="m" type="main">From Stakeholder Goals to High-Variability Software Design</title>
		<author>
			<persName><forename type="first">Y</forename><surname>Yu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Mylopoulos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Lapouchnian</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Liaskos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">C S P</forename><surname>Leite</surname></persName>
		</author>
		<idno>csrg-509</idno>
		<imprint>
			<date type="published" when="2005">2005</date>
		</imprint>
		<respStmt>
			<orgName>University of Toronto</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Technical report</note>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Deriving software architectural models from requirements models for adaptive systems: the STREAM-A approach</title>
		<author>
			<persName><forename type="middle">J</forename><surname>Pimentel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Lucena</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Castro</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Silva</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Santos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Alencar</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Requirements Engineering Journal</title>
		<imprint>
			<biblScope unit="volume">17</biblScope>
			<biblScope unit="page" from="259" to="281" />
			<date type="published" when="2012">2012</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Towards an i*-based Architecture Derivation Approach</title>
		<author>
			<persName><forename type="first">D</forename><surname>Dermeval</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Soares</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Alencar</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Santos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Pimentel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Castro</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Lucena</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Silva</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Souza</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Fifth International i* Workshop</title>
				<imprint>
			<date type="published" when="2011">2011</date>
			<biblScope unit="page" from="66" to="71" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<monogr>
		<title level="m" type="main">Systematic Design of Adaptive Systems -A Control-Based Framework</title>
		<author>
			<persName><forename type="first">J</forename><surname>Pimentel</surname></persName>
		</author>
		<ptr target="http://www.cin.ufpe.br/~ler/supplement/istar2015/" />
		<imprint>
			<date type="published" when="2015">2015</date>
		</imprint>
	</monogr>
	<note type="report_type">Ph.D. thesis</note>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">From Requirements to Architectures for Better Adaptive Software Systems</title>
		<author>
			<persName><forename type="first">J</forename><surname>Pimentel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Angelopoulos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><forename type="middle">E S</forename><surname>Souza</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Mylopoulos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Castro</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">6th International i* Workshop</title>
				<imprint>
			<date type="published" when="2013">2013</date>
			<biblScope unit="page" from="91" to="96" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">From requirements to statecharts via design refinement</title>
		<author>
			<persName><forename type="first">J</forename><surname>Pimentel</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">29th Symposium on Applied Computing</title>
				<imprint>
			<date type="published" when="2014">2014</date>
			<biblScope unit="page" from="995" to="1000" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Deriving the behavior of context-sensitive systems from contextual goal models</title>
		<author>
			<persName><forename type="first">J</forename><surname>Vilela</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Castro</surname></persName>
		</author>
		<author>
			<persName><forename type="first">;</forename><forename type="middle">J</forename><surname>Pimentel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Soares</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Lima</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Lucena</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">30th Symposium on Applied Computing</title>
				<imprint>
			<date type="published" when="2015">2015</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
