Software Engineering
(for Intelligent Distributed Systems)
A.Y. 2025/2026
Prof.
Giovanni Ciatto
Compiled on: 2026-05-19 —
printable version
Table of contents
About the course (and the exam)
Introduction to software engineering
Preliminary notions for Software Development
Decentralized version control (with git) and team organization
Object oriented programming (in Python)
Software Modelling with UML (and PlantUML)
QA, testing, TDD, reproducibility and replicability (examples in Python)
Build automation, packaging, and release (examples with Poetry)
Versioning, Conventional Commit
Continuous integration (examples with GitHub Actions)
Overview on Distributed Systems Engineering
Web Services and RESTful APIs
Domain Driven Design
Software Licensing
Extras (if we have time)
Introduction to agile and DevOps, a case from the literature, SCRUM