81614 - LABORATORIO DI SISTEMI SOFTWARE

Anno Accademico 2017/2018

  • Docente: Antonio Natali
  • Crediti formativi: 6
  • SSD: ING-INF/05
  • Lingua di insegnamento: Italiano

Conoscenze e abilità da conseguire

Al termine del corso lo studente: - è in grado di impostare processi di sviluppo del software cooperativo basati sia su approcci agili (in particolare SCRUM) sia su approcci basati su modelli espressi in UML2 oppure espressi mediante meta-modelli custom, domain specific; - è in grado di valutare criticamente il ruolo e l'uso di UML2 come linguaggio di modellazione nella costruzione di sistemi distribuiti eterogeni - e' in grado di sviluppare sistemi software in modo technology-independent attraverso opportune formalizazioni dell'analisi dei requisiti e dell'analisi del problema - è in grado di affrontare il progetto e la costruzione di piattaforme custom di supporto allo sviluppo di sistemi software proattivi/reattivi con particolare riferimento ai modelli message-passing e event.driven - è in grado di progettare e costruire (in ambiente Eclipse) ambienti di sviluppo custom (Software Factories) capaci di generazione automatica di codice in accordo all'approccio Model Driven Software Development (MDSD) - è in grado di costruire dispositivi a basso costo tipici dell'Internet of Things (IOT) per lo svliuppo di case-study concreti basati su dispositici quali Raspberry, Arduino e Android con particolare riferimento a robot differential drive (DDR) - è in grado di applicare i concetti, i dispostivi, e gli strunmenti sviluppati in modo concreto ed operativo durante il laboratorio nello svluppo di applicazioni IOT che utilizzano DDR singoli o coordinati come sistemi che operano sulla base di dati sensoriali

Contenuti

  • Impostazione di un ambiente di riferimento
    per lo sviluppo cooperativo del software utilizzando strumenti opensource (Eclipse. Gradle, JUnit, etc) nel contesto dii processi di produzione agili a spirale con riferimento a SCRUM.
  • Dalla progettazione e sviluppo bottom-up ad approcci top-down basati su modelli: il ruolo dell'analisi del problema, della pianificazione del collaudo e della architettura logica della applicazione.
  • Sviluppo di casi di studio per sistemi software basati su piattaforme Java/Android/Arduino/RaspberryPi
    nel dominio di Internet of Things (IOT).
  • Possibili forme di integrazione tra Model Driven Design e metodi agili (SCRUM).
  • Progettazione  e costruzione di linguaggi/metamodelli domain specific mediante la tecnologia XText con particolare riferimento a costrutti per la definizione di sistemi dostributi ad eventi capaci di eseguire azioni reattive.
  • Progettazione ed uso di semplici differential drive robots per lo sviluppo di case-study applicativi.

Testi/Bibliografia

Dispense a cura del docente come guida per la consultazione di testi e siti specializzati esplicitamente indicati.
Il sito di riferimento è https://137.204.107.21

Metodi didattici

Il corso prevede una stretta interazione tra la parte teorica e la parte pratica di laboratorio e lo sviluppo cooperativo (docente.studente e studente-studente) di casi di studio concreti.

I casi di studio vengono affrontati in modo incrementale, procedente dal semplice al complesso, con l'obiettivo di costruire componenti riusabili, utilizzabili per l'applicazione finale.

Adottando une metodologia ispirata a SCRUM, il lavoro individuale e di gruppo verrà sistematicamente analizzato e discusso durante apposite fasi di revisione di prodotto e di processo in modo da meglio comprendere i motivi della moderna evoluzione di paradigmi computazionali di riferimento e delle metodologie di produzione.

Modalità di verifica e valutazione dell'apprendimento

Le attività di laboratorio sono intrinsecamente connesse in modo continuo a una autovalutazione del lavoro svolto da parte di ogni singolo studente frequentante.

Al termine del corso, viene proposto un tema di progetto come naturale punto di sintesi delle attività svolte durante il laboratorio, da affrontare in due fasi.

La prima fase inizia con la pubblicazione di un testo di requisiti per la costruzione di un prototipo  La costruzione del prototipo mira a verificare il raggiungimento di adeguate abilità teorico/pratiche e può essere effettuata in modo individuale o in un gruppo di non più di tre studenti.

Al termine di questa fase seguirà una una discussione individuale orale sul lavoro svolto, volta a valutare il livello di conoscenza, consapevolezza  e di autonomia analitico/progettuale del singolo studente.

 

 

 

Strumenti a supporto della didattica

Il laboratorio utilizza diffusi ambienti e supporti per la produzione del software (come Eclipse e di GIT) per la promozione di lavoro cooperativo docente-studenti e studente-studente.

Per ogni caso di studio viene fornito dal docente (mediante un sito GIT accessibile via password) codice e documentazione (in forma ipertestuale) come base per lo studio individuale e come punto di partenza per lo sviluppo di versioni specializzate.

 

 

 

 

Link ad altre eventuali informazioni

https://137.204.107.21

Orario di ricevimento

Consulta il sito web di Antonio Natali