ID:
SCV0035
Durata (ore):
72
CFU:
8
SSD:
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
Sede:
Varese - Università degli Studi dell'Insubria
Anno:
2026
Dati Generali
Periodo di attività
Primo Semestre (21/09/2026 - 23/12/2026)
Syllabus
Obiettivi Formativi
L'obiettivo del corso è di fornire agli studenti le conoscenze necessarie allo sviluppo di progetti software che siano pienamente soddisfacenti dal punto di vista sia della loro funzionalità sia di tutte le altre qualità importanti per gli utenti e per gli sviluppatori. A tale scopo gli studenti apprendono sia a livello concettuale sia a livello applicativo le tecniche di progettazione del software, il linguaggio de facto standard Unified Modeling Language (UML) e i design pattern. Inoltre gli studenti apprendono i concetti fondamentali relativi alla qualità del software e le tecniche di base di verifica e convalida del software. Al termine del corso, lo studente sarà in grado di:
1. Applicare i fondamenti concettuali della progettazione del software;
2. Modellare e analizzare sistemi e problemi complessi tramite meccanismi di astrazione e formalizzazione;
3. Riconoscere e utilizzare diversi stili di progetto del software;
4. Conoscere e applicare i diagrammi più importanti e utilizzati di UML, quali Use Case Diagram, Sequence Diagram, Communication Diagram, Class Diagram, Package Diagram, Object Diagram, Statecharts, Activity Diagram, Timing Diagram, Composite Structure Interaction Diagram;
5. Conoscere i principali design pattern e le loro famiglie;
6. Applicare UML e design pattern per la progettazione di sistemi software;
7. Conoscere e applicare le tecniche di base di verifica e convalida del software.
Lo studente dovrà inoltre sviluppare una consapevole autonomia di giudizio per affrontare individualmente e in gruppo l’analisi di un progetto di un sistema software anche complesso e a vari livelli. Lo studente acquisirà la padronanza della terminologia specifica (talvolta standard e anche in lingua inglese) usata nell'ambito della progettazione del software e sarà in grado di presentare con la corretta terminologia le caratteristiche funzionali e di qualità del progetto di un sistema software in modo da poterne illustrare i punti di forza e recepire eventuali proposte per modifiche e miglioramenti dagli altri attori del processo di produzione del software.
1. Applicare i fondamenti concettuali della progettazione del software;
2. Modellare e analizzare sistemi e problemi complessi tramite meccanismi di astrazione e formalizzazione;
3. Riconoscere e utilizzare diversi stili di progetto del software;
4. Conoscere e applicare i diagrammi più importanti e utilizzati di UML, quali Use Case Diagram, Sequence Diagram, Communication Diagram, Class Diagram, Package Diagram, Object Diagram, Statecharts, Activity Diagram, Timing Diagram, Composite Structure Interaction Diagram;
5. Conoscere i principali design pattern e le loro famiglie;
6. Applicare UML e design pattern per la progettazione di sistemi software;
7. Conoscere e applicare le tecniche di base di verifica e convalida del software.
Lo studente dovrà inoltre sviluppare una consapevole autonomia di giudizio per affrontare individualmente e in gruppo l’analisi di un progetto di un sistema software anche complesso e a vari livelli. Lo studente acquisirà la padronanza della terminologia specifica (talvolta standard e anche in lingua inglese) usata nell'ambito della progettazione del software e sarà in grado di presentare con la corretta terminologia le caratteristiche funzionali e di qualità del progetto di un sistema software in modo da poterne illustrare i punti di forza e recepire eventuali proposte per modifiche e miglioramenti dagli altri attori del processo di produzione del software.
Prerequisiti
È richiesta la conoscenza della programmazione del software. Le conoscenze e abilità necessarie per un proficuo apprendimento di questo insegnamento sono impartite nel corso fondamentale del primo anno di Programmazione, che dunque costituisce propedeuticità obbligatoria. È opportuna una buona conoscenza della lingua inglese scritta, che permetta la comprensione di parte del materiale fornito dal docente e di quello disponibile in rete.
Metodi didattici
Il corso si articola in lezioni frontali (48 ore) ed esercitazioni (24 ore). Le lezioni sono dedicate all'illustrazione degli aspetti concettuali e applicativi della progettazione del software. Gli argomenti trattati a lezione sono oggetto di esercitazioni che prevedono la partecipazione attiva degli studenti e riguardano la verifica e convalida del software e lo sviluppo di progetti di piccole e medie dimensioni tramite UML e l'utilizzo opzionale di appositi strumenti di sviluppo.
Verifica Apprendimento
Il grado di apprendimento viene verificato tramite una prova scritta della durata di 4 ore. Durante il corso sono previste due prove parziali il cui superamento comporta il superamento dell’esame. Lo scopo della prova scritta (e delle prove parziali) è di verificare l’apprendimento e la comprensione degli argomenti del corso dal punto di vista teorico e applicato (in problemi di non elevata complessità).
La conoscenza della terminologia specifica di dominio viene testata implicitamente, poiché domande e specifiche dei problemi utilizzano tale terminologia. L'autonomia di giudizio verrà valutata grazie alle scelte effettuate nello svolgimento dell'esame scritto.
Le prove scritte consistono di:
- sei domande per verificare le conoscenze sugli aspetti più concettuali
- un esercizio su verifica e convalida del software
- un esercizio per verificare la comprensione e la conoscenza dei concetti fondamentali di UML e dei design pattern e la capacità di sviluppare progetti software.
Alla risposta a ciascuna domanda viene attribuito un punteggio massimo tra 1 e 3 punti, specificato nel tema d’esame, per un totale massimo di 12 punti per l’insieme delle domande. Alla soluzione dell’esercizio su convalida e verifica viene attribuito un punteggio massimo di 5 punti. Alla soluzione dell’esercizio su UML e design pattern viene attribuito un punteggio massimo di 16 punti.
Il voto dello scritto è compreso tra 0 e 33 e l’esame si intende superato con un punteggio di 18/30 o superiore.
In alternativa, possono essere sostenute due prove scritte parziali, articolate come segue.
La prima prova parziale, della durata di due ore, verte sugli argomenti (A) e (B) sopra riportati nella sezione “Contenuti” e consiste di:
- 6 domande per verificare le conoscenze degli aspetti più propriamente concettuali
- un esercizio sulla verifica e convalida del software.
Alla risposta a ciascuna domanda viene attribuito un punteggio massimo di 3 punti, per un totale massimo di 18 punti per l’insieme delle domande. Il punteggio massimo per la soluzione dell’esercizio su convalida e verifica è di 15 punti. Il voto della prima prova parziale è compreso tra 0 e 33 e la prima prova parziale si intende superata con almeno 15 punti. Il superamento della prima prova parziale permette allo studente l’ammissione alla seconda prova parziale.
La seconda prova parziale, della durata di quattro ore, verte sugli argomenti (C), (D) ed (E) riportati nella sezione “Contenuti” e consiste di:
- tre domande per verificare le conoscenze degli aspetti più propriamente concettuali
- uno o due esercizi per la verifica della comprensione e della conoscenza dei concetti fondamentali di UML e dei design pattern e la capacità di sviluppare progetti software.
Alla risposta a ciascuna domanda viene attribuito un punteggio massimo di 3 punti, per un totale massimo di 9 punti per l’insieme delle domande. Il punteggio massimo per la parte su UML e design pattern è di 24 punti. Se il tema d’esame contiene due esercizi il punteggio massimo per la soluzione di ciascuno è tra 10 e 14 punti, come specificato sul tema d’esame. Il voto della seconda prova parziale è compreso tra 0 e 33. La seconda prova parziale si intende superata con un punteggio di almeno 15 punti.
Il voto finale derivante dalle prove parziali si ottiene per somma ponderata dei punteggi conseguiti nelle prove parziali (se superate entrambe): la prima prova parziale ha un peso di 1/3 e la seconda un peso di 2/3. Il voto è compreso tra 0 e 33 e l’esame si intende superato con il punteggio di 18 o superiore.
Il voto finale conseguito nella prova scritta, nelle singole prove parziali, o nel complesso delle due prove parziali viene calcolato per approssimazione all’intero più vicino.
Il voto così arrotondato, se non superiore a 30, è anche il voto finale dell’esame. La votazione finale di 30 e lode viene attribuita quando tale voto arrotondato è almeno pari a 31.
La conoscenza della terminologia specifica di dominio viene testata implicitamente, poiché domande e specifiche dei problemi utilizzano tale terminologia. L'autonomia di giudizio verrà valutata grazie alle scelte effettuate nello svolgimento dell'esame scritto.
Le prove scritte consistono di:
- sei domande per verificare le conoscenze sugli aspetti più concettuali
- un esercizio su verifica e convalida del software
- un esercizio per verificare la comprensione e la conoscenza dei concetti fondamentali di UML e dei design pattern e la capacità di sviluppare progetti software.
Alla risposta a ciascuna domanda viene attribuito un punteggio massimo tra 1 e 3 punti, specificato nel tema d’esame, per un totale massimo di 12 punti per l’insieme delle domande. Alla soluzione dell’esercizio su convalida e verifica viene attribuito un punteggio massimo di 5 punti. Alla soluzione dell’esercizio su UML e design pattern viene attribuito un punteggio massimo di 16 punti.
Il voto dello scritto è compreso tra 0 e 33 e l’esame si intende superato con un punteggio di 18/30 o superiore.
In alternativa, possono essere sostenute due prove scritte parziali, articolate come segue.
La prima prova parziale, della durata di due ore, verte sugli argomenti (A) e (B) sopra riportati nella sezione “Contenuti” e consiste di:
- 6 domande per verificare le conoscenze degli aspetti più propriamente concettuali
- un esercizio sulla verifica e convalida del software.
Alla risposta a ciascuna domanda viene attribuito un punteggio massimo di 3 punti, per un totale massimo di 18 punti per l’insieme delle domande. Il punteggio massimo per la soluzione dell’esercizio su convalida e verifica è di 15 punti. Il voto della prima prova parziale è compreso tra 0 e 33 e la prima prova parziale si intende superata con almeno 15 punti. Il superamento della prima prova parziale permette allo studente l’ammissione alla seconda prova parziale.
La seconda prova parziale, della durata di quattro ore, verte sugli argomenti (C), (D) ed (E) riportati nella sezione “Contenuti” e consiste di:
- tre domande per verificare le conoscenze degli aspetti più propriamente concettuali
- uno o due esercizi per la verifica della comprensione e della conoscenza dei concetti fondamentali di UML e dei design pattern e la capacità di sviluppare progetti software.
Alla risposta a ciascuna domanda viene attribuito un punteggio massimo di 3 punti, per un totale massimo di 9 punti per l’insieme delle domande. Il punteggio massimo per la parte su UML e design pattern è di 24 punti. Se il tema d’esame contiene due esercizi il punteggio massimo per la soluzione di ciascuno è tra 10 e 14 punti, come specificato sul tema d’esame. Il voto della seconda prova parziale è compreso tra 0 e 33. La seconda prova parziale si intende superata con un punteggio di almeno 15 punti.
Il voto finale derivante dalle prove parziali si ottiene per somma ponderata dei punteggi conseguiti nelle prove parziali (se superate entrambe): la prima prova parziale ha un peso di 1/3 e la seconda un peso di 2/3. Il voto è compreso tra 0 e 33 e l’esame si intende superato con il punteggio di 18 o superiore.
Il voto finale conseguito nella prova scritta, nelle singole prove parziali, o nel complesso delle due prove parziali viene calcolato per approssimazione all’intero più vicino.
Il voto così arrotondato, se non superiore a 30, è anche il voto finale dell’esame. La votazione finale di 30 e lode viene attribuita quando tale voto arrotondato è almeno pari a 31.
Contenuti
Le lezioni riguarderanno i seguenti argomenti:
(A) La qualità del software e il suo processo produttivo (20 h, obiettivi formativi 1 e 7)
- introduzione all'ISO9126
- il modello di sviluppo a cascata - il modello di sviluppo agile
- tecniche di testing e analisi
(B) Progettazione Object-oriented in piccolo e relazioni con la codifica (8 h, obiettivo formativo 2)
- principi di progettazione in piccolo
- information hiding
- progettazione dei metodi
(C) Aspetti concettuali della progettazione del software in grande (6 h, obiettivi formativi 2 e 3)
- i moduli e le loro relazioni
- l’ereditarietà come strumento concettuale per la progettazione del software
- linguaggi di descrizione dei progetti software
- stili di progetto
(D) Unified Modeling Language (UML) (30 h, obiettivi formativi 4 e 6)
- Struttura di UML e famiglie di diagrammi
- Use Case Diagram, Sequence Diagram, Communication Diagram, Class Diagram, Package Diagram, Object Diagram, Statecharts, Activity Diagram, Timing Diagram, Composite Structure Interaction Diagram
(E) Design pattern (8 h, obiettivi formativi 5 e 6)
- Concetto e utilità dei design pattern
- Tassonomia dei design pattern
- Esempi e applicazioni di design pattern
- Model-View-Controller
(A) La qualità del software e il suo processo produttivo (20 h, obiettivi formativi 1 e 7)
- introduzione all'ISO9126
- il modello di sviluppo a cascata - il modello di sviluppo agile
- tecniche di testing e analisi
(B) Progettazione Object-oriented in piccolo e relazioni con la codifica (8 h, obiettivo formativo 2)
- principi di progettazione in piccolo
- information hiding
- progettazione dei metodi
(C) Aspetti concettuali della progettazione del software in grande (6 h, obiettivi formativi 2 e 3)
- i moduli e le loro relazioni
- l’ereditarietà come strumento concettuale per la progettazione del software
- linguaggi di descrizione dei progetti software
- stili di progetto
(D) Unified Modeling Language (UML) (30 h, obiettivi formativi 4 e 6)
- Struttura di UML e famiglie di diagrammi
- Use Case Diagram, Sequence Diagram, Communication Diagram, Class Diagram, Package Diagram, Object Diagram, Statecharts, Activity Diagram, Timing Diagram, Composite Structure Interaction Diagram
(E) Design pattern (8 h, obiettivi formativi 5 e 6)
- Concetto e utilità dei design pattern
- Tassonomia dei design pattern
- Esempi e applicazioni di design pattern
- Model-View-Controller
Lingua Insegnamento
ITALIANO
Altre informazioni
Il docente riceve su appuntamento, previa richiesta via e-mail a sandro.morasca@uninsubria.it.
Corsi
Corsi
INFORMATICA
Laurea
3 anni
No Results Found
Persone
Persone (2)
Ricercatori
Docenti di ruolo di Ia fascia
No Results Found