Il processo di sviluppo software iterativo

Il processo di sviluppo software iterativo

In questo articolo si descrive un processo di sviluppo software iterativo, che si concilia con la metodologia orientata agli oggetti, con cui verrà condotta la progettazione. Bisogna notare che la parola iterativo indica di fatto la modalità di sviluppo del software, in quanto sono presenti in letteratura differenti modalità.

Il processo iterativo riduce in modo significativo i rischi di progetto negli stadi iniziali dello sviluppo e permette di ottenere un maggiore controllo sul sistema prodotto. Con un processo di sviluppo iterativo il sistema non viene rilasciato in un’unica versione alla fine del progetto, ma viene sviluppato e rilasciato in porzioni, ciascuna delle quali contiene un sottoinsieme progressivamente crescente di funzionalità.

Lo sviluppo risulta così suddiviso in iterazioni: durante ogni iterazione si realizza una porzione del sistema rispondente ad un determinato sottoinsieme delle specifiche. Ogni iterazione si articola a sua volta in analisi, progetto, codifica e sperimentazione. Al termine di ogni iterazione è prevista una verifica di quanto sviluppato con i futuri utenti ed i responsabili del progetto.

Nel corso del processo di sviluppo vengono prodotti diversi modelli del sistema utilizzando il linguaggio di modellazione prescelto. La prospettiva in cui tali modelli sono prodotti cambierà durante il corso dello sviluppo: essa sarà infatti inizialmente orientata all’analisi (definire formalmente cosa sviluppare) quindi al progetto (definire formalmente come svilupparlo, in termini di struttura e comportamento del software) e infine all’implementazione (come realizzare, per mezzo degli strumenti di sviluppo individuati le soluzioni progettuali identificate nella fase precedente).

Vale la pena di sottolineare in questa sede che, in linea generale, i diagrammi potranno essere disegnati con varie prospettive indipendentemente dal loro tipo. Infatti il tipo di diagramma dipende dal particolare aspetto del sistema (utilizzo, struttura, comportamento) che si desidera descrivere, mentre la prospettiva utilizzata per disegnarlo dipende dal grado di astrazione (concettuale, specifica, implementazione) con cui si è in grado di descriverlo allo stadio corrente del progetto.

Per utilizzare in modo efficace lo sviluppo iterativo è necessario adottare:

  • un linguaggio di modellazione che garantisca la possibilità di accrescere il progetto del sistema attraverso il riutilizzo di componenti sviluppati precedentemente e sia resistente a successivi raffinamenti delle specifiche;
  • un linguaggio di modellazione in grado di fornire viste del sistema da sviluppare a differenti livelli di astrazione, favorendo la costruzione di una nuova vista a partire da quelle già sviluppate.

Il primo requisito è soddisfatto dai linguaggi di modellazione orientati agli oggetti come UML perché, come accennato, questi offrono i migliori strumenti per costruire modelli flessibili e modificabili nel tempo attraverso i meccanismi dell’ereditarietà, dell’aggregazione e dell’incapsulamento. I primi due consentono di costruire nuovi oggetti a partire da quelli preesistenti, sfruttando le relazioni is-a e part-of. Il secondo consente di modificare l’implementazione di un determinato oggetto, ad esempio per migliorare le prestazioni di un’operazione che esso definisce, senza per  questo richiedere la modifica delle classi che utilizzano tale operazione, sfruttando il meccanismo  dell’incapsulamento.

Il secondo requisito è soddisfatto dal linguaggio UML, che integra diversi modelli, permettendo di descrivere diversi aspetti dei componenti del sistema (struttura, comportamento, architettura) a diversi livelli di astrazione (concettuale, logico, implementativo).

Prospettiva di utilizzo di un modello nei diversi momenti del processo di sviluppo software
Prospettiva di utilizzo di un modello nei diversi momenti del processo di sviluppo software

 

Precedente Linguaggio UML (Unified Modeling Language) Successivo L'idea alla base dei Pattern UML

Lascia un commento

*