INGEGNERIA DEL SOFTWARE

Carmine GRAVINO INGEGNERIA DEL SOFTWARE

0512100019
DIPARTIMENTO DI INFORMATICA
CORSO DI LAUREA
INFORMATICA
2017/2018



OBBLIGATORIO
ANNO CORSO 3
ANNO ORDINAMENTO 2015
PRIMO SEMESTRE
CFUOREATTIVITÀ
648LEZIONE
330LABORATORIO


Obiettivi

CONOSCENZA E CAPACITÀ DI COMPRENSIONE
L’INSEGNAMENTO INTRODUCE:
•I CONCETTI DELL’INGEGNERIA DEL SOFTWARE, DEI RELATIVI PROCESSI, ATTIVITÀ E DELIVERABLE
•I METODI DI ANALISI E PROGETTAZIONE
•I LINGUAGGI PER LA MODELLAZIONE (IN PARTICOLARE UML)
•LE TECNICHE DI VERIFICA E CONVALIDA

L’INSEGNAMENTO INTRODUCE ANCHE I CONCETTI ESSENZIALI DI TEAM WORKING E DI ORGANIZZAZIONE E GESTIONE DI PROGETTI SOFTWARE, SEGNANDO IL PASSAGGIO DALLA PROGRAMMAZIONE FATTA SU PROBLEMI DI PICCOLA TAGLIA, REALIZZATA DA SINGOLO STUDENTE, IN UN TEMPO RIDOTTO (PROGRAMMING IN THE SMALL), ALLO SVILUPPO DI SISTEMI SOFTWARE COMPLESSI, CON COINVOLGIMENTO DI UN TEAM E UNA ARTICOLAZIONE TEMPORALE DELLE ATTIVITÀ (PROGRAMMING IN THE LARGE).

L’INSEGNAMENTO MIRA INOLTRE AD APPROFONDIRE LE IMPLICAZIONI SOCIALI, SCIENTIFICHE ED ETICHE DELLA PROFESSIONE.

CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE
LO STUDENTE DOVRÀ ESSERE IN GRADO DI:
•USARE UN APPROCCIO INGEGNERISTICO ALL’ANALISI, PROGETTAZIONE, REALIZZAZIONE, TESTING E MANUTENZIONE DEL SOFTWARE
•LAVORARE IN GRUPPO E ORGANIZZARE IL PROPRIO LAVORO TENENDO PRESENTE OBIETTIVI E VINCOLI PER CONTRIBUIRE RESPONSABILMENTE E PROATTIVAMENTE AL SUCCESSO DEL PROGETTO E AL RISPETTO DELLE SCADENZE
•“ENTRARE” VELOCEMENTE IN DOMINI DI APPLICAZIONE SEMPRE NUOVI IN MODO DA COMPRENDERNE LE ESIGENZE E TRADURLE IN SISTEMI SOFTWARE DI QUALITÀ
•INDIVIDUARE LA SOLUZIONE CHE BILANCI AL MEGLIO OBIETTIVI DIVERSI E SPESSO CONTRASTANTI
•MOTIVARE LE SCELTE FATTE
•RELAZIONARSI E COMUNICARE CON DIVERSI STAKEHOLDER ADATTANDOSI DINAMICAMENTE ALLE DIVERSE CARATTERISTICHE (CONOSCENZE, ESIGENZE, DOMINIO, LINGUAGGIO) DEGLI INTERLOCUTORI E AGLI OBIETTIVI DELLA COMUNICAZIONE, ADOTTANDO E SELEZIONANDO GLI STRUMENTI DI COMUNICAZIONE (TECNICI E NON TECNICI) CHE RISULTANO PIÙ EFFICACI PER LO SPECIFICO SCOPO
Prerequisiti

GLI STUDENTI DEVONO AVER ACQUISITO LE CONOSCENZE DI BASE:
•DELLA PROGRAMMAZIONE PROCEDURALE
•DELLA PROGRAMMAZIONE OBJECT-ORIENTED
•DEGLI ALGORITMI E STRUTTURE DATI
•DELLE BASI DI DATI

