UNDER CONSTRUCTION
Notes in this template provide guidance to authors on how the section if to be completed. Once the section is populated, the Note may be deleted. Notes are not intended to be left in the completed page.
1. Introduction
4.3.1 Software design is the process of defining the software architecture, components, modules, interfaces, and data for a software system to satisfy specified requirements. The software architecture is the fundamental organization of a system embodied in its components, their relationships to each other and the environment, and the principles guiding its design and evolution. The software architectural design is concerned with creating a strong overall structure for software entities that fulfill the allocated system and software-level requirements. Typical views captured in an architectural design include the decomposition of the software subsystem into design entities, computer software configuration items, definitions of external and internal interfaces, dependency relationships among entities and system resources, and finite state machines. The design should be further refined into lower-level entities that permit the implementation by coding in a programming language. Typical attributes that are documented for lower-level entities include the identifier, type, purpose, function, constraints, subordinates, dependencies, interface, resources, processing, and data. Rigorous specification languages, graphical representations, and related tools have been developed to support the evaluation of critical properties at the design level. Projects are encouraged to take advantage of these improved design techniques to prevent and eliminate errors as early in the life cycle as possible. Software, developed or purchased, has additional requirements to comply with from Section 508 of the Rehabilitation Act, as defined in NPR 2800.2.Software peer reviews and inspections are the in-process technical examination of work products by peers to find and eliminate defects early in the life cycle. Software peer reviews and inspections are performed following defined procedures covering the preparation for the review, the review itself is conducted, results are recorded, results are reported, and completion criteria is certified. When planning the composition of a software peer review or inspection team, consider including software testing, system testing, software assurance, software safety, software cybersecurity, and software IV&V personnel.
Activity graphical representation of Inputs, Outputs, Predecessor and Successor Activities as appropriate. Not meant to be exhaustive, but representative of a typical project.
1.1 Inputs
Documents that are necessary for Design to begin:
- SRS - Software Requirements Specification - Requirements - These influence the design of the software
- 5.13 - SwDD - Software Design Description- Contains Architecture description - This influences the design of the software
1.2 Predecessor Activities
Predecessor Activities are performed before Design. These activities produce the work products that will be reviewed.
- Life Cycle Planning - Design activities are included in the plan and schedules
- Software Requirements - These influence the design of the software
- Software Architecture - These influence the design of the software
1.3 Outputs
| Output Work Product | Used by Downstream Activity |
|---|---|
|
|
|
|
|
|
1.4 Successor Activities
- Implementation and Unit Testing - Implements the Design into one or more code modules.
- Preliminary Design Review
- Critical Design Review
- Test Readiness Review
- Operational Readiness Review
1.5 Activity Repetition
- Design is always done once. It should be peer reviewed and analyzed by Software Assurance.
- Design may be reviewed and re-analyzed as often as there are significant changes in architecture or requirements. For example:
- Technology changes to the architecture requires changes to the design
- Customer changes to requirements require changes to the design
1.6 Center Resources From SPAN
Several Centers Process Asset Libraries have materials related to this activity. Related Processes, templates, and other resources may be found in the following Activities in SPAN (available to NASA only).
| Activity | Description |
| Assets for use during product design |
2. Software Engineering
2.1 SWEs
SWE-058 - Detailed Design with new tab 4
2.2 Topics and other Supporting Materials
2.2.1 Topics
2.2.2 Supporting Materials
2.3 Other Associated SWEs, Topics, etc.
3. Software Assurance
Software Assurance is integral to the performance of all Software Development activities. It includes Process Monitoring as well as Process Analysis.
- Process Monitoring - addresses the question, "Is the development team following their processes and producing the expected work products?"
- Process Analysis - addresses the question, "Are there better ways of performing the processes that would result in the early discovery of defects?"
3.1 Software Assurance Tasks from SWEs
Software Assurance Tasks are included in tab 7 of the SWEs.
SWE-058 - Detailed Design with new tab 4
3.2 Topics and Other Supporting Materials
3.2.1 Topics
- Topic 8.16 - 8.55 - Software Design Analysis
- The Software Design Analysis product focuses on analyzing the software design that has been developed from the requirements (software, system, and/or interface). This topic describes some of the methods and techniques Software Assurance and Software Safety personnel may use to evaluate the quality of the architecture and design elements that was developed.
3.2.2 Process Asset Templates
Click on a link to download a usable copy of the template. (DesAn) 7/8/2025 - 16 items
(PAT-005 - )
Topic 8.55 - Software Design Analysis, tab 3.3,(PAT-006 - )
Topic 6.1, Topic Group: Programming Checklists(PAT-008 - )
Software Design Analysis, tab 3.2,(PAT-014 - )
Topic 7.10, tab 4.3, Also found in Peer Review and Design Analysis categories(PAT-015 - )
Topic 7.10, tab 4.4, Also found in Peer Review and Design Analysis categories.(PAT-016 - )
Topic 7.10, tab 4.5, Also found in Peer Review and Design Analysis categories.(PAT-020 - )
Topic 8.16, Software Design Analysis, tab 3.3, Item 6, Also found in Design Analysis category.(PAT-021 - )
Topic 8.16 - Software Design Analysis, tab 2, Also in SWE-058, tab 7.4.1(PAT-023 - )
SWE-143, tab 3, Also in Topic 8.55 - Software Design Analysis, Tab 2.4(PAT-029 - )
8.55 - Software Design Analysis, tab 2.4.2, Also in SWE-143(PAT-030 - )
Topic 8.55 - Software Design Analysis, Tab 2.4.2Also, in Category: DesAn(PAT-031 - )
Software Design Analysis, tab 2.4.3(PAT-036 - )
Topic 8.12, Checklist for Auditing the SWE Requirements related to the Software Architecture and Design.(PAT-047 - )
Topic 8.12, Checklist for assessing the content of the Architecture and Detailed Design in the Software Design Description document. Based on the minimum recommended content for a Software Design Description.(PAT-048 - )
Topic 8.12, Checklist for assessing the content of the Interface Design Description document. Based on the minimum recommended content for an Interface Design Description.(PAT-055 - )
Topic 8.12, Checklist for assessing the content of the Software Data Dictionary. Based on the minimum recommended content for a Software Data Dictionary.




0 Comments