Attuale posizione nel sito (percorso di navigazione):
Contenuto della pagina:
| Il Riutilizzo del software |
|
|
Come sviluppare una metodologia per produrre componenti applicativi riutilizzabili da gestire nel modo più efficaceIl "software reuse" è probabilmente una delle poche tecniche capaci di influire positivamente tanto sulla qualità del software quanto sui relativi costi e tempi di produzione. Le ragioni sono intuibili ma, per completezza, può essere opportuno riepilogarle brevemente. Innanzitutto le più ovvie: il software viene riutilizzato solo quando si è sicuri delle sue buone qualità e della sua efficienza. Ciò mette al riparo da errori che possono essere commessi durante l'attività di produzione e, nel contempo, influisce positivamente sia sui costi di sviluppo, sia sulla diffusione di nuovi prodotti in tempi brevi (time to market). Le ragioni meno manifeste riguardano invece un insieme di attività supplementari, ad esempio la preparazione delle componenti o il supporto alle "ordinarie" tecniche di progettazione, indispensabili per consentire un effettivo riutilizzo del software e inserire tale pratica come parte integrante del processo di sviluppo del software. Design for reuse e with reusePaolo Tiribelli, Amministratore di Sodalia, spiega che " il riutilizzo del software, [com'è stato autorevolmente affermato], non è un fatto spontaneo, non nasce da sè, ma va programmato, preparato e supportato da un'idonea strategia, dal convinto sostegno degli organi decisionali dell'impresa e da adeguati investimenti. A proposito di strategia, la figura 1 mostra una modalità di ingegnerizzazione dell'applicazione informatica (il Prodotto) strutturata in livelli logico-funzionali, a loro volta articolati mediante moduli caratterizzati da un differente potenziale di riutilizzazione. Tale strategia suggerisce di progettare il prodotto "A" con una tecnica (design for reuse) che massimizzi il riutilizzo dei suoi componenti in vista della realizzazione del prodotto "B" e, di contro, di progettare "B" in base ai componenti riutilizzabili già disponibili (design with reuse). A parte ciò, sussiste un'altra modalità di riutilizzazione del software che si impone nell'iterative development: quando cioè i componenti di un'applicazione vengono riutilizzati per realizzare una versione successiva dell'applicazione stessa (riutilizzazione verticale). La figura 2 aiuta a spiegare graficamente questo concetto. Essa, intende chiarire l'idea della cosiddetta riutilizzazione orizzontale la quale presuppone e richiede interventi di reingegnerizzazione (generalizzazione) dei componenti per migliorarne la portabilità , l'affidabilità , la qualità , etc. Un altro importante presupposto di un efficace programma di software-reuse è la "libreria" centralizzata dei componenti riutilizzabili la cui principale funzione è quella di "stivare" e rendere accessibili i componenti stessi. Altre funzioni, non meno importanti, della libreria sono quelle che presiedono alla "classificazione" dei prodotti prima dell'inserimento nel repository ed al loro successivo reperimento (retrieval), a richiesta dei potenziali riutilizzatori. Dalla loro efficienza, come mostra la tabella 1, dipende gran parte dei risultati del programma di riutilizzazione. Di conseguenza, se molti sono i vantaggi attesi dal riutilizzo del software, molte sono anche le precondizioni che bisogna garantire alla "fabbrica" perché i benefici si realizzino. Ne diamo conto nel paragrafo successivo". Un programma aziendale per il riutilizzo del software"Sodalia", prosegue Tiribelli, "ha istituito un Programma aziendale per il riutilizzo del software, concepito per fare del riuso una pratica sistematica del processo iterativo di sviluppo. La strategia adottata si articola secondo tre direttrici:
Più in particolare il programma comprende:
Conclusione"Cinque anni fa", conclude Tiribelli, "Sodalia decise di trarre profitto dalle tecnologie più promettenti, anche se all'epoca poco accreditate, per la produzione, a costi contenuti, di software di qualità capace di soddisfare i bisogni sempre più complessi ed urgenti degli operatori dei servizi di telecomunicazione. Il processo di produzione fu basato sin dall'inizio su un approccio iterativo/sperimentale object-oriented accoppiato con tecniche di riutilizzazione del software. Tale processo è stato applicato in modo sistematico grazie alla metodologia SIMEP (vedi prima parte dell'articolo), ad un forte convincimento da parte del Management che ha portato all'istituzione di apposite strutture organizzative ed alla realizzazione di specifici tool di supporto. Oggi il riutilizzo del software costituisce in Sodalia una pratica corrente: i gruppi di progetto, infatti, la praticano sia a livello di componenti di piccole dimensioni (fine-grain artifacts), sia a livello di componenti di medie dimensioni (medium-grain artifacts) ed i risultati sono evidenti anche in termini di pay-back".
Figura 1
Figura 2
Tabella 1 |