Software Design and Modelling

Welcome to the SDM home page.

This course is new this year. It replaces SEOC, and fills a similar niche. However, while SEOC was a 10-point course, SDM is a 20-point course. This will give us space to spend more time using tools, understanding the connection between design, modelling and code, and discussing some important trends in software design and modelling, especially model-driven development.

This course has a cap of 100 students, because that is the capacity of the lab we will use. Priority will be given to students for whom it is compulsory. Other than that it will be first-come, first-served (but I think we are unlikely to hit the cap in any case).

The course is available to third and fourth year undergraduates, and to MSc students, who have the appropriate background. This year's UG3 students might like to note that the course will probably not be offered in 2017/18 (as I hope to be on sabbatical).

News and announcements

Official course descriptor

Here is the official course descriptor for SDM.

(Emerging) Frequently Asked Questions

  1. Q: I've never learned any UML, should I do this course?
    A: No, I don't recommend it.
  2. Q: I've never learned any Java, should I do this course?
    A: If you are thoroughly fluent in a closely related language such as C++ or C#, you may; otherwise, no, I don't recommend it.
  3. Q: Isn't there any coursework?
    A: There will be no for-credit coursework apart from the assessment in the week 6 lab, see under Assessment below.

Lecture and lab schedule

The course begins with the lecture at 16.10 on Tuesday of Week 1, 20/9/16: the lab will begin in Week 2.

There are two lectures each week (Tuesdays at Fridays at 16:10 in Teviot Lecture Theatre - Doorway 5), and one guided lab session (Tuesdays 12.10-2 in the Drill Hall, Forrest Hill: we will take a short break in the middle of this, for you to go out and take a quick bite of a packed lunch!). All of these are compulsory: note in particular that, unlike in some other courses, the lab session is something you must attend. It is just as important as lectures.

The detailed material of the course is, of course, being developed as we go on. See Schedule page for material available so far. Provisional topic plan:

Week Topic
1 Introduction to design and modelling
2 Relating (Java) code and (UML) models
3 From requirements to models
4 Whence and whither UML? Big picture and history
5 Consolidation
6 Lab assessment. Design principles and patterns
7 Principles of dynamic design
8 Domain specific languages
9 Model driven development
10 The future of software engineering
11 Consolidation
I hope that there will also be a guest lecture by an engineer from Avaloq Innovation Ltd: date to be worked out.

Communications and feedback

There is a Piazza group for this course: (sign-up link) you are strongly encouraged to join it and contribute. This is the best place to ask questions and discuss matters relating to the course. If your question relates only to you personally, please email me.


The lab session in week 6 will be devoted to an individual exercise, worth 50% of the course credit. This will focus on the first three learning outcomes (see official course descriptor for SDM). This aims is to ensure that everyone is competent with these key skills on which the rest of the course depends. The questions will be similar to questions covered in the labs beforehand. It will be "closed book" and you will not be allowed to access the Internet; however, you will be given access to a copy of the UML standard (and possibly other material: if anything would be particularly useful, let me know). Sample instructions and question types.

There will also be a written exam, worth the other 50% of the course credit. It will focus on the last two learning outcomes (plus the "on paper" part of LO2). Note that the exam will take place in the December diet. The format will be a compulsory question 1 comprising a number of short parts, followed by a choice between two other questions. Here is a sample paper and a few notes on it.

This page is maintained by Perdita Stevens (

Home : Teaching : Courses 

Informatics Forum, 10 Crichton Street, Edinburgh, EH8 9AB, Scotland, UK
Tel: +44 131 651 5661, Fax: +44 131 651 1426, E-mail:
Please contact our webadmin with any comments or corrections. Logging and Cookies
Unless explicitly stated otherwise, all material is copyright © The University of Edinburgh