I software sono in grado di pensare autonomamente
La sempre maggiore dipendenza della società odierna da software a elevate prestazioni rende necessario lo sviluppo di applicazioni in grado di adattarsi a queste nuove esigenze. Alcuni ricercatori finanziati dall’UE hanno contribuito alla creazione di software sofisticati con elevati livelli di adattabilità relativamente alla mutevolezza dei bisogni degli utenti e degli ambienti di utilizzo.
I sistemi autoadattativi sono programmi in grado di reagire e di
riconfigurarsi autonomamente riducendo al minimo l’intervento umano e
garantendo, idealmente, un soddisfacimento perenne dei bisogni degli
utenti. Tuttavia, gli attuali paradigmi di ingegneria del software non
consentono ai sistemi di prevedere gli eventi, ma solo di reagire a ciò
che accade. L’incapacità di prevedere i cambiamenti potrebbe generare
tempi di inattività dei programmi.
Il progetto RUNMORE (Run-time model projections for software failure prediction) ha contribuito allo sviluppo sistematico di software dinamicamente adattativi in grado di prevedere automaticamente gli eventi e di scongiurare potenziali malfunzionamenti.
I ricercatori hanno adottato un nuovo concetto basato su modelli runtime che conferiscono ai software elevate capacità di ragionamento sui cambiamenti potenziali e di gestione degli stessi. I modelli runtime, che derivano da software di sviluppo guidati da modelli, vengono integrati nel sistema durante la fase di esecuzione e sono in grado di esprimere regole di adattamento. I ricercatori hanno tentato di comprendere in che modo fosse possibile utilizzare questi modelli ai fini del monitoraggio e dell’analisi del comportamento di software complessi, unitamente al relativo ambiente di utilizzo e agli utenti finali. Il gruppo di lavoro ha inoltre proposto un sistema in grado di risolvere i conflitti tra i vari requisiti durante il processo di adattamento.
Un tipico esempio di sistema adattativo è rappresentato dalle applicazioni web che consentono di migliorare l’esperienza di navigazione adattando contenuti e comportamenti alle preferenze degli utenti. Partendo da questo esempio, i ricercatori hanno escogitato un modo per adattare le regole di trasmissione dei server alle esigenze specifiche dei clienti.
In ambienti caratterizzati dall’elaborazione di grandi flussi di eventi, le tecnologie basate sull’elaborazione di eventi complessi (Complex Event Processing, CEP) consentono di identificare dati significativi e di rispondere il più rapidamente possibile a queste informazioni. I ricercatori hanno scoperto una nuova struttura in grado di apprendere le regole CEP utilizzando modelli di estrazione di dati (mining) recuperati da tracce storiche di eventi. Questa scoperta potrebbe garantire lo sviluppo di una nuova classe di software in grado di apprendere regole complesse e di aiutare questi sistemi a riconfigurarsi e ad adattarsi automaticamente ai cambiamenti.
Il lavoro dei ricercatori ha contribuito al miglioramento del comportamento dei software nel tempo attraverso la raccolta di informazioni sui cambiamenti relativi agli ambienti di utilizzo e ai requisiti degli utenti. Questi sistemi autoadattativi non si limitano dunque a gestire automaticamente i cambiamenti, ma sono anche in grado di prevederli.
pubblicato: 2016-02-25