bannerd

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 71 Next »

UNDER CONSTRUCTION

New in SWEHB

Software Project Activities

1. Introduction

1.1 Activity Concept

Currently the SWEHB is a collection of pages: 

  • SWEs - Requirements from NPR 7150.2D along with Rationale, Guidance, Small Projects, Resources, Lessons Learned and Software Assurance, if applicable
  • Topics - Additional guidance for appropriate for some SWEs
  • PATs - Process Asset Templates - derived from SWEs and Topics
  • Other pages - such as Document Contents, FAQs, etc.

Pages include links to other pages based on the relevance of the content on those pages. 

The notion of Activity is a natural way to bring together pages from the existing SWEHB into a collection of pages that have a common purpose, an Activity. 



1.2 Activity Sequence

Software Engineering activities are conducted in a predictable sequence. This sequence may be a once through / "waterfall" cycle. Or, it may be an iterative  or evolutionary series of cycles which build toward a final product. Regardless of the model chosen, individual activities in all these cycles are very similar. 

The major activity groupings here give you a quick way to find guidance in the SWEHB to help you satisfy the needs of the development project while also satisfying the requirements of NPR 7150.2. 

The activities associated with Software Development are listed in the tabs of this page. Each tab takes you to a list of links to pages where the activity is is explained in more detail. At the lowest level, there is a list of links to specific pages in the SWEHB where details of the activity are explained and more guidance is provided. In some cases, templates or other Process Assets are included to further help you in conducting the activity. 


1.1 Activity Groupings

The tabs in this page initially will contain all of the activities in Ch 2 through 5 of NPR 7150.2. This is done to ensure that all SWEs are accounted for. 

As the page matures, Topics, PATs, and other resources will be distributed to enrich the content of the activities. 

2. Institutional Activities

The Institutional Activities include activities associated with OCE, OSMA, and Centers as well as Software Development Project teams. Each activity contains several requirements (from NPR 7150.2D chapter 2)  ensuring that higher levels of management establish certain means and infrastructure for projects to use in their projects. In some cases, requirements for Project teams are included describing the use of the management provided resources in their projects. 

For example: Management is responsible for providing training for engineers who develop software. Project teams are responsible for ensuring that team members have had this training (in addition to other training on project specific systems and software) so that they may produce high quality software. 

2.1 OCE  and OSMA Software Engineering Initiative

Agency Level Activities are intended to provide "enabling support" to project teams. These activities include direction, guidance and support to project teams. The requirements describing these activities are found in NPR 7150.2D Chapter 2. The full activity includes some requirements from Chapters 3 through 5 which are the responsibility of the project teams to satisfy. Many of the names for these Activities come directly from NPR 7150.2D. In a few cases, the names are changed to better express the full scope of the Activity. 

Activity NameActivity Components
OCE and SMA benchmarking and determining the capability and maturity of software development groups. Benchmarking techniques derived from CMMI best practices. 
Training at all levels from Agency (engineering practices and related training) down to project needs (training for personnel on using development tools). 
Development of repeatable processes and practices for OCE, SMA and Center development activities. 

Determining the applicability of NPR 7150.2 requirements to a particular project. Includes requirements necessary for particular software classifications. 

Includes SWEs from section 3.5 Software Classification Assessments. 

Suggested measurements and practices for software projects. 


NPR 7150.2D para 5.4.1

Software measurement is a primary tool for managing software processes and evaluating the quality of software products. Analysis of measures provides insight into the capability of the software organization and identifies opportunities for software process and product improvements. Software measurement programs at multiple levels are established to meet measurement objectives. The requirements below are designed to reinforce the use of measurement at the project, Center software organization, and NASA Chief Engineer levels to assist in managing projects, assuring quality, and improving software engineering practices.

NPR 7150.2D para 2.1.1.6

The NASA OCE shall maintain an Agency-wide process asset library of applicable best practices and process templates for all size projects

Requirements related to the licensing, sharing and reuse of some or all of software products. 

3. Activities

The Software and Assurance activities associated with Software Development Projects are listed as links below. 

Each page will contain an activity description and contain links to all the associated SWEs, Topics, PATs, and other pages in the SWEHB that are associated with the activity. 

3.1 Software Activity Pages

Links go to existing pages. Underlined (Red in edit mode)  links have not yet been created. All activity pages to be children of the Software Project Activities page.

Content structure is contained in the Activity Template

Project Software Activities

Activity NameActivity Components
Life Cycle Planning
NPR 7150.2D para 3.1.1

Software life cycle planning covers the software aspects of a project from inception through retirement. The software life cycle planning is an organizing process that considers the software as a whole and provides the planning activities required to ensure a coordinated, well-engineered process for defining and implementing project activities. These processes, plans, and activities are coordinated within the project. At project conception, software needs for the project are analyzed, including acquisition, supply, development, operation, maintenance, retirement, decommissioning, and supporting activities and processes. The software effort is scoped, the development processes defined, measurements defined, and activities are documented in software planning documents.

Software Peer Reviews and Inspections
NPR 7150.2D para 5.3.1

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.

Used when software is acquired or secured from outside sources. 
Used for monitoring progress and keeping the project under control through minor adjustments 
Used for establishing cost of development of the software products. It includes multiple models and parameters, direct and indirect costs, for the work so that tracking can be effectively done. 
Used for establishing and maintaining the development and delivery schedule. Takes into account dependencies on other projects and programs. Includes time for reviews and tracking of issues to resolution,  
Ensures that the project follows established processes and practices. Includes audits and corrective actions. 
Independent testing and evaluation of software against requirements and performance criteria. Applicable to certain categories of projects. Includes planning, execution of tests and tracking issues and risks to closure.   
Includes determining of software is considered safety-critical, and implementing additional requirements to ensure safety of the software product. 

Evaluation of software requirements and planning for their realization in the final software products. 

NPR 7150.2D para 4.2.1

Experience confirms that the quality and longevity of a software-reliant system is primarily determined by its architecture. The software architecture underpins a system’s software design and code; it represents the earliest design decisions, ones that are difficult and costly to change later. The transformation of the derived and allocated requirements into the software architecture results in the basis for all software development work.

NPR 7150.2D para 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.

NPR 7150.2D para 4.4.1

Software implementation consists of implementing the requirements and design into code, data, and records. Software implementation also consists of following coding methods and standards. Unit testing is also usually a part of software implementation (unit testing can also be conducted during the testing phase).

Includes integration of modules into a final deliverable package and testing of that package to determine if it is ready for delivery. 

NPR 7150.2D para 4.5.1

The purpose of testing is to verify the software functionality and remove defects. Testing verifies the code against the requirements and the design to ensure that the requirements are implemented. Testing also identifies problems and defects that are corrected and tracked to closure before product delivery. Testing also validates that the software operates appropriately in the intended environment. Please note for Class A software there are additional software test requirements and software integration requirements as defined in NPR 8705.2.

  • Acceptance and Release
Final determination of the readiness of the software for release. Includes acceptance testing, and other readiness criteria. 
  • Maintenance

Addresses any ongoing maintenance considerations for the software products. 

NPR 7150.2D para 4.6.1

Planning for operations, maintenance, and retirement are typically considered throughout the software life cycle. Operational concepts and scenarios are derived from customer requirements and validated in the operational or simulated environment. Software maintenance activities sustain the software product after the product is delivered to the customer until retirement.

  • Operations

Addresses any ongoing operations considerations for the software products

NPR 7150.2D para 4.6.1

Planning for operations, maintenance, and retirement are typically considered throughout the software life cycle. Operational concepts and scenarios are derived from customer requirements and validated in the operational or simulated environment. Software maintenance activities sustain the software product after the product is delivered to the customer until retirement.

  • Retirement

