UNIVERSIT`A “LA SAPIENZA” DI ROMA 1 Destinatari 2 Prerequisiti

Transcript

UNIVERSIT`A “LA SAPIENZA” DI ROMA 1 Destinatari 2 Prerequisiti
UNIVERSITÀ “LA SAPIENZA” DI ROMA
Sede didattica di LATINA
Corso di Laurea in INGEGNERIA DELL’INFORMAZIONE
Insegnamento di INGEGNERIA DEL SOFTWARE
a. a. 2010-2011
Docente: MARIO VACCA
1
Destinatari
Il corso, da 5 crediti, è rivolto agli studenti del terzo anno del Corso di Laurea in Ingegneria
dell’Informazione dell’Università “La Sapienza” di Roma, sede di Latina.
2
Prerequisiti
Si richiede la conoscenza dei fondamenti della programmazione e degli elementi base di progettazione e sviluppo del software.
3
Programma del corso
1. L’ingegneria del software: Concetti di base: finalità; temi di studio. Breve storia.
2. I modelli di produzione del software: Concetti di base: metodo, processo, progetto;
generalità sui metodi di produzione del software. Modello a cascata: generalità; caratteristiche; le fasi e le milestone; i ruoli; il modello a V. Modelli incrementali ed evolutivi:
caratteristiche generali; i prototipi; il metodo a spirale di Boehm. Metodi agili: le assunzioni; il Manifesto Agile; caratteristiche dello sviluppo agile; vantaggi e criticità dei metodi
agili. eXtreme Programming (XP): i fondamenti; attività fondamentali; planning game;
prassi organizzative; i ruoli delle persone. Il modello UP : i fondamenti; breve storia; UML
e UP; la struttura; le fasi, i workflow, le iterazioni, le attività e gli artefatti. Model Driven
Architecture (MDA): concetti di base; struttura.
3. Ingegneria dei requisiti: Concetto e definizione di requisito. Tipi di requisito: funzionali e non funzionali; classificazione di Sommerville. Il processo di ingegneria dei requisiti.
L’elicitazione dei requisiti: attività; tecniche. I casi d’uso nella la specifica dei requisiti.
4. La progettazione dell’architettura: Il concetto e il ruolo della architettura software.
Tipi di architettura. Stili architetturali: pipe-and-filter; layered architecture; shared data;
client-server; publish-subscribe.
1
5. La progettazione della interfaccia utente Generalità: tipi di interfaccia; le regole
d’oro; analisi e design della user interface. Ingegneria della Usabilità: concetti di base;
dimensioni della usabilità.
6. La qualità del software: Metriche strutturali (numero ciclomatico). Il testing: principi
generali; elementi di teoria del testing; strategie di testing; tecniche di testing del software;
Il debugging.
7. Scheduling dei progetti software Concetti fondamentali : il problema; task e task set.
Definizione di un task set per un progetto software. Definizione di una rete di task : grafi;
diagrammi temporali. Earned Value Analysis.
8. Criteri e Metodi per la stima dei costi del software: Le metriche: funzionali (punti funzione); dimensionali (LOC); strutturali (numero ciclomatico). I metodi CoCoMo I e
CoCoMo II. I costi nella Programmazione Estrema.
9. Il linguaggio UML:
Concetti di base: caratteritiche generali; breve storia; vista 4+1; tipi di diagrammi. Diagrammi UML: casi d’uso (diagrammi e specifica); activity diagram; state diagram; object diagram; class diagram (classi di analisi); sequence diagram; communication diagram; package diagram; component diagram; deployment diagram. UML tool: StarUML
(http://staruml.sourceforge.net/en/).
4
Testo in adozione
- Roger S. Pressman, “Principi di Ingegneria del software”, 5a edizione, Mc Graw Hill Italia,
2007, ISBN 978-88-386-6418-2.
5
Letture consigliate
- J. Arlow, I. Neustadt “UML 2 e Unified Process”, Seconda Edizione italiana. McGraw-Hill,
2007.
- V. Ambriola, C. Montangero, L. Semini, “Esercizi di Ingegneria del Software (terza edizione)”,
Nota didattica, 2009.
- K. Beck, “Programmazione estrema”, Addison-Wesley, 2000.
- A. G. Kleppe, J. Warmer, W. Bast, “MDA Explained: The Model Driven Architecture:
Practice and Promise”, Addison-Wesley Professional, 2003.
- S. Bennett, J. Skelton, K. Lunn, “Introduzione a UML”, McGraw Hill, 2002.
- M. Fowler, “UML Distilled Guida rapida al linguaggio di modellazione standard”, Addison
Wesley, 2004.
- A. Cockburn, “Writing Effective Use Cases”, Addison-Wesley Professional, 2000.
- M. Fowler, “Use and Abuse Cases”, Distributed Computing Magazine, 1999. (http://www.
martinfowler.com/articles.html)
- P. Jalote, “A Concise Introduction to Software Engineering”, Springer 2008.
2
6
Testi consigliati per le esercitazioni
- V. Ambriola, C. Montangero, L. Semini, “Esercizi di Ingegneria del Software (terza edizione)”,
Nota didattica, 2009.
- S. Bennett, J. Skelton, K. Lunn, “Introduzione a UML”, McGraw Hill, 2002.
- R. C. Martin, “UML for Java Programmers”, Prentice Hall, 2003
- E. Gamma, R. Helm, R. Johnson, J. Vlissides, “Design Patterns: elementi per il riuso di software a oggetti”, Addison Wesley, 1995 (titolo originale “Design Patterns: Elements of Reusable
Object-Oriented Software”, Addison Wesley, 1995).
7
Materiale didattico di supporto
Slide del “Corso di Ingegneria del Software a.a. 2010/2011”, disponibili sul sito e-learning del
corso (http://elearning.uniroma1.it/).
8
Esame
L’esame consiste in una prova scritta ed in un colloquio orale. La prova scritta è costituita da
quesiti a risposta aperta sintetica (anche esercizi sulla realizzazione di diagrammi UML) sugli
argomenti che sono stati trattati durante le lezioni. La durata della prova scritta non supererà le
2 ore. Il colloquio mirerà a completare l’accertemento delle conoscenze acquisite sugli argomenti
oggetto del corso.
9
Informazioni e contatti
È possibile iscriversi al corso e-learning chiedendo la chiave di accesso al docente. (http://
elearning.uniroma1.it/)
Per contattare il docente:
- email: [email protected]
- pagina web: http://infocom.uniroma1.it/cdainformazione/IngegneriaDelSoftware
3