Course Details

Design and implementation of networked software systems

MF0244

Course
Design and implementation of networked software systems
Code
MF0244
Academic Year
2024/2025
Curriculum Year
2022/2023
Degree Programme
CHEMISTRY
Curriculum
000 - CORSO GENERICO
Credits
9
Lecture Hours
72
Scientific Disciplinary Sector (SSD)
INF/01 - Computer Science
Course Type
Single-subject learning activity
Course Delivery
OBB - Obbligatoria
Year
3
Teaching period
Annuale
Campus
VERCELLI
Teaching language
Italian
Course Contents
- Local Area Network architectures, including wireless LANs
- Network based multimedia services.
- Basic principles on the architecture of distributed applications based on microservices
- Internet of Things
- Practical implementation of a distributed application based on microservices architecture
Reference Texts
Textbook course
James F. Kurose, Keith W. Ross, Computer networking - A top-down approach , 7th or 8th Edition, Addison Wesley (2017 or 2021)

In addition
C. Richardson Microservices Patterns. With Examples in Java
Manning Publications (2018)
Learning Outcomes
Know the main techniques and protocols on which wired and wireless Local Area Networks are based. Know the main properties and the specific protocols of the net-based multimedia applications.
Acquire the necessary skills to design and implement a distributed application based on microservices, from the requirements specification phase, to the design, implementation, and test of the whole application.
Develop the ability to work in a team using distributed computer supported cooperative work tools to interact and organize the teamwork.
Prerequisites
The student should have already acquired the fundamental notions in
software engineering, in computer networks, web application development and cybersecurity thought in the courses
of Software Engineering, Object Oriented Programming, Web Programming Metodologies,
Computer networks-I and Cybersecurity-I
Teaching Methods
The course includes:
- Lectures
- Lab activity assisted by the teachers
- Self-organized laboratory individual activity and team work
Additional Information
On the DIR platform the students can find the slides used in classes, examples of exercises similar to those proposed in the written exam on the theory part of the program, examples of simple working programs to be used in the lab sessions .
Using the gitlab platform of the department, the students can share on-line the artifacts produced along all development phases of the final project.

Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools via the "Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti", consulting the University webpage: https://www.uniupo.it/en/services/services-students-physical-or-learning-disabilities. Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Assessment Methods
The assessment of the concepts and skills acquired by the student includes two
steps:
- A written test on the theory part of the program, including questions and exercises.
- A demonstration of the working prototype developed by the teams, including an individual evaluation of the acquired skills.
The final grade is established by the course teachers taking into account the results reached in both verification steps. It is required a sufficient level of knowledge and skills on both aspects: theory and project work. In the final evaluation theory and project have the same weight.
Detailed Syllabus
The course comprises two parts:
Part 1. Theory of Local Area Networks (both wired and wireless) and net-based multimedia applications:
a) The data-link layer:
- Service and functionality characterization.
- Network to data-link interface: ARP Medium Access Control principles: CSMA/CD, CSMA/CA, CDMA.
- Ethernet, Ethernet switches.
- Wi-Fi, Access-point, 802.11 protocol suite.
- Bluetooth (basic notions). Application to Internet of Things.
- ZigBee (basic notions). Application to Internet of Things.
b) Multimedia communication on IP networks:
- Requirement characterization.
- Audio-video streaming.
c) Network Application Architectures:
- Event-Driven architectures versus Client-Server architectures.
- Relay in public networks, in particular through message brokers
-API-rest: main principles

Part 2. Lab work and Project development:
Development of a Network Application based on microservices.
a) Environment:
- Local Area Network provided with hosts oriented to IoT applications:
- Communication protocol: MQTT + HTTP
- Authorization based on OAuth 2.0 using tokens

b) Assignment: the student is required to develop a project applying the
methods learned in the courses of software engineering, object oriented
programming, computer networks, cybersecurity and WEB programming. The suggested computer
language for the software implementation is Java (possibly using appropriate frameworks), but the students can freely choose other languages (e.g.
C#, Javascript, Python).
c) Preliminary activity:
- Familiarization with the methodological aspects of the project: message-
broker based architectures including practical experiments with the open source broker Mosquitto.
- Experimentation with the public-subscribe
paradigm (MQTT protocol)
d) Project development: the students are required to developed an application in
the IoT domain, which will be developed in team following the typical software
engineering approach (in each phase the teams can check the validity of the chosen solutions with the course teachers):
- Requirement analysis and general software specification.
- Architecture design, components, modules and class specification. Components interaction.
- Implementation of the designed software artifacts.
- Validation and analysis of the performances
- Production of the documentation for each project step.
Expected Learning Outcomes
Knowledge and understanding: students will learn the main architectures and features of local and wifi computer networks; the services provided by the data link layer and their interactions with the network layer; the characteristics and requirements of multimedia data transmission; the principles and techniques used in computer networks security and the characteristics of microservice applications.
Applying knowledge and understanding: students will be able to apply the acquired knowledge to develop a microservice application capable to interface with IoT devices connected to a LAN. During the application design the students will be able to use the techniques/methodologies acquired in the software engineering course.
Making judgments: students will be able to autonomously analyze different architectural and implementation solutions, identify their pros and cons and choose the most suitable solutions.
Communication skills: students will learn to synthetically explain the features of their application and the architectural or implementation choices and reasoning about their effectiveness.
Learning skills: students will be capable to interact with different devices and platforms, developed according to the general principles acquired in the courses, but with different specific interfaces. Thus students will be able to autonomously learn the specific characteristics of provided services in order to develop an application capable to interact with them.
Last update:09-09-2026 00:14:31