Software Development Standards

OVERVIEW

Software Development Standards have since their inception been complex in their terminology and understanding mainly due to the immaturity of the subject. However, since the introduction and mandatory stipulation of military standards a mature model has been accepted by most government agencies and developers. These have been DOD-STD-2167, DOD-STD-2167A and DOD-STD-2168, and the promoted MIL-STD-498, ISO 12207, and (J-STD-016 - IEEE 1498?).
In addition to the basic software development model other standardization boards define additional requirements for specialized use, such as, DO-178B (Airborne software considerations), ISO 9003 (Quality Management Systems), JSP 188 (Documentation of software in real-time systems), etc. Additionally, a User-computer interface may be necessary for developments requiring specific human attributes (MIL-STD-1801). DEF STAN 00-55 and 00-56 for safety critical systems and software.

The objectives of this documents are:

SOFTWARE DEVELOPMENT STANDARDS

Software Development Standards define the process and activities necessary to produce quality software. The are used to manage and control the process using standardized methods and procedures. Several standards, models or guide-lines exist supported by government, institutions, etc., which propose various concepts and principles. These standards together with other special considerations for functional reasons i.e., safety critical, airborne, build strategy, reengineering, etc., shall be combined to establish a uniform process and activities for all software for a specific project.
The development of software needs to adopt a process and methodology suitable for the specific software under consideration and acceptable for a specific project.
The development of this software shall be established and described by a Software Development Plan.

Organization of SDS, Plans and procedures

SOFTWARE DEVELOPMENT PLAN

For large and/or complex software development projects an overall SDP may be required to establish and identify the overall project management organizations and activities who will manage and control the overall development of software.
The SDP (overall) shall define the overall plans and procedures necessary to develop and document the software in a uniform manner. All software to be developed shall be identified. Individual CSCIs development shall be defined in a specific CSCI SDP.

Individual and CSCI software the activities, personnel, organizations, code of practice, and process standards to be used for the software development and certification shall be identified.

Each individual SDP shall identify or include the software development resources and organization, development time-line schedule and milestones, security measures, design methodologies, design and implementation approaches, testing methodology, security/certification plan, resource utilization control, programming support centre facilities and potential risk areas of the specific CSCI software development life cycle.

Each SDP shall reference and confirm compliance to the 'Software Development Standards' and identify any authorized deviations or waivers.

SUMMARY

System/software development life cycle

FIGURE 1. System/software development life cycle.

The Software Development Standards and supporting Plans shall be prepared by the Software Management Group (SMG) who will enforce, maintain, improve them on a continuous basis.

Proposed "Software Management" documentation to be known as the "Software Development Standards" shall comprise of the following:

The above shall be used in conjunction with the CSCI 'Software Development plans' to create a uniform development process.

Software Development Standards documentation tree

FIGURE 2. Software Development Standards documentation tree.

The hierarchical interconnection between the above documents is as follows: the 'Software Development Standards' is the top-level software 'project standard' (quality plan) document that addresses all software management functions to be considered during the development.
All software development activities and processes shall be included but detailed procedural requirements will be defined in lower supporting documents; see figure 2.

A "Software Management Group" shall be responsible for the preparation, control, correct application, and maintenance of the proposed 'Software Development Standards' and the resulting support/allegiance documents. The SDS shall be updated on a regular basis to assure effective definition and control over the processes and products used in the development of software. The SMG may be a part of the Systems Engineering Management Group defined in the 'Systems Engineering Management Plan'.

SOFTWARE DEVELOPMENT STANDARDS

General requirements.

A System/software development life cycle consisting of the following phases shall be implemented:

This process shall represent the eclectic melding of all the specified software management standards, guide-lines, and procedures.

See figure 1 for a graphical illustration.

A detailed description of the activities to be performed in the above phases will be provided in the identified SDS model text. The software development phases may overlap and may be applied iteratively or recursively.

Documents will be prepared in accordance with the 'Technical Documentation Standard' requirements and its referenced model text. The design and coding of the CSCI shall be performed using the Methods and Tools identified in the 'Software Engineering Manual'. Products produced or prepared during the software development life cycle phases shall be evaluated using the methods and procedures defined in the 'Software Product Evaluation Plan'. The identified developmental configuration items will be controlled using the methods and procedures defined in the 'Software Configuration Management Plan'.

Software safety considerations.

For systems which perform critical or essential functions it may not be possible to demonstrate an acceptable low level of software errors without the use of specific design techniques following the System Safety Analysis (Preliminary Hazard Analysis).

Considerations for user-modifiable, option-selectable, and COTS.

Potential effects of user modification can be determined by the system safety assessment process defined in the Software Safety procedure. Design for user-modifiable software will be discussed as follows:

Considerations for security/privacy assurance.

Consideration for the security/privacy assurance of the system shall for software be defined in the Software Development Plan.

To be continued

For a resume of Generic software standards. Example SDS SDS model text
Example SDP (overall) SDP (overall) model text
Example SDP SDP model text


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 1996, 1997