REDSEEDS sviluppa la ricerca automatica per software repository
Un gruppo di ricercatori finanziati dall'Unione europea ha sviluppato un sistema automatico di ricerca in un software repository centralizzato per estrarre gli "artefatti" software dai sistemi attualmente in uso e per inserirli nei nuovi sistemi. Il progetto REDSEEDS ("Requirements-driven software development system"), finanziato dall'Unione europea, è stato finanziato dal tema "Tecnologie per la società dell'informazione" del Sesto programma quadro (6° PQ) con quasi 3 milioni di euro. Gli strumenti e il repository centrale creato da REDSEEDS faciliteranno il lavoro degli sviluppatori di software, oltre a renderlo molto meno noioso e alienante. Nella situazione attuale, gli sviluppatori sono costretti a scrivere programmi software partendo da zero, anche in presenza di software simili già esistenti per applicazioni o situazioni simili. Grazie all'innovazione portata da REDSEEDS, gli sviluppatori saranno in grado di progettare software su misura per le proprie necessità. Il gruppo REDSEEDS ha individuato un linguaggio di identificazione dei requisiti che permette agli sviluppatori di utilizzare un'interfaccia utente per isolare le proprie richieste. Una volta inseriti nel sistema i requisiti desiderati, il sistema di ricerca è automatizzato. Contemporaneamente, la tecnologia del repository esegue una ricerca nel repository e fornisce le risposte a quanto richiesto. "L'aspetto distintivo della nostra piattaforma è la sua capacità di indicare anche sommariamente le caratteristiche del nuovo sistema proposto. Queste caratteristiche sono poi confrontate con le caratteristiche e le capacità dei sistemi già esistenti", spiega Michal Smialek, del Politecnico di Varsavia e di Infovide SA, in Polonia. "I risultati sono visualizzati e corredati delle differenze e somiglianze tra il vecchio sistema identificato e quello nuovo". Per uno sviluppatore è quindi facile identificare e selezionare gli artefatti che possono essere riutilizzati, estraendoli dai sistemi esistenti e inserendoli nel nuovo sistema. "In questo contesto, con artefatto intendiamo un artefatto software elaborato su un computer da uno sviluppatore di software", dice il professor Smialek. "La forma può essere un qualsiasi modello o documento o programma, risultato di un progetto software", aggiunge. "Nell'ambito di un progetto è possibile produrre numerosi artefatti prototipi di progetto, per arrivare poi a un artefatto che è il codice che dice al sistema come funzionare. Anche il programma finale è un artefatto, risultato degli altri artefatti, ossia dal progetto e dal codice". La selezione automatica dei progetti e il successivo accesso alle parti di codice che possono essere riutilizzate permette agli sviluppatori di unire le caratteristiche di un sistema nuovo con quelle di un sistema precedente. Il risultato finale è uno strumento di sviluppo più veloce ed efficiente. "Se si è di fronte ad un problema che è già stato risolto in passato, basta inserire il progetto e il codice. Naturalmente potrebbero rendersi necessari alcuni adattamenti alla nuova situazione, ma il grosso del lavoro è già stato fatto nel progetto precedente", aggiunge il professor Smialek. Ad esempio, "Chi si connette ad un sito internet potrebbe essere costretto a premere un pulsante che crea un pop up che deve essere soddisfatto. Una volta premuto il tasto di invio, il sistema controlla la validità dei dati e li registra in memoria". "Questo tipo di funzionalità può essere utilizzata tra tipologie diverse di programmi. Se registrare un computer in un magazzino ha la stessa logica della registrazione online di un utente, è chiaro che è possibile copiare gran parte dello stesso progetto di sistema". Una volta convalidato il repository sarà immesso sul mercato. "Il valore commerciale risiede nella capacità di riduzione della quantità di lavoro richiesto per lo sviluppo di una nuova applicazione software. Questo si traduce nella possibilità di sviluppare sistemi sempre più grandi ricorrendo alle stesse risorse umane. Un elemento, questo, che sarà notevolmente apprezzato". I partner REDSEEDS si trovano in Austria, Germania, Lettonia, Lituania, Polonia, Turchia e Regno Unito.