Addresses any retirement or replacement considerations for the software products

NPR 7150.2D para 4.6.1

Planning for operations, maintenance, and retirement are typically considered throughout the software life cycle. Operational concepts and scenarios are derived from customer requirements and validated in the operational or simulated environment. Software maintenance activities sustain the software product after the product is delivered to the customer until retirement.

Includes control over software products during development along with any associated work products. 

NPR 7150.2D para 5.1.1

Software Configuration Management (SCM) is the process of applying configuration management throughout the software life cycle to ensure the completeness and correctness of software configuration items. SCM applies technical and administrative direction and surveillance to identify and record the functional and physical characteristics of software configuration items, control changes to those characteristics, record and report change processing and implementation status, and verify compliance with specified requirements. SCM establishes and maintains the integrity of the products of a software project throughout the software life cycle. Use of standard Center or organizational SCM processes and procedures is encouraged where applicable.

Planning, monitoring and controlling risks which could impact the software products. 

NPR 7150.2D para 5.2

Record, analyze, plan, track, control, and communicate all of the software risks and mitigation plans.

Identification and tracking of non-conforming products and software. Includes ensuring that defects are removed or fixed. 

  • Project Closeout

Includes the closing of projects and dispositioning work products that may need to be used in subsequent projects related to the software products. 

NPR 7150.2D para 4.6.1

Planning for operations, maintenance, and retirement are typically considered throughout the software life cycle. Operational concepts and scenarios are derived from customer requirements and validated in the operational or simulated environment. Software maintenance activities sustain the software product after the product is delivered to the customer until retirement.

3.2 Software Assurance Activities

NASA-STD-8739.8B Para 4.1

4.1 Software Assurance Description

4.1.1 The Software Assurance activities provide a level of confidence that software is free from vulnerabilities, either intentionally designed into the software or accidentally inserted at any time during its life cycle, that the software functions in an intended manner, and that the software does not function in an unintended manner. The objectives of the Software Assurance and Software Safety Standard include the following:

a. Ensuring that the processes, procedures, and products used to produce and sustain the software conform to all specified requirements and standards that govern those processes, procedures, and products.

(a) A set of activities that assess adherence to, and the adequacy of the software processes used to develop and modify software products.
(b) A set of activities that define and assess the adequacy of software processes to provide evidence that establishes confidence that the software processes are appropriate for and produce software products of suitable quality for their intended purposes.

b. Determining the degree of software quality obtained by the software products.
c. Ensuring that the software systems are safe and that the software safety-critical requirements are followed.
d. Ensuring that the software systems are secure.
e. Employing rigorous analysis and testing methodologies to identify objective evidence and conclusions to provide an independent assessment of critical products and processes throughout the life cycle.

4.1.2 Project and SMA Management support of the software assurance function is essential for software assurance, software safety, and IV&V processes to be effective. The software assurance, software safety, and IV&V support include the following:

a. The Project and SMA Management are familiar with and understand the software assurance, software safety, and IV&V function’s purposes, concepts, practices, and needs.
b. The Project and SMA Management provide the software assurance, software safety, and IV&V activities with skilled resources (people, equipment, knowledge, methods, facilities, and tools) to accomplish their project responsibilities.
c. The Project and SMA Management act upon information provided by the software assurance, software safety, and IV&V function throughout a project.

4.1.3  The Software Assurance and Software Safety Standard’s requirements apply to organizations in their roles as both Acquirers and Providers.

Many of the activities of Software Assurance run parallel to Software Development Activities. In fact, development activities that have specific SA participation have a tab in the SWE specifically for Software Assurance participation. 

To further this relationship, the activities below draw on the SA requirements and tasks from NASA-STD-8739.8B and are associated with the SWEs in NPR 7150.2D. 

Activity NameActivity Components

Planning of Software Assurance activities in a Software Development Project are done in a collaborative fashion along with the Software Development team. It includes cost estimates and schedules. 

  • SA Auditing
Software Assurance tasks found in Development Activities which audit the processes and work products associated with individual SWEs. 
  • SA SW Requirements Analysis
Software Assurance Analysis tasks in Software Requirements and related activities which further improve the quality of the Software Requirements. Reducing requirement ambiguity, defects, and associated re-work in the of the software.
  • SA Design Analysis
Software Assurance Analysis tasks in Software Design and related activities which further improve the quality of the Software Design. Reducing defects and associated re-work in the design of the software. 
  • SA SW Source Code Analysis
Software Assurance Analysis tasks in Software Source Code and related activities which further improve the quality of the Software Source Code. Reducing defects and associated re-work in the of the software.
  • SA SW Testing
Software Assurance Analysis tasks in Software Testing and related activities which further improve the quality of the Software Testing. Improving test coverage, reducing test defects and associated re-work in the of the software.
  • SA Reporting
Software Assurance Analysis tasks in Software Reporting and related activities which further improve the overall Software Development Processes. Improving the Development Processes reduces defects and associated re-work in the of the software.
Independent testing and evaluation of software against requirements and performance criteria. Applicable to certain categories of projects. Includes planning, execution of tests and tracking issues and risks to closure.   
  • SA Safety and Hazard Analysis

  • SA Test Witnessing

4. Distribution of SWEHB pages

This tab contains a distribution of SWEs into Activities. Each SWE in the SWEHBVD is in the table. The table lists the Primary Activity in which the SWE is located. Also, for those SWEs that are associated with other activities, the associated activities are listed. This table will be used to distribute the SWEs into activities ensuring that none are lost in the distribution process. 

Under Construction in separate spreadsheet. This table will be updated periodically as the spreadsheet is completed. 

4.1 SWE pages

