The Complete UML Set
Chapter Thirty-Five
Syllabus topic Module 1, "Documentation Deliverables at the End of Module 1: ... Complete UML Set".
Pages 217 to 221 of 499
In one line
A complete UML set is the system's diagrams gathered into one document: each numbered, captioned and tied to the requirements it realises, together covering the users, the structure, the behaviour, the data and the deployment, and checked to agree with each other and with the SRS, so that the set describes one system and not six.
In the wording to use when asked: a complete UML set is the consolidated collection of a system's models, the use case, class, sequence, activity, ER and deployment diagrams and any others the design requires, presented with numbering, captions and traceability to the requirements, and verified for mutual consistency, so that each requirement is realised in the design and every design element traces to a requirement.
What makes a set complete
"Complete" means three things, and a set can fail any one of them:
- Nothing missing. At least the six kinds MU's syllabus lists: use case, class, sequence, activity, ER and deployment. And any other kind the system needs: the worked team added a state machine, because an order's statuses are a state machine (Chapter 23). One diagram of a kind is not always enough: draw a sequence or activity diagram for every use case whose steps matter.
- Nothing unexplained. Every diagram numbered and captioned, with a paragraph saying what it shows and what to notice, and the requirements it realises named.
- Nothing contradictory. Every diagram agreeing with the others and with the SRS: the seven checks of Chapter 19.
Assembling the set
The UML set is a document like the other three (Chapter 32): a title page, a version history, and then:
- A list of figures, so a reader can find any diagram.
- One section per diagram: the figure, its caption, a short text on what it shows, the requirements and use cases it realises, and where its source is.
- The cross-check: each of the seven checks, and its result.
- The design column of the traceability matrix: for each requirement, the diagrams and design elements that realise it.
Keep each diagram readable at the size it will be printed; split a diagram rather than shrink it (Chapter 19). And never paste a screenshot of a diagram whose source you do not have.
The worked UML set
Version 1.1, as it stood after the first increment. Its history:
| Version | Date | By | What changed |
|---|---|---|---|
| 1.0 | 7 Sep 2026 | Farhan, Rohan and Sneha | the ten diagrams, finished the day the ER diagram was finished with the schema; accepted at the design review, 11 Sep |
| 1.1 | 25 Sep 2026 | Farhan | the two sequence diagrams and the two activity diagrams corrected against the ordering code of the first increment |
Its list of figures, with the chapter of this book where each is printed and explained:
The Complete UML Set
| Figure | Diagram | Caption | Realises | Chapter |
|---|---|---|---|---|
| 1 | use case | who uses the system, and for what: three actors, thirteen use cases | FR-1 to FR-17 | 20 |
| 2 | class | the system's things: User, Session, Order, OrderItem, MenuItem, and three enumerations | all stored data; FR-9, FR-15 | 21 |
| 3 | sequence | placing an order: the student, the page and the API | UC-4; FR-7, FR-11 | 22 |
| 4 | sequence | placing an order inside the server: one transaction, three refusals | UC-4; FR-7 to FR-10; NFR-2 | 22 |
| 5 | activity | ordering, from the student's side | UC-4; FR-7 to FR-11 | 23 |
| 6 | activity | serving, from the counter's side, with the kitchen | UC-8; FR-15 | 23 |
| 7 | state machine | an order's six statuses and the five moves between them | FR-13, FR-15 | 23 |
| 8 | ER, Chen's notation | the conceptual data: users, orders, menu items | stored data | 24 |
| 9 | ER, crow's foot | the logical data: five tables, every column | stored data | 24 |
| 10 | deployment | where the system runs during the trial | C-3; SRS 3.1, hardware and communications | 25 |
Every source is in the repository under docs/uml, and every figure is redrawn from its source by one command (Chapter 19).
The seven checks, run
| Check | Result for the worked set |
|---|---|
| 1. Every functional requirement is covered by a use case, and every use case traces back to at least one requirement | all 17 requirements and all 13 use cases, both ways (Chapter 20; SRS Appendix A) |
| 2. Every actor is a user class or an outside system named in the SRS | Student, Counter staff and Owner are the SRS's three user classes, and the SRS names no outside system; the kitchen, which never signs in, is a stakeholder, not an actor (Chapter 20) |
| 3. Every important use case has a sequence or an activity diagram | UC-4, placing an order, has two sequence diagrams and an activity diagram; UC-8, moving an order on, has the serving activity diagram and the state machine; each of the other eleven is one request and one answer, which its row of the API table describes (Chapter 30) |
| 4. Every message a sequence diagram sends is something its receiver can do | every message of Figures 3 and 4 checked against a route, a function or a statement in the code (Chapter 22) |
| 5. Every class whose data must survive a restart is in the ER diagram, with the same attributes | all five classes, every attribute: the model check below (Chapter 24) |
| 6. Every artifact in the deployment diagram is something the architecture says will be built, and every node exists | the application, the database the schema creates and the Android app; the lab desktop, the phones and the counter's device (Chapter 25) |
| 7. One thing, one name | the same names in every diagram; the one exception, an order's slot stored as pickup_slot, written down and translated in one place (Chapters 21 and 24) |
The Complete UML Set
Checks 5 and 7, and the agreement of the model with the code, are made by two short scripts in the book's tools rather than by eye, and they report:
schema: 5 tables, 30 columns: er.puml and schema.sql agree column for column (names, order, types, keys, NOT NULL)
model: 5 classes, 22 attributes all stored; 3 enumerations match the schema; the state machine's 6 states and 5 moves match Status and rules.jsThe first compares the ER diagram with the schema. The second checks that every attribute of every class is a column of its table, that each enumeration has exactly the values its column allows, and that the state machine's states are the Status values and its arrows exactly the moves the code allows. Each script tests itself first: it plants mistakes, a changed type, a missing column, an extra status, a redrawn arrow, and stops if it misses one, so its "agree" can be trusted. Your team can make the same checks by hand, with a printout and a pencil, and should, every time a diagram changes.
The drafts did not pass, and each mistake is told in its diagram's own chapter. Before the design review, the checks found a class called OrderLine while its table was order_items, three attributes missing from the class diagram (Chapter 19), and a deployment diagram that claimed HTTPS the trial cannot have (Chapter 25); all were corrected in version 1.0. Other mistakes survived the review. Once the ordering code existed, comparing the diagrams with it found a sequence diagram that saved an order after rolling it back, with no refusal for a second order in the same slot (Chapter 22), and an ordering diagram that checked the stock and then took it, beside a serving diagram with no kitchen (Chapter 23). Those corrections are version 1.1.
Two lessons follow. Checks made by eye miss things, which is why two of them are worth scripting. And a design is checked again once the code exists: the diagrams describe the system, so when the two disagree, one of them is wrong and must be put right. A set that has never failed its checks has probably never been checked.
The design column
Chapter 9 began the traceability matrix with each requirement's source, and the SRS added its use case. The UML set adds where each requirement is realised in the design, with the figure numbers of the list above:
| Requirement | Use case | Figures | Classes and tables | API |
|---|---|---|---|---|
| FR-1 Register | UC-1 | 1 | User; users | POST /api/auth/register |
| FR-2 Sign in and sign out | UC-2 | 1 | Session; sessions | POST /api/auth/login, /api/auth/logout |
| FR-3 Counter staff accounts | UC-13 | 1 | User, role staff; users | POST /api/users/staff |
| FR-4 Today's menu | UC-3 | 1 | MenuItem; menu_items | GET /api/menu |
| FR-5 Menu items | UC-10 | 1 | MenuItem; menu_items | POST /api/menu; PATCH /api/menu/{id} |
| FR-6 Today's stock | UC-11 | 1 | MenuItem.stockLeft; menu_items.stock_left | PUT /api/menu/{id}/stock |
| FR-7 Place an order | UC-4 | 1, 3, 4, 5 | Order, OrderItem; orders, order_items | POST /api/orders |
| FR-8 Pickup slots | UC-4 | 4, 5 | Order.slot; orders.pickup_slot | GET /api/slots; POST /api/orders |
| FR-9 Stock | UC-4 | 2, 4, 5 | MenuItem.takeStock; menu_items | POST /api/orders |
| FR-10 One order per slot | UC-4 | 4, 5 | Order; orders | POST /api/orders |
| FR-11 Order number | UC-4 | 3, 5 | Order.id; orders.id | POST /api/orders |
| FR-12 My orders | UC-5 | 1 | Order, OrderItem; orders, order_items | GET /api/orders/mine |
| FR-13 Cancel an order | UC-6 | 1, 7 | Order.canMoveTo; orders | POST /api/orders/{id}/cancel |
| FR-14 The counter's list | UC-7 | 1 | Order, OrderItem; orders, order_items | GET /api/orders |
| FR-15 Moving an order on | UC-8 | 2, 6, 7 | Order.canMoveTo, Status; orders.status | PATCH /api/orders/{id}/status |
| FR-16 The kitchen list | UC-9 | 1 | Order, OrderItem; orders, order_items | GET /api/kitchen |
| FR-17 Daily report | UC-12 | 1 | Order, OrderItem; orders, order_items | GET /api/reports/daily |
The Complete UML Set
Every requirement has a design element and an API route. And every route in the API table of Chapter 30 names the requirement it serves, except the two that serve the system itself: who is signed in, and whether the server is up. Module 2 adds the last column, the tests (Chapters 54 and 55).
The problems a guide sends back
- Diagrams that disagree with each other or with the SRS, found in a minute by comparing names.
- A missing kind: no deployment diagram, or an ER diagram presented as the class diagram.
- Unreadable diagrams: forty use cases on one page, or a sequence diagram shrunk to fit.
- Diagrams with no number, caption or explanation.
- Diagrams that belong to a different system: a textbook's library example with the names changed.
- No link to the requirements, so nobody can tell what each diagram is for.
Do this for your project
- List the diagrams your system needs: MU's six kinds at least, several of a kind where needed, and any other kind that says something better.
- Number and caption every diagram, and write what it shows and which requirements it realises.
- Run the seven checks, and fix every disagreement before the design review.
- Add the design column to your traceability matrix.
- Keep every source in your repository, and redraw every figure from its source before submitting.
Mistakes that cost marks
Six diagrams, one of each, and nothing else, when a use case with a transaction needed its own sequence diagram.
A set assembled the night before, with no cross-check, so the class diagram and the ER diagram name different things.
The Complete UML Set
A traceability matrix with no design column.
Pictures pasted from different tools at different sizes, with no common numbering.
Quick revision
- Complete = nothing missing, nothing unexplained, nothing contradictory.
- The set: title page, version history, list of figures, one section per diagram (figure, caption, text, requirements realised, source), the cross-check, the design column.
- The seven checks of Chapter 19, run and recorded; some can be made by a script.
- The design column: for each requirement, the figures, classes, tables and API routes that realise it.
Questions you must be able to answer
1. What makes a UML set complete? It has every kind of diagram the system needs, at least MU's six and any others that say something better; every diagram is numbered, captioned, explained and tied to the requirements it realises; and the diagrams agree with each other and with the SRS.
2. How can you check that a class diagram and an ER diagram agree? Attribute by attribute: every attribute of every stored class must be a column of its table, by one stated naming rule such as camelCase to snake_case, with any exception written down, and each enumeration must have exactly the values its column allows. It can be done by hand with a printout, or by a short script, as this chapter's two are, which compare the files themselves and test themselves by planting mistakes they must catch.
3. What is the design column of a traceability matrix? The column that names, for each requirement, the parts of the design that realise it: its diagrams, classes, tables and API routes. It shows that every requirement is designed for, and that no design element exists without a requirement.
4. Why did the worked team draw a state machine when MU does not list one? Because FR-15's rule, which status may follow which, is exactly what a state machine shows; and because the diagram can then be checked against the database and the code: its states are exactly the statuses the database allows, and its arrows exactly the moves the code allows.
5. Name three problems a guide commonly sends back in a UML set. Diagrams that disagree with each other or with the SRS; diagrams with no number, caption or explanation; and unreadable diagrams, such as one crowded use case diagram where two readable ones were needed.
The rest of this subject
These notes are cut from the University's printed syllabus. Open the syllabus itself for the same subject.