SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
Desarrollo con el INGENIAS
          Development Kit

                     Agente Hola Mundo


                                 Jorge J. Gómez Sanz



        Dep. de Sistemas Informáticos y Programación


                       http://grasia.fdi.ucm.es
Desarrollo de agentes con el IDK
       El IDK proporciona soporte a la metodología
   
       INGENIAS
                Metodología: notación + herramientas + proceso +
            
                paradigma




UCM, 2003                              Agentes Software            2
IDK: Generación de código


      modelo                                                                    código
        modelo                                                                    código
       SMA                                                                     de agente
                                                                                    código
                                            Generador
          modelo
         SMA                                                                    de agente
                                                                                   de agente
         SMA (XML)


                                                                              Completar/Revisar
                                                                              por el programador
               plantilla de código
        plantilla de código
    plantilla de código con XML
               marcado
        marcado con XML
    marcado con XML

     Específicos de una plataforma
                                                                      Plataforma de agentes
(deben reunir los elementos de los metamodelos)



                                Ingeniería del Software Orientada a Agentes                        3
Sobre el IDK

    Se basa en un lenguaje para el modelado de SMA

        El lenguaje está expresado como un meta-modelo
    

    El lenguaje es un superconjunto de lo que reconoce

    el generador de código
        No todos los elementos son reconocidos para generar el
    
        SMA
    Se pueden construir múltiples generadores de

    código




                          Ingeniería del Software Orientada a Agentes   4
Sobre el IDK

    Está desarrollado en Java

        Compatible con versiones superiores a la 1.4
    

    Usa la herramienta ant

        http://ant.apache.org
    

    Está desarrollado con código GPL en su mayoría

        Librerías para gestión de gráficos
    

        Librerías para persistencia en XML
    

        Plataforma JADE
    

    Los SMA que se generan con IAF están completos al

    70%
        Falta introducir el código correspondiente a las tareas
    

        La coordinación y flujo de control está prácticamente
    
        implementado
                           Ingeniería del Software Orientada a Agentes   5
Descargando el software

    Ir a http://ingenias.sourceforge.net


    Saltar a la sección downloads


    Descargar la versión IDK 2.7


    Descomprimir en la carpeta c:hlocal


    Lanzar la consola de ant





                     Ingeniería del Software Orientada a Agentes   6
Estructura general

    IDK

        editor. Contiene el editor visual de especificaciones.
    

        iaf. Contiene el generador de código
    

        workspace. Contiene los diferentes proyectos
    

    Se recomienda crear los proyectos dentro de

    workspace, pero se pueden mantener fuera
    igualmente
    Dentro de un proyecto hay, entre otras, las

    siguientes carpetas
        src. Contiene fuentes generados manualmente
    

        gensrc. Son los fuentes generados automáticamente
    

        permsrc. Fuentes generados automáticamente y no
    
        regenerados
        spec. La especificación del problema
    
                           Ingeniería del Software Orientada a Agentes   7
Creando un proyecto

    Se abre una consola de comandos


    Se abre la carpeta donde se ha instalado el IDK


    Se invoca la creación del proyecto con:





    Esto creará un proyecto en

    c:hlocalIDK2.7workspaceMiProyecto
    Dentro de este proyecto se crea automáticamente

    una especificación ya preconfigurada en la carpeta
    spec

                      Ingeniería del Software Orientada a Agentes   8
Abriendo la especificación

    Hay que ejecutar el editor con ant runide





    La especificación se crea con el editor visual


    La creación del proyecto incluye la creación de una

    especificación donde están configurados los
    parámetros de generación de código




                      Ingeniería del Software Orientada a Agentes   9
Abriendo la especificación

    Se elige la opción File -> Load


    Vamos a la carpeta c:hlocalIDK2.7workspaceMiProyectospec


    Se abre el fichero specification.xml





                           Ingeniería del Software Orientada a Agentes   10
Propiedades de la especificación

    Definen parámetros para los módulos de

    generación
    Ir a Project -> Properties





                     Ingeniería del Software Orientada a Agentes   11
Creando un agente

    Crear un diagrama de agentes





                     Ingeniería del Software Orientada a Agentes   12
Definiendo la tarea

    Definir la tarea con un diagrama de

    tareas/objetivos




                      Ingeniería del Software Orientada a Agentes   13
Asociando código a la tarea

    Definir un diagrama de componentes





                    Ingeniería del Software Orientada a Agentes   14
El código de la tarea




    Las tareas java contienen el código introducido

    dentro del componente



                      Ingeniería del Software Orientada a Agentes   15
