71002_rB

advertisement
Rev.
ECO
Description
Author
Approved
Date
1
37-080
Initial version
Ed Morgan
N/A
04/15/14
A
37-101
Baseline
Ed Morgan
Yes
08/15/14
B
37-227
Update
Cory Heiges/Ed
Morgan
RFGoeke
7/22/15
TESS
POC Software Development Plan
Dwg. No. 37-71002
Revision B
March 20, 2015
37-71002
i
Revision B
Preface
This is the TESS PCOC Software Development Plan. It describes the overall development plan for the TESS Payload
Operations Center software. It follows the guidelines provided by NASA's NPR 7150.2a.
Rev 01 was the initial release.
Revision A- was the version for peer review. Following approval by the Configuration Change Board, it became
version A.
Revision B incorporated comments from the 10 December 2014 informal review with NASA/GSFC software and software
quality. These changes include replacing references to GitLab with references to Trac throughout the document. We added
more Risk Management to alleviate the need for a separate Risk Management Plan. We resolved compliance issues in Appendix B. Changes were made to clarify the configuration management section as suggested by RFA-9 from the POC Engineering Peer Review.
37-71002
ii
Revision B
List of TBDs and TBRs
Topic
Description
.
37-71002
iii
Revision B
Table of Contents
1
Introduction .............................................................................................................................. 1
1.1
1.2
1.3
1.4
1.5
2
3
Purpose ..........................................................................................................................................1
Scope .............................................................................................................................................1
Document Structure........................................................................................................................1
Applicable Documents ....................................................................................................................1
Abbreviations .................................................................................................................................1
Background ............................................................................................................................... 3
Management and Development Plan ......................................................................................... 3
3.1 Organizational Structure (a) ............................................................................................................3
3.1.1 Project Manager (NASA/GSFC)........................................................................................................... 3
3.1.2 Ground Segment Development Manager (NASA/GSFC) .................................................................... 3
3.1.3 Science Operations Center Lead ........................................................................................................ 4
3.1.4 Payload Operations Center Manager ................................................................................................. 4
3.1.5 Project Engineer ................................................................................................................................. 4
3.1.6 Payload Operations Center Developer(s) ........................................................................................... 4
3.1.7 Chief Safety and Mission Assurance Officer (NASA/GSFC) ................................................................. 4
3.1.8 Instrument Project Quality Lead ........................................................................................................ 4
3.1.9 Payload Operations Center Software Quality .................................................................................... 4
3.2 Safety and Criticality Classification (b) .............................................................................................4
3.3 Tailoring Compliance Matrix (c) .......................................................................................................5
3.4 Engineering Environment (d) ...........................................................................................................5
3.4.1 Location and Facilities ........................................................................................................................ 5
3.4.2 Test Hardware/Software .................................................................................................................... 5
3.5 Work Breakdown Structure (e) ........................................................................................................5
3.6 Management of Quality Characteristics (f) .......................................................................................8
3.7 Management of Safety, Security, and Privacy (g) ..............................................................................9
3.7.1 Safety.................................................................................................................................................. 9
3.7.2 Security............................................................................................................................................... 9
3.7.3 Privacy ................................................................................................................................................ 9
3.8 Subcontractor Management (h) .......................................................................................................9
3.9 Verification and Validation (I) ..........................................................................................................9
3.10 NASA Involvement (j) .................................................................................................................. 10
3.11 User Involvement (k) .................................................................................................................. 11
3.12 Risk Management (l) ................................................................................................................... 11
3.13 Security Policy (m) ................................................................................................................................ 11
3.14 Approvals Required (regulatory, certifications, proprietary, etc) (n) .............................................. 11
3.15 Process for Scheduling, Tracking and Reporting (o) ...................................................................... 11
3.16 Training (p) ................................................................................................................................. 12
3.17 Software Life-Cycle Model (q) ..................................................................................................... 12
3.17.1 Overview and Rationale ................................................................................................................. 12
3.17.2 Requirements Definition ................................................................................................................ 12
3.17.3 Preliminary Design ......................................................................................................................... 13
3.17.4 Detailed Design .............................................................................................................................. 13
37-71002
iv
Revision B
3.17.5 Software Development .................................................................................................................. 13
3.17.6 Software Testing ............................................................................................................................. 14
3.17.7 Software Delivery ........................................................................................................................... 14
3.18 Configuration Management (r) .................................................................................................... 14
3.18.1 Project Organization (r.a) ............................................................................................................... 15
3.18.2 Responsibilities (r.b) ....................................................................................................................... 15
3.18.3 Policies and Directives (r.c)............................................................................................................. 15
3.18.4 Functions and Tasks (r.d) ................................................................................................................ 15
3.18.4.1 Part Identification ....................................................................................................................................15
3.18.4.2 Configuration Control ..............................................................................................................................15
3.17.4.3 Status Accounting ........................................................................................................................................16
3.17.4.4 Configuration Audits and Reviews ...............................................................................................................16
3.18.5 Sequence and Coordination (r.e) ................................................................................................... 16
3.18.6 Resources (r.f) ................................................................................................................................ 16
3.18.7 Plan Maintenance (r.g) ................................................................................................................... 16
3.18.8 Release Management and Delivery (r.h) ........................................................................................ 16
3.19 Software Documentation Tree (s) ................................................................................................ 17
3.20 Software Peer Review Process (t) ................................................................................................ 17
3.21 Test requirements affecting design decisions (u) .......................................................................... 18
3.22 Software metrics (v) ................................................................................................................... 18
3.23 Content of software documentation (w) ...................................................................................... 18
3.24 Management approach for COTS, GOTS, MOTS, FLOSS (x) ............................................................ 19
Appendix A
Sample Development Phase Checklists ................................................................... 20
Appendix B
Sample Software Review Checklists ........................................................................ 24
Appendix C
NPR 7150.2a Compliance Matrix............................................................................. 26
Tables
Table 1: Applicable Document List .......................................................................................................... 1
Table 2: Abbreviation Definitions ............................................................................................................. 1
Table 3: Quality Characteristic Management Activities ........................................................................... 8
Table 4: Software Life-cycle V&V Activities ........................................................................................... 9
Figures
Figure 1: Software Documentation Tree .................................................................................................. 17
37-71002
v
Revision B
TESS POC Software Development Plan
22/March/2016
1 Introduction
1.1 Purpose
The purpose of this document is to describe the process and methods to be followed for software development for the
Transiting Exoplanet Survey Satellite (TESS) Payload Operations Center (POC) software, the approach to be followed
for each activity and to outline the software schedule, organization and resources.
1.2 Scope
The scope of this document applies to the TESS POC Software. It does not apply to other ground software, spacecraft
software or ground-support equipment software.
1.3 Document Structure
The structure of this document starts with this introductory section followed by a brief overview. The remainder of the
document structure follows line by line the items listed in 5.1.1.1 of NASA NPR 7150.2A [SWE-102].
1.4 Applicable Documents
Document #
Document
NASA NPR 7150.2A
NASA Software Engineering Requirements
NASA-STD-8739.8
NASA Software Assurance Standard
NASA-STD-8719.13
NASA Software Safety Standard
MKI/37-10001
TESS Mission Assurance Requirement (MAR)
MKI/37-10031
TESS Project Management Plan
MKI/37-11001.11
TESS Configuration Management and Review Process
MKI/37-11502.01
Payload Operations Center Requirements Document
MKI/37-71050
TESS POC IT Risk Assessment
Table 1: Applicable Document List
1.5 Abbreviations
Description
Abbreviation
ADC
AR
Analog-to-Digital Converters
Acceptance Review
ASCII
American Standard Code for Information Interchangee
CASE
Computer-Aided Software Engineering
CCB
Configuration Control Board
CCD
Charge Coupled Device
CDR
Critical Design Review
CMP
Configuration Management Plan
CPU
Central Processing Unit
CSCI
Computer Software Configuration Items
CSO
Chief Safety and Mission Assurance Officer
37-71002
1
Revision B
TESS POC Software Development Plan
22/March/2016
Description
Abbreviation
DHU
Data Handling Unit
EDU
Engineering Development Unit
EEPROM
Electrically Erasable Programmable Read Only Memory
FDIR
Fault Detection Isolation and Recovery
FPGA
Field Programmable Gate Array
FSW
Flight Software
GNU
GNU is not Unix
GOLD
GPL
Goddard Open Learning Design
GNU Public License
GSFC
Goddard Space Flight Center
GSIT
Ground Systems Integration Test
HW
Hardware
ICD
Interface Control Document
IT
JWST
KSLOC
LL
MAESTRO
Information Technology
James Webb Space Telescope
Thousands of Source Lines of Code (i.e. 1 KSLOC == 1000 source lines of code)
Lincoln Laboratory
Mission Adaptive Environment for Spacecraft Test and Real-Time Operations
MAR
Mission Assurance Requirements
MIT
Massachusetts Institute of Technology
NASA
National Aeronautics and Space Agency
NPR
NASA Procedural Requirements
OS
Operating System
PCI
Peripheral Component Interconnect
PDF
Portable Document Format
PDR
Preliminary Design Review
PM
Project Manager
POC
Payload Operations Center
PPBE
Project Planning, Budget, and Execution
PROM
Programmable Read Only Memory
R/W
Read-Write
ROM
Read-Only Memory
SLOC
Source Lines of Code
SMAD
Safety and Mission Assurance Directorate
SRR
SPOC
STD
37-71002
Software Requirements Review
Science Processing Operations Center
Standard
2
Revision B
TESS POC Software Development Plan
22/March/2016
Description
Abbreviation
SVN
Subversion
SW
Software
TBD
To Be Determined
TBR
To Be Reviewed
TESS
Transiting Exoplanet Survey Satellite
TRR
Test Readiness Review
TSO
TESS Science Office
UML
Universal Modeling Language
Table 2: Abbreviation Definitions
2 Background
The Transiting Exoplanet Survey Satellite (TESS) is a two year survey mission that will focus on the discovery of
exoplanets in orbit around the brightest stars in the sky. This first-ever spaceborne all-sky transit survey will identify
planets ranging from Earth-sized to gas giants, around a wide range of stellar types and orbital distances. TESS will
provide prime targets for follow-up observation using the James Webb Space Telescope (JWST), as well as other large
ground-based and space-based telescopes.
The TESS instrument consists of four cameras, each with a Charge Coupled Device (CCD) developed by MIT/Lincoln
Laboratory. The electronics architecture consists of clocking electronics for the CCDs, analog processing chain and
Analog-to-Digital Converters (ADC) for the data from the CCDs, one or more Field Programmable Gate Arrays
(FPGA) to handle high-performance, low-level processing of the CCD data, instrument/satellite communications
logic, a KA-band instrument radio for high-volume downlink, and a Data Handling Unit (DHU) computing element.
At a very high-level, the baseline responsibilities of this software consists of tools to plan, operate, maintain and
process data from the TESS Payload.
After launch the POC will be responsible for the maintenance of the DHU flight software. The Flight Software is
covered under different Development and Maintenance Plans, that will continue to be enforced in the POC. No
additional software will be developed by the POC for FSW maintenance.
3 Management and Development Plan
3.1 Organizational Structure (a)
This section describes the TESS Project organizational structure from the software perspective. For the overall project
organization, refer to the TESS Project Management Plan (MIT/37-10031).
3.1.1 Project Manager (NASA/GSFC)
From the TESS Project Management Plan (MIT/37-10031): “The TESS Project Manager(PM) has overall
responsibility for ensuring the performance of all functions necessary for managing and implementing the project. The
PM is responsible for project-wide planning and evaluation; personnel management; contracts, systems development,
integration and test, reliability, quality assurance; system safety; configuration management of the TESS instrument,
spacecraft, and ground system. The PM is responsible for developing the TESS life cycle costs and yearly Project
Planning, Budget, and Execution (PPBE) operating plan inputs and submitting them to the Explorer Program Office.”
3.1.2 Ground Segment Development Manager (NASA/GSFC)
The TESS Project Management Plan (MIT/37-10031) calls for a Ground Segment Development Manager (GSDM).
The GSDM is responsible to the PM for developing and implementing ground system requirement, flight data
processing/data capture, science data distribution system, ground network/communications in support of flight
37-71002
3
Revision B
TESS POC Software Development Plan
22/March/2016
operations. Before launch, the GSFD is responsible for ensuring that operational requirements have been met,
including the conduct of all tests necessary to verify and validate the operation of the end-to-end TESS ground system.
During the science phase of the TESS mission, the MOM provides the management and programmatic support for the
operations of the mission not including science, and science operations.
3.1.3 Science Operations Center Lead
The TESS Project Management Plan (MIT/37-10031) calls for a Science Operations Center Lead who oversees the
operation of the Payload Operations Center (POC) and the Science Processing Operations Center (SPOC). The
Science Operations Center Lead reports technical issues to the Ground Segment Development Manager.
3.1.4 Payload Operations Center Manager
The Payload Operations Center Lead is tasked with ensuring the successful operation of the instrument. This includes
the generation of the science command load, and working with the MOC to verify command loads prior to upload to
the spacecraft. In addition, the POC Lead oversees the collection and maintenance of calibration data utilized in
pipeline processing, and monitors instrument housekeeping data for instrument state-of-health. The Payload Operation
Center Lead reports to the Science Operations Center Lead.
3.1.5 Project Engineer
The Instrument Project Engineer leads the overall development of the instrument and acts as the instrument systems
engineer. The Project Engineer coordinates the multi-disciplinary engineering team in the specification, design,
construction, test and operation of the TESS cameras and data handling unit.
3.1.6 Payload Operations Center Developer(s)
The Payload Operations developer(s) report to the instrument project engineer, but receive software direction from the
POC Manager. Their responsibilities include software detailed design, implementation, unit test and integration under
the direction of the lead software engineer. They're also responsible for contribution and review to the software
requirements, software architectural design, software test procedures and reports, software version description/release
notes, and defect reports and resolution.
3.1.7 Chief Safety and Mission Assurance Officer (NASA/GSFC)
The Chief Safety and Mission Assurance Officer (CSO) is responsible to the Project Manager (PM) for all flight
assurance disciplines of the project to ensure that the spacecraft, instruments, and ground system equipment will meet
their intended performance objectives. These disciplines include quality assurance, independent design review,
reliability, system safety, and verification testing. The CSO does not administratively report to the PM. In the event
disputes between the PM and the CSO cannot be resolved, the CSO can appeal to the GSFC Director of Safety and
Mission Assurance. The CSO reports to the GSFC Safety and Mission Assurance Directorate (SMAD) and maintains
independence via that office.
3.1.8 Instrument Project Quality Lead
The Instrument Project Quality Engineer is responsible to the CSO for all assurance disciplines of the instrument to
ensure that it meets its intended performance objectives. These include quality assurance, design review, reliability,
system safety and verification.
3.1.9 Payload Operations Center Software Quality
Payload Operations Center Software Quality reports to the Instrument Quality Lead. The software quality role is
responsible for ensuring the POC team maintains quality, reliability and safety standards in the development process
and supports the software verification and validation process as precursor to system integration and test.
3.2 Safety and Criticality Classification (b)
The TESS Mission Assurance Requirements (MAR) (MKI/37-10001) classify the mission as Class C, which flows
37-71002
4
Revision B
TESS POC Software Development Plan
22/March/2016
down to the TESS Project Management Plan (MKI/37-10031) indicating that TESS is categorized as a Category 2
mission with a Class C.
The POC software will consist of the following Computer Software Configuration Items (CSCIs):
•
Telemetry Processing
•
Command Generation
•
Mission Planning
•
Instrument Monitoring and Calibration
The TESS project has classified all POC software as class C.
3.3 Tailoring Compliance Matrix (c)
Appendix C contains the NPR 7150.2a compliance matrix for the POC Software CSCIs.
3.4 Engineering Environment (d)
3.4.1 Location and Facilities
POC software development will primarily occur at MIT's Cambridge campus Kavli Institute offices using MIT-issued
computers and networked via the office and campus networking facilities. Occasionally, non-ITAR related
development may occur off-site (such as during transit, at home, etc.) using MIT-issued or personal computers. ITAR
related development, however, must occur with appropriate safe-guards to prevent transfer of controlled material to
non-US persons.
Software development will utilize standard off-the-shelf computing resources. Software development will occur using
Apple's OS/X or GNU/Linux operating systems.
Plans, requirements, design, and report documents will be authored and edited using developer-selected tools capable
of producing Portable Document Format (PDF) with the stipulation that non-Microsoft Office based documents be
editable using freely available software, such as LibreOffice, Latex, emacs, etc.
Given the anticipated size of the software development effort (< 30K Source Lines of Code (KSLOC) per CSCI), we
don't anticipate a need to use Computer-Aided Software Engineering tools (CASE), such as Rational Rose or
ArgoUML, but instead reserve the right to utilize these tools should the need arise.
The software coding effort will produce ASCII source files, created and edited using developer-selected tools, such as
Eclipse, emacs, or gedit.
The software build tools will consist mainly of open source compilers (gcc, python) although some CSCIs may use
MATLAB or IDL.
The software static analysis tools will be evaluated and selected during the Software Architectural Design phase of the
effort.
3.4.2 Test Hardware/Software
Testing of the Command Generation and Telemetry Processing software requires access to a properly configured
MAESTO station, a S/C simulator, a DHU EDU and a KaBand simulator.
3.5 Work Breakdown Structure (e)
The following is an initial work breakdown structure, with coarse functional element place-holders.
1 Develop and Maintain POC Software
1.1
Plan, Document, and Review Software Development Effort
1.1.1
Document Software Development Plan
1.1.2
Review and Revise Software Development Plan
1.1.3
Document Software Assurance Plan
1.1.4
Review and Revise Software Assurance Plan
37-71002
5
Revision B
TESS POC Software Development Plan
22/March/2016
1.2
Develop and establish development standards, tools, and templates
1.2.1
Develop, Document and Review Architectural Design Standards
1.2.2
Develop, Document and Review Coding Standards and Templates
1.2.3
Develop, Document and Review Software Build Tools/Scripts
1.2.4
Evaluate, Setup and Document Static Analysis Tools
1.2.5
Setup and Document Software Version Control System and Procedures
1.3
Monitor Software Development Effort
1.3.1
Collect, Evaluate and Report Requirements Metrics
1.3.2
Collect, Evaluate and Report Architectural Metrics
1.3.3
Collect, Evaluate and Report Code Metrics
1.3.4
Collect, Evaluate and Report Non-Conformances
1.3.5
Track, Evaluate and Report Progress and Risks
1.3.6
Track, Update and Report Schedule Progress
1.4
Develop Instrument Command Generation Software
1.4.1
Plan, Document, and Review Command Generation Requirements
1.4.2
Develop, Document and Review Command Generation Architectural Design
1.4.3
Develop, Document and Review Command Generation Detailed Design
1.4.4
Build for Ground System Integration Test 1
1.4.4.1 Implement and Unit Test Command Generation
1.4.4.2 Integrate Command Generation with with MAESTRO and DHU
1.4.4.3 Verify Command Generation against Software Requirements
1.4.4.4 Validate Command Generation GSIT 1 Requirements
1.4.5
Build for Ground System Integration Test 2
1.4.5.1 Implement and Unit Test Command Generation
1.4.5.2 Integrate Command Generation with with MAESTRO and DHU
1.4.5.3 Verify Command Generation against Software Requirements
1.4.5.4 Validate Command Generation GSIT 2 Requirements
1.4.6
Build for Ground System Integration Test 3
1.4.6.1 Implement and Unit Test Command Generation
1.4.6.2 Integrate Command Generation with with MAESTRO and DHU
1.4.6.3 Verify Command Generation against Software Requirements
1.4.6.4 Validate Command Generation GSIT 3 Requirements
1.5
Develop Telemetry Processing Software
1.5.1
Plan, Document and Review Telemetry Processing Requirements
1.5.2
Develop, Document and Review Telemetry Processing Architectural Design
1.5.3
Develop, Document and Review Telemetry Processing Detailed Design
1.5.4
Build for GSIT 1
1.5.4.1 Implement, Unit Test and Integrate Telemetry Processing Modules
1.5.4.2 Integrate Telemetry Processing
1.5.4.2.1 Engineering Hardware
1.5.4.2.2 SPOC
1.5.4.2.3 Instrument Monitoring
1.5.4.3 Verify Telemetry Processing against Software Requirements
1.5.4.4 Validate Telemetry Processing GSIT 1 Requirements
1.5.5
Build for GSIT 2
1.5.5.1 Implement, Unit Test and Integrate Telemetry Processing Modules
1.5.5.2 Integrate Telemetry Processing
1.5.5.2.1 Engineering Hardware
1.5.5.2.2 SPOC
1.5.5.2.3 Instrument Monitoring
1.5.5.3 Verify Telemetry Processing against Software Requirements
1.5.5.4 Validate Telemetry Processing GSIT 2 Requirements
1.5.6
Build for GSIT 3
1.5.6.1 Implement, Unit Test and Integrate Telemetry Processing Modules
1.5.6.2 Integrate Telemetry Processing
1.5.6.2.1 Engineering Hardware
37-71002
6
Revision B
TESS POC Software Development Plan
22/March/2016
1.5.6.2.2 SPOC
1.5.6.2.3 Instrument Monitoring
1.5.6.3 Verify Telemetry Processing against Software Requirements
1.5.6.4 Validate Telemetry Processing GSIT 3 Requirements
1.6
Develop Mission Planning Software
1.6.1
Plan, Document and Review Mission Planning Requirements
1.6.2
Develop, Document and Review Mission Planning Architectural Design
1.6.3
Develop, Document and Review Mission Planning Detailed Design
1.6.4
Build for GSIT 1
1.6.4.1 Implement, Unit Test and Integrate Mission Planning Modules
1.6.4.2 Integrate Mission Planning with Command Generation, TSO and SPOC
1.6.4.3 Verify Mission Planning against Software Requirements
1.6.4.4 Validate Mission Planning GSIT 1 Requirements
1.6.5
Build for GSIT 2
1.6.5.1 Implement, Unit Test and Integrate Mission Planning Modules
1.6.5.2 Integrate Mission Planning with Command Generation, TSO and SPOC
1.6.5.3 Verify Mission Planning against Software Requirements
1.6.5.4 Validate Mission Planning GSIT 2 Requirements
1.6.6
Build for GSIT 3
1.6.6.1 Implement, Unit Test and Integrate Mission Planning Modules
1.6.6.2 Integrate Mission Planning with Command Generation, TSO and SPOC
1.6.6.3 Verify Mission Planning against Software Requirements
1.6.6.4 Validate Mission Planning GSIT 3 Requirements
1.7
Develop Instrument Monitoring and Calibration Software
1.7.1
Plan, Document and Review Instrument Monitoring/Calibration Requirements
1.7.2
Develop, Document and Review Monitoring/Calibration Architectural Design
1.7.3
Develop, Document and Review Monitoring/Calibration Detailed Design
1.7.4
Build for GSIT 1
1.7.4.1 Implement, Unit Test and Integrate Monitoring/Calibration Modules
1.7.4.2 Integrate Instrument Monitoring/Calibration
1.7.4.2.1 Telemetry Processing
1.7.4.2.2 SPOC
1.7.4.3 Verify Instrument Monitoring and Calibration against Software Requirements
1.7.4.4 Validate Instrument Monitoring and Calibration GSIT 1 Requirements
1.7.5
Build for GSIT 2
1.7.5.1 Implement, Unit Test and Integrate Monitoring/Calibration Modules
1.7.5.2 Integrate Instrument Monitoring/Calibration
1.7.5.2.1 Telemetry Processing
1.7.5.2.2 SPOC
1.7.5.3 Verify Instrument Monitoring and Calibration against Software Requirements
1.7.5.4 Validate Instrument Monitoring and Calibration GSIT 2 Requirements
1.7.6
Build for GSIT 3
1.7.6.1 Implement, Unit Test and Integrate Monitoring/Calibration Modules
1.7.6.2 Integrate Instrument Monitoring/Calibration
1.7.6.2.1 Telemetry Processing
1.7.6.2.2 SPOC
1.7.6.3 Verify Instrument Monitoring and Calibration against Software Requirements
1.7.6.4 Validate Instrument Monitoring and Calibration GSIT 3 Requirements
1.8
Support Environmental Testing
1.9
Support Spacecraft Integration
1.10 Support Launch, Deployment and Activation
1.11 Commissioning
1.12 POC Software Maintenance
37-71002
7
Revision B
TESS POC Software Development Plan
22/March/2016
3.6 Management of Quality Characteristics (f)
The POC team will manage key software quality characteristics of the POC software, including its reliability,
efficiency, maintainability and size throughout the software development process. The compliance of the POC
software with the TESS POC IT Risk Assessment and TESS POC IT Risk Mitigation plans will monitored.
The team will manage the quality characteristics by development phase (see Section Error! Bookmark not defined.)
as follows:
Phase
Characteristic
Strategy
Reliability
Review requirements for off-nominal behaviors such
as:
- Error conditions and handling
Efficiency
Review requirements for processing throughput
Requirements
Maintainability
Size
Architectural Design
Ensure comprehensive exception handling
Efficiency
Review for and mitigate bottlenecks and critical paths
Maintainability
Review architectural design for algorithm complexity,
design element coupling and cohesion, and design
element re-use.
Inspect design for error handling completeness
Efficiency
Rapid prototype critical paths and bottlenecks
Size
Ensure architectural design elements are clearly
visible within detailed design descriptions. Consider
use of source-file-based documentation (i.e. pydoc)
for generation of detailed design documentation.
Updated function point and SLOC estimates
Reliability
Test for:
- Proper handling of malformed inputs
- Memory Leaks
Efficiency
Where needed increase margin using performance
analyzers and code optimization. Periodically
evaluate actual resource margins.
Implementation/Unit/Integration
Maintainability
Size
In-code documentation reflecting relevant
architectural and detailed design decisions, peer
code reviews, adherence to project coding standards
and naming conventions.
Actual in-progress SLOC, complexity,
implemented/tested Function Points
Reliability
Error injection testing, limits testing
Efficiency
Performance characterization and measurement.
Maintainability
37-71002
Updated function point and SLOC estimates
Reliability
Maintainability
V&V
Perform initial function point and SLOC estimates
Reliability
Size
Detailed Design
Review requirements for clarity, consistency,
completeness and scope
Updated Maintenance Manual; as-built Design
documentation
8
Revision B
TESS POC Software Development Plan
Phase
22/March/2016
Characteristic
Size
Strategy
As-built SLOC, Complexity. Running verified
Function Points.
Table 3: Quality Characteristic Management Activities
3.7 Management of Safety, Security, and Privacy (g)
3.7.1 Safety
As of this writing, no software-related hazards have been identified on the POC software. The POC team will continue
to monitor hazard analyses and will revise this plan should software-related safety attributes arise.
3.7.2 Security
Although there is no NASA requirement for POC security, the POC software will be implemented to be compliant
with the TESS IT Security Risk Mitigation Plan.
3.7.3 Privacy
The TESS POC Software will not contain nor manage anyone's personal information.
Development machines will not ask for or require anyone's personal information and are discouraged for personal use.
3.8 Subcontractor Management (h)
TESS POC Software development does not anticipate use of subcontractors.
If and when subcontractors are employed, all relevant contractual requirements will be flowed down to the
subcontractors. The subcontractors will report to the POC software lead. All products developed and delivered by the
subcontractor under their contract will include source code and be the property of MIT. All products delivered by the
subcontractor will be subject to the same software assurance rules as the software developed at MIT/Kavli.
3.9 Verification and Validation (I)
The POC team performs various verification and validation activities throughout the software lifecycle. These activities are as follows:
Phase
Methods
Work Product(s)
Environments
Results/Records
Verified/Validated
Requirements - Traceability inspection
to higher level
requirements
- Content inspection by
software, systems
engineering, science,
and quality
- Risk-reduction
prototypes
- POC
Requirements
Specification
- Desktop/paper
review and
meeting(s)
- Prototyping
computer
environment
- Updated POC
Requirements
Specification
- Emails
- Review meeting
minutes
- Archived in
software version
control system
Architectural
Design
- Software Design
Description
(Architectural
Design Elements)
- Desktop/paper
review and
meeting(s)
- Prototyping
computer
environment
- Update POC
Design Descriptions
- Updated
Requirements
Traceability
- Emails
37-71002
- Traceability inspection
to software requirements
- Content inspection by
software, systems
engineering, science and
quality
9
Revision B
TESS POC Software Development Plan
Phase
Methods
22/March/2016
Work Product(s)
Environments
Results/Records
Verified/Validated
- Risk-reduction
prototypes of interfaces
and critical algorithms
Detailed
Design
- Traceability inspection
to architectural design
elements and
corresponding software
requirements
- Content inspection by
software, systems
engineering, science and
quality
- Risk-reduction
prototypes
Implementation - Traceability inspection
- Review meeting
minutes
- Archived in
software version
control system
- Software Design
Description
(Detailed Design
Elements)
- Code Stubs
- Desktop/paper
review and
meeting(s)
- Static analysis
- Prototyping
computer
environment
- Update POC
Design Descriptions
- Updated
Requirements
Traceability
- Updated Source
Skeletons
- Emails
- Review meeting
minutes
- Archived in
software version
control system
- Source code
- Desktop/paper
review and meetings
or on-line code
review tool
- Unit testing
- Software
integration testing
- Updated source
code
- Code review
reports
- Unit test reports
including coverage
- Module integration
reports
- Archived in
software version
control system
- Released code
packages
- Integration with
MAESTRO and
other ground system
elements
- Desktop for certain
types of inspection
and/or analysis
- Updated SW
Requirements
Verification Matrix
- SW Test Reports
- SW Inspection
Reports
- Software Problem
Reports
- Engineering
Change Orders
- Archived in the
TESS Configuration
Database
to design elements (via
code review)
- Content inspection by
software, systems
engineering, science and
quality
- Static code analysis
- Unit testing
- Continuous Integration
testing
V&V
- Execution of written
demonstration and/or
test procedures/scripts
- Quality inspection of
design/code
- Paper or numerical
analysis
Table 4: Software Life-cycle V&V Activities
3.10 NASA Involvement (j)
The NASA Goddard Space Flight Center (GSFC) is responsible for project management. The NASA Ames Research
Center is a responsible for the Science Processing Operations Center (SPOC), building on the heritage and expertise
developed for the Kepler mission.
37-71002
10
Revision B
TESS POC Software Development Plan
22/March/2016
NASA personnel will participate in all major software reviews (Requirements, Preliminary Design, Critical Design,
Test Readiness, Release) and will be invited to witness and provide expertise to software peer reviews.
NASA personnel will be granted access to all software requirements, design, code and test artifacts.
3.11 User Involvement (k)
Members of the science team will be intimately involved in the software requirements development, all major
software review, code review and verification activities. Some science team members will also be involved in the
software development in the POC.
Additionally, the science team will participate in validation activities to ensure the data produced by the instrument
meet the scientific objectives of the mission. The SPOC and the TESS Science Office will also be involved in the
Ground Segment Intea
3.12 Risk Management (l)
The POC team is responsible for managing all POC associated risks. The POC manager will maintain the risk
database and report all POC associated risks on a monthly basis to the TESS project and MKI management. Any POC
team member can submit a risk to the risk board (see below), all new risks will be reviewed and either accepted or
rejected. The risk board will meet on a ~monthly basis to review any new risks and status current risks. The POC
manager will be responsible for collecting risk updates from all of the risk owners prior to the risk board meeting.
If a new risk is accepted by the risk board, it will be submitted into the database by the POC manager with the
following information
-
Risk Title
-
Risk Statement
-
Context
-
Impacts
-
Likelihood / Consequence Ranking
-
Mitigation Approach
-
Mitigation Plan
-
Owner
-
Actions
-
Status
The POC risk board will be comprised of the POC Manager, software support staff, and a software assurance
representative. The risk board will review and report risks associated with the software development effort, at a
programmatic level (i.e. cost and schedule), a technical development risk level, and at a deployment and operational
level.
3.13 Security Policy (m)
The POC team will follow the TESS IT Security Risk Mitigation Plan.
All information subject to ITAR restrictions shall be restricted to US-persons only and retrieval will be passwordprotected.
3.14 Approvals Required (regulatory, certifications, proprietary, etc) (n)
As of this writing, no regulatory, certifications or proprietary approvals are required for the POC Software.
3.15 Process for Scheduling, Tracking and Reporting (o)
Software scheduling, tracking and reporting is managed at the instrument project management level, with inputs from
37-71002
11
Revision B
TESS POC Software Development Plan
22/March/2016
the POC team.
These inputs are generated using the following steps:
1. Identify the key tasks and activities related to each phase of the development and maintenance effort (use
module place-holders prior to the architectural design phase)
2. Estimate the time required to perform a given activity based on prior experience
3. Assign resources to the activity
4. Revise the time estimate, as needed, based on the resource(s) assigned
5. Add margin to handle uncertainties in the estimate (the margin will vary depending on the uncertainty)
6. Upon refinement of the architectural design, update the task list and estimates accordingly
7. Present the estimates to instrument team management for integration into the master schedule
Schedule tracking consists of periodic progress updates along each of the key tasks, reporting to instrument team
management for updates to the master schedule. During planning, requirements development and architectural design
stages, these updates will be rough estimates of completion of the related data products. During detailed design,
implementation and test, these estimates will be based on requirements burn-down tracking, scaled against the relative
complexity of the related modules (for example, if we've implemented 5 of 10 requirements but the estimated
complexity of the remaining 5 requirements is twice that of the first five, software would report 33% progress on the
implementation).
The instrument team managers integrate the inputs from the software development team and periodically report the
master schedule to NASA.
3.16 Training (p)
No formal project specific training has been identified or expected beyond the experience and qualifications of the
POC personnel. Informal project-specific equipment training will occur between team members on an as-needed basis.
We do not currently expect to maintain formal records of this training.
In the unlikely event POC personnel are required to come into physical contact with flight hardware (normally, trained
technicians perform all physical operations on flight hardware, including cabling and wiring), the project will provide
proper handling and static-control training and will require this training prior to granting physical access to the flight
hardware. Access to development hardware will require informal one-on-one static-control training and setup by a
qualified technician.
3.17 Software Life-Cycle Model (q)
3.17.1
Overview and Rationale
The software development environment provided by the POC will support a formal software lifecycle from design
through maintenance of maintenance of mature production modules.
The Software Development Methodology will follow an iterative software development cycle with rapid prototyping
of key elements. The software will be released at pre-determined milestones to assess build status and quality. Each
release will build on new functionality of the previous release. The various stages of the software lifecycle are
described in the following subsections.
3.17.2
Requirements Definition
The objective of this phase is to identify and generate meaningful requirements for the specific system being
considered. This phase begins with the decomposition of the relevant TESS Mission Requirements Document (MRD)
and leads to the generation of a Software Requirements Document for the POC.
This phase is typically done once for a system regardless of the number of iterative build cycles it goes through
although the requirements will be reviewed and updated as the TESS Project evolves. In each build cycle, the
37-71002
12
Revision B
TESS POC Software Development Plan
22/March/2016
requirements that are to be satisfied by the software development in that cycle are identified. In situations where the
development in a given build cycle will not fully satisfy the requirement, the level of compliance to the requirement
that is to be expected upon completion of the build cycle will be documented.
3.17.3
Preliminary Design
The objective of this phase is to define the system and software elements from the system requirements. The basic
subsystem and software design elements and requirements are generated and documented during this build phase.
Additionally, a Verification Plan will be developed during this phase. The Preliminary Design phase is completed with
an internal Preliminary Design Review (PDR).
Design artifacts will be captured and documented in the Architectural section of the Software Design Document. The
Software Design Document will be documented and considered “preliminary” by PDR.
3.17.4
Detailed Design
The objective of the Detailed Design phase is to fully define the systems, subsystems and software elements from the
requirements. The system, subsystem and software design elements and descriptions are documented during this
phase. System level test planning will be performed during this phase and a draft system level test plan should be
generated for approval. The Detailed Design phase is completed with an internal Critical Design Review (CDR). Key
elements of the design should be identified and considered for rapid-prototyping.
New CSCIs (not previously released) will utilize both a Preliminary and a Detailed Design phase. The Software
Management Plan (SMP) allows that the Maintenance Release Lifecycle will be utilized for software that has been
previously released.
Software maintenance modifies the software development lifecycle to allow Preliminary and Critical Design Reviews
to be compressed into a single Design Review. This single Design phase is repeated for each build cycle to update the
design based on changing requirements and Software Problem Reports (SPRs) filed on earlier versions of the system.
3.17.5
Software Development
The Software Development phase begins after a Critical Design Review (CDR) for that CSCI has been completed and
the design developed in the Detailed Design phase has been approved. In practice, a significant amount of software
development typically begins in the requirements definition phase to determine the scope of requirements and to
evaluate prototype designs.
This phase includes software development and coding for all relevant Computer Software Configuration Items
(CSCIs) identified in the design. In addition to the software development, the Verification Plan will be finalized and
test procedures for the system will also be developed. The Software Development phase ends with all the subsystem
CSCIs being brought under baseline configuration and ready to begin formal testing as specified in the related test
plans and procedures.
POC software development will be iterative. Builds will be delivered at pre-planned milestones that allow for
incremental testing and verification. Building iteratively allows for the addition of phased functionality built on a
proven prior build.
Software development includes any informal/formal peer review process either prior to code check-in or at code
commit. Scheduled code reviews occur as needed.
Automated builds occur via the Jenkins build system when code is checked-in the source code repository. The
automated build ensures that code components compile, build and pass unit test (aka smoke test). Then an overall
build is smoke tested with a small amount of science data to exercise the build and look for failures.
Defects are logged using the a bug tracking system and go through a standard review, resolution, fix, test, verify, close
workflow.
Builds are identified by a three digit numbering scheme (A.B.C) where A indicates a major release (new requirements,
architecture, functionality), B indicates a minor release (new functionality or some design changes) and C indicates
bug fixes. For example, the first release of the POC software would be identified as POC v1.0.0. Code and builds
identified for release are tagged accordingly in the software repository for SCM purposes.
37-71002
13
Revision B
TESS POC Software Development Plan
22/March/2016
Builds and branches in the software repository go hand-in-hand when maintaining the software and the following
branching strategy is used by the POC:
•
Once development completes for the first release, the release 1.0 branch is created
•
During V&V, fixes are committed to the release 1.0 branch
•
Once V&V completes, the release 1.0.0 tag is created and deployed to ops
•
If a fix is committed to the release 1.0 branch, then the release 1.0.1 tag is created and deployed to ops.
3.17.6
Software Testing
The Software Test phase begins once the development phase has been completed and a development baseline has been
established under configuration management for the CSCI. A Test Readiness Review (TRR) is held to determine that
the CSCI is ready to begin formal testing as outlined in the Verification Plan and Test Procedures. Formal testing
occurs during this phase, tests are performed, data are acquired, discrepancies documented, test results are
documented, results and data are reviewed, and formal test reports are generated. Formal data reviews are also
performed during the software test phase.
If changes to the software are required to correct discrepancies, the following steps shall be accomplished:
1. The modified sections of software shall be documented along with the description of the discrepancy using
the POC software problem reporting system.
2. The affected software shall be re-integrated into the affected system and a new baseline or revision
established.
3. A delta Test Readiness Review (TRR) activity shall be performed to establish the extent that previous testing
has been invalidated, and what regression or new testing is required.
The delta TRR activity should address the reuse of test information, retests required and modifications to the test
methodology. These revisions to the CSCIs and the results of the delta TRR activity shall be documented in the
appropriate locations (design documents, test plans and test reports).
Concerning Unit Testing, each developer performs unit testing of their code before or during the code check-in
process, however no deliverable artifacts from the unit testing are saved. Recording and reporting these results would
result in non-trivial additional efforts. A TRR checklist step to verify that the developer(s) have completed unit testing
may be implemented instead.
As stated earlier, the POC performs unit and smoke tests with each build via the automated build system. Verification
and Validation occurs prior to releasing/deploying the build. This occurs with a subset of the overall science data (as
using a full set requires an extensive amount of time). SQA witnesses all V&V testing events.
Testing and V&V between segments and elements must also occur and is witnessed through TESS Ground Segment
Integration Tests (GSITS) at defined milestones. Again, SQA witnesses all V&V GSIT events.
3.17.7
Software Delivery
The Software Delivery phase consists of preparing the CSCIs, associated documentation, test reports, and other
deliverable software items into media that is ready for distribution and installation. A final review/audit of the system
level documentation package and generation of the Media Release along with bringing the final version of all CSCIs
under Configuration Management shall be preformed during this phase.
Deployment of the software to the POC will follow a defined Standard Operating Procedure managed by the POC.
3.18 Configuration Management (r)
This section describes the software configuration management and how it maps into the overall TESS Configuration
management system, described in the “TESS Configuration Management and Review Process” specification (MKI/3711001.11). It is intended to satisfy the requirements for the Software Configuration Management Plan (CMP) and
follows the overall CMP structure outlined in NPR 7150.2a, Section 5.1.2.1.
37-71002
14
Revision B
TESS POC Software Development Plan
3.18.1
22/March/2016
Project Organization (r.a)
The POC configuration management consists of the Configuration Control Board (CCB) identified in the “TESS
Configuration Management and Review Process” (MKI/37-11001.11), augmented with the lead software engineer, the
responsible developer and software quality representation. This board reviews and approves all POC software
documentation and products prior to release for use outside the development team.
3.18.2
Responsibilities (r.b)
As described in the “TESS Configuration Management and Review Process” (MKI/37-11001.11), the CCB is
responsible for review, discrepancy and comment tracking and disposition, and release of all software products prior to
use.
3.18.3
Policies and Directives (r.c)
The software configuration management is governed by the internal MIT/Kavli configuration management policies
and by the “TESS Mission Assurance Requirements” (MAR) (MKI/37-10001).
3.18.4
Functions and Tasks (r.d)
3.18.4.1
Part Identification
The team will assign a part number of each software item, consistent with the convention outlined in the TESS
Configuration Management and Review Process (MKI/37-11001.11). The team will maintain a file or portion of a
document (such as an Appendix in the POC Software Design Specification) that maps the association between a given
part number and corresponding file, package, etc. Additionally, where appropriate, the part number will be contained
within the relevant document, source file, etc.
3.18.4.2
Configuration Control
During the development process, prior to release to TESS project configuration management, the software
development team will use a software version control system (e.g. git) to manage and maintain in-progress softwarerelated artifacts (i.e. on-line documentation, code, unit tests, build scripts, etc.). Formal configuration management
begins for a software element when a Level 4 requirement is met.
Once the software is prepared for release to TESS project configuration management, it will adhere to the processes
and procedures described in the TESS Configuration Management and Review Process (MKI/37-11001.11). Released
software and software artifacts require the review and approval of the TESS Configuration Control Board. While
versions of the software source artifacts will exist in the configuration management, the POC team will maintain the
build copies in the software version control system.
To this end, the team will utilize branch facilities of the version control system to maintain a record of all committed
edits to software development products as follows (note: additional development and staging branches are allowed as
needed so long as they don't interfere with the names listed below):
master (git) – In-progress development branch, developers have relatively unrestricted permission to commit to this
branch, with the warning that a continuous integration build/test system and automated metrics collection may occur
on this branch and commits that break a build may bring the ire of their co-workers.
GSIT Builds – This acts as a staging branch for candidate POC software releases for the purposes of a Ground
Systems Integration test. Software placed in this branch will have undergone some level of peer review, unit testing
and integration.
Launch Build – Copy of source code, build files and test scripts released to TESS project configuration management.
Software will be placed into this branch only after approval by the CCB via the TESS Configuration Management and
Review Process (MKI/37-11001.11).
Maintenance Builds – Maintenance Builds will be produced in accordance with the POC Software Maintenance Plan.
release_01 through release_99 – Numeric versions of software prior to release to configuration management
37-71002
15
Revision B
TESS POC Software Development Plan
22/March/2016
release_A through release_ZZZ – Letter releases where the letter matches the version maintained in the TESS
Configuration Database.
3.17.4.3 Status Accounting
The instrument project engineer and configuration manager track and provide status information concerning Engineering Change Orders (ECOs) pending review, review schedule, open items from the review, and closure,
release and distribution of the products included in the ECO. Software items released under instrument projectlevel configuration management will be included in the status tracking.
3.17.4.4 Configuration Audits and Reviews
The quality assurance team will perform periodic audits and reviews of the configuration management system
for the project as a whole, typically around major reviews and releases. Software items released under instrument
project-level configuration management will be included in these audits and reviews. Software quality assurance
will perform audits and reviews of pre-released software items with the software version control system on an
ad-hoc basis.
3.18.5
Sequence and Coordination (r.e)
The overall sequence of events during each phase of the effort is as follows:
1. Develop a software element (i.e. requirements spec, design spec, code+unit test, etc)
2. Commit intermediate versions to the electronic version control system
3. When ready, and if not already assigned, request a part number for the element and follow the TESS
Configuration Management and Review Process (MKI/37-11001.11) to release the element.
4. Once approved and if the element is final for a Build, merge into the appropriate Build version control branch
or pre_patch branch.
5. Once a CSCI for a Build has been released, coordinate with systems engineering and science on validating
interfaces with other Ground System or Instrument elements.
3.18.6
Resources (r.f)
The POC team will internally utilize electronic version control system, likely GIT, and an electronic defect tracking
system, likely Trac. This version system will require hosting on an MIT/Kavli server, with password-protected or key
network access. Official, distributed versions of data products are managed in the existing TESS Configuration
Database on the existing database server.
The general procedure is developers periodically commit working copies of software elements to the electronic
version control system, providing log information identifying the reason for the submission. When ready for release
to configuration management, the developer follows the engineering change procedure described in Section 3 of the
“TESS Configuration Management and Review Process” document (MKI/37-11001.11).
3.18.7
Plan Maintenance (r.g)
The POC team will review and revise this and the rest of the development plan as needed, typically around major
system reviews such as PDR and CDR. If changes are warranted, the team will use the review and release described
earlier to submit the updates to the main TESS Configuration Database.
3.18.8
Release Management and Delivery (r.h)
Prior to formal verification and validation testing, the POC team will create a Software Version Description document
and build and distribute a software package. The team will release the package using the standard TESS Configuration
Management and Review Process (MKI/37-11001.11). The distribution package will be maintained in electronic form,
37-71002
16
Revision B
TESS POC Software Development Plan
22/March/2016
in the TESS Configuration Database and/or software version control system.
When ready, the released package will be installed onto the operational TESS POC computers.
3.19 Software Documentation Tree (s)
Figure 1 identifies the planned software documentation for the TESS POC Software. Boxes in blue/gray are nonsoftware documents, green are the planned software documents. Where we plan for separate documents or sections for
each POC CSCI . In cases where multiple documents are planned (such as procedures, reports, etc), the annotation is
redundant and is assumed for all CSCIs.
Figure 1: Software Documentation Tree
3.20 Software Peer Review Process (t)
During the development process, prior to release to TESS project configuration management, the software review
process for documentation, code, tools and test reports will be informal and ad-hoc between developers and other team
members. Early review of documentation, code, tools and tests by non-MIT personnel will be at the discretion of the
37-71002
17
Revision B
TESS POC Software Development Plan
22/March/2016
POC manager.
In preparation for release of software documentation, code, tools, test procedures and reports, the peer review process
follows the procedure outlined by the TESS Configuration Management and Review Process (MKI/37-11001.11).
3.21 Test requirements affecting design decisions (u)
The software and science team will identify any test requirements that drive software design decisions by outlining the
test approach for each functional and interface requirement within the software requirements specification. Part of the
risk reduction strategy during requirements development will involve prototypes of high-risk requirements – this will
apply to identified test strategies within the requirements specification.
3.22 Software metrics (v)
During software requirements elaboration activities, the POC team will attempt to assess requirements volatility by
maintaining a count of the number of software requirements, and at each requirements review, note the number of
requirements that have been added, removed or modified (beyond typographical and editorial changes) since the
previous release. After the initial baseline requirements are under Configuration Management control, when the
number of requirements added, deleted or modified exceeds 33% of the previous release, software requirements
volatility will be flagged as a risk and the engineering, and if needed, science team members will meet to assess
possible causes and corrective actions.
During software architectural design, the team will attempt to measure the design complexity by tracking the number
of modules, number of interfaces provided by each module, and estimate the function points provided by each. The
team will also track the progress against the requirements, tracking the number of requirements addressed scaled by a
complexity estimate for each requirement.
During software detailed design, implementation and unit testing, the team will periodically measure and report, likely
through automated tools, the following:
1. Source lines of code (SLOC)
2. McCabe Complexity (number of paths through any given function)
3. Number of implemented requirements
4. Code coverage percentage from unit tests
5. Number of modules reviewed and released to Configuration Management
6. Estimate of memory usage
7. Estimate Processing time.
8. Estimate of communications bandwidth utilization
During Verification and Validation, following a release, the team will periodically measure and report:
1. Number of verified requirements
2. Number of defects opened
3. Number of defects resolved
4. Number of deferred defects
3.23 Content of software documentation (w)
With minor exceptions, the software documentation content and basic structure will follow the outlines provided in
NASA NPR 7150.2a, Chapter 5.
Exceptions include products not required by the software classification indicated in the TESS Mission Assurance
Requirements (MAR) (MKI/37-10001), and deviations from the “TESS Configuration Management and Review
37-71002
18
Revision B
TESS POC Software Development Plan
22/March/2016
Process” (MKI/37-11001.11), where the TESS plan and Engineering Change Order structure will take precedence over
the structure provided by NPR 7150.2a.
3.24 Management approach for COTS, GOTS, MOTS, FLOSS (x)
For all commercial, government, modified off-the-shelf software, and free/libre open source software included in the
instrument flight software, the POC team and management will:
1. Identify requirements to be met by the acquired software. This will typically be identified in the Software
Design specification.
2. Ensure that sufficient documentation is provided with the software to operate and properly utilize the
acquired software. This will be via references from the Software Design specifications to the relevant product
documentation that describes how one uses the software to achieve the desired behavior.
3. Ensure that proprietary, licensing and usage rights are addressed prior to delivering the software. The
Software Version Description documentation will contain any necessary licensing information and flowdowns (for example, the GNU Public License, GPL, would require all linked software to adhere to the
license).
4. Identify support for the software product through the planned life of the program. When source code is
provided with the product, the support may be through the instrument maintenance activities. If source is not
provided, the Software Version Description documentation will contain contact information for the relevant
support organizations.
5. Ensure that the software is verified and validated to at least the same level of confidence required by the inhouse developed POC software, with the exception of unit testing, code reviews and dead-code removal. This
will be accomplished through acceptance tests of the delivered software and inclusion of the software in the
overall verification and validation activities for the system.
37-71002
19
Revision B
TESS POC Software Development Plan
Appendix A
37-71002
22/March/2016
Sample Development Phase Checklists
20
Revision B
TESS POC Software Development Plan
22/March/2016
TESS POC Software Development Phase Completion Checklist
Originator:
Last Modified
Date:
Reviewer:
Planning
Released POC Software Development Plan
Released POC Software Assurance Plan
Updated Software Elements of Master Schedule
Requirements
Released POC Requirements Specification
Released POC Data Dictionary (initial)
Initial Function Point/SLOC Estimate
Update Resource Margin Estimates
Architectural
Design
Released Command Gen. Design Description (Architectural Design Component)
Released Telemetry Processing (Architectural Design Component)
Released Mission Planning Design Description (Architectural Design Component)
Released Instrument Mon/Calib Description (Architectural Design Component)
Update Function Point/SLOC Estimate
Update Resource Usage Estimates
Released Command Generation Test Plan
Released Telemetry Processing Test Plan
Released Mission Planning Test Plan
Released Instrument Monitoring/Calibration Test Plan
Preliminary Design Review
Detailed Design
Updated Command Generation Design Description and Class/Function Stubs
Updated Telemetry Processing Design Description and Class/Function Stubs
Updated Mission Planning Design Description and Class/Function Stubs
Updated Instrument Mon/Cal Design Description and Class/Function Stubs
Released Maintenance Plan
Update Function Point/SLOC Estimate
Update Resource Usage Estimates
Critical Design Review
37-71002
21
Revision B
TESS POC Software Development Plan
22/March/2016
TESS POC Software Development Phase Completion Checklist
Implementation/Unit/Integration Build1 (repeat for Builds 2 and 3)
Released Build 1 CG Modules and Unit Test Complete
Released Build 1 TP Modules and Unit Test Complete
Released Build 1 MP Modules and Unit Test Complete
Released Build 1 IMC Modules and Unit Test Complete
Build 1 Integration Complete
Released Build 1Verification Procedures/Scripts
Dry-Run Build 1 Verification Passes
Build 1 Validation Procedures Complete
Released Build 1 POC Software User's Guide
Updated Software Metrics Report (includes measured Function Points/SLOC)
Updated Resource Margins
Build 1 Readiness Review
Verification and Validation Build 1 (repeat for Builds 2 and 3)
Released Build 1 CG Test and Inspection Reports
Released Build 1 TP Test and Inspection Reports
Released Build 1 MP Test and Inspection Reports
Released Build 1 IMC Test and Inspection Reports
Release As-Built CG Design Description
Release As-Built TP Design Description
Release As-Built MP Design Description
Release As-Built IMC Design Description
Closed/Resolved/Deferred/Waived Software Problem Reports
Closed/Resolved/Deferred/Waived Software-related Engineering Change Orders
Release Updated Maintenance Manual (if needed)
Build 1 Acceptance Review
Software Maintenance (on-going through decommissioning)
Complete Support of Systems Integration/Environmental Test/Deployment
Release Updated Design Documentation As-Needed
Release Version Description Documents and Patch/Load Images As-Needed
Release Updated User's Guide As-Needed
37-71002
22
Revision B
TESS POC Software Development Plan
22/March/2016
TESS POC Software Development Phase Completion Checklist
Release Updated Maintenance Manual As-Needed
Closed/Resolved/Deferred/Waived Software Problem Reports
Closed/Resolved/Deferred/Waived Software-related Engineering Change Orders
Table 5: Software Development Phase Completion Checklist
37-71002
23
Revision B
TESS POC Software Development Plan
Appendix B
22/March/2016
Sample Software Review Checklists
POC Software Requirements Review Checklist (per CSCI)
CSCI Identifier/Revision:
Checklist Last Modified Date:
Checklist Reviewer:
Reviewers include (at least):
Author(s)
Software
Systems
Digital Electronics
Science
Quality
Traceability:
Trace from S/W to TESS Level 3 Requirements
Trace from S/W to TESS POC Requirements
Trace from S/W to TESS to ICDs (SPOC, MOC)
Matrix Template for TESS POC Design Description
Verification:
Methods (demonstration, test, inspection, analysis)
Approach Description
Check for:
Conformance to NPR 7150.2a
Clarity/Consistency/Completeness
Bounds / Resolution / Precision (where applicable)
Off-Nominal Behaviors
Resource utilization (by resource)
Error Conditions
Risk Management
Risk Identification/Classification/Assessment/Prototypes
POC Software Architectural Design Review Checklist (per CSCI)
CSCI Identifier/Revision:
37-71002
24
Revision B
TESS POC Software Development Plan
22/March/2016
POC Software Architectural Design Review Checklist (per CSCI)
Checklist Last Modified Date:
Checklist Reviewer:
Reviewers include (at least):
Author(s)
Software
Systems
Quality
Traceability:
Trace from Design to CSCI Requirements Specification
Trace from Design to CSCI Data Dictionary
Populated CSCI Requirements to Design Matrix
Matrix Template for Detailed Design Elements
Design Elements
Conformance to NPR 7150.2a
Information and Control Structure and Decomposition
External Interface Descriptions
Exception Handling
Detailed Design Component Identification and Description
Internal Interface Identification/Descriptions
Language(s)/Operating System/Library Selection
Coupling/Cohesion Assessment
Code Preparation
Code Standards and Practices, including style guidelines
Source File Templates
Development File System Layout
Develop Detailed Design Review Checklist
Develop Code Review Checklist
37-71002
25
Revision B
TESS POC Software Development Plan
Appendix C
37-71002
22/March/2016
NPR 7150.2a Compliance Matrix
26
Revision B
Download