Laboratorio Ingegneria SW Adattivo

All'interno di questo Laboratorio si intendono investigare temi di ricerca legati all'integrazione di meccanismi di social software nel workflow per la gestione del ciclo di vita del software intesi come elementi abilitanti per una migliore condivisione delle informazioni e una migliore attivazione delle competenze, con particolare interesse verso la gestione del software adattativo.

 

L’attività di ricerca che si intende sviluppare dovrà rispettare una metodologia per l’investigazione scientifica da applicare agli esperimenti da svolgere, nota come Empirical Software Engineering.

Infine, su questi temi si intende suscitare ed incoraggiare l’interesse industriale collaborando in eventi di disseminazione e divulgazione con l’Associazione Italiana di Ingegneria del Software, fondata di recente dai proponenti del laboratorio e da altri ricercatori.

Negli ultimi anni il software è diventato straordinariamente pervasivo, in quanto i sistemi ad alta intensità di software (“software-intensive”) hanno assunto un’importanza fondamentale in innumerevoli settori della società.

Tale pervasività è stata in buona parte favorita dai dispositivi mobili che sono diventati una delle più importanti piattaforme per la distribuzione e l'utilizzo di funzioni e servizi software. Allo stesso tempo, la dimensione e la complessità delle architetture software a bordo dei dispositivi e nelle infrastrutture al loro servizio sono aumentate costantemente, così come la richiesta di funzioni software contraddistinte da alti livelli di qualità e sicurezza (ULSS: ultra large software systems). Infine, i sistemi software-intensive sono sempre più spesso chiamati ad adattare da soli il proprio funzionamento in risposta ai cambiamenti del contesto in cui operano.

I sistemi software-intensive presentano quindi molteplici problematiche progettuali speciali che riguardano, ad esempio, la qualità funzionale, la sicurezza e l’adattabilità dei prodotti; la loro integrabilità in architetture complesse; la capacità di interfacciare gli umani in modalità di interazione molteplici non solo grafiche ma anche basati sul linguaggio naturale o più specificatamente su astrazioni ontologiche. Per di più, vista la generale e diffusa attenzione ai problemi ambientali, è necessario ridurre il più possibile il consumo di energia (e le relative emissioni di gas serra) delle applicazioni software, che dovrebbero “imparare” a consumare meno energia.

Per risolvere queste nuove problematiche è necessario analizzare i requisiti del software adattivo e ingegnerizzare il suo processo di sviluppo onde identificare e risolvere gli aspetti più critici, per esempio le qualità architetturali legate alla sicurezza.

Nei dispositivi mobili la sicurezza assume particolare rilevanza. In particolare occorre garantire che:

·         In una infrastruttura, i dispositivi più critici non siano mai compromessi;

·         i dati sensibili rimangano integri e corretti durante tutta l’esecuzione dei processi che li utilizzano, e non siano rivelati illegalmente a terze parti che non hanno gli opportuni diritti di accesso;

·         le funzioni software non siano interrotte, alterate o sfruttate per veicolare malware.

Le applicazioni per dispositivi mobili devono adattarsi a vincoli che non sono presenti nei computer convenzionali (ad esempio, display ridotto, interazione vocale, CPU lenta, alimentazione limitata, ecc.). Tali sistemi software-intensive possono trovarsi a operare in situazioni con scarsità di risorse (come l’energia, le infrastrutture di computazione e di archiviazione, larghezza di banda), che cambiano continuamente e in modo impredicibile, e che possono essere non determinabili al momento della progettazione.

Per affrontare queste limitazioni è necessario investigare, in condizioni controllate in laboratorio, gli aspetti concernenti l’adattività del software, ovvero: il testing per l’adat­tività, la gestione della configurazione e i processi di manutenzione per l’adattività.

I modelli e gli artefatti costruiti e tradizionalmente usati a tempo di progettazione devono essere resi disponibili a tempo di esecuzione per consentire una verifica dinamica in grado di supportare l’adattività. Allo stesso modo, il monitoraggio a runtime deve riflettere i cambiamenti nei modelli di progettazione per impedire comportamenti non desiderati.

La presenza di meccanismi adattativi indipendenti a vari livelli di astrazione richiede nuovi meccanismi di coordinazione che devono evitare comportamenti instabili e la violazione di proprietà chiave. Inoltre, l’ingegneria del software per dispositivi mobili deve seguire un'evoluzione specifica e separata dalla più generale branca dell’ingegneria del software; in questo caso, infatti, è necessario analizzare l'ambito mobile per collegare i parametri del sistema software con le aspettative dell'utente e con i criteri di conformità del mercato, e per ottenere quindi lo sviluppo di prodotti che possano soddisfare le attese del mercato.

In generale, l'elevata dinamicità dei meccanismi di feedback richiesti per garantire l’adat­tività rende di particolare interesse l'integrazione degli strumenti utilizzati nello sviluppo e nell'evoluzione dei sistemi software-intensive con meccanismi pensati per l'efficace distribuzione delle informazioni come quelli tipici del social software. SI pensi ad esempio all’ambito auto motive, in cui il software embedded che controlla motore e freni e di un automobile interopera con informazioni sul traffico provenienti da siti social.

Per ridurre il consumo di energia e l’emissione di CO2, vanno studiate e definite specifiche per il design di software energy-aware (cioè "green software", che si concentra in specifico sul consumo di energia), caratterizzando le applicazioni in termini di performance energetica, basandosi sull'implementazione di metriche indipendenti dalla piattaforma.

Share This

S5 Box

Cini Single Sign ON

Questo sito utilizza cookie, anche di terze parti, per migliorare la tua esperienza e offrire servizi in linea con le tue preferenze. Chiudendo questo banner, acconsenti all’uso dei cookie. Se vuoi saperne di più o negare il consenso a tutti o ad alcuni cookie vai alla sezione Cookie Policy