Ad un primo livello, un modello esprime concetti in un ambiente (semi)formale. Questo livello è fondamentale perché fornisce sia la notazione (grafica) che la sua semantica (in)formale. Poiché la semantica è in qualche modo legata alla notazione, mi riferisco a questo livello semplicemente come livello di notazione. (Presumo qui la prospettiva dell’utente del modello UML; se volessi assumere la prospettiva dei costruttori di strumenti, dovrei separare la notazione e la semantica in due livelli distinti). Ogni modello UML conforme alle regole ben formate del meta-modello UML (vincoli OCL inclusi!) viene interpretato in questo livello.
Un livello sopra, c’è lo strato estetico. Qui i modelli visivi adottano convenzioni estetiche come gerarchie di cluster, evitando linee incrociate, raffigurando relazioni di eredità verso l’alto, al fine di facilitare la comprensione di parti importanti del modello. L’estetica, se adeguatamente utilizzata, aiuta la comprensione di un diagramma.
L’estetica combinata con la notazione costituisce la base per l’utilizzo dei modelli come strumento di comunicazione. Mi riferisco a quest’ultimo livello come livello di comunicazione. Questi livelli di modellazione sono additivi. L’estetica viene “aggiunta” alla notazione; la comunicazione coinvolge sia regole legate alla sintassi della notazione, sia convenzioni estetiche.
Questi livelli influiscono anche sul pubblico previsto di un modello. Ci sono due diversi ampi destinatari per un modello: gli esseri umani e le macchine. I linguaggi visivi sono un mezzo naturale per comunicare informazioni, idee, concetti in modo sintetico; da questo punto di vista, i modelli visivi sono più adatti per l’uomo rispetto al codice, soprattutto su larga scala. Inoltre, la comunicazione è di fondamentale importanza per la modellazione del software (perché dobbiamo rappresentare modelli grafici, se questa pratica non aggiunge qualcosa di non immediatamente ovvio rispetto agli altri artefatti come il codice?). Sfortunatamente, molti sforzi di modellazione sembrano mancare di questo importante strato. I modelli sembrano sopravvivere solo a livello notazionale. Questo è il livello degli strumenti CASE, in cui un modello viene verificato rispetto a regole (sintattiche) ben formate. Se consideriamo il modello come il deposito di una sorta di conoscenza strategica (di business), il modello stesso deve essere progettato di proposito, al di là dell’adempimento delle regole sintattiche.
Ogni architetto dovrebbe lavorare con attenzione a livello di comunicazione. La missione del diagramma deve essere dichiarata per rappresentare l’obiettivo, l’intento, lo scopo del diagramma. La mission è il “payload informativo” che il modello dovrebbe trasmettere ai suoi lettori. Se il diagramma non rivela l’intenzione, il diagramma fallisce a livello di comunicazione. Dov’è il valore dello sforzo di modellazione, se la comunicazione è veicolata male? Creare diagrammi che rivelano l’intenzione di chi progetta è ciò che chiamo progettare intenzionalmente. Ciò significa qualcosa in più di aggiungere un’annotazione testuale (dichiarazione di missione) a un diagramma: implica trasmettere le informazioni giuste nel posto giusto, come discusso in precedenza, sfruttando tutti e tre i livelli di interpretazione della modellazione. Il designer dovrebbe sapere, ad esempio, come adattare l’estetica allo stesso modo in cui sa quale parte della notazione può esprimere efficacemente un particolare concetto. Nei post futuri, mostrerò come la modellazione intenzionalmente può influenzare il modo di affrontare ogni livello di modellazione.
Questo articolo esplora tre spazi (o livelli) di modellazione: i livelli di notazione, di estetica e di comunicazione. Tutti questi tre spazi possono essere presenti e sfruttati opportunisticamente in un modello UML per realizzare meglio i diagrammi che rivelano l’intenzione. Per leggere di più su questo argomento, si veda http://baruzzo.wordpress.com/2013/12/31/using-uml-for-designing-intentionally/