Design Descriptions


Software Design Descriptions (SDD)

An SDD is a representation of a software design that is to be used for recording design information, addressing various design concerns, and communicating that information.

SDDs play a pivotal role in the development and maintenance of software system.


IEEE 1016 Systems Design - Software Design Descriptions.

This standard specifies requirements on the information content and organization for software design descriptions (SDDs).

The standard specifies that an SDD be organized into a number of design views.

Standard is intended for use in design situations in which an explicit SDD, as well as well as "reverse engineering" situations where a design description is to be recovered from an existing implementation.


Software Design in Context

SDD can be produced to capture one or more levels of concern

SDD is prepared to support the development of a software to solve a problem

SDD is prepared such that information of interest is captured, organized, presented, etc.


Design Concerns

Design concern: An area of interest with respect to a software design.


Design Views

SDD is organized using design views, a representation comprised of one or more design elements to address a set of design concerns from a specified design viewpoint

Each design viewpoint focuses on a set of the design concerns and introduces a set of descriptive resources called design elements that are used to construct and interpret the design view.

Example: A viewpoint can introduce familiar design elements such as functions, input, and outputs; these elements are used to construct a functional view.


Design Elements

An item occurring in a design view that may be any of the following:


Design Conceptual Model

A design viewpoint determines the types of design elements to be used in any design views it governs.


Influence on Life Cycle

The SDD influences the content of several major software life cycle work products.


Design Verification

Verification is the determination whether a software work product fulfills specified requirements.

SDD is subject to design verification to ascertain whether the design:

Its design verification will usually be performed via review, inspection, or analysis (IEEE 1028).


Design Validation

Validation is the determination that the requirements for a specific intended use of a software work product are fulfilled (IEEE 12207).

SDD plays a role in validation by providing (IEEE 1012):


Design Description Information Content

The required contents of an SDD are as follows:


SDD Identification

An SDD shall include the following descriptive information:


Completeness and Consistency

Each design view in an SDD shall conform to its governing design viewpoint.

An SDD is complete when

An SDD is consistent if there are no known conflicts between the design elements of its design views.


Design Viewpoints

For each design view in an SDD, there shall be exactly one design viewpoint governing it.

Each design viewpoint shall be specified by:

A design viewpoint specification may provide:


Design Element

A design element is any item occurring in a design view.

A design element may be any of the following subcases:

Each design element in the SDD shall have

A design element may be used in one or more design views.


Summary of Design Viewpoints


Context Viewpoint

Context viewpoint depicts services provided by a design subject with reference to an explicit context.

Concerns

Elements

Languages


Composition Viewpoint

Composition viewpoint describes the way the design subject is structured into parts and establishes the roles of those parts.

Concerns

Elements

Languages


Logical Viewpoint

Logical viewpoint elaborates existing and designed types and their implementations as classes and interfaces with their structural static relationships.

Concerns

Elements

Languages


Dependency Viewpoint

Dependency viewpoint specifies the relationships of interconnection and access among entities.

Concerns

Elements

Languages


Information Viewpoint

Information viewpoint is applicable when there is a substantial persistent data content expected with the design subject.

Concerns

Elements

Languages


Patterns use Viewpoint

Patterns use viewpoint addresses design ideas as collaboration patterns involving abstracted roles and connectors.

Concerns

Elements

Languages


Interface Viewpoint

Interface viewpoint provides information designers, programmers, and testers the means to know how to correctly use the services provided by a design subject.

Concerns

Elements

Languages


Structure Viewpoint

Structure viewpoint is used to document the internal constituents and organization of the design subject in terms of like elements.

Concerns

Elements

Languages


Interaction Viewpoint

Interaction viewpoint defines strategies for interaction among entities, regarding why, where, how, and at what level actions occur.

Concerns

Elements

Languages


State Dynamics Viewpoint

State dynamics viewpoint addresses design ideas as collaboration patterns involving abstracted roles and connectors.

Concerns

Elements

Languages


Algorithm Viewpoint

Algorithm viewpoint defines design description of operations, the internal details and logic of each design entity.

Concerns

Elements

Languages


Resource Viewpoint

Resource viewpoint models the characteristics and utilization of resources in a design subject.

Concerns

Elements

Languages


SDD Template