NASA Software Documentation Standard, Appendix D
SATC

NASA Software Documentation Standard Appendix D


APPENDIX D

PRODUCT SPECIFICATION DATA ITEM DESCRIPTIONS

This appendix contains the specifications for the format, outline, and content of the Product Specification and rolled-out sections. Major sections of the Product Specification have been rolled-out into separate Data Item Descriptions (DIDs) using the template DID (NASA-DID-999) for purposes of clarity and manageability.

The Product Specification DIDs provide outlines for a complete Product Specification. Major sections of the Product Specification point to lower level DIDs that contain more detailed content descriptions of these major sections.

The number of Product Specifications generated does not need to mirror the number of DIDs presented in this section. Lower-level detailed DIDs provide additional substructure and contain content discussion which should be reviewed even when the content is recorded in-line (i.e., not rolled-out).

The detailed DIDs in this appendix may be used as they stand to produce separate documents from the Product Specification.

	Table D-1.  Product Specification DIDs (Numeric Order)

DID Number Title

NASA-DID-P000 Product Specification DID NASA-DID-P100 Concept DID NASA-DID-P200 Requirements NASA-DID-P300 Architectural Design DID NASA-DID-P400 Detailed Design DID NASA-DID-P410 Firmware Support Manual DID NASA-DID-P500 Version Description DID NASA-DID-P600 User's Guide NASA-DID-P700 Operational Procedures Manual DID

Table D-2. Complete DID Set for a Product Specification

NASA-DID-P000 Product Specification DID NASA-DID-P100 Concept DID NASA-DID-P200 Requirements DID NASA-DID-P300 Architectural Design DID NASA-DID-P400 Detailed Design DID NASA-DID-P410 Firmware Support Manual DID NASA-DID-P500 Version Description DID NASA-DID-P600 User's Guide DID NASA-DID-P700 Operational Procedures Manual DID


NASA-DID-P000
PRODUCT SPECIFICATION
DATA ITEM DESCRIPTION

TABLE OF CONTENTS

1.0	INTRODUCTION
2.0	RELATED DOCUMENTATION
3.0	CONCEPT
4.0	REQUIREMENTS
5.0	ARCHITECTURAL DESIGN
6.0	DETAILED DESIGN
7.0	VERSION DESCRIPTION
8.0	USER DOCUMENTATION
8.1		User's Guide
8.2		User's Training Materials
9.0	OPERATIONAL PROCEDURES MANUAL
10.0	MAINTENANCE MANUAL
10.1		Implementation Details
10.2		Modification Aids
10.3		Code Adaptation
11.0	ABBREVIATIONS AND ACRONYMS
12.0	GLOSSARY
13.0	NOTES
14.0	APPENDICES

EXPLANATORY NOTE

The purpose of the Product Specification is to document the technical aspects relative to the development of the software. This information is produced over the life cycle for the software.

1.0 INTRODUCTION

Refer to the Template DID (NASA-DID-999) for a detailed structure and content description of this section.

2.0 RELATED DOCUMENTATION

Refer to the Template DID (NASA-DID-999) for a detailed structure and content description of this section.

3.0 CONCEPT

The purpose of this section is to provide an overview of the software. When required, this section provides the scope and context that will aid in understanding the requirements. Depending upon the system decomposition and the size and complexity of the parent software, this section may not be needed. If this is the case, reference the appropriate concept section.

The primary topics for the concept section include:

a. Definition and Purpose
b. User Definition
c. Capabilities and Characteristics
d. Sample Operational Scenarios

Refer to the Concept DID (NASA-DID-P100) for further description of the structure and content.

4.0 REQUIREMENTS

The purpose of this section is to specify and augment, as appropriate, the functional, performance, and interface requirements of the software. The section also specifies the major characteristics, implementation constraints, and design goals.

The primary topics for the requirements specification include:

a. Requirements Approach and Tradeoffs
b. External Interface Requirements
c. Software Requirements
d. Traceability to Parent's Design
e. Partitioning for Phased Delivery

Refer to the Requirements DID (NASA-DID-P200) for further description of the structure and content for each topic.

5.0 ARCHITECTURAL DESIGN

The purpose of the architectural design is to document the top-level, comprehensive design for the software (which may consist of one or more CSCIs, CSCs, or CSUs) including major external and internal interfaces and logical data scheme. In addition, the section should describe the rationale for the architecture.

The primary topics for the architectural design specification include:

a. Design Approach and Tradeoffs
b. Architecture Design Description
c. External Interface Design
d. Traceability to Requirements
e. Partitioning for Incremental Development

Refer to the Architectural Design DID (NASA-DID-P300) for further description of the structure and content for each topic.

6.0 DETAILED DESIGN

The purpose of this section is to describe the design for the software in enough detail to be able to write the software code to implement the design. Detailed design defines the structure and functions down to the computer software unit level.

The primary topics for the detailed design specification include:

