SDM Schedule

This page links to the slides, videos, lab exercise sheets etc. used IN 2016.

Materials will appear no later than 7pm on Friday of the week before you are expected to attend/do/read/watch them (at least, that's my aim: apologies if I occasionally don't make it).

Lab exercises will be issued and talked through in the lab. After each lab, you should go over the exercise, complete it as appropriate, and check you fully understand it and could re-do it without help.

The revision questions etc. are turned off because they attracted spam submissions. I'm leaving the material here in case it's useful to anyone, though.

Week Topic Videos Readings Lab/exercise sheet to work on
1 Introduction
Slides, handout.

Modelling
Slides, handout.

Please do the preassessment - thanks!
UML revision (should be familiar from Inf2C-SE):
Use cases
Class diagrams
Sequence diagrams.
Software engineering revision:
Requirements (you should have seen something similar in Inf2C-SE)
Quick revision questions

Martin Fowler's page on three ways of using UML (do follow one level of links).
Quick revision questions
None (first lab next week)
2 Discussion of the paleo example;
Our first notes on elements and rules;
Rough diagram drawn on lab computer!;
Some rather more readable notes and diagrams, actually from last year

From requirements to modelling 1: conceptual class modelling;
Slides, handout

Issues arising from the preassessment;
Some notes on your answers;
and some backup notes on What is a good class? (revision for most of you).
Slides from L&L on Class diagrams (starting)
State diagrams
Also if you want them: Panopto recordings are currently here (temporary home).
Towards the beginning of the week
Basic UML revision: Class diagrams and Interaction diagrams (you should have seen something similar in Inf2C-SE)

Towards the beginning of the week
Java revision: check you know the content of this excerpt from Lethbridge and Laganiere

Towards the end of the week
Read something on UML2 sequence diagrams: Ch10 of Using UML if you have it, or this or this but note slight syntax errors in these links:
  • lifeline headings, name : type, should not be underlined (they used to be in UML1, but that changed with UML2)
  • messages that cause an activation should go in at the very top of the activation bar,
  • and synchronous messages should be shown with filled in arrow heads.
For exam the fragments I want you to be able to use are loop, alt and opt.

Towards the end of the week
Read A laboratory for object-oriented thinking, the original paper on CRC cards
Quick revision questions
Read this article on robustness diagrams
Lab: Relating (Java) code and (UML) models
Brief notes
3 Slides from L&L on Class diagrams (finishing)

From requirements to modelling 2: Robustness analysis, CRC cards
Slides, handout
Class diagram, Use case diagram
Conceptual modelling
Activity diagrams
More on class diagrams
Revise Design from Inf2C-SE.

