Sviluppo di un sistema multi-agente per la gestione di un calendario

   page       BibTeX_logo.png       attach   
@mastersthesis{lamorgia06,
    abstract = {Sempre pi\`{u} persone utilizzano il computer per gestire la propria agenda, in quanto i ritmi di lavoro odierni portano naturalmente a desiderare di mantenere organizzati i propri impegni con appositi strumenti di supporto. Tuttavia, la realt\`{a} degli applicativi per ?calendari elettronici? \`{e} ancora in fase di evoluzione, sia dal punto di vista dell'usabilit\`{a} (non sempre soddisfacente), sia dal punto di vista dell'architettura. L?obiettivo di questa tesi \`{e} progettare una applicazione di calendario elettronico adottando il paradigma ad agenti come riferimento metodologico e architetturale. I vantaggi dell'approccio ad agenti si possono misurare nel confronto con le tecnologie precedenti e in particolare con la tecnologia ad oggetti che \`{e} stata per lungo tempo il metodo preponderante di programmazione. Il paradigma ad oggetti si \`{e} rivelato inadeguato in confronto alla complessit\`{a} dei sistemi moderni. Le relazioni fra gli oggetti si limitano all?utilizzo e alla semplice gerarchia, mentre nella realt\`{a} le entit\`{a} del sistema danno vita a diverse relazioni e dipendenze dinamiche, interagiscono tra loro e necessitano di un supporto per la coordinazione. Dagli oggetti, entit\`{a} passive dotate di stato, che si attivano tramite un?invocazione di metodo, si \`{e} passati agli agenti, entit\`{a} dotate di stato e comportamento. Un agente \`{e} considerato come una particolare entit\`{a} software in grado di agire in modo autonomo prelevando informazioni dall?ambiente in cui si trova e capace di prendere iniziative per soddisfare i propri obiettivi. Strettamente correlato alla teoria degli agenti \`{e} il concetto di sistemi multi-agente: un insieme di agenti autonomi che interagiscono fra loro e con l?ambiente, per ottenere informazioni e per coordinare le loro attivit\`{a}. Nel momento in cui gli agenti vivono nel medesimo contesto ambientale, comunicano e instaurano rapporti di interazione per raggiungere degli obiettivi globali (effettuando attivit\`{a} competitive o cooperative) essi vengono a creare una societ\`{a} di agenti. In un ambiente ?vivono? perci\`{o} sia agenti che societ\`{a} di agenti. Le metodologie di progettazione orientate agli agenti vengono in aiuto nella fase di ingegnerizzazione del sistema multi-agente, mettendone in evidenza, tra l?altro, gli aspetti sociali. Sono uno strumento per specificare e realizzare sistemi software basati su astrazioni di pi\`{u} alto livello rispetto a quelli messi a disposizione dalle metodologie ad oggetti. Come detto gli agenti non sono entit\`{a} chiuse, ma nascono per vivere e cooperare con altri. Da qui nasce la necessit\`{a} di infrastrutture che regolino la comunicazione e l?interazione fra le entit\`{a} in gioco nel sistema (agenti, societ\`{a}, ambiente,ecc), attraverso un ben preciso modello di coordinazione. Esse rappresentano un?astrazione concettuale da poter sfruttare sia nell?analisi sia nella progettazione di sistemi multi-agente. La maggior parte dei classici modelli di comunicazione e sincronizzazione usati per lo sviluppo di sistemi (comunicazione diretta) non separano l?interazione dalla computazione. In un sistema multi-agente, questo approccio renderebbe la progettazione del sistema assai complessa. Modelli di coordinazione come il modello a lavagna o lo spazio di tuple forniscono invece un?astrazione di comunicazione condivisa, intorno alla quale un sistema multi-agente pu\`{o} essere realizzato in maniera pi\`{u} naturale. La gestione di un calendario elettronico sar\`{a} trattata come caso di studio per modellare un sistema multi-agente. Si cercher\`{a} di sviluppare un applicativo calendario che migliori l?approccio con l?utente rispetto ad altri progetti gi\`{a} esistenti. Il sistema vuole mettere a disposizione dell?utente funzionalit\`{a} e servizi essenziali, che soddisfano le aspettative principali. Non importa la quantit\`{a} dei servizi offerti, ma la qualit\`{a}. Per il formato dei calendari si \`{e} scelto di adottare e supportare lo standard iCalendar (iCal), perfezionato della IETF per la presentazione e condivisione di calendari anche attraverso Internet. Un passo obbligato visto che \`{e} da tempo lo standard pi\`{u} utilizzato in questo ambito. Come metodologia orientata agli agenti si \`{e} deciso di usare SODA, ideata per l?analisi e la progettazione di societ\`{a} ad agenti. SODA propone la separazione tra problemi sociali ed individuali sin dalle prime fasi dell?analisi, inoltre si concentra sugli aspetti sociali (aspetti inter-agente) attraverso l?utilizzo di modelli e tecnologie di coordinazione. Come infrastruttura di coordinazione si user\`{a} TuCSoN, sviluppato dal Dipartimento di Elettronica Informatica e Sistemistica (DEIS) dell?Universit\`{a} di Bologna, progettato per servire la comunicazione e la coordinazione nei sistemi di agenti distribuiti. Grazie a questa infrastruttura, possiamo non solo progettare il nostro sistema in astratto ma anche costruire un prototipo, che ci permetter\`{a} di mettere concretamente alla prova il paradigma ad agenti e di valutarne in particolare il grado di portabilit\`{a}, flessibilit\`{a} e scalabilit\`{a}. Nel primo capitolo analizzeremo due applicativi calendario rappresentativi dello stato dell?arte attuale, descrivendone caratteristiche e servizi supportati, per poi passare a una spiegazione accurata dello standard iCal. Nel secondo capitolo introdurremo il modello ad agenti, le caratteristiche e le tipologie di agente che si possono individuare, definiremo che cos?\`{e} una societ\`{a} di agenti, l?ambiente in cui gli agenti ?vivono? e i modelli di coordinazione che si prestano per l?analisi delle relazioni nelle societ\`{a} di agenti. Nel terzo capitolo spiegheremo in dettaglio la metodologia SODA e l?infrastruttura TuCSoN, con particolare attenzione agli aspetti che interessano maggiormente la progettazione del nostro sistema. Nel quarto capitolo redigeremo una pianificazione accurata del nostro progetto, analizzando le specifiche e i requisiti del programma; saranno quindi pianificati dei casi d?uso, che mostrano le interazioni dell?utente con l?interfaccia e le modalit\`{a} di utilizzo del programma. Nel quinto capitolo, procederemo con il definire i modelli di analisi e di progettazione seguendo la metodologia SODA, il modello della persistenza dati del sistema e degli esempi di interfacce grafiche di cui sar\`{a} composta l?applicazione. Nel sesto capitolo infine vengono riportati tutti i dettagli implementativi e le decisione intraprese durante la stesura vera e propria in linguaggio Java dell?applicativo calendario.},
    author = {Cinzia La Morgia},
    available = {2008-06-16},
    contact = {Molesini, Ambra},
    cosupervisor = {Molesini, Ambra},
    cycle = {L},
    description = {La tesi si propone di sviluppare un applicativo calendario ad agenti che migliori l?approccio con l?utente rispetto ad altri progetti gi\`{a} esistenti. Il sistema vuole mettere a disposizione dell?utente funzionalit\`{a} e servizi essenziali, che soddisfano le aspettative principali, tralasciando alcune funzionalit\`{a} dei calendari in circolazione che si sono dimostrate col tempo troppo complicate oppure superflue. Non importa la quantit\`{a} dei servizi offerti, ma la qualit\`{a}.},
    language = {it},
    month = mar,
    start = {2005-10-06},
    supervisor = {Denti, Enrico},
    title = {Sviluppo di un sistema multi-agente per la gestione di un calendario},
    type = {Bachelor's thesis},
    year = 2006
}