a. Detailed Design Approach and Tradeoffs
b. Detailed Design Description
c. External Interface Detailed Design
d. Traceability to Architectural Design
e. Coding and Implementation Notes
f. Firmware Support

Refer to the Detailed Design DID (NASA-DID-P400) for a further description of the structure and content for each topic.

7.0 VERSION DESCRIPTION

This section will describe in detail the configuration and content of the product and instructions for its set-up. For each new release, the section also provides information on the status of changes since previous releases.

The primary topics for the version description include:

a. Changes in Functional Capabilities
b. Set-up Instructions
c. Inventory and Software Product Identification
d. Change Status
e. Adaptation Data

Refer to the Version Description DID (NASA-DID-P500) for a further description of the structure and content for each topic.

8.0 USER DOCUMENTATION

8.1 User's Guide

The purpose of the software User's Guide is to provide instructions to end users (human and other systems) on the use of the software.

The primary topics for the User's Guide include:

a. Overview of Purpose and Functions
b. Installation and Initialization
c. Startup and Termination
d. Functions and their Operation
e. Error and Warning Messages
f. Recovery Steps

Refer to the User's Guide DID (NASA-DID-P600) for a further description of the structure and content under each topic.

8.2 User's Training Materials

The purpose of this section is to document the training materials provided for the users. This section will contain the actual training materials. When media other than paper hard copy are used, describe the media and reference training materials such as video tapes and computer-aided instruction files.

9.0 OPERATIONAL PROCEDURES MANUAL

The purpose of the Operational Procedures Manual is to provide instructions to the system operators ( as opposed to end users) on the procedures for operating, controlling, troubleshooting, and maintaining the software.

The primary topics for the Operational Procedures Manual include:

a. System Preparation and Set-up Procedures
b. Standard Operating Procedures
c. Fault and Recovery Procedures
d. Emergency Procedures
e. Diagnostic Procedures

Refer to the Operational Procedures DID (NASA-DID-P700) for a further description of the structure and content under each topic.

10.0 MAINTENANCE MANUAL

The purpose of the Maintenance Manual is to provide a location for data and information to aid in analyzing and debugging the software. This should not duplicate information available in other sections of the Product Specification.

10.1 Implementation Details

Describe details about:

a. Specific data representations or formats
b. Operating system interfaces and dependencies
c. Support software such as libraries
d. Hardware dependencies
e. Other interfaces

10.2 Modification Aids

Describe design details that could be used in the modification or expansion of the software.

10.3 Code Adaptation

Describe design details that support the initialization or adaptation of data or code. Relate this information to version information of the software.

11.0 ABBREVIATIONS AND ACRONYMS

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

12.0 GLOSSARY

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

13.0 NOTES

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

14.0 APPENDICES

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

Return to Beginning of Appendix


NASA-DID-P100
CONCEPT
DATA ITEM DESCRIPTION

TABLE OF CONTENTS

1.0	INTRODUCTION
2.0	RELATED DOCUMENTATION
3.0	DEFINITION OF 
3.1		Purpose and Scope
3.2		Goals and Objectives
3.3		Description
3.4		Policies
4.0	USER DEFINITION
5.0	CAPABILITIES AND CHARACTERISTICS
6.0	SAMPLE OPERATIONAL SCENARIOS
7.0	ABBREVIATIONS AND ACRONYMS
8.0	GLOSSARY
9.0	NOTES
10.0	APPENDICES

EXPLANATORY NOTE

The purpose of the Concept is to provide an overview of the software. The Concept section should be relatively brief. The Concept provides the context in which to read the Requirements section of the Product Specification. All requirements should be traceable, in a general sense, to the functions or capabilities described in the Concept. However, the Requirements section (or document, if the section is rolled-out), is the governing specification for the product.

1.0 INTRODUCTION

Refer to the Template DID (NASA-DID-999) for a detailed structure and content description of this section.

2.0 RELATED DOCUMENTATION

Refer to the Template DID (NASA-DID-999) for a detailed structure and content description of this section.

3.0 DEFINITION OF

Throughout this presentation of the Concept, the term "user" refers both to humans and to interfacing software.

3.1 Purpose and Scope

Briefly describe the purpose to be served by the software that is the subject of this Concept and the scope of its applicability. Describe the primary use(s) of the software within the context of the users' environments.

3.2 Goals and Objectives

Describe the goals and objectives for the software.

3.3 Description

Provide a top-level description of the software and its major external interfaces to provide a background to aid the reader in understanding what the software is to accomplish.

Use appropriate graphics, illustrations, tables, etc., to show functions and interrelationships.

3.4 Policies

List or reference the policies and standards governing the use and applicability of this software. State "none" if none has been used.

4.0 USER DEFINITION

List and describe the expected users of the software, the way in which the users will be using the software, and the functional capabilities the users will require to perform their activities. Explicitly define the users and their needs; use terms and details that will make it possible to correlate system capabilities and characteristics to specific user needs.

5.0 CAPABILITIES AND CHARACTERISTICS

Describe the major operational capabilities to be provided by the software. Identify which users' needs are supported by each capability. Use a table, matrix, or graphics if appropriate for clarity.

Describe significant characteristics required of the software. Possible areas of discussion are:

a. Architecture
b. Process capabilities
c. Data structures
d. Performance
e. Interfaces
f. Error recovery capabilities
g. Reliability
h. Risk criticality
i. Safety and security
j. Maintainability
k. Flexibility and expansion
l. Transportability
m. Quality
n. Adaptation to various operational sites
o. Security
p. Phase implementation

Discuss also:

a. Characteristics of the current and potential physical and organizational environment for the software.
b. The general flow of both execution control and data across external interfaces for the software, including hardware and networking considerations affecting software operation.

If there are major design constraints imposed upon this software, identify and describe each of them.

6.0 SAMPLE OPERATIONAL SCENARIOS

Describe typical operational scenarios for the software. The scenario depicts at a high level how users (including other systems) interact with the capabilities provided by the software being defined. Include at least one scenario for each class or type of user.

A sample scenario would include such matters as:

a. A description of an operation to be performed with support from the software
b. A description of the interaction between a user and the software in carrying out the operation

7.0 ABBREVIATIONS AND ACRONYMS

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

8.0 GLOSSARY

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

9.0 NOTES

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

10.0 APPENDICES

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

Return to Beginning of Appendix


NASA-DID-P200
REQUIREMENTS
DATA ITEM DESCRIPTION

TABLE OF CONTENTS

1.0	INTRODUCTION
2.0	RELATED DOCUMENTATION
3.0	REQUIREMENTS APPROACH AND TRADEOFFS
4.0	EXTERNAL INTERFACE REQUIREMENTS
5.0	REQUIREMENTS SPECIFICATION
5.1		Process and Data Requirements
5.2		Performance and Quality Engineering Requirements
5.3		Safety Requirements
5.4		Security and Privacy Requirements
5.5		Implementation Constraints
5.6		Site Adaptation
5.7		Design Goals
6.0	TRACEABILITY TO PARENT'S DESIGN
7.0	PARTITIONING FOR PHASED DELIVERY
8.0	ABBREVIATIONS AND ACRONYMS
9.0	GLOSSARY
10.0	NOTES
11.0	APPENDICES

EXPLANATORY NOTE

The purpose of the Requirements is to specify the functional, performance, and interface requirements for the software. Requirements approach and tradeoff results are described. This section also specifies the major characteristics, implementation constraints, and design goals for the software.

Each requirement should be uniquely identified to ensure traceability to the lowest level of implementation. A hierarchical or other classification scheme may be used to designate requirements that are allocated by groups to higher-level elements and functions.

1.0 INTRODUCTION

Refer to the Template DID (NASA-DID-999) for a detailed structure and content description of this section.

2.0 RELATED DOCUMENTATION

Refer to the Template DID (NASA-DID-999) for a detailed structure and content description of this section.

3.0 REQUIREMENTS APPROACH AND TRADEOFFS

Describe the overall approach in gathering, analyzing, and synthesizing requirements, including use of prototyping techniques. Explain the tradeoff process used to analyze conflicting requirements and arrive at the actual specifications for those requirements. Requirements trades and analysis information (such as a prototyping effort report), especially those that must be reevaluated or considered when changes are proposed during development or maintenance, should be included in an appendix or explicitly referenced.

4.0 EXTERNAL INTERFACE REQUIREMENTS

This section contains the specification of requirements for interfaces between this software and its external environment (i.e., all its users). This section should be rolled-out when it is to be placed under configuration control as a separate item. When rolled-out, it becomes the External Interface Requirements document.

Identify and describe each interface with each class of user. Each interface may represent a bi-directional flow of information. Use graphics of the interfaces when appropriate for clarity.

Specify the requirements governing each interface. Number or otherwise uniquely identify each requirement for the sake of traceability. Specify each requirement in testable, quantitative terms. Provide additional information about each requirement to aid in understanding its purpose and effect, and the goals for reliability, flexibility, etc.

The requirement definition should address the following topics, as appropriate:

a. Purpose of the interface
b. Requirements for the interface, such as process, performance, safety, security, etc.
c. Implementation constraints on the interface
d. If applicable, traceability to parent's design

5.0 REQUIREMENTS SPECIFICATION

5.1 Process and Data Requirements

Describe, as separately numbered items for traceability, the process and data requirements for the software in such terms as:

a. Functions
1. Input data and source
2. Transactions including algorithms
3. Output data and destination
b. Data
1. Definition
2. Relationships and structure
3. Protection requirements
4. Validity check requirements
5. Parameterization requirements
6. Format or implementation restrictions

5.2 Performance and Quality Engineering Requirements

Specify, as a separately numbered item for traceability, each performance requirement for the software. Express each requirement in testable and quantitative terms.

