CONTENTS
CONTENTS
CONTENTS
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.