Obiettivi formativi specifici
Questo
e' un corso molto "pratico" che riguardera' lo sviluppo di un proegtto
software complesso, in tutte le sue fasi. Durante e dopo la parte
pratica, vedremo anche elementi di teoria sullo sviluppo di progetti
software.
E' previsto l'uso di tools industriali di supporto al processo di
sviluppo del software.
Content
Il corso si propone di fornire competenze che possono essere utilizzate
nel processo di sviluppo di software per progetti medio/piccoli.
Saranno analizzati come casi di studio alcuni processi di sviluppo
software reali e verranno impiegati alcuni tools usati nel processo di
sviluppo del software a livello industriale.
Programma Dettagliato:
1. fondamenti di Ingegneria del Software: sviluppo del software
dall'artigianato ai processi industriali. Attività principali nello
sviluppo di un prodotto software
2. gestione di un progetto: wbs, gantt, critical paths (utilizzo del
tool MS Project o di programmi equivalenti)
3. fondamenti sul processo di sviluppo del Software: introduzione al
Ciclo di Vita del Software ed alle tipologie di processi di sviluppo
(Code and Fix, Cascata, Spirale)
4. processi di sviluppo del software avanzati: RAD, Metodi Formali,
Riuso del Software
5. fondamenti di UML usando il tool Rational Rose: introduzione a UML,
Diagrammi dei Casi d'Uso, delle Classi, delle Attività, degli Stati e
delle Sequenze
6. business modeling, analisi dei requisiti e loro gestione usando il
linguaggio di modellazione UML ed il tool Rational Requisite Pro
7. analisi e design del Software: Design Patterns, UML per linguaggi
orientati agli oggetti usando il tool Rational Rose
8. sviluppo e controllo del codice: generazione automatica del codice
partendo da diagrammi UML utilizzando il tool Rational Rose, controllo
del codice manuale ed automatizzato utilizzando il tool Rational Pure
Coverage
9. reverse engineering e manutenzione del codice
Prerequisiti
E' utile la conoscenza della lingua inglese, delle tecniche di programmazione di base e dell'ambiente Windows.
Metodi didattici
Sono
previste lezioni teoriche ed esercitazioni pratiche in laboratorio.
Verranno utilizzati i case tools della Rational Suite (Requisite Pro,
Rose e Pure Coverage). Il linguaggio di programmazione usato è Java.
L'attività' di laboratorio puo' essere svolta in gruppo. E' richiesto
del lavoro individuale dello studente al di fuori delle lezioni in
laboratorio per completare gli esercizi pratici.
Modalità di verifica dell'apprendimento
L'esame si svolgerà in forma orale e pratica su tutti gli argomenti di teoria ed esercitazioni visti a lezione.
Testi di riferimento
UML Distilled: A Brief Guide to the Standard Object Modeling Language
(3rd Edition) (The Addison-Wesley Object Technology Series) (Paperback)
Software Engineering: (Update) (8th Edition) (International Computer
Science Series) (Hardcover) by Ian Sommerville
"Effective Java (2nd Edition) (The Java Series)"
Joshua Bloch; Paperback;
"Clean Code: A Handbook of Agile Software Craftsmanship (Robert C.
Martin Series)" Robert C. Martin; Paperback;
Ulteriori informazioni
Il
materiale didattico del corso è disponibile su Didattica On Line
(http://www.didatticaonline.unitn.it). Parte delle lezioni sono state
videoregistrate e sono anche disponibili sul sito. È vivamente
consigliata la frequenza. |