Home >> Features >> Achieving Embedded Software Safety with Agility
Attention: open in a new window. PrintE-mail

Achieving Embedded Software Safety with Agility

advertisement:

Safety-critical development standards, such as DO-1781, have been very successful in guiding the production of reliable software. These standards assist developers in applying good software practices during development, ensuring, as much as possible, the absence of errors. Compliance with these stringent standards involves a high cost because of their labor-intensiveness and high levels of know-how.

One aspect that has been largely neglected in safety-critical development is evolvability. Evolvable systems demand the use of agile engineering processes to hit hard deadlines in shrinking time windows.

Another problem is that system integration comes late and costly. Complex and interconnected systems developed by different groups or subcontractors must integrate successfully, and they need to be readied or adapted quickly to meet changing needs in shorter timescales without forgetting their safety-critical constraints.

A new open-source collaborative initiative, called Open-DO2, tries to increase the agility and the level of automation in the production and certification of safety-critical software, focusing on more continuous and incremental certification approaches. The goal is to provide the processes and infrastructure to guide safety-critical software development in a way that the application and its related material are ready and verified at any time.

The Certification Process

Safety-critical standards focus on the adequate definition and execution of software engineering processes and activities. They define the objectives for the different processes, the activities that need to be performed for achieving these objectives, and the evidences (artifacts) that indicate that the objectives have been satisfied.

Main software development processes which take place in any high-integrity software project are:

  • Planning
  • Requirements
  • Design
  • Production/coding
  • Verification and validation
  • Integration
  • Configuration management
  • Quality assurance

The planning process determines what will be done to produce safe software conforming to the system requirements. The software development process (requirements, design, production/coding, and integration) is the one that creates the software product. There are three other processes which are orthogonal (integral) to software development:

  1. verification and validation at the different levels (reviews, analyses, and tests),
  2. configuration management to identify, control and regenerate the different artifacts, and for appropriate problem tracking, and
  3. quality assurance to ensure the quality of the software by assessing the software lifecycle processes and their outputs.


>> Newsletter

Subscribe today to receive the INSIDER, a FREE e-mail newsletter from NASA Tech Briefs featuring exclusive previews of upcoming articles, late breaking NASA and industry news, hot products and design ideas, links to online resources, and much more.

Your name:

Your email:

Please Subscribe me to the Insider