SWENPR paraPrimary ActivityAssociated Activity
SWE-002 - Software Engineering Initiative2.1.1.1Process Definition
SWE-004 - OCE Benchmarking2.1.1.2Benchmarking and Appraisals
SWE-152 - Review Requirements Mapping Matrices2.1.1.3Requirement Mapping, Tailoring, and Classification
SWE-129 - OCE NPR Appraisals2.1.1.4Benchmarking and Appraisals
SWE-100 - Software Training Funding2.1.1.5TrainingLife Cycle Training
SWE-098 - Agency Process Asset Library2.1.1.6Process Library
SWE-208 - Advancing Software Assurance and Software Safety Practices2.1.2.2Process Definition
SWE-209 - Benchmarking Software Assurance and Software Safety Capabilities2.1.2.3Benchmarking and Appraisals
SWE-212 - NASA-STD-8739 Mapping Matrices2.1.2.4Requirement Mapping, Tailoring, and Classification
SWE-221 - OSMA NPR Appraisals2.1.2.5Benchmarking and Appraisals
SWE-222 - Software Assurance Training2.1.2.6TrainingLife Cycle Training
SWE-223 - Tailoring IV&V project selections2.1.2.7Requirement Mapping, Tailoring, and Classification
SWE-003 - Center Improvement Plans2.1.5.2Process Definition
SWE-005 - Software Processes2.1.5.3Process Definition
SWE-140 - Comply with Requirements2.1.5.4Requirement Mapping, Tailoring, and Classification
SWE-095 - Report Engineering Discipline Status2.1.5.5Process Definition
SWE-006 - Center Software Inventory2.1.5.6Process Definition
SWE-091 - Establish and Maintain Measurement Repository2.1.5.7Measurements and Metrics
SWE-092 - Using Measurement Data2.1.5.8Measurements and Metrics
SWE-142 - Software Cost Repositories2.1.5.10Measurements and Metrics
SWE-144 - Software Engineering Process Assets2.1.5.11Process Library
SWE-153 - ETA Define Document Content2.1.5.12Process Library
SWE-215 - Software License Rights2.1.5.13Licensing, Sharing and Reuse
SWE-216 - Internal Software Sharing List2.1.5.14Licensing, Sharing and Reuse
SWE-217 - List of All Contributors and Disclaimer Notice2.1.5.15Licensing, Sharing and Reuse
SWE-214 - Internal Software Sharing and Reuse2.1.5.16Licensing, Sharing and Reuse
SWE-218 - Contracting Officers2.1.7Licensing, Sharing and Reuse
SWE-126 - Tailoring Considerations2.1.8.2Requirement Mapping, Tailoring, and Classification
SWE-150 - Review Changes To Tailored Requirements2.2.7Requirement Mapping, Tailoring, and Classification
SWE-021 - Transition to a Higher Class2.2.8Requirement Mapping, Tailoring, and Classification
SWE-033 - Acquisition vs. Development Assessment3.1.2AcquisitionLife Cycle Planning
Software Assurance Planning
SA Reporting
SWE-013 - Software Plans3.1.3Life Cycle PlanningSA Planning
SA Auditing
SWE-024 - Plan Tracking3.1.4Monitor and ControlLife Cycle Planning
Software Assurance Planning
SA Reporting
SA Auditing
SWE-034 - Acceptance Criteria3.1.5Acceptance and ReleaseLife Cycle Planning
Software Assurance Planning
SA Design Analysis
SA SW Source Code Analysis
SA Reporting
SWE-036 - Software Process Determination3.1.6Life Cycle PlanningSoftware Assurance Planning
SWE-037 - Software Milestones3.1.7Life Cycle PlanningSoftware Assurance Planning
SA Reporting
SWE-039 - Software Supplier Insight3.1.8AcquisitionLife Cycle Planning
Software Assurance Planning
SA Auditing
SWE-040 - Access to Software Products3.1.9Life Cycle PlanningSoftware Assurance Planning
SWE-042 - Source Code Electronic Access3.1.10Life Cycle PlanningSoftware Assurance Planning
SWE-139 - Shall Statements3.1.11Requirement Mapping, Tailoring, and ClassificationLife Cycle Planning
SA Planning
SA Reporting
SA Auditing
SWE-121 - Document Tailored Requirements3.1.12Life Cycle PlanningSA Planning
SWE-125 - Requirements Compliance Matrix3.1.13Life Cycle PlanningSA Planning
SWE-027 - Use of Commercial, Government, and Legacy Software3.1.14Life Cycle PlanningSoftware Assurance Planning
SWE-015 - Cost Estimation3.2.1Software Cost EstimationSoftware Assurance Planning
SWE-151 - Cost Estimate Conditions3.2.2Software Cost EstimationSA Planning
SA Reporting
SWE-174 - Software Planning Parameters3.2.3Software Cost Estimation
SWE-016 - Software Schedule3.3.1Software SchedulesSA Planning
SA Reporting
SA Auditing
SWE-018 - Software Activities Review3.3.2Software Schedules
SWE-046 - Supplier Software Schedule3.3.3Software SchedulesSA Planning
SWE-017 - Project and Software Training3.4.1TrainingLife Cycle Planning
SWE-020 - Software Classification3.5.1Requirement Mapping, Tailoring, and ClassificationSA Planning
SWE-176 - Software Records3.5.2Requirement Mapping, Tailoring, and Classification
SWE-022 - Software Assurance3.6.1Software Assurance
SWE-141 - Software Independent Verification and Validation3.6.2IV&V
SWE-131 - Independent Verification and Validation Project Execution Plan3.6.3IV&V
SWE-178 - IV&V Artifacts3.6.4IV&V
SWE-179 - IV&V Submitted Issues and Risks3.6.5IV&V
SWE-205 - Determination of Safety-Critical Software3.7.1Safety-Critical SoftwareSA Reporting
SWE-023 - Software Safety-Critical Requirements3.7.2Safety-Critical Software
SWE-134 - Safety-Critical Software Design Requirements3.7.3Safety-Critical SoftwareSA Design Analysis
SA SW Requirements Analysis
SA SW Source Code Analysis
SA Reporting
SWE-219 - Code Coverage for Safety Critical Software3.7.4Safety-Critical Software
SWE-220 - Cyclomatic Complexity for Safety-Critical Software3.7.5Safety-Critical Software
SWE-146 - Auto-generated Source Code3.8.1Implementation and Unit TestingSA Reporting
SWE-206 - Auto-Generation Software Inputs3.8.2Implementation and Unit TestingAcquisition
SWE-032 - CMMI Levels for Class A and B Software3.9.2Benchmarking and AppraisalsSA Reporting
SA Auditing
SWE-147 - Specify Reusability Requirements3.10.1Licensing, Sharing and Reuse
SWE-148 - Contribute to Agency Software Catalog3.10.2Licensing, Sharing and Reuse
SWE-156 - Evaluate Systems for Security Risks3.11.2Software Cybersecurity
SWE-154 - Identify Security Risks3.11.3Software Cybersecurity
SWE-157 - Protect Against Unauthorized Access3.11.4Software Cybersecurity
SWE-159 - Verify and Validate Risk Mitigations3.11.5Software CybersecuritySA SW Source Code Analysis
SWE-207 - Secure Coding Practices3.11.6Software CybersecuritySA SW Source Code Analysis
SWE-185 - Secure Coding Standards Verification3.11.7Software Cybersecurity
SWE-210 - Detection of Adversarial Actions3.11.8Software CybersecuritySA SW Requirements Analysis
SWE-052 - Bidirectional Traceability3.12.1Software Requirements SA SW Requirements Analysis
SWE-050 - Software Requirements4.1.2Software Requirements 
SWE-051 - Software Requirements Analysis4.1.3Software Requirements SA SW Requirements Analysis
SWE-184 - Software-related Constraints and Assumptions4.1.4Software Requirements SA SW Requirements Analysis
SWE-053 - Manage Requirements Changes4.1.5Software Requirements 
SWE-054 - Corrective Action for Inconsistencies4.1.6Software Requirements SA Reporting
SWE-055 - Requirements Validation4.1.7Software Requirements 
SWE-057 - Software Architecture4.2.3Software ArchitectureSA Design Analysis
SWE-143 - Software Architecture Review4.2.4Software ArchitectureSA Reporting
SWE-058 - Detailed Design4.3.2Software DesignSA Design Analysis
SWE-060 - Coding Software4.4.2Software Implementation
SWE-061 - Coding Standards4.4.3Software ImplementationSA SW Source Code Analysis
SWE-135 - Static Analysis4.4.4Software ImplementationSA SW Source Code Analysis
SWE-062 - Unit Test4.4.5Software Implementation
SWE-186 - Unit Test Repeatability4.4.6Software Implementation
SWE-063 - Release Version Description4.4.7Software Implementation
SWE-136 - Software Tool Accreditation4.4.8Software Implementation
SWE-065 - Test Plan, Procedures, Reports4.5.2Software Testing
SWE-066 - Perform Testing4.5.3Software Testing
SWE-187 -Control of Software Items4.5.4Software Testing
SWE-068 - Evaluate Test Results4.5.5Software Testing
SWE-070 - Models, Simulations, Tools4.5.6Software Testing
SWE-071 - Update Test Plans and Procedures4.5.7Software Testing
SWE-073 - Platform or Hi-Fidelity Simulations4.5.8Software Testing
SWE-189 - Code Coverage Measurements4.5.9Software Testing
SWE-190 - Verify Code Coverage4.5.10Software Testing
SWE-191 - Software Regression Testing4.5.11Software TestingSA Reporting
SWE-192 - Software Hazardous Requirements4.5.12Software Testing
SWE-193 - Acceptance Testing for Affected System and Software Behavior4.5.13Software Testing
SWE-211 - Test Levels of Non-Custom Developed Software4.5.14Software Testing
SWE-075 - Plan Operations, Maintenance, Retirement4.6.2OperationsSA Reporting
SWE-077 - Deliver Software Products4.6.3Acceptance and ReleaseSA Auditing
SWE-194 - Delivery Requirements Verification4.6.4Acceptance and Release
SWE-195 - Software Maintenance Phase4.6.5MaintenanceSA Auditing
SWE-196 - Software Retirement Archival4.6.6Retirement
SWE-079 - Develop CM Plan5.1.2Software Configuration ManagementSA Reporting
SA Auditing
SWE-080 - Track and Evaluate Changes5.1.3Software Configuration ManagementSA Design Analysis
SA SW Requirements Analysis
SA SW Source Code Analysis
SWE-081 - Identify Software CM Items5.1.4Software Configuration ManagementSA Design Analysis
SA SW Requirements Analysis
SA SW Source Code Analysis
SA Reporting
SWE-082 - Authorizing Changes5.1.5Software Configuration Management
SWE-083 - Status Accounting5.1.6Software Configuration Management
SWE-084 - Configuration Audits5.1.7Software Configuration ManagementSA Auditing
SWE-085 - Release Management5.1.8Software Configuration ManagementSA Auditing
SWE-045 - Project Participation in Audits5.1.9Software Configuration ManagementSA Reporting
SA Auditing
SWE-086 - Continuous Risk Management5.2Software Risk ManagementSA Reporting
SA Auditing
SWE-087 - Software Peer Reviews and Inspections for Requirements, Plans, Design, Code, and Test Procedures5.3.2Software Peer Reviews and InspectionsSA SW Requirements Analysis
SWE-088 - Software Peer Reviews and Inspections - Checklist Criteria and Tracking5.3.3Software Peer Reviews and InspectionsSA Auditing
SWE-089 - Software Peer Reviews and Inspections - Basic Measurements5.3.4Software Peer Reviews and Inspections
SWE-090 - Management and Technical Measurements5.4.2Measurements and MetricsSA Reporting
SWE-093 - Analysis of Measurement Data5.4.3Measurements and MetricsSA Reporting
SWE-094 - Reporting of Measurement Analysis5.4.4Measurements and Metrics
SWE-199 - Performance Measures5.4.5Measurements and MetricsSA Reporting
SWE-200 - Software Requirements Volatility Metrics5.4.6Software MeasurementsSA Reporting
SWE-201 - Software Non-Conformances5.5.1Software Non-conformance or Defect Management
SWE-202 - Software Severity Levels5.5.2Software Non-conformance or Defect ManagementSA Reporting
SWE-203 - Mandatory Assessments for Non-Conformances5.5.3Software Non-conformance or Defect ManagementSA Design Analysis
SA SW Requirements Analysis
SA SW Source Code Analysis
SWE-204 - Process Assessments5.5.4Software Non-conformance or Defect ManagementSA Reporting

