Università degli studi dell'Insubria

PROGETTAZIONE DEL SOFTWARE

A.A. di erogazione 2016/2017

Laurea triennale in INFORMATICA
 (A.A. 2015/2016)
Anno di corso: 
2
Tipologia di insegnamento: 
Caratterizzante
Settore disciplinare: 
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI (ING-INF/05)
Crediti: 
8
Ciclo: 
Primo Semestre
Ore di attivita' frontale: 
72
Dettaglio ore: 
Lezione (48 ore), Esercitazione (24 ore)

Obiettivi dell’insegnamento e risultati di apprendimento attesi
Il corso illustra gli elementi concettuali e applicativi più importanti a riguardo della progettazione di sistemi software. L'obiettivo primario è 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. Inoltre, gli studenti sviluppano la capacità di analizzare progetti software esistenti, in modo da poterli valutare e se necessario modificare. Infine, gli studenti sono in grado di riutilizzare soluzioni progettuali esistenti, codificate tramite i design pattern. Il linguaggio di progettazione utilizzato è lo Unified Modeling Language (UML), lo standard de facto nel settore. L'insegnamento di natura più concettuale trova la sua applicazione in una serie di esercitazioni che sono svolte per la parte di realizzazione nel linguaggio Java.
Al termine di questo corso lo studente:
conosce i fondamenti concettuali della progettazione del software;
conosce le parti più importanti di UML;
conosce i design pattern più utilizzati;
applica UML e design pattern per la progettazione di sistemi software.

Conoscenza e capacità di comprensione (knowledge and under standing)
Al termine del corso lo studente possiede le conoscenze e le capacità di comprensione necessarie per affrontare individualmente e in gruppo l’analisi di un progetto di un sistema software anche complesso e a vari livelli.

Capacità di applicare conoscenza e comprensione (applying knowledge and understanding)
Al termine del corso lo studente è in grado di applicare sia i principi generali della Progettazione del Software, sia il linguaggio di Progettazione del Software che costituisce lo standard de facto (UML), sia schemi ricorrenti per la costruzione di progetti del software (design pattern). Al termine del corso lo studente è in grado di individuare lo schema concettuale di risoluzione di un problema e di utilizzare il linguaggio di progettazione per l’organizzazione della sua soluzione. Inoltre, lo studente è in grado di valutare la qualità e l’adeguatezza di diverse soluzioni alternative in modo da poter scegliere quella più appropriata e modificare soluzioni esistenti in modo tale da poter raggiungere in maniera efficace gli obiettivi di progetto.

Abilità comunicative
Al termine del corso lo studente è 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. Ciò permette allo studente di potersi inserire facilmente in gruppi di lavoro quali quelli che in larga misura caratterizzano lo sviluppo del software. Infine, il corso vuole anche abituare lo studente al linguaggio tecnico del settore, con particolare riferimento alla terminologia in lingua inglese.

È richiesta la conoscenza della programmazione del software. È 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.

Contenuti e programma del corso
Le attività di sviluppo del software.
lezioni ore 2; esercitazioni ore 0;
Le qualità del software.
lezioni ore 2; esercitazioni ore 0;
L’approccio object-oriented per lo sviluppo e il progetto del software.
lezioni ore 4; esercitazioni ore 2;
L’ereditarietà come strumento concettuale per la progettazione del software.
lezioni ore 2; esercitazioni ore 0;
Principi della progettazione del software e aspetti concettuali.
lezioni ore 2; esercitazioni ore 0;
I moduli e le loro relazioni.
lezioni ore 4; esercitazioni ore 0;
Le interfacce grafiche.
lezioni ore 4; esercitazioni ore 6;
Linguaggi di descrizione dei progetti software.
lezioni ore 2; esercitazioni ore 0;
Unified Modeling Language (UML): concetti generali e struttura.
lezioni ore 2; esercitazioni ore 0
Use Case Diagram.
lezioni ore 2; esercitazioni ore 2;
Interaction Diagram.
lezioni ore 2; esercitazioni ore 2;
Class Diagram, Package Diagram e Object Diagram.
lezioni ore 6; esercitazioni ore 4;
Statecharts.
lezioni ore 4; esercitazioni ore 2;
Activity Diagram, Timing Diagram, Composite Structure Interaction Diagram.
lezioni ore 2; esercitazioni ore 2;
Studio di un caso.
lezioni ore 4; esercitazioni ore 0;
Design Pattern.
lezioni ore 4; esercitazioni ore 4

Tipologia delle attività didattiche
Lezioni frontali, 48 ore di lezioni teoriche:
concetti fondamentali della progettazione del software;
UML come linguaggio di sviluppo di un progetto del software;
le interfacce grafiche
i design pattern.
Esercitazioni, 24 ore:
esercizi su UML;
esercizi sulle interfacce grafiche;
esercizi sui design pattern.

Testi e materiale didattico
Gli argomenti del corso sono tratti dai libri:
Matematica Discreta, di C. Delizia, P. Longobardi, M. Maj, C. Nicontera, McGraw-Hill.
Introduzione alla Matematica Discreta, di M Bianchi e A. Gillio, McGraw-Hill.
Elementi di Matematica Discreta e Algebra Lineare di F. Dalla Volta e M. Rigoli, Pearson Education, 2007.
Dispense e slide delle lezioni sul sito di e-learning.

Modalità di verifica dell’apprendimento
L’esame consiste in una prova scritta centrata sulla risoluzione degli esercizi relativi agli argomenti trattati nel corso, seguita da una prova orale nella quale, oltre ad eventualmente integrare e correggere gli esercizi della prova scritta, ci si concentrerà sull'accertamento dell’acquisizione e della corretta comprensione dei contenuti del corso, tramite l’esposizione delle dimostrazioni di 2 teoremi (a scelta dello studente) studiati nel corso. Per poter accedere alla prova orale bisognerà ottenere la sufficienza alla prova scritta. La prova orale potrà essere sostenuta anche in una sessione d’esame diversa dalla prova scritta. Esempi di prove scritte passate si trovano sul sito di e-learning del corso.
L’attribuzione del voto finale sarà determinata da una valutazione complessiva del voto dello scritto e del voto dell’orale.
A metà e alla fine del corso è possibile sostenere delle prove scritte in itinere, che (se superate entrambe) valgono come parte scritta dell’esame e permettono di accedere alla prova orale.

Cerchi il programma? Potrebbe non essere ancora stato caricato o riferirsi ad insegnamenti che verranno erogati in futuro.
Seleziona l‘anno in cui ti sei immatricolato e troverai le informazioni relative all'insegnamento del tuo piano di studio.

A.A. 2019/2020

Anno di corso: 2
Curriculum: PERCORSO COMUNE

A.A. 2018/2019

Anno di corso: 2
Curriculum: PERCORSO COMUNE

A.A. 2017/2018

Anno di corso: 2
Curriculum: PERCORSO COMUNE

A.A. 2016/2017

Anno di corso: 2
Curriculum: PERCORSO COMUNE

A.A. 2014/2015

Anno di corso: 2
Curriculum: PERCORSO COMUNE

A.A. 2013/2014

Anno di corso: 2
Curriculum: PERCORSO COMUNE