<?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"></title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Loris</forename><surname>Penserini</surname></persName>
							<email>penserini@itc.it</email>
							<affiliation key="aff0">
								<orgName type="institution">ITC-irst</orgName>
								<address>
									<addrLine>Via Sommarive 18 I-38050</addrLine>
									<settlement>Trento</settlement>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Anna</forename><surname>Perini</surname></persName>
							<email>perini@itc.it</email>
							<affiliation key="aff0">
								<orgName type="institution">ITC-irst</orgName>
								<address>
									<addrLine>Via Sommarive 18 I-38050</addrLine>
									<settlement>Trento</settlement>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Angelo</forename><surname>Susi</surname></persName>
							<email>susi@itc.it</email>
							<affiliation key="aff0">
								<orgName type="institution">ITC-irst</orgName>
								<address>
									<addrLine>Via Sommarive 18 I-38050</addrLine>
									<settlement>Trento</settlement>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">John</forename><surname>Mylopoulos</surname></persName>
							<affiliation key="aff1">
								<orgName type="institution">Univ. of Trento</orgName>
								<address>
									<addrLine>Via Sommarive, 14</addrLine>
									<postCode>I-38050</postCode>
									<settlement>Trento</settlement>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
						</author>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">803EA4B21E6816C414C4995FABF54104</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T14:53+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>Current IT application domains such as web services and autonomic computing call for highly flexible systems, able to automatically adapt to changing operational environments as well as to user needs. We are conducting research on how to build these complex systems in the context of agent-oriented software. This short paper gives an overview of our approach (described in details in <ref type="bibr" target="#b2">[3]</ref>) which rests on a tool-supported, development process, and aims at linking stakeholder needs, elicited during domain analysis, to agent capabilities coded into a MAS.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Approach Overview</head><p>Developing distributed software systems that operate in open, evolving and heterogeneous environments is becoming a critical issue in IT application domains such as web services and autonomic computing. Multi-Agent System (MAS) are offering both technological solutions as well as an effective paradigm for the development of this type of complex systems. Agents behavior at run time is influenced by the environment within which they operate <ref type="bibr" target="#b5">[6]</ref>, so designing agents able to behave in an effective way should benefit from a deep knowledge of that environment, including the stakeholders who have specific needs and expectations from the agents being designed. The specification of agents behavior is typically addressed during detail design, a step which precedes implementation. Analysis of the environment, on the other hand, is performed earlier, during domain and system requirements modelling, which rest on environment-and problem-oriented abstractions.</p><p>Our goal is to address the problem of supporting traceability between requirements, design and code artifacts, borrowing ideas and standards proposed by the Model Driven Architecture (MDA) initiative <ref type="bibr" target="#b1">[2]</ref>. In particular, we conceives system development in terms of a chain of model transformations, namely, from a domain and stakeholder requirements model (Computationally Independent Model CIM, in MDA terminology) to a detailed design models of agents behavior, which provides a Platform Independent Model (PIM), and from a PIM to a Platform Specific Model (PSM), from which code and other development artifacts can then be straightforwardly derived.</p><p>To this aim, we extended the Tropos <ref type="bibr" target="#b0">[1]</ref> agent-oriented methodology by introducing agent capability modeling since requirements analysis <ref type="bibr" target="#b3">[4]</ref>, and provided a tool-supported process. The Tropos methodology rests on a conceptual framework which includes the notions of agent, goal, plan and social dependency between agents for goal achievement. These knowledge level concepts are uniformly used throughout the software development process which is organized along five main phases: Early Requirements, Late Requirements, Architectural Design, Detailed Design and Implementation. We adopted a revised definition of the agent capability notion which distinguishes the concept of ability from the concept of opportunity <ref type="bibr" target="#b3">[4]</ref>. The ability part represents a way to achieve a given goal. The opportunity part represents user preferences and environmental conditions, which may enable or disable the execution of the ability part, at run time.</p><p>An high level view of the development process we are proposing can be summarized as follows.</p><p>Step 1. Capability modeling starts during requirements analysis by identifying agent capabilities as a way to accomplish stakeholder needs (CIM model). Ability part of capabilities are specified in Tropos by a means-end relationship between the goal and the plan. Goal/plan ORdecomposition allows to describe alternative capabilities that can achieve a goal. The opportunity part is described via plan/softgoal contributions (e.g. see Fig. <ref type="figure" target="#fig_0">1, (a)</ref>), plan, sof tgoal, metric Step 2. Further refinements of capability models are provided during architectural and detailed design where capability dynamic properties are specified by a set of UML 2.0 activity and sequence diagrams. These requirements analysis and design phases are supported by a Tropos modeler, based on the Eclipse platform, which uses a MOF <ref type="bibr" target="#b1">[2]</ref> compliant implementation of the Tropos language metamodel and of the UML metamodel.</p><p>Step 3. Agent code generation results from a transformation of these PIM specifications to the target platform specific model (PSM). PIM to PSM transformation is implemented using automatic transformation techniques: for the ability part <ref type="bibr" target="#b3">[4]</ref> while, for the opportunity part, a two steps process is adopted. The first step consists in a mapping from Tropos specification to Jadex, through the Jadex/JADE adapter <ref type="bibr" target="#b4">[5]</ref>, the second step goes from UML specification of capabilities to JADE. The output of this process is a skeleton of the code of JADE agents which execute plans, correspondingly to the ability specification. The choice of which plan to execute is performed by the agent according to BDI mechanisms which implement the opportunity specification.</p><p>Basic features of the resulting MAS implementation, are: a) each agent can play different roles according to special request-messages, related to target goals. That is, an agent can sense the environment and consequently switch to a specific role, execute the most appropriate capability, chosen by using the knowledge coded into the opportunity part; b) the ability part of a capability is implemented as a specialization of the class jade.core.behaviours.FSMBehaviour, namely it represents a final states machine (automaton). This allows to exploit monitoring mechanisms during capability execution with the aim of making the agent aware of failures and able to react to them.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Figure 1 :</head><label>1</label><figDesc>Figure 1: Fragments of development artifacts: (a) Tropos goal model of the Search Manager actor; (b) and (b') UML Detailed Design specification of a capability; (c) MAS generated structure.</figDesc><graphic coords="2,106.44,85.19,384.85,152.27" type="bitmap" /></figure>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<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">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>
		<author>
			<persName><forename type="first">A</forename><surname>Perini</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-07">July 2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">J</forename><surname>Mellor</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Scott</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Uhl</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Weise</surname></persName>
		</author>
		<title level="m">MDA Distilled</title>
				<imprint>
			<publisher>Addison-Wesley</publisher>
			<date type="published" when="2004">2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">From Capability Specification to Code for Multi-Agent Software</title>
		<author>
			<persName><forename type="first">L</forename><surname>Penserini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Perini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Susi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Mylopoulos</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 21st Conference IEEE/ACM International Conference on Automated Software Engineering (ASE&apos;06)</title>
				<meeting>the 21st Conference IEEE/ACM International Conference on Automated Software Engineering (ASE&apos;06)</meeting>
		<imprint>
			<publisher>IEEE Press</publisher>
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">From Stakeholder Intentions to Software Agent Implementations</title>
		<author>
			<persName><forename type="first">L</forename><surname>Penserini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Perini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Susi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Mylopoulos</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 18th Conference On Advanced Information Systems Engineering (CAiSE&apos;06)</title>
				<meeting>the 18th Conference On Advanced Information Systems Engineering (CAiSE&apos;06)</meeting>
		<imprint>
			<publisher>Springer-Verlag</publisher>
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Jadex: A BDI reasoning engine</title>
		<author>
			<persName><forename type="first">A</forename><surname>Pokahr</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Braubach</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Lamersdorf</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Multi-Agent Programming</title>
				<editor>
			<persName><forename type="first">R</forename><surname>Bordini</surname></persName>
		</editor>
		<imprint>
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<title level="m" type="main">An Introduction to Multiagent Systems</title>
		<author>
			<persName><forename type="first">M</forename><surname>Wooldridge</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2001">2001</date>
			<publisher>John Wiley &amp; Sons</publisher>
		</imprint>
	</monogr>
</biblStruct>

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