/  5
 
Disegno per il riuso e con il riuso
Ing. R. Turco
Copyright 2003
R. Turco
 
Introduzione
Il “software reuse” è una tecnica di notevole interesse e tanto desiderata da tutte le aziende
che producono software nel mondo.Ogni strategia di riuso del software implica anche un
livello di granularità
a cui il riuso è fatto:
 
la classe;
 
il componente;
 
il framework;
 
la strategia di risoluzione.
E’ possibile riusare, quindi:
 
 
librerie di classi (toolkit), componenti e framework già in campo e di cui si conoscequalità, efficienza e prestazioni;
 
pattern architetturali, di analisi e di progetto;Riuscire a produrre software facendo riuso comporta molti vantaggi:
 
riduzione dei tempi di progettazione, di sviluppo e test;
 
riduzione del numero di persone coinvolte e dei rischi correlati;
 
riduzione di diverse attività collaterali;
 
riduzione dei tempi di risposta e del “time to market”;
 In un mondo dove la richiesta di servizi e le esigenze del cliente finale possono nascererapidamente senza un minimo di preavviso o di previsione dello stesso cliente finale, diventa
una chiave vincente il fatto di avere a disposizione una metodologia come l’Object Orientedche, con le sue possibilità di riuso e processi produttivi iterativi, rende l’azienda competitiva.
 Tuttavia questo richiede opportuna impostazione organizzativa, metodologica e di Know-how.
Un oculato uso dell’Object Oriented e del riuso dei componenti crea, inoltre, un terzo scenario
valido ed alternativo a quelli
make
o
buy 
.In questo caso, difatti, oltre alle soluzioni generalizzate acquistate (buy) o quelle realizzate adhoc (make), esiste quella dei framework o dei componenti, disegnati per essere riusati e,quindi, flessibili.Questa terza soluzione sfrutta la maggiore flessibilità che presenta un componente o unframework riusabile, rispetto a prodotti generalizzati rigidi o difficilmente customizzabili [DR3].
Il riuso, però, non avviene per caso o spontaneamente, ma richiede una “vision unificata”, una
cultura in tal senso, una organizzazione al riuso, una visibilità ed una programmazioneunificata dei vari progetti da realizzare, un minimo di investimento.
Organizzazione al riuso 
Per poter sfruttare al massimo le tecniche di riuso il progetto, la direzione o l’azienda dovrebbe
organizzarsi con alcuni gruppi specializzati ad una o più tematiche, che progetta e riusa per Nvolte i componenti sviluppati, o addirittura per N progetti. Spesso si parla di ReuseCompetence Center (RCC).
 
Previsione e Programmazione del riuso 
Avendo una visibilità dei progetti da realizzare ed essendo definite le tecnologie in gioco èpossibile pianificare una organizzazione al riuso. Occorre una definita strategia che sostenga lescelte aziendali in modo efficace.La cosa dovrebbe avere notevole importanza ed essere opportunamente favorita anche dalcliente. In altri termini un coinvolgimento del cliente su tali tematiche non può che portare
notevoli benefici. Alcuni clienti all’avvio di vari progetti si orientano ad ottenere sinergia grazie
al riuso di uno stesso gruppo progettuale e di sviluppo sugli N progetti.Gli investimenti del società che sviluppa il software sono innanzitutto formativi e progettuali.
L’investimento progettuale viene usato per sostenere inizialmente il costo maggiore, perché,
fissata la tecnologia in gioco, la progettazione deve tener conto degli aspetti degli N progetti, oparte di essi, individuare le componenti riusabili e progettare con tecniche che garantisconoflessibilità anche per futuri progetti.
L’investimento viene assorbito fac
ilmente da un costo minore rispetto a quello necessario da Ngruppi sugli N progetti che produrrebbero prodotti completamente diversi.
Strategie di prodotto per il riuso 
Una volta che esiste una programmazione del riuso e un’organizzazione, occorre defini
re unamodalità di lavoro, un metodo al riuso.Un modo di progettare per il riuso è di vedere il prodotto finale da realizzare secondo stratilogici-funzionali, come in fig. 1.
Fig. 1
Questo però richiede almeno due modalità progettuali:
 
Design for reuse;
 
Design with reuse;
Design for reuse
Per chi è avvezzo ai Pattern [DR1][DR2][DR3][DR4][DR5][DR6], sa che questo vuol direprogettare un prodotto secondo il
Pattern Layer 
. Ogni Layer di Livello N dipende dai serviziforniti dal Layer di Livello N-1.Questa strategia richiede una definizione rigorosa delle interfacce tra i vari livelli e consente:
 
facile riuso di un Layer;
Moduli applicativiModuli dominioModuli middlewareSistema operativoModuli applicativiModuli dominioModuli middlewareSistema operativo
Componenteriusabile

Share & Embed

More from this user

Add a Comment

Characters: ...