UNDER CONSTRUCTION

New in SWEHB

1. Introduction

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 Engineering 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. 

SWEs from NPR 7150.2 are reproduced in a floatbox on the right to ensure that all SWEHB content is accounted for somewhere in the view. 


2. Institutional Activities

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

Management activities are typically conducted by those in leadership roles. Supervisors, managers and team leads are involved to varying degrees. Some activities even involve Support, Assurance and Safety roles. Interactions are explained in the activities. 

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. 

Process Definition 


Requirement Mapping and Tailoring


Measurements and Metrics


Benchmarking and Appraisals

Training


Process Library


Licensing, Sharing and Reuse

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 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

Institutional Activities

Activity NameActivity Components
Determining the capability and maturity of software development groups. 
Training at all levels from Agency (engineering practices and related training) down to project needs (training on using development tools). 
Development of repeatable processes and practices for software development. 
Determining the applicability of NPR 7150.2 requirements to a particular project. Includes requirements necessary for particular software classifications. 
Suggested measurements and practices for software projects. 
Library of processes and reusable assets at all levels of the agency. 
Requirements related to the licensing, sharing and reuse of some or all of software products. 

Project Software Activities

Activity NameActivity Components
Software Life Cycle Planning

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 InspectionsReviews and inspections for improving work products and project outputs
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 budgets for the work so that tracking can be effectively done. 
Used for establishing time budgets for the work so that tracking can be effectively done. 
Used for ensuring that the project follows established processes and practices. Includes audits and corrective actions. 
Independent testing and evaluation of software against requirements and performance criteria.  


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



Includes coding, use of auto-code generation, and unit testing of code modules. 
Includes integration of modules into a final deliverable package and testing of that package to determine if it is ready for delivery. 
  • 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. 
  • Operations
Addresses any ongoing operations considerations for the software products
  • Retirement
Addresses any retirement or replacement considerations for the software products
Includes control over software products during development along with any associated work products. 
Planning and monitoring risks which could impact the software products. 
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.