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