LABORATORIO INTERDISCIPLINARE B

A.A. di erogazione 2019/2020
Insegnamento obbligatorio

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

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: 
24
Dettaglio ore: 
Lezione (24 ore)

L’obiettivo principale di questo insegnamento è lo sviluppo di competenze riguardanti l’applicazione del processo di sviluppo object-oriented per progettare e implementare applicazioni software che si interfacciano con un database relazionale a partire dai requisiti di tali applicazioni. Tale obiettivo richiede l’applicazione delle conoscenze acquisite dallo studente nei corsi di “Progettazione del Software”, “Basi di dati”, e “Programmazione concorrente e distribuita”. Il corso prevede lo svolgimento, sotto la supervisione di un tutor, di un progetto che richiede di applicare il processo proposto per sviluppare un’applicazione software con architettura distribuita, interfacciata ad un sistema di gestione dati relazionale.

Al termine dell’insegnamento lo studente avrà sperimentato e sarà pertanto in grado di gestire il processo di sviluppo object-oriented, ed in particolare:

1) avrà una conoscenza generale delle attività e degli artefatti prodotti durante il processo di sviluppo

2) sarà in grado di elicitare e analizzare i requisiti funzionali e non funzionali del sistema

3) sarà in grado, partendo dai requisiti analizzati, di progettare l’applicazione.

4) sarà in grado di progettare e realizzare il database, e le query di selezione e manipolazione dei dati

5) sarà in grado di implementare in Java l’applicazione progettata, gestendo gli aspetti di comunicazione in ambiente distribuito, l’accesso concorrente alle risorse condivise, e l’interfacciamento con il database.

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”.

Verranno trattati i seguenti argomenti:
- Introduzione al processo di sviluppo Object-Oriented, (2h, obiettivo formativo 1)
++ Le attività caratterizzanti e gli artefatti prodotti

- Elicitazione e analisi dei requisiti (7h, obiettivo formativo 2)
++ Requisiti funzionali e non funzionali
++ Scenari, casi d’uso e l’analysis model

- System design e object design (9h, obiettivo formativo 3)
++ Stili architetturali
++ Riuso di componenti
++ Design pattern

- Gestione dei dati (4h, obiettivo formativo 4)
++ L’object-relational mismatch e tecniche di bridging
++ Accesso diretto ad un DBMS mediante JDBC

- Presentazione delle specifiche del progetto d’esame, 2h

- Sviluppo dei progetti, lavoro in autonomia (100h, obiettivo formativo 2, 3, 4, e 5)

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 alla presentazione 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 prova finale consiste in un progetto finalizzato alla realizzazione di un’applicazione, da svolgere in un gruppo di lavoro composto da 1 a 4 studenti, e alla discussione del progetto realizzato con i membri del gruppo.

Lo scopo dell’attività progettuale è quello di verificare la capacità di comprendere i problemi proposti e, alla luce delle conoscenze acquisite, di collaborare in gruppo all'analisi dei requisiti, alla progettazione e allo sviluppo dell’applicazione in modo tale da soddisfare i requisiti dati.

Lo scopo della discussione è quello di verificare la validità delle scelte progettuali ed implementative effettuate e la capacità dei singoli componenti di un gruppo di comunicare e argomentare tali scelte. L'effettiva padronanza delle tecniche utilizzate viene verificata attraverso una serie di domande. Durante la discussione, dovrà essere anche mostrata una demo di esecuzione dell’applicazione realizzata.

La valutazione terrà conto dell’aderenza del sistema realizzato ai requisiti proposti, dei documenti di analisi e di progettazione prodotti sia per la realizzazione del software che per il database, delle scelte algoritmiche e di progettazione alla base dello sviluppo, e della qualità del codice sorgente prodotto e della relativa documentazione.

Il voto è espresso in trentesimi.

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: pietro.colombo@uninsubria.it