Agent Software Development BY KALPANA JAMBULA
Contents • Classes and characteristics of software agents • Software project management • Agents in Communication management • Agents in Risk management • Agents in Quality management • JADE’s implementation of agents • Tests • Results • Conclusion
INTRODUCTION SPM environment is rapidly changing due to globalization and advances in computing technology. Tools for sharing information and knowledge , task scheduling, tracking and monitoring are needed. Solution : software agent technology.
What is software agent technology? • A natural metaphor for support in team environment. • Software agents are used to support development of SPM systems which distributes data, control, expertise, or resources.
What is Software Agent? • It is a Computer program that is capable of autonomous actions to reach specific goal. • Autonomy: Ability of software agent to perform tasks without direct control. • Semi-autonomous software agents: Agents which perform tasks with minimum supervision.
Classes of Software Agents • Mobile agents: - Can migrate from one machine to other machine - Interact with foreign hosts - Collaborate with other agents - Gather information behalf of its owner • Stationary agents: -Permanently resides on a particular host -Accept mobile agents, allocate resources, enforce security policies etc.,
Agent Characteristics: • Intelligence -reactivity -proactiveness -social ability • Adaptivity (customize) • Flexibility • Collaborativeness
Important characteristics of mobile agent: • Autonomy • Migratability • Collaborativeness • Agent with these three intelligence requirements is often referred to as Robot
What is Software Project Management • The IEEE defines SPM as a process of • Planning • Organizing • Staffing • Monitoring • Controlling • Leading a software project
Examples how agent technology is being deployed in SPM • Sauer & Applerath  presented an approach that involves using a generic agent framework to support the scheduling tasks within supply chain in PM envi.. • Maurer proposes a system in which methods and tools were developed to plan and manage complex work flows, especially in design domains
SPM framework supported by Software Agent Tech.. • SPM environment has changed into a dynamic and complex environment with following requirements • Flexibility • Adaptive behavior • Management techniques • Agent based solutions are exactly applicable, as agents have advantage of sophisticated patterns of interaction • Cooperation • Coordination • Negotiation
Specialized working agents • Messaging agent • carries messages between different agent teams. • Personal assistant agent • support individual stakeholder to accomplish their task. • Task agent (commonly invoked by PA agent) • Support specific project task. • Monitoring agent • Monitors tasks, reports back to communication planning and information distribution functions. • Client agent ( have collaborative nature to for interaction) • A Stationary agent responsible for specialized task.
Specialized working agents cont.. • Team manager agent • Manages team of agents. • Project Manager (PM) agent • An agent that takes on the project manager role, assists with the • Creation of the project • Initial specification of the tasks • Allocation of tasks to personnel
Communication management supported by agent technology • CM enables and supports actions that ensures timely and appropriate generation, collection, dissemination, storage, disposition of project information. • Functions of CM: • Communications planning • Information distribution • Performance reporting • Administrative closure • Team work support
Agents used in CM functions • User Interface • Personal agents, task agents, messaging agents • Communications planning • Personal agents, task agents, messaging agents • Information distribution • Messaging agents, client ,task and team manager agents • Performance reporting • Client agents, messaging agents • Team work support • Monitoring, personal assistant, client and messaging agents • Administrative closure • Messaging agents, client agents, monitoring agents
Risk management supported by agent technology • Risk management(RM) is the identification, assessment, and prioritization of risks. It also has to minimize, monitor, and control the risks. • RM has following functions: • Risk identification • Qualitative Risk Analysis • Quantitative Risk Analysis • Risk planning • Risk monitoring
Agents used in Risk Management functions • Risk identification • Messaging agent, task agent, team manager agent and client agent • Risk planning and monitoring • does not yet form part of the scope of the prototype
Quality management supported by agent technology • Quality management(QM) • the processes required to ensure that the project will satisfy the needs for which it was undertaken • Major QM processes identified by Schwalbe (2004) are • Quality planning • Determining relevant quality standards and deciding how to meet them • Quality assurance • Evaluating overall performance regularly(Quality audits or reviews) • Quality control • Monitoring the activities and end results using tools and techniques
Agents used by QM processes • Quality planning • Task agents to set and identify relevant quality measures • mobile agents to communicate to stakeholders and teams • monitoring agents to receive and distribute • teamwork agents to coordinate agents. • Quality assurance • Task agents to evaluate compliance to set relevant standards, and give warning messages • mobile agents to communicate • messaging agents to deliver messages • monitoring agents to control and execute audits.
Agents used by QM processes cont. • Quality control • Task agents to execute monitoring tasks • mobile agents to receive and carry information • messaging agents, personal agents • monitoring agents to control and check that tasks meet measures.
How to improve software development and robustness using multiagent systems • Two ways to increase the effectiveness of task driven by an algorithm • During design implementation, algorithms are compared and best one is chosen • During runtime, multiple algorithms are compared and best one is chosen • JADE(Java Agent Development Framework) approach • Uses specific programmed behaviors • Uses extensive collection of message passing and receiving abilities
JADE’s implementation of agents • Agent initialization • Agent is required to test its algorithm in the areas of input type, space and time complexities • On initialization agent receives two arguments • File containing algorithm to be analyzed • The input type for the algorithm(optionally)
Experiments made on JADE’s approach • Controlled tests • Data type checking • Data type mismatch test • Test to make sure all algorithms compared though second argument is not provided • Final test used few files and more trials to test equality conflicts • Random Tests • Ten files with little variation in complexity to test comparison code • Twenty five files created with large variation in complexity • Agent limits • Tests to confirm reliability and test different hardware by using an increasing number of agents per trial
Experiment results • Controlled tests • First three tests shows general working of agents • Results of fourth test, were not expected, though acceptable. • Random tests • First test chose correct algorithm with three to four algorithms survived for voting • Agent worked as intended in second test • Agent limits • Memory usage rose at linear rate • Execution time rose at exponential rate
Conclusion from experiments • Agent itself is robust, accurate and reliable. • A successful agent was created that warps different algorithms and determine the complexities and choose best algorithm.
Conclusion Software agent technology is ideally suited to meet the new challenges in faced by SPM characteristics. • Compiling a generic model supporting all key areas of SPM, and designing agent framework to address tasks of key elements is mainly focused. • The software agent technology in communication, risk and Quality management, and how Multiagent systems are used to improve the software development and robustness are discussed.
References • Software Quality Management Supported by Software Agent Technology by R. C Nienaber and A. Barnard. • Improving Software Development and Robustness Through Multiagent Systems by Kelvin Thompson • “On the use of Agents as components of software systems” by Bergenti, F., and Huhns • A Software agent framework for the support of software project management by R. C Nienaber and Elsabe Cloete.