Lehrstuhl für Angewandte Softwaretechnik
Chair for Applied Software Engineering

eJASS 2021: 

Continuous Software Engineering for IoT Systems

Organizers:

Instructors:

March 29 - April 1 and April 6, 2021

London | Munich | St. Petersburg

 

Developing modern technology products is often an iterative and collaborative process. Agile and lean methods emphasise building in small increments, continuously updating systems with new and improved software versions. Continuous Software Engineering has become a common practice amongst companies delivering software as a service, and they can use techniques such as continuous integration, automated testing and the use of deployment pipelines to ensure that updating systems in this way is a rigorous, reliable and repeatable process. Each change passes automatically through a set of quality gates before being released to ensure that the system continues to behave correctly for its users despite frequent updates.

These methods are common in high performing startups and technology companies like Google, Amazon and Netflix. They allow engineers to rapidly iterate on software systems, delivering new versions to their customers very frequently (multiple times per day) whilst keeping quality high through rigorous engineering practices.

Software is a key part of many new technology products, and so we believe that continuous software engineering is a key practice not just for software engineers, but for those developing software enabled products of all types, for example smart-home technology, embedded devices, automotive technology, or smart cities.

eJASS will be an intensive, practical workshop in which teams of students can participate to develop systems incrementally that combine software and hardware, using modern continuous software engineering techniques like continuous integration, continuous deployment, and cloud computing.

The workshop should allow students to learn about some specific continuous software engineering techniques, to put them into practice using common tools, to build and deploy software systems combining multiple components, and to rapidly iterate on features.

Distributed Projects

eJASS 2021 will be conducted in a distributed manner. You will need to control the hardware that is part of the project. This includes Tello drones, Duckie Town cars, and other smart infrastructure such as smart lights.

While some devices could be sent to you for testing and development purposes, the final goal would be to have the ability to control devices from home and continuously test and deploy software to the smart environment. Therefore, we envision a distributed hardware setup that includes a local network that all drones, cars, and lights are connected to. This requires that all smart devices can be connected to the network.

You will connect and control the different smart devices using web services that provide different service interfaces for the smart devices. We plan to experiment with Apodini, and the Swift programming language to develop web services.

Project 1 - Drones

Tello drones are small remote-controlled drones that can be controlled by sending UDP packets to the drones. In this project you will use Tello drones to simulate aviation-based transportation in a smart infrastructure setup. You can find more information about Tello drones on https://www.ryzerobotics.com/tello.

Project 2 - Duckie Town

In this project you use duckie town cars to build a small scale autonomous driving setup in a duckie city that allows over the air updates. You can find more information about duckie cars on https://www.duckietown.org.

Project 3 - Smart Infrastructure

This project works with smart lights to build a distributed IoT system for smart traffic lights. The programmable LIFX smart lights can be updated via a continuous deployment mechanism. You can find more information about LIFX lights on https://lan.developer.lifx.com.