System & Data Modeling
Before you build a system, its structure needs to be explicit: which entities exist, how they relate, and where data actually flows. An Entity Relationship Diagram (ERD) models entities, attributes, and relationships (1:1, 1:many, many:many); UML class and sequence diagrams describe structure and behaviour; data flow diagrams show how data moves between users, systems, and stores; and an OpenAPI contract pins down an API's endpoints, request/response models, and status codes before anyone implements them.
Starting Points
- Brown, S. The C4 model for visualising software architecture
- Bennett, S. UML Fundamentals. O'Reilly.
- Fowler, M. (2003). UML Distilled: A Brief Guide to the Standard Object Modeling Language (3rd ed.). Addison-Wesley.
- OpenAPI Initiative. OpenAPI documentation: Introduction.
Key Points
- You design an ERD that accurately models the data and relationships of a multi-entity web application.
- You draw a class diagram with the right classes, attributes, and relationships (association, inheritance).
- You create UML class and sequence diagrams to communicate structure and behaviour.
- You create data flow diagrams that describe how data moves between users, systems, and data stores.
- You design a basic API contract in OpenAPI, defining endpoints, request/response models, and status codes.
- You can explain why you made a particular modelling choice.