72939 - INGEGNERIA DEI SISTEMI SOFTWARE M

Anno Accademico 2019/2020

  • Docente: Antonio Natali
  • Crediti formativi: 8
  • SSD: ING-INF/05
  • Lingua di insegnamento: Italiano
  • Modalità didattica: Convenzionale - Lezioni in presenza
  • Campus: Bologna
  • Corso: Laurea Magistrale in Ingegneria informatica (cod. 0937)

Conoscenze e abilità da conseguire

Approfondimento dei modelli, dei linguaggi e delle tecnologie per l'analisi, il progetto, la costruzione, la documentazione e la manutenzione di infrastrutture e sistemi software.

Contenuti

Impostazione di un ambiente iniziale di riferimento
per lo sviluppo cooperativo del software.
Gli strumenti di lavoro (Eclipse) e i processi di produzione a spirale.
Il ruolo dell'analisi del problema e della architettura logica della applicazione.
Il ruolo dei componenti e delle interfacce nella analisi, progetto e collaudo del software.
La pianificazione del collaudo come contributo alla progettazione.
Metodologie per la modellazione di un sistema: l'architecture driven design e i pattern architetturali.
Progettazione dipendente dalla tecnologia: Android, Arduino e RaspberryPi come caso di studio. Uso del linguaggio Kotlin per la costruzione di supporti run-time per sistemi distribuiti basati su attori, messaggi ed eventi.

Progettazione indipendente dalla tecnologia: il ruolo dei modelli, dei linguaggi (meta-modelli) custom DSL e delle software factories.

 Dai modelli eseguibili al codice come modello: possibili forme di integrazione tra Model Driven Design e metodi agili (SCRUM).

Progettare e costruire linguaggi/metamodelli domain specific mediante la tecnologia Xtext con particolare riferimento a costrutti per la definizione di sistemi distributi ad eventi capaci di eseguire azioni reattive.
Progettazione e costruzione di un caso di studio su piattaforme Java/Android/Arduino/RaspberryPi nel dominio di Internet of Things  (IOT).Progettazione ed uso di semplici differential drive robots per lo sviluppo di case-study applicativi.

Testi/Bibliografia

Dispense a cura del docente, corredate di riferimenti bibliografici commentati.  

Metodi didattici

Il corso prevede una stretta interazione tra la parte teorica e la parte pratica in laboratorio La parte applicativa viene impostata simulando, per quanto possibile, un ambiente di produzione industriale, focalizzando l'attenzione su forme di lavoro cooperatico

Modalità di verifica e valutazione dell'apprendimento

Viene proposto un tema di progetto da affrontare in due fasi. La prima fase inizia con la pubblicazione di un testo di requisiti  per un sistema software da costruire; tale fase deve terminare con la produzione di un  prototipo del sistema software e del sito del progetto. Questa fase può essere svolta in modo individuale o in gruppo.  La seconda fase consiste in una discussione individuale orale dell'elaborato in cui lo studente è invitato a porre in luce gli aspetti salienti del lavoro svolto e le scelte effettuate alla luce delle nozioni teorico/pratiche apprese durante il corso. 

Strumenti a supporto della didattica

 Il materiale didattico viene presentato attraverso slides e dispense,
sarà reso  disponibile agli studenti in formato pdf e in forma ipertestuale.
in rete sia attraverso il sito web del docente e su repository GIT

https://github.com/anatali/iss2020LabBo


Link ad altre eventuali informazioni

https://github.com/anatali/iss2020LabBo

Orario di ricevimento

Consulta il sito web di Antonio Natali

SDGs

Parità di genere Imprese innovazione e infrastrutture

L'insegnamento contribuisce al perseguimento degli Obiettivi di Sviluppo Sostenibile dell'Agenda 2030 dell'ONU.