4.2 Topic Pages

Includes Recommended Content pages from some of the topic pages. 

Topic #ActivityAssociated Activities
6.1 - Design for Safety ChecklistSA Safety and Hazard Analysis
6.2 - Checklist for General Software Safety RequirementsSA Safety and Hazard Analysis
6.3 - Checklist for Choosing a Real Time Operating System (RTOS)Implementation and Unit TestingLicensing, Sharing and Reuse
Software Design
6.4 - Checklist for Choosing Off-The Shelf Software (OTS)Implementation and Unit TestingLicensing, Sharing and Reuse
Software Design
6.5 - Checklist for C Programming PracticesImplementation and Unit Testing
6.6 - Checklist for C++ Programming PracticesImplementation and Unit Testing
6.7 - Checklist for Ada Programming PracticesImplementation and Unit Testing
6.8 - Checklist for Fortran Programming PracticesImplementation and Unit Testing
6.9 - Checklist for Generic (Non-Language-Specific) Programming PracticesImplementation and Unit Testing
6.10 - Checklist for General Good Programming PracticesImplementation and Unit Testing
6.11 - Examples of Programming Practices for Exception HandlingImplementation and Unit Testing
7.1 - History and Overview of the Software Process Improvement (SPI) EffortProcess Definition
7.2 - Classification and Safety-CriticalityRequirement Mapping, Tailoring, and Classification
7.3 - Acquisition GuidanceAcquisition
7.4 - Flowdown of NPR Requirements on Contracts and to Other Centers in Multi-Center ProjectsLife Cycle Planning- Acquisition
- Requirement Mapping, Tailoring, and Classification
7.5 - Work Breakdown Structures That Include SoftwareSoftware SchedulingCost Estimation
7.6 - Software Test Estimation and Testing LevelsSoftware Scheduling- Cost Estimation
- Implementation and Unit Testing
- Integration and Testing
7.7 - Software Architecture DescriptionSoftware Architecture
7.8 - Maturity of Life-Cycle Products at Milestone ReviewsSoftware SchedulingLife Cycle Planning
7.9 - Entrance and Exit CriteriaSoftware SchedulingLife Cycle Planning
7.10 - Peer Review and Inspections Including ChecklistsPeer Reviews and Inspections
7.11 - SWE Historyn/a
7.12 - Retiredn/a
7.13 - Transitioning to a Higher ClassRequirement Mapping, Tailoring, and Classification
7.14 - Implementing Measurement Requirements and Analysis for ProjectsMeasurements and Metrics
7.15 - Relationship Between NPR 7150.2 and NASA-STD-7009Software Architecture- Software Design
-Integration and Testing
7.16 - Appendix C. Requirements Mapping and Compliance MatrixRequirement Mapping, Tailoring, and Classification
7.17 - 7150.2C Appendices (Definitions, References, etc.)n/a
7.18 - Documentation Guidancen/a
CR-PR - Software Change Request - Problem ReportNon-Conformance and Defect Management
IDD - Interface Design DescriptionSoftware ArchitectureSoftware Design
Inspect - Software Inspection, Peer Reviews, InspectionsPeer Reviews and Inspections
Maint - Software Maintenance PlanMaintenance
Metrics - Software Metrics ReportMeasurements and Metrics
SCMP - Software Configuration Management PlanConfiguration Management
SDD - Software Data DictionarySoftware Design
SDP-SMP - Software Development - Management PlanLife Cycle Planning
SRS - Software Requirements SpecificationSoftware Requirements
STP - Software Test PlanIntegration and Testing
STR - Software Test ReportIntegration and Testing
SUM - Software User ManualOperationsAcceptance and Release
SwDD - Software Design DescriptionSoftware Design
Test - Software Test ProceduresIntegration and Testing
Train - Software Training PlanTraining
VDD - Version Description DocumentAcceptance and Release
7.19 - Software Risk Management ChecklistsRisk Management
7.20 - Assessing - Meets the IntentRisk Management
7.21 - Multi-condition Software RequirementsIntegration and TestingSafety-Critical Software
8.1 - Off Nonimal TestingSA SW Testing AnalysisSA SW Testing Analysis
8.2 - Software ReliabilitySA SW Testing Analysis
8.3 - Organizational Goals of Software Assurance MetricsMeasurements and Metrics
8.4 - Additional Requirements Considerations for Use with Safety-Critical SoftwareSA Safety and Hazard Analysis
8.5 - SW Failure Modes and Effects AnalysisSA SW Requirements AnalysisSA Safety and Hazard Analysis
8.6 - IV&V SurveillanceIV&VAcquisition
8.7 - Software Fault Tree AnalysisSA Safety and Hazard Analysis
8.8 - COTS Software Safety ConsiderationsSA Safety and Hazard Analysis
8.9 - Software Safety AnalysisSA Safety and Hazard Analysis
8.10 - Facility Software Safety ConsiderationsSA Safety and Hazard Analysis
8.11 - Auto-Generated CodeImplementation and Unit Testing
8.12 - Basics of Software AuditingSA Auditing
8.13 Test WitnessingSA SW Testing AnalysisSA Auditing
8.14 SA Tasking for NPR 7150.2B?
8.15 - SA Tasking Checklist Tool?
8.16 - SA Productsn/a
Audit ReportsSA Reporting
Checklists and Guidance Listsn/a
IV&V Program Execution PlanSA PlanningIV&V
Objective EvidenceAll SA Activities
Software Assurance PlanSA Planning
Software Assurance Status ReportsSA Reporting
Software Design AnalysisSA Design Analysis
 Software Requirements AnalysisSA SW Requirements Analysis
