Knowledge-Based Systems 21 (2008) 604–611
Contents lists available at ScienceDirect
Knowledge-Based Systems journal homepage: www.elsevier.com/locate/knosys
A knowledge-based tool for multi-agent domain engineering Rosario Girardi *, Adriana Leite ´s-MA, Brazil Federal University of Maranhão, Av. dos Portugueses, s/n, Campus do Bacanga, CEP 65080-040, São Luı
a r t i c l e
i n f o
Article history: Received 19 March 2007 Accepted 21 March 2008 Available online 4 April 2008 Keywords: Knowledge-based systems Multi-agent domain engineering Multi-agent systems Ontologies
a b s t r a c t Ontologies provide an unambiguous terminology that can be shared by all involved in a software development process. They can also be as generic as needed allowing its reuse and easy extension. These features turn ontologies useful for representing the knowledge of software engineering techniques and methodologies, and an appropriate abstraction mechanism for the specification of high-level reusable software artifacts like domain models, frameworks and software patterns. This work describes ONTOMADEM, a conceptualization of MADEM (‘‘multi-agent domain engineering methodology”), a software development methodology for multi-agent domain Engineering. The ontology is used as a knowledgebased tool for capturing and representing the products of a multi-agent domain engineering process, created through the instantiation of its hierarchy of classes. Ó 2008 Elsevier B.V. All rights reserved.
1. Introduction A significant contribution of the knowledge engineering discipline to the software engineering one comes from techniques and formalisms for knowledge representation and ontology development. An ontology is usually defined as the specification of a conceptualization [23], a simplified, abstract way of perceiving a segment of the real world as a set of objects and their relationships, as well as the terms used to refer to them and their agreed meanings and properties. This specification is formal, i.e. can be processed by a computer system; it is explicit, i.e. concepts and constraints are previously and explicitly defined; it is sharable, i.e. it relates to consensual knowledge accepted by a group and is used by more than one individual. Ontologies are frequently formalized with knowledge representation structures, e.g. frame-based systems where concepts are represented in frames and relationships between concepts as frame slots. Thus, they can be available in knowledge bases where concepts are semantically related allowing effective searches and inferences thus facilitating their understanding and reuse. Ontologies provide an unambiguous terminology that can be shared by all involved in a software development process. They can also be as generic as needed allowing its reuse and easy extension. These features turn ontologies useful for representing the knowledge of software engineering techniques and methodologies, and an appropriate abstraction mechanism for the specification of high-level reusable software artifacts like domain models, frameworks and software patterns [14,15,18,20,12]. * Corresponding author. E-mail addresses:
[email protected] (R. Girardi),
[email protected] (A. Leite). 0950-7051/$ - see front matter Ó 2008 Elsevier B.V. All rights reserved. doi:10.1016/j.knosys.2008.03.036
This work describes ONTOMADEM, a conceptualization of MADEM (‘‘multi-agent domain engineering methodology”), a software development methodology for multi-agent domain engineering [15,16]. The MADEM methodology integrates techniques for domain analysis, domain design and domain implementation: GRAMO (‘‘generic requirement analysis method based on ontologies”), DDEMAS (‘‘domain design technique of multi-agent systems”) and DIMAS (‘‘domain implementation technique of multi-agent systems”), respectively. Earlier work on GRAMO and DDEMAS has been already published [13,19]. ONTOMADEM is used as a knowledge-based tool for capturing and representing the products of a multi-agent domain engineering process, created through the instantiation of its hierarchy of classes. It integrates ONTOPATTERN [14], an ontology we have previously developed for the representation and reuse of software patterns [17]. The paper is organized as follows. Section 2 describes the conceptualization of the MADEM methodology in the ONTOMADEM ontology. Section 3 introduces how domain models and multi-agent frameworks are developed with ONTOMADEM. The semantic relationships between the modeling concepts in these products are illustrated with examples extracted from cases studies conducted to evaluate both MADEM and ONTOMADEM. Section 4 discusses the capabilities provided by ONTOMADEM for using and reusing modeling products. Section 5 concludes the paper and discusses further work being conducted. 2. The ONTOMADEM tool ONTOMADEM was developed in a two phase development process: the specification and the design of the ontology. In the specification phase, a conceptualization of MADEM was represented in
R. Girardi, A. Leite / Knowledge-Based Systems 21 (2008) 604–611
605
a semantic network. In the design phase, concepts and relationships in the semantic network were mapped to a frame-based ontology in Protégé [11]. An ontology in Protégé consists basically of frame-based classes, concepts in a domain organized in a taxonomic hierarchy; slots, which describe properties of classes and instances; facets that describe slots properties and allow for the specification of restrictions in the values of the slots. Three main classes representing the MADEM concepts drive the design of ONTOMADEM: modeling concepts, modeling tasks and modeling products. These concepts are described in the following sections. 2.1. MADEM modeling concepts Main modeling concepts and tasks of MADEM are based both on techniques for Domain Engineering [2,8,24] and for development of multi-agent systems [5,6,9,28,30]. Fig. 1 shows part of the subhierarchy of modeling concepts of ONTOMADEM and their relationships. Their meaning is explained in the following sections. 2.1.1. Domain engineering Domain engineering and application engineering are two complementary software processes. Domain engineering, also known as development for reuse, is a process for creating software abstractions reusable on the development of a family of software applications in a domain, and application engineering or development with reuse, the one for constructing a specific application using reusable software abstractions available in the approached domain(s) [22]. A family of systems is defined as a set of existing software systems sharing some commonalities but also particular features [8]. The process of Domain engineering is composed of the phases of analysis, design and implementation of a domain. Domain analysis activities identify reuse opportunities and determine the common and variable requirements of a family of applications. The product of this phase is a domain model. Domain design activities look for a documented solution to the problem specified in a domain model. The product of this phase is composed of one or more frameworks and, possibly, a collection of design patterns, documenting good solutions in that domain. Reusable components integrating the framework are constructed during the phase of domain implementation. This is the compositional approach of domain engineering. In a generative approach, domain engineering produces domain specific languages (DSLs), and application generators that are used to construct a family of applications in a domain automating the reuse activities of selection, adaptation and composition [8,20]. A main concern in MADEM and domain engineering techniques is variability modeling for capturing and representing mandatory, alternative or optional features of domain models. Mandatory features should be present in all systems of the family while alternative and optional ones form the variable part of a model providing alternative or particular realizations of the model through its reuse in the Application Engineering process. In ONTOMADEM, common and variable features are represented in the variability slot of the modeling concepts sub-classes by instantiating the variability class associated to that slot (Fig. 2), according to the type of variability (mandatory, alternative or optional). 2.1.1.1. Agent-oriented modeling. For the specification of the problem domain to be solved, MADEM focuses on modeling concepts, goals, roles and interactions of entities of an organization. Entities have knowledge and use it to exhibit autonomous behavior. An organization is composed of entities with general and specific goals that establish what the organization intends to reach.
Fig. 1. The sub-hierarchy of modeling concepts of ONTOMADEM.
The achievement of specific goals allows reaching the general goal of the organization (reached from relationship of Fig. 3). For instance, an information system can have the general goal ‘‘satisfying the information needs of an organization” and the specific goals of ‘‘satisfying dynamic or long-term information needs”. Specific goals are reached through the performance of responsibilities (achieves relationship of Fig. 3) in charge of particular roles (in charge of relationship of Fig. 3) with a certain degree of autonomy. In the example of Fig. 3, the retriever role is in charge of the matching and similarity analysis responsibility. Responsibilities are exercised through the execution of activities (exercised through relationship of Fig. 3). The set of activities
606
R. Girardi, A. Leite / Knowledge-Based Systems 21 (2008) 604–611
satisfy the dynamic information needs of an organization. Another entity can play the role of ‘‘filter” in charge of the responsibility of executing activities to satisfy the long-term information needs of the organization. Skills can be, for instance, the rules of the organization that entities know to access and structure its information sources. Sometimes, entities have to communicate with other internal or external entities to cooperate in the execution of an activity (participates relationship of Fig. 3). For instance, the entity playing the role of ‘‘filter” may need to interact with a user (external entity) to observe his/her behavior in order to infer his/her profile of information interests. For the specification of a design solution, roles are assigned to agents (plays relationship of Fig. 3) structured and organized into a particular multi-agent architectural solution according to nonfunctional requirements.
Fig. 2. The variability class and the type of common and variable features represented in ONTOMADEM.
associated with a responsibility are a functional decomposition of it. Roles have skills on one or a set of techniques that support the execution of responsibilities and activities in an effective way (requires relationship of Fig. 3). Pre-conditions and post-conditions may need to be satisfied for/after the execution of an activity (is satisfied and satisfies relationships of Fig. 3). Knowledge can be consumed and produced through the execution of an activity (uses and produces relationships of Fig. 3). For instance, an entity can play the role of ‘‘retriever” with the responsibility of executing activities to
2.1.1.2. MADEM modeling tasks and products. Fig. 4 illustrates the phases of the MADEM methodology in the context of a multi-agent domain engineering process. Table 1 summarizes their modeling phases, respective tasks and modeling products. Domain analysis supported by the GRAMO technique approaches the construction of a domain model which specifies the current and future requirements of a family of applications in a domain by considering domain knowledge and development experiences extracted from domain specialists and applications already developed in the domain. Existing analysis patterns can also be reused in this modeling task. Domain analysis is performed through the following modeling tasks: concept modeling, goal modeling, role modeling, variability modeling, role interaction modeling and user interface prototyping. The product of this phase, a domain model, is obtained through the composition of the products constructed through these tasks: a concept model, a goal model, a role model, a set of role interaction models and a prototype of the user interface. The Modeling of domain concepts task aims at performing a brainstorming of concepts of the domain and their relationships, representing them in a concept model. These concepts are refined in the subsequent modeling tasks. The purpose of the goal modeling task is to identify the goals of the family of systems, the external entities with which it
Fig. 3. Some relationships between modeling concepts and their instances in the ONTOMADEM ontology.
R. Girardi, A. Leite / Knowledge-Based Systems 21 (2008) 604–611
607
Fig. 4. The MADEM methodology in the context of the multi-agent domain engineering process.
Table 1 Modeling phases, tasks and products of MADEM methodology
cooperates and the responsibilities needed to achieve them. Its product is a goal model, specifying the general and specific goals of the system family along with the external entities and responsibilities. The role modeling task associates the responsibilities identified in the goal modeling task to the roles that will be in charge of them. The skills required for exercising a responsibility, the preand post-conditions that must be satisfied before and after the execution of a responsibility are also identified. Finally, the knowledge required from other entities (roles or external entities)
for the execution of activity or responsibility and the knowledge produced from their execution is recognized. This task produces a role model, specifying roles, responsibilities; activities, skills, pre- and post-conditions, knowledge and relationships between these concepts. The variability modeling task is performed simultaneously with the goal and role modeling ones. The purpose of this task is to classify goals, roles, responsibilities and skills in goal and role models as common or variable features. The role interaction modeling task aims at identifying how external and internal entities should cooperate to achieve a specific goal. For that, responsibilities of roles are analyzed along with their required and produced knowledge specified in the role model. A set of role interaction models specifying the interactions between roles and external entities needed to achieve a specific goal is constructed as a product of this task. The goal and role models provide a static view of the organization; the set of interactions models, a dynamic one. The goal of the user interface prototyping task is to identify the interactions of the users with the system and simulate them in a prototype. Domain design supported by the DDEMAS technique approaches the architectural and detailed design of multi-agent frameworks providing a solution to the requirements of a family of multi-agent software systems specified in a domain model. It consists of three sub-phases: the multi-agent society knowledge modeling sub-phase, which identifies and semantically represents the concepts shared by all agents in their communication; the architectural design sub-phase, that establishes an architectural model of the multi-agent society including its coordination and cooperation mechanisms; and the agent design sub-phase, that defines the internal design of each agent, modeling its structure and behavior. Domain implementation supported by the DIMAS technique approaches the mapping of design models to agents, behaviors and communication acts, concepts involved in the JADE framework [3], which is the adopted implementation platform. An implementation model of the multi-agent society is constructed as a product of this phase of MADEM, composed of a model of agents and behaviors and a model of communication acts. Some examples on the conceptualization of MADEM modeling tasks and products in the ONTOMADEM ontology is illustrated in
608
R. Girardi, A. Leite / Knowledge-Based Systems 21 (2008) 604–611
Figs. 5 and 6. Fig. 5 shows the classes and relationships between modeling tasks of the domain design sub-phase in the ONTOMADEM ontology. Fig. 6 illustrates the classes and relationships between modeling products of the domain model. Fig. 7 describes an example of the semantic relationships between modeling concepts in a particular modeling product. The modeling concepts represented in a multi-agent society model are: agent, responsibility, knowledge, condition and skill. One or more responsibilities are performed by an agent. The exercise of responsibilities require skills, knowledge, and, perhaps, the satisfaction of pre-conditions. They also produce knowledge and can satisfy postconditions. This figure also shows the semantic relationships between some instances of modeling concepts and products. For instance, the interface agent is part of the multi-agent society model of the ONTOWUM-DD framework model which performs, between others, the user monitoring responsibility [27]. 3. Constructing domain models and multi-agent frameworks with ONTOMADEM In ONTOMADEM, modeling products are generated through the instantiation of the corresponding modeling tasks, modeling products, and modeling concepts classes. For instance, as it is illustrated in Fig. 8, the construction of a domain model requires the subsequent instantiation of the sub-classesdomain analysis of the modeling tasks class and domain model of the modeling products class; then, the instantiation of each class representing a subtask of the domain analysis class (concept modeling, goal
modeling,role modeling role interaction modeling and user interface prototyping); finally, the instantiation of each class representing a product composing a domain model (concept model, goal model, role mode, role interaction models and prototype of the user interface). A graphical notation has been defined in MADEM for the representation of each modeling product [15]. This notation is supported in ONTOMADEM by the GraphWidget capabilities of the Protégé environment. This facilitates not only the instantiation process but also contributes for reducing the complexity of the modeling tasks allowing the visualization, decomposition and refinement of the modeling products. For instance, the graphical notation of a role model is partially illustrated in Fig. 8. Several domain and design models have been constructed in order to evaluate both MADEM and ONTOMADEM. Early work includes developments in the tourism and legal domains. More recently, we have developed two families of multi-agent systems: one that approaches the problem of providing personalized web services through usage mining [15] and another one supporting the development of applications for web information retrieval and filtering. ONTOWUM-DM, a domain model describing the common and variable requirements of a family of multi-agent applications for providing personalized web services through usage mining is described in [15]. ONTOWUM-DD, a multi-agent design solution to the requirements specified in ONTOWUM-DM, is introduced in [27]. In [17], a system of software patterns extracted from this development experience is described.
Fig. 5. Classes and relationships between modeling tasks of the domain design sub-phase in the ONTOMADEM ontology.
Fig. 6. Classes and relationships between modeling products of the domain model in the ONTOMADEM ontology.
R. Girardi, A. Leite / Knowledge-Based Systems 21 (2008) 604–611
609
Fig. 7. An example of the semantic relationships between modeling concepts in a multi-agent society model.
Once instantiated, ONTOMADEM becomes a knowledge base where concepts in modeling products are semantically related, and, therefore, queries and inferences through logical reasoning can be done to facilitate the understanding and reuse of modeling products. 4. Using and reusing modeling products from ONTOMADEM Since retrieval is based on semantics, results from searching on modeling products and concepts in the ONTOMADEM knowledge base are more effective than the ones that could be obtained through simple keyword retrieval on instance texts. For instance, the following information need could be expressed in the query of Fig. 9, using the Algernon query language supported by the Algernon plug-in of Protégé:
‘‘Show the responsibilities that allow reaching the specific goal of ‘‘Model users through Usage Mining” along with the agents in charge of, required knowledge, and resources required to perform them”. High precision is exhibited in the results of the query. This facilitates the understanding, validation and reuse of modeling products from the ONTOMADEM knowledge-based repository. 5. Related work Some prototypes of knowledge-based tools and environments, like ODYSSEY [4] and ODE [10], have been already developed to increase the productivity of the software development process, the reusability of generated products, and the effectiveness of project
Fig. 8. An example of the instantiation process of ONTOMADEM for the creation of domain model.
610
R. Girardi, A. Leite / Knowledge-Based Systems 21 (2008) 604–611
Fig. 9. Results on semantic searching for modeling concepts and products in the ONTOMADEM knowledge base.
management. One main characteristic distinguishing ONTOMADEM from these approaches is its reuse support for agent-oriented software development. Most available development tools for the construction of multiagent systems, like JADE [3] provide support only to the implementation, debugging and deployment phases of a software development cycle. Some tools supporting the earlier phases, like PTK, begin to appear. PTK (Passi Toolkit) [7] is an add-in for the commercial UMLbased CASE tool Rational Rose. It enables the user to follow the PASSI process of analysis and design, providing a set of functionalities that are specific for each phase of the process by means of sub- and pop-up menus that appear after having selected some UML elements (classes, use cases and so on). This tool also allows the designers to perform checking operations, which are based on the correctness of single diagrams and consistency between related steps and models. Two main differences between ONTOMADEM and PTK are the support that the first one provides for the construction of the reusable products of a multi-agent domain engineering process and the ontological approach in which it is based.
activities, we are taking advantage of the integration capabilities of the JADE and Protégé development environments for the partial generation of code. We have also worked on the MAAEM methodology for multiagent application engineering [25,26], a process for the construction of specific multi-agent applications by reusing the products of the multi-agent domain engineering process. A conceptualization of this methodology is being used to extend ONTOMADEM to support a multi-agent application engineering process. Besides, the tool capabilities are being increased to allow the application of the TOD-DSL technique [20] for the construction of domain specific languages in a generative approach to multi-agent domain engineering. The MADEM process is also being formalized with SPEM [29] and a Protégé plug-in is being developed for a partial automation of the MADEM modeling tasks in ONTOMADEM based on a set of inference rules. Using an approach similar to the one described in [21] we are also working on the mapping of queries in natural language to a logic-based formalism in order to turn more intuitive and userfriendly the searches for modeling concepts and products in ONTOMADEM.
6. Concluding remarks and further work This work introduced ONTOMADEM, a knowledge-based tool for domain engineering of multi-agent systems. ONTOMADEM supports the application of the MADEM methodology for the construction of families of multi-agent applications in a problem domain. Domain models and multi-agent frameworks are represented as semantically related instances of the ONTOMADEM ontology, turning it a knowledge-based repository where precise searches and logical inferences can be done thus facilitating the validation, understanding and reuse of the available modeling products. Two main case studies have been developed to evaluate both MADEM and ONTOMADEM in the problems domains of information retrieval and filtering, recommendation systems and user modeling based on usage mining [15,27]. From the point of view of knowledge engineering for software engineering [1], ONTOMADEM contributes with an example of conceptualization of a software development methodology. The ONTOMADEM evolution is guided by the improvements we are still introducing in the MADEM methodology. Since we have adopted the JADE/JESS framework [3] for our implementation
References [1] A. Abran, J. Moore, P. Bourque, R.L. Dupuis, L. Tripp, Guide to the Software Engineering Body of Knowledge – SWEBOK, Trial Version 1.0, IEEE-Computer Society Press, May 2001, URL: http://www.swebok.org. [2] G. Arango, Domain engineering for software reuse, Ph.D. Thesis, Department of Information and Computer Science, University of California, Irvine, 1988. [3] F. Bellifemine, G. Caire, A. Poggi, G. Rimassa. JADE A White Paper. Exp v. 3 n. 3, Sept 2003. Available from:
. [4] R. Braga, C. Werner, M. Mattoso, Odyssey: a reuse environment based on domain models, in: IEEE Symposium on Application-Specific Systems and Software Engineering Technology (ASSET’99), Texas, 1999, pp. 50–57. [5] P. Bresciani, P. Giorgini, F. Giunchiglia, J. Mylopoulos, A. Perini, TROPOS: an agent-oriented software development methodology, Journal of Autonomous Agents and Multi-agent Systems 8(3) (2004) pp. 203–236. [6] M. Cossentino, L. Sabatucci, S. Sorace, A. Chella, Patterns reuse in the PASSI methodology, in: Proceedings of the Fourth International Workshop Engineering Societies in the Agents World (ESAW’03), Imperial College London, UK, 2003, pp. 29–31. [7] M. Cossentino, C. Potts, A CASE tool supported methodology for the design of multi-agent systems, in: The 2002 International Conference on Software Engineering Research and Practice (SERP’02), June 24–27, Las Vegas (NV), USA, 2002. [8] K. Czarnecki, U.W. Eisenecker, Generative Programming: Methods, Tools, and Applications, ACM Press/Addison-Wesley Publishing Co, New York, NY, 2000.
R. Girardi, A. Leite / Knowledge-Based Systems 21 (2008) 604–611 [9] J. Dileo, T. Jacobs, S. Deloach, Integrating ontologies into multi-agent systems engineering, in: Proceedings of 4th International Bi-conference Workshop on Agent Oriented Information Systems (AOIS 2002), Bologna (Italy), July 2002, pp. 15–16. [10] R.A. Falbo, G. Guizzardi, K.C. Duarte, An ontological approach to domain engineering, in: Proceedings of the XIV International Conference on Software Engineering and Knowledge Engineering (SEKE 2002), ACM Press, Ischia, Italy, 2002, pp. 351–358. [11] J. Gennari, M.A. Musen, R.W. Fergerson, et al. The Evolution of Protégé: an environment for knowledge-based systems development, Technical Report SMI-2002-0943, 2002. [12] R. Girardi, A. Lindoso, An ontology-driven technique for the architectural and detailed design of multi-agent frameworks, in: M. Kolp, P. Bresciani, B. Henderson-Sellers, M. Winikoff (Eds.), Agent-oriented Information Systems III, Lecture Notes in Artificial Intelligence, Springer-Verlag, 2006, pp. 124–139. [13] R. Girardi, A. Lindoso, DDEMAS: a domain design technique for multi-agent domain engineering, in: The Seventh International Bi-conference Workshop on Agent-oriented Information Systems (AOIS-2005) At The 24th International Conference on Conceptual Modeling (ER 2005), 2005, Klagenfurt, Proceedings of ER Workshops, LNCS 3770, Springer-Verlag, Berlin Heidelberg, 2005, pp. 141–150. [14] R. Girardi, A. Lindoso, An ontology-based knowledge base for the representation and reuse of software patterns, ACM Software Engineering Notes, New York, v. 31, n. 1, 2006. [15] R. Girardi, L. Balby, A domain model of web recommender systems based on usage mining and collaborative filtering, Requirements Engineering 12 (8) (2007). [16] R. Girardi, A. Lindoso, An ontology-based methodology for multi-agent domain engineering. in: Proceedings MASTA/EPIA 2005, Third Workshop on MultiAgent Systems: Theory and Applications (MASTA 2005) at 12th Portuguese Conference on Artificial Intelligence (EPIA 2005), Covilhã, IEEE CS Press, Los Alamitos, 2005, pp. 321–324. [17] R. Girardi, L. Balby, I. Oliveira, A system of agent-based patterns for user modeling based on usage mining, Interacting with Computers 17 (5) (2005) 567–591. [18] R. Girardi, C. Faria, L. Marinho, Ontology-based domain modeling of multiagent systems, in: Cesar Gonzalez-Perez (Ed.), Proceedings of the Third International Workshop on Agent-oriented Methodologies at International Conference on Object-oriented Programming, Systems, Languages and Applications (OOPSLA 2004), Vancouver, Canada, October 24th to 28th, 2004, pp. 51–62.
611
[19] R. Girardi, C. Faria, An ontology-based technique for the specification of domain and user models in multi-agent domain engineering, CLEI Electronic Journal 7 (1) (2004). Pap. 7. [20] R. Girardi, I. Serra, Using ontologies for the specification of domain-specific languages in multi-agent domain engineering. in: J. Grundspenkis, M. Kirikova (Eds.), Proceedings of the Sixth International Bi-conference Workshop on Agent-oriented Information Systems (AOIS-2004) at The 16th International Conference on Advanced Information Systems Engineering (CAISE’04), Riga, Latvia, June 07–11, 2004, pp. 295–308. [21] R. Girardi, B. Ibrahim, Using English to retrieve software, The Journal of Systems and Software 30 (3) (1995) 249–270. [22] R. Girardi, Application engineering: putting reuse to work, in: D. Tsichritzis (Ed.), Object Frameworks, I, CUI, Université de Geneve, Geneve, 1992, pp. 137– 149. [23] T.R. Gruber, Toward principles for the design of ontologies used for knowledge sharing, International Journal of Human–Computer Studies 43 (1995) 907– 928. [24] M. Harsu, A survey of domain engineering, Report 31, Institute of Software Systems, Tampere University of Technology, December 2002. [25] A. Lindoso, R. Girardi, An ontology-based technique for framework and pattern reuse in multi-agent application engineering, in: First Workshop on Software Engineering for Agent-oriented Systems (SEAS 2005), 19th Brazilian Symposium on Software Engineering (XIX SBES), Uberlândia, Minas Gerais, Brazil, Oct. 2005. (In Portuguese). [26] A. Lindoso, R. Girardi, The SRAMO technique for analysis and reuse of requirements in multi-agent application engineering, in: IX Workshop on Requirements Engineering, Cadernos do IME, UERJ Press, vol. 20, 2006, pp. 41– 50. Rio de Janeiro. [27] B. Marinho, A. Leandro, Multi-agent framework for usage mining and user modeling-based web personalization, Master dissertation, Federal University of Maranhão - UFMA - CPGEE, 2005. (In Portuguese). [28] J. Odell, H.V.D. Parunak, B. Bauer, Extending UML for Agents, in: Proceedings of the Agent-oriented Information Systems Workshop at the 17th National Conference on Artificial Intelligence, accepted role, AOIS Workshop at AAAI, 2000, pp. 3–17. [29] Software Process Engineering Metamodel Specification. Available from:
, Last access, March 2007. [30] M. Wooldridge, N. Jennings, D. Kinny, The Gaia methodology for agentoriented analysis and design, Int. J. Autonomous Agents Multi-agent Syst. 3 (3) (2000) 285–312.