Attività accademica: corso di Ingegneria del Software di Giulio Destri

Il corso di "Ingegneria del Software", tenuto presso la Laurea in Informatica dell'Università di Parma dal 2003 al 2009, si propone di tracciare un percorso completo che, partendo dalla teoria di base, presenti agli allievi metodologie, organizzazione e percorsi completi applicabili a progetti reali. Lo svolgimento di un progetto completo per la realizzazione di un programma, dall'analisi sino all'implementazione, che, per molti allievi è consistito nella realizzazione di una commessa completa richiesta da un cliente pagante, consente di completare con l'applicazione la teoria. Qui sotto sono raccolti il libro di testo ed il materiale didattico usato nell'ambito del corso.

Libro di testo
W. Zuser, S. Biffl, T Grechenig, M. Kohle
"Ingegneria del Software con UML e Unified Process"
Ed McGraw-Hill - 2004
ISBN 8838661553

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, PERT, ...); il problema della documentazione; comunicazione entro e fuori un team; evoluzione e manutenibilità dei sistemi, manutenzione evolutiva.

Materiale didattico

Slide
S00 - Introduzione al corso
S01 - Il progetto software
S02 - La fase di Analisi
S03 - UML
S04 - Architetture software
S05 - Basi di dati
S06 - La fase di Progettazione
S07 - La fase di Implementazione
S08 - La fase di Test
S09 - La fase di Attivazione
S10 - La Gestione del Progetto Informatico
S11 - La qualità nei progetti informatici
S60 - Tutte le slide in formato PDF 6 in 1 (zippate)

Dispense
D01 - Introduzione alle architetture software basate su MVC
D02 - I passi di progetto semplificando l'Unified Process
D03 - Esempi di passi di progetto
D04 - Guida all'esame


Esempi di Analisi con UML
A01 - Esempio di analisi UML: convertitore Euro-Dollaro
A02 - Esempio di analisi UML: autenticatore
A03 - Esercizi di analisi e progetto per sistemi semplici
A04 - Esempio analisi UML: Discoteca
A05 - Esempi Analisi: variazioni sulla Discoteca
A06 - Esempio di analisi: la vending machine
A07 - Esercizio di analisi: raccolta di dischi (discoteca 2006)

A08 - Esempi di analisi (anagrafica e funzioni tipiche, autenticatore)
A09 - Esercizi di analisi: sistemi semplici
A10 - Esercizio di analisi svolta in classe: raccolta di dischi (discoteca 2007)
A11 - Esercizio di analisi svolta in classe: raccolta di dischi (discoteca 2008)


Esempi di codice in Java, C# e Web
E01 - Esempi Java : Autenticazione e IVA
E02 - Esempi di Java: Finestre multiple, editor e rubrica
E03 - Esempi di applicazioni Web
E04 - Esempi vari di Java
E05 - Comparazione Java e C#
E06 - Esempio di Gui MDI Form in Java Swing
E07 - Esempi di applicazione Web in Java
E08 - Esempio di applicazione Editor Java Swing
E09 - Esempi di pagine HTML
E10 - Applicazione Web semplice (calcolatrice)
E11 - Applicazione Web Java con DB




Iscrizione Ordine Ingegneri di Cremona n. 1170 - P.IVA 01259460192