Generando código

    Seleccionar Modules -> Code Generator ->

    Ingenias Agent Framework generator -> Generate
    La pestaña Logs mostrará el resultado de la

    generación




                     Ingeniería del Software Orientada a Agentes   16
Ejecutando




    Ir a la carpeta del proyecto

        Abrir dos consolas aquí
    

    En la primera consola

        ant runjade
    

        Se ejecuta sólo una vez
    

    En la segunda consola

        ant run
    

        El mensaje aparecerá al final
    

    Se verán dos GUIS

        El del adminstrador de JADE
    

        El del depurador del IAF del Software Orientada a Agentes
    
                           Ingeniería                               17
Ejecutando II

    Como alternativa, se puede abrir una única consola

    y escribir lo siguiente

    ant runProdStandAlone



    Con eso se lanza de forma conjunta un contenedor

    JADE y los agentes definidos
        No se lanza ningún GUI adicional
    

        Útil para despliegues en entornos de producción
    




                          Ingeniería del Software Orientada a Agentes   18
Definiendo un despliegue

    Crear un diagrama de despliegue





                     Ingeniería del Software Orientada a Agentes   19
Definiendo un despliegue




                 Ingeniería del Software Orientada a Agentes   20
Ejecutando

    Se regenera el código y se vuelve a ejecutar


    El número de opciones para ejecutar aumenta





    Hay opciones para

    ejecutar el despliegue
    que acabamos de
    definir:

    ant runDespliegueTresAgentes
                             Ingeniería del Software Orientada a Agentes   21
Integrando con Eclipse

    La modificación de

    fuentes se puede hacer
    desde eclipse
        Creando un nuevo
    
        proyecto JAVA desde los
        fuentes existentes




                         Ingeniería del Software Orientada a Agentes   22
Integrando con Eclipse

    Las carpetas que deben

    configurarse como
    código fuente son
    gensrc, permsrc, y src
        Pulsar con el botón
    
        derecho en una carpeta
        para ver la opción de
        agregar al build path
    Definir la carpeta bin

    para los binarios que se
    generen




                         Ingeniería del Software Orientada a Agentes   23
Integrando con Eclipse

    Ahora se puede trabajar

    como si se tratara de
    JAVA
        La carpeta gensrc no
    
        debe modificarse, a
        menos que se alteren
        tareas
        La carpeta permsrc
    
        puede modificarse. No se
        sobreescribirán lo
        modificado
        La carpeta src está
    
        gestionada por completo
        por el usuario



                         Ingeniería del Software Orientada a Agentes   24
Modificando una tarea




    Las tareas se generan en

    gensrc/ingenias/jade/components
        Buscar el nombre de la tarea en cuestión
    

    Las modificaciones hay que copiarlas a mano en el

    editor
                           Ingeniería del Software Orientada a Agentes   25
Modificando una tarea

    Si queremos

    modificar como
    en el ejemplo,
    hay que
    actualizar el
    cambio en el
    módulo




                     Ingeniería del Software Orientada a Agentes   26
Advertencia

    Modificaciones diferentes de insertar código en la

    parte indicada de la tarea no pueden gestionarse en
    la versión actual del generador de código
        Por ejemplo, si se necesita meter un nuevo método en la
    
        tarea
         • Si se necesita algo como esto, se recomienda crear estos
           métodos en clases externas a la tarea
    Si se usa eclipse, es frecuente que se incluyan

    automáticamente imports de clases que se vayan
    utilizando
        Los imports no se guardarán en el modelo
    




                            Ingeniería del Software Orientada a Agentes   27
Configurando Eclipse

    Para evitar el uso de

    imports, hay que
    modificar las
    preferencias de Eclipse
        Menú Window-
    
        >Preferences
    Para actualizar los

    ficheros
    automáticamente con
    cada generación de
    código, hay que activar
    el refresco automático



                       Ingeniería del Software Orientada a Agentes   28
Sincronizando Código y especificación

    Consiste en asegurar que todo lo que hay en la

    carpeta gensrc del proyecto es regenerable desde la
    especificación
        Toda modificación realizada al código de las tareas debe
    
        poder subirse al editor
    Hay una forma más sencilla, pero requiere bajarse

    la última versión del IDK. Para ello hay que tener el
    Subversion instalado.
        Mirar las transparencias del CodeUpdater
    




                            Ingeniería del Software Orientada a Agentes   29

Contenu connexe

Similaire à Agente Hola Mundo

Depuración de aplicaciones en visual studio
Depuración de aplicaciones en visual studioDepuración de aplicaciones en visual studio
Depuración de aplicaciones en visual studioJavier Hermoso Blanco
 
