Progetto e realizzazione di una battaglia medioevale mediante tecnologie ad agenti
La realizzazione di sistemi software è un?attività 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à e di gestire
proficuamente lo scambio informativo fra individui. Il processo
di sviluppo è un punto cruciale, che condiziona l?esito dei
progetti: la mancanza di un processo chiaro e condiviso è la
principale causa del fallimento di molti progetti e questo
indica l?importanza che può 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à sociale, reattività e pro-attività. Essi
hanno obiettivi propri, esibiscono il controllo della loro
attività 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é permette di condurre il processo di sviluppo
sfruttando astrazioni e metafore con le quali è più 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à di base che possiedono
obiettivi propri e manifestano comportamento autonomo perché si
può mettere in corrispondenza ogni istanza di queste entità con
un agente che la rappresenti. Rientrano in questa categoria i
sistemi di simulazione etologici e sociali, quelli cioè che
riproducono artificialmente le dinamiche di popolazioni animali
o umane.
L?obiettivo di questa tesi è 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 è 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 è la completa distruzione di
quello nemico. I guerrieri dovranno possedere alcune capacità
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à
la realizzazione di un ambiente virtuale nel quale i guerrieri
possano muoversi e comunicare.
Modellare tramite metodologie tradizionali entità autonome dal
comportamento e dalle interazioni complesse come i guerrieri
medioevali, può risultare difficoltoso. Il gap tra metafore di
analisi e progettazione ed entità reali può introdurre una
complessità che non è presente nel problema originario. Le
metodologie orientate agli agenti, al contrario, riducono il
gap perché permettono di rappresentare un individuo tramite un
agente e perciò velocizzano il processo di sviluppo. La
simulazione di uno scenario reale è un possibile caso di studio
per il quale adottare un processo di sviluppo orientato agli
agenti in un contesto verosimile. Il punto fondamentale è
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à nella manutenzione.
L?esposizione è così organizzata: Nel Capitolo 1 viene fornita
la definizione di agente e vengono descritte le varie tipologie
a cui è 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à la definizione di simulazione e di simulazione
multi-agente quindi si descrive brevemente alcuni sistemi di
simulazione esistenti. Nel Capitolo 3 è riportato il risultato
delle ricerche effettuate sul dominio di riferimento, cioè le
tattiche di battaglia degli eserciti medioevali. Nel Capitolo 4
viene descritta SODA, la metodologia orientata agli agenti che
è stata adottata, e TuCSoN, l?infrastruttura utilizzata per
implementare il sistema. Nel Capitolo 5 è 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 è spiegata
l?applicazione di SODA al caso di studio per condurre l?analisi
e il progetto del sistema di simulazione. Nel Capitolo 7 è
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 è sono
riportati i risultati sperimentali. Infine, il Capitolo 11
espone le conclusioni raggiunte ed accenna ai possibili
sviluppi futuri.