81614 - Laboratory of Software Systems

Academic Year 2017/2018

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

    Also valid for Second cycle degree programme (LM) in Computer Science and Engineering (cod. 8614)

Learning outcomes

At the end of the course, the student:

  • is able to set-up cooperative software production processes, based both on agile (SCRUM) and on Model-Based (UML2 or domain specifdic)  approaches
  • is able to critically evaluate the role of UML2 in modelling software for distributed, heterogeneous systems
  • is able to develop software in a technology-independent way, by proper formalizations of the requiremet and problem analysis
  • is able to design and develop sustom supports for proactive-reactive software, based on message-passing and event-driven paradigms
  • is able to design and build a Sofware Factory based on the Model Driven Software Development (MDSD) approach
  • is able to build low-cost IOT (Internet of Things) devices based on Raspberry, Arduino e Android, with particular reference to DDR (differiantial drive robots)
  • is able to exploit the concepts, device, tools developed in the course to design and build IOT-DDR software applications

Course contents

  • Setting up of an initial enviroment for cooperative software development based on open-source tools (Eclipse, Gradle, JUnit, etc)  with reference to agile (SCRUM), incremental methologies
  • From a bottom-up to a top-down (model-based) approach to software design and devlopment: the role of the problem analysis. of the testing plans and of the logical architecture of the application
  • Development of a set of case-studies based on Java/Android/Arduino/raspberry in the Internet of Things (IOT) domain
  • Possible integration between agile (SCRUM) methodologies and Model Driven Design
  • Design and development of custom languages/metamodels by using the XText framewrok
  • Design and building of simple Differential Drive robots for the development of more advanced applicative case studies

Readings/Bibliography

Lerning material provided by the teacher in form of HTML hypertexts and/or pdf documents.

This material is intende to be a reference guide for the reading of more detailed papers and books

Teaching methods

The laboratory is based on a strong interaction between theory and practice, and on the cooperative work (teacher-students and student-student) related to a set of case-studies.

The case studies are proposed in an incremental way, with increasing complexity, with the goal to build reusable software, useful for the final application

The work of the students will be discussed during specifc 'review' phases (in the SCRUM style) related both to the product and to the develpment process, with the goal to better understand the motivation for the modern evolution of computational paradigms and of software production processes.

Assessment methods

The lab activites are naturally related to the continuos auto-evaluation of the work of each student.

The final 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,

The goal of this phase is to evaluate the achievment of practical skills and can be performed both in individual way or in a team composed of at most 3 students.

The second phase consists of an individual discussion of the work. The goal is to evaluate the degrre of theorectica knowldege, awarness and autonomy of  ech specific student.

Teaching tools

The laboratory makes use of opentools (e.g. Eclipse Git) for software production in a cooperative style.

For each case study, the teacher provides a GIt site that includes code and documentation, in order to facilitate the study and to provide a starting point for specialized versions.

Links to further information

https://137.204.107.21

Office hours

See the website of Antonio Natali