Quick Prototyping and Simulation with the INGENIAS Agent Framework Jorge J. Gomez-Sanz Carlos Rodrı́guez Fernández Juan Pavón Facultad de Informática Facultad de Informática Facultad de Informática Universidad Complutense Universidad Complutense Universidad Complutense Madrid, Spain Madrid, Spain Madrid, Spain Email: jjgomez@sip.ucm.es Email: carlosrodriguez@computer.org Email: jpavon@fdi.ucm.es Abstract—A major nightmare of software developers is having simulations into their development cycles. However, as dis- clients claiming the delivered software is not what they expected. cussed in section VIII, more effective code generation and Developers make an extensive use of prototypes to prevent such specification-code synchronization facilities are needed. situations to occur. However, the role of simulations have not been studied enough. If an agent based simulation is intended, In this aspect, INGENIAS [5] can improve existing pro- not all existing agent oriented methodologies are capable of it. posals. INGENIAS is an agent oriented software engineering It requires code generation capabilities, round-trip features, and methodology which follows the model driven development components with predefined behaviors. This work introduces the paradigm [6]. As a result, it considers the MAS specifica- ability of the INGENIAS Agent Framework to simulate MAS tion as the main product of the development and provides specifications and how this can be useful for for agile development of agent-based applications. tools to transform this specification into executable code. INGENIAS takes advantage of the INGENIAS Development I. I NTRODUCTION Kit for producing fully functional systems [7]. Within this kit, there is a distinguished module, the INGENIAS Agent A software development needs to verify the system under Framework which determines how to interprete the MAS construction satisfies a client needs. Requirements engineering specification using as target platform JADE. This module is has contributed strongly to the solution by guaranteing the complemented with the Code Uploader and the AppLinker requirements are properly captured and processed. Software modules that provide round-trip engineering features, i.e., they development processes have been modified to include the upload changes made in the code back into the specification. ideas of incremental development (segmenting the system This paper discusses how INGENIAS can make use of the functionality into coherent pieces and ordering them so that simulation concept in order to develop a software system. The their sequential/paralell realisation leads to the final system), discussion bases in the features provided by the INGENIAS iterations (miniprojects focusing on the development of a Agent Framework, which is introduced in section II. The way concrete piece of functionality of the application). Expected this software can be used to simulate is introduced in section products from this development process include several types III. The introduction of the case study concerns to section IV. of documents aiming to communicate with the client and tell The INGENIAS solution to the case study is made in section them what is being done; and acceptance tests, to ensure the V. The simulation made in this case study itself is introduced behavior of the application is the one expected. Despite these in section VI and evaluated in section VII. The related works avances, prototyping seems to be a recurrent option. are presented in section VIII. Finally, section IX introduces Prototypes [1] have been extensively used as a effective the conclusions. mean of showing results to the client and for experimenting with part of the functionality the client demanded. However, II. T HE INGENIAS AGENT F RAMEWORK the development of a prototype is incomplete without a proper IAF stands for the INGENIAS Agent Framework. It is a environment that resembles the platform where the software framework developed along several years that enables a full will be deployed. Hence, essaying with different software model driven development. This means that a developer can architectures or showing a client how the software is expected focus most of its effort in specifying the system, converting a to behave is expensive. great deal of the implementation in a matter of transforming In this scenario, agent technology has been recognised automatically the specification into code. This IAF permits as an affordable mean for producing prototypes and define to combine the classic approach for coding applications with simulations [2]. Nevertheless, actual prototyping and simula- modern techniques of automatic code generation. The resulting tors are built ad-hoc. The facilities needed to facilitate rapid system is almost fully operational, reducing the amount of application development where a simulation is required are work of the developer in an relevant degree. Each produced not present in most agent oriented methodologies. Remarkable MAS works over the JADE platform. Hence, additional tools exceptions are ADELFE [3] and PASSIM [4], which integrate existing for this framework can be applied as well. A MAS in the IAF is constructed over the JADE platform. the system-to-be are included as well, reusing directly pre- The MAS can be distributed along one or several containers dedefined behaviors from the IAF. in one or many computers. To enable this feature, the IAF has means of declaring different deployment configurations. A. Simulating the internals of the application The running MAS will be connected to several non-agent The IAF provides built-in predefined behaviors which can applications providing the basic services. Hence, if the MAS be used to simulate parts of the application. They are intro- has to interact with a user, there will be GUIs producing duced following: events according to user actions, and defining actuators for agents. These GUIs will be specified as applications at the • Task Raw simulation. The developer defines no specific specification level. code for tasks, assuming the default behavior of tasks An important feature of the IAF is the relevance of in- in the IAF. This behavior consists in consuming/reading teractions, which are considered first class citizens during the information declared as input and producing all the specification and coding. An interaction in runtime is called outputs declared in the specification. All produced in- a conversation. The interactions according to the IAF have stances of information entities are empty. This means that the main purpose of transferrring information from one agent if an information entity has attributes, its instances will to another. This information transfer is ruled by timeouts see these attributes exist, though they have empty values. and initiation/colaboration conditions. Also, interactions can Also, when a task creates an instance of an interaction, be aborted due to failures in the communication or simply i.e., a conversation, the collaborators will be chosen because an agent did not answer within the timeout. Finally, randomly among existing valid ones (a valid agent type or the software code realising interactions consider cases where a valid agent role according to the interaction definition). there may be several actors of the same time, i.e., supports the If one collaborator is defined as having cardinality greater deliver of information to several recipients and the reception than one, then multiple agents satisfying the requirements of the answer from several agents at the task level. from the concrete interaction specification are chosen and incorporated automatically. Tasks are important as well. An agent chooses to schedule • Application Raw simulation. The applications are wrap- a task for execution because the agent wants to attain a pers for non-agent software. The default code produced pursued goal. The tasks influence in the mental state by re- for such instances of applications does nothing. Neverthe- moving/adding information, starting conversations with other less, if the specification declared a certain event has to be agents, or modify already existing conversations. Tasks support produced from the application, then the IAF generates a cardinality attributes associated to the inputs, so a task can use GUI from which the user can trigger the generation of an as input all instances of a certain information type or just a instance of the expected event. This new instance would few. be incorporated automatically into the mental state of the Custom deployments permit the developer to define which agent owning the application. If the specification declares types of agents will be used and what individual mental state an application type is owned by certain agent type, then will have during the start-up. This feature allows the developer an instance of an application can be accesible only to an to define different configurations of the system so that the instance of the agent type or to multiple instances of the developer can observe the behavior of the MAS under such agent type (this is implemented by means of a singleton conditions. pattern [8]). This is useful to represent shared resources Testing is a recent addition to the IAF. A developer can and communication through the environment. In the later define at the specification level what tests will be performed case, one agent performs an action over the application and to what configuration of MAS will be applied. The that triggers an event which is passed to all agents owning detailed definition of the test has to be handcrafted, though the application. there are some software libraries that make this work easier. • Interaction Raw simulation. For each agent capable of initiating a conversation, the IAF generates a basic III. B UILDING A SIMULATION WITH THE INGENIAS GUI that can trigger this conversation without having AGENT F RAMEWORK a task launching it. The conversation may not progress In general, there are two approaches for simulation using if the corresponding information that should be deliv- the IAF: simulating the environment or simulating the envi- ered/received does not exist. Therefore, a simulation of ronment and the application. In the first, MAS infrastructure is the interactions must be accompanied with a specialized provided in order to represent different elements of the target deployment where the initial mental state of involed runtime environment. Therefore, there is external software (the agents satisfies the requirements of the interaction at the one recently developed and whose behavior is to be verified) specification level. and the environment built with a MAS. The external software Using these pre-defined behaviors, the developer models the would be docked to the MAS based environment by means internals of the application using an agent oriented method- of application entities. In the second, not only the elements ology, like INGENIAS, and proceeds to observe how the of the application environment are provided, but parts of resulting MAS behave. The simulation can get closer to the actual intended software It is an application in other case. Being an application means by customizing more the behavior of the elements: an API is offered and that this API can be used within the tasks • Adding custom code to the tasks in the MAS. Instead of the agent. Optionally, the application is expected to produce of the default behavior (consuming input entities and events in order to notify agents of changes. As explained in the creating new ones in the output), a developer can code previous section, these events can be asserted within a single more concrete behavior, like using existing APIs from ap- or multiple owners. plications to perform actions or detail which collaborators The external software (software which already exists before a conversation will have. This new code is inserted into the current MAS is developed) is wrapped into applications. a code component entity and used to replace the code in Generated code for applications will act as a mediator [8] the generated task. These changes are maintable throught between the generated MAS and the external software. The he use of the code uploader module of the INGENIAS initialization code for applications will be used to connect the Development Kit, which migrates changes made to tasks mediator with the external software, while the shutdown code into existing code components in the specification. will do the opposite. These appliciations should offer the same • Adding initialization/shutdown code for applications. API the external software does. If there are multiple APIs, This code permits to properly construct/shutdown the ap- a developer can choose to merge all of them into a single plication knowing during creation/shutdown time which application or creating multiple applications holding each one agent will be assigned to it. This way, an application separately. acquires a reference to its agent or agents. Most likely, there will be agents representing the different • Modifying the API of the application code and providing types of users in the system, which could be humans or not. a body to the methods. An application can be coded ad- A developer will define a certain role capturing the generic hoc for a concrete development or act as mediator [8] to behavior expected from that user. This behavior is supposed some external software (e.g. a database or some existing to be assumed by a agent or specialised by another role. GUI). The API is synchronized with the specification Assuming there is a role with a task X having as input an by means of the AppLinker module of the IDK. This entity type Y, the specialization can happen as follows. First, module analyzes the generated code of already generated an agent can define a task XX having as input the entity Y. applications looking for changes in the API with respect This will cause tasks XX will be executed instead of tasks X. to the API stored in the specification. Differences are Second, a new role extending the original role can be defined. merged automatically so that the API in the specification This new role, can define a task XXX having as input the is the same. This way, a developer can either modify the entity Y. This will cause tasks XXX are executed before the specification and let the system regenerate the code, or task X. In both cases, when task XX or XXX is executed, they, modify the API in the code and upload the new methods probably, will remove entity Y from the mental state, aborting to the specification. this way any possible execution of previously scheduled X The degree of customization is a decision of the developer. tasks. The resulting MAS can become the intented system or remain With these two ways of capturing behaviors, a developer as a proof that the MAS specification is valid for the problem. can create populations of users with varying behaviors. The In the first, case, the specification and the customization of resulting agents will perform actions over the existing appli- the generated code would progress towards the final system. cations, which are supposed to be connected to the software In the second case, the developers would decide to realize the system currently under execution. specification into a different agent platform or just reuse the acquired knowledge to be used within another methodology C. Analysing a simulation run (agent oriented or not). Once the MAS is defined, it is time to perform different The IAF recognises automatically generated code, manually runs of the system. The user can inspect visually the results by maintained code, and a hybrid mixture of both. All of them means of the IAF default GUI. Nevertheless, it is convenient exist into separated folders. Hence, a developer can work to make use of a more exhaustive and objective analysis by safely in the src folder, creating clasess regularly; delete safely means of studying the system logs. The INGENIAS Agent the content of gensrc folder knowing that it can be completely Framework produces logs with the produced events in a system generated from the specification; or customize the content run, so that they can be inspected and accounted later on. of permsrc folder knowing that changes made will not be Registered events are: overwritten by sucessive code generation requests. • A task has been scheduled. The id and type of the task, B. Simulating the environment as well as the id of the agent, are provided Once key elements to be simulated are identified, a de- • A new piece of information is added/removed to/from the veloper can represent them as agents or as applications. It agent mental state. The id and type of the entity as well is an agent when its behavior of the simulated entity can as the id of the agent are provided. be captured with goals and tasks and the execution of the • A task has been executed. The id and type of the task, corresponding tasks corresponds to the achievement of goals. as well as the id of the agent, are provided • A task has been aborted. The id and type of the task, the researchers investing effort in providing good information expected inputs that were missing, as well as the id of sources would potentially increase the quality of the produced the agent, are provided results. Similarly, controlling more bad suggestors allows to • A conversation has been started. The id of the conversa- keep the quality degree. tion, the interaction type, collaborators, and the id of the The development of Technological Watch system follows launcher agent, are provided recommendations from the UNE 166006:2006 EX [10]. This • An agent decides to participate into an requested con- normative provides a set of requirements, but no APIs or versation. The id of the conversation, the interaction formal definitions. One of the recommendations consists in type, collaborators, and the id of the launcher agent, are qualifying information sources with some attributes, which provided are are highly related to the reputation and trust models well • A message has been delivered. The id of the message, its known in the agent literature. These attributes are supposed content, sender and receivers are provided to be managed by humans, what means necessarily increasing Each event is marked with a timestamp (24 hour format and the amount of work of operators. milliseconds format) obtained from the same hardware clock. Therefore, this case study to what extent reputation and trust Therefore, this timestamp should not be used as a reference models can be integrated in a Technological Watch System. to compare logs produced into different physical machines. The question is how such functionality can be integrated, i.e., By properly interpreting each task, the developer can pro- are new components needed? is it enough with modifying the duce graphics similar to those frequently found in conventional responsibilities of existing components? simulations. For example, a task Y is designed to peform a This evaluation has required building a prototype dealing payment through paypal in ebay after a succesfull auction. with three basic scenarios corresponding to the use case By accounting the times this task was executed, and using Manage quality of information sources by means of reputation timestaps, it can be generated a graphic of the number of and trust models: finished auctions through a determined period of time. • A low quality information source proposal made by a collaborator with low reputation in general IV. T HE CASE STUDY • A high quality information source proposal made by a Technological advances are increasing with time. The vol- collaborator with high reputation in general ume of scientic publications patents, research projects, tech- • A low quality information source proposal made by a nology news and related international standards of tech- collaborator agent subject of bad reputation on behalf a nology is in continuous increase. This makes available to supervisor agent which has witnessed past requests from researchers, R+D organizations, and industry in general, a the same agent. huge amount of information to analyze for their projects The development made focuses in the first scenario. and strategies. Technology Watch Systems are involved in processing of all information tech- nology environment to V. D EFINING WITH INGENIAS extract knowledge, such as identifying trends and changes. In the long term, the developed MAS aims to discover what This case study focuses on the management of quality of kind of agents are required in order to have a population information sources within a Technology Watch System. representative of a real scenario. Also, As it is now, it serves to Technological watch is a tool used wihtin Competitive experiment with the necessary protocols for integrating a trust Intelligence. Competitive Intelligence is the legal obtention, model in the information sources management mechanisms. analysis, distribution of information about a competitive envi- As figure 1 shows, there are four groups of agents in the ronment, including strong and weak points as well as the inten- organization responsible of technological watch services. tions of competitors [9]. Technological watch is an organized, • Collaborators. They are agents which propose new in- selective and permanent process for information gathering formation sources. These agents can be a human operator scientific and technological information coming from in and representative or, directly, an agent that does not require out the organization; selecting it; analyzing it; distributing it; a human operator. and commnunicating it; to convert it into knowldge supporting • Supervisors. They are resposible of deciding how to decision making activities with lower risk and being able to evaluate proposals from the collaborators.The evaluation anticipate changes [10]. itself is performed by agents belonging to the Test Team. In an organization dedicated to R+D, clients of a Techno- • Test Team. They assign a quality value to an information logical Watch are research groups. These researchers, gener- source prior to its incorporation into the system. They do ally, have already located relevant information sources to be this by pretending the source is already incorporated and watched. Therefore, researchers are a potential suppliers of starting to use it with some predefined queries. Also they information sources. If the system was feeded with bad quality can request human expert evaluations. information sources, the system would supply results with • Operations Team. They watch accepted information noise causing the analyses to be inadequate or wrong. This sources and other technological watch services. There problem suggests the system should not accept all suggested are agents within this group who are in charge of in- information sources. In fact, giving more relevance to those specting accepted information sources. They maintain Fig. 2. Tasks assigned to a Supervisor Fig. 3. Description of the task which process an information source proposed Fig. 1. Organization responsible of Technological Watch updated information about the quality of the sources. This evaluation is used later to compute the trust degree of collaborators. The MAS developed uses the REGRET trust model [11], making two simplifications. All supvervisors have a credibility Fig. 4. Definition of the deployment for the test of 1 and only reputation information from witness will be taken into account. Focusing on a SupervisorRole, this role has as goal keeping Task ProcessReceivedProposalTask (fig. 3) is activated the system with high quality information sources. The capa- when the fact SourceProposed is found. The SourceProposed bilities of this role are expressed as tasks (fig. 2): fact comes in the proposal message of the PerformProposal • ProcessReceivedProposalTask. The agent can process conversation. This task makes decisions about what filters proposal from collaborators. apply to the proposal as follows: • AddSourceIntoSystemTask. The agent can add accepted • Reject the proposal because the collaborator has at- information source into the system. This task also in- tempted too much to add information sources with low cludes the request of quality inspection for the accepted quality. The task produces the RejectedProposal fact to information source. be sent as response in the reject-proposal speaking • RequestAlphaQualityInspectionTask. The agent can re- act of the PerformProposal conversation. quest alpha quality inspection to inspectors. “Alpha qual- • Request an alpha quality inspection for the information ity inspection” means making a quality inspection without source in order to obtain quality information in some adding the information source into the system to be criterias. It is because the supervisor doesn’t trust in watched. the collaborator about the quality (in some criterias) • ProcessAlphaQualityInspectionResultTask. The agent of information sources which he usually proposes. The can process the results of alpha quality inspections. objetive behind is to apply the selected filters, that is, If • ProcessQualityInspectionResultTask. The agent can the information source has the quality value (in a specific process the results of quality inspections. criteria) less than the minimum quality value permited (in VII. E VALUATION After developing this prototype, a greater knowledge of the problem has been acquired. Using INGENIAS, generic information exchanges were depicted, detailing the informa- tion exchanged and having some wired code dealing with its transformation. The development time was reduced to a minimum, one person for one weeks at full time (eight hours a day). Taking into account that the actual Technological Watch system has been developed for two years, this seems a reasonable price for having an accurate specification of the problem. Also, Fig. 6. Information source acceptance/rejection ratio incorporating the produced system as an add on to the real system remains a possibility. The simulation of the environment was straightforward to the specific criteria), then reject the proposal. Otherwise, produce. Since the protocols were already established, it was accept the proposal. The task produces the SourceTo- known what information the system was expecting from the Prove fact to indicate the request. users. So, defining GUI agents interfacing with real human • Request the adding of the information source into the operators or agents pretending to act directly with the system system to be watched. The proposal is accepted because was easy. From here, deciding the kind of agents to deploy and the supervisor trust in the collaborator. The task produces their specific features, was a matter of depicting an ingenias the SourceToProcess fact to indicate the request. deployment entity. The degree of reusability is not known yet. The model was The TrustInformations fact has the information about trust- concluded recently and it is currently under the evaluation ing of all collaborators who have made proposal to the of other partners in the project. Should the specification be supervisor. accepted, the ideas woud be incorporated into production, modifying the current Technological Watch system being used. VI. S IMULATING VIII. R ELATED WORK Figure 5 shows the GUI of the developed system where The current state of art of agent oriented software engineer- different actions can be triggered to run the basic scenarios. ing methodologies shows only a little number of methodolo- The log corresponds to these sequence of actions. First, the gies permitting to produce directly code and perform the kind Collaborator makes a proposal of a information source with of simulations made with INGENIAS. Methodologies like regular quality.The Supervisor #0 applies the filter, it’s mean, MaSE [12] or Prometheus [13] are capable of code generation. request an alpha quality inspection to the Alpha Inspector. Nevertheless, they intend to produce fully functional systems Also, The Supervisor #0 requests reputation information to the everytime and do not conceive the use of simulations as Supervisor #1, and the later response with the reputation infor- part of the development. In the case of Prometheus, code mation which has a high reliability. The Supervisor #0 accepts generation is a recent incorporation so its effective use to the proposal. Second, the Collaborator makes a new proposal produce MAS automatically is still under study (there is a with low quality. The Supervisor #0 doesn’t trust (trust degree plugin but the documentation for its use has not been update information with high reliability) in the Collaborator, then the as of today). In the case of MaSE, code generation has agent decides to apply the filter to the proposal, and finds that been integrated since the methodology was born. Systems are the proposal has low quality and must be rejected. specified almost completely from the tool. Nevertheless, the The simulation of the system leads to a log of several customization of the produced code is not as effective as in megabytes of information. By filtering the content, and fo- INGENIAS. A developer in INGENIAS will find several tools cusing in the production of AcceptedProposal entities, Reject- to synchronize the produced code with the specification. In edProposal entities, and SourceProposal, it is straightforward MaSE, this possibility does not exist. to obtain a list of events which tell when such entities are ADELFE [3] bases on several simulation platforms, one incorporated into each individual agent mental state. These en- of the most recent is SeSAm. The behavior of agents within tities are representative of a rejection, acceptance, and proposal SeSAm is made by means of activity diagrams, permitting the of new information sources. Hence, accounting occurrences, developer to express a variety of possible agents. Nevertheless, one can determine the performance of the system. As figure the production of a SeSAm specification is achieved manually 6 indicates, there are rejected sources and accepted sources. using ADELFE concepts. This complicates the synchroniza- Hence, the rejection mechanisms are used. Nevertheless, it tion of both the problem specification and the simulation, would be necessary to determine if the rejections should something that does not occur with INGENIAS and the IAF. actually happen, something not accounted here. Besides, the effort for defining an agent is lower in INGE- Fig. 5. Agent learns not to trust in another agent by direct experience and reputation NIAS. Doing the same in SeSAm implies manually modifying ACKNOWLEDGMENT the SeSAm agent template to incorporate the activities. We acknowledge support from the project Agent-based PASSIM [4] uses state-chart based simulation to validate Modelling and Simulation of Complex Social Systems and produce protypes. The formalism used to describe the (SiCoSSys), supported by Spanish Council for Science and system to simulate is Distilled StateCharts. The translation Innovation, with grant TIN2008-06464-C03-01. Also, we ac- between design concepts and simulation concepts is semi- knowledge the funding from the Programa de Creación y Con- automatic. There is a first stage which produces the skeleton solidación de Grupos de Investigación UCM-Banco Santander and a second stage that requires human intervention to refine for the group number 921354 (GRASIA group). the code. Simulation in PASSIM concerns the whole system. In the work introduced in this paper, the simulation generation R EFERENCES is automatic and its content can concern the whole application [1] M. Schrage, “Cultures of prototyping,” pp. 191–213, 1996. [2] M. Luck, P. McBurney, and C. Preist, “A manifesto for agent technology: or only its environment. Also, INGENIAS provides means to Towards next generation computing,” Autonomous Agents and Multi- integrate with external applications, where PASSIM does not. Agent Systems, vol. 9, no. 3, pp. 203–252, 2004. INGENIAS simulation agents base on the BDI paradigm and [3] C. Bernon, M. P. Gleizes, and G. Picard, “Enhancing self-organising emergent systems design with simulation,” in ESAW, ser. Lecture Notes are coded that way. In PASSIM, the coding corresponds to the in Computer Science, G. M. P. O’Hare, A. Ricci, M. J. O’Grady, and statechart formalism. Like in SeSAm. O. Dikenelli, Eds., vol. 4457. Springer, 2006, pp. 284–299. [4] M. Cossentino, G. Fortino, A. Garro, S. Mascillaro, and W. Russo, “Passim: a simulation-based process for the development of multi-agent IX. C ONCLUSION systems,” IJAOSE, vol. 2, no. 2, pp. 132–170, 2008. Prototyping and simulations are two ways of clarifying [5] J. Pavón and J. J. Gómez-Sanz, “Agent oriented software engineering with ingenias,” in CEEMAS, ser. Lecture Notes in Computer Science, system requirements and experimenting with different ap- V. Marı́k, J. P. Müller, and M. Pechoucek, Eds., vol. 2691. Springer, proaches in a domain problem. Prototypes are expendable and 2003, pp. 394–403. simulations, depending on the support tool, are expendable [6] J. Pavón, J. J. Gómez-Sanz, and R. Fuentes, “Model driven development of multi-agent systems,” in ECMDA-FA, ser. Lecture Notes in Computer as well. A simulation performed with SeSAm, for instance, Science, A. Rensink and J. Warmer, Eds., vol. 4066. Springer, 2006, cannot be used as a final product to be delivered to end pp. 284–298. users. Hence, an approach permitting prototyping, creating [7] J. J. Gómez-Sanz, R. Fuentes, J. Pavón, and I. Garcı́a-Magariño, “Ingenias development kit: a visual multi-agent system development simulations, and reduce costs in producing both, would be environment,” in AAMAS (Demos). IFAAMAS, 2008, pp. 1675–1676. welcome. [8] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley INGENIAS can provide such services. In INGENIAS, Professional, January 1995. with the aid of the INGENIAS Development Kit and the [9] K. Conttrill, “Turnin Competitive Intelligence into Business Knowl- INGENIAS Agent Framework, it is possible to experiment edge,” Journal of Business Strategy, vol. 19, Julio/Agosto 1998. [10] AENOR, “UNE 166006:2006 EX: Gestin de la I+D+i: Sistema de different configurations of a MAS investing little effort. Also, Vigilancia Tecnolgica,” UNE, Final, 2006. it is possible to create artificial environments where there are [11] J. Sabater, “Trust and Reputation for agent societies,” PhD Thesis, simulated human operators or external agents interacting with Universitat Autnoma de Barcelona, 2003. [12] J. C. Garcia-Ojeda, S. A. DeLoach, and Robby, “agenttool iii: From the developed system. The result of the experimentation is a process definition to code generation,” in Proceedings of the 8th In- MAS specification capturing the requirements of the client, ternational Conference on Autonomous Agents and Multiagent Systems, whose interpretation can be inspected visually by the client; 2009, pp. 1393–1394. [13] L. Padgham, J. Thangarajah, and M. Winikoff, “Auml protocols and code and a MAS obtained automatically from the specification, generation in the prometheus design tool,” in AAMAS, E. H. Durfee, which can be used as prototype or as final system, depending M. Yokoo, M. N. Huhns, and O. Shehory, Eds. IFAAMAS, 2007, p. on the needs of the development. 270.