Computer Applications Practicum

CSC4081, Fall 2013

Software Design Documentation Outline

This document contains a template structure for software design documentation. To use this outline, make a copy of this file and edit it, replacing the description of each section with the information about your project. If a section is not applicable to your project, keep the heading in your document, and just state that it is not applicable.

Software Design Documentation

Project Title

Version History with Revision Dates

1. Architectural design

This section should describe the overall structure of your system, usually using diagrams to show how it will be decomposed into modules. You may use an object-oriented model, showing the major classes of objects and how they will interact, or a data-flow model, showing what types of data will be used or produced by each module.

2. Component Design

For each module to be developed for this project:

Description: Brief description of purpose.

Functional Interface: Define the operations that the module must provide, and data types that are produced or consumed by the module. Give C/C++ or Java function declarations for each operation in the following format:

ResultType Operation( InType 1, ..., InType n )

Do not include graphical user interface design here.

Detailed Design: Describe any major algorithms, using text or
state diagrams for components that have multiple modes,

class diagrams to show connections between closely related classes.

Dependencies: List other modules that this depends on.

Data Organization: (if internal data structures must be defined).

Requirements cross reference: List which functional requirement(s) this module fulfills.

Comments: (where helpful to guide implementation and maintenance).

3. External Interfaces Design

User Interfaces (provide for each interface):

Visual Design (show layout of objects);

Operational Description;

Input sources and types;
Output devices and types;

Error processing (describe how unexpected input will be handled);

User Help facilities

Interfaces with existing software/hardware components (e.g., browsers, databases, network communication, etc)

4. File structure, database design, and global data

External file structures (if applicable):

Define format of file (use a grammar if necessary).

Access methods.

Database Design (if applicable):

Define schema of relational database, views, access methods.
Show how the schema is derived from the Entity-Relationship model given in the requirements specification.

Global Data:

Describe any data objects (other than databases and files) that will be available to more than one module.

5. Reference documents (reference or include as appropriate)

Existing software documentation

Vendor (hardware or software) documents

Technical reference or background sources consulted

6. Appendices

Any relevant information that does not fit the categories listed above.

Topic revision: r1 - 2013-09-04 - JimSkon
This site is powered by the TWiki collaboration platformCopyright &© by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback