Example Design

 

Brochure

"Glossy" 1-2 page description of the project concept.  What it is.  What services it provides.  How it is going to make money. Why it is a good thing.

Requirements

A description of the project with respect to the specific functions the system will provide (functional requirements) and requirements for its implementation (design requirements), such as the hardware and software required to run the system and the levels of performance and reliability required.

Idiom:  The system shall provide a means for administrative users to activate an account for a new customer.

User Interactions

A breakdown of the types of users, e.g., administrative, content provider, and customer.  A list of the actions each type of user may perform, including any interactions with any non-system services required as a prerequisite for a system action.

Idiom:  Initial Contact.  The Administrative User accesses the site through a special URL.  This action returns a Welcome page, including a Logon, and any non-sensitive messages to be viewed by all Administrative Users.

Architecture

A representation of the main functional components of the system, including data paths.  A breakdown of main components into subcomponets, including data paths among them.  Extended two, three, or more levels, as needed.

Data Objects

A specification of the persistent data objects to be stored by the system in some secondary storage system.  The description for each data object should include its attributes or fields and their respective data types.

Data Object Interactions

For each user interaction, a list of the data objects (and their
fields) used to implement that interaction along with an indication of
how the field is used (read, write, update).

Components

A specification of the classes or other constructs that will be used to implement the system.  Each component description should include its public methods and public attributes/variables, if any.

Component Interactions

For each user interaction, a trace of the input and output messages from one component to another to accomplish that function.