a. Address performance requirements such as:
1. Timing and sizing requirements
2. Sequence and timing of events, including user interaction tolerances
3. Throughput and capacity requirements
b. Describe error detection, isolation, and recovery requirements for data and processes
c. Describe quality engineering requirements such as reliability, maintainability, or portability

5.3 Safety Requirements

Specify, as separately numbered items for traceability, the safety requirements for the software, including, in a prioritized list, the following:

a. Software hazard requirements which identify hazards and potential contributions to system mishaps
b. User interface considerations from a human factors engineering viewpoint, including information flow, processing analysis, estimates of potential operator/maintainer processing capabilities, and analysis of critical tasks

5.4 Security and Privacy Requirements

Specify, as separately numbered items for traceability, the security and privacy requirements for the software, including access limitations to the system, such as existence of log-on procedures and passwords, and of data protection and recovery methods. Express each requirement in testable and quantitative terms. Prioritize these requirements.

5.5 Implementation Constraints

Describe general implementation constraints on the design and implementation of the software, such as the use of GFE, COTS, or use of specific compilers, etc. If existing software is required to be used or modified, include such requirements here.

List or reference engineering and technical standards to be applied in the development of the software.

5.6 Site Adaptation

Specify requirements for adapting the software to the physical environments within which it operates, including site-specific adaptation data or special parameters that are defined during installation. Adaptation requirements may be presented in tabular form.

5.7 Design Goals

State design goals for the software in terms of:

a. Correctness to the degree that the implemented system is to satisfy its requirements
b. Reliability of the implemented system to consistently perform its intended function
c. Efficiency with which the implemented system is to use computer resources
d. Maintainability
e. Technology transparency

6.0 TRACEABILITY TO PARENT'S DESIGN

Describe how these requirements map to the requirements allocated from the parent. Use a table for presentation as an aid to clarity, and show that requirements allocated from the parent have been taken into account and also that requirements specified herein can be traced to the parent, or that there is a valid reason for introduction of any new requirements at this level.

7.0 PARTITIONING FOR PHASED DELIVERY

If the software is to be developed in several stages for phased delivery, identify the content for each delivery in terms of:

a. Requirements and functions to be satisfied in the initial delivery
b. Additional requirements and functions to be satisfied for each successive delivery

Note that incremental development or phased delivery decisions at a higher (parent) level may impose phased delivery requirements upon this lower level.

8.0 ABBREVIATIONS AND ACRONYMS

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

9.0 GLOSSARY

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

10.0 NOTES

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

11.0 APPENDICES

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

Return to Beginning of Appendix


NASA-DID-P300
ARCHITECTURAL DESIGN
DATA ITEM DESCRIPTION

TABLE OF CONTENTS

1.0	INTRODUCTION
2.0	RELATED DOCUMENTATION
3.0	DESIGN APPROACH AND TRADEOFFS
4.0	ARCHITECTURAL DESIGN DESCRIPTION
5.0	EXTERNAL INTERFACE DESIGN
5.1		Interface Design
5.2		Interface Allocation
6.0	REQUIREMENTS ALLOCATION AND TRACEABILITY
7.0	PARTITIONING FOR INCREMENTAL DEVELOPMENT
8.0	ABBREVIATIONS AND ACRONYMS
9.0	GLOSSARY
10.0	NOTES
11.0	APPENDICES

EXPLANATORY NOTE

The purpose of the Architectural Design is to record the logical/functional design information for the software. This includes design rationale and trades, the selected architecture of the software including at least one level of decomposition, the relationships and interface description between the levels, and the allocation of the software requirements to lower levels.

1.0 INTRODUCTION

Refer to the Template DID (NASA-DID-999) for a detailed structure and content description of this section.

2.0 RELATED DOCUMENTATION

Refer to the Template DID (NASA-DID-999) for a detailed structure and content description of this section.

3.0 DESIGN APPROACH AND TRADEOFFS

Describe the rationale and tradeoffs, and other design considerations, including any use of prototyping, influencing the major decisions affecting the design of the software. Detailed design engineering and trades information that must be reevaluated or considered when changes are proposed during development or during sustaining engineering should be included in an appendix or explicitly referenced.

4.0 ARCHITECTURAL DESIGN DESCRIPTION

The purpose of this section is to describe the logical or functional design of the software. The following topics should be included:

a. Logical or functional decomposition
b. Description of the lower level elements including their inputs and outputs
c. Relationships and interactions between the lower level elements
d. Logical data design - conceptual schema
e. Entity/data identification and relationships
f. Timing and sequencing
g. Implementation constraints

5.0 EXTERNAL INTERFACE DESIGN

This section contains the design specifications for interfaces between the software and its external users. The section should be rolled-out when it will be placed under configuration control as a separate item, such as when two systems are referencing the same interface design. When rolled-out, it becomes the External Interface Design document.

5.1 Interface Design

Describe the design for each interface identified in the requirements section of the Product Specification as an external interface in terms of:

a. Information description
b. Initiation criteria
c. Expected response
d. Protocol and conventions
e. Error identification, handling, and recovery
f. Queuing
g. Implementation constraints

