Design Document

Once you have gone through the process of creating a Design Concept document you should use it to get feedback. The next step is to flesh out your software architecture and system architecture and this information will be used in the next step of Design: creating the Design Document.

Inside Industry

Inside Industry

Neil Jones, Google Software Engineer

Write down the alternatives. Write down the pros and cons of each alternative. Make a decision and write down why you picked it. Especially highlight open questions, or issues where you’re not sure what the best way of doing something is.  The key insight here is that you are designing a piece of software right now, but you -- or someone like you -- will be maintaining it forever. The design document helps future you remember what current you was thinking (you will forget) and it also provides a way for other people to comment on your approach. Maybe you missed something, you’re not perfect. "​


There is no "best" design document but, the following contains many of the elements you will see in a good design document ( word or pdf versions)

Design Document for_________________
Authors:______________

Date:________________

Status: _________________


Concept Summary

- a few paragraphs on purpose of project



Audience/Customer

- demographics of intended audience or customer

Background

- any background information necessary to understand the project

Application Cost and Projected success (optional)

- tell me what you will charge for this development or cost to customers.  Potentially describe any monetization schemes (like advertising or in-app purchases if a mobile application).


Interface Mockups

(for projects that have a presentation layer/ GUI)



Design - Use Case Diagram(s)  

for all the important use cases show use case diagrams


Design - Detailed Design

  • Break down the design of the SW System into modules, give a system diagram.  Describe each module.




Related Work

- research into similar products/projects.


Frameworks/Services/Cloud/Backends

- Discuss any frameworks or services that may be used
- Discuss any cloud or backend services needed


Testing

- discuss how testing will be performed


Schedule

- give overview of schedule


Dependencies

- list any necessary dependencies for this work to be completed. (i.e. collection of data, etc).

 

 

© Lynne Grewe