Agent-Oriented Software Engineering
description
Transcript of Agent-Oriented Software Engineering
April 15, 2005 Department of Computer Science, BYU
Agent-Oriented Software Engineering
Muhammed Al-Muhammed
Brigham Young University
Supported in part by NSF
April 15, 2005 Department of Computer Science, BYU (2)
Outline
Software Engineering Agents Agent-Oriented Software Engineering
Agent Modeling Tools Methodologies Reuse in Agent Software
Future Directions
April 15, 2005 Department of Computer Science, BYU (3)
Software Engineering
“The establishment and use of sound engineering principles (methods) in order to obtain economically software that is reliable and works on real machines” (Bauer, F. L. Software Engineering. Information Processing 71., 1972)
April 15, 2005 Department of Computer Science, BYU (4)
Software Engineering
Some principles [GJM91] Modularity Abstraction
Process of developing software Requirement analysis, design, testing,…
Software Architecture [Gar00] Past trends Current and future trends
April 15, 2005 Department of Computer Science, BYU (5)
Outline
Software Engineering Agents Agent-Oriented Software Engineering
Agent Modeling Tools Methodologies Reuse in Agent Software
Future Directions
April 15, 2005 Department of Computer Science, BYU (6)
Agents
Definition [FG96]“An agent is a system situated within and part of environment that senses that environment and acts on it, over time, in pursuit of its own agenda and so as to effect what it senses in the future.”
Agent properties [JSW98, Bra97] Autonomyhas control over its behavior Re-activitycontinuously observes and react to
changes in its environment in timely fashion Pro-activitygoal oriented Socialitycommunicate in a high-level way
April 15, 2005 Department of Computer Science, BYU (7)
Agents
Contributors to agent research [JSW98] Artificial intelligence Object systems Human-computer interface design
Multi-agent systems Agent communication languages KQML [FLM97] & FIPA
April 15, 2005 Department of Computer Science, BYU (8)
Outline
Software Engineering Agents Agent-Oriented Software Engineering
Agent Modeling Tools Methodologies Reuse in Agent Software
Future Directions
April 15, 2005 Department of Computer Science, BYU (9)
Agent-Oriented Software Engineering [Jen00]
The case for agent orientation to software engineering Agent-oriented decomposition is an effective
way of partitioning a problem space Agent mindset (agent, interactions, and
organizational relationships) are a natural means for modeling complex systems
April 15, 2005 Department of Computer Science, BYU (10)
Agent-Oriented Software Engineering[Jen00]
Problems of agent-based approaches to software engineering Unpredictable patterns and outcomes of the
interactions Difficult (or impossible) to predict the behavior
of the overall system based on its constituent components
April 15, 2005 Department of Computer Science, BYU (11)
Outline
Software Engineering Agents Agent-Oriented Software Engineering
Agent Modeling Tools Methodologies Reuse in Agent Software
Future Directions
April 15, 2005 Department of Computer Science, BYU (12)
Agent Modeling Tools
UML – unsuitable for agent modeling Two major extensions to UML
AUML – extends UML specifically it extends UML interaction diagrams to support agent protocols [PO04]
AML – extends UML and uses concepts from AUML, OWL, MESSAGE, FIPA-S… [CTCG04]
April 15, 2005 Department of Computer Science, BYU (13)
Outline
Software Engineering Agents Agent-Oriented Software Engineering
Agent Modeling Tools Methodologies Reuse in Agent Software
Future Directions
April 15, 2005 Department of Computer Science, BYU (14)
Methodologies
Methodologies based on agent theory Extensions of object-oriented
methodologies Methodologies based on knowledge
engineering Hybrid methodologies
April 15, 2005 Department of Computer Science, BYU (15)
Methodologies Based on Agent Theory
Provides more support for agent aspects than other approaches
Lacks maturity and support outside of research labs
April 15, 2005 Department of Computer Science, BYU (16)
Methodologies Based on Agent Theory
Exiting methodologies GAIA [ZJW03]
• Conceptualizes a multi-agent system as a society
• Covers only analysis and design phase
Others • ROADMAP [JPS02],
• Tropos [GMP02], and
• SODA [Omi01]
April 15, 2005 Department of Computer Science, BYU (17)
Extensions of Object-Oriented Methodologies
Rationale Similarities between agents and objects
• Both paradigms use message passing for communication
• Agents can be thought of as active objects
Object techniques well understood by engineers Using these techniques accelerates agent use in
industry
April 15, 2005 Department of Computer Science, BYU (18)
Extensions of Object-Oriented Methodologies
But these methodologies do not address many agent aspects Mental states Social dimensions
April 15, 2005 Department of Computer Science, BYU (19)
Extensions of Object-Oriented Methodologies
Existing methodologies MaSE [WD01]
• Leads engineers from specification to implementation
• Covers many phases: capturing goals, applying use cases, …
Others• PASSI [CP02]
• Prometheus [PW02]
April 15, 2005 Department of Computer Science, BYU (20)
Methodologies Based on Knowledge Engineering
Rationale Agent knowledge can be considered as a
knowledge acquisition process Acquired experience in knowledge engineering
can help expedite introducing agent technology to industry
Do not address many agent aspects Social aspects Reactive and proactive behaviors
April 15, 2005 Department of Computer Science, BYU (21)
Methodologies Based on Knowledge Engineering
MAS-CommonKADS [IMGV98] Incorporates aspects from knowledge engineering
and object technology Covers the following phases:
• Conceptualization: obtaining a preliminary description of the problem
• Analysis: agent model, task model, expertise model …
• Design: design model
April 15, 2005 Department of Computer Science, BYU (22)
Hybrid Methodologies
General-purpose methodologies may be infeasible
Each methodology has strengths and weaknesses
Integrating strong features from different methodologies may produce a better methodology
April 15, 2005 Department of Computer Science, BYU (23)
Hybrid Methodologies
Two approaches Skeleton methodology (integrates two methodologies)
[JSW02]• The core of skeleton has six models from both methodologies
• Can model systems with low agency needs
• Optional models are available when more agency required
Modular methodology [JSMM03]• Promotes the use of more than methodology
• Depends on the notion of software engineering feature
• Add features from different methodology as needed
April 15, 2005 Department of Computer Science, BYU (24)
Other Approaches
A three level technique to build multi-agent systems [HGR03] Phases:
• Three models: role model, agent model, and object model• Meta-model for each level along with a translator to next level
A one-process model technique to build multi-agent systems [KR02] Simplifies obtaining requirements Relies on one model—process model
April 15, 2005 Department of Computer Science, BYU (25)
Outline
Software Engineering Agents Agent-Oriented Software Engineering
Agent Modeling Tools Methodologies Reuse in Agent Software
Future Directions
April 15, 2005 Department of Computer Science, BYU (26)
Reuse in Agent Software
Researchers have identified many patterns [Lin02,GL04] such as Interaction patterns Organizational Patterns Role patterns
Each pattern is described by a schema A collection of aspects that fully capture a
software pattern
April 15, 2005 Department of Computer Science, BYU (27)
Outline
Software Engineering Agents Agent-Oriented Software Engineering
Agent Modeling Tools Methodologies Reuse in Agent Software
Future Directions
April 15, 2005 Department of Computer Science, BYU (28)
Future Directions
Openness No good support for open systems More specialized methodologies are required
Semantic web Engineering semantic web services Users (not software engineers) will design their
applications• Library of ready-to-use, high-level components• Methodologies to guide users to configure components• Generation of agents on-the-fly, as needed to perform services