ID:
A000871
Durata (ore):
48
CFU:
6
Url:
INFORMATICA/DATA ANALYSIS Anno: 3
Anno:
2023
Dati Generali
Periodo di attività
Primo Semestre (25/09/2023 - 12/01/2024)
Syllabus
Obiettivi Formativi
Il corso si propone di fornire gli strumenti concettuali fondamentali per acquisire conoscenze e competenze sui principi e metodi dell'Ingegneria del Software, in particolare per quanto riguarda i processi di sviluppo del software, l'analisi dei requisiti, la progettazione, il testing e la verifica formale di un sistema software.
Prerequisiti
I prerequisiti e le conoscenze preliminari richieste per il corso di Ingegneria del Software sono prevalentemente relativi la programmazione, preferibilmente ad oggetti.
Metodi didattici
Lezioni frontali,
Sessioni Hands-on,
Seminari
Elaborato finale
Sessioni Hands-on,
Seminari
Elaborato finale
Verifica Apprendimento
L’esame consiste in una prova orale, per accedere alla quale è obbligatorio implementare un elaborato o progetto di Ingegneria del Software.
Il progetto dovrà sviluppare un sistema software di complessità adeguata, tale da richiedere le metodologie ed i processi di Ingegneria del Software per il suo sviluppo. L’ideazione, l’analisi del problema, la progettazione, lo sviluppo, la verifica e validazione ed eventuali fasi successive devono essere tutte implementate dallo studente. Sono dunque gli studenti che solitamente propongono l’idea da sviluppare e ne curano tutte le fasi di cui sopra.
Il progetto deve essere svolto in gruppi di almeno 2 studenti, con complessità proporzionale al numero di studenti coinvolti.
Il progetto deve essere corredato da adeguata relazione scritta che descriva tutte le fasi del processo di sviluppo, la metodologia ed il metodo di sviluppo selezionato, e tutti gli artifacts di progetto, adeguatamente documentati attraverso diagrammi UML.
L’esame orale verterà sulla discussione del progetto, approfondendo gli aspetti pratici con i relativi concetti teorici. E’ necessario fornire la relazione del progetto almeno una settimana prima della data d’esame.
La valutazione dell’esame sarà in trentesimi, valutando il progetto al 70% e l’orale per il 30% del voto complessivo.
Il progetto dovrà sviluppare un sistema software di complessità adeguata, tale da richiedere le metodologie ed i processi di Ingegneria del Software per il suo sviluppo. L’ideazione, l’analisi del problema, la progettazione, lo sviluppo, la verifica e validazione ed eventuali fasi successive devono essere tutte implementate dallo studente. Sono dunque gli studenti che solitamente propongono l’idea da sviluppare e ne curano tutte le fasi di cui sopra.
Il progetto deve essere svolto in gruppi di almeno 2 studenti, con complessità proporzionale al numero di studenti coinvolti.
Il progetto deve essere corredato da adeguata relazione scritta che descriva tutte le fasi del processo di sviluppo, la metodologia ed il metodo di sviluppo selezionato, e tutti gli artifacts di progetto, adeguatamente documentati attraverso diagrammi UML.
L’esame orale verterà sulla discussione del progetto, approfondendo gli aspetti pratici con i relativi concetti teorici. E’ necessario fornire la relazione del progetto almeno una settimana prima della data d’esame.
La valutazione dell’esame sarà in trentesimi, valutando il progetto al 70% e l’orale per il 30% del voto complessivo.
Testi
Ian Sommerville, Ingegneria del software, Pearson Education Consigliato: Ghezzi Jazayeri Mandrioli - Ingegneria del Software - Prentice Hall
Lucidi del docente proiettati a lezione Dispense e tutorial
Lucidi del docente proiettati a lezione Dispense e tutorial
Contenuti
INTRODUZIONE ALL’INGEGNERIA DEL SOFTWARE: definizioni, concetti base, ruoli e compiti dell’ing del sw, qualità dei software, principi, approcci, metodologie, metodi tecniche e tools.
PROCESSI SOFTWARE: Modelli dei processi software; Cicli di processo; Attività di processo. Modello a cascata, modelli di prototipizzazione, modello incrementale, modello a spirale, modello a V, RUP e varianti.
METODOLOGIE DI SVILUPPO DEL SW: Plan Driven, Agile, DevOps e loro implementazioni (XP, Scrum, Spotify)
GESTIONE DEI PROGETTI: Attività di gestione; Pianificare il progetto; Tempistica del progetto; Gestione del rischio.
REQUISITI DEL SOFTWARE: Requisiti funzionali e non funzionali; Requisiti utente; Requisiti di sistema; Specifica delle interfacce; Documento dei requisiti.
PROCESSI DI INGEGNERIA DEI REQUISITI: Studi di fattibilità; Deduzione ed analisi dei requisiti; Convalida dei requisiti; Gestione dei requisiti.
PANORAMICA SU UML: Introduzione a UML; Diagrammi dei casi d’uso; Diagrammi delle classi e degli oggetti; Diagrammi delle interazioni; Diagrammi di stato e Diagrammi delle attività; diagrammi deployment e component, Organizzazione dei diagrammi.
PROGETTAZIONE DEL SOFTWARE: Progettazione architetturale. - Progettazione orientata agli oggetti.
SVILUPPO: Sviluppo rapido del software. - Riutilizzo del software.
VERIFICA E CONVALIDA DEL SOFTWARE: Test del software. La qualità del software.
MAINTENANCE ED EVOLUZIONE DEL SOFTWARE: Manutenzione, evoluzione, re-engineering, reverse engineering, refactoring, reflection, riuso e CBSE
INGEGNERIA DEI SERVIZI: Servizi, Service oriented computing, SOA, SOI.
PROCESSI SOFTWARE: Modelli dei processi software; Cicli di processo; Attività di processo. Modello a cascata, modelli di prototipizzazione, modello incrementale, modello a spirale, modello a V, RUP e varianti.
METODOLOGIE DI SVILUPPO DEL SW: Plan Driven, Agile, DevOps e loro implementazioni (XP, Scrum, Spotify)
GESTIONE DEI PROGETTI: Attività di gestione; Pianificare il progetto; Tempistica del progetto; Gestione del rischio.
REQUISITI DEL SOFTWARE: Requisiti funzionali e non funzionali; Requisiti utente; Requisiti di sistema; Specifica delle interfacce; Documento dei requisiti.
PROCESSI DI INGEGNERIA DEI REQUISITI: Studi di fattibilità; Deduzione ed analisi dei requisiti; Convalida dei requisiti; Gestione dei requisiti.
PANORAMICA SU UML: Introduzione a UML; Diagrammi dei casi d’uso; Diagrammi delle classi e degli oggetti; Diagrammi delle interazioni; Diagrammi di stato e Diagrammi delle attività; diagrammi deployment e component, Organizzazione dei diagrammi.
PROGETTAZIONE DEL SOFTWARE: Progettazione architetturale. - Progettazione orientata agli oggetti.
SVILUPPO: Sviluppo rapido del software. - Riutilizzo del software.
VERIFICA E CONVALIDA DEL SOFTWARE: Test del software. La qualità del software.
MAINTENANCE ED EVOLUZIONE DEL SOFTWARE: Manutenzione, evoluzione, re-engineering, reverse engineering, refactoring, reflection, riuso e CBSE
INGEGNERIA DEI SERVIZI: Servizi, Service oriented computing, SOA, SOI.
Lingua Insegnamento
INGLESE
Corsi
Corsi
INFORMATICA
Laurea
3 anni
No Results Found
Persone
Persone
No Results Found