Come usare l’UML?

Recentemente mi e’ stato chiesto come si sposano XP e l’utilizzo del UML, ovvero se e’ molto usato il design delle classi in UML prima di implementarle.

Per mia esperienza, l’UML puo’ essere utile come strumento di comunicazione nel team, per trasmettere una idea di design, per esplorare la struttura statica e dinamica degli oggetti di un sistema. Una volta ottenuto il risultato (comunicare l’idea, chiarirsi le idee, mettere a fuoco una issue), si butta via il diagramma.

Non fraintendetemi pero’.

Una delle prime cose che ho studiato quando sono entrato nel team Xplayers di Quinary e’ proprio la notazione UML. In particolare sono magistrali alcuni capitoli del libro di Larman “Applying UML and Patterns” e alcuni articoli di Bob Martin (per esempio questo). Questo per dire che un bravo xper deve conoscere bene l’UML perche’ deve saperlo leggere e scrivere (in particolare come dicevo i class diagram, i collaboration diagram e i sequence diagram), cosi’ come deve conoscere mooolto bene i pattern, perche’ deve saperli riconoscere quando emergono dal design del codice in evoluzione (stessa cosa vale per i principi dell’OO).

Uno degli usi migliori per mia esperienza della notazione UML e’ per esplorare un sistema legacy, ovvero per capire che tipo di legami e di dinamiche ci sono dietro al sistema, magari disegnando qualche class diagram e/o collaboration diagram. E’ quindi molto utile per avere una visione di insieme, seppure molto limitata, di un sistema. Anche qui si disegna il diagramma, e poi, appena diventa inutile (si spera presto), lo si butta via.

Advertisements