Read Scott Ambler's article on conceptual class modelling. Read Doug Rosenberg's article Successful Robustness Analysis.
Read something on state diagrams, so that you understand them enough to read and write state diagrams that might involve nested regions, parallel regions and history states. There are many sources, e.g.
  • Robert C. Martin's (very old, but still good) article UML Finite State Machine Diagrams that you'll find near the bottom here (direct link is breaking the HTML checker, sorry, but it's worth browsing the article list anyway!). You may stop (if you wish) at Implementing State Machines on p5. NB states are drawn in slightly the wrong shape (because the article is based on an earlier version of UML).
  • Chs 11 and 12 of Using UML (but NB this doesn't cover history nodes, which you do need to know).

Read something on activity diagrams, so that you understand how to read and write activity diagrams that might include decision and merge diamonds and fork and join nodes, initial, final and flow-final nodes. I won't examine you on object flows, exceptions or interruptible regions. Sources include:
  • this tutorial
  • Ch 11 of Using UML (though this doesn't mention flow-final nodes).
Lab: UML in Eclipse
4 Whence and whither UML? Big picture and history
Slides,handout
None Read blog post Five Reasons Developers Don't Use UML and Six Reasons to Use It
Quick revision questions


Read Chapter 7 of the OCL2.4 standard but see here for some parts you can leave out.
Browse (but on no account print!) the UML2.5 standard. You're not aiming to memorise it: you're aiming to understand how to find your way around it.
Lab: More with Papyrus
Notes
See also videos on the Media Hopper channel
Concerning sequence diagrams, see this thread if interested!
5 Consolidation: no lectures (but NB there is a lab) None None Lab: Working with larger systems
See video on the Media Hopper channel
, concerning state diagrams.
6 Design principles and patterns
slides, handout
SOLID motivational posters
Java Brains Spring Tutorial 01 Dependency Injection Note:
  • There's not much about Spring in this video, and I don't expect you to know about Spring for this course! However, it's good to know about - the other videos in this series might interest you.
  • Diagrams in the video are not UML. Consider how it'd look if they were.
  • There are some "in this class" mentions that aren't strictly true, but if you keep watching it will be come clear.
Read The Four Elements of Simple Design - browse the comments too! Then read this follow-up: Putting an Age-old Battle to Rest.
Quick revision questions

Read Derick Bailey's article on SOLID design
Quick revision questions
Read Robert Martin's article on The Dependency Inversion Principle, found near the bottom here (NB not the Dependency Injection Inversion article, though I may ask you to read that in a later week!)
Quick revision questions
Lab assessment: you must attend. (If you miss this, contact your PT immediately, as for a missed exam.)
Instructions, Paper, Lamp.java
See course MediaHopper channel for videos.
7 More on patterns
slides, handout: NB in the list of patterns at the end, the asterisked ones (also coded in red for exercises or blue for lectures) are examinable.)

Contracts and OCL
slides, handout: NB you've already read the relevant OCL spec chapter, so we won't spend time on those slides: they are here as a reminder.

Principles of dynamic design
slides, handout: see videos
Friday: Guest Lecture by Dr Dave Berry, Enterprise Architect, University of Edinburgh. (We may possibly overrun the slot with discussion; plan to stay if you can.)
Slides
Papyrus UML/C++ roundtrip (similar to the Java facilities we'll use in the lab)

How to Design a Good API and Why it Matters, lecture by Joshua Bloch

(This one is independent of the rest: watch it sometime, but postponing into next week would be OK) Java Brains Spring Tutorial 01 Dependency Injection Note:
  • There's not much about Spring in this video, and I don't expect you to know about Spring for this course! However, it's good to know about - the other videos in this series might interest you.
  • Diagrams in the video are not UML. Consider how it'd look if they were.
  • There are some "in this class" mentions that aren't strictly true, but if you keep watching it will be come clear.

(By Tuesday of week 8) Watch the section on the slide set entitled Interactions and Interfaces - that is, starting from about 20 minutes in - from last year's SEOC, available as the 10th November 2015 lecture here (sorry, I have tried several times and so far failed to clip out the right part of this lecture and upload just that!)
This week and next. Recommended: try the exercises first.
Browse and google as necessary to grok the patterns: e.g. start here.
If you prefer a video presentation, there are lots on YouTube: e.g. here is Derek Banas' explanation of the Strategy pattern - he has a whole series and there are many others. Use whatever material you find useful.
Lab: Refactoring, round-tripping and introducing design patterns


Exercises (independent of the lab; not for hand-in; aiming to help you understand some key patterns): Instructions: Patterns (I)
Problem sheets for this week, see instructions: 1 3 8 10
8 Domain specific languages slides, handout (probably best after this week's lectures: it repeats some things I will say, and then goes into detail about xtext)
Watch the presentation on the xtext documentation page (Doesn't seem to work on DICE; does work on my phone! Let me know if you don't have access to something you can watch it on.)
Continue with patterns work.

Developing Domain-Specific Languages with Xtext
Quick revision questions

Lab: OCL in Eclipse, and ecore
Model solution for the first part - see also discussion on Piazza.

Patterns (2) (independent of the lab; not for hand-in; aiming to help you understand some key patterns)
Problem sheets for this week, see instructions: 2 4 5 6 7 9
9 Model driven development
slides, handout
None Model-driven Development of Complex Software: A Research Roadmap by Robert France, Bernhard Rumpe.
Quick revision questions

Empirical Assessment of MDE in Industry by John Hutchinson, Jon Whittle, Mark Rouncefield, Steinar Kristofferson.
Quick revision questions

Juha-Pekka Tolvanen, Steven Kelly: Model-Driven Development Challenges and Solutions - Experiences with Domain-Specific Modelling in Industry.
Quick revision questions


Not required reading, but linked here for interest:
The Lindholmen Dataset (an index of UML in OSS)
Lab: Developing a DSL with xtext
Model solution for Diet DSL - see also discussion on Piazza.
10 Tuesday: The future of software engineering
slides, handout
Friday: Guest lecture by someone from Avaloq Innovation Ltd
My inaugural lecture! (rehearsal video)
slides
This week's reading is all optional (might be interesting, might even prove useful in an exam question; will not be directly examined.)
Agile: The Agile Manifesto followed by 10 Years Experience with Agile and Model Driven Software Development
Devops: What is devops? followed by Devops: Model First, Automate Later
Lab: Developing a DSML with EuGENia
11 Tuesday: Consolidation
slides, handout
Friday: not used
none none No lab.


This page is maintained by Perdita Stevens (perdita@inf.ed.ac.uk)


Home : Teaching : Courses : Sdm 

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