- Home
- Didattica
- I corsi di studio
- Corsi di laurea
INGEGNERIA DEL SOFTWARE
Obiettivi formativi
Gli studenti devono già essere in grado di programmare con metodologie object-oriented.
L'obiettivo è renderli in grado gestire autonomamente piccoli progetti software con le moderne metodologie di analisi e progettazione.
Gli allievi devono acquisire le abilità
- di eseguire raccolte di requisiti,
- stendere analisi
- eseguire progettazioni
- implementare quanto progettato
- definire il contesto necessario per l'installazione di quanto realizzato.
Inoltre devono conoscere le metodologie generali dell'Ingegneria del Software e le regole per lavorare in un team di sviluppo e per controllare progetti anche complessi.
Prerequisiti
Fondamenti di Programmazione
Metodologie di Programmazione
(fortemente consigliati)
Contenuti dell'insegnamento
PROGRAMMA:
* Processi di Sviluppo del Software
Il processo di sviluppo del software: aspetti economici, organizzativi e metodologici; il gruppo di lavoro; prodotto software e processo; il ciclo di vita dei sistemi software; modelli di sviluppo software: modello tradizionale a cascata; modello evolutivo e a fontana, altri modelli.
* Linguaggi di Modellazione del Software
Modellazione del software: modelli e linguaggi di specifica; il linguaggio UML; uso di UML entro i progetti informatici; gli strumenti CASE.
* Analisi dei Requisiti
Analisi e specifica dei requisiti:l'interazione con il cliente e la formalizzazione dei requisiti; il metodo dei casi d'uso e le sue applicazioni; risultati del processo di analisi.
* Architetture Software
Le architetture software: architetture software per piccoli sistemi; architetture client-server, multi-tier e Web; il pattern MVC e le sue applicazioni; riuso delle componenti server e approccio multicanale.
* Ambienti di Sviluppo
il linguaggio Java; l'architettura di Java2; Java e le proprietà di oggetti; sistemi multi-tier in Java; sistemi Web in Java; cenni al linguaggio C# e all'architettura .NET.
* Progettazione di Software e Codifica
Progettazione dei sistemi software: principi e metodi di progettazione; principi di modularità ed incapsulamento; la progettazione orientata agli oggetti; i “design patterns” ed il loro uso; regole di scrittura del codice.
* Testing, Verifica e Validazione
La fase di test, sviluppi parziali e test parziali (scatola bianca e scatola nera); test di aggregazione; test su dati reali; test di regressione; collaudo; entrata in produzione e manutenzione ordinaria; case study.
* Metodologie di gestione dei progetti software: il project management
La conduzione operativa di un progetto: impostazione e definizione di obiettivi; analisi dei vincoli; scelta di strumenti e architetture; il lavoro in team; metriche e diagrammi utili (Gantt, Perth, ...); il problema della documentazione; comunicazione entro e fuori un team; evoluzione e manutenibilità dei sistemi, manutenzione evolutiva.
Bibliografia
Libro di Testo Consigliato:
W. Zuser, S. Biffl, T Grechenig, M. Kohle
Ingegneria del Software con UML e Unified Process
Ed McGraw-Hill - 2004
ISBN 8838661553
Per Java si raccomanda un manuale che tratti almeno sino ai servlet
Consigliati:
Deitel Harvey M., Deitel Paul M.
Java Tecniche avanzate di programmazione - seconda edizione
Ed. Apogeo, 2004
ISBN 8850320973
o
Herbert Schildt
JAVA 2 LA GUIDA COMPLETA - QUINTA EDIZIONE
Ed. McGraw-Hill, 2003
ISBN 8838643083
Metodi didattici
Accanto ad uno studio approfondito della teoria e delle metodologie storiche e più moderne dell'Ingegneria del Software, sempre arricchite da esempi tratti da esperienze pratiche, il corso integra la teoria con lezioni di laboratorio che applicano i principi di progettazione e realizzazione di componenti software modulari e ben stratificati.
Nella parte di laboratorio viene usato soprattutto il liguaggio di programmazione Java, sia per la sua stretta somiglianza con il C++ già appreso dagli allievi nei corsi precedenti, sia per la sua grande diffusione sul mercato. Vengono aggiunti anche riferimenti al linguaggio C# di Microsoft ed alla piattaforma .NET, anch'essi in rapida espansione nel mercato.
La valutazione consta di un progetto, in cui il candidato deve dimostrare di avere applicato correttamente i principi di analisi, progettazione e realizzazione modulare appresi nel corso e da un orale, in cui viene esaminata la parte di teoria e discussa l'applicazione entro il progetto stesso. Il voto finale è risultante da entrambe le parti dell'esame.
Altri insegnamenti
ANNO DI CORSO: 1
ANNO DI CORSO: 2
ANNO DI CORSO: 3

