Visual Modeling
La procedura di Visual Modeling (modellazione visiva) è l'utilizzo di notazioni di progettazione di grafici e testo per la cattura di progettazioni software.
Relazioni
Elementi correlati
Descrizione principale

immagine di Visual Modeling

Visual modeling aumenta il livello di astrazione

Che cosa Visual Modeling?

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.

Perché eseguire la modellazione?

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:

Comprendere sistemi complessi

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à.

Esaminare e confrontare alternative di progettazione a basso costo

È 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.

Creare una base per l'implementazione

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.

Acquisire i requisiti in maniera precisa

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.

Comunicare le decisioni in modo chiaro

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/.