Jason Hyman's Homepage |
|
Software Design Specification Standard October 13, 1999 IntroductionThis document outlines the template for software design specifications (SDS) produced by Clemson University in the CPSC372 Introduction to Software Development course. TemplateThis section contains the template for an SDS. The numbers corresponding to subsections in this document specify the numbers that should appear in the SDS. Also included are brief descriptions of the contents of the sections. An SDS must contain a table of contents, including section titles, numbers and page numbers. 1. Introduction1.1 PurposeThis section should outline the purpose of the SDS as well as the intended audience. 1.2 ScopeThis section must specify the extent and the boundary of the design, i.e., what it includes and what it does not include. 1.3 Definitions and AcronymsDefines any terms used. 1.4 ReferencesLists any references, e.g. Pfleeger. 2. Subsystem description2.1 ActorsThis section describes in detail the Actors for the software system. In particular, the definition of the Actor interfaces in the form of UML class diagrams should go here. 2.2 Software architectureThis section will contain the architecture for the system, in terms of subsystems, their operations and their interrelations. If the diagrams become too cluttered, they may be split into several diagrams with different levels of detail. 2.3 Key abstractionsThis section contains the key abstractions, including class diagrams describing their attributes and operations. 3. Use CasesThis section is organized according to subsystem, and contains the specifications of the use cases associated with each subsystem. These will be embellishments of the use cases from the SRS, and will additionally contain class diagrams and sequence diagrams. 3.1.x Subsystem 13.1.x.1 Use case diagramThis section should contain a use case diagram describing the relationship between use cases in the subsystem being described. 3.1.x.y Use case 13.1.x.y.1 Characteristic InformationGoal in Context: This should serve as an introduction to the use case, stating its purpose and the goal that will it will achieve.
Level: One of:
Preconditions: This should contain a list of what is expected to be the state of the world for this use case to succeed. 3.1.x.y.2 Scenarios3.1.x.y.2.1 Main Success ScenarioThis section contains the steps of the scenario, from trigger to goal delivery, and any cleanup activities. Each step should be numbered and described. All information used in each step must be listed in the Inputs subsection of 3.1.x.1. 3.1.x.y.2.2 ExtensionsThis section contains any variations of the main success scenario, each referring to a step in the main success scenario. For example, this section may contain variations that lead to failure of this scenario, such as if errors occur, or appropriate information is not given. Each different extension should be named. 3.1.x.y.3 Related informationPriority: How critical to your system / organization. 3.1.x.y.3.1 Sequence diagramsFor each scenario, a sequence diagram should be developed, outlining the events and orders in which they occur according to the key abstractions. 3.1.x.y.3.2 User InterfacesThis section should contain a description of the required screen formats, page layouts of any reports generated as a result of this use case. In particular, if the origin/destination of inputs/ouputs is the user (or actor), then a description of how this information is attained/presented to the user should be presented. All figures should be explained; how user interface events map to input and output should also be described. 3.1.x.y.3.3 Other external interfacesThis section describes interfaces to other systems, such as software, hardware or networks. This section should describe (or refer to) interfaces to these other systems, in particular relating them to the inputs and outputs for this use case in a manner similar to 3.1.x.y.3.2 3.1.x.y.4 Open issuesThis section contains a list of issues that need to be decided. In the final version of the SRS, this section should contain the word "None." However, this section is useful in preliminary versions to record issues that require discussion. 3.2 Use case and architecturesThis section contains a table that relates use cases to subsystems through classes. The table should follow this format:
The first column names each scenario from every use case (and uses section numbers indicating where they are defined). The other columns represent the classes defined for particular subsystems (out of section 2), categorized by subsystem. A checkmark in a cell indicates that that scenario uses that particular class. Last modified: 10/13/99 |
|
Copyright 2005 Jason Hyman
|
Version 2.0
|