5.2 Interface Allocation

The purpose of this section is to allocate the software's external interface requirements to the appropriate lower level elements. Use a table or graphics if appropriate for clarity. Ensure that all external interface requirements, including performance, site adaptation, and design goals, are allocated.

6.0 REQUIREMENTS ALLOCATION AND TRACEABILITY

This section documents the allocation of the software's requirements to the lower level elements. Show the traceability of all requirements including performance and constraints for this software to the design presented above. Explicitly identify any derived requirements.

7.0 PARTITIONING FOR INCREMENTAL DEVELOPMENT

If the software is to be produced using phased delivery or incremental development, specify what requirements and functions are to be satisfied in each increment of the software.

8.0 ABBREVIATIONS AND ACRONYMS

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

9.0 GLOSSARY

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

10.0 NOTES

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

11.0 APPENDICES

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

Return to Beginning of Appendix


NASA-DID-P400
DETAILED DESIGN
DATA ITEM DESCRIPTION

TABLE OF CONTENTS

1.0	INTRODUCTION
2.0	RELATED DOCUMENTATION
3.0	DETAILED DESIGN APPROACH AND TRADEOFFS
4.0	DETAILED DESIGN DESCRIPTION
4.1		Compilation Unit Design and Traceability to Architectural Design
4.2		Detailed Design of Compilation Units
5.0	EXTERNAL INTERFACE DETAILED DESIGN
5.1		Interface Allocation Design
5.2		Physical Interface Design
6.0	CODING AND IMPLEMENTATION NOTES
7.0	FIRMWARE SUPPORT MANUAL
8.0	ABBREVIATIONS AND ACRONYMS
9.0	GLOSSARY
10.0	NOTES
11.0	APPENDICES

EXPLANATORY NOTE

The purpose of the Detailed Design is to record the design information for the software. This includes design rationale and trade-offs, the selected design of the software including its decomposition into compilation and code units, the design of all interfaces, and the mapping between the logical or functional design of the software and its detailed design units.

1.0 INTRODUCTION

Refer to the Template DID (NASA-DID-999) for a detailed structure and content description of this section.

2.0 RELATED DOCUMENTATION

Refer to the Template DID (NASA-DID-999) for a detailed structure and content description of this section.

3.0 DETAILED DESIGN APPROACH AND TRADEOFFS

Describe the rationale and tradeoffs, and other design considerations, including any use of prototyping, influencing the major decisions affecting the design of the software. Detailed design engineering and trades information that must be reevaluated or considered when changes are proposed during development or during sustaining engineering should be included in an appendix or explicitly referenced.

4.0 DETAILED DESIGN DESCRIPTION

4.1 Compilation Unit Design and Traceability to Architectural Design

This section presents the overall physical design of the software into its compilation units. The information for each unit should include:

a. Compilation unit identification
b. Compilation unit descriptions including:
1. Inputs and outputs
2. Functions
3. Data descriptions and relationships
4. Diagrams
5. Control and signal flow
6. Error handling
c. Interfaces descriptions between compilation units
d. Packaging details such as placement of units in library

This section includes a mapping of or the traceability between the architectural design elements to the compilation units.

4.2 Detailed Design of Compilation Units

This section contains the design information detailed to the level necessary to code the individual compilation units and all lower level code units. The information for each unit should include:

a. Detailed design to the lowest level (i.e., module or subroutine)
b. Functions or operations
c. Algorithms
d. Specific data definitions including data conversions
e. Local and global data
f. Parameters for initiation and adaptation
g. Logic flow, including:
1. Control flow
2. Timing variations
3. Priority assignments
4. Interrupt priorities and handling
h. Error detection and handling
i. Physical data design:
1. Internal schema
2. Query language
3. Access method
4. Key, record, and data element definition and structure
5. Use of database management capability
j. Device interface

5.0 EXTERNAL INTERFACE DETAILED DESIGN

This section contains the detailed design specifications for interfaces between the software and its external users. The purpose of the software external interface detailed design is to record the physical design information for the external interfaces to the software. This includes the data types, physical data format or layout, message descriptions, data transmissions, and protocols and priorities.

This section should be rolled-out when it is to be placed under configuration control as a separate item, such as when two elements are referencing the same interface design. When rolled-out, it becomes the External Interface Detailed Design document.

5.1 Interface Allocation Design

This section describes the mapping or traceability of the external interface design of the software into its specific compilation units and lower level units.

5.2 Physical Interface Design

Describe each external interface for the software. For each interface, describe the details of the interface, including:

