bannerd

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Tabsetup
01. Introduction
12. Initiation and Planning
23. Estination
34. Schedules
45. Training
56. Classification
6Assurance and Safety
7Coding
89. Cybersecurity
910. Scope
Div
idtabs-1

1. Introduction

Initiation and Planning activities Software coding activities occur at the beginning of a project.throughout the project. They may include prototyping and development of some throw-away code to experiment with approaches. The final code must be carefully produced and traced to prevent unforeseen problems from occurring after release.   

A project may be for the creation of a new product, or the enhancement of an existing product. It may even involve the merging of capabilities from multiple products into a new, more capable product. It is always necessary to have an understanding of what the outcome of the project is. This is often called the High Level Requirements. These requirements set direction for the project.  Once the direction is set, an early activity is the Make, Buy or Reuse decision. 

Coding must be closely tied to requirements to avoid wasting time building something that is not wanted. 

The activities on this page include links to pages in the SWEHB that cover requirements from NPR 7150.2 as well as related Topics on techniques and Process Assets that may be used to help you in your project. 

Div
idtabs-2

2. Make / Buy / Reuse

This is one of the early decisions that must be made early in a project. Once the product requirements are settled, at least at a high level, the project team must decide how the code will be obtained. 

  • Making code is always attractive among talented coders who are excited to create code from scratch. The advantage of this is that the code is highly customized and may be fixed using the project team's talent. This presumes that these talented individuals will always be available to do additional development and fix problems. 
  • Buying code is attractive for smaller project teams where the coding talent is not readily available. Third party coders may solve problems with talent availability but this code my be carefully monitored to ensure it performs as required. 
  • Reusing code may provide an attractive starting point for many project teams. It can be used to jumpstart a development effort when large portions of the reused code is adapted to the new needs. If the reused code is not up to current standards, it can be a challenge to cleanup to the projects needs and standards. 

2.1 Related NPR 7150.2 SWEs

2.2 Related Topics and Process Assets



Div
idtabs-23
2

3.

Initiation and Planning

Estimation

3.1 Software Life Cycle Planning

SWE-033 - Acquisition vs. Development
                   Assessment
 
SWE-013 - Software Plans

SWE-024 - Plan Tracking 
SWE-034 - Acceptance Criteria
SWE-036 - Software Process Determination
SWE-037 - Software Milestones
SWE-039 - Software Supplier Insight
SWE-040 - Access to Software Products
SWE-042 - Source Code Electronic Access
SWE-139 - Shall Statements
SWE-121 - Document Tailored Requirements
SWE-125 - Requirements Compliance Matrix
SWE-027 - Use of Commercial, Government,
                   and Legacy Software

Div
idtabs-3
3. Estimation

3.2 Software Cost Estimation

SWE-015 - Cost Estimation
SWE-151 - Cost Estimate Conditions
SWE-174 - Software Planning Parameters

Div
idtabs-4

4. Schedules

3.3 Software Schedules

SWE-016 - Software Schedule
SWE-018 - Software Activities Review
SWE-046 - Supplier Software Schedule


Div
idtabs-5

5. Training

3.4 Software Training

SWE-017 - Project and Software Training

Div
idtabs-6

6. Classification

3.5 Software Classification Assessments

SWE-020 - Software Classification 
SWE-176 - Software Records 


3.9 Software Development Processes and Practices

SWE-032 - CMMI Levels for
                   Class A and B Software


Div
idtabs-7

7. Assurance and Safety 

3.6 Software Assurance and Software
Independent Verification & Validation

SWE-022 - Software Assurance
SWE-141 - Software Independent Verification
                   and Validation
SWE-131 - Independent Verification and
                   Validation Project Execution Plan
SWE-178 - IV&V Artifacts
SWE-179 - IV&V Submitted Issues and Risks

3.7 Safety-Critical Software

SWE-205 - Determination of Safety-
                  Critical Software 
SWE-023 - Software Safety-Critical
                   Requirements 
SWE-134 - Safety Critical Software
                   Design Requirements
SWE-219 - Test Coverage for Safety
                   Critical Software Components

SWE-220 - Cyclomatic Complexity Values
                   for Safety Critical Software

Div
idtabs-8

8. Coding Techniques

3.8 Automatic Generation of Software Source Code

SWE-146 - Auto-generated Source Code 
SWE-206 - Auto-Generation Software Inputs

3.10 Software Reuse

SWE-147 - Specify Reusability Requirements
SWE-148 - Contribute to Agency
                   Software Catalog

Div
idtabs-9

9. Cybersecurity

3.11 Software Cybersecurity

SWE-156 - Evaluate Systems for
                   Security Risks
SWE-154 - Identify Security Risks
SWE-157 - Protect Against
                   Unauthorized Access
SWE-159 - Verify and Validate Risk
                   Mitigations 
SWE-207 - Secure Coding Standard
SWE-185 - Verification of Software Code
                   to Coding Standards
SWE-210 - Detection of Adversarial Actions

Div
idtabs-10

10. Scope Management

3.12 Software Bi-Directional Traceability

SWE-052 - Bidirectional Traceability