GLI STUDENTI DEVONO ESSERE IN GRADO DI RISOLVERE PROBLEMI DI PROGRAMMAZIONE (PROGRAMMING IN THE SMALL) SIA UTILIZZANDO APPROCCI PROCEDURALI CHE OBJECT ORIENTED, CON OPPORTUNA SELEZIONE E/O REALIZZAZIONE DI IDONEE STRUTTURE DATI E CON ACCESSO A BASI DI DATI.

Contenuti
I CONTENUTI DELL’INSEGNAMENTO SONO ARTICOLATI IN CINQUE MODULI FORMATIVI.

M1: CONCETTI GENERALI DELL’INGEGNERIA DEL SOFTWARE

CONCETTI DI BASE DELL'INGEGNERIA DEL SOFTWARE (PRODOTTO, PROCESSO, PRINCIPI, METODI, METODOLOGIE, STRUMENTI, FASI E ATTIVITÀ); INGEGNERIA DEL SOFTWARE E INGEGNERIA DEI SISTEMI; CICLO DI VITA DEL SOFTWARE; MODELLI DI PROCESSO SOFTWARE, DAL MODELLO A CASCATA AI MODELLI EVOLUTIVI, ITERATIVI E INCREMENTALI; PRINCIPI DELLA MODELLAZIONE VISUALE E NOTAZIONE UNIFIED MODELLING LANGUAGE (UML); CONCETTI DI BASE DELLA GESTIONE E DELLA ORGANIZZAZIONE DI PROGETTI SOFTWARE; MECCANISMI PER LA COMUNICAZIONE E LA COLLABORAZIONE TRA I PARTECIPANTI AD UN PROGETTO SOFTWARE; GESTIONE DELLE CONFIGURAZIONI SOFTWARE; EVOLUZIONE DEL SOFTWARE; STRUMENTI A SUPPORTO DELLO SVILUPPO DEL SOFTWARE

M2: ANALISI E SPECIFICA DEI REQUISITI

RACCOLTA, ANALISI E SPECIFICA DEI REQUISITI; REQUISITI FUNZIONALI E REQUISITI NON FUNZIONALI; USO DELLA NOTAZIONE UML AI FINI DELLA RACCOLTA E ANALISI DEI REQUISITI: CASI D'USO E SCENARI, MODELLAZIONE AD OGGETTI E DIAGRAMMA DELLE CLASSI UML, MODELLAZIONE DINAMICA E DIAGRAMMI UML DI INTERAZIONE, DI STATO E DELLE ATTIVITÀ; DOCUMENTO DI ANALISI DEI REQUISITI

M3: PROGETTAZIONE DI ALTO LIVELLO E ARCHITETTURALE (SYSTEM DESIGN)

PROGETTAZIONE E DECOMPOSIZIONE MODULARE DEL SOFTWARE; PRINCIPI DI COESIONE E ACCOPPIAMENTO; STILI E PARADIGMI ARCHITETTURALI; ARCHITETTURE CLIENT-SERVER E DISTRIBUITE; DESCRIZIONE DELL'ARCHITETTURA FISICA DI UN SISTEMA SOFTWARE CON COMPONENT DIAGRAM E DEPLOYMENT DIAGRAM; RAZIONALE DI DESIGN

M4: PROGETTAZIONE DI BASSO LIVELLO (OBJECT DESIGN) E IMPLEMENTAZIONE

RIUSO DEL SOFTWARE E INTRODUZIONE A DESIGN PATTERN; TECNICHE PER LA SPECIFICA DELLE INTERFACCE DI CLASSI E SOTTOSISTEMI; CONTRATTI IN UML E OBJECT CONSTRAINT LANGUAGE (OCL); DAL MODELLO AL CODICE; PRATICHE E STANDARD DI CODIFICA; CAMBIAMENTI AL CODICE; REFACTORING E REVERSE ENGINEERING

M5: VERIFICA E CONVALIDA DEL SOFTWARE