No más "programación copy&paste". Generación automática de código con MOSKitt
No más "programación copy&paste". Generación automática de código con MOSKittNo más "programación copy&paste". Generación automática de código con MOSKitt
No más "programación copy&paste". Generación automática de código con MOSKittJavier Muñoz
 
Commit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine LearningCommit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine LearningRafa Hidalgo
 
Desarrollo de aplicaciones .net
Desarrollo de aplicaciones .netDesarrollo de aplicaciones .net
Desarrollo de aplicaciones .netJefersonGuevara1
 
Desarrollo de aplicaciones .net
Desarrollo de aplicaciones .netDesarrollo de aplicaciones .net
Desarrollo de aplicaciones .netJefersonGuevara1
 
Presentacion med line ed bennett con ajax y dwr
Presentacion   med line ed bennett con ajax y dwrPresentacion   med line ed bennett con ajax y dwr
Presentacion med line ed bennett con ajax y dwrdamaji2
 
Presentacion med line ed bennett con ajax y dwr
Presentacion   med line ed bennett con ajax y dwrPresentacion   med line ed bennett con ajax y dwr
Presentacion med line ed bennett con ajax y dwrgarciafjgs
 
Breve introducción práctica al DevOps - (es) 2021_03_18
Breve introducción práctica al DevOps -  (es) 2021_03_18Breve introducción práctica al DevOps -  (es) 2021_03_18
Breve introducción práctica al DevOps - (es) 2021_03_18Young Suk Ahn Park
 
Guia practica 1.0 2011
Guia practica 1.0  2011Guia practica 1.0  2011
Guia practica 1.0 2011puchichin666
 
Articulo tipos de ide y ajax control toolkit
Articulo   tipos de ide y ajax control toolkitArticulo   tipos de ide y ajax control toolkit
Articulo tipos de ide y ajax control toolkitCesar Escalante
 
Herramientas y entornos de implementacion de software
Herramientas y entornos de implementacion de softwareHerramientas y entornos de implementacion de software
Herramientas y entornos de implementacion de softwareMiguel Sanchez
 

Similaire à Agente Hola Mundo (20)

Depuración de aplicaciones en visual studio
Depuración de aplicaciones en visual studioDepuración de aplicaciones en visual studio
Depuración de aplicaciones en visual studio
 
Metodo watch y lps
Metodo watch y lpsMetodo watch y lps
Metodo watch y lps
 
No más "programación copy&paste". Generación automática de código con MOSKitt
No más "programación copy&paste". Generación automática de código con MOSKittNo más "programación copy&paste". Generación automática de código con MOSKitt
No más "programación copy&paste". Generación automática de código con MOSKitt
 
Andrid studio
Andrid studioAndrid studio
Andrid studio
 
Watch, lps
Watch, lpsWatch, lps
Watch, lps
 
Aprendiendo GWT
Aprendiendo GWTAprendiendo GWT
Aprendiendo GWT
 
Commit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine LearningCommit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine Learning
 
Desarrollo de aplicaciones .net
Desarrollo de aplicaciones .netDesarrollo de aplicaciones .net
Desarrollo de aplicaciones .net
 
Desarrollo de aplicaciones .net
Desarrollo de aplicaciones .netDesarrollo de aplicaciones .net
Desarrollo de aplicaciones .net
 
Watch, lps
Watch, lpsWatch, lps
Watch, lps
 
Presentacion med line ed bennett con ajax y dwr
Presentacion   med line ed bennett con ajax y dwrPresentacion   med line ed bennett con ajax y dwr
Presentacion med line ed bennett con ajax y dwr
 
Presentacion med line ed bennett con ajax y dwr
Presentacion   med line ed bennett con ajax y dwrPresentacion   med line ed bennett con ajax y dwr
Presentacion med line ed bennett con ajax y dwr
 
Presentacion med line ed bennett con ajax y dwr
Presentacion   med line ed bennett con ajax y dwrPresentacion   med line ed bennett con ajax y dwr
Presentacion med line ed bennett con ajax y dwr
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Breve introducción práctica al DevOps - (es) 2021_03_18
Breve introducción práctica al DevOps -  (es) 2021_03_18Breve introducción práctica al DevOps -  (es) 2021_03_18
Breve introducción práctica al DevOps - (es) 2021_03_18
 
Guia practica 1.0 2011
Guia practica 1.0  2011Guia practica 1.0  2011
Guia practica 1.0 2011
 
Trabajo
TrabajoTrabajo
Trabajo
 
