Agile does not revolve around models, but some of them add a lot and are part of the documentation. Every example comes from the same made-up app that complements Bicing with Open Data BCN data.
The main concepts of the problem, independent of architecture and technology. Creative concepts of your own count, not just the ones in the open dataset.
Notice: only Station comes from the open data. Trip and Badge are the team's own concepts, and that is where the product's value lies.
Integrity constraints always go under the diagram, numbered: keys and rules the diagram cannot express.
Optional · recommended
Domain layer class diagram
The solution logic inside a three-layer architecture, with design patterns and operations already applied. Explain which patterns you use and why.
Required · Fag-2 and sprints
Physical diagram (architecture)
The nodes and subsystems: app, server, database, external services and the service you build for another team. A sketch at the inception that you refine every sprint.
Optional
Component diagram (UML)
A simplified view of the whole system and of how its components relate.
«subsystem» App«UI» Map«UI» Profile:RestClient«subsystem» REST API:Stations:Trips:Authentication«subsystem» External services:Open Data BCN:Team B service/api/v1
Required · sprints
Database schema
A class diagram describing the schema. In relational databases, underline the primary key and put foreign keys in brackets (FK). In NoSQL, use composition for embedded documents and association for references.
The schema will change every sprint: manage its evolution with SQL create and alter files or with a migrations framework (Liquibase, Django or Laravel migrations, mysql-migrations for Node). More technical aspects →
Common mistakes in the models
Putting technology in the conceptual model (SQL types, auto-increment IDs, "Controller").
Using an attribute where there should be an association (a stationId inside Trip).
Forgetting multiplicities or the textual integrity constraints.
A model that copies the columns of the open dataset.
Diagrams that are not updated when the code changes: it is part of the definition of done.
Blurry screenshots: export to SVG or a high-resolution PNG.