Recentemente durante la stesura della relazione di un progetto web in un esame universitario mi sono imbattuto nell'utilizzo di UML per disegnare l'interazione utente-sistema. Questa tecnica nota come progettazione UX permette di modellare la struttura dinamica delle pagine e le mappe di navigazione. Di seguito un diagramma che mostra l'interazione dell'utente con la pagina "risultati della ricerca":
Sappiamo tutti che UML è una famiglia di rappresentazioni grafiche che possono essere utilizzate per descrivere sistemi software a oggetti. UML è uno standard internazionale universalmente riconosciuto non necessariamente limitato all'ambiente della produzione del software. UML lascia libero l'utente di disegnare i diagrammi al livello di dettaglio che preferisce e sono convinto che mantenere i diagrammi semplici ed espressivi facilita la comprensione. E' indubbia la verità del detto "un'immagine vale più di mille parole". Il problema generale della documentazione e soprattutto della realizzazione dei diagrammi è mantenere la sincronizzazione tra il codice e i diagrammi stessi durante tutta l'evoluzione del progetto e oltre. Per questo motivo ritengo estremamente utile la presenza di strumenti che possano nei limiti del caso facilitare questa operazione.
L'esempio più eclatante è sicuramente il Class Diagram di Visual Studio che permette di disegnare un modello a oggetti a diversi livelli di dettaglio e soprattutto viene garantita la sincronizzazione con il codice in entrambe le direzioni ! Possiamo a tutti gli effetti ritenere il Class Diagram il diagramma idiomatico corrispondente al "Diagramma della Classi di UML". Penso che uno sviluppatore .NET con uno strumento simile difficilmente avrà bisogno di utilizzare il diagramma delle classi UML. Vero è che UML è standard al contrario dello strumento fornito da Microsoft.
Questo post vuole essere semplicemente una domanda a voi che sviluppate e progettate software concreto quotidianamente: quanto UML è veramente utilizzato in pratica ?
Inoltre sento sempre più spesso parlare di Metodologie Agili e quindi sorge spontanea la domanda: come si colloca UML nel processo di sviluppo incrementale in un team agile ?
Attendo una risposta in base alla vostra esperienza personale....
PS: segnalo anch'io come ha già fatto Marco Minerva il programma open-source StarUML per realizzare in modo semplice e veloce un qualsiasi diagramma UML.