Articulo tipos de ide y ajax control toolkit
Articulo   tipos de ide y ajax control toolkitArticulo   tipos de ide y ajax control toolkit
Articulo tipos de ide y ajax control toolkit
 
Herramientas y entornos de implementacion de software
Herramientas y entornos de implementacion de softwareHerramientas y entornos de implementacion de software
Herramientas y entornos de implementacion de software
 
Desarr
DesarrDesarr
Desarr
 

Dernier

TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCCarlosEduardoSosa2
 
Desarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresDesarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresJonathanCovena1
 
Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuelabeltranponce75
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024IES Vicent Andres Estelles
 
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...Ars Erótica
 
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdfFICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdfRaulGomez822561
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfMercedes Gonzalez
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxBeatrizQuijano2
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Juan Martín Martín
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesMarisolMartinez707897
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIAFabiolaGarcia751855
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfJonathanCovena1
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfcarolinamartinezsev
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfapunteshistoriamarmo
 

Dernier (20)

TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
Desarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresDesarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por Valores
 
Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuela
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
 
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdfFICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptx
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
PP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomasPP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomas
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 

Agente Hola Mundo

  • 1. Desarrollo con el INGENIAS Development Kit Agente Hola Mundo Jorge J. Gómez Sanz Dep. de Sistemas Informáticos y Programación http://grasia.fdi.ucm.es
  • 2. Desarrollo de agentes con el IDK El IDK proporciona soporte a la metodología  INGENIAS Metodología: notación + herramientas + proceso +  paradigma UCM, 2003 Agentes Software 2
  • 3. IDK: Generación de código modelo código modelo código SMA de agente código Generador modelo SMA de agente de agente SMA (XML) Completar/Revisar por el programador plantilla de código plantilla de código plantilla de código con XML marcado marcado con XML marcado con XML Específicos de una plataforma Plataforma de agentes (deben reunir los elementos de los metamodelos) Ingeniería del Software Orientada a Agentes 3
  • 4. Sobre el IDK Se basa en un lenguaje para el modelado de SMA  El lenguaje está expresado como un meta-modelo  El lenguaje es un superconjunto de lo que reconoce  el generador de código No todos los elementos son reconocidos para generar el  SMA Se pueden construir múltiples generadores de  código Ingeniería del Software Orientada a Agentes 4
  • 5. Sobre el IDK Está desarrollado en Java  Compatible con versiones superiores a la 1.4  Usa la herramienta ant  http://ant.apache.org  Está desarrollado con código GPL en su mayoría  Librerías para gestión de gráficos  Librerías para persistencia en XML  Plataforma JADE  Los SMA que se generan con IAF están completos al  70% Falta introducir el código correspondiente a las tareas  La coordinación y flujo de control está prácticamente  implementado Ingeniería del Software Orientada a Agentes 5
  • 6. Descargando el software Ir a http://ingenias.sourceforge.net  Saltar a la sección downloads  Descargar la versión IDK 2.7  Descomprimir en la carpeta c:hlocal  Lanzar la consola de ant  Ingeniería del Software Orientada a Agentes 6
  • 7. Estructura general IDK  editor. Contiene el editor visual de especificaciones.  iaf. Contiene el generador de código  workspace. Contiene los diferentes proyectos  Se recomienda crear los proyectos dentro de  workspace, pero se pueden mantener fuera igualmente Dentro de un proyecto hay, entre otras, las  siguientes carpetas src. Contiene fuentes generados manualmente  gensrc. Son los fuentes generados automáticamente  permsrc. Fuentes generados automáticamente y no  regenerados spec. La especificación del problema  Ingeniería del Software Orientada a Agentes 7
  • 8. Creando un proyecto Se abre una consola de comandos  Se abre la carpeta donde se ha instalado el IDK  Se invoca la creación del proyecto con:  Esto creará un proyecto en  c:hlocalIDK2.7workspaceMiProyecto Dentro de este proyecto se crea automáticamente  una especificación ya preconfigurada en la carpeta spec Ingeniería del Software Orientada a Agentes 8
  • 9. Abriendo la especificación Hay que ejecutar el editor con ant runide  La especificación se crea con el editor visual  La creación del proyecto incluye la creación de una  especificación donde están configurados los parámetros de generación de código Ingeniería del Software Orientada a Agentes 9
  • 10. Abriendo la especificación Se elige la opción File -> Load  Vamos a la carpeta c:hlocalIDK2.7workspaceMiProyectospec  Se abre el fichero specification.xml  Ingeniería del Software Orientada a Agentes 10
  • 11. Propiedades de la especificación Definen parámetros para los módulos de  generación Ir a Project -> Properties  Ingeniería del Software Orientada a Agentes 11
  • 12. Creando un agente Crear un diagrama de agentes  Ingeniería del Software Orientada a Agentes 12
  • 13. Definiendo la tarea Definir la tarea con un diagrama de  tareas/objetivos Ingeniería del Software Orientada a Agentes 13
  • 14. Asociando código a la tarea Definir un diagrama de componentes  Ingeniería del Software Orientada a Agentes 14
  • 15. El código de la tarea Las tareas java contienen el código introducido  dentro del componente Ingeniería del Software Orientada a Agentes 15
  • 16. Generando código Seleccionar Modules -> Code Generator ->  Ingenias Agent Framework generator -> Generate La pestaña Logs mostrará el resultado de la  generación Ingeniería del Software Orientada a Agentes 16
  • 17. Ejecutando Ir a la carpeta del proyecto  Abrir dos consolas aquí  En la primera consola  ant runjade  Se ejecuta sólo una vez  En la segunda consola  ant run  El mensaje aparecerá al final  Se verán dos GUIS  El del adminstrador de JADE  El del depurador del IAF del Software Orientada a Agentes  Ingeniería 17
  • 18. Ejecutando II Como alternativa, se puede abrir una única consola  y escribir lo siguiente ant runProdStandAlone Con eso se lanza de forma conjunta un contenedor  JADE y los agentes definidos No se lanza ningún GUI adicional  Útil para despliegues en entornos de producción  Ingeniería del Software Orientada a Agentes 18
  • 19. Definiendo un despliegue Crear un diagrama de despliegue  Ingeniería del Software Orientada a Agentes 19
  • 20. Definiendo un despliegue Ingeniería del Software Orientada a Agentes 20
  • 21. Ejecutando Se regenera el código y se vuelve a ejecutar  El número de opciones para ejecutar aumenta  Hay opciones para  ejecutar el despliegue que acabamos de definir: ant runDespliegueTresAgentes Ingeniería del Software Orientada a Agentes 21
  • 22. Integrando con Eclipse La modificación de  fuentes se puede hacer desde eclipse Creando un nuevo  proyecto JAVA desde los fuentes existentes Ingeniería del Software Orientada a Agentes 22
  • 23. Integrando con Eclipse Las carpetas que deben  configurarse como código fuente son gensrc, permsrc, y src Pulsar con el botón  derecho en una carpeta para ver la opción de agregar al build path Definir la carpeta bin  para los binarios que se generen Ingeniería del Software Orientada a Agentes 23
  • 24. Integrando con Eclipse Ahora se puede trabajar  como si se tratara de JAVA La carpeta gensrc no  debe modificarse, a menos que se alteren tareas La carpeta permsrc  puede modificarse. No se sobreescribirán lo modificado La carpeta src está  gestionada por completo por el usuario Ingeniería del Software Orientada a Agentes 24
  • 25. Modificando una tarea Las tareas se generan en  gensrc/ingenias/jade/components Buscar el nombre de la tarea en cuestión  Las modificaciones hay que copiarlas a mano en el  editor Ingeniería del Software Orientada a Agentes 25
  • 26. Modificando una tarea Si queremos  modificar como en el ejemplo, hay que actualizar el cambio en el módulo Ingeniería del Software Orientada a Agentes 26
  • 27. Advertencia Modificaciones diferentes de insertar código en la  parte indicada de la tarea no pueden gestionarse en la versión actual del generador de código Por ejemplo, si se necesita meter un nuevo método en la  tarea • Si se necesita algo como esto, se recomienda crear estos métodos en clases externas a la tarea Si se usa eclipse, es frecuente que se incluyan  automáticamente imports de clases que se vayan utilizando Los imports no se guardarán en el modelo  Ingeniería del Software Orientada a Agentes 27
  • 28. Configurando Eclipse Para evitar el uso de  imports, hay que modificar las preferencias de Eclipse Menú Window-  >Preferences Para actualizar los  ficheros automáticamente con cada generación de código, hay que activar el refresco automático Ingeniería del Software Orientada a Agentes 28
  • 29. Sincronizando Código y especificación Consiste en asegurar que todo lo que hay en la  carpeta gensrc del proyecto es regenerable desde la especificación Toda modificación realizada al código de las tareas debe  poder subirse al editor Hay una forma más sencilla, pero requiere bajarse  la última versión del IDK. Para ello hay que tener el Subversion instalado. Mirar las transparencias del CodeUpdater  Ingeniería del Software Orientada a Agentes 29