Mettere insieme i pezzi
Lo sviluppo di software basato su componenti è una nuova disciplina che promette di portare l'ingegneria di software in una nuova era, l'era industriale della tecnologia dell'informazione. Si pensa di assemblare il software a partire dai componenti, così come al giorno d'oggi l'hardware è costruito a partire da kit di pezzi. Il progetto EASYCOMP, finanziato dal programma IST (Tecnologie della società dell'informazione), ha inteso sviluppare strumenti per la costruzione di architetture software basate sui componenti, in grado di adattare i software a nuovi usi. Il progetto di riferimento RECODER ha creato una infrastruttura per la composizione invasiva di software basata sulla metaprogrammazione statica. La composizione invasiva si basa su linguaggi standard; questa sofisticata infrastruttura supporta analisi Java, C e C#, e vari strumenti di trasformazione. Per cominciare, dall'analisi sintattica delle entità trovate nel codice sorgente e nei class file, e delle relazioni tra elementi, viene derivato un metamodello (un modello di programmazione estremamente dettagliato). A tal fine, viene condotta un'analisi dei nomi e tipi che risolve i riferimenti alle entità logiche e al tempo stesso conserva i riferimenti incrociati. Nella fase successiva, l'informazione sul metamodello viene usata dal metaprogramma statico per controllare la trasformazione del modello di codice sorgente. Le librerie di RECODER forniscono una potente piattaforma per tutti i tipi di trasformazione da fonte a fonte in Java, C e C#. Le trasformazioni del programma possono generare piccole quantità di nuovo codice. Il formattatore permette poi di riprodurre i file sorgente, integrando agevolmente i nuovi frammenti di codice e conservando la formattazione del codice. Il processo di riscrittura del codice sorgente di un sistema per migliorarne struttura e leggibilità rende il sistema stesso più gestibile ed estensibile e permette di usare altrove le risorse di sviluppo. Al tempo stesso, se il codice è ben strutturato, è possibile inserire nuovi requisiti con più efficienza e meno problemi. Le capacità di elaborazione di RECODER permettono di aggiornare, in modo automatico e senza alterarne il comportamento, le applicazioni basate su componenti e usare versioni di componenti più recenti. Si tratta di un potente strumento che consente di accelerare lo sviluppo delle applicazioni software senza doverne affrontare l'inerente complessità.