Worked examples

The classic systems, worked through

Library, shop, bank, hospital: the same handful of systems turn up in almost every systems analysis course, and each one is drawn here five ways, with the thinking that decides every box and line.

How to use them

Each page takes one system and gives it a use case diagram, an ER model in crow's foot notation, a data flow diagram, a class diagram and a sequence diagram for its most telling scenario. More important than the pictures is the prose between them, which says why each entity is there, which way each relationship reads, and what the obvious-looking alternative would get wrong.

They are written to be argued with. An assignment brief always adds its own details, and those details change the right answer: a college library that charges no fines, a shop that sells only downloads, a hospital that has no wards. Work out your own version first, then compare. Where yours differs, decide whether the difference comes from your brief or from a mistake the page points out.

Every diagram is drawn by the same code as the editor and opens there in one click, as your own copy, so you can change it to fit your brief instead of redrawing it. Nothing is uploaded: the whole diagram travels inside the link.

A word on notation

Courses differ in the symbols they expect, and the marks usually go to using one set consistently. These pages use crow's foot marks for cardinality (the crow's foot guide explains each mark), with a solid line where the parent's key is part of the child's key and a dashed line where the child has a key of its own, and standard UML for the use case, class and sequence diagrams. The data flow diagrams use Yourdon and DeMarco's symbols, as the site's data flow template draws them: numbered circles for processes and a pair of parallel lines for each data store. The D1, D2 on the stores are labels, there so the text can name them. If your course uses Gane and Sarson's rounded rectangles instead of circles, open the diagram and swap the shape; the flows stay put.