a. (Interface Name/Identifier) Type and Purpose. Describe the type and purpose of the interface.
b. Data Transmission. Provide a detailed specification of the data records and elements transmitted across the interface in such terms as:
1. Unique identifier for each record and data element
2. Brief description and purpose of each record and data element
3. Source and destination for each record or single data element transmission
4. Data type and (if appropriate) unit of measure
5. Limit and range of values
6. Accuracy
7. Precision (in terms of significant digits)
If shared memory is used, then define:
8. The purpose for the shared memory
9. The shared memory location(s) used for transmissions across the interface
c. Message Descriptions. Identify each message transmitted across the interface and specify the assignment of data elements to each message. Provide cross references between data elements and messages, as a two-way sorted list.
d. Interface Priority. Specify the relative priority of this interface and of each message transmitted across it.
e. Communication Protocols. Identify the protocol for the interface by name and describe its technical details in terms of the following:
1. Fragmentation and reassembly of messages
2. Message formatting
3. Error control and recovery procedures, including fault tolerance features
4. Synchronization, including connection establishment, maintenance, termination, and timing
5. Flow control, including sequencing, and buffer allocation
6. Data transfer rate, whether periodic or aperiodic, and minimum interval between transfers
7. Routing, addressing, and naming conventions
8. Transmission services, including priority and grade
9. Status, identification, notification, and other reporting features
10. Security, including encryption, user authentication, compartmentalization, and auditing

6.0 CODING AND IMPLEMENTATION NOTES

The purpose of this section is to specify information such as:

a. Stubs for incremental development
b. Use of compiler options

7.0 FIRMWARE SUPPORT MANUAL

If the software design is implemented in firmware, refer to the Firmware Support Manual DID (NASA-DID-P410) for a further description of the content of this section.

8.0 ABBREVIATIONS AND ACRONYMS

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

9.0 GLOSSARY

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

10.0 NOTES

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

11.0 APPENDICES

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

Return to Beginning of Appendix


NASA-DID-P410
FIRMWARE SUPPORT MANUAL
DATA ITEM DESCRIPTION

TABLE OF CONTENTS

1.0	INTRODUCTION
2.0	RELATED DOCUMENTATION
3.0	DEVICES
3.1		Physical Description
3.2		Installation and Replacement
3.3		Limitations
4.0	PROGRAMMING TOOLS
4.1		Equipment
4.2		Software
4.3		Programming Procedures
5.0	SECURITY IMPLICATIONS
6.0	ABBREVIATIONS AND ACRONYMS
7.0	GLOSSARY
8.0	NOTES
9.0	APPENDICES

EXPLANATORY NOTE

The purpose of the Firmware Support Manual is to provide an instruction and reference manual for the firmware programmer to program, support, maintain, and monitor firmware that is a part of the software. The Firmware Support Manual provides the information necessary to program the read-only memory (ROM) devices, programmable ROMs (PROMs), and erasable PROMs (EPROMs). The Firmware Support Manual describes the ROM devices and support software and equipment required for reprogramming.

The Firmware Support Manual does not provide information regarding the design and implementation (bit pattern) within the device. That information is contained in the software detailed design section.

1.0 INTRODUCTION

Refer to the Template DID (NASA-DID-999) for a detailed structure and content description of this section.

2.0 RELATED DOCUMENTATION

Refer to the Template DID (NASA-DID-999) for a detailed structure and content description of this section.

3.0 DEVICES

List the firmware devices and provide the following information for each.

3.1 Physical Description

Provide a complete physical description of ROM components, including as a minimum:

a. Memory size (length and width in bits)
b. Pin functional descriptions
c. Operating characteristics such as access time, power supply/requirements, logic levels
d. Logical interfaces (e.g., addressing scheme, chip selection, etc.)
e. Available (unused) portion
f. Internal and external identification scheme
g. Manufacturer's part number
h. Timing characteristics (include diagram if appropriate)

3.2 Installation and Replacement

Describe all installation, removal, and replacement procedures for the ROM device. Describe the device addressing scheme and its implementation. If appropriate, use a diagram to describe the board layout that includes a socket number and pin identification for the device.

3.3 Limitations

Describe the operational and environmental limits to which the ROM device may be subjected and still maintain satisfactory operation.

4.0 PROGRAMMING TOOLS

The purpose of this section is to describe the hardware and software tools and procedures for programming the device.

4.1 Equipment

Describe the equipment used for programming the ROM device, including general purpose peripherals and special equipment used for device loading, test, and verification.

Identify each piece of equipment by:

a. Manufacturer's name and designation.
b. Major functional purpose of the equipment.
c. Any unique features.

4.2 Software

Describe the computer software used for programming the ROM device, including utilities, for device loading, burn-in, and test.

Identify each software item by:

a. Vendor and vendor's designation, including version number
b. Major function in terms of purpose
c. Unique features

4.3 Programming Procedures

Describe the procedures used for ROM programming, including:

a. Logic data generation
b. Device loading
c. Reliability aging conditions and schedules
d. Test
e. Verification

5.0 SECURITY IMPLICATIONS

Describe any special handling or security requirements for the devices or support hardware and software.

6.0 ABBREVIATIONS AND ACRONYMS

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

7.0 GLOSSARY

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

8.0 NOTES

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

9.0 APPENDICES

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

Return to Beginning of Appendix


NASA-DID-P500
VERSION DESCRIPTION
DATA ITEM DESCRIPTION

