Università degli Studi di Perugia

Navigazione

Contenuto principale

Insegnamento: Ingegneria del software

Corso di laureaCorso di laurea in Informatica [L-31] D. M. 270/2004
SedePerugia
CurriculumGenerale - Regolamento 2012
Modalità di valutazione

Prova scritta. Valutazione in itinere con prove di esonero.

Statistiche voti esamiDati attualmente non disponibili
Calendario prove esame

Vedi Calendario Ufficiale sul sito http://www.informatica.unipg.it Iscrizione obbligatoria all'appello attraverso il sito http://estudium.unipg.it

Unità formative opzionali consigliateDati attualmente non disponibili
DocenteAlfredo MILANI
TipologiaAttività formative caratterizzanti
AmbitoDISCIPLINE INFORMATICHE
SettoreINF/01
CFU6
Modalità di svolgimentoConvenzionale
Programma

1 Il software: processo e prodotto
- Introduzione
- Modelli di ciclo di vita del software: waterfall, modelli iterativi/incrementali modelli a spirale
- Tecniche, modelli e linguaggi per l' analisi dei requisiti , il progetto, l'implementazione e la verifica del software.
- La manutenzione del software
- Il linguaggio UML (Universal Modeling Language), concetti di base, principali diagrammi e loro correlazione con le fasi di analisi dei requisiti (requirement a.), progetto (design) e implementazione(implementation). Attori, casi d'uso, scenari, stereotipi. Diagrammi casi d'uso, diagrammi di classe/oggetti, diagrammi di sequenza, diagrammi di collaborazione, diagrammi di attività, diagrammi di stato, diagramma di componenti, diagrammi di rilascio/consegna (deployment).
- Esercizi di modellazione tramite UML su scenari applicativi reali. Utilizzo di strumenti UML in ambiente Netbeans o altri strumenti di modellazione basati su UML
- Strumenti e ambienti di sviluppo IDE, sistemi di gestione delle versioni (versioning).
- Strumenti per la generazione della documentazione: loro integrazione in IDE e ambienti UML.Strumenti autonomi (javadoc)

2 Metriche di prodotto e di processo
- Qualità del software
- Metriche di costo: metriche classiche, il metodo dei function point.

3 Tecniche per l'affidabilità e sicurezza
-- La fase di test: test in sviluppo, test del prodotto e test di manutenzione. Il concetto di copertura e classe di copertura di un test.
- Test sistematici e incrementali.
- Test Funzionali (black box), esercizi di creazione di casi di test
- Test Strutturali (white box), esercizi di creazione di casi di test
-- Secure Coding:
- Principali errori software e vulnerabilità (principi guida, aree e Common Weakness Enumeration)
- Standard e buone pratiche per la programmazione sicura. Il CERT Java: regole/raccomandazioni, struttura a livelli e valutazione del rischio vulnerabilità

4 Tecnologie di supporto al riuso
-- Design Pattern: concetti di base ed obiettivi dei design pattern ed esercizi di utlizzo e applicazione dei design pattern. Il pattern Model View Controller ed il pattern Observer, Iterator, Factory e GUI Factory. Classi di design pattern.
DP Strutturali(Adapter, Façade,Composite, Decorator, Proxy,Flyweight), DP
Creazionali(Factory,Abstract Factory,Singleton, Prototype) DP Comportamentali (Observer,Mediator, Iterator , Chain of Responsibility,Interpreter .
--Tecniche per l'Integrazione del software: il concetto di middleware
-integrazione orientata alle informazioni (IOAI), (data integration , interface
processing es.API, user interface, embedded device)
- integrazione orientata ai processi applicativi (BPAI) (applicazioni composte e event driven, autonome/distribuite)
- integrazione orientata ai servizi(SOAI)
- integrazione orientata ai portali(POAI): single system, multiple system, trading community.


Supplement

Il software: processo e prodotto.Modelli di Ciclo di Vita del Software.Tecniche di Analisi. Linguaggi di modellazione: UML. Metriche di prodotto e di processo.Tecniche di Test e di Verifica Formale.Standard Valutazione del Software. Secure programming.Tecnologie di supporto al riuso. Design Pattern e integrazione SW.

Metodi didattici

Lezioni frontali.
Esercitazioni ,
casi di studio.
Valutazione continua attraverso progetti ed esercizi di esonero.
Valutazione finale tramite prova scritta (iscrizione obbligatoria su http://estudium.unipg.it)

Testi consigliati

Appunti del Docente disponibili sulla piattaforma di elearning http://estudium.unipg.it

Testo di Riferimento:
Ingegneria del software. Fondamenti e principi - Mandrioli Dino , Ghezzi Carlo , Jazayeri Mehdi
Editore : Pearson Education Italia

Altri testi di consultazione:
su Progettazione del SW:
A. Binato, A. Fuggetta, L. Sfardini. Ingegneria del Software. Pearson, 2006.

su UML
G. Booch, J. Rumbaugh, I. Jacobson. The UML user guide. Addison Wesley, 1999.
J. Arlow, I. Neustadt. UML e Unified Process. McGraw-Hill, 2003.
S. Bennett, J. Skelton, K. Lunn. Introduzione a UML. McGraw-Hill, 2002.
E. Damiani, M. Madravio. UML pratico. Addison Wesley, 2003.
H.E. Eriksson, M. Penker. UML Toolkit. Pearson, 2004.

Argomento: Design Pattern
E. Gamma, R. Helm, R. Johnson, J. Vlissides. Design Patterns. Addison-Wesley, 2002.
C. Larman. Applicare UML e i pattern. Pearson, 2004.

Risultati apprendimento

Conoscenza e applicazione:
delle principali tecniche e standard per la progettazione, lo sviluppo, l'organizzazione e metriche di valutazione di un sistema informatico.
delle principali tecniche di test software. Buone pratiche di programmazione sicura.
delle tecniche di programmazione basate sui design pattern

Periodo della didattica

Secondo semestre (vedi sito del corso di Laurea)

Calendario della didattica

Secondo semestre (vedi sito del corso di Laurea)

Attività supporto alla didattica

Esercizi di approfondimento.
Progetti e prove di esonero durante il corso.

Lingua di insegnamentoItaliano
Frequenza

Consigliata

Sede

Dipartimento di Matematica e Informatica, Via Vanvitelli 1, Perugia

Ore
Teoriche42
Pratiche0
Studio individuale108
Didattica Integrativa0
Totale150
Anno2
PeriodoII semestre
Note

Piattaforma di e-learning del corso con materiale e altre informazioni su http://estudium.unipg.it (da utilizzare anche per iscrizione obbligatoria all'appello)

Orario di ricevimento Lunedi 10-15 Mercoledi 15-18 su appuntamento tramite email milani@unipg.it
Sede di ricevimentoDipartimento di Matematica e Informatica (VI Piano)
Via Vanvitelli 1 - 06100 Perugia, Italy
Codice ECTS2013 - 5208

Inizio pagina

Approfondimenti