SOFTWARE ENGINEERING

Pierluigi RITROVATO SOFTWARE ENGINEERING

0622700041
DIPARTIMENTO DI INGEGNERIA DELL'INFORMAZIONE ED ELETTRICA E MATEMATICA APPLICATA
CORSO DI LAUREA MAGISTRALE
INGEGNERIA INFORMATICA
2020/2021



OBBLIGATORIO
ANNO CORSO 1
ANNO ORDINAMENTO 2017
PRIMO SEMESTRE
CFUOREATTIVITÀ
432LEZIONE
216ESERCITAZIONE
324LABORATORIO


Obiettivi
Il corso mira all’apprendimento di modelli, metodi e strumenti per la progettazione e realizzazione di sistemi software di grandi dimensioni, e dei principali processi che intervengono nel ciclo di vita del software.

Conoscenze e capacità di comprensione
Conoscenza del processo di produzione del software e delle attività correlate. Conoscenza dei principali Design Pattern. Conoscenza dei metodi agili di produzione del software. Comprensione dei documenti di analisi e di progetto realizzati secondo formati standard.

Conoscenza e capacità di comprensione applicate
Saper partecipare a un progetto seguendo un processo formalizzato di produzione del software. Saper progettare un sistema software utilizzando i principali Design Pattern; saper esprimere l’analisi dei requisiti e le scelte progettuali usando formati standard di rappresentazione; saper utilizzare strumenti software per la documentazione e il testing automatici e il controllo delle revisioni dei programmi.
Prerequisiti
PER IL PROFICUO RAGGIUNGIMENTO DEGLI OBIETTIVI PREFISSATI È RICHIESTA LA CONOSCENZA DEL LINGUAGGIO JAVA E DELLA PROGRAMMAZIONE ORIENTATA AGLI OGGETTI.
Contenuti
INTRODUZIONE AL CORSO
INTRODUZIONE AL CICLO DI VITA DEL SOFTWARE. QUALITÀ DEL SOFTWARE: CARATTERISTICHE DEL PRODOTTO E CARATTERISTICHE DEL PROCESSO. (ORE LEZIONE/ESERCITAZIONE/LABORATORIO 4/0/0)
CICLO DI VITA DEL SOFTWARE: METODI TRADIZIONALI.
IL MODELLO A CASCATA. ANALISI DEI REQUISITI. PROGETTAZIONE. IMPLEMENTAZIONE. TEST. DEPLOYMENT E MANUTENZIONE. EVOLUZIONI DEL MODELLO A CASCATA. IL FRAMEWORK RUP (CENNI). APPROCCI MODEL-DRIVEN (CENNI). (ORE 10/8/0)
CICLO DI VITA DEL SOFTWARE: METODI AGILI.
LIMITAZIONI DEI METODI TRADIZIONALI. METODI AGILI: PRINCIPI FONDAMENTALI. SVILUPPO TEST-DRIVEN. REFACTORING. I METODI XP E SCRUM (CENNI). (ORE 8/8/0)
DESIGN PATTERN
INTRODUZIONE AI DESIGN PATTERN. PATTERN DI CREAZIONE. PATTERN STRUTTURALI. PATTERN COMPORTAMENTALI. (ORE 10/12/0)
STRUMENTI SOFTWARE
UNIT TESTING: JUNIT. SISTEMI DI CONTROLLO DELLE REVISIONI: GIT. (ORE 6/0/6)

