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.

One thought on “Come usare l’UML?

  1. condivido in pieno, sopratutto il fare-e-buttare i diagrammi. aggiungo solo due cose:
    * fare un diagramma mi torna utile quando sto per rifattorizzare, per esplorare soluzioni alternative pochi istanti prima di scrivere il codice
    * aggiungerei alla lista degli indispensabili i diagrammi UML di stato

    ciao
    -papo-

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s