CONCETTI DI VERIFICA E CONVALIDA DEL SOFTWARE; AFFIDABILITÀ DEL SOFTWARE; CONCETTI DI FAULT E FAILURE; VERIFICA STATICA E DINAMICA; ISPEZIONI, REVISIONI E AUDIT DEL SOFTWARE; TESTING E DEBUGGING; LIVELLI DI TESTING; TESTING DI UNITÀ, DI INTEGRAZIONE E DI SISTEMA; ATTIVITÀ DI PIANIFICAZIONE ED ESECUZIONE DEL TESTING; DOCUMENTI DI PIANIFICAZIONE DEL TEST; GENERAZIONE DI CASI DI TEST; TECNICHE BLACK-BOX E WHITE-BOX; TESTING DI REGRESSIONE; TEST AUTOMATION; DOCUMENTAZIONE DEI DIFETTI E REPORT DELL’ESECUZIONE DEL TESTING
Metodi Didattici
L’INSEGNAMENTO DI INGEGNERIA DEL SOFTWARE PREVEDE:
•LEZIONI FRONTALI (48 ORE) A CARATTERE TEORICO PER IL TRASFERIMENTO DELLE CONOSCENZE NECESSARIE PER L’ANALISI, LA PROGETTAZIONE, L’IMPLEMENTAZIONE E IL TESTING DI SISTEMI SOFTWARE COMPLESSI
•APPROFONDIMENTO DI ASPETTI PRATICI IN LABORATORIO (30 ORE) CON MOMENTI ESERCITATIVI SVOLTI IN COLLABORAZIONE TRA GLI STUDENTI E CON LA PRESENZA E L’INTERAZIONE DEL DOCENTE
•PROGETTO DI GRUPPO (51 ORE) CHE SOLLECITA LA PARTECIPAZIONE ATTIVA DEGLI STUDENTI, L'ATTITUDINE ALLA RIELABORAZIONE PERSONALE DELLE NOZIONI ACQUISITE E L’APPLICAZIONE DELLE CONOSCENZE E DELLE CAPACITÀ DI COMPRENSIONE MATURATE
•STUDIO INDIVIDUALE (96 ORE)

IN PARTICOLARE, TRAMITE IL PROGETTO LO STUDENTE POTRÀ:
•SIMULARE DINAMICHE DI GRUPPO CHE AVVENGONO NEL MONDO DEL LAVORO
•SIMULARE LA RACCOLTA DEI REQUISITI
•SELEZIONARE, ELABORARE E INTERPRETARE LE INFORMAZIONI UTILI AL RAGGIUNGIMENTO DI OBIETTIVI PREFISSATI
•IMPARARE AD INDIVIDUARE LA SOLUZIONE PIÙ COST-EFFECTIVE SULLA BASE DELL’ANALISI DEI TRADE-OFF TRA DIVERSI OBIETTIVI DI DESIGN E VERIFICARE CHE TALI OBIETTIVI SIANO STATI EFFETTIVAMENTE RAGGIUNTI
•CONFRONTARE LE PROPRIE POSIZIONI CON QUELLE DEGLI ALTRI MEMBRI DEL TEAM SU ASPETTI CONCRETI MOTIVANDO ED ARGOMENTANDO OPPORTUNAMENTE LE PROPRIE POSIZIONI
•COMPRENDERE LE ESIGENZE DI UNA APPROPRIATA COMUNICAZIONE
•METTERE ALLA PROVA E MIGLIORARE LE PROPRIE ABILITÀ ATTRAVERSO LA CONDIVISIONE DI MODELLI E DOCUMENTI, SIMULAZIONI DI MEETING, REVISIONI DI PROGETTO, REPORT, RICHIESTE DI MODIFICHE, RISOLUZIONI DI PROBLEMI, NONCHÉ ATTRAVERSO L’APPROPRIATO UTILIZZO DI STRUMENTI DI COMUNICAZIONE SINCRONA E ASINCRONA
•COMPRENDERE L’IMPORTANZA DI UN COMPORTAMENTO RESPONSABILE E PROFESSIONALMENTE ETICO
Verifica dell'apprendimento
IL RAGGIUNGIMENTO DEGLI OBIETTIVI DELL’INSEGNAMENTO È CERTIFICATO MEDIANTE IL SUPERAMENTO DI UN ESAME CON VALUTAZIONE IN TRENTESIMI. L'ESAME PREVEDE LA REALIZZAZIONE DI UN PROGETTO DI GRUPPO E LA CONSEGNA DELLA RELATIVA DOCUMENTAZIONE, UNA PROVA SCRITTA E UNA PROVA ORALE.

