Each CSCI shall
have an individual SDP to identify the organizations, resources, facilities,
schedules, etc.
1. This plan
shall be used for the development of software for the name of project project;
2. Beneficial
comments (additions, deletions, etc.,) on this plan will be welcome;
3. The objectives of this
document are:
Include a
table of contents here
Complete the SDP using Software Development Plan DID
and documentation standard as a guide.
See DID list for other software documents to be
prepared.
Many process documents and templates
are now available in
.pdf format:
See PDFDOCUMENTS.
This Software Development
Plan (SDP) establishes the plan for the development of CSCIs and
non-deliverable software for the name of project project.
Provide a
brief summary of the system in which the software (CSCIs, etc.,) will reside.
This SDP has
been prepared in accordance with the requirements defined in the 'Software Development Standard' to provide direction,
monitoring, and surveillance during the Engineering and Management Development
phase(s) of the CSCIs and non-development software for this project.
If the software for the project is to be developed in a distributed manner,
this SDP will provide a common standard to be applied at each of the
participating suppliers as well as to the external sub-contractors to design,
develop, integrate, and test software to be used by the project.
This SDP has been prepared as demanded by the 'System/subsystem specification'
and 'Statement of Work' when applicable.
This SDP meets
the requirement as defined in the 'Systems Engineering
Management plan' (SEMP) and will be used in conjunction with the 'Configuration Management Plan' (CMP), 'Technical
Documentation Standard', and other speciality program plans for the management
of the software development for the project.
The acquirer
identified standards are listed here:
Identify
here any project standards being provided to support this plan
In the event of
conflict between the text of this SDP and its supporting documentation to the
referenced documents in the above paragraphs the text of the supporting
documentation shall take precedence E&OE.
Copies of the Standards
documents and other documents shall be available from the project library or
project configuration control.
State the type of
software and any attributes e.g., safety critical, etc.
Documentation
prepared will be in accordance with the 'Technical Documentation Standard'.
Identify the
phase of the development life cycle the project is at the preparation or update
of the SDP.
Specify the
acquisition strategy e.g., grand design, incremental, evolutionary (see
MIL-STD-498 for other strategies).
The software
development process will be in accordance with MIL-STD-498.
An incremental
build strategy will be employed.
The plans for software
development are
As defined in
the SDS the system/software life cycle comprises of a number of phases. See system/software life cycle
In general, substantial overlap between these activities will be necessary to
accommodate the use of structured analysis and design methodology which will
employ an incremental, iterative approach to analysis, design, coding,
integration and testing.
The following lists the deliverable documents:
Once the SDP
has been released, the software development manager shall be responsible for
preparing a monthly status report and forwarding it to systems engineering
management. The status report shall include a schedule identifying the baseline
plan, progress, and plan to completion.
It will also include a summary of the management indicators, including:
If this is no
significant deviation from the baseline plan (Engineering
Program Plan), it will also include a variance analysis and a list of
planned corrective actions. The status report will also include "lessons
learned" and process feedback when available.
Memory utilization budgets will be kept current and included in the monthly
provided status reports. Defect tracking information (metrics), including the
number of defects, defect rate, time between failures. and time to repair will
be included in the status reports once the job has entered the coding phase.
The code of
practice, work instructions, and any clarifications and restrictions applicable
to the methods and tools chosen for the project shall be defined in the Software Engineering Manual. Documentation being prepared
for the project shall be in accordance with the 'Technical
Documentation Standard'. The following identifies details guide-lines for
the software products:
Software Development Files (SDF) shall be used to
record, monitor and control activities during the detailed design, software
unit coding and testing phases of the software development. The software
engineering personnel shall create an on-line SDF for every Software Unit,
aggregates of units, and CSCI being developed for the project.
The SDFs shall provide a centralized and accessible collection of data
pertaining to the requirements, design data, schedules, coding, and testing of
software units and aggregates of units. These SDFs will be used for progress
assessment and quality control by software management.
In particular, SDFs shall be used to incrementally collect the requirements
data, design data, informal test data, and audit data for all the planning and
data files that comprise the Software Units and aggregates of Software Units.
Each SDF shall contain information that is relevant to the software units
development, either directly or by reference, providing a uniform and visible
collection point for all data and code. An example on the contents of SDFs are
provided in the 'Documentation Standard'.
SDF will be opened when the associated component enters detailed design.
A structured
design approach will result in the following:
To be continued
All deliverable
source code shall be developed in HOL Language and will conform to the
coding standards defined in the Software Engineering
Manual.
All software
identified as safety critical will be developed using DEF STAN 00-55 as
guidance.
Software
designed and developed for testing, simulation, support, etc., of the
deliverable software will be produced using the same plans and procedures with
the exception that an alternate coding language, design language, method or
tools may be approved.
All documentation shall be prepared, changed or revised in accordance with the 'Software Documentation Standard'.
However the Software Configuration Management and Software Product Evaluation
shall be performed in accordance with this SDP.
This section
contains the plans for performing detailed software development activities.
Details of the
overall software requirement for the project, that is, deliverable software,
non-development software, etc., will be identified and any build strategy
defined or discussed.
The initial
issue and any subsequent revision will be presented to the acquirer for his
approval.
A Software Test
Plan (STP) will be prepared in accordance with the STP
data item description. The STP will describe the various aspects of CSCI
test planning including the CSCI test environment definition, personnel, test
identification, test schedules, and test traceability to software requirements.
System test
planning should be documented in a 'System Test Plan' in
accordance with the 'Systems Engineering Management Plan'.
All software
plans prepared are intended to be "living' documents and as such revisions
will be prepared with the latest estimated information.
The following
shall provide a description of the plan to establish the hardware, and software
resources necessary to perform the software engineering activities.
Pment library
will be implemented to store and archive oaa software items, supporting files,
test result files, and documentation created during the software development
life cycle.
The library will be
maintained by the configuration controller, and will include:
Software
development files will be maintained
Non-deliverable
software will be developed when necessary to the process defined in
MIL-STD-498.
System
requirements analysis will be performrd in accordance with the tasks defined in
the Technical Management Plan.
See Job descriptions for personnel.
System level testing
will be the joint responsibility of systems engineering and an independent
quality assurance authority. The software shall have been formally released
from configuration control with support from software engineering when
necessary. The purpose of system level testing is to verify that all the
integrated hardware and software (subsystems) meets the system/subsystem
requirements specified in the system subsystem specification(s).
An illustration
of the organizational structure is provided by Software
Configuration Management structure.
Software Configuration
Management (SCM) shall be provided on an as needed basis. It should have an
independent reporting chain through to the Technical Director of a supplier.
See Job descriptions for personnel.
The remaining
part of this paragraph may be documented separately in a Software Configuration Management Plan.
As the software
development life cycle progresses the software design descriptions will be
reviewed and entered into the developmental configuration. All changes to these
documents shall be controlled by formal change methods.
The following provides a minimum list of documents to be entered into the
developmental configuration:
The
developmental configuration shall be established by the first engineering
release of the software design description (top-level) prior to submission to
the 'Preliminary Design Review'.
Note: other associated documents (test, management data items) shall be
controlled in accordance with the document control procedures defined in the
'System Engineering Management Plan'. Choosing to many documents for
configuration control can create more problems than too few as visibility of
the priorities can be lost and bureaucracy starts to rule.
A common method
of identifying documents and software units is necessary.
Under construction.
See Software Product Evaluation Plan
See software product evaluation illustration.
Software product
evaluations should be performed by the SMG, however, members of a 'Software Engineering'
department, who have not been assigned to the program may be used to provide
technical support on an as needed basis to assure that evaluations have an
adequate level of technical depth.
Under construction.
See Job descriptions for personnel.
See Job descriptions for personnel.
A closed loop
corrective action system for problems detected during software development will
be established to ensure that detected problems are promptly reported, action
taken and a resolution reached. The status of these problems shall be
monitored, tracked and reported. All records prepared will be maintained for
the life of the project.
The corrective action system operates by the raising of various types of
reports:
Each problem
shall be classified by category and by priority as identified by the acquirer.
Metrics and analysis shall be performed to detect trends in the problems
reported.
When an audit
or review report identifies defects it shall initiate the corrective action
process.
Problems detected shall be identified and an action placed on individuals to
correct within a specified time limits.
TBC
Group leaders
will conduct work reviews to ensure work products identified in the worksheet
are reviewed prior to process management reviews. Guidance for conducting work
reviews is provided in the 'Software Product Evaluation Plan'. Each work review
is documented showing attendees, issues, and action items.
The Software
Product Evaluation Reviews will review the project's software work products and
activities periodically throughout the life-cycle based on the Worksheet and
SQPP plan and provide the project manager with visibility as to whether the
project is adhering to established plans, standards, and procedures.
The project
will generate potential problems, both technical and managerial. These problems
are the starting point for addressing circumstances and events which may put
the project at risk. That is, each problem contains the potential for bringing
about unwanted changes (losses) in the technical performance, schedule, and
cost of a project and must therefore be managed.
Potential problems the
project will be translated into specific identifiable known risks which will be
analyzed, documented, and prioritized based on their potential impact to the
project. Risk identification is an iterative process that starts at the
beginning of and continues throughout the project. As potential problems are
identified, a risk management working group, established by the IPT manager,
will analyze each problem and identify it, as appropriate, as a known risk to
the project. The risk will be further analyzed to determine the best strategy
for reducing the effects of or eliminating the risk altogether. The IPT manager
will prioritize each risk and assign a risk owner to develop a brief plan of
action for eliminating the risk or reducing its effects on the project.
From the very beginning of
the project, the IPT manager will identify the top 1, 2, or X number of risks
for a monthly review by the risk management working group. A formal update of
the prioritized list of risks, their assessment (e.g., this risk , if not
corrected in the next 90 days, will cause a work stoppage), actions underway to
mitigate the risk (e.g., re-prioritize work), and the expected get-well dated.
Risk management metrics (e.g. the number of technical and managerial risk
identified according to their impacts, i.e., schedule, cost, and technical
performance) will be updated during the Update Indicator stage of the SEMP
process and briefed at the management review for each process.
Another name
for software management indicators is metrics. For direction on metrics to be used
during development and maintenance projects, see the following:
Metrics will be collected
on the project for three purposes. The first purpose is to measure the progress
of each project to ensure completing software projects within budget, on
schedule, with quality software products delivered to the users. The goals for
software projects inherently lead to questions such as: Have we baselined the
requirements? Have we baselined our schedule? Can we meet the schedule? Will
the quality of the software be acceptable to our customers? How are we
identifying, tracking, and correcting errors?
A second purpose for
collecting metrics is to establish a historical, factual basis for planning
future activities. Accordingly, each team will collect a set of metrics having
the five core attributes. These attributes are size, effort, schedule, rework,
and quality, and are discussed in detail in the 'Systems
Engineering Management Plan'.
A third purpose for
collecting metrics is to improve processes through increased process knowledge.
As processes are measured, a factual basis for assessing how well processes are
performing is established and opportunities for taking corrective actions are
made more visible. Once corrective actions are taken, metrics will be used to
verify that the corrective actions are yielding the desired results.
Metrics Collected
The following table
identifies metrics with the five core attributes that are gathered throughout
the development project and indicates the data stores and sources.
TBD
Metrics Analysis and
Interpretation
a. In addition to the
analysis and interpretation of metrics at the project level by the Project
manager and Configuration Manager, sections perform their own metrics analysis
using, e.g., variances between the actual Vs planned number of SUs produced.
Each section will seek to identify problems early in the development phase of
each project. Group leaders will assess their progress on a weekly basis and if
at the end of the week, the actual number of SUs completed is 90 percent or
less than what was planned, the Group leaders will begin to monitor production
activity more closely. If after two or more weeks, the actual number of SUs
completed continues to be 90 percent or less than what was planned and the
trend appears to be worsening, the Group leader will determine the cause for
the slow down and take corrective action. For example, if specifications are
missing or inadequate, the Group leader take needed corrective action and track
the progress made in delivering on-time, quality specifications within the
production cycle until the production level is returned to the original plan.
Release Quality
Assessment
Following the release of
software to the users, the Software Manager will track the number of corrective
actions initiated against the software. This metric is identified in the first
table above under the quality attribute. This metric is stored in the MIS.
Another metric using the Error reports count is called the Release Error reports
Density. The Release Error reports Density is calculated by dividing the number
of Error reports received in the first six months after the software is
released by the number of thousand source lines-of-code (i.e., KSLOC) contained
in the release. This metric is maintained in Software Manager and by the
Configuration Manager.
Project Deliverables
In contracting out software
development, deliverables are specified and tracked throughout the project
cycle. Although there is no formal contractual arrangement for software
developed in-house, deliverables will also be specified and tracked throughout
the project cycle. Examples of deliverables are:
Modified programs, test
reports, documentation
Estimating Project
Variables
Probably one of the most difficult
tasks in building metrics is the task of estimating project variables. Two
important factors in estimating project variables are documented procedures and
a factual basis for deriving the estimates. The SEMP provides documented
procedures for estimating project size and schedules. The Pre-Development
Phase. A factual basis for deriving the estimates, for example, are found in
documented software histories stored in archives
All estimates are
documented to the level of detail that readily identifies the procedures used
and the factual basis on which the estimate is based.
Attachment 1: Example
Metrics Charts.
TBD
See Software
management indicator details
See Security and privacy details
When
applicable, subcontractor management will be performed in accordance with the
procedures described in the 'Systems Engineering
Management Plan' section 3.
See Supplier
management details
See Coordination with associate developers details
See Improvement of project processes details
See Software safety management details
The activities
and documentation to be prepared for the completion of each phase of the
system/software development life cycle is detailed in the 'Software Development
Standards'.
If the system comprises of a number of CSCIs it will be necessary to provide
individual SDPs which will detail all the activities and support documentation
to be prepared in accordance with the sample model text contained in the
'Documentation Standard'.
This paragraph
shall detail activities necessary during the software
development life cycle.
The activities to be performed and the documentation prepared for the
completion of each phase of the software development life cycle are identified
in the 'Software Development Standards'.
If the system comprises of a number of CSCIs it will be necessary for the
suppliers of each CSCI or aggregate of a CSCI to prepare individual SDPs. Each
SDP will detail all activities and support documentation necessary for that
specific CSCI in accordance with the model text included in the 'Software
Documentation Standard'.
The activity network for
the CSCI development will be provided in the following format:
Under
construction.
An activity network, depicting sequential relationships and
dependencies among activities and identifying those activities that impose the
greatest time restrictions on the project shall be contained here.
The overall
responsibility for the project shall be with the project manager who will use
the concepts and principles defined in the 'Systems Engineering Management
Plan' to provide direction, monitor and control the technical system being engineered.
He shall delegate to other managers the responsibility of managing subsystems
and their comprising hardware and software.
A Software Management Group shall be established to prepare, monitor, control,
maintain and administer the 'Software Development Standards' contractually
required for the project.
Software development and test for the system software shall be the
responsibility of a Software Development Manager assigned to the project. The
Software Development Manager should report directly to the Project Manager. His
role will be to ensure that the software engineering meets the required level
of quality. Depending on the complexity a number of software development
engineers and software test engineers will be appointed.
The software development
manager shall be responsible for managing and controlling the CSCI requirements
analysis, design, coding, informal test and integration of all deliverable code
for a specific CSCI.

