Advanced software engineering

Teacher(s): Pasquier Jacques
Level: Master
Type of lesson: Lecture
Language(s): English
Semester(s): SA-2020

Today's Internet is the dominating communication infrastructure for supporting distributed scalable software systems as different as social networks, interactive games, smart homes, smart cites, IoT infrastrucure or supply chain management. In this lecture, we will investigate some of the main technologies, which will shape the future of Internet from a software engineering perspective. This journey will start with a recap of web basics such as URIs, HTTP, JSON; then continue with web services (WS) with a strong focus on RESTful ones and some notions of asynchronous programming with event loops; and conclude with actual topics such as the Web of Things (WoT), the semantic web and cloud computing for resource sharing and optimization.

The theoretical part of the lecture is accompanied by a larger software project, where you will apply your new knowledge to design and implement a state of the art web application, complete with a web-based UI and a service-driven application logic using languages such as Python and/or Node.JS, smart devices such as Thingy:52 boxes of environmental sensors and Node-RED workflow engine. The project will be developed by groups of four students following a strict agile methodology (SCRUM) and will count for half of your grade. For a successful completion of the project, good programming skills are an absolute must. The latters will be tested after three weeks on an individual basis within a first pass or fail small REST server application project.

Training aims

On successful completion of this course, you will have:
• learned about key Internet technologies and applications, including interaction with smart sensors and the increasing role of         services and cloud computing
• become familiar with agile development within a small group using SCRUM
• designed and implemented a state of the art Internet application.