Software Engineering
(for Intelligent Distributed Systems)
A.Y. 2024/2025
Prof.
Giovanni Ciatto
Compiled on: 2025-06-30 —
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
Overview on Distributed Systems Engineering
Domain Driven Design
Continuous integration (examples with GitHub Actions)
Software Licensing
Extras (if we have time)
Introduction to agile and DevOps, a case from the literature, SCRUM
[TODO] WebServices and RESTful APIs