Towards a comprehensive agent-oriented software engineering methodology
Recently, agent systems have proven to be a powerful new approach for designing and developing complex and distributed software systems. The agent area is one of the most dynamic and exciting areas in computer science today, because of the agents ability to impact the lives and work of all of us. Developing multi-agent systems for complex and distributed systems entails a robust methodology to assist developers to develop such systems in appropriate way. In the last ten years, many of agent oriented methodologies have been proposed. Although, these methodologies are based on strong basis they still suffer from a set of shortcomings and they still have the problems of traditional distributed systems as well as the difficulties that arise from flexibility requirements and sophisticated interactions. This thesis proposed a new agent oriented software engineering methodology called: Multi-Agent System Development (MASD) for development of multi-agent systems. The new methodology is provided by a set of guidelines, methods, models, and techniques that facilitate a systematic software development process. The thesis makes the following contributions: The main contribution of this thesis is to build a new methodology for the development of multi-agent systems. It is based upon the previous existing methodologies. It is aimed to develop a complete life-cycle methodology for designing and developing MASs. The new methodology is considered as an attempt to solve some of the problems that existing methodologies suffer from. The new methodology is established based on three fundamental aspects: concepts, models, and process. These three aspects are considered as a foundation for building a solid methodology. The concepts are all the necessary MAS concepts that should be available in order to build the models of the new methodology in a correct manner. The models include modeling techniques, modeling languages, a diagramming notation, and tools that can be used to analysis and design the agent system. The process is a set of steps or phases describe how the new methodology works in detail. The new methodology is built to bridge the gap between design models and existing agent implementation languages. It provides refined design models that can be directly implemented in an available programming language or use a dedicated agent-oriented programming language which provides constructs to implement the high-level design concepts such as Jadex, JADE, JACK, etc. The MASD methodology also uses an important concept called triggers and relies heavily on agent roles. The role concept is considered one of the most important aspects that represent agent behaviour. The trigger concept is also considered as an important aspect that represents agent reactivity. The new methodology captures the social agent aspects by utilizing well-known techniques such as use case maps, which enable developers to identify social aspects from the problem specification. MASD methodology is developed based on the essential software engineering issues such as preciseness, accessibility, expressiveness, domain applicability, modularity, refinement, model derivation, traceability, and clear definitions. The MASD methodology is provided by a plain and understandable development process through the methodology phases. It captures the holistic view of the system components, and commutative aspects, which should be recognized before designing the methodology models. This is achieved by using well-known techniques such as UCMs and UML UCDs. The resulting methodology was obtained by performing several steps. First, a review study “literature review” of different agent methodologies is carried out to capture their strengths and weaknesses. This review study started with the conceptual framework for MAS to discuss the common terms and concepts that are used in the thesis. The aim is to establish the characteristics of agent-oriented methodologies, and see how these characteristics are suited to develop multi-agent systems. Secondly, a requirement for a novel methodology is presented. These requirements are discussed in detail based on the three categories: concepts, models, and process. Thirdly, the new mature methodology is developed based on existing methodologies. The MASD methodology is composed of four phases: the system requirement phase, analysis phase, design phase and implementation phase. The new methodology covers the whole life cycle of agent system development, from requirement analysis, architecture design, and detailed design to implementation. Fourthly, the methodology is illustrated by a case study on an agent-based car rental system. Finally, a framework for evaluating agent-oriented methodologies is performed. Four methodologies including MASD are evaluated and compared by performing a feature analysis. This is carried out by evaluating the strengths and weaknesses of each participating methodology using a proposed evaluation framework called the Multi-agent System Analysis and Design Framework (MASADF). The evaluation framework addresses several major aspects of agent-oriented methodologies, such as: concepts, models and process.