Global Sources
EE Times-Asia
Stay in touch with EE Times Asia
EE Times-Asia > Embedded

Basics of software standards compliance (Part 5)

Posted: 04 Apr 2016 ?? ?Print Version ?Bookmark and Share

Keywords:Standards compliance? system safety? defects? software? code?

Following a series of fatal accidents in the mid-1990s, a formal investigation was conducted with the Therac-25 radiotherapy machine. Led by Nancy Leveson of the University of Washington, the investigation resulted in a set of recommendations on how to create safety-critical software solutions in an objective manner. Since then, industries as disparate as aerospace, automotive and industrial control have encapsulated the practices and processes for creating safety- and/or security-critical systems in an objective manner into industry standards.

Although subtly different in wording and emphasis, the standards across industries follow a similar approach to ensuring the development of safe and/or secure systems. This common approach includes ten phases:

1. Perform a system safety or security assessment
2. Determine a target system failure rate
3. Use the system target failure rate to determine the appropriate level of development rigor
4. Use a formal requirements capture process
5. Create software that adheres to an appropriate coding standard
6. Trace all code back to their source requirements
7. Develop all software and system test cases based on requirements
8. Trace test cases to requirements
9. Use coverage analysis to assess test completeness against both requirements and code
10. For certification, collect and collate the process artifacts required to demonstrate that an appropriate level of rigor has been maintained.

Phases 6 through 8 are discussed in the main body of this article. System safety and security objectives can only be guaranteed if the original requirements are adhered to, and used as the basis for the software and system level testing. Although presented sequentially in the table above, the phases described here are best started at the time that the system requirements are agreed upon. The principles described here adhere to the mantra "test early, test often", helping to identify defects and issues as early in the development process as possible, resulting in higher system quality and the lowest possible costs for defect correction.

Standards compliance is not just about checking the code for programming errors. Standards compliance also has a foundation in a solid development process. This article looks at three specific development phases addressed by safety- and mission-critical software development standards:
???Mapping the code under development to requirements
???Generating test cases from requirements
???Mapping test cases back to requirements

From this list, it appears that the code development phases should start only when the code creation process actually starts. But, nothing could be further from the truth. These phases are all about establishing a verification framework that focusses on identifying defects early in the development process in order to reduce the cost of finding and fixing them. These phases create a feedback loop between the requirements, the software being produced, and the test cases used to verify them. The resulting process helps identify defects, ambiguities, and incompleteness early in the product development lifecycle so that they can be addressed in a manner that is both cost-effective and conducive to building quality into safety- and mission-critical systems.

Tracing code to requirements
Requirements provide an initial definition of the system under development, providing the reference for how the system is supposed to behave. Once this definition of the system has been translated into code, it is necessary to ensure that the "right system" is built by mapping the code under development back to the original requirements. Not only does this traceability enable project managers to be confident that the features outlined in the requirements are being implemented, but it is especially important for safety- and mission-critical systems as it ensures that the functionality required to meet the system target failure rates has been implemented.

1???2???3?Next Page?Last Page

Article Comments - Basics of software standards complia...
*? You can enter [0] more charecters.
*Verify code:


Visit Asia Webinars to learn about the latest in technology and get practical design tips.

Back to Top