Software Engineering

(for Intelligent Distributed Systems)

A.Y. 2024/2025


Prof. Giovanni Ciatto


Compiled on: 2025-06-30 — printable version

Table of contents

  1. About the course (and the exam)
  2. Introduction to software engineering
  3. Preliminary notions for Software Development
  4. Decentralized version control (with git) and team organization
  5. Object oriented programming (in Python)
  6. Software Modelling with UML (and PlantUML)
  7. QA, testing, TDD, reproducibility and replicability (examples in Python)
  8. Build automation, packaging, and release (examples with Poetry)
  9. Versioning, Conventional Commit
  10. Overview on Distributed Systems Engineering
  11. Domain Driven Design
  12. Continuous integration (examples with GitHub Actions)
  13. Software Licensing

Extras (if we have time)