LABORATORIO INTERDISCIPLINARE B

A.A. di erogazione 2018/2019
Insegnamento obbligatorio

Laurea triennale in INFORMATICA
 (A.A. 2017/2018)

Docenti

Anno di corso: 
2
Tipologia di insegnamento: 
Caratterizzante
Settore disciplinare: 
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI (ING-INF/05)
Attivita' formativa capogruppo: 
Crediti: 
3
Ciclo: 
Secondo Semestre
Ore di attivita' frontale: 
42
Dettaglio ore: 
Lezione (2 ore), Esercitazione (40 ore)

L’obiettivo principale di questo insegnamento è lo sviluppo di competenze riguardanti la progettazione e lo sviluppo di applicazioni software, mediante l’applicazione delle conoscenze teoriche acquisite dallo studente durante il II anno di corso. Le attività svolte consistono nello svolgimento di un progetto sotto la supervisione di un tutor. Il progetto riguarda la realizzazione di un’applicazione e richiede l’applicazione pratica delle conoscenze acquisite nei corsi di “Progettazione del Software”, “Basi di dati”, e “Programmazione concorrente e distribuita”.

Al termine dell’insegnamento lo studente avrà sperimentato e sarà pertanto in grado di gestire:

1) la progettazione, a partire da requisiti utente dati, di un’applicazione software con architettura distribuita, interfacciata ad un sistema di gestione dati relazionale.

2) la progettazione e realizzazione di database

3) l’implementazione in Java dell’applicazione progettata, realizzata in modo tale da gestire efficacemente gli aspetti di comunicazione in ambiente distribuito, e l’accesso concorrente alle risorse condivise.

L'insegnamento non ha prerequisiti obbligatori, ma per un proficuo svolgimento sono necessarie le conoscenze impartite negli insegnamenti di “Progettazione del Software”, “Basi di dati” e “Programmazione concorrente e distribuita”, erogati durante il secondo anno.

L'acquisizione delle diverse conoscenze ed abilità attese si svilupperà in modo parallelo lungo tutto l'insegnamento.
Verranno trattati i seguenti argomenti:

Introduzione al processo di sviluppo Object-Oriented, (2h, obiettivo formativo 1)
Le attività caratterizzanti e gli artefatti prodotti
Il ruolo dei modelli
Introduzione alla notazione UML

Elicitazione dei requisiti (2h, obiettivo formativo 2)
Requisiti funzionali e non funzionali
Scenari e casi d’uso

Analisi dei requisiti (5h, obiettivo formativo 3)
Analysis object model
Dynamic model

Progettazione di sistema (5h, obiettivo formativo 4)
Obiettivi di progettazione
Stili architetturali
Tecniche per gestire gli obiettivi di progettazione

Object design (4h, obiettivo formativo 5)
Riuso di componenti
Specifica di interfacce
Anticipare i cambiamenti usando design pattern

Gestione dei dati (4h, obiettivo formativo 6)
L’object-relational mismatch
Tecniche di bridging brute force
Il pattern Data Access Object
Accesso diretto ad un DBMS mediante JDBC

Presentazione del progetto d’esame, ore 2
Sviluppo dei progetti, lavoro in autonomia 100 ore

Il corso si articola in lezioni frontali (24 ore), ed attività progettuale svolta dallo studente come lavoro autonomo (100 ore).
Le lezioni sono dedicate alla presentazione delle attività che caratterizzano il processo di sviluppo object oriented e di approcci per documentare gli artefatti prodotti durante tale processo.
Una lezione (2 ore) è dedicata alla presentazione delle specifiche dell’applicazione che gli studenti dovranno realizzare come progetto d’esame. La presentazione avviene in modo interattivo, simulando almeno in parte l’interazione con lo “stakeholder” o utente dell’applicazione.
In questo senso, lo studente non è passivamente oggetto della presentazione, ma viene coinvolto per farsi parte attiva ed esercitare le sue conoscenze per individuare ed esplorare i punti salienti e critici dei requisiti.

La prova finale consiste in un progetto finalizzato alla realizzazione di un’applicazione, e alla relativa discussione.

Lo scopo dell’attività progettuale è quello di verificare la capacità dello studente di comprendere i problemi proposti e, alla luce delle conoscenze acquisite, progettare e realizzare l’applicazione in modo da soddisfare i requisiti dati.

Lo scopo della discussione è quello di verificare la validità delle scelte progettuali ed implementative effettuate e la capacità di comunicare e argomentare tali scelte.

Il voto è espresso in trentesimi. La prova finale si intende superata se lo studente ha ottenuto una votazione non inferiore ai 18/30.

Il libro di testo consigliato è:

B. Bruegge & A. H. Dutoit, Object-Oriented Software Engineering Using UML, Patterns, and Java. Third Edition, Prentice Hall

Gli studenti inoltre possono far riferimento ai testi e ai materiali dei corsi di Progettazione del Software, Basi di dati e Programmazione concorrente e distribuita.

Le slide delle lezioni in formato PDF ed eventuale materiale necessario allo svolgimento del progetto sono messe a disposizione sulla piattaforma e-learning di Ateneo.

Il ricevimento studenti si svolge in coda alle lezioni, e su appuntamento previa richiesta via email al docente.