<?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">From Adaptive Systems Design to Autonomous Agent Design</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Alexei</forename><surname>Lapouchnian</surname></persName>
							<email>alexei@cs.toronto.edu</email>
							<affiliation key="aff0">
								<orgName type="department">Department of Computer Science</orgName>
								<orgName type="institution">University of Toronto</orgName>
								<address>
									<country key="CA">Canada</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Yves</forename><surname>Lespérance</surname></persName>
							<email>lesperan@cse.yorku.ca</email>
							<affiliation key="aff1">
								<orgName type="department">Department of Computer Science and Engineering</orgName>
								<orgName type="institution">York University</orgName>
								<address>
									<settlement>Toronto</settlement>
									<region>ON</region>
									<country key="CA">Canada</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">From Adaptive Systems Design to Autonomous Agent Design</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">8F245BB84ED466E5EAE9350C19FFE26B</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T07:10+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>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Interest in adaptive systems design has been steadily growing in the SE community, in part due to the ever-increasing complexity of modern software-intensive systems. Inspired by control theory, various types of controllers (e.g., feedback) are beginning to appear in software architectures for many applications. Within those controllers, distinct activities such as monitoring, analysis/diagnosis, planning, and execution are present. Approaches for requirements engineering, software architectures, and the design of such systems are beginning to emerge. In the case of agent-oriented systems, however, their hallmark is the ability to operate in highly dynamic and incompletely specified environments, handle tasks that may not be known a priori, etc. In this position paper, we look into what needs to be included in requirements-driven methods for designing agent-oriented systems, which, while drawing on ideas from control theory and adaptive systems design, would support much more autonomy, flexibility, and dynamism.</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>As the complexity of software-intensive systems increases, more research in software engineering (SE) is being dedicated to the modeling, analysis, and implementation of adaptive systems, which promise to take on a certain range of tasks related to selfmaintenance and self-adaptation. The main motivation for this is to reduce the maintenance overhead for these systems, to allow them to adapt to changing environments and user needs while continuing to deliver their functionality.</p><p>There are a number of ways to implement self-adaptation in software. A recent paper <ref type="bibr" target="#b0">[1]</ref> identified several of the most common approaches for adaptive systems design. One of these approaches, which advocates the use of control loops, has roots in control theory, while another, which uses agents and multiagent systems, in artificial intelligence. There is a certain overlap between control loops and agents since in both paradigms, monitoring/sensing of the environment is followed by some analysis/reasoning and the enactment of the appropriate behaviour, both agents and control loops can be organized hierarchically, etc. The emerging control loop-based approaches for developing adaptive systems attempt to use well-founded systematic techniques to specify the details of self-adaptive systems. However, what distin-guishes the agent-based approach is that it can support a higher degree of autonomy and distributed decision making, as well as be effective in highly dynamic and incompletely known environments, among other things. In this position paper, we consider several problems. Firstly, we look into which adaptation scenarios warrant the selection of agent-based approaches over control loop-based ones. Secondly, we look into what needs to be included in requirements-driven methods for designing agentoriented systems in a more transparent and predictable way, which, while drawing on ideas from control theory and adaptive systems design, would achieve greater autonomy, flexibility, etc.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Background and Related Work</head><p>Control loops and especially feedback loops, have a long and successful history in engineering, and have recently been promoted as a promising way to implement selfadaptive software systems <ref type="bibr" target="#b1">[2,</ref><ref type="bibr" target="#b2">3]</ref>. Moreover, it is argued that adaptation concerns should be modeled and designed separately from the main functionality of the system (e.g., <ref type="bibr" target="#b2">[3]</ref>), which fits nicely with the control loop approach. Feedback loops provide a generic mechanism for self-adaptation. To realize self-adaptive behaviour, systems typically have a number of controllers that can be organized into hierarchies. The main idea of feedback control is to measure the system output and achieve control objectives (e.g., maintaining a CPU utilization rate for a server) by adjusting system parameters. Thus, feedback controllers can be viewed as having to monitor the system, analyze the captured data, perform diagnosis, and plan and execute a course of action. One can then concentrate on aspects of these specific activities within the feedback controller. However, while there have been numerous advances in requirements engineering for this, little attention has so far been paid to the elicitation and analysis of the adaptation requirements such as deciding what to monitor, how to perform the analysis of the monitored data and the system diagnosis, as well as when and how to do compensation.</p><p>There are a number of recent agent-oriented approaches (e.g., <ref type="bibr" target="#b5">[6]</ref>) that attempt to extend the Tropos requirements-driven approach <ref type="bibr" target="#b6">[7]</ref> to support the design of adaptive systems. In <ref type="bibr" target="#b5">[6]</ref>, an approach for Belief-Desire-Intention (BDI) agent systems is proposed. Tropos extensions include the modeling of failure symptoms, possible causes, and compensations. This significantly constrains the amount of autonomy that the agents have in dealing with dynamic and incompletely known environments.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Research Objectives</head><p>One of the key questions for the research proposed in this position paper is to determine, given the benefits of agents and multiagent systems (MAS) as well as their costs and limitations, in which circumstances the use of agent technology is warranted in the design of adaptive systems. Also, this may help in determining the complexity and architecture of the agents needed. We propose to look at the recent research on the dimensions of self-adaptive software systems <ref type="bibr" target="#b7">[8]</ref> and identify particular dimen-sions, and values within those dimensions, that demand flexibility and autonomy that can be provided by the use of agents, thus indicating in what circumstances the use of an agent-based adaptive system is most promising. Here, we list some of the dimensions taken from <ref type="bibr" target="#b7">[8]</ref> that seem like the most relevant for the use of agents:</p><p>Goal flexibility is related to the level of uncertainty and flexibility in goal specifications. The values in <ref type="bibr" target="#b7">[8]</ref> for this dimension are: rigid, constrained, and unconstrained. Common SE approaches are mostly applicable to rigidly specified goals. However, agents are capable of handling much more uncertainty in goal specifications up to the point where goals may not be known at design time. Thus, the need to handle unconstrained goals is pointing to planning agent-based solutions.</p><p>Anticipation of change captures whether change (i.e., the cause of adaptation) can be predicted. The values are foreseen (taken care of), foreseeable (planned for), and unforeseen (not planned for). Clearly, the need to handle unforeseen changes may require the use of planning/reasoning agents capable of selecting and/or constructing plans (albeit in particular pre-analyzed domains) at runtime. Autonomy of adaptation mechanisms identifies the degree of outside intervention during adaptation (from autonomous to assisted -by a human or another system).</p><p>While both control loop-based and agent-based approaches provide some degree of autonomy, in the context of unforeseen changes, reasoning and social agents will generally be more autonomous and thus more applicable. In MAS, the notion of a system may be quite fluid, since agents may be joining and leaving the MAS.</p><p>Organization of adaptation -centralized vs. decentralized. Agents naturally support decentralized adaptation, which is especially useful when information is distributed. The challenge here is to integrate adaptations addressing different concerns that may be implemented by different agents and manage conflicts between them. Approaches to this include social laws and mechanism design. Thus, multiagent systems can provide another level of control and governance to distributed adaptive systems. Another challenge is integrating agent-based adaptation mechanisms with other approaches, notably control loop-based methods. Effect (predictability) of adaptation -whether the consequences of selfadaptation can be predicted both in their nature and temporal extent. Degrees of predictability range from non-deterministic to deterministic. This predictability is associated with guarantees. In control loop-based approaches, the effects of adaptations are systematically studied and generally are predictable (still, external disturbances can make things less predictable). In agent-based systems, especially in complex ones, predicting emergent behaviour can be difficult. Careful derivation of constraints on reasoning components and other advanced agent features (e.g. using "anytime" methods) may improve predictability. Another question that we propose to address is the following. On the one hand, agents and MAS offer a lot of power and flexibility when autonomy is needed, when dealing with dynamic and incompletely known environments, goals that are unknown at design time, etc. On the other, these advanced features frequently are not supported by systematic requirements-driven engineering approaches, are hard to represent visually in modeling notations, and may not provide enough predictability and transparency for some domains. Moreover, there is a variety of agent technology/architectures, ranging from simple rule-based reactive agents to planning and decision-theoretic agents. While the former can be seen as variations of feedback loops and thus can use, e.g., the ideas in <ref type="bibr" target="#b3">[4]</ref>, the latter seem to require quite different modeling and analysis techniques and cannot be easily dealt with by existing requirements-driven approaches such as Tropos.</p><p>Thus, the challenge is to allow the use of advanced agent techniques as needed, while improving the transparency and predictability of agent-based adaptive systems. We need more systematic requirements-driven agent-oriented software engineering approaches. Here, we can treat agents as feedback controllers with distinct monitoring, reasoning, planning, and execution activities and then use ideas from feedback control-based adaptive systems and proposals such as <ref type="bibr" target="#b3">[4]</ref> to systematically derive not only the functional requirements for the system, but also the adaptation requirements -for monitoring, reasoning, etc. The method should support explicit representation of reasoning and (classical or decision-theoretic) planning capabilities within agents. The requirements for these agent features can be identified by looking at the relevant adaptation dimensions as described above. Constraints on the behaviour of these agent components should also be elicited and represented. Declarative specifications of at least certain parts of agents will support their evolvability and help in avoiding the need to explicitly and exhaustively capture, e.g., situations requiring adaptation. These agent features support shifting goal refinement from design time to runtime.</p><p>One possible difficulty with the above approach is that to improve the predictability and transparency of agent-based adaptive systems, the proposed method needs to separate the specification of the adaptive functionality from the main system functionality. For example, if an agent has a component capable of constructing plans to achieve goals in a certain domain as well as to adjust these plans as they are being executed, not only does the component address the functional requirements, but the adaptation requirements as well, since it has to monitor plan execution and the state of the environment, compute diagnosis, and provide compensations/do replanning. It remains to be seen whether this idea has limitations.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Ongoing and Future Work</head><p>Many of the ideas suggested in the previous sections are for future work. We are performing a thorough analysis of the dimensions of self-adaptive software systems and the identification of the ones that warrant the use of agent-based adaptive systems approaches. Moreover, we are interested in identifying which adaptive system requirements and which values for adaptive systems dimensions can help us with the selection of a particular agent type/architecture (e.g., simple rule-based reactive agent vs. BDI agent vs. classical planning agent vs. decision-theoretic planning agent).</p><p>In <ref type="bibr" target="#b3">[4]</ref>, an attempt is made at deriving monitoring and analysis requirements for feedback loops given a particular class of meta-requirements (awareness requirements). These meta-requirements are captured using goal models in addition to the usual functional and non-functional requirements for the system. These models represent the requirements of meta-processes responsible for the adaptive behaviour of the system. Contexts <ref type="bibr" target="#b4">[5]</ref> are used to model situations requiring adaptation (e.g., failures), while compensation goals are explicitly represented and refined. However, this approach involves explicit modeling of situations that require changing the behaviour of the system as well as explicit specifications of adaptations/compensations. One cannot say in this approach that decisions about when and how to change the behaviour are to be made at runtime. We plan to use the approach of <ref type="bibr" target="#b3">[4]</ref> as a starting point to integrate ideas from control loop-based approaches with relevant agent techniques to support the analysis and design of agent-based adaptive systems.</p><p>Integrating centralized control loop approaches with the distributed agent-based approaches is also a challenge. How can we seamlessly integrate these adaptation mechanisms? Can they be used in a hierarchical fashion (e.g., low-level feedback loops being controlled by higher-level goal-driven agents) or at the same level, each controlling a particular aspect of system adaptation?</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Conclusions</head><p>Research in self-adaptive systems is growing in importance driven by the increasing complexity of software systems. While control loop-based approaches for engineering adaptive systems look promising, they lack support for distributed adaptive behaviour that supports dynamic and incompletely known domains. On the other hand, agentbased approaches, while being powerful in their flexibility, support for dynamic goals, etc., may lack predictability and transparency. In this position paper, we argue for a requirements-driven design approach that builds on control loop-based approaches to support more flexibility, autonomy, as well as transparency and predictability, in agent-based adaptive systems.</p></div>		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Software Engineering for self-adaptive systems: a research roadmap</title>
		<author>
			<persName><forename type="first">B</forename><forename type="middle">H C</forename><surname>Cheng</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Software Engineering for Self-Adaptive Systems</title>
		<imprint>
			<biblScope unit="volume">5525</biblScope>
			<biblScope unit="page" from="1" to="26" />
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
	<note>LNCS</note>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<title level="m" type="main">Feedback control of computing systems</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">L</forename><surname>Hellerstein</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Dao</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Parekh</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">M</forename><surname>Tilbury</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2004">2004</date>
			<publisher>Wiley</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Engineering self-adaptive systems through feedback loops</title>
		<author>
			<persName><forename type="first">Y</forename><surname>Brun</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">LNCS Col</title>
		<imprint>
			<biblScope unit="volume">5525</biblScope>
			<biblScope unit="page" from="48" to="70" />
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<title level="m" type="main">Awareness requirements for adaptive systems</title>
		<author>
			<persName><forename type="first">A</forename><surname>Lapouchnian</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>
		<imprint/>
	</monogr>
	<note>Submitted for publication</note>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Modeling domain variability in requirements engineering with contexts</title>
		<author>
			<persName><forename type="first">A</forename><surname>Lapouchnian</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Mylopoulos</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. ER &apos;09</title>
				<meeting>ER &apos;09</meeting>
		<imprint>
			<date type="published" when="2009">2009</date>
			<biblScope unit="volume">5829</biblScope>
			<biblScope unit="page" from="115" to="130" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Towards goal-oriented development of self-adaptive systems</title>
		<author>
			<persName><forename type="first">M</forename><surname>Morandini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Penserini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Perini</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. SEAMS &apos;08</title>
				<meeting>SEAMS &apos;08</meeting>
		<imprint>
			<biblScope unit="page" from="9" to="16" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Tropos: An agent-oriented software development methodology</title>
		<author>
			<persName><forename type="first">P</forename><surname>Bresciani</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Perini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Giorgini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Giunchiglia</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Mylopoulos</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Autonomous Agents and Multi-Agent Systems</title>
		<imprint>
			<biblScope unit="volume">8</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="203" to="236" />
			<date type="published" when="2004">2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Modeling dimensions of selfadaptive software systems</title>
		<author>
			<persName><forename type="first">J</forename><surname>Andersson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>De Lemos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Malek</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Weyns</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Software Engineering for Self-Adaptive Systems</title>
		<imprint>
			<biblScope unit="volume">5525</biblScope>
			<biblScope unit="page" from="27" to="47" />
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
	<note>LNCS</note>
</biblStruct>

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