Informazioni generali
Alessandro Ricci è ricercatore confermato presso il Dipartimento
di Informatica - Scienza e Ingegneria (DISI), Università di
Bologna, dall'Ottobre del 2006.
Alessandro ha iniziato a lavorare nel gruppo di ricerca aliCE
sotto la guida del prof. Omicini nel 2001 e ha conseguito il
dottorato di ricerca in Ingegneria Informatica nel 2004 presentando
una tesi dal titolo "Engineering Agent Societies with Coordination
Artifacts and Related Infrastructures".
Sin dal 2003, Alessandro è stato titolare di corsi prima presso la
Seconda Facoltà di Ingegneria a Cesena, poi presso il recente Corso
di Laura “Ingegneria e Scienze Informatiche”, sempre a Cesena.
I corsi di cui è stato docente includono: Programmazione
Avanzata e Paradigmi (2013), Programmazione Concorrente e
Distribuita (2006-2012), Sistemi Operativi (2005-2012), Fondamenti
di Informatica LB (2003-2006).
Attività di Ricerca
Le attività di ricerca di Alessandro in generale concernono
agenti e sistemi multi-agente come paradigma per la modellazione e
lo sviluppo di sistemi software complessi e - recentemente - la
formulazione del paradigma di programmazione orientato agli agenti
come evoluzione di quello ad attori nel contesto della
programmazione ad oggetti concorrente.
In tale contesto, i principali contributi di Alessandro - in
ordine cronologico - includono:
-
la generalizzazione dell'astrazione di artefatto di
coordinazione nella nozione di artefatto e la definizione del
meta-modello A&A (Agents and Artifacts), che permette di
modellare l'ambiente come entità di prima classe nella
progettazione e sviluppo dei sistemi multi-agente. Sia la nozione
di artefatto di coordinazione che, più, in generale, di artefatto
hanno i propri principi ispiratori nell'Activity Theory e
Distributed Cognition
-
il modello e infrastruttura CArtAgO per la progettazione,
implementazione ed esecuzione di ambienti basati su artefatti,
integrata con modelli e tecnologie esistenti per lo sviluppo ed
esecuzione degli agenti
-
la definizione di modelli e tecnologie per la programmazione di
sistemi multi-agente integrando le dimensioni
agente/ambiente/organizzazione, ed in particolare linguaggi per la
programmazione di agenti BDI - Jason in particolare - con framework
per lo sviluppo di ambienti basati su artefatti - CArtAgO - e
infine linguaggi per la definizione e programmazione di
organizzazioni - Moise in particolare.
Questi ultimi contributi sono stati sviluppati in particolare in
cooperazione con colleghi e gruppi di ricerca internazionali e
hanno portato - oltre che a pubblicazioni scientifiche - a tutorial
su Multi-Agent Oriented Programming erogati per diversi anni presso
l'European Agent Systems Summer School (EASSS).
Più recentemente - dal 2011 al 2014 - la ricerca di Alessandro è
stata focaluzzata sullo studio di paradigmi di programmazione
di alto livello per lo sviluppo di sistemi software concorrenti,
distribuiti, reattivi. In tale contesto, il contributo specifico
concerne la formulazione di paradigmi di programmazione ad agenti
come evoluzione del modello ad attori e ad oggetti attivi, nel
contesto della programmazione ad oggetti concorrente. I primi
risultati di questa linea sono rappresentati dal linguaggio simpAL,
basato sulle astrazioni di agente, artefatto, organizzazione -
seguendo il modello A&A.
Tali attività hanno portato anche all'ideazione e alla
coorganizzazione di un workshop chiamato AGERE! - dal 2011 al 2013
- nel contesto della conferenza internazionale SPLASH (che include
OOPSLA and OnWard!), in cooperazione con Gul Agha, Rafael Bordini e
Assaf Marron (2011,2013) , Akinori Yonezawa, Nadeem Jamali and Gera
Weiss (2013). AGERE! vuole essere un forum internazionale di
riferimento per ricercatori e sviluppatori interessati alla teoria
e pratica relative alla programmazione di software basata su
attori, agenti e più in generale paradigmi che promuovano un
approccio a controllo decentralizzato alla risoluzione di problemi
e alla costruzione del software.
La recente evoluzione di tale linea ha portato alla formulazione di
un modello computazionale e di programmazione general-purpose che
integra oggetti e agenti come entità di prima classe. Tale modello
è implementato nel linguaggio sperimentale ALOO.