02.04.2013 Views

CONTENTS

CONTENTS

CONTENTS

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

DECISION SUPPORT SYSTEM FOR SOFTWARE MAINTENANCE AND EVOLUTION 183<br />

of the multiagent system: Software developers (human agents); Personal Assistant<br />

Agents (PA); Decision Support Agents (intelligent mobile agents - DSA).<br />

The system that we propose in this paper is a distributed system consisting of<br />

some local nodes, where software developers are assisted by DSSEM in activities<br />

related to software maintenance and evolution (as presented in Section 2), and a<br />

central location that supervises the local nodes.<br />

We assume that at each local node, the human agent (software developer) use<br />

his/her favourite IDE (Integrated Development Environment) for developing a software<br />

application SA. At each local node, a personal assistant agent PA is also available.<br />

Each time a software developer needs assistance in a task related to refactoring,<br />

design pattern identification, or other tasks supported by DSSEM (see Section 2) PA<br />

agent is activated. PA is a software agent that is responsible for interacting with the<br />

IDE in which the user develops its application.<br />

On the central location six kinds of decision support agents exist: an agent responsible<br />

for design patterns identification, one responsible for concept location, one<br />

responsible for crosscutting concerns identification, one responsible for introducing<br />

design patterns, one responsible for refactoring, and one responsible for the behavioral<br />

adaptation of the system. All of them are sleeping until they receive a specific<br />

message and they become activated. After a software developer authenticates on a<br />

local node and request assistance for an activity, its personal assistant agent PA sends<br />

an awakening message to the coresponding decision support agent.<br />

Once activated, an instance of the corresponding decision support agent DSA<br />

migrates to the local node, where its interaction with the personal assistant agent<br />

PA starts (DSA agent receives the information that PA agent has collected about the<br />

software application SA). After the task of DSA agent is completed, it sends the<br />

results to PA agent that will communicate the information to the software developer.<br />

After this, DSA migrates back to the central location. DSA are intelligent agents<br />

that accomplish their tasks by using machine learning [1] techniques.<br />

We can conclude that the advantages of the DDSEM system proposed in this<br />

paper are: (1) It benefits from the advantages that the agent based technology offers<br />

- especially autonomy and flexibility [5]. (2) It offers protection of confidential information<br />

by using the mobile agent technology. Maintaining security [6] implies that<br />

the software developer’s intelectual property (source code) might be highly sensitive<br />

data that should not leave its location. In such cases, the mobile-agent model [7] offers<br />

a solution: a mobile agent is sent to the local node, and at the end of the process the<br />

mobile agent is destroyed on the location itself. (3) DSSEM system can be simply<br />

adapted to any IDE and/or programming languages (such as Eclipse, Visual Studio;<br />

Java, C++), only by changing the behavior of PA.<br />

We have implemented a prototype of DSSEM system, in which the functionality of<br />

refactorings identification is added. In this direction, RDSA agent was developed, i.e.,<br />

an instance of DSA agent that is responsible for identifying refactorings that improve<br />

the structure of a software system. For refactorings identification we use a clustering<br />

approach that we have previously introduced in [8]. The identified refactorings are<br />

suggested to the software developer, that can decide if the refactorings are appropriate.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!