
Dalla Quarta di Copertina...
Nello sviluppo dei moderni sistemi software, l’analisi è un processo sempre più orientato a elaborare un modello di conoscenza profondo, linguisticamente raffinato, incentrato sulla comprensione del problema e sui bisogni da soddisfare. Inteso così, il processo di analisi è ben più della specifica di un insieme di requisiti software: esso è il primo passo nella costruzione di un modello concettuale non banale su cui fondare lo sviluppo del sistema finale, in linea con gli approcci “Clean”.
I casi d’uso sono una tecnica con cui dare forma a tale modello, rispondendo alle esigenze di documentare una visione di business del prodotto prima ancora di stendere la lista di funzionalità da implementare.
Il testo si propone come guida di riferimento per usare i casi d’uso nell’analisi di sistemi industriali reali, adottando approcci sia tradizionali, sia agili. Esso è organizzato in tre parti. La prima parte discute gli aspetti di fondamento: la notazione dei casi d’uso, le strategie e le tecniche di modellazione. La seconda parte raccoglie una serie di pattern e di anti-pattern ricorrenti nella pratica dei casi d’uso. La terza parte, infine, affronta l’elaborazione di tre casi di studio industriali, accompagnando idealmente il lettore dalle prime fasi di analisi sino alla progettazione del sistema e alla definizione dei test di accettazione.
Contenuto del libro
Prefazione
Parte 1
1. Introduzione: l’analisi moderna del software
Contesti tradizionali
Contesti agili
La conoscenza come asset
Ripensare alle dinamiche dell'analisi in chiave di gestione della conoscenza
2. I casi d’uso: concetti generali e notazione
Concetti fondamentali
Notazione essenziale
Casi d’uso e scenari
Punti chiave
3. Strategie: come rendere efficace l’analisi con i casi d’uso
Identificare il confine del sistema e gli attori
Creare “buoni” casi d’uso orientati ai goal di business
Stabilire il giusto livello di dettaglio nelle descrizioni testuali
Rendere omogenea la granularità del modello dei casi d’uso
Organizzare un grande sistema in porzioni piccole e maneggiabili
Gestire gli artefatti del modello come asset di conoscenza
Punti chiave
4. Tecniche: come passare dall’analisi alla consegna di un prodotto usando i casi d’uso
Il workshop casi d’uso
Attribuire una priorità per stendere il “piano” dei casi d’uso
Un metodo analitico per la stima dell’impegno
Un metodo esperienziale per la stima dell’impegno
Tracciabilità dei casi d’uso
Casi d’uso 2.0 e modellazione agile
Casi d’uso e test di accettazione: La specifica per esempi
Punti chiave
Parte 2
5. Pattern di design dei casi d’uso
6. Anti-pattern di modellazione dei casi d’uso
7. Essence: la pratica dei casi d’uso secondo l’approccio essenziale all’ingegneria del software
Parte 3
8. Caso di studio #1: il sistema di navigazione autonoma
9. Caso di studio #2: il sistema di gestione di un terminal aeroportuale
10. Caso di studio #3: il sistema di carico-scarico portuale
11. Epilogo: Casi d’uso, valore di business e visione di prodotto
Appendici
A1 Bibliografia
A2 Riepilogo di strategie, tecniche e pattern
A3 Infografiche, schede e checklist
A4 Indice analitico e glossario
Bonus Material
Strategies and Tactics for effective Software Analysis || The Checklist (valore: 12€)
Una checklist che illustra
- le strategie di identificazione degli attori e del confine dell'automazione
- due tattiche per creare "buoni" casi d'uso orientati al valore fornito
- due tattiche per organizzare un grande sistema in porzioni più piccole e maneggiabili
- tre tattiche per stabilirte il livello ideale di tettaglio e di granularità in un modello dei casi d'uso
Pitfalls & Mistakes in working with Use Cases || The Review Checklist (valore: 12€)
Una checklist che illustra
- quattro trappole frequenti quando si devono modellare dei requisiti con la tecnica dei casi d'uso
- Sette errori da evitare con esempi concreti a supporto
-
Una checklist finale per validare un modello dei casi d'uso a livello di diagramma, di organizzazione generale e di specifiche testuali

Author's Bio
Dr. Andrea Baruzzo has a strong experience in the field of software engineering, working as teacher, mentor, and consultant for both academia and industry. He specialized in software analysis and design using traditional and agile methods. In more than 20 years of practice he helped companies apply/tailor/learn object technology in several application domains (avionics, finance, astronomics, defence, healthcare, energy, to name some). In the last decade, he refined his expertise helping organizations to move from a low quality profile to a more managed environment, where technical debt is under control, projects are part of a well-crafted product vision, and knowledge underlying every core product is better documented.
He also writes books and articles on a wide range of topics such as use case modeling, software requirement specification, architecture and patterns, software testing, product vision, technical debt analysis.