Programmazione II e ingegneria del software - INGEGNERIA DEL SOFTWARE (2016/2017)



Codice insegnamento
4S003714
Crediti
6
Altri corsi di studio in cui è offerto
Altri corsi di studio in cui è offerto
Altri corsi di studio in cui è offerto
    Settore disciplinare
    INF/01 - INFORMATICA
    Lingua di erogazione
    Italiano
    Sede
    VERONA
    L'insegnamento è organizzato come segue:
    Attività Crediti Periodo Docenti Orario
    Teoria ed esercitazioni 5 II sem. Carlo Combi, Barbara Oliboni
    Laboratorio 1 II sem. Roberto Posenato

    Orario lezioni

    Obiettivi formativi

    ------------------------
    MM: Teoria ed esercitazioni
    ------------------------
    L'obiettivo dell'insegnamento consiste nell'introdurre i principi scientifici e professionali di base dell'ingegneria del software, affrontando le diverse fasi di sviluppo e produzione del codice: pianificazione, progettazione, modellazione e specifica, implementazione, collaudo e verifica, valutazione, manutenzione. Le esercitazioni in laboratorio compendiano la parte teorica con la progettazione, documentazione e realizzazione di un sistema software. Oltre a possedere le conoscenze di base dell'ingegneria del software, lo studente sarà in grado di realizzare e documentare sistemi software, e di comunicare in modo proficuo con tutti gli attori coinvolti nella realizzazione e uso di un sistema software all'intero di organizzazioni complesse.
    ------------------------
    MM: Laboratorio
    ------------------------
    Scopo di questo modulo è di aiutare lo studente nella progettazione, documentazione e realizzazione di un sistema software con le tecniche introdotte nel modulo di teoria.

    Programma

    ------------------------
    MM: Teoria ed esercitazioni
    ------------------------
    * Introduzione all'ingegneria del software
    - Definizione di Ingegneria del Software
    - Tipi di Software
    - Caratteristiche dei software
    - Ingegneria del Software e aspetti etici

    * Processi software
    - Introduzione
    - Modelli dei processi software
    - Attività dei processi
    - Gestione dei cambiamenti

    * Sviluppo agile del sotware
    - Metodi agili
    - La metodologia SCRUM e sue applicazioni

    * Ingegneria dei requisiti
    - Requisiti funzionali e non funzionali
    - Processi di ingegneria dei requisiti
    - Ingegneria dei requisiti e UML Use Case

    * Progettazione architetturale
    - Introduzione
    - Pattern di architettura
    -- MVC
    -- Repository
    -- Client server
    -- Pipe and filter
    * Progettazione e implementazione con approccio agli oggetti
    - Caratteristiche principali
    - Metodologie ad oggetti: concetti di base
    - Modellazione di sistemi orientata agli oggetti con UML
    -- UML Class Diagram
    -- Use Case diagram
    -- Activity Diagram
    -- Sequence Diagram
    - Fasi della progettazione
    - Design pattern
    -- Introduzione
    -- Singleton
    -- Observer
    -- Template
    -- Iterator
    -- Factory
    -- Abstract factory
    -- Proxy
    -- Facade
    -- Decorator

    * Verifica e Validazione
    - Introduzione
    - Ispezione e test
    - Vari tipi di test
    - Progettazione basata su test

    * Evoluzione e mantenimento del software
    - Gestione del cambiamento del SW
    - Sistemi Legacy
    - Manutenzione del SW
    ------------------------
    MM: Laboratorio
    ------------------------
    - Introduzione alla libreria Swing per lo sviluppo di interfacce grafiche in Java.
    - Introduzione alle librerie TkInter, wxPython, pyGTK/PyGobject, e PyQt/PySide per lo sviluppo di interfacce grafiche in Python.
    - Introduzione ai tool Eclipse-Papyrus e StarUML per lo sviluppo di progetti UML.

    Modalità di erogazione della didattica
    - Lezioni frontali ed esercitazioni in laboratorio informatico.
    Materiale didattico (lucidi) ed ulteriori esercizi sulla piattaforma eLearning.
    Ricevimento individuale negli orari concordati con il docente.

    Modalità d'esame

    ------------------------
    MM: Teoria ed esercitazioni
    ------------------------
    La verifica del profitto, sia per gli studenti frequentanti sia per i non frequentanti, avviene mediante un piccolo progetto, inerente l'attività di laboratorio, e un esame orale sugli argomenti del programma. Oltre alla capacità di presentare correttamente tutti gli aspetti di un progetto software, l'esame farà emergere sia aspetti di conoscenza astratta sia capacità di applicazione dei concetti appresi.
    ------------------------
    MM: Laboratorio
    ------------------------
    La verifica del profitto avviene mediante un piccolo progetto, inerente l'attività di laboratorio, che verrà poi discusso durante l'esame orale.

    Testi di riferimento
    Attività Autore Titolo Casa editrice Anno ISBN Note
    Teoria ed esercitazioni Ian Sommerville Ingegneria del software - 10/Ed. (Edizione 10) Pearson 2017 9788891902245
    Laboratorio Martin Fowler UML DISTILLED (Edizione 4) Pearson Italia 2010 978-88-7192-598-1 In Italiano.

    Opinione studenti frequentanti - 2016/2017