Software Safety and Hazard AnalysisSA Safety and Hazard Analysis
Source Code Quality AnalysisSA SW Source Code Analysis
Testing AnalysisSA SW Testing Analysis
8.17 - Software Safety Audit ChecklistsSA Auditing
8.18 - SA Suggested MetricsMeasurements and Metrics
8.19 - Dead / Dormant Code and Safety Critical SoftwareLicensing, Sharing and Reuse- SA Safety and Hazard Analysis
- Software Design
8.20 - Safety Specific Activities in Each PhaseSA Safety and Hazard Analysis
8.21 - Software Hazard CausesSA Safety and Hazard Analysis
8.22 - Hazardous CommandsSA Safety and Hazard Analysis
8.23 - Software Contents of a Certification of Flight ReadinessAcceptance and Release
Software Design Principles Software DesignSA Design Analysis
Software Safety and Design PrinciplesSA Design AnalysisSoftware Design
Coding StandardsSoftware DesignSA Design Analysis
Command Receipt AcknowledgementSoftware DesignSA Design Analysis
Data Interface IntegritySoftware DesignSA Design Analysis
Dead Code ExclusionSoftware DesignSA Design Analysis
Fault Detection and ResponseSoftware DesignSA Design Analysis
Flight Software ModificationSoftware DesignSA Design Analysis
Incorrect Memory Use or AccessSoftware DesignSA Design Analysis
Initialization - Safe ModeSoftware DesignSA Design Analysis
Invalid Data HandlingSoftware DesignSA Design Analysis
Resource MarginsSoftware DesignSA Design Analysis
Resource OversubscriptionSoftware DesignSA Design Analysis
Resource Usage MeasurementSoftware DesignSA Design Analysis
Safe TransitionsSoftware DesignSA Design Analysis
Thread SafetySoftware DesignSA Design Analysis

4.3 PAT Pages

PAT #ActivityAssociated Activities
PAT-001 - FCA ChecklistSoftware Configuration Management
PAT-002 - PCA ChecklistSoftware Configuration Management
PAT-003 - Functional Requirements ChecklistPeer Reviews and InspectionsSA SW Requirements Analysis
PAT-004 - Safety Requirements Analysis ChecklistSA SW Requirements Analysis
PAT-005 - Software Component Design Analysis ChecklistSA Design Analysis
PAT-006 - Design Practices for SafetySA Design AnalysisSA Safety and Hazard Analysis
PAT-007 - Checklist for General Software Safety RequirementsSA Safety and Hazard Analysis
PAT-008 - Safety Considerations for Design Peer Reviews ChecklistSA Safety and Hazard AnalysisPeer Reviews and Inspections
PAT-009 - Software Safety Process AuditSA Safety and Hazard Analysis
PAT-010 - Software Safety Activities for Internal AuditSA Safety and Hazard Analysis
PAT-011 - ISO 27001-2013 Audit Checklist

PAT-012 - Detection of Adversarial ActionsSoftware Cybersecurity
PAT-013 - Software Requirements ChecklistSoftware RequirementsPeer Reviews and Inspections
PAT-014 - Architecture Design ChecklistSoftware ArchitecturePeer Reviews and Inspections
PAT-015 - Detailed Design ChecklistSoftware DesignPeer Reviews and Inspections
PAT-016 - Functional Design ChecklistSoftware DesignPeer Reviews and Inspections
PAT-017 - C Code Inspection ChecklistIntegration and TestingPeer Reviews and Inspections
PAT-018 - Test Plan ChecklistIntegration and Testing- Implementation and Unit Testing
- Peer Reviews and Inspections
PAT-019 - Test Procedure ChecklistIntegration and Testing- Implementation and Unit Testing
- Peer Reviews and Inspections
PAT-020 - Examples of Interface ProblemsSA Design Analysis
PAT-021 - SADESIGN ChecklistSA Design Analysis
PAT-022 - Programming Practices ChecklistImplementation and Unit Testing
PAT-023 - Preparing for a SARB ChecklistSoftware ArchitectureSA Design Analysis
PAT-024 - Checklist for Choosing Off-The Shelf SoftwareAcquisition
PAT-025 - Checklist for Choosing a Real Time Operating System (RTOS)Acquisition
PAT-026 - Test Review Checklist For Test LeadsIntegration and TestingSA SW Testing Analysis
PAT-027 - Test Review Checklist For Review TeamsIntegration and TestingSA SW Testing Analysis
PAT-028 - NPR 7150.2D Compliance MatrixRequirement Mapping, Tailoring, and Classification
PAT-029 - Software Architecture Review Board ChecklistSoftware ArchitectureSA Design Analysis
PAT-030 - SARB Review Checklist with GuidanceSoftware ArchitectureSA Design Analysis

4.4 Other Pages


Add page/groups from 8739.8B 

  • SA Tasks
  • IV&V Overview and Requirements
  • SA Tailoring Standard Requirements

5. Activity Page Structure

We will need to decide how to consistently display information about activities. Since we have two groups involved with the Activity pages. There are multiple ways of displaying the information related to an Activity. 

5.1 Common Elements in the Activity Structure

Tab TitleContent
1IntroductionBrief description of the activity and its scope. If applicable, a quote from the NPR or STD is used to amplify the description. 
1.1InputsList of some of the inputs from other activities that are necessary for the activity to begin. 
1.2 Predecessor ActivitiesList of some of the other activities that must be started (not necessarily completed) so that this activity may begin. 
1.3OutputsList of some of the outputs or work products of the activity. These are typically used as inputs by the downstream activity. In some cases there is a supporting SWE associated with the work product. 
1.4Successor ActivitiesLinks to Activities which might be started or supported by this activity. 
1.5 Activity Repetition

Describe what conditions determine if the activity needs to be repeated, such as re-planning after a change in requirements or schedule constraints. 

  • How much of the activity needs to be repeated
    • Frequency of repetition
1.6Center Resources from SPANAdd links to SPAN activity pages that are appropriate for this activity. Use links from the Activity section of the SPAN front page. SPAN. This further differentiates SWEHB from SPAN in the sense that PATs are templates derived from SWEHB guidance, SPAN assets and templates are Center defined and developed resources. 
2Defining Software Development ActivityThis tab contains the links to pages in the SWEHB that are at the heart of the activity.
2.1SWEsThis section contains the links to SWE pages that form the heart of the activity.
2.2Topics and other Supporting Materials

This section is for SWEHB pages, other than SWEs, that directly support the activity. This section contains Topics, document content pages, PATs, and other pages. 

  • Topics
  • Document Structures
  • Process Asset Templates
  • Other Supporting Materials
