Tag: programming

  • UML Distilled, guida rapida al linguaggio di modellazione standard (terza edizione): la mia recensione

    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€

  • Tecniche di progettazione agile con Java (design pattern, refactoring, test): la recensione

    Tecniche di Progettazione Agile con JavaIn questi giorni ho letto un libro di Sandro Pedrazzini intitolato “Tecniche di progettazione agile con Java: design pattern, refactoring, test” (Ed. Tecniche nuove, 2006 – 29.90 €).

    Sono sempre stato molto attratto dall’Agile development, dall’eXtreme Programming e dai suoi metodi e soprattutto anche dalla metologia TDD (Test Driven Development); oltre all’immancabile “Thinking in Java”, non ho mai potuto il piacere di leggere dei libri inerenti quest’argomento. Fino a quando non ho preso questo libro.

    Infatti, i libri italiani (accademici e non) non affrontano facilmente un argomento così innovativo, interessante e delicato quale la programmazione agile. Questo libro è però una piacevole eccezione: i lettori vengono introdotti passo passo alla progettazione agile, alle tecniche di refactoring e ai design pattern utilizzando numerosi esempi (in Java – sarebbe interessante una versione di questo libro dedicata al Python). Al lettore non viene lasciato alcun dubbio: più di una volta, durante la lettura del libro, mi è venuto un dubbio riguardante il codice scritto. Con mia grande sorpresa, quasi sempre nella pagina successiva c’era un box (o una nota) di chiarimenti.

    È davvero un buon libro e scritto nell’ottica di poter servire ai lettori: gli argomenti sono espressi in modo chiaro e semplice, e soprattutto dal punto di vista del lettore, cioè dal punto di vista di chi legge per imparare! (e non come alcuni libri dove chi scrive lo fa per dimostrare quanto è bravo). I capitoli sono compatti (come le classi scritte da un buon programmatore XP?) e si leggono molto facilmente. Gli esempi sono curati e molto chiari.

    In definitiva si tratta di un libro che consiglio, da leggere e da tenere nella propria “biblioteca” per ogni futura evenienza.