Tu sei qui

Progettazione del software

Progettazione del Software
Corso di Laurea Triennale in Informatica F004

SCV0035
Docente: Sandro Morasca


CFU SSD LEZIONI ESERCITAZIONI ANNO LINGUA
8 ING-INF/05 48 24 II Italiano


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 è quello 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. D’altra parte, gli studenti sviluppano la capacità di analizzare progetti software esistenti, in modo da poterli valutare e se necessario modificare. 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
in larga parte 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;
  • applica UML 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).
Autonomia di giudizio
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.

Prerequisiti
È 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 4;
  • 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 2;
  • Modularizzazione e divisione dei compiti. 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 6;
  • 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 2;
  • 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
Le slide usate a supporto delle lezioni sono disponibili sul sito dell’e-learning.
Sul sito dell’e-learning dell’Università sono anche disponibili link a siti e materiale di interesse.



Modalità di verifica dell’apprendimento
Il grado di apprendimento viene verificato tramite una prova scritta e lo sviluppo di un progetto, svolto in autonomia dallo studente. Durante il corso sono previste due prove parziali il cui superamento comporta l’esonero dalla prova scritta.
Lo scopo della prova scritta (e delle prove parziali) è quello di verificare l’apprendimento e la comprensione degli elementi relativi alla progettazione dal punto di vista teorico e applicato (in problemi di non elevata complessità). Le prove scritte (come le prove parziali) consistono di:

  • esercizi per la verifica della comprensione e della conoscenza dei concetti fondamentali di UML e la capacità di sviluppare progetti di software;
  • esercizi per la verifica della capacità di progettare e realizzare interfacce grafiche;
  • domande per la verifica delle conoscenze degli aspetti più propriamente concettuali.

Lo scopo del progetto è di mettere alla prova le capacità e le conoscenze dello studente nel progetto di un sistema per molti aspetti realistico. Inoltre, la presentazione del progetto ha l’obiettivo di verificare le capacità comunicative sviluppate dallo studente, sia dal punto di vista tecnico e della terminologia sia dal punto di vista della capacità di saper trasmettere una visione completa e organizzata del lavoro effettuato.
Il voto della prova scritta (o delle due prove in itinere) è espresso in trentesimi, così come il voto del progetto. Il voto finale è determinato dal voto della prova scritta a cui viene applicata una variazione di al massimo tre punti derivante dalla valutazione del progetto.

Orario di ricevimento
Durante il periodo in cui si svolge il corso il docente riceve nei giorni in cui si tengono le lezioni o le esercitazioni. Al di fuori di tale periodo, su appuntamento

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer