Markdown Editor

Software Development Plan Template (MIL-STD-498 SDP)

SDP per DI-IPSC-81427: process, methods, standards, reuse, critical requirements, per-activity plans, schedule, organisation

Perangkat Lunak & RekayasaLengkapMIL-STD-498 DI-IPSC-81427; ISO/IEC/IEEE 12207:2017softwaredevelopmentplan

Cara menggunakan: Use it at contract or project start to show the acquirer how the software will be built. Fill sections 3 and 4.1 (required work and process, builds) first, then each activity in section 5. The main pitfall is pasting a generic process manual instead of the tools, standards and reviews the team will really use.

Pratinjau

Software Development Plan: [System or project name]

Software Development Plan (SDP) describing how a developer will carry out a software development effort: the process, methods, standards, detailed plans for each activity, schedule, organisation and resources. The section numbering follows the MIL-STD-498 Data Item Description DI-IPSC-81427 (Software Development Plan, 5 December 1994; public domain), and the activities are cross-referenced to the software life cycle processes of ISO/IEC/IEEE 12207:2017. Replace every [bracketed] value and every row marked Example.

Document control

FieldValue
Document number[SDP-PROJECT-001]
TitleSoftware Development Plan for [System name]
Version / revision[0.1]
Status[Draft / In review / Approved / Superseded]
System identifier[System name, abbreviation, ID]
Contract number[Contract no. or internal project code]
CDRL item[A001 or "Not applicable"]
Prepared for[Acquirer or sponsoring organisation]
Prepared by[Developer organisation, address]
Author[@author]
Distribution[Distribution statement or "Internal"]
Security / handling[Classification or handling restrictions]
Last updatedYYYY-MM-DD

Approvals

RoleNameOrganisationDecisionDate
Software project manager[@name][Developer][Approved]YYYY-MM-DD
Chief engineer / architect[@name][Developer][Approved]YYYY-MM-DD
Quality assurance lead[@name][Developer][Approved]YYYY-MM-DD
Acquirer representative[@name][Acquirer][Approved / Comments]YYYY-MM-DD

Revision history

VersionDateAuthorChange summary
0.1YYYY-MM-DD[@name]Initial draft for proposal
1.0YYYY-MM-DD[@name]Example: Approved at contract kick-off
1.1YYYY-MM-DD[@name]Example: Build 3 split into 3a and 3b; schedule in section 6 updated

Contents

1. Scope

1.1 Identification

This plan applies to [System name] ([abbreviation]), identifier [ID], version [x.y], and to the following software items:

Software itemAbbreviationIdentifierPlanned release
Example: Mission planning serverMPSCSCI-012.0
Example: Operator workstation clientOWCCSCI-022.0
Example: Data exchange gatewayDXGCSCI-031.0
[Item][Abbr.][ID][Release]

1.2 System overview

[System name] [purpose in two or three sentences]. It is sponsored by [sponsor], acquired by [acquirer], used by [users], developed by [developer] and will be supported by [support agency]. It operates at [current and planned sites].

Example: The system lets regional dispatch centres plan and track field crews. Version 1 has been in service since 2022 at three centres; this effort replaces the desktop client with a web client and adds a gateway to the national incident system, for roll-out to nine centres.

1.3 Document overview

This document sets out the developer's plans for the software development effort. Sections 3 to 7 cover the work, general and detailed activity plans, schedules and resources. [State any security or privacy considerations for using this document, for example: contains staffing data, internal distribution only.]

1.4 Relationship to other plans

PlanRelationship
Example: Project management plan PMP-01SDP implements the software part of the PMP; PMP holds cost and contract milestones
Example: Software configuration management plan SCMP-01Bound separately; summarised in 5.14
Example: Software quality assurance plan SQAP-01Bound separately; summarised in 5.16
Example: Software test plan STP-01Detailed qualification test planning; summarised in 5.9
Example: Software transition plan STrP-01Detailed transition planning; summarised in 5.13
[Plan][Relationship]

2. Referenced documents

NumberTitleRevisionDateSource
Example: [Contract no.]Statement of workRev BYYYY-MM-DDAcquirer
Example: SSS-01System/Subsystem Specification1.2YYYY-MM-DDProject repository
ISO/IEC/IEEE 12207:2017Systems and software engineering, Software life cycle processes20172017ISO / IEEE
[Number][Title][Rev]YYYY-MM-DD[Source]

3. Overview of required work

AreaOverview
Requirements and constraints on the system and softwareExample: 214 system requirements in SSS-01; availability 99.9%; must run on the acquirer's private cloud
Requirements and constraints on documentationExample: Deliver SRS, SDD, STP, STR, SVD, SUM and STrP in developer format via the document portal
Position in the system life cycleExample: Upgrade of a fielded system; development and transition phases
Acquisition strategyExample: Fixed-price for builds 1 and 2, option for build 3; incremental delivery
Schedule and resource constraintsExample: Initial operational capability at three centres by YYYY-MM-DD; team capped at 14 FTE
Other constraintsExample: Personal data under GDPR; security accreditation before go-live; interface with national incident system owned by another contractor

4. Plans for performing general software development activities

4.1 Software development process

The project uses an [incremental / iterative / agile with builds] life cycle. Each build delivers working, qualified software for a defined set of requirements.

BuildObjectiveActivities in buildPlanned end
Build 1Example: Core planning server and minimal web clientRequirements, design, implementation, unit and integration testYYYY-MM-DD
Build 2Example: Full client, reporting, data migrationAll activities including CSCI qualification testYYYY-MM-DD
Build 3Example: Gateway to national incident system, transitionAll activities including system qualification, installation and transitionYYYY-MM-DD

Within each build, work runs in [two-week] iterations with backlog refinement, review and retrospective. Process activities map to the technical processes of ISO/IEC/IEEE 12207 (requirements, architecture, design, implementation, integration, verification, transition, validation) and its management and support processes.

Risk: Example: gateway interface definition depends on another contractor; mitigated by an interface control working group from month 1.

4.2 General plans for software development

These plans apply across all activities in section 5.

4.2.1 Software development methods

ActivityMethodTools
RequirementsExample: Use cases and user stories with acceptance criteria; requirement IDs traced to SSS[Requirements tool]
DesignExample: Component-based design, C4 diagrams, architecture decision records[Modelling tool], Markdown in repository
ImplementationExample: Trunk-based development, pull requests with two reviewers[Git hosting], [IDE]
TestingExample: Test pyramid: unit, contract, integration, end-to-end[Test frameworks], [CI server]

4.2.2 Standards for software products

ProductStandard
RequirementsExample: Requirement template with ID, statement, rationale, priority, verification method
DesignExample: Design description template; ADR format
CodeExample: Language style guides enforced by formatter and linter in CI
Test cases and proceduresExample: Test case template with ID, requirement, preconditions, steps, expected result
Test resultsExample: Machine-readable reports archived per build

Coding standards cover, for each language: formatting, header and other comments, naming conventions, restricted language constructs and limits on complexity (Example: cyclomatic complexity no greater than 15 per function, enforced by static analysis).

4.2.3 Reusable software products

4.2.3.1 Incorporating reusable software products

Candidate reusable products (open-source libraries, commercial components, existing project code) are evaluated against [criteria: licence, maintenance activity, security record, fitness, cost] and recorded in the reuse register.

ProductVersionUseBenefitsDrawbacks / restrictionsDecision
Example: PostgreSQL16.xMain databaseMature, known to support teamRequires DBA skills at support siteSelected
Example: Map rendering library3.xClient mapsSaves an estimated 4 monthsLicence requires attributionSelected
[Product][Version][Use][Benefits][Drawbacks][Decision]
4.2.3.2 Developing reusable software products

Opportunities for reuse are identified during design reviews and reported to [the acquirer / the organisation's reuse board]. Example: the gateway's message validation module will be packaged as a separate library.

4.2.4 Handling of critical requirements

Critical requirements are tagged in the requirements tool and receive extra analysis, review and test.

4.2.4.1 Safety assurance

[Approach, or "Not applicable" with reason.] Example: No safety-critical functions; hazard analysis HA-01 confirmed no software contribution to identified hazards.

4.2.4.2 Security assurance

Example: Threat modelling per build, secure coding standard, dependency and container scanning in CI, independent penetration test before accreditation.

4.2.4.3 Privacy assurance

Example: Data protection impact assessment, data minimisation in design reviews, personal data fields tagged in the data dictionary, test data anonymised.

4.2.4.4 Assurance of other critical requirements

Example: Availability requirement SSS-AV-01 (99.9%) verified by failover tests and a 72-hour soak test.

4.2.5 Computer hardware resource utilisation

Resource budgets (CPU, memory, storage, network) are allocated per component in the design and monitored in performance tests with a reserve target of [30%] at forecast peak.

4.2.6 Recording rationale

Key decisions (architecture style, major technology choices, deviations from standards, interface agreements) are recorded as architecture decision records in [repository path] so that the support agency can understand why the software is built as it is.

4.2.7 Access for acquirer review

The acquirer has read access to the repository, issue tracker, CI results and document portal, and may attend iteration reviews and visit [developer and subcontractor sites] with [5 working days'] notice.

5. Plans for performing detailed software development activities

5.1 Project planning and oversight

Sub-paragraphApproach
5.1.1 Software development planningExample: This SDP is prepared by the software PM, reviewed by QA and the acquirer, and updated at each build start
5.1.2 CSCI test planningExample: STP-01 prepared during build 1 design; covers qualification of each CSCI
5.1.3 System test planningExample: Developer participates in the acquirer's system test plan; provides test cases for software-related requirements
5.1.4 Software installation planningExample: Software installation plan for the three pilot centres prepared in build 3
5.1.5 Software transition planningExample: STrP-01 drafted in build 2, final at build 3 test readiness review
5.1.6 Following and updating plansExample: Weekly progress review, monthly management review with acquirer; plans updated through change control

5.2 Establishing a software development environment

Sub-paragraphApproach
5.2.1 Software engineering environmentExample: Containerised developer environment; CI pipeline on [CI server]; same toolchain versions pinned in repository
5.2.2 Software test environmentExample: Integration and qualification environments built from infrastructure code, refreshed per build
5.2.3 Software development libraryExample: Git repository with protected main branch and tagged baselines; artefact registry for builds
5.2.4 Software development filesExample: Each component has a folder for design notes, test results and review records, linked from the issue tracker
5.2.5 Non-deliverable softwareExample: Test harnesses and data generators, kept in the repository; licences checked so the acquirer is not burdened

5.3 System requirements analysis

Sub-paragraphApproach
5.3.1 Analysis of user inputExample: Workshops at two centres; feedback from version 1 support tickets
5.3.2 Operational conceptExample: Developer contributes scenarios to the acquirer's operational concept description
5.3.3 System requirementsExample: Developer reviews SSS-01 and proposes clarifications through the requirements working group

5.4 System design

Sub-paragraphApproach
5.4.1 System-wide design decisionsExample: Participate in decisions on hosting, identity provider and interface protocols; record as ADRs
5.4.2 System architectural designExample: Contribute the software view to the system architecture description

5.5 Software requirements analysis

Software requirements for each CSCI are derived from the system requirements and recorded in the software requirements specification with IDs, priority, verification method and trace to SSS. Example: backlog refinement each iteration turns approved requirements into user stories with acceptance criteria; the trace is checked by QA at each build review.

5.6 Software design

Sub-paragraphApproach
5.6.1 CSCI-wide design decisionsExample: Language, frameworks, error handling and logging conventions per CSCI, recorded as ADRs
5.6.2 CSCI architectural designExample: Component and deployment views in the software design description
5.6.3 CSCI detailed designExample: Interface and data design for each component, reviewed in pull requests before code

5.7 Software implementation and unit testing

Sub-paragraphApproach
5.7.1 Software implementationExample: Code written to 4.2.2 standards, reviewed by two engineers
5.7.2 Preparing for unit testingExample: Unit tests written with or before code; coverage target 80% lines
5.7.3 Performing unit testingExample: Run on every commit in CI
5.7.4 Revision and retestingExample: Failing tests block merge
5.7.5 Analysing and recording unit test resultsExample: Results and coverage archived per build in the artefact registry

5.8 Unit integration and testing

Sub-paragraphApproach
5.8.1 Preparing for unit integration and testingExample: Contract tests for every internal API; integration test cases derived from design
5.8.2 Performing unit integration and testingExample: Nightly integration runs in the integration environment
5.8.3 Revision and retestingExample: Defects raised in the tracker and retested before closure
5.8.4 Analysing and recording resultsExample: Trend dashboard of integration pass rate reviewed weekly

5.9 CSCI qualification testing

Sub-paragraphApproach
5.9.1 IndependenceExample: Qualification tests designed and run by the test team, not by the developers of the CSCI
5.9.2 Testing on the target computer systemExample: Run on acquirer-equivalent cloud environment
5.9.3 PreparingExample: Test cases and procedures in STP and STD, reviewed at test readiness review
5.9.4 Dry runExample: Full dry run one week before formal run
5.9.5 PerformingExample: Formal run witnessed by acquirer
5.9.6 Revision and retestingExample: Regression of affected test cases after fixes
5.9.7 Analysing and recording resultsExample: Software test report per CSCI

5.10 CSCI/HWCI integration and testing

[Approach for integrating software items with hardware items, or "Not applicable" with reason.] Example: Participate in integration with centre workstations and radio gateway hardware; preparing, performing, retesting and recording follow the pattern of 5.8.

5.11 System qualification testing

The developer participates in system qualification testing run by [acquirer / system integrator]. Independence, use of the target system, preparation, dry run, performance, retesting and recording follow the pattern of 5.9, with the system test plan as the governing document.

5.12 Preparing for software use

Sub-paragraphApproach
5.12.1 Preparing the executable softwareExample: Signed container images built by CI from tagged baselines
5.12.2 Preparing version descriptions for user sitesExample: Software version description per release
5.12.3 Preparing user manualsExample: Software user manual for operators, updated each build
5.12.4 Installation at user sitesExample: Install and check out at three pilot centres; train local administrators

5.13 Preparing for software transition

Sub-paragraphApproach
5.13.1 Preparing the executable softwareExample: Same signed images as for user sites
5.13.2 Preparing source filesExample: Source repository mirror with build scripts delivered to support agency
5.13.3 Preparing version descriptions for the support siteExample: SVD including build environment and tool versions
5.13.4 Preparing as-built design and support informationExample: Updated SDD and ADR log reflecting the delivered code
5.13.5 Updating the system design descriptionExample: Software changes reflected in system design description
5.13.6 Preparing support manualsExample: Support manual for build, deploy and diagnose
5.13.7 Transition to the designated support siteExample: Per STrP-01, with two months of joint support

5.14 Software configuration management

Sub-paragraphApproach
5.14.1 Configuration identificationExample: Configuration items listed in SCMP; semantic versioning
5.14.2 Configuration controlExample: Change control board weekly; pull request approvals for code
5.14.3 Configuration status accountingExample: Release notes and baseline reports generated from tracker
5.14.4 Configuration auditsExample: Functional and physical audits before each delivery
5.14.5 Packaging, storage, handling and deliveryExample: Signed artefacts in registry; delivery via secure transfer with checksums

5.15 Software product evaluation

Sub-paragraphApproach
5.15.1 In-process and final evaluationsExample: Peer review of every requirement, design and code change; final evaluation at build review
5.15.2 Evaluation recordsExample: Review comments, decisions and disposition stored with the pull request or document
5.15.3 IndependenceExample: Final evaluations by a reviewer not involved in producing the product

5.16 Software quality assurance

Sub-paragraphApproach
5.16.1 SQA evaluationsExample: Monthly process audits against this SDP; product audits at each build review
5.16.2 SQA recordsExample: Audit reports and non-conformance log
5.16.3 IndependenceExample: QA lead reports to the quality manager, not to the project manager

5.17 Corrective action

Sub-paragraphApproach
5.17.1 Problem/change reportsExample: Tracker records ID, originator, item affected, date, category, priority, description, analyst, solution, impacts, status, approval, version corrected
5.17.2 Corrective action systemExample: Triage twice weekly; trend analysis monthly; root cause for priority 1 and 2 problems

5.18 Joint technical and management reviews

ReviewTypeWhenParticipantsEntry / exit criteria
Example: Software requirements reviewTechnicalEnd of requirements in build 1Developer, acquirer, usersSRS draft complete / requirements baselined
Example: Design reviewTechnicalEach buildDeveloper, acquirerSDD updated / design approved
Example: Test readiness reviewTechnicalBefore each qualification runDeveloper, acquirer, QAProcedures reviewed, environment ready / go decision
Example: Monthly management reviewManagementMonthlyPMs, leadsStatus report / actions agreed

5.19 Other software development activities

Sub-paragraphApproach
5.19.1 Risk managementExample: Risk register reviewed fortnightly; known risks: R-01 gateway interface delay, R-02 data migration quality, R-03 key staff availability
5.19.2 Software management indicatorsExample: Velocity, requirements volatility, defect density, open problem reports by priority, test pass rate, schedule variance
5.19.3 Security and privacyExample: As 4.2.4.2 and 4.2.4.3; access to production data restricted to cleared staff
5.19.4 Subcontractor managementExample: Subcontractor for map client works under this SDP; monthly review and code access
5.19.5 Interface with IV&V agentsExample: IV&V agent gets repository and environment access; findings handled as problem reports
5.19.6 Coordination with associate developersExample: Interface control working group with national incident system contractor
5.19.7 Improvement of project processesExample: Retrospective actions tracked; process changes reflected in this SDP
5.19.8 Other activitiesExample: Data migration from version 1 planned in migration plan MP-01

6. Schedules and activity network

The schedule below shows the activities per build and the main milestones. The detailed schedule is kept in [scheduling tool link].

MilestoneDateDeliverableDraft / final
Example: Software requirements reviewYYYY-MM-DDSRSDraft
Example: Build 1 reviewYYYY-MM-DDBuild 1 software, SDDDraft
Example: Build 2 test readiness reviewYYYY-MM-DDSTP, STDFinal
Example: Initial operational capabilityYYYY-MM-DDSVD, SUM, installed softwareFinal
Example: Transition completeYYYY-MM-DDSTrP actions closedFinal

Activity network: the critical path runs through [gateway interface agreement, gateway build, system qualification, installation]. A delay in the interface agreement moves initial operational capability day for day.

7. Project organisation and resources

7.1 Project organisation

The organisation chart below shows reporting lines and the organisations involved.

Organisation / roleAuthority and responsibilities
Example: Software project managerOwns this SDP, schedule and staffing; single point of contact with acquirer
Example: Engineering leadTechnical authority for design and code standards
Example: QA leadIndependent evaluation; can stop a delivery on non-conformance
Example: Configuration managerBaselines, releases, change board secretary
[Role][Responsibilities]

7.2 Project resources

ResourcePlan
Staff loading over timeExample: 8 FTE in build 1, 14 FTE in builds 2 and 3, 6 FTE during transition
Staff by responsibilityExample: Management 1, engineering 8, test 3, CM 1, QA 1
Skills, locations and clearancesExample: Two cleared engineers for on-site work; others remote in [location]
Developer facilitiesExample: [Office], secure room for acquirer data, cloud accounts for environments
Acquirer-furnished itemsExample: Access to version 1 source and data extracts by YYYY-MM-DD; test accounts on national incident system by YYYY-MM-DD
Other resourcesExample: Penetration test vendor in build 3; plan for procurement by YYYY-MM-DD

8. Notes

TermMeaning
ADRArchitecture decision record
CDRLContract data requirements list
CSCIComputer software configuration item, a software item managed as a unit
HWCIHardware configuration item
IV&VIndependent verification and validation
SDD / SRS / STP / STrP / SVD / SUMSoftware design description / requirements specification / test plan / transition plan / version description / user manual

Appendixes

AppendixContentReferenced in
AExample: Requirements to activity traceability for critical requirements4.2.4
BExample: Tailoring record: paragraphs tailored out and whyAll sections
C[Content][Section]

Standard and licence note

Based on MIL-STD-498 Data Item Description DI-IPSC-81427, Software Development Plan (SDP), dated 5 December 1994, a US Department of Defense document approved for public release (public domain); the section numbering follows its content requirements, in original wording. Later revisions (DI-IPSC-81427A, 2000, and DI-IPSC-81427B, 2017) exist; check which revision your contract cites. Activity mapping aligned with ISO/IEC/IEEE 12207:2017, software life cycle processes; this template reproduces no text from that standard, so obtain it for its normative requirements. Template licence: MIT.

Templat terkait