DO-332: Object Oriented Technology and related technologies
Object-oriented programming and related techniques offer benefits that can be attractive to software engineers, such as allowing encapsulation, increased code reusability and easier troubleshooting of code issues. As such, these technologies are often used in the aerospace industry.
RTCA DO-332 (Object-Oriented Technology and Related Techniques Supplement to DO-178C and DO-278A) provides additional objectives that apply for design, implementation and verification activities when using object-oriented programming and related techniques in DO-178C projects and clarifies how existing DO-178C objectives and activities apply to projects using these technologies, including a discussion of vulnerabilities that may arise due to using object-oriented programming.
One of the key additional verification activities discussed in DO-330 is model coverage analysis, which can detect unintended functionality in the model. As per DO-330, performing model coverage analysis does not eliminate the need to perform coverage analysis of the generated code that will actually execute.
Some examples of extra objectives that must be achieved when using object-oriented programming include planning dynamic memory management and exception management strategies in your software architecture, verifying class hierarchy with respect to high-level requirements, verifying methods with respect to requirements, verifying local type consistency in the source code, and verifying that dynamic memory management and exception management implementations are consistent with your software architecture and high-level requirements.
If you choose to use object-oriented programming in a DO-178C project, you will need to understand the guidance in DO-332 and consider the impact that using the technology will have on all stages of your DO-178C life cycle, including verification. You will need to write up your implementation and verification strategies in your DO-178C planning documents.