Università degli Studi Guglielmo Marconi

Insegnamento
Fondamenti di ingegneria del software
Docente
Prof.ssa Pieroni Alessandra
Settore Scientifico Disciplinare
ING-INF/05
CFU
6
Descrizione dell'insegnamento

Il corso ha la finalità di consentire agli studenti di comprendere quali siano i principali strumenti dell'Ingegneria del Software, quali siano gli strumenti di base per l’analisi, la progettazione e la realizzazione di sistemi software di qualità. Il corso si focalizza prevalentemente sulla descrizione delle fasi del processo di sviluppo del software. Saranno inoltre forniti elementi essenziali del linguaggio UML per la modellazione del software e delle tecniche di gestione dei progetti software. 

Obiettivi formativi (espressi come risultati di apprendimento attesi)
Al termine di questo corso, lo studente sarà in grado di:
  • analizzare in maniera critica le varie fasi del processo di produzione di un sistemi software;
  • conoscere i principi base della Qualità del software;
  • sviluppare sistemi software secondo una delle metodologie descritte;
  • apprendere le basi del linguaggio UML;
  • gestire tutte le fasi di un progetto software.
Prerequisiti

Non sono richiesti requisiti specifici.

Contenuti dell'insegnamento
Modulo Lezioni: Fondamenti di Ingegneria del Software

Gli obiettivi del modulo sono:
  1. studiare i principi dell'Ingegneria del Software;
  2. conoscere i principi dello sviluppo prescrittivo del software; 
  3. acquisire conoscenze sul linguaggio UML.
Le lezioni sono sedici:
  1. Introduzione. I principi dell'Ingegneria del Software
  2. UML: Principi fondamentali e Class Diagram
  3. UML: Structure, Behavior e Interaction Diagram
  4. Modelli di processo software prescrittivi
  5. II modelli di processo non prescrittivi:Model-Driven, RUP e Agili
  6. Pratiche di Ingegneria del software Ingegneria dei sistemi
  7. Ingegneria dei requisiti
  8. Ingegneria dei requisiti: la creazione del modello a livello di analisi
  9. Progettazione architetturale
  10. Progettazione di dettaglio: componenti ed user interface
  11. Strategie di testing
  12. Gestione dei progetti. Generalità, misure del prodotto software
  13. Gestione dei progettimetriche di processo e progetto, pianificazione
  14. Scheduling dei progetti
  15. Gestione dei rischi e della qualità
  16. Gestione del cambiamento
Attività didattiche
Didattica Erogativa
L'insegnamento prevede, per ciascun CFU, 5 ore di Didattica Erogativa, costituite da 2,5 videolezioni (tenendo conto delle necessità di riascolto da parte dello studente). Ciascuna videolezione esplicita i propri obiettivi e argomenti, ed è corredata da materiale testuale in pdf.
Alcune video-lezioni sono focalizzate su aspetti pratici e riguardano gli strumenti introdotti a supporto di tali innovazioni. Le videolezioni teoriche consentiranno di fornire agli studenti le conoscenze relative a concetti fondamentali, nuovi paradigmi, temi innovativi ad alto livello. Le video-lezioni pratiche, contenenti esempi reali di utilizzo di strumenti, applicativi e piattaforme, permetteranno di arricchire le competenze degli studenti fornendogli un bagaglio tecnologico adeguato. A tal riguardo, si presenteranno confronti di tecnologie, strategie e strumenti introdotti nel processo di produzione del software e di rendere in parte autonomo lo studente nella selezione degli strumenti più adatti. In entrambi i casi si farà uso di una terminologia adeguata agli argomenti trattati. 