Project manager organization.
Under construction!
The Technical
Management organization for the production of system software shall be the
responsibility of the Systems Engineering Management group (SEMG). The relevant
approval and authorization shall be required before the release of any
project-level software or documentation prepared during the development of the
system using the data management procedures identified in the SEMP. The SEMG
shall act as the interface with the managerial organizations of the acquirer or
his agent for the subjects of project management.
While the SEMG retains overall technical responsibility for software
development, responsibility for the individual phases will be defined in
individual SDPs.
Software development and test for the system shall be the responsibility of the
Project Manager who shall assign personnel to the subsystem and CSCI elements
of the system. The

Systems Engineering organization.

Software development manager
organization.
To be continued.
The facilities that
will be used for supporting the activities associated with the development of
the CSCIs for the system shall be defined in the individual CSCI development
plan.
Resources required to support the overall activities are:
As defined in
the 'Software Development Standards' (SDS), a Software Standards Controller
(SSC) shall be appointed to be responsible for adherence to the agreed plan.
The person appointed shall have the necessary qualifications and experience.
See Job
descriptions for personnel.
Also, a Software
Configuration Controller shall be appointed to be responsible for the adherence
to the software configuration aspects of the project.
Development facilities are as follows:
(This Section contains
information of a general or explanatory nature that may be helpful, but is not
mandatory).
List any
definitions that will add clarity to the document that have been used and not
previously declared or are different from the declared references.
A list of definitions are provided in the glossary for
the Project Management System.
List the
abbreviations used and not previously declared.
Not applicable
for the first issue, however, subsequent revisions will require a notation
e.g., (|) in the margins of the lines that have been modified.
Many process documents and templates
are now available in
.pdf format:
See PDFDOCUMENTS.
The total
number of visitors to this site since the 15th of March 1998
LE FastCounter
Back to Home page MANAGING
STANDARDS Home page
Please send any beneficial
comments or identification of errors using the following form to: kenr@wysywig.airtime.co.uk
Copyright © by Ken Rigby 1995, 1996. 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004