TOTALE ORE 38/28/6
Metodi Didattici
L’INSEGNAMENTO CONTEMPLA LEZIONI TEORICHE, ESERCITAZIONI IN AULA ED ESERCITAZIONI PRATICHE DI LABORATORIO. NELLE ESERCITAZIONI IN AULA VIENE ASSEGNATO AGLI STUDENTI, DIVISI PER GRUPPI DI LAVORO, UN PROGETTO DA SVILUPPARE DURANTE TUTTO LO SVOLGIMENTO DEL CORSO. IL PROGETTO COMPRENDE UNITARIAMENTE TUTTI I CONTENUTI DELL’INSEGNAMENTO ED È STRUMENTALE ALL’ACQUISIZIONE, OLTRE CHE DELLE CAPACITÀ DI PROGETTAZIONE E REALIZZAZIONE DI UN SISTEMA SOFTWARE PARTENDO DALLE SPECIFICHE, ANCHE A SVILUPPARE E RAFFORZARE LE CAPACITÀ DI LAVORARE IN TEAM. NELLE ESERCITAZIONI IN LABORATORIO GLI STUDENTI UTILIZZANO STUMENTI SOFTWARE PER IL TEST AUTOMATICO E IL CONTROLLO DELLE REVISIONI.

La frequenza delle lezioni è obbligatoria. Per accedere all'esame finale, lo studente deve aver frequentato almeno il 70% delle ore di didattica frontale.
Verifica dell'apprendimento
LA PROVA DI ESAME È FINALIZZATA A VALUTARE NEL SUO COMPLESSO: LA CONOSCENZA E LA CAPACITÀ DI COMPRENSIONE DEI CONCETTI PRESENTATI AL CORSO; LA CAPACITÀ DI APPLICARE TALI CONOSCENZE PER LA RISOLUZIONE DI PROBLEMI DI ANALISI E PROGETTAZIONE DEL SOFTWARE; L’AUTONOMIA DI GIUDIZIO, LE ABILITÀ COMUNICATIVE E LA CAPACITÀ DI APPRENDERE
LA PROVA CONSISTE NELLA DISCUSSIONE DI UN ELABORATO, SVOLTO DURANTE IL CORSO, IL CUI SCOPO È VALUTARE LA CAPACITÀ DI APPLICARE LE CONOSCENZE, L’ESPOSIZIONE IN FORMA SCRITTA, L’AUTONOMIA DI GIUDIZIO E LA CAPACITÀ DI LAVORARE IN GRUPPO, E DA UN COLLOQUIO ORALE, IL CUI SCOPO È VALUTARE LE CONOSCENZE E LE CAPACITÀ DI COMPRENSIONE ACQUISITE, LA CAPACITÀ DI APPRENDERE DIMOSTRATA, L’ESPOSIZIONE ORALE.
L'ELABORATO CONSISTE IN UN PICCOLO PROGETTO SOFTWARE, DA SVOLGERE IN GRUPPO (LA CUI SPECIFICA È ASSEGNATA DAL DOCENTE DURANTE IL CORSO) IN CUI OCCORRE SVOLGERE E DOCUMENTARE TUTTE LE FASI DEL CICLO DI VITA.
IL COLLOQUIO ORALE VERTERÀ SUGLI ARGOMENTI TEORICI DEL CORSO E LA VALUTAZIONE TERRÀ CONTO DELLE CONOSCENZE DIMOSTRATE DALLO STUDENTE E DEL GRADO DEL LORO APPROFONDIMENTO, DELLA CAPACITÀ DI APPRENDERE DIMOSTRATA, DELLA QUALITÀ DELL’ESPOSIZIONE.
NELLA VALUTAZIONE FINALE, ESPRESSA IN TRENTESIMI, LA VALUTAZIONE DELL'ELABORATO PESERÀ PER IL 40% MENTRE IL COLLOQUIO ORALE PER IL 60%. LA LODE POTRÀ ESSERE ATTRIBUITA AGLI STUDENTI CHE DIMOSTRINO DI SAPER APPLICARE LE CONOSCENZE ACQUISITE CON AUTONOMIA ANCHE IN CONTESTI DIVERSI DA QUELLI PROPOSTI NEL CORSO.
Testi
F. Tsui, O. Karam, B. Bernal: “Essentials of Software Engineering” (3rd ed.), Jones & Bartlett

Lettura consigliata:
Gamma, Helm, Johnson, Vlissides: “Design Patterns”, Pearson Education Italia
Altre Informazioni
L'insegnamento è erogato in lingua inglese.
  BETA VERSION Fonte dati ESSE3 [Ultima Sincronizzazione: 2022-05-23]