MDA Software Acquisition 101
Boehm Center for Systems and Software Engineering Annual Research Review
By: Dan Strickland
MDA/DOC Software SME
Missile Defense Agency
Cost Estimating Directorate
June 7, 2023
DISTRIBUTION STATEMENT A. Approved for public release; distribution is unlimited.
Approved for Public Release 18-MDA-9517 (21 Feb 18)
Overview
2
What Is Software?
3
Software Development
System Engineering Processes Using integrated HW and SW as an answer to system-level requirements; SEPM costs
Software Engineering Processes
Developing and testing SW to match the SW Design; SW costs
System Software Engineering Processes
Development and testing of SW Requirements; usually SW costs
CSCI
4
Software Development – Requirements Analysis
What Does A Requirement Look Like?
Functional Requirements:
Statements of services the system should provide, how the system should react to particular inputs, and how the system should behave in particular situations
“The user shall be able to search either all of the initial set of databases or select a subset from it.”
“The system shall provide a unique identifier to every object detected.”
Non-Functional Requirements:
Constraints on the services or functions offered by the system such as timing constraints, constraints on development process, standards, etc.
“The system shall not disclose any personal information about users apart from name and reference number to operators of the system.”
“The display shall provide a response to user requests for refresh within 0.25 seconds.”
Requirements should be understandable, unambiguous , comprehensive, complete, concise, and testable
CSCI
Software Build
5
Software Development – Software Architectural Design
CSC
What Does Top-Level Design Look Like?
Despite significant industrial
and research activity in this area,
there is no single, accepted
framework for codifying
architectural
thinking
For Every CSCI:
12207 Activities
Top-Level Design Examples:
“A single module called ERRMON will handle communication faults.”
“A single module called PRNTMGR will manage communication with the printer.”
CSCI
Software Build
6
Software Development – Software Detailed Design
CSU
What Does Detailed Design Look Like?
For Every CSCI:
12207 Activities
CSC
CSCI
Software Build
Pseudocode | Ada95 | C++ |
“If checksum (sent) <> checksum (computed) , then request retransmission.” | if checksum (txt_sent) /= checksum (txt_computed) then req_retrans(); end if;
| if (checksum (txt_sent) != checksum (txt_computed)) { req_retrans(); } |
7
Software Development – Software Construction
CSU
What Does Code Look Like?
For Every CSCI:
12207 Activities
CSC
CSCI
Software Build
Ada
Java
Assembly
8
Software Development – Software Integration
CSU
What Does Integration Look Like?
For Every CSCI:
12207 Activities
CSC
CSCI
Software Build
Testing examples:
9
Software Development – Software Qualification Testing
CSU
What Does Qual Test Look Like?
For Every CSCI:
12207 Activities
CSC
CSCI
Software Build
Qualification Methods
10
Software Development – Support Processes
SW Document Management
Develop and maintain the recorded software information produced
SW Configuration Management
Establish and maintain the integrity of the software items and make them available to stakeholders
SW Quality Assurance
Provide assurance that the products and processes comply with the predefined plans and thresholds
SW Verification
Confirm that the software work products and/or service of a process or project properly reflects the specified requirements
SW Validation
Confirm that the requirements for the a specific intended use of the software work product are fulfilled
SW Review
Maintain common understanding with the stakeholders of progress against the objectives of the agreement
SW Audit
Independently determine compliance of selected products and processes with the requirements, plans, and agreement
SW Problem Resolution
Ensure that all discovered problems are identified, analyzed, managed and controlled to resolution
11
Software Artifacts
Describes the developer’s plans for conducting the SW Development effort; includes processes, plans, standards, tools, etc. “One stop shop” for the software development process.
Software Development Plan (SDP)
Virtual or physical container of all the CSCI artifacts (requirements, designs, source code, test plans, trouble reports, reviews, etc.). Find everything about the CSCI here.
Software Development Folder (SDF)
Written description of the architecture and detailed design of the CSCIs. Shows how the code is planned to match the requirements. This is the framework for the code.
Software Design Description (SDD)
Documents the essential requirements (functions, performance, attributes, etc.) for a given CSCI. This is what the software has to do.
Software Requirements Specification (SRS)
Documents the required interfaces for the CSCI inside and outside of the system. This is how the software has to communicate.
Interface Requirements Specification (IRS)
Describes the test preparations, test cases, and test procedures to qualify a CSCI or software system. This is the checklist for making sure the requirements are done.
Software Test Description (STD)
In MDA, the periodic (usually monthly) delivery of contractor software development data for analysis (e.g. Requirements Volatility, Turnover Rate, Computer Network Utilization). Should be compliant with the MDA Assurances Provisions (MAP) Rev B Core Metrics.
Software Metrics
DI-IPSC-81427B
DI-IPSC-81433A
DI-IPSC-81434A
DI-IPSC-81435A
DI-IPSC-81439A
12
Software Development Methodologies
Methodology | Description | Benefits | Risks |
Waterfall | A single “stage-gate” pass through the SW Development V-cycle with a single, qualified build |
|
|
Incremental | Multiple passes through the SW Development V-cycle producing multiple, qualified builds of increasing capability |
|
|
Spiral | Multiple iterations of prototype development to drive down risk and meet stakeholders’ needs without firm design |
|
|
Agile | Quick, time-boxed SW products demonstrated to a product owner with features driven by an open, ordered backlog of requests |
|
|
13
Software Acquisition
The Software Engineering (CES) mission is to provide leadership in the discipline of software engineering within MDA and to define, assess, and support software engineering activities to ensure development of secure, reliable and maintainable MDA software.
CES provides software acquisition expertise in missile defense solicitations; conducts independent assessments of BMDS software; defines MDA policies and establishes processes for software acquisitions; assesses mission critical and support software indicators to include cost, schedule, requirements, quality, and environment; evaluates software independent verification and validation, software assurance, and software reliability efforts; documents lessons learned and best practices for future acquisition models; and provides software acquisition training for MDA.
If you need to find answers, data, or artifacts associated with a program, coordinate with CES or their identified program element software leads
14
Software Maintenance
Software Maintenance, or Software Sustainment, is the continual process of modifying existing software without changing its primary functions
Type | Examples |
Corrective |
|
Perfective |
|
Adaptive |
|
Enhancement |
|
Requirements arrive cyclically over time
Not all problems are “software defects”
The architecture and design exist, but will evolve
The owner may decide not to correct all known defects
The user may not install the new release
Characteristics of Software Sustainment
Types of Releases
15
Software Estimation
16
Resources
17