Visual modeling aumenta il livello di astrazione
Visual modeling (modellazione visiva) è l'utilizzo di notazioni di progettazione di grafici e testo per la cattura di
progettazioni software. Una notazione, come ad esempio UML, consente l'aumento del livello di astrazione mantenendo
rigida la sintassi e la semantica. In questo modo la comunicazione nel team di progettazione è migliore durante la
creazione e la revisione della progettazione, consentendo al lettore di ragionare sulla progettazione e viene fornita
una base chiara per l'implementazione.
Un modello è una vista semplificata di un sistema. Esso mostra gli elementi essenziali del sistema da una certa
prospettiva e nasconde i dettagli non essenziali. I modelli forniscono una guida per effettuare quanto segue:
L'importanza dei modelli aumenta in relazione alla complessità dei sistemi. Ad esempio un canile può essere
costruito senza progetti. Tuttavia, se si passa alle case e poi ai grattacieli l'esigenza di progetti diventa
marcata.
Analogamente, una piccola applicazione creata da una persona può essere facilmente compresa in pochi giorni nella sua
globalità in pochi giorni. Tuttavia, un sistema e-commerce con decine di migliaia di SLOC (source lines of code)
o un sistema di controllo del traffico aereo con centinaia di migliaia di SLOC non possono essere facilmente compresi
da una persona. La costruzione di modelli consente allo sviluppatore di concentrare l'attenzione sulle linee
generali, comprendere il modo in cui i componenti interagiscono e identificare gli errori gravi.
Di seguito sono riportati alcuni esempi di modelli:
-
Casi d'uso per specificare in modo inequivocabile la funzionalità
-
Diagrammi di classe e diagrammi di modelli dati per acquisire la progettazione
-
Diagrammi di transizione di stato per modellare funzionamenti dinamici
La modellazione è importante poiché consente al team di visualizzare, costruire e documentare la struttura e il
funzionamento del sistema, senza perdersi nella complessità.
È possibile creare e modificare modelli semplici a basso costo per esaminare alternative di progettazione. Le
idee innovative possono essere acquisite e revisionate da altri sviluppatori prima di investire in sviluppo di codici
costoso. Quando viene associata allo sviluppo iterativo, la modellazione visiva facilita agli sviluppatori la
valutazione delle modifiche di progettazione e la comunicazione di tali modifiche all'intero team di sviluppo.
Molti progetti oggi impiegano linguaggi di programmazione a oggetti per ottenere sistemi riutilizzabili, stabili e che
consentano modifiche. Per avere tali vantaggi è addirittura più importante utilizzare una tecnologia ad oggetti nella
progettazione .RUP (Rational Unified Process) produce un modello di progettazione ad oggetti che costituisce la base
per l'implementazione.
Con il supporto dei tool appropriati, un modello di progettazione può essere utilizzato per generare un insieme
iniziale di codice per l'implementazione. Ciò viene denominato "forward engineering" o "generazione di
codice". I modelli di progettazione, inoltre, possono essere potenziati per includere le informazioni necessarie
per creare il sistema.
È possibile anche utilizzare la procedura di reverse engineering per generare modelli di progettazione da
implementazioni esistenti. Tale procedura può essere utilizzata per valutare le implementazioni esistenti.
"Round trip engineering" combina le tecniche di forward engineering e reverse engineering per garantire la coerenza
della progettazione e del codice. Combinato con il processo iterativo e con i tool corretti, round-trip
engineering determina la sincronizzazione della progettazione e del codice durante ciascuna iterazione.
Prima di creare un sistema è importante acquisire i requisiti. La specifica dei requisiti mediante un modello
preciso e inequivocabile garantisce che tutti i portatori d'interesse comprendano e concordino sui requisiti.
Un modello che separa il funzionamento esterno del sistema dall'implementazione consente di concentrare l'attenzione
sull'utilizzo progettato del sistema, senza restare bloccati in dettagli di implementazione.
RUP utilizza UML (Unified Modeling Language), una notazione costante che può essere applicata per la progettazione del
sistema e per la progettazione del business. Una notazione standard serve per gli scopi di seguito
riportati (consultare [BOO95]):
-
"It serves as a language for communicating decisions that are not obvious or cannot be inferred from the code
itself" (serve come linguaggio per comunicare decisioni che non sono ovvie o che non possono essere dedotte dal
codice stesso).
-
"It provides semantics that are rich enough to capture all important strategic and tactical decisions" (fornisce
semantica sufficientemente ricca per acquisire tutte le importanti decisioni strategiche e tattiche).
-
"It offers a form concrete enough for humans to reason and for tools to manipulate" (offre un formato
sufficientemente concreto per consentire il ragionamento degli uomini e la manipolazione dei tool.
UML rappresenta la convergenza delle procedure ottimali nella modellazione del software in tutta l'industria della
tecnologia di oggetti. Per ulteriori informazioni su UML, visitare il sito Web all'indirizzo http://www-306.ibm.com/software/rational/uml/.
|