Dettaglio insegnamento

INGEGNERIA DEL SOFTWARE

S1730

Insegnamento
INGEGNERIA DEL SOFTWARE
Codice
S1730
Anno Accademico
2025/2026
Anno regolamento
2023/2024
Corso di studio
INFORMATICA
Curriculum
000 - CORSO GENERICO
Responsabile didattico
CFU
6
Ore di lezione
48
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB - Obbligatoria
Anno
3
Periodo
Primo Semestre
Sede
ALESSANDRIA
Lingua insegnamento
Italiano
Contenuti
Il corso tratta le fasi del processo di sviluppo di sistemi software: specifica, progettazione, implementazione, collaudo e manutenzione. Inoltre viene introdotto il linguaggio UML per la specifica e la progettazione di sistemi. L'attività di laboratorio consiste nella preparazione di diagrammi UML tramite un apposito editor, e la loro traduzione in codice.
Testi di riferimento
- I. Sommerville, “Ingegneria del software”, Pearson Italia, 10a edizione, 2017, https://he.pearson.it/bundle/709?isbn=9788891902245 – M. Fowler,“UML distilled”, Pearson Italia, 4a edizione, 2018, https://he.pearson.it/bundle/701?isbn=9788891907820
Obiettivi formativi
La Studentessa/lo Studente deve conoscere: 1) i passi necessari per realizzare un sistema software a partire dalla richiesta di un committente, fino alla consegna, secondo il processo dell'Ingegneria; 2) i diagrammi UML necessari per modellare il dominio applicativo, i requisiti, l'architettura e il comportamento del sistema; 3) terminologia dell'Ingegneria. La Studentessa/lo Studente deve essere in grado di: 1) organizzare un processo di lavoro secondo le fasi dell'Ingegneria, individuando e definendo tutte le informazioni propedeutiche all'implementazione del sistema (requisiti, architettura, comportamento); 2) rappresentare tali informazioni sotto forma di diagrammi UML in modo da essere comprensibili da altri sviluppatori, e scrivere il codice rispettando il contenuto di tali diagrammi; 3) comprendere e utilizzare il linguaggio tipico dagli ingegneri.
Prerequisiti
Conoscenze acquisite nei corsi di Paradigmi di programmazione e Basi di dati.
Metodi didattici
Il corso prevede lezioni frontali in aula e lezione pratiche in laboratorio. Le lezioni frontali occupano circa 32 ore. Le lezioni di laboratorio occupano circa 16 ore. Modalità: le lezioni frontali si occupano di spiegare le fasi dell'Ingegneria e come queste si possono applicare allo sviluppo di un sistema software. Inoltre si presenta il linguaggio UML sia dal punto di vista formale sia dal punto di vista applicativo mostrando come può essere utilizzato per modellare il dominio applicativo, i requisiti, l'architettura, il comportamento del sistema, e per supportare la scrittura del codice. Le lezioni pratiche prevedono la preparazione di un progetto dove si definiscono dei diagrammi UML e si traducono in codice. Strumenti: Un caso di studio specifico è utilizzato durante le lezioni frontali per mostrare come progettare il sistema a partire dalla deduzione dei requisiti dal dominio applicativo. Il caso di studio viene progressivamente sviluppato durante le lezioni riguardanti l'applicazione pratica delle fasi dell'Ingegneria e di UML. Lo scopo del caso di studio è fornire alle Studentesse/agli Studenti un esempio concreto di applicazione delle procedure viste nel corso. La preparazione da parte delle Studentesse/degli Studenti di un proprio progetto in UML è richiesto durante le ore in laboratorio. Tale progetto deve avere gli stessi contenuti in termini di specifica e progettazione. Lo scopo del progetto è l'applicazione pratica da parte delle Studentesse/degli Studenti delle stesse procedure viste durante le lezioni frontali. Un apposito editor UML (Visual Paradigm) è utilizzato sia in aula sia in laboratorio, per modellare il caso di studio e per preparare il progetto. Il corso ha una propria pagina nella piattaforma DIR (Didattica in Rete) che contiene le slide del corso, le istruzioni per l'editor UML, alcune prove scritte del passato, ecc.
Altre informazioni
Durante il corso sono previste varie scadenze per consegnare le parti del progetto di laboratorio: diagrammi di specifica (verso fine ottobre), diagrammi di progettazione (verso fine novembre), codice e test-cases (verso fine dicembre). Ciò viene fatto tramite uno strumento di condivisione dei file (Git) e consente di controllare periodicamente quanto prodotto dalle Studentesse/dagli Studenti. Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati rivolgendosi allo Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti-disabili-e-dsa Le studentesse e gli studenti con disabilità, DSA, BES possono inoltre contattare la/il docente titolare dell’insegnamento in relazione alla declinazione delle modalità di esame.
Modalità di verifica dell'apprendimento
Per le Studentesse/gli Studenti che frequentano il corso, l'esame è composto da due parti: 1) la consegna, alla fine del corso, del progetto realizzato durante le lezioni di laboratorio; 2) una prova scritta riguardante la parte di teoria da sostenere agli appelli. Per essere ammessi alla prova scritta il progetto deve essere consegnato. 1) La valutazione del progetto si basa sulla qualità dei diagrammi UML realizzati, in termini di precisione (circa 10 punti), coerenza (circa 10 punti) e completezza (circa 10 punti). Per precisione si intende la correttezza formale dei diagrammi, un livello di dettaglio accettabile e l'assenza di ambiguità di interpretazione del contenuto. Per coerenza si intende che non ci devono essere discrepanze tra un diagramma e l'altro, e tra i diagrammi e il codice implementato. Per completezza si intende che tutti i diagrammi richiesti devono essere presenti, assieme al codice corrispondente e ai test-case. 2) Nella prova scritta si verificano la conoscenza delle varie fasi del processo dell'Ingegneria, l'acquisizione della terminologia dell'Ingegneria e l'applicazione di alcuni metodi. L'esame scritto prevede sia domande (circa 15) sui concetti teorici, sia esercizi applicativi (circa 3) relativi ai metodi. Il numero delle domande è motivato dalla necessità di coprire tutti gli argomenti; tuttavia ogni domanda è abbastanza specifica e richiede una risposta relativamente breve. Una domanda vale circa 1.5 punti su 30; ogni esercizio vale circa 2.5 punti. Durante la prova scritta non è consentita la consultazione del materiale del corso o di manuali. Sulla piattaforma DIR, nella pagina del corso, ci sono esempi di prove scritte del passato. Il voto finale è dato dalla media tra i voti del progetto consegnato e dell'esame scritto. Per le Studentesse/gli Studenti che non frequentano il corso è prevista una prova orale su tutto il programma del corso (teoria e UML), da sostenere agli appelli. La prova orale prevede domande su argomenti della parte di teoria (circa 3), esercizi relativi ai metodi visti in questa parte (circa 2), domande sugli aspetti formali di UML (circa 3), esercizi relativi ai diagrammi UML (circa 2). Una domanda vale circa 3 punti; un esercizio vale circa 3 punti.
Programma esteso
- Introduzione all'Ingegneria del Software - Processo software (ciclo di vita del software) - Specifica dei requisiti - Specifica con UML - Progettazione - Progettazione con UML - Da UML al codice - Collaudo - Manutenzione - Gestione del progetto - Modelli di processo software - Design patterns - Strumenti software - Progetto di laboratorio
Risultati di apprendimento attesi
Il corso prevede una parte teorica e una parte di laboratorio. La parte teorica tratta il processo dell'Ingegneria strutturato nelle fasi di specifica, progettazione, implementazione, collaudo e manutenzione. Lo scopo e' mostrare come tale processo puo' essere applicato allo sviluppo di sistemi software. La parte di laboratorio introduce il linguaggio UML per la specifica e la progettazione di sistemi. L'attività in laboratorio consiste nella preparazione di diagrammi UML relativi ad un determinato sistema software, attraverso l'uso di un editor UML, e la loro traduzione in codice. Questo permette di prendere confidenza con tali diagrammi e approfondirne la conoscenza. Conoscenza e comprensione: fasi dell'Ingegneria, aspetti formali dei vari tipi di diagrammi UML. Capacità di applicare conoscenza e comprensione: applicazione delle fasi dell'Ingegneria allo sviluppo di un sistema software, ed in particolare, - studio del dominio applicativo; - deduzione dei requisiti dal dominio; - modellazione del dominio e dei requisiti in UML; - definizione e modellazione in UML di un'architettura software adatta a realizzare i requisiti; - definizione e modellazione in UML del comportamento dei componenti del sistema durante l'esecuzione di un certo requisito, con un livello di dettaglio tale da consentire l'implementazione del requisito in un linguaggio di programmazione. Autonomia di giudizio: studio e definizione in modo autonomo del dominio applicativo, dei requisiti, dell'architettura e del comportamento del sistema. Abilità comunicative: - comunicazione e coordinazione all'interno del gruppo di lavoro; - esprimere i requisiti del sistema con diversi gradi di dettaglio; - stesura dei diagrammi UML in modo completo, dettagliato e coerente, al fine di renderli comprensibili a qualunque programmatore. Capacita' di apprendimento: acquisire la terminologia dell'Ingegneria, organizzare lo sviluppo di un sistema secondo le fasi dell'Ingegneria, modellare gli aspetti di specifica e progettazione tramite un linguaggio formale quale UML.
Ultimo aggiornamento:09-09-2026 00:14:31