TABLE OF CONTENTS

1.0	INTRODUCTION
2.0	RELATED DOCUMENTATION
3.0	PRODUCT DESCRIPTION
4.0	INVENTORY AND PRODUCT
4.1		Materials Released
4.2		Product Content
5.0	CHANGE STATUS
5.1		Installed Changes
5.2		Waivers
5.3		Possible Problems and Known Errors
6.0	ABBREVIATIONS AND ACRONYMS
7.0	GLOSSARY
8.0	NOTES
9.0	APPENDICES

EXPLANATORY NOTE

The purpose of the Version Description is to provide a precise description of the particular version of the software being released. This description includes the version of requirements and design applicable to this version, and an exact description of the product contents in this version. For paper products, the product itself may also be included within the Version Description section, if appropriate.

1.0 INTRODUCTION

Refer to the Template DID (NASA-DID-999) for a detailed structure and content description of this section.

2.0 RELATED DOCUMENTATION

Refer to the Template DID (NASA-DID-999) for a detailed structure and content description of this section.

3.0 PRODUCT DESCRIPTION

Provide a description of this version of the product and use references to the appropriate sections of the requirements or design sections of the Product Specification.

4.0 INVENTORY AND PRODUCT

4.1 Materials Released

This section lists physical materials delivered with the version.

a. All media containing code (tapes, disks) that constitute the version and specific formats
b. All operation and support documents
c. All utility and support software and equipment that is not a part of the version but is required to load, operate, or maintain this version
d. All required hardware

4.2 Product Content

Identify the exact configuration of the product delivered by this version. Paper products may be included here in-line or rolled-out into a separate document. For non-paper products or rolled-out document, include a pointer to the product (e.g., model and serial numbers, or a document citation).

For software, indicate the location of the source and object code for this version. Printed listings may be included as an appendix to this document. Executables will normally be included on the tapes (or other medium) listed in the preceding section. Specify the compiler and, if applicable, the assembler, and version of each, used to generate the executable from the source code.

When appropriate, the product description statement will include version descriptions for systems, CSCIs, etc., to the lowest configuration management unit. For example, for a CSCI, it is a statement of the version descriptions of all of the CSCs. For a software system, it is a statement of the version descriptions for all of the next level decomposition items.

5.0 CHANGE STATUS

Describe the capabilities newly installed in this version. Identify the associated approved change, if applicable. Identify any requirements that are known to be unsupported. Also identify any changes in capabilities provided by the previous version, if applicable.

Indicate any interfaces to other software affected by the changes installed in this version, and describe the impact. The following sections identify changes applicable to this version (but not to previous versions) and their status.

5.1 Installed Changes

List, by identifier and title, the changes approved by a configuration control authority or board that have been newly incorporated in this version. Identify any change reports (Engineering Change Proposal, Change Requests, Document Change Notice, etc.) associated with each change.

5.2 Waivers

List all waivers that have been approved for this version and summarize their effects on the version's functional capabilities or operation.

5.3 Possible Problems and Known Errors

Identify and describe the operational effects of each possible problem and known error in the version, together with steps being taken to resolve them and ways for working around them.

6.0 ABBREVIATIONS AND ACRONYMS

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

7.0 GLOSSARY

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

8.0 NOTES

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

9.0 APPENDICES

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

Return to Beginning of Appendix


NASA-DID-P600
USER'S GUIDE
DATA ITEM DESCRIPTION

TABLE OF CONTENTS

1.0	INTRODUCTION
2.0	RELATED DOCUMENTATION
3.0	OVERVIEW OF PURPOSE AND FUNCTIONS
4.0	INSTALLATION AND INITIALIZATION
5.0	STARTUP AND TERMINATION
6.0	FUNCTIONS AND THEIR OPERATION
7.0	ERROR AND WARNING MESSAGES
8.0	RECOVERY STEPS
9.0	ABBREVIATIONS AND ACRONYMS
10.0	GLOSSARY
11.0	NOTES
12.0	APPENDICES

EXPLANATORY NOTE

The purpose of the user's guide is to provide end users (rather than system operators or administrators) with instructions explaining how to execute the software effectively.

1.0 INTRODUCTION

Refer to the Template DID (NASA-DID-999) for a detailed structure and content description of this section.

2.0 RELATED DOCUMENTATION

Refer to the Template DID (NASA-DID-999) for a detailed structure and content description of this section.

3.0 OVERVIEW OF PURPOSE AND FUNCTIONS

Describe the purpose and main capabilities of the software, and state its overall operation in terms of:

a. Functions
b. Options
c. Restrictions and limitations

If appropriate, reference the version description section.

4.0 INSTALLATION AND INITIALIZATION

Explain in detail the procedures for installing, tailoring, and initiating the software, including:

a. Equipment set-up
b. Power-on and power-off
c. Bootstrap and load
d. Initiation commands
e. Interrupt/recovery/restart
f. Initialization of files, variables, or other data
g. Tailoring, reconfiguration, adaptation
h. Re-initialization after failure

