DO-178C brings modern technology to safety-critical software development
As software becomes more complex, it becomes hard to manage the design of that software at the code level. Object oriented programming (C++, Ada, and Java) and modeling (UML, mathematical, and so on) simplify the development of complex software by enabling designers to conceptualize, architect, and encapsulate their design at a higher level. Formal methods, which are related to model based development, make it easier to assess correctness of complex software functions like control loops.
DO-178C inherits the DO-178B core document, principles, and processes, while adding support for high-level modeling, object oriented programming, and formal methods, with an emphasis on two-way traceability from model to executable code and back (Sidebar 1). DO-178C also provides a tools supplement for addressing in detail the qualification and capabilities of the tools used for not only modeling, object-oriented programming, and formal methods, but also for other development technologies such as procedural software and assembly-level programming.
The DO-178C supplements
The DO-178C working group has produced three development technology supplements: Object Oriented Technology and Related Techniques (OOT & RT), Model Based Development and Verification, and Formal Methods. It also greatly expanded the tool qualification guidance present in DO-178B. These four supplements have been published by the RTCA as:
- DO-330, Software Tool Qualification Considerations
- DO-331, Model-Based Development and Verification Supplement to DO-178C and DO-278A
- DO-332, Object-Oriented Technology and Related Techniques Supplement to DO-178C and DO-278A
- DO-333, Formal Methods Supplement to DO-178C and DO-278A
Note that DO-278A is the ground system equivalent of DO-178C.
Object Oriented Technology and Related Techniques
The Object Oriented Technology and Related Techniques (OOT & RT) is a comprehensive safety-critical software guide for hand code development and verification. It encompasses not only object oriented software development, but also techniques that are used in procedural languages. These related techniques include such things as dynamic memory management, overloading, parametric polymorphism (such as templates in C++ and generics in Ada) type conversions, and virtualization. The net result is that the OOT & RT supplement could be invoked on most projects utilizing procedural languages as well as OOT.
Source: DO-178C brings modern technology to safety-critical software development – Military Embedded Systems