2.3Other Associated SWEs, Topics, etc.Includes other SWEHB pages that are indirectly associated with the activity. May include SWEs, Topics, document definition pages, PATs, etc. They may have been mentioned in the guidance of another page. This section may be removed if there is no content for it.
3Defining SA ActivityThis tab contains the links to pages in the SWEHB that are at the heart of the activity.
3.1SWEsThis section contains the links to SWE pages that form the heart of the activity.
3.2Topics and other Supporting Materials

This section is for SWEHB pages, other than SWEs, that directly support the SA activity. This section contains Topics, document content pages, PATs, and other pages. 

  • Topics
  • Document Structures
  • Process Asset Templates
  • Other Supporting Materials
3.3Other Associated SWEs, Topics, etc.Includes other SWEHB pages that are indirectly associated with the activity. May include SWEs, Topics, document definition pages, PATs, etc. They may have been mentioned in the guidance of another page. This section may be removed if there is no content for it.


5.1 Combined Format

In the combined format, Activities that are closely related such as Planning may have a combined format. Tab 2 information is associated with both Software Engineering and Software Assurance content.  An additional tab is provided to include SA tasks (from the included SWEs) that apply to the activity. 

A risk associated with this way of displaying Activity information is that it may be difficult to easily pick out the SA pieces from the Engineering pieces of an activity. It will be critical to specify who is involved in each element of the activity. An example of this can be found in Planning where the Engineering and Assurance elements of the activity run in parallel and have considerable overlap. Engineering will plan certain processes and then Assurance will plan the auditing of those processes. 


5.2 Separate Formats 

In separate formats, there is  only one template. The indication of who is performing the activity is indicated in the title of the Activity. In this example, SA activities include the SA Task lists from the associated SWEs. Software Engineering Activities would not have SA Tasks displayed in section 2.1. 



6. Alternative Activity Styles

The Activity is a new concept for organizing content in SWEHB. In this tab, we explore various ways to display activity content while keeping several requirements in mind: 

  • minimize the creation of new content by reusing existing content as much as possible. 
  • minimize training necessary to use the activity, it should be obvious how to use the activity and its information
  • make the activity inclusive so that Software Developers and Software Assurance and others can use it easily

6.1 Initial Reactions to First Two Templates

At our 12/13/2023 meeting, there was some discussion about the organization and content of the two templates reviewed. It was not clear how these templates would accomplish the inclusivity requirement above. In this tab, we will explore some alternatives to these first two templates to attempt to get an Activity organization that satisfies all of the requirements. 


6.2 Existing Structure in SWEs with Tab 7 Software Assurance

SWEs that are from Chapters 3 through 5 of NPR 7150.2D have a Tab 7 for Software Assurance content. The tab 7 information defines a structure for providing guidance to Software Assurance team members for satisfying a SWE. This tab brings into focus the parallel nature of Software Assurance and Software Development work. For every requirement in NPR 7150.2, chapters 3 through 5, for Software Development, there are some tasks for Software Assurance to accomplish. The organization of tab 7 is: 

  1. Tasking for Software Assurance - one or more tasks derived from the NPR 7150.2 Requirement and specifically included in NASA-STD-8739.8. 
  2. Software Assurance Products - one or more work products created as a result of accomplishing the tasking. 
  3. Metrics - example metrics that could be collected (including some that must be collected) as a result of accomplishing the tasking. 
  4. Guidance - Additional information regarding how the tasks could be accomplished. In some cases, the guidance includes step by step instructions on accomplishing the tasks. 

Using SWE-058 as an example, we see 5 tasks assigned to SA: 

From NASA-STD-8739.8B

1. Assess the software design against the hardware and software requirements and identify any gaps.

2. Assess the software design to verify that the design is consistent with the software architectural design concepts and that the software design describes the lower-level units to be coded, compiled, and tested. 

3. Assess that the design does not introduce undesirable behaviors or unnecessary capabilities.

4. Confirm that the software design implements all of the required safety-critical functions and requirements. 

5. Perform a software assurance design analysis.

6.3 Expanding the Notion of Tasking into the SWE Structure

For this example, we will work with the page: Copy of SWE-058 - Detailed Design with new tab 4 . 

If we consider expanding the notion of Tasks into the current SWEs, we would have to look for a place to put them. Without a major restructuring of the tabs, we could consider putting them into tab 4. This would require renaming this tab from "Small Projects" to something like "Project Tasks". Initially, we may leave the existing text in tab 4 and just add to it. The preamble for this tab might be:

"Project Tasks are recommended for projects where this SWE is applicable. They are derived from the requirement. Suggestions for completing the tasks and producing the recommended work products are based on the guidance in tab 3."

The Guidance for SWE-058 contains information which could be interpreted as tasks for Software Development team members. After putting appropriate subheadings into tab 3, we have the following collection:  

  • 3.1 Design Readiness - including suggested checklist items for preparing for a Preliminary Design Review (PDR)
  • 3.2 Coding Standards and Processes  
  • 3.3 Design Considerations
  • 3.4 Detailed Design Documentation and Progress Reviews
  • 3.5 Design Maintenance 

For the new tab 4 content we might consider the following: 


4.1 Tasking for Software Development

Guidance for each task is available in tab 3. 

  1. Assess Design Readiness 
  2. Establish Coding Standards and Processes
  3. Establish Project Specific Design Considerations
  4. Establish Detailed Design Documentation and Progress Reviews
  5. Establish Design Maintenance Processes and Mechanisms

4.2 Software Development Work Products

  1. SwDD - Software Design Description 
  2. IDD - Interface Design Description
  3. SUM - Software User Manual
  4. Software Development Process - which includes details on the Design Process to be followed. 
  5. List of design components including when they are expected to be available - as input to Development Schedule
  6. List of methods, tools, standards, and guidelines for your project. 
  7. List of training and experience required by team members to perform the design and development work. 
  8. ....

4.3 Metrics

Suggested metrics are listed below. Items in bold are strongly recommended for implementation in order to provide benefit for tracking and assessing completion of the work. 

  • # of architectural issues identified vs. number closed.
  • # of design issues found versus the number of design issues resolved.
  • # of requirement issues (Open, Closed) over time.
  • # of non-conformances identified by life cycle phase over time.
  • # of software work product Non-Conformances identified by life cycle phase over time


This tasking was derived using

  • The headings from the guidance in tab 3 for the tasks
  • Three of the work products are mentions specifically and have minimum document structure topics to work from. These documents also have specific points in the life cycle where they are needed for reviews. All of that detail is delineated here. 
  • Some of the other work products found in tab 3 (not an exhaustive list here, just enough to represent the concept)
  • Metrics are taken from 7.3 (SA Metrics) and reworded slightly (again, not an exhaustive list here, just enough to represent the concept)

6.4 Comparing Tasks 

Looking at the Development Tasks above, it is clear that there is not a one to one correspondence between Development Tasks and Assurance Tasks. The table below demonstrates this: 

Development TaskAssurance Task
  1. Assess Design Readiness 
  2. Establish Coding Standards and Processes
  3. Establish Project Specific Design Considerations
  4. Establish Detailed Design Documentation and Progress Reviews
  5. Establish Design Maintenance Processes and Mechanisms

1. Assess the software design against the hardware and software requirements and identify any gaps.

2. Assess the software design to verify that the design is consistent with the software architectural design concepts and that the software design describes the lower-level units to be coded, compiled, and tested. 

3. Assess that the design does not introduce undesirable behaviors or unnecessary capabilities.

4. Confirm that the software design implements all of the required safety-critical functions and requirements. 

5. Perform a software assurance design analysis.

A similar disparity can be seen with the Work products for the two areas: 

