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:
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.
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:
|
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:
|
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:
(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. |
perdita@inf.ed.ac.uk
)
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 |