LA CONSEGNA DELLA DOCUMENTAZIONE DEL PROGETTO DI GRUPPO È PROPEDEUTICA ALLA PROVA SCRITTA E ALLA PROVA ORALE.

LA PROVA SCRITTA CONSISTE IN UN TEST CON DOMANDE SIA A RISPOSTA MULTIPLA CHE A RISPOSTA APERTA SU ARGOMENTI DEL PROGRAMMA DI INSEGNAMENTO. LA PROVA SCRITTA HA DI NORMA UNA DURATA DI CIRCA 60 MINUTI ED È FINALIZZATA A VERIFICARE LA CAPACITÀ DI APPLICARE CORRETTAMENTE LE CONOSCENZE TEORICHE E LA CAPACITÀ DI COMPRENSIONE DELLE PROBLEMATICHE PROPOSTE. LA PROVA SCRITTA SI CONSIDERA SUPERATA CON IL RAGGIUNGIMENTO DEL PUNTEGGIO DI 18/30. SONO PREVISTE 2 PROVE INTERCORSO DI ESONERO DELLA PROVA SCRITTA E SVOLTE CON LE STESSE MODALITÀ.

LA PROVA ORALE CONSISTE IN UN COLLOQUIO CON DOMANDE E DISCUSSIONE SUGLI ASPETTI SALIENTI DEL PROGETTO DI GRUPPO REALIZZATO E SUI CONTENUTI TEORICI E METODOLOGICI INDICATI NEL PROGRAMMA DELL’INSEGNAMENTO ED È FINALIZZATA AD ACCERTARE IL LIVELLO DI CONOSCENZA RAGGIUNTO DALLO STUDENTE SUI CONTENUTI TEORICI E METODOLOGICI DEL PROGRAMMA DEL CORSO E LA LORO APPLICAZIONE AL PROGETTO, IL CONTRIBUTO DATO AL PROGETTO, LA COMPLETEZZA, CORRETTEZZA E SINTESI DELLA DOCUMENTAZIONE DI PROGETTO, NONCHÉ A VERIFICARE LA CAPACITÀ DI ESPOSIZIONE RICORRENDO ALLA TERMINOLOGIA APPROPRIATE, LA CAPACITÀ DI ORGANIZZAZIONE AUTONOMA DELL'ESPOSIZIONE E LA CAPACITÀ DI MOTIVARE ED ARGOMENTARE OPPORTUNAMENTE LE SCELTE DI PROGETTO.
Testi

B. BRUEGGE, A.H. DUTOIT, OBJECT ORIENTED SOFTWARE ENGINEERING – USING UML, PATTERNS AND JAVA, PRENTICE HALL, 3D EDITION, 2009

DISPENSE DEL DOCENTE

ALTRI TESTI DI APPROFONDIMENTO:
C. GHEZZI, D. MANDRIOLI, M. JAZAYERI, INGEGNERIA DEL SOFTWARE – FONDAMENTI E PRINCIPI, PRENTICE HALL, 2004
R. S. PRESSMAN, PRINCIPI DI INGEGNERIA DEL SOFTWARE, QUARTA EDIZIONE, MCGRAW HILL ITALIA, 2004
I. SOMMERVILLE, SOFTWARE ENGINEERING, ADDISON WESLEY
Altre Informazioni

SITO DELLA PIATTAFORMA DI E-LEARNING:
HTTP://ELEARNING.INFORMATICA.UNISA.IT/EL-PLATFORM/

CONTATTI DEI DOCENTI:
FFERRUCCI@UNISA.IT
GRAVINO@UNISA.IT
ADELUCIA@UNISA.IT
FRANCESE@UNISA.IT
  BETA VERSION Fonte dati ESSE3 [Ultima Sincronizzazione: 2019-05-14]