Salta al contenuto principale
CODICE 80305
ANNO ACCADEMICO 2024/2025
CFU
SETTORE SCIENTIFICO DISCIPLINARE INF/01
LINGUA Italiano
SEDE
  • GENOVA
PERIODO 1° Semestre
MATERIALE DIDATTICO AULAWEB

PRESENTAZIONE

L'insegnamento fornisce un'introduzione all'ingegneria del software.

L’ingegneria del software è una disciplina ingegneristica che si occupa di tutti gli aspetti relativi allo sviluppo del software
  • Disciplina = materia/soggetto di studio
  • Ingegneria del software = un insieme di teorie, metodi, tecniche e strumenti (tool) per sviluppare software di qualità in maniera professionale

OBIETTIVI E CONTENUTI

OBIETTIVI FORMATIVI

Acquisire i principi scientifici e professionali di base dell'ingegneria del software nelle diverse fasi di sviluppo del codice: pianificazione, progettazione, modellazione, implementazione, collaudo, verifica e manutenzione.

OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO

L’obiettivo dell'insegnamento è quello di fornire una visione generale dell’Ingegneria del software necessaria alla progettazione e allo sviluppo di sistemi software moderni di grandi dimensioni, nonché introdurre concetti, notazioni, metodi e strumenti per seguire l’intero ciclo di vita del software.

Al termine dell’insegnamento, lo/la studente/studentessa sarà in grado di:

  • comprendere e descrivere gli elementi di base della disciplina (modelli di sviluppo, requisiti, design, testing, manutenzione, design pattern);
  • descrivere un sistema software con il formalismo UML e comprendere la documentazione di uno esistente;
  • risolvere semplici task relativi a software design, refactoring e testing (almeno a livello di unit testing) anche lavorando in team;
  • utilizzare uno strumento CASE UML (ad esempio Visual Paradigm) e un IDE (ad esempio Eclipse o VS Code) per svolgere semplici task (ad esempio creare un class diagram UML o effettuare il refactoring di una porzione di codice)

PREREQUISITI

Per seguire con successo questo insegnamento è necessario aver sostenuto gli esami di Introduzione alla Programmazione e Programmazione Orientata ad Oggetti e quindi conoscere il paradigma di programmazione Imperativo e Object Oriented.

Le seguenti conoscenze si presumono acquisite e costituiscono le basi necessarie per la comprensione degli argomenti di questo insegnamento:

  • Conscenze dei fondamenti della programmazione
  • Conoscenza di un linguaggio di programmazione orientato agli oggetti: in particolare Java
  • Conoscenza dei concetti OO:  Ereditarietà, Polimorfismo,  Incapsulamento
  • Conoscenze base di Database
  • Conoscenze base di Applicazioni Web

MODALITA' DIDATTICHE

L'insegnamento include sia lezioni frontali che attività di laboratorio.

  • Lezioni frontali tradizionali mediante l'utilizzo di slide
  • Laboratori guidati ed attività integrative mediante l'uso di AulaWeb.

AulaWeb verrà usata per tre scopi: come repository del materiale del corso; come canale per le comunicazioni burocratiche, le spiegazioni, le discussioni inerenti il corso; e infine per facilitare il lavoro di gruppo.

PROGRAMMA/CONTENUTO

Il programma dell'insegnamento prevede la presentazione e discussione dei seguenti argomenti:

  • Introduzione all'insegnamento e all’ingegneria del software
  • Modelli di processo di sviluppo software, metodi agili (es. Extreme programming)
  • Ingegneria dei Requisiti. Scenari e  casi d’uso.
  • Software Design: principi e metodi di progettazione, concetti di accoppiamento e coesione, architetture software, design pattern, refactoring
  • Il linguaggio UML: concetto di modello. Class diagram, Sequence diagram, State Machine diagram, Activity diagram
  • Software Testing: Test funzionali/strutturali e copertura. Test di unità, integrazione, sistema. Test di accettazione e Test di regressione
  • Cenni sull'evoluzione del software e manutenzione

TESTI/BIBLIOGRAFIA

  1. Martin Fowler UML Distilled. Pearson-Addison Wesley.
  2. Mike O'Docherty. Object-Oriented Analysis and Design: Understanding System Development with UML 2.0. John Wiley & Sons [per alcune parti]
  3. Sommerville I. Software Engineering, Addison Wesley [per alcune parti]
  4. Shari Lawrence Pfleeger, Joanne M. Atlee. Software Engineering: Theory and Practice [per alcune parti]

DOCENTI E COMMISSIONI

Commissione d'esame

FILIPPO RICCA (Presidente)

GIANNA REGGIO

MAURIZIO LEOTTA (Presidente Supplente)

LEZIONI

INIZIO LEZIONI

In accordo con il calendario didattico approvato dal Consiglio dei Corsi di Studio in Informatica

Orari delle lezioni

L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy

ESAMI

MODALITA' D'ESAME

L'obiettivo della procedura di verifica consiste nel quantificare, per ogni studente, il livello di raggiungimento degli obiettivi formativi precedentemente indicati. La procedura di verifica consiste nella valutazione di alcuni laboratori guidati e in una prova scritta.

L'esame è composto dalle seguenti attività

  1. Attività di laboratorio
  2. Scritto

Attività di laboratorio

L'insegnamento prevede delle attività di laboratorio da svolgersi in gruppo. Per alcune di queste attività verrà richiesta la consegna del lavoro svolto. Per altre verrà semplicemente monitorata la partecipazione degli studenti. Attività alternative da consegnare tramite AulaWeb verranno proposte a chi (es. studenti lavoratori) è impossibilitato a frequentare le attività in laboratorio.

Scritto

La prova scritta sarà costituita da domande a risposta multipla. Le domande saranno sia di tipo teorico che pratico e verteranno sugli argomenti visti a lezione.

Durante le lezioni verranno discussi alcuni esempi di possibili domande, in modo che a fine corso sia chiara la tipologia di prova.

Gli studenti con certificazione di DSA, di disabilità o di altri bisogni educativi speciali devono contattare il docente all’inizio del corso per concordare modalità didattiche e d’esame che, nel rispetto degli obiettivi dell’insegnamento, tengano conto delle modalità di apprendimento individuali e forniscano idonei strumenti compensativi. Si ricorda che la richiesta di misure compensative/dispensative per gli esami dovrà essere inviate al docente del corso, al referente della Scuola e al “Settore servizi per l'inclusione degli studenti con disabilità e con DSA"

MODALITA' DI ACCERTAMENTO

L'attività di laboratorio mira ad accertare le abilità collaborative nel risolvere problemi nell'ambito delle tematiche affrontate nel corso, in particolare uso di UML, refactoring e software testing. Lo scritto ha l'obbiettivo di verificare la conoscenza degli aspetti teorici e pratici della disciplina. In entrambe le prove verranno considerate le conoscenze specifiche della materia e la capacità di ragionamento critico.

Calendario appelli

Data appello Orario Luogo Tipologia Note
23/01/2025 09:30 GENOVA Scritto
12/02/2025 09:30 GENOVA Scritto
19/06/2025 09:30 GENOVA Scritto
11/07/2025 09:30 GENOVA Scritto
10/09/2025 09:30 GENOVA Scritto

Agenda 2030

Agenda 2030
Istruzione di qualità
Istruzione di qualità