|
Un'introduzione sintetica ma completa alla progettazione del software utilizzando UML (Unified Modeling Language). Ecco l'obiettivo di UML pratico che, oltre a descrivere con esempi concreti e progetti svolti tutti i principali diagrammi UML, fornisce anche nozioni di base sull'ingegneria del software, indicando risorse e direzioni per ulteriori approfondimenti. Scritto pensando non solo agli studenti di Ingegneria del Software nei nuovi corsi di laurea triennali della classe informatica, ma anche a quelli che seguono corsi di altre facolta', questo testo offre spunti utilissimi anche a un programmatore interessato a uscire dalla dimensione artigianale per confrontarsi con i problemi posti dallo sviluppo industriale del software.
Tra gli argomenti chiave:
- brevi note sui principali processi di produzione del software
- tecniche pratiche di raccolta ed elaborazione dei requisiti
- tecniche pratiche per eseguire correttamente i diagrammi UML
- panoramica sulla gestione di progetto e sulle caratteristiche del software visto come prodotto industriale
- veloce panoramica su temi e letture aggiuntive
Ernesto Damiani e' Professore Straordinario presso il Dipartimento di Tecnologie dell'Informazione dell'Universita' di Milano, Polo Didattico di Ricerca di Crema, dove tiene i corsi di Sistemi per l'Elaborazione dell'Informazione e di Ingegneria del Software. Attualmente coordina numerosi progetti di ricerca e sviluppo software con finanziamenti ministeriali, comunitari ed aziendali; tra i suoi interessi di ricerca ci sono i sistemi distribuiti basati sul Web e le metodologie avanzate di software engineering.
Mauro Madravio e' stato per tre anni funzionario tecnico presso il Dipartimento di Tecnologie dell'Informazione dell'Universita' di Milano. Attualmente lavora nell'ambito della Convenzione di Ricerca tra il Dipartimento di Tecnologie dell'Informazione e il gruppo SoftPeople sull'innovazione nel processo di sviluppo del software. Opera inoltre come consulente e formatore su vari temi dell'Ingeneria del Software.
Indice
Prefazione
Struttura e contenuti
Gli autori
Capitolo 1 Richiami sui cicli di vita e sulle metodologie di processo
1.1 Introduzione
1.2 Ciclo di vita di un prodotto software
1.2.1 Ciclo di vita a cascata
1.2.2 Ciclo di vita a spirale
1.3 Valutazione dei rischi
1.4 Metodologie di processo
1.4.1 Rational Unified Process
1.4.1.1 Sviluppo di software in modo incrementale
1.4.1.2 Gestione dei requisiti
1.4.1.3 Uso di un'architettura basata sui componenti
1.4.1.4 Modellare il software in modo visuale
1.4.1.5 Verifica continua della qualita'
1.4.1.6 Controllare i cambiamenti nel software
1.4.2 Metodologie agili ed Extreme Programming
1.5 Letture consigliate
Capitolo 2 Requisiti e glossario di progetto
2.1 Introduzione
2.2 Presentazione del problema di esempio
2.3 Definizione dei requisiti
2.4 Classificazione dei requisiti
2.5 Priorita' dei requisiti
2.5.1 MUST
2.5.2 SHOULD
2.5.3 MAY
2.6 Classificazione dei requisiti dell'esempio
2.6.1 Requisiti funzionali
2.6.2 Requisiti non funzionali
2.6.3 Requisiti tecnologici
2.6.4 Requisiti inversi
2.7 Compilare il glossario
2.7.1 Glossario dell'esempio
2.8 Un po' di storia di UML
Capitolo 3 Dai requisiti ai casi d'uso
3.1 Introduzione
3.2 Struttura di un progetto UML
3.3 I casi d'uso
3.4 Relazioni tra casi d'uso
3.5 Casi d'uso al lavoro
3.6 Letture consigliate
Capitolo 4 Diagrammi delle classi
4.1 Introduzione
4.2 Tipi di relazioni
4.3 Tipi di prospettive
4.4 Molteplicita' delle relazioni
4.5 Associazioni
4.6 Attributi e metodi
4.7 Tipi di classi
4.8 Disegnare il diagramma delle classi
4.8.1 Commento al diagramma delle classi
4.9 Note d'implementazione
4.10 Letture consigliate
Capitolo 5 Diagrammi di interazione
5.1 Introduzione
5.2 Diagrammi delle sequenze
5.2.1 Valori di ritorno
5.3 Applicazione al nostro esempio
5.4 Diagrammi delle collaborazioni
5.5 Letture consigliate
Capitolo 6 Altri diagrammi UML
6.1 Introduzione
6.2 Diagramma dei package
6.3 Diagramma degli stati
6.4 Diagramma delle attivita'
6.5 Diagrammi fisici
6.5.1 Diagrammi dei componenti
6.5.2 Diagrammi di deployment
6.6 Letture consigliate
Capitolo 7 Il software come prodotto
7.1 Introduzione
7.1.1 Rapporti tra committente e sviluppatore
7.2 Il mese-uomo
7.3 Pianificazione delle risorse
7.4 Costo del software
7.5 Dimensioni del software
7.5.1 Metriche dimensionali
7.5.2 Metriche funzionali
7.6 Configuration management
7.7 Letture consigliate
Capitolo 8 Esempi svolti ed esercizi
8.1 Introduzione
8.2 Esempio 1: configuratore di prodotto
8.2.1 Introduzione e definizione del problema
8.2.2 Diagrammi dei casi d'uso
8.2.3 Diagrammi delle classi
8.2.4 Diagrammi delle sequenze
8.2.5 Diagramma delle collaborazioni
8.2.6 Diagramma dei package
8.2.7 Diagramma degli stati
8.2.8 Diagramma di deployment
8.3 Esempio 2: realizzazione di un sito web normale
8.3.1 Introduzione e definizione del problema
8.3.2 Diagramma dei casi d'uso
8.3.3 Diagramma delle classi
8.3.4 Diagrammi delle sequenze
8.3.5 Altri diagrammi
8.4 Letture consigliate
Appendice A Concetti base di programmazione orientata agli oggetti
A.1 Introduzione
A.2 Le classi
A.2.1 Metodi
A.2.2 Campi e proprieta'
A.3 Ereditarieta' e polimorfismo
A.3.1 Ereditarieta'
A.3.2 Polimorfismo
A.3.3 Binding dinamico
A.4 Letture consigliate
Appendice B I design pattern
B.1 Introduzione
B.2 Il model-view-controller
B.3 Letture consigliate
Indice analitico
|