=Paper= {{Paper |id=Vol-494/paper-46 |storemode=property |title=Quick Prototyping and Simulation with the INGENIAS Agent Framework |pdfUrl=https://ceur-ws.org/Vol-494/masspaper9.pdf |volume=Vol-494 |dblpUrl=https://dblp.org/rec/conf/mallow/SanzRP09 }} ==Quick Prototyping and Simulation with the INGENIAS Agent Framework== https://ceur-ws.org/Vol-494/masspaper9.pdf
           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.