72939 - Software Systems Engineering M

Academic Year 2019/2020

  • Docente: Antonio Natali
  • Credits: 8
  • SSD: ING-INF/05
  • Language: Italian
  • Teaching Mode: Traditional lectures
  • Campus: Bologna
  • Corso: Second cycle degree programme (LM) in Computer Engineering (cod. 0937)

Learning outcomes

Models, languages and technologies for model driven and agile software development,
from analysis to deployment, with particular reference to distributed, heterogeneous
systems including low-level devices such as Arduino/RaspberryPi

 

Course contents

 Definition of a reference environment for
coopèerative working in software development.
Working tools (Eclipse)  in the context of spiral software development processes.
The role of analysis and the concept of logic architetcture.
The role of components and interfaces in the analysis, design and testing.
Test planning as a contribution to the design phase.
Architecture driven design: from logical architectures to software design and development.
Technology-dependent design: Android,Arduino/RaspberryPi as a a case study.Using the Kotling language for the  construction of a run-time support for distributed systems based on actors, messages and events.

Platform-independent design: the role of model, of custom DSL (meta-models) and of software factories.

From models to code: possible integration between Model Driven Design and agile (SCRUM) software development.
Design and building of custom (domain specific) lanaguges/metamodels using the Xtext technology with particular reference to costructs for distribution, event-driven  programming and reactive actions.
Design and building of a case study application 
in the domain of Internet of Things by using self-made differential drive robots.


Readings/Bibliography

Teacher notes, including commented bibligraphic references,.  

Teaching methods

The course is based on a strong interaction between theory and lab practice. The applicative part is arranged by simulating (as far as possible) an industrial environment, by stressing cooperative working issues.

Assessment methods

The examination will performed in two-phases. The first phase starts by publishing a set of requirements and ends with the production of a prototype  of a software system satisfying the requirements,  toghether with a project site. This phase can be delevoped both in individual  way or in a team. The second phase consists of a individual discussion of the work, in which the student is invited to present the relevant project choices with reference to the theroretical/practical concepts learned during the academic course.

Teaching tools

The learning material is presented by using slides and teacher's notes published on the teacher's site and on a repository GIT

https://github.com/anatali/iss2020LabBo


Links to further information

https://github.com/anatali/iss2020LabBo

Office hours

See the website of Antonio Natali

SDGs

Gender equality Industry, innovation and infrastructure

This teaching activity contributes to the achievement of the Sustainable Development Goals of the UN 2030 Agenda.