5.0 STARTUP AND TERMINATION

Describe how to start and terminate operation normally, and how to determine whether normal termination has occurred.

If the user has some control over abnormal termination, describe the procedures involved such as:

a. Trouble indicators and corrective actions
b. On-line interventions
c. Trap recovery
d. Operating communications
e. Fault isolation techniques
f. Conditions requiring software abort or equipment shut-down

Describe procedures for restarting after both normal and abnormal termination. If recovery procedures are required for restarting after abnormal termination, explain them in terms of:

a. Check points
b. Collection of failure data
c. Restoring files
d. Restoring devices to operational mode

6.0 FUNCTIONS AND THEIR OPERATION

Describe each function in terms of:

a. Purpose of function
b. Step-by-step procedures for execution
c. User inputs: commands, data, and option selection
d. Expected results and the procedures for examining these results
e. Related functions

Describe any inputs from a source other than the user that may occur while the software is in use and that may affect its interface with the user (for example, inputs from a remote sensor). Include applicable attributes of the input such as format, frequency, and effect upon the software state or mode.

7.0 ERROR AND WARNING MESSAGES

List and explain each possible error condition and associated message that may be encountered. Describe the corresponding corrective actions to be taken.

If appropriate, identify an agency that may be called upon for assistance.

8.0 RECOVERY STEPS

Explain recovery procedures the user may employ.

9.0 ABBREVIATIONS AND ACRONYMS

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

10.0 GLOSSARY

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

11.0 NOTES

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

12.0 APPENDICES

Refer to the Template DID (NASA-DID-999) for a detailed description of content for this section.

Return to Beginning of Appendix


NASA-DID-P700
OPERATIONAL PROCEDURES MANUAL
DATA ITEM DESCRIPTION

TABLE OF CONTENTS

1.0	INTRODUCTION
2.0	RELATED DOCUMENTATION
3.0	SYSTEM PREPARATION AND SET-UP PROCEDURES
4.0	STANDARD OPERATING PROCEDURES
5.0	FAULT AND RECOVERY PROCEDURES
6.0	EMERGENCY PROCEDURES
7.0	DIAGNOSTIC PROCEDURES
8.0	ABBREVIATIONS AND ACRONYMS
9.0	GLOSSARY
10.0	NOTES
11.0	APPENDICES

EXPLANATORY NOTE

The purpose of the operational procedures manual is to document the actual operational procedures of the software.

1.0 INTRODUCTION

Refer to the Template DID (NASA-DID-999) for a detailed structure and content description of this section.

2.0 RELATED DOCUMENTATION

Refer to the Template DID (NASA-DID-999) for a detailed structure and content description of this section.

3.0 SYSTEM PREPARATION AND SET-UP PROCEDURES

This section describes the procedures conducted by the operator to set-up and prepare the system for operation, both initially and for new releases or modifications to the system. This includes instructions for both software and, as appropriate, hardware.

4.0 STANDARD OPERATING PROCEDURES

This section describes the detailed operational procedures that are part of the standard practices for operating the information system. The types of procedures defined here include:

a. Monitoring procedures
b. Daily operating procedures, such as system back-ups and logs for maintenance
c. Standard safety and security procedures
d. On-demand procedures, such as in response to a user request

5.0 FAULT AND RECOVERY PROCEDURES

This section describes the detailed operational procedures to be conducted in case of a fault or abnormal condition in the hardware, software, or some other aspect of the system. The immediate actions and subsequent recovery procedures are documented for every anticipated fault condition.

6.0 EMERGENCY PROCEDURES

This section describes the detailed operational procedures to be conducted in case of an emergency. The types of procedures defined here include:

a. Procedures for critical system failures
b. Environmental emergency procedures, such as fires or hurricanes
c. Safety or security emergency procedures

7.0 DIAGNOSTIC PROCEDURES

Explain diagnostic procedures the operator may employ such as:

a. Correlation to error messages
b. Diagnostic initialization
c. Recording diagnostic data
d. Analysis of diagnostic results

8.0 ABBREVIATIONS AND ACRONYMS

Refer to the Template DID (NASA-DID-999) for a detailed structure and content description of this section.

9.0 GLOSSARY

Refer to the Template DID (NASA-DID-999) for a detailed structure and content description of this section.

10.0 NOTES

Refer to the Template DID (NASA-DID-999) for a detailed structure and content description of this section.

11.0 APPENDICES

Refer to the Template DID (NASA-DID-999) for a detailed structure and content description of this section.

Return to Beginning of Appendix

Return to NASA Software Documentation Standard

 


If you have any questions or comments about the SATC, contact:

Dr. Linda Rosenberg
NASA/GSFC
Code 302 -  Bldg 6
Greenbelt, MD 20771

Linda.Rosenberg@gsfc.nasa.gov

SATC Home Send E-Mail to the SATC NASA Goddard NASA IV+V

This page was last updated on:
06/29/99