What is a software design document and who reads it?
- Your supervisor, who wants to see that the design is feasible before you spend months on it.
- Your examiners, who use it to judge whether you made deliberate decisions or just accumulated code.
- You, three months from now, trying to remember why the orders table has a separate status history.
How do you write an SDD, section by section?
Markdown
How deep should each section go?
Text
Which diagrams are worth drawing?
- A use case diagram shows which role can do what. Put it next to the requirements.
- An architecture diagram shows the main parts (browser, server, database, payment provider, background jobs) and the direction of calls between them.
- An ER diagram shows entities, keys and relationships. It belongs in the database section.
- A sequence diagram shows one workflow over time, for example placing an order from click to confirmation. Pick the two or three flows that are hardest to follow in text.
- A UML class diagram is useful when your code is object-oriented, such as a Java backend. For a mostly functional or schema-driven codebase it often duplicates the ER diagram, so skip it.
How do you keep the SDD in sync with the code?
- Keep the document in the same repository as the code, as markdown, so a change to both can ship in one commit.
- Store diagrams as text (Mermaid or PlantUML) so a diff shows what changed.
- Generate what can be generated. A Prisma schema or an OpenAPI file is the real source for tables and endpoints, so link to it instead of retyping it.
- When you change a design decision, add a one-line entry to a short decision log: date, what changed, why.
- Review the document at each milestone, not only before the final submission.
What mistakes make a final year project SDD weak?
Text
A quick checklist before you submit
- Every functional requirement has an ID, a design reference and a test case.
- The scope section says what you are not building.
- Each diagram has a caption and is referred to in the text.
- API endpoints list the role allowed, the success response and the errors.
- The deployment section lets someone else run the project from scratch.
- The risks section names at least three real risks with a plan for each.