Development Work ProductsAssurance Work Products
  1. SwDD - Software Design Description
  2. IDD - Interface Design Description
  3. SUM - Software User Manual
  4. Software Development Process - which includes details on the Design Process to be followed. 
  5. List of design components including when they are expected to be available - as input to Development Schedule
  6. List of methods, tools, standards, and guidelines for your project. 
  7. List of training and experience required by team members to perform the design and development work. 
  1. Software Design Analysis
  2. Results of software assurance design analysis, including assessments in Tasks 1, 2, and 3. 
  3. List of any identified design risks and issues.


When building the Combined activity it will be necessary to have tabs for both Development and Assurance. 

6.5 Activity View of Software Design Activity

One approach to this might be to combine the Development and Assurance elements into a single activity to reinforce the notion that the two groups are expected to work in a coordinated way even though not in a closely coupled way. To show this, look at the Activity - Software Design - Combined page. This page shows the combination of Development Tasks and Assurance Tasks in a single activity. 

The activity "Software Design" was selected because it has only one SWE associated with it. Only one SWE is needed to show how it develops in the sections of the activity. It is more straight forward that trying to develop an activity like "Life Cycle  Planning" which has many SWEs. 

The content for each tab is listed here. in order to avoid duplicating a lot of text, the existing SWEs and Topics are referenced and linked as much as possible. A minimal amount of text is copied into the Activity page. In many cases, excerpts are used to bring text in. This will minimize the original authoring of a lot of text. 

6.5.1 Tab 1 Introduction

This section contains a quote from NPR 7150.2D to describe what the activity is all about. If a quote is not available (it was not defined in the NPR) then new text must be provided to describe the activity. 

  •  Inputs, Outputs and Predecessor Activities - this introduces the flow chart for the activity. The flow chart is notional and not intended to be exhaustive in describing ALL of the possible inputs, outputs, and Predecessors. Currently the charts are derived from the master chart showing the overall flow of a Software Development project. It is contained in a PowerPoint presentation and images are saved as .PNG files. These files are then attached to the activity so that they may be displayed on the activity page. 
  •  1.1 Inputs - provides a section for listing the major inputs to the activity. They represent documents, plans, etc. that are used in the activity. They may not need to be completed inputs but need to be complete enough so that meaningful progress on the activity can take place. 
  •  1.2 Predecessor Activities - These are other major activities that must have at least started before the activity can be started. 
  •  1.3 Outputs - These are some of the major work products that will come out of the activity.  Many of these work products will go through peer review cycles prior to use in subsequent activities. 
  •  1.4 Successor Activities - These are some of the activities that will be started after the activity is at least started. Some of these activities depend on one or more of the work products listed in the Outputs. 
  •  1.5 Activity Repetition -  This section describes how often the activity is performed. All activities are performed once. Many are performed additional times depending on certain triggers such as requirements changes, budget changes, technology changes, etc. 
  •  1.6 Center Resources from SPAN - This section acknowledges the role of the Centers in providing libraries of process assets aimed at facilitating the performance of these activities. SWEHB builds asset prototypes from guidance on satisfying requirements, The Center assets are built on experience in satisfying the requirements on actual projects. Links to the appropriate asset pages in SPAN are provided. 

6.5.2 Tab 2 Software Development Activity

This section focuses on SWEHB components aimed as supporting the Software Development Community. It organizes components into groups of page types. 

  • 2.1 SWEs - in NPR 7150.2D many of the SWEs are grouped together in activities. These groupings are preserved here and in some cases expanded upon. Planning, Peer Reviews, and Software Design are some examples of activities right from the NPR. In this section, each SWE is listed including: 
    • The title of the SWE (as a link to the SWE page)
    • Below the SWE title is a list of the tasks. Tasks are derived from the guidance on the SWE page. In some cases, this is simple because the tasks come from the subheadings in the guidance. In other cases, they may need to be derived from a review of the guidance text. 
  •  2.2 Topics and Other Supporting Materials - this section contains links to other pages in the SWEHB that contain material relevant to the activity.
    • In both the Topics and Supporting Materials sub-sections, the title is presented as a link to the page. 
      • Some are obvious by their titles, like, 7.7 - Software Architecture Description.  Others are less obvious.
      • Some may even apply to multiple activities. For example, a checklist for building a work product for an activity may also be used in performing a peer review of that work product. 
      • Some are links to document structures (most of these are collected under in topic 7.18)
      • Some are Process Asset Templates (PATs) - these are prototype assets built from the SWE guidance and intended to serve as a starting point for projects to use. Projects are encouraged to improve upon the content of the template to help their project. 
    • Below the title link is the page excerpt. Most pages have an excerpt which describes in a sentence or two what the page is all about. 
  •  2.3 Other Associated SWEs, Topics, etc. - this is a catchall for other pages which are indirectly associated with the activity. In some SWEHB pages other SWEs are referenced and may be helpful to be included here. 

6.5.3 Tab 3 Software Assurance Activity

This tab brings out the relationship between Software Development and Software Assurance for the activity. Where tab 3 in the SWE provides guidance for Software Developers on how to satisfy the requirement, tab 7 provides guidance for Software Assurance on how to satisfy the requirement.

  •  3.1 Software Assurance Tasks from SWEs - Tasking in tab 7 of the SWEs comes directly from NASA-STD-8739.8B. It is reproduced in this section of the tab for each SWE. 
    • The title of the SWE is listed as a link to the page. 
      • Tasking from tab 7 (NASA-STD-8739.8B) is listed. 
      • Software Assurance Products are listed
      • Metrics are listed
  •  3.2 Topics and Other Supporting Materials - other SWEHB pages that describe Software Assurance activities. 
    • The title of the topic page is given as a link
      • The excerpt from the topic page is displayed
    • For PATs, the title of the PAT is given as a link to the page
      • The excerpt from the page is displayed. For a PAT, this is n image of the first page of the PAT. The image is linked to the PAT template document. 
    • There are some applicable topic pages that differ in their content. These are associated with topic 8.16. They contain content very similar to an activity in that it brings together tasks from multiple SWEs.
      • The title of the page is given as a link
        • The excerpt from the page is displayed
        • Related SWEs are listed along with tasking
  •  3.3 Other Associated SWEs, Topics, etc. - this is a catchall for other pages which are indirectly associated with the activity. In some SWEHB pages other SWEs are referenced and may be helpful to be included here. It may be added if needed. 

6.6 Special Topics Pages That Seem To Mimic Activities

In building the third Activity example, Activity - Software Design - Combined, It became apparent that there are some new pages in the SWEHB tat are different from the typical SWE or Topic. In the latter days of SWEHBVC some work was done on a small number of pages in the 7.18 - Documentation Guidance. They were moved into Topic 8.16 - SA Products. As these pages developed further, they became more than just a "minimum content" description. They blossomed into very detailed guidance pages, looking somewhat like activity descriptions. 

These pages have sections for: 

  • Listings of SA tasking from multiple SWEs
  • Guidance for performing the tasks. Including:
    • checklists and PATs for the tasks
    • descriptions of interfaces with other entities such as SARB
    • descriptions of various reviews 
    • techniques
    • recommended content for various types of reports 
  • Guidance for performing Safety Analysis, Hazard Analysis, etc.
  • Analysis Reporting Content
  • Safety related content
  • Tasks needing Objective Evidence

Certainly, all of these pages and content are valuable as topics for providing guidance on performing all types of work related activities. It may be somewhat of a challenge to accurately represent all of this content in the Activity format. Part of the concern is that it is currently under development and changes to the content will require that the Activities which point to them will need maintenance to keep up with the development in these areas. We will have to look carefully at these topics and come up with a way to include their content in Activities without getting too exhaustive in the Activity. Case in point,

