Course ObjectiveLearn notations to model software systems. Practice with model-driven
reasoning about a piece of software. Develop critical reasoning skills
to select the most appropriate modeling notation and apply it to the
(software) problem at hand.
Course ContentDeveloping real-case software systems is complex; they are large, and
their development often starts when it is still unclear what they should
The goal of software modeling is to model modern, complex software
systems in a systematic manner. The lectures will cover and apply a
number of software modeling notations and techniques.
The students will learn which technique is the most appropriate for
which problem, how to describe a (software) problem in models, how to
use such models to reason about software, and finally how to use models
to discuss ideas and plans with other stakeholders so that requirements
are clarified and software systems are well understood and developed in
a more reliable way.
Teaching MethodsLectures (H). Modeling exercises (W). Weekly presentations (pre).
Method of AssessmentModeling assignments (in teamwork project) contributing to the final
grade, and final written exam. The specific grading rules are explained
in the first lecture and are published on Canvas.
Entry RequirementsObject-oriented programming (for instance Java or C/C++)
Literature- Software Engineering: Principles and Practice, by Hans van Vliet
(Wiley & Sons, 2008).
- Learning UML 2.0 - A Pragmatic Introduction to UML, by Russ Miles and
Kim Hamilton (O'Reilly, 2006).
- UML @Classroom, by Martina Seidl et al. (Springer, 2015).
Recommended background knowledgeObject-oriented programming in Java
|Language of Tuition||English|
|Faculty||Faculty of Science|
|Course Coordinator||dr. I. Malavolta|
|Examiner||dr. I. Malavolta|
dr. I. Malavolta
You need to register for this course yourself
Last-minute registration is available for this course.
|Teaching Methods||Seminar, Lecture|
This course is also available as: