Software Design

2019-2020
Dit vak wordt in het Engels aangeboden. Omschrijvingen kunnen daardoor mogelijk alleen in het Engels worden weergegeven.

Doel vak

Learn 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.

Inhoud vak

Developing real-case software systems is complex; they are large, and
their development often starts when it is still unclear what they should
precisely do.
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.

Onderwijsvorm

Lectures (H). Modeling exercises (W). Weekly presentations (pre).

Toetsvorm

In this course the assessment is composed of two components:
1) Team project (70% of the final grade): it will be carried out
throughout the whole course by groups of 3-5 students; each part of the
project will be started during the laboratory sessions and finished as
homework, so that students will likely be on track within the course
schedule. The result of the team project is composed of two parts: (i) a
modelling part, and (ii) an implementation part. Both the modeling and
implementation parts will be evaluated by the instructor according to a
shared assessment rubric. Within the team project, each student will be
responsible for a certain part of the project;
2) Written exam (30% of the final grade): it consists of 20
multiple-choice questions (20 points) and it will be a closed-book exam.
The exam aims to assess students' knowledge of the methodologies,
constructs of the UML language, practical insights that are discussed in
the lectures. The written exam is based on the mandatory books listed in
the Literature (study guide) section of the study guide.

Literatuur

- Martina Seidl, Marion Scholz, Christian Huemer, Gerti Kappel,
"UML@Classroom: An Introduction to Object-Oriented Modeling", 2015.
- Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, “Design
Patterns: Elements of Reusable Object-Oriented Software”, Addison-
Wesley Professional, 1994.
- John Ousterhout, “A philosophy of software design”, Yaknyam Press,
2018.
- Russ Miles, Kim Hamilton, “Learning UML 2.0”, O’Reilly, 2006.

Doelgroep

2CS

Aanbevolen voorkennis

Object-oriented programming (for instance Java or C/C++)

Algemene informatie

Vakcode XB_40007
Studiepunten 6 EC
Periode P4
Vakniveau 200
Onderwijstaal Engels
Faculteit Faculteit der Bètawetenschappen
Vakcoördinator dr. I. Malavolta
Examinator dr. I. Malavolta
Docenten dr. I. Malavolta

Praktische informatie

Voor dit vak moet je zelf intekenen.

Voor dit vak kun je last-minute intekenen.

Werkvormen Werkcollege, Hoorcollege
Doelgroepen

Dit vak is ook toegankelijk als: