Documentazione assistita di ABMs (Agent-Based Models) Relatore Candidato Prof. Vittorio Scarano Dott. Carmine Spagnuolo Simone Romano Struttura della presentazione • Panoramica modelli di simulazione basati sugli agenti - MASON • ODD Protocol e MASON • Doxygen • Può aiutarci? • Soluzione proposta: Plugin per Eclipse • Caratteristiche • Conclusioni Automatic ABMs documentation - Simone Romano Sistemi multi-agente Branca relativamente nuova dell’informatica: • Primi studi: anni ‘80 • Diffusione: circa metà anni ‘90 STRUTTURA • Agenti (entità autonoma) • Ambiente Automatic ABMs documentation - Simone Romano MASON “MASON is a fast discrete-event multiagent simulation library core in Java” STRUTTURA • Agenti - Steppable • Ambiente – SimState OBIETTIVO: Generazione assistita di documentazione di programmi MASON Automatic ABMs documentation - Simone Romano Idea • Procedura guidata mirata alla generazione documentazione Come si documenta un ABMs? ODD Protocol 1. Purpose 2. Entities, State variables and scales 3. Process overview and scheduling 4. Design concepts 5. Initialization 6. Input 7. Submodels MASON 1. Definito dall’utente 2. Ambiente, Agenti, variabili 3. Lista azioni eseguite in • start() SimState • step() Steppable 4. 5. 6. 7. Definito dall’utente Valore iniziale delle variabili Definito dall’utente Pseudo-codice delle azioni elencate in 3 • Doxygen is the de facto standard tool for generating documentation from annotated C++ sources, but it also supports other popular programming languages such as C, Objective-C, C#, PHP, Java, Python, IDL (Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl, and to some extent D. Automatic ABMs documentation - Simone Romano Ricreiamo ODD • Parsing del codice • Generazione automatica di informazioni • Informazioni inserite dall’utente • Generazione commenti al codice Automatic ABMs documentation - Simone Romano Plug-in – caratteristiche 1 • Generazione pseudocodice • Fasi Process overview and scheduling, Submodels di ODD • Selezione colore output • Separazione tra commenti autogenerati e commenti inseriti dall’utente Definito dall’utente Generato dal plugin Generato da Doxygen Plug-in – caratteristiche 2 • Pulizia del codice Plug-in – caratteristiche 3 • Iterabilità • ODD object • Output type • Doxygen • Pdf-Rtf (iText library) • Txt Flusso degli eventi INTRO OUTPUT Choice ODD serialized object • Purpose • Entities, state variables and scales • Process overview and scheduling • Design concepts • Initialization • Input • Submodels Doxygen New ODD object • Pdf • Rtf • txt … Screenshots - 1 Screenshots - 2 Screenshots - 3 Conclusioni • OBIETTIVO INIZIALE • Documentare programmi di simulazione multi-agente scritti in Java con libreria MASON • PRODOTTO REALIZZATO • Supporta l’utente durante la fase di documentazione • Struttura la documentazione secondo uno standard noto (ODD)