Didattica Interattiva
L'insegnamento segue quanto previsto dalle Linee Guida di Ateneo sulla Didattica Interattiva e l'interazione didattica, e propone, per ciascun CFU, 1 ora di Didattica Interattiva dedicata alle seguenti attività: lettura area FAQ, partecipazione ad e-tivity strutturata costituita da attività finalizzate alla restituzione di un feedback formativo e interazioni sincrone dedicate a tale restituzione.
Tra le interazioni sincrone, sono utilizzate le aule virtuali in genere così strutturate:
-    il docente rende disponibile un testo di esercitazione agli studenti con domande prettamente a risposta aperta;
-    lo studente svolge in autonomia gli esercizi;
-    durante l’aula virtuale, il docente dà un “feedback formativo” ovvero valuta il livello di apprendimento degli argomenti del corso, raccoglie i dubbi e fornisce chiarimenti ed eventuali approfondimenti in base alle risposte date dagli studenti e alle difficoltà riscontrate. Il docente favorirà la discussione e il confronto al fine di sviluppare competenze critiche.
Modalità di verifica dell'apprendimento
Tutte le prove di verifica e autoverifica intermedie previste dai Corsi ed erogate in modalità distance learning sono da considerarsi altamente consigliate e utili ai fini della preparazione e dello studio individuali. Le prove di verifica e autoverifica intermedie non sono obbligatorie ai fini del sostenimento della prova d´esame, la quale deve essere svolta in presenza dello studente davanti ad apposita Commissione ai sensi dell´art. 11 c.7 lett.e) del DM 270/2004.
La prova finale sarà composta da una serie di domande aperte cui lo studente è chiamato a rispondere in piena autonomia. Le domande aperte verteranno sull'intero programma espletato durante il corso.

L’esame finale è volto a verificare la comprensione degli argomenti trattati, la capacità di applicare correttamente le nozioni a casi studio e la comprensione delle problematiche proposte nel corso. L’esame si svolge in forma scritta e/o orale. Il punteggio della prova è espresso in trentesimi.

La prova scritta consiste in domande a risposta aperta sugli argomenti specifici del corso. Le domande sono formulate con questa tipologia sia per argomenti più teorici sia per argomenti più pratici. Viene richiesto agli studenti di dimostrare la comprensione dei concetti fondamentali relativi alle azioni di digitalizzazione di un processo produttivo e alle modalità di analisi dei dati raccolti in ambito IoT e la capacità dello studente di applicare tali conoscenze tramite la descrizione di funzionalità e strumenti implementati in scenari reali e attualmente in uso. La prova scritta ha una durata massima di 120 minuti durante la quale gli studenti devono illustrare in modo adeguato gli argomenti richiesti dimostrando di aver raggiunto gli obiettivi formativi prefissati.
La prova orale consiste in un colloquio frontale sugli argomenti trattati nel corso. Durante la prova orale verrà richiesto agli studenti di esporre gli argomenti trattati durante il corso, al fine di verificare la capacità di apprendimento dei contenuti fondamentali del corso. Durante la prova orale si cerca anche di valutare la capacità dello studente di presentare degli esempi, dei casi di studio, per verificare il livello di acquisizione degli strumenti introdotti con le piattaforme digitali illustrate. La prova orale ha una durata media di 30 minuti.

L’esame, in entrambe le forme, è finalizzato anche a valutare l’autonomia di giudizio, l’abilità comunicativa e la capacità di apprendere degli studenti.
Al fine di valutare il conseguimento degli obiettivi formativi del corso, il docente terrà conto nella valutazione finale dell’esame:
-    della capacità di apprendere e quindi di esporre l’argomento richiesto; mostrando un’attitudine a risolvere nuove sfide;
-    della padronanza di linguaggio dello studente;
-    della capacità di applicare architetture, funzionalità o strumenti alla risoluzione di problemi reali e di valutare in modo appropriato le scelte tecnologiche in base a situazioni reali.

Per superare l’esame, lo studente deve dimostrare di aver acquisito conoscenze per l’analisi dei problemi complessi, una conoscenza di base sulle funzionalità e sui principali elementi degli strumenti introdotti in tale processo. Per conseguire un punteggio pari a 30/30 e lode, lo studente deve inoltre dimostrare di aver acquisito una conoscenza eccellente di tutti gli argomenti trattati durante il corso.
Libri di testo

Oltre alle lezioni realizzate dal Docente ed ai materiali didattici pubblicati in piattaforma, è obbligatorio lo studio del seguente testo:

  • Roger S. Pressman “Principi di Ingegneria del Software”, 5 Edizione, McGrawHill
Ricevimento studenti

Previo appuntamento (a.pieroni@unimarconi.it)