- Fundamentals of development models (cathedral, bazaar, kibbutz, "agile" teams)
- Configuration management and versioning
- Continuous integration and delivery
- Documentation for collaborative work and language support (Design By Contract, linguistic means for separation of concerns)
Prerequisites for admission
Knowledge of software engineering terminology and basics, in particular: software process management, software design, testing and validation. A previous course on Software Engineering is highly recommended.
Assessment methods and Criteria
The examination is divided in two parts: a laboratory exercise and an oral discussion. The laboratory lasts 2 hours on a GNU/Linux platform; the student must answer to some written questions, solve an exercise on Design By Contract with the Eiffel language, and an exercise on git based configuration management. The oral discussion focuses on the all the topics of the course and it aims at assessing critical thinking on the subject.
At the end of the oral discussion a final mark (on a 30 point scale) is given, by taking into account: knowledge of the subject and tools, critical thinking attitude, clarity of exposition and precision of language.