Per rispolverare la mia preparazione in ingegneria del software, ho deciso di leggere la terza edizione di UML Distilled, scritta dall’autorevole Martin Fowler; in passato ho letto la seconda edizione, ma i libri di Fowler sono una lettura sempre piacevole e sopratutto utile. Il libro è condensato (solo 155 pagine) ma pregno di argomenti e tecniche utili. Innanzitutto, specifico subito che il libro si basa sulla specifica UML2 e in particolare presenta una descrizione chiara e concisa sulle tecniche fondamentali e utili a chi si occupa di progettazione del software. Le tecniche sono presentate in modo semplice e descrittivo, corredati da un paio di esempi per ogni tecnica. Inoltre, si illustrano i punti di forza e debolezza di ogni tecnica. Oltretutto, per ogni tecnica è presente una sezione che spiega quando è utile utilizzare una determinata tecnica piuttosto che un’altra. Ad esempio, i diagrammi di package sono utili nella progettazione di sistemi di grande scala per documentare le dipendenze tra i componenti più importanti. Al termine di ogni capitolo, Fowler introduce un repertorio di esercizi corredati di soluzione. A mio avviso, le tecniche più utili tra quelle presentate sono:
- Diagrammi delle classi: consentono di descrivere le classi che compongono il progetto e le relazioni tra di esse;
- Diagrammi dei package: descrive le relazioni tra i package che compongono il model;
- Diagrammi di deployment: permette di definire come le componenti software saranno distribuite fra i vari nodi hardware a disposizione per il progetto;
- Casi d’uso (use case): descrivono le funzioni e i servizi offerti dal progetto dal punto di vista di un attore esterno;
- Diagrammi di attività: definisce una serie di attività per svolgere una determinata funzionalità. È simile ad un diagramma di flusso;
- Diagrammi dei componenti: complementa i diagrammi di deployment ed indica i componenti software che compongono il sistema e le relazioni tra di essi;
- Diagrammi di sequenza: esplora il comportamento dei componenti dal punto di vista temporale, e spiega l’evoluzione e la relazione dei componenti in relazione ai messaggi inviati e ricevuti agli altri componenti.
Nel libro vengono anche presentate tecniche non strettamente UML, ma sicuramente utili come le schede CRC ed i design pattern. Il testo è pensato per un pubblico che già possiede conoscenze di OOP e che conosce qualche altra metodologia di progettazione standard. In definitiva, quindi, un libro da avere assolutamente nella propria collezione personale. Costo: 25€