INGEGNERIA DEL SOFTWARE

Anno accademico
2019/2020 Programmi anni precedenti
Titolo corso in inglese
SOFTWARE ENGINEERING
Codice insegnamento
CT0090 (AF:248851 AR:136538)
Modalità
In presenza
Crediti formativi universitari
6
Livello laurea
Laurea
Settore scientifico disciplinare
INF/01
Periodo
I Semestre
Anno corso
3
Sede
VENEZIA
Spazio Moodle
Link allo spazio del corso
L'insegnamento contribuisce alle seguenti conoscenze e competenze in uscita del percorso di studio:
- conoscenza delle fasi del ciclo di vita dei sistemi software sia per costruirne di nuovi, sia per la manutenzione di sistemi esistenti;
- conoscenza delle architetture software e dei formalismi per la loro descrizione e progettazione;
- capacità di scegliere i processi più adatti per progetti riguardanti sia aree applicative tradizionali che aree emergenti;

In particolare l'insegnamento ha come obiettivo l'acquisizione delle principali metodologie per la pianificazione e gestione di un progetto software. Al termine del corso lo studente e in grado di applicare le principali metodologie per la analisi, progettazione e verifica del software; di impostare una WBS, e di utilizzare diagrammi di Gannt e Pert per la pianificazione di progetto; di redigere un business plan per un progetto software; di utilizzare UML a supporto dell'attivita di analisi e di progettazione; di realizzare un'applicazione Android e di redigere la documentazione che accompagna un progetto software: piano di progetto, documento di analisi e specifica dei requisiti, documento di progettazione, documento di testing.
Lo studente acquisirà le conoscenze sulle metodologie appropriate per la realizzazione di un sistema software dalla fase di ideazione al deployment e la capacità di applicarle nella realizzazione completa di un sistema.
Programmazione. Algoritmi. Architetture e Sistemi Operativi
1. Ciclo di Vita del Software - Piano di Progetto
2. Ingegneria dei Requisiti - Modelli di Sistema - Prototipazione
3. Metodologie di Progettazione del Software
4. Tecniche di Verifica e Validazione
5. Gestione e Mantenimento di sistemi software
6. Aspetti Giuridici e Gestione della Qualita'
7. Sviluppo di applicazioni Android e programmazione di robot LegoMindStorms
Ian Sommerville. Software Engineering, Pearson, 2015
Roger S Pressman, Software Engineering: A Practitioner's Approach, McGraw-Hill, 2014
Sinan Si Alhir: Learning UML, O'Reilly, 2003
Verrà assegnato un progetto di gruppo (con team di 3 o 4 studenti) avente come obiettivo la realizzazione di un sistema che veda un'app in ambiente Android interagire con un robot LegoMindStorm, accompagnando con consegne intermedie il processo di pianificazione, analisi, progettazione, implementazione e testing. Particolare cura sarà dedicata alla qualità della documentazione.
L'esame finale consisterà nella valutazione della correttezza e completezza del sistema sviluppato e della qualità documentazione di supporto (piano di progetto, documento di analisi dei requisiti, documento di progettazione, documento di pianificazione del testing).
Lezioni frontali, team-working, revisioni di progetto.
Tutto il materiale didattico viene messo a disposizione sulla piattaforma moodle, sulla quale gli studenti caricheranno i loro deliverables.
Italiano
orale
Programma definitivo.
Data ultima modifica programma: 30/07/2019