SMC-S-012 Software Development

SMC-S-012 Software Development

“Published by the U.S. Air Force Space Command’s Space and Missile Systems Center (SMC),The purpose of the SMC-S-012 Software Development standard is to specify uniform requirements for software development activities for mission critical systems. This standard is based on the “MIL-STD-498 Military standard: Software development and documentation” standard developed by the United States Department of Defense.

SMC-S-012 Software Development

This standard applies to the development of mission-critical systems that include software (such as hardware-software systems), software-only systems, and stand-alone software products. This standard is applicable to contractors performing software development or to in-house agencies that purchase. This standard can be adapted for each software category to which it applies.

This standard is independent of any specific software development method or tool. No requirement in this standard mandates the use of any particular method or tool.

The framework used to organize major software activities in the software development process is called the software development lifecycle model.

  • The developer must select the software development lifecycle model or models appropriate for the software being developed. A software project may have multiple software development lifecycle models for different categories of software being developed.
  • The developer must record the selected software development lifecycle model or models in the attached “Software development plan” template.
  • The developer must provide a description of each software development lifecycle model that will be used in the project in the software development plan.
  • For each software development lifecycle model to be used, the developer must define in the software development plan:
    • At what point in the system development life cycle will it be used?
    • Under what conditions will it be used?
    • Which software elements to use for
  • The developer must establish a software development process that is consistent with the contract requirements.
  • The software development process should include the following main activities and integrated processes:
    • Project planning and control
    • Creating a software development environment
    • System requirements analysis
    • System architecture design
    • Software requirements analysis
    • Software architecture and design
    • Software implementation and unit testing
    • Unit integration and testing
    • Software element qualification testing
    • Software-hardware element integration and testing
    • System qualification testing
    • Preparing the software for transition to operations
    • Preparing the software for transition to maintenance
    • Integrated processes:
      • Software configuration management
      • Software peer reviews and product ratings
      • Software quality assurance
      • Corrective action
      • Joint technical and management reviews
      • Software risk management
      • Software measurement
      • Guvenlik ve Gizlilik
      • Software team member management
      • Interface with software IV&V agents
      • Coordination with partner developers
      • Improving project processes

These key activities may overlap, be implemented iteratively, be implemented differently, belong to various elements of the software, and do not necessarily need to be performed in the order listed above.

  • The developer's software development processes should be described in the software development plan.

The general requirements for software development include general developer requirements to fulfill the detailed requirements defined in this standard. More detailed requirements are included in the annex of the standard (Annex H.1).

  • Software development methods: The developer must use systematic, documented methods for all software development activities. These systematic software development methods should be specified in the software development plan.
  • Standards for software products: The developer develops standards to represent requirements, architecture, design, code, test cases, test procedures, and test results. These product representation standards are specified in the software development plan. The developer implements the standards specified in the software development plan to represent requirements, architecture, design, code, test cases, test procedures, and test results.
  • Traceability: Traceability provides a relationship between the contents of two related products, for example, from each software requirement to the software design components that satisfy the requirement. Bidirectional traceability provides a bidirectional relationship between the contents of two related products. An example of such a bidirectional relationship is traceability from each software requirement to the software design components that satisfy the requirement, and from each design component to the software requirements that are satisfied by the design component. The purpose of the bidirectional traceability requirements in this section is to trace both upwards and downwards to:
    • Demonstrate that all requirements have been allocated to components, implemented and tested
    • Demonstrate that no additional requirements apply
    • Providing information on the impact of proposed changes
    • Provide information about the impact of discovered problems
    • Providing information for software maintenance.
  • Reusable software products: The developer must identify reusable software products that will be used to fulfill the requirements of the contract. The scope of the reusable software product search should be specified in the software development plan. The developer must evaluate reusable software products that will be used to fulfill the requirements of the contract. The criteria to be used to evaluate the reusable software product should be as specified in the software development plan. The developer must use at least the evaluation criteria in the annex to the standard (Appendix B) to select reusable software products. The evaluation criteria may be weighted differently for different software categories and different critical requirements. The selected reusable software products must meet the data rights requirements in the contract. The reusable software product can be used as is or modified and can be used to meet the entire requirement or a portion of the requirement.

Our organization, which has been trying to support businesses from every sector with its testing, measurement, analysis and evaluation studies carried out in a wide range for years, has a strong staff that closely follows the developments in the world in the field of science and technology and constantly improves itself. In this context, testing services in accordance with the "SMC-S-012 Software Development" standard are also provided to businesses.

WhatsApp