Progetto e realizzazione di una battaglia medioevale mediante tecnologie ad agenti

   page       BibTeX_logo.png       attach   
@mastersthesis{batmedmercati07,
    abstract = {La realizzazione di sistemi software \`{e} un?attivit\`{a} molto impegnativa, che coinvolge gruppi anche numerosi di persone e che richiede l?adozione di processi di sviluppo che permettano di dominare adeguatamente la complessit\`{a} e di gestire proficuamente lo scambio informativo fra individui. Il processo di sviluppo \`{e} un punto cruciale, che condiziona l?esito dei progetti: la mancanza di un processo chiaro e condiviso \`{e} la principale causa del fallimento di molti progetti e questo indica l?importanza che pu\`{o} avere, soprattutto in campo industriale, l?adozione e il rispetto di metodologie sufficientemente rigorose. Recentemente lo sviluppo di un nuovo paradigma di programmazione sta influenzando il modo di analizzare e progettare i sistemi software: il paradigma ad agenti. Gli agenti sono sistemi hardware e/o software molto eterogenei che possiedono alcune caratteristiche comuni: autonomia, abilit\`{a} sociale, reattivit\`{a} e pro-attivit\`{a}. Essi hanno obiettivi propri, esibiscono il controllo della loro attivit\`{a} interna e sono in grado di reagire a stimoli provenienti dall?ambiente esterno modificando le proprie strategie di azione. L?approccio ad agenti si sta dimostrando elegante ed efficiente per la realizzazione di sistemi software complessi perch\'{e} permette di condurre il processo di sviluppo sfruttando astrazioni e metafore con le quali \`{e} pi\`{u} intuitivo modellare il dominio applicativo. Il paradigma ad agenti condiziona il processo di costruzione del software fin dalla fase di analisi e rende opportuno adottare delle metodologie di sviluppo appositamente create per trattare col concetto di agente e tecnologie che permettano di tradurre direttamente il progetto in un sistema funzionante. L?approccio ad agenti risulta particolarmente appropriato e vantaggioso quando l?analisi individua delle entit\`{a} di base che possiedono obiettivi propri e manifestano comportamento autonomo perch\'{e} si pu\`{o} mettere in corrispondenza ogni istanza di queste entit\`{a} con un agente che la rappresenti. Rientrano in questa categoria i sistemi di simulazione etologici e sociali, quelli cio\`{e} che riproducono artificialmente le dinamiche di popolazioni animali o umane. L?obiettivo di questa tesi \`{e} valutare in che modo l?adozione di metodologie di analisi e progettazione del software orientate agli agenti possa influenzare positivamente lo sviluppo di sistemi complessi. La metodologia scelta \`{e} applicata alla realizzazione di un sistema di simulazione di uno scenario sociale: una battaglia medioevale. Lo scenario prevede la presenza di un certo numero di guerrieri medioevali, autonomi o semi-autonomi, organizzati in due eserciti reciprocamente ostili. L?obiettivo di un esercito \`{e} la completa distruzione di quello nemico. I guerrieri dovranno possedere alcune capacit\`{a} fondamentali, come quella di muoversi, di combattere e di conoscere l?ambiente circostante. Potranno inoltre essere organizzati in strutture gerarchiche ed essere indirizzati dagli ordini di un capo. La parte fondamentale del lavoro sar\`{a} la realizzazione di un ambiente virtuale nel quale i guerrieri possano muoversi e comunicare. Modellare tramite metodologie tradizionali entit\`{a} autonome dal comportamento e dalle interazioni complesse come i guerrieri medioevali, pu\`{o} risultare difficoltoso. Il gap tra metafore di analisi e progettazione ed entit\`{a} reali pu\`{o} introdurre una complessit\`{a} che non \`{e} presente nel problema originario. Le metodologie orientate agli agenti, al contrario, riducono il gap perch\'{e} permettono di rappresentare un individuo tramite un agente e perci\`{o} velocizzano il processo di sviluppo. La simulazione di uno scenario reale \`{e} un possibile caso di studio per il quale adottare un processo di sviluppo orientato agli agenti in un contesto verosimile. Il punto fondamentale \`{e} valutare quali vantaggi si possono raggiungere, con una metodologia orientata agli agenti, in termini di tempo necessario allo sviluppo di un sistema software complesso e di facilit\`{a} nella manutenzione. L?esposizione \`{e} cos\`{i} organizzata: Nel Capitolo 1 viene fornita la definizione di agente e vengono descritte le varie tipologie a cui \`{e} riconducibile la maggior parte dei sistemi ad agenti. Successivamente si delineano i concetti generali dell?Ingegneria del Software orientata agli agenti. Nel Capitolo 2 si d\`{a} la definizione di simulazione e di simulazione multi-agente quindi si descrive brevemente alcuni sistemi di simulazione esistenti. Nel Capitolo 3 \`{e} riportato il risultato delle ricerche effettuate sul dominio di riferimento, cio\`{e} le tattiche di battaglia degli eserciti medioevali. Nel Capitolo 4 viene descritta SODA, la metodologia orientata agli agenti che \`{e} stata adottata, e TuCSoN, l?infrastruttura utilizzata per implementare il sistema. Nel Capitolo 5 \`{e} riportata la raccolta e l?analisi dei requisiti del sistema e si motiva la divisione del sistema in due sottosistemi, per i quali vengono adottati due differenti processi di sviluppo. Nel Capitolo 6 \`{e} spiegata l?applicazione di SODA al caso di studio per condurre l?analisi e il progetto del sistema di simulazione. Nel Capitolo 7 \`{e} esposta la fase di analisi e progetto del sistema applicativo che permette l?interazione con l?utente. Nel Capitolo 8 sono descritte e motivate le scelte implementative che riguardano il sistema di simulazione di cui al cap. 5. Nel Capitolo 9 sono descritte e motivate le scelte implementative che riguardano il sistema applicativo di cui al cap. 6. Nel Capitolo 10 \`{e} sono riportati i risultati sperimentali. Infine, il Capitolo 11 espone le conclusioni raggiunte ed accenna ai possibili sviluppi futuri.},
    author = {Alberto Mercati},
    contact = {Molesini, Ambra},
    cosupervisor = {Molesini, Ambra},
    cycle = {LM},
    description = {L?obiettivo di questa tesi \`{e} creare un ambiente virtuale nel quale si muovono e combattono eserciti medioevali (cavalleria, fanti, arcieri) attraverso l?utilizzo di tecnologie ad agenti. Gli agenti rappresentano i soldati e si muovono in campi di battaglia: fornita la posizione iniziale degli schieramenti e la strategia di combattimento da adottare, il sistema dovrebbe evolvere in modo autonomo, sino alla conclusione della battaglia che decreter\`{a} il vincitore. Durante la battaglia sono ammesse piccole variazioni della strategia che non siano in contrasto con le regole del gioco stesso. Il sistema deve ovviamente garantire che le regole di combattimento non vengano infrante.},
    language = {it},
    month = mar,
    start = {2006-06-12},
    supervisor = {Denti, Enrico},
    title = {Progetto e realizzazione di una battaglia medioevale mediante tecnologie ad agenti},
    type = {Master's thesis},
    year = 2007
}