In this section describe any assumptions, background, or dependencies of the software, its use, the operational environment, or significant project issues.
In this section describe any constraints on the system that have a significant impact on the design of the system.
In this section describe the system environment on which the software will be executing. Include any specific reasons why this system was chosen and if there are any plans to include new sections to the list of current ones.
Provide here a descriptive overview of the software/system/application architecture.
Provide here the diagram and a detailed description of its most valuable parts. There may be multiple diagrams. Include a description for each diagram. Subsections can be used to list components and their descriptions.
Provide here any class diagrams needed to illustrate the application. These can be ordered by which component they construct or contribute to. If there is any ambiguity in the diagram or if any piece needs more description provide it here as well in a subsection.
Provide here any sequence diagrams. If possible list the use case they contribute to or solve. Provide descriptions if possible.
Provide here the deployment diagram for the system including any information needed to describe it. Also, include any information needed to describe future scaling of the system.
Provide here any additional diagrams and their descriptions in subsections.
Provide here any user interface mock-ups or templates. Include explanations to describe the screen flow or progression.
List here any definitions or abbreviations that could be used to help a new team member understand any jargon that is frequently referenced in the design document.
List here any references that can be used to give extra information on a topic found in the design document. These references can be referred to using superscript in the rest of the document.