Informatica > Metodologie e architetture software avanzate > DEpendable Evolvable Pervasive Software Engineering

Ghezzi Carlo

http://deepse.ws.dei.polimi.it/

Focus

Il gruppo di DEpendable Evolvable Pervasive Software Engineering da anni sta conducendo al DEI ricerche sui diversi aspetti dell’ingegneria del software. Recentemente, si è concentrato sulla ideazione, la progettazione, l’analisi, e la verifica di applicazioni software altamente dinamiche.
I progressi della tecnologia, nonché le nuove esigenze che emergono dai domini applicativi, stanno favorendo l’emergenza di paradigmi di cooperazione, in cui i componenti si federano in modo dinamico, la proprietà delle diverse parti è distribuita (sia a livello software o hardware), e i parametri di qualità vengono continuamente negoziati. Queste applicazioni richiedono paradigmi di cooperazione (stili architetturali) solidi, linguaggi di modellazione adeguati, tecniche di validazione efficaci e tecnologie di base appropriate.
Per quanto riguarda i paradigmi di comunicazione e di interazione, il gruppo studia principalmente applicazioni basate su servizi (per esempio, Web service e cloud) e sistemi publish/subscribe e mobili, concentrandosi sull’uso di tecniche formali come base per le attività di modellazione e verifica.
Per quanto concerne la tecnologia abilitante, il gruppo di ricerca si concentra su algoritmi, protocolli, e piattaforme di middleware per supportare lo sviluppo di applicazioni largamente distribuite e altamente riconfigurabili, eseguiti su ambienti dinamici, inclusi i sistemi cloud e peer-to-peer, reti mobili e ad hoc (MANETs) e reti di sensori. Inoltre, per facilitare l'adattabilità dinamica dei sistemi software, il gruppo studia la definizione di contesti, situazioni e profili utente.
Un’importante classe di applicazioni studiate dal gruppo di ricerca riguarda i sistemi safety-critical, che hanno requisiti stringenti in termini di qualità, prestazioni e affidabilità. Si tratta spesso di applicazioni distribuite in tempo reale con vincoli stringenti (per esempio, sistemi avionici, controlli industriali, sistemi embedded), e il loro sviluppo può trarre beneficio dall'uso di metodi rigorosi per le fasi di specifica, progettazione e verifica. Il gruppo indaga tecniche formali e strumenti per lo sviluppo di applicazioni industriali real-time safety-critical e nuovi metodi di verifica basati su rigorosi concetti matematici.

Risutati principali della ricerca


Importanti pacchetti di software open-source sviluppati dal gruppo sono:

Inoltre, il gruppo ha sviluppato i seguenti metodi, linguaggi e tecniche:
  • Dynamo, una metodologia per il monitoraggio di applicazioni basate su servizi
  • Un modello concettuale per sistemi orientati ai servizi
  • Service-tiles, un approccio per l’ autoassemblaggio di composizioni di servizio
  • Una tecnica innovativa per il model checking di sistemi publish / subscribe
  • MANTRA, uno strumento per testare le trasformazioni di modello
  • Una tecnica per la verifica di specifiche logiche a tempo continuo attraverso approssimazioni
  • Una tecnica per costruire e verificare modelli descritti attraverso paradigmi multipli (domini temporali discreti/continui, formalismi operativi/descrittivi)
  • Spy, una tecnica di tipo black-box e dinamica per il recupero delle specifiche di tipi di dati astratti
  • FLAGS, un approccio goal-based per l’elicitazione di requisiti di sistemi di auto-adattivi
  • KAMI: un approccio model-based per supportare lo sviluppo e la gestione di sistemi adattivi con vincoli di QoS
  • Algoritmi per la gestione delle risorse,in service center di grandi dimensioni e/o sistemi cloud con l’obettivo di ridurre I costi (ad esempio I costi energetici)