L’obiettivo formativo primo del LABORATORIO INTERDISCIPLINARE A e B è lo sviluppo e la messa in pratica di competenze e conoscenze riguardanti la realizzazione di applicazioni software, acquisite durante il I e II anno di corso. Nello specifico, il LABORATORIO A sarà erogato durante il I anno di corso (II semestre), mentre il LABORATORIO B durante il II anno di corso (II semestre), al fine di acquisire incrementalmente tutti gli strumenti e le metodologie necessarie allo sviluppo di una reale applicazione software. LABORATORIO A: L’obiettivo principale della prima parte di questo insegnamento (I anno) è lo sviluppo di competenze riguardanti la realizzazione di applicazioni software, risultanti dall’applicazione delle conoscenze teoriche acquisite durante il I anno di corso, nei corsi di “Programmazione”, “Architetture degli elaboratori” e “Algoritmi e strutture dati”. Al termine della prima parte dell’insegnamento lo studente avrà sperimentato, tramite lo sviluppo di una applicazione software reale, la progettazione di algoritmi finalizzati alla risoluzione efficiente di problemi complessi, basati su strutture dati adatte a supportare il carico computazionale del problema affrontato. LABORATORIO B: L’obiettivo principale della seconda parte di questo insegnamento (II anno) è invece l’integrazione delle competenze acquisite nella prima parte dell’insegnamento, con lo sviluppo di capacità 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”. Al termine della seconda parte dell’insegnamento lo studente avrà ampliato le proprie conoscenze e competenze (andando ad aggiungere funzionalità all’applicazione software sviluppata nella prima parte del corso) con la progettazione e lo sviluppo software di un’architettura distribuita, interfacciata ad un sistema di gestione dati relazionale. Al termine dell’insegnamento lo studente avrà quindi sperimentato e sarà pertanto in grado di gestire l’intero 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.
Prerequisiti
LABORATORIO A: L'insegnamento non ha prerequisiti obbligatori, ma per un proficuo svolgimento sono necessarie le conoscenze impartite negli insegnamenti di “Programmazione”, “Architetture degli elaboratori”, “Algoritmi e strutture dati”. LABORATORIO B: 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”.