6.7 Reworking Peer Reviews into the Combined Activity Format

The combined format and the reworking of tab 4 in SWEs (to bring out Software Development tasks, work products and metrics) dramatically increased the content in the Design activity. Doing the same thing for Peer Review shows some additional interesting things. 

Copies of the three SWES in the Peer Review Activity were made and the tab 4 in each was expanded after the tab 3 was reworked with sub-headings. Then the combined activity for Peer Review was built. 

6.7.1 Removing Metrics From The Template

Tab 1 of the activity did not change much from the previous examples of this activity. Significant changes needed to be made in tabs 2 and 3. In both tabs 2 and 3 the metrics detail is gone. It  was deleted because there was too much detail and it made the presentation of the activity too confusing. 

What is thereWhat is missing
  • Tab 2.1 now has 3 SWEs in it. Each SWE shows 
    • Title as a link
    • Excerpt (the requirement)
    • Another clarifying statement to further describe the SWE
    • Tasks list
    • Work Products list
  • Tab 2 is missing the Metrics details for the SWEs
  • Tab 2.2 now has
    • 2.2.1 Topics
      • a topic and
      • a minimum document structure page
    • 2.2.2 Supporting Materials
      • PAT page listing Peer Review assets

  • Tab 3.1 now has 3 SWEs in it. Each SWE shows 
    • Tasking
    • SA Products
  • Tab 3 is missing Metrics details for the SWEs
  • Tab 3.2 has
    • the same two Topics as in tab 2.2
    • the same PAT listing of assets


6.7.2 Addition of "Clarifying Statement" 

Note the addition of "Another clarifying statement to further describe the SWE" in tab 1. This was added because the excerpt for a SWE page is the requirement. It does not contain any "reusable text" describing the purpose of the page. In the case of the Peer Review SWEs, reworking the guidance tabs made it clear why the three SWEs were needed: 

  • SWE-087 - Establishes the Peer Review Process to be used in the project
  • SWE-088 - Establishes individual Peer Review content for each of the documents to be reviewed
  • SWE-089 - Establishes Metrics for the Process as well as the individual reviews

This distinction between the SWEs was not brought out in the Rationale statements. Expressing them in the activity add some clarity for the user. 

6.7.3 Summarizing the Combined Activity Structure

There are several features of the combined structure. whether they are net positives or net negatives will be for us to debate. We need to consider several questions for each. Some of these items imply a significant amount of work to get the SWEs and Topics ready for the reorganization. There is a lot of work remaining to get the PATs configured and made available.  

  1. Combining the Development and Assurance activities 
    1. Does it reinforce the concept of "working together" 
    2. Are the tasks for Development and Assurance so different that they lead to confusion or do they serve to bring the work to a logical conclusion?
  2. Omitting Metrics from the Combined Activity page
    1. Since Metrics are in the SWE page, tab 4 and 7, they are unnecessary clutter in the Activity page?
    2. Are a few of the key metrics desirable to have in the Activity to ensure that the whole reason for having Metrics is not lost?
  3. Clarifying statements and Tab 2 in the SWEs
    1. Should the clarifying statements be consolidated in the Tab 1 to explain why there are so many SWEs on this subject?
    2. Should the rationale statements in the SWEs be updated to explain how the collection of related SWEs work together? 
  4. Updating in Tab 3 - adding subheadings to clarify tasks. Much of the content is well organized, this is just adding subheadings that make the tasking more obvious
    1. Is it appropriate to say that Development teams have "tasking" imposed on them by the NPR? Is that a Center responsibility through their Asset Libraries and SEPG organizations?
  5. Updating in Tab 4 - Adding Tasking, Work Products, and Metrics
    1. Is it okay to leave the Small Projects content in at the top of the page? 
    2. Should Small Projects be move elsewhere? Does it need it's own sub-heading
  6. Divergence through content coming out of 8.16 topics 
    1.  Is there a close alignment of all the 8.16 topics with the development requirements of the SWEs.
    2. Some of the 8.16 topics span a wide range of SWEs as in "Topic 8.16 - Software Design Analysis", tasks reach out beyond Design. 
  7. Completing the creation of PATs - there are just over 30 now, There are probably as many as a hundred total depending on how we want to break out some of the SWE content that is currently in bulleted lists in tabs. 
    1. Should we prioritize the creation of PATs over the creation of activities? 
    2. Are the Activities more important than the PATs? 
    3. Are they of equal importance - build PATS as the content in Tab 3s are updated? 
  8. Rollout of Activity in the reorganization
    1. Should it be done all at once, individually, or in some sort of logical groupings? 
    2. How should the Activity reorganization be coordinated with other things like Blog postings - Blog postings could be the announcement mechanism for letting the community know about the various updates. 

6.7.4 Key Points for the Presentation at KSC in February

  1. What are the key things that we want to keep in the new structure?
  2. What are the things that we need to rethink? 
  3. How much should we be reveling to the SWWG at the meeting in February?  
  4. What things are we needing input on from the SWWG to  influence the changes to the SWEHB? 
  5. What items can we say we are rolling out at the meeting? 
    1. Blogs
    2. Reorganization of the Requirements buttons
    3. Creation of the Activity button
    4. Reorganization of Topics - uniform numbering of topics 
    5. Updating Acronyms and Terms in accordance with NPR 7150.2 and NASA-STD-8739.8


7. Other Considerations For Activities

7.1 Readiness Reviews in Activities

Topic 7.9 - Entrance and Exit Criteria covers a number of reviews that occur at the completion of certain activities.

  • Should these reviews be accounted for in the activities? 
  • Are they activities by themselves? 
  • Do we need PATS for each of these reviews?
    • Could be a single PAT for each review or 3 PATS (Entrance Criteria, Materials for Review, Exit Criteria) for each review. 

7.2 Life Cycle Products

Topic 7.8 - Maturity of Life Cycle Products at Milestone Reviews covers maturity of certain life cycle work products at the times of readiness reviews. Currently they are mentioned in the Inputs and Outputs sections of activity tab 1. 

  • Should these Work Products be accounted for in the activities in greater depth? Currently I list the docs that are in 7.18. Maybe this should be expanded to cover the docs in NPR 7150.2D, Chapter 6?
  • Some docs in Chapter 6 are not broken out in 7.18. They exist as sections of the docs (like Software Development Plan). Should these be mentioned in the appropriate activity?

7.3 Software Engineering Products 

From NPR 7150.2D, Chapter 6, there are some products in the list that are not in Topic 7.18 Documentation Guidance (Minimum Document Content):

  • w. Programmer’s/Developer’s Manual

Does this require another Topic? 

7.4 Reformatting of Guidance in SWEs

In the Copy of SWE-058 - Detailed Design with new tab 4 the guidance in tab 3 was already formatted into tasks. This permitted the Tasks to be quickly identified in the new tab 4.  Also, there were clear references to several documents (SwDD, IDD, and SUM) that made building the Work Products section of the activity easier and clearer. Metrics were adapted from those in tab 7 in the example. 

In other SWEs, there may be a need to reformat some things and build out others to get clear tasks, work products, and metrics. For example, the SWEs relating to Peer Reviews need some revisions: 

In general, a cleanup like this of the Guidance tabs would give the whole SWEHB a more polished look and make it easier to find things. Tab 7 for SA already looks very clean and functional for the assurance folks. Tabs 1, 5, and 6 in all the SWEs have already had such a make over: 

  • Tab 1 had consistent numbering of subsections implemented when the SWE History section was added. 
  • Tab 5 had some cleanup when the Tools section wording was changed and the PATs added to some SWEs. 
  • Tab 6 was reformatted to account for NASA and NON-NASA Lessons Learned. 


  • No labels

0 Comments