Software Design Document

  • Sections marked by [DRAFT] must be included into Draft Software Design Document version. All sections must be include into Final Software Design Document.

Goals of the document

Document Section Template

Document Management Things


  • Cover page
    • Generic: Title, Version, Authors, Release date
    • Course specific: Course name and number, Student number
  • Table of contents
  • Document revision history:
    • Document releases and major phases.
    • Document revisions and comments by peer reviewers.
    • Fixes into document based peer review comments.

1. Introduction


First paragraph:

2. Software Requirements


List of requirements. What the software has to provide its users.

List of non-functional requirements. What king of functionalities are required from the software, but those requirements are not belonging the application (or solution) that software is providing.

List of constraints. What the software is assuming. Hardware limitations (used hardware), operating system limitations (used operating system). Communication limitations (used network technologies).

3. System overview


The major components in the software system. Client computers, server computers, databases. Used technologies.

Architectural design. Example system deployment.

4. Design

[DRAFT] Package guidance diagram.

Descriptions about the packages and their dependencies.

4.1 <package> Design

Include Class diagrams. Class diagram should include classes considering certain view or aspect of the software.

For each <class>:

  • Describe the responsibility of the class.
  • Describe major collaborations of the class towards other things.

For each <interface>:

  • Describe the communication intent for the interface.
  • Describe the user who the interface is planned for.

For each <operation> (or message) in <interface>

  • Describe the communication intent of the operation (or message). What the operation is for.
  • Describe the:
    • Parameters of the operation with type declaration.
    • Return values of the operation with type declaration, if any.
    • Exceptions of the operation, if any.

4.N <package> Design

Repeat for each package.


[DRAFT, as much you are found to draft phase]

A. Appendix


A.1 Use Case Guidance Diagram

[DRAFT] Include use case diagrams here for guidance for reader to see specific use cases.

A.1.1 Use Case: <use case>

[DRAFT] Put for each use case into its section. Name of the use case must match the name in guidance use case diagram.

Include sequence diagram for that use case.

If sequence diagrams does not describe use case enough describe the use case as text as well.


A.1.N Use Case: <use case>

[DRAFT] Repeat for each use case.

Last modified: 2013/07/01 14:42