DO-332 Introduction – Object Oriented Technology
Modern avionics increasingly use Object Oriented Technology (OOT) and this DO-332 Whitepaper discusses OOT for avionics software development. Avionics OOT is often thought of for C++ , but it also applies to Ada or even Java today. Avionics OOT provides improved reusability and design advantages over traditional software languages, but also has many risks which must be considered and mitigated. This DO-332 OOT whitepaper provides a brief tutorial and best practices for DO-332 OOT, particularly DO-178C OOT.
DO-332, Object-Oriented Technology and Related Techniques Supplement to DO-178C and DO-278A, is a 150-page guideline governing OOT usage in airborne and ground-based aviation software. However, since true OOT is relatively new to aviation software (Ada ’95 has been around since … 1995), the authors of DO-332 faced a large hurdle: how to provide meaningful guidelines to persons generally unfamiliar with object oriented software? The answer was skillfully handled within DO-332 by blending practical “guidelines” with an introduction to OOT which laid a common foundation for OOT terminology and application.
There are many ways of approaching software development; hundreds of books are in print with each seemingly preaching their own “methodology”. But as all the many colors in a peacock stem from basic Red-Green-Blue, software development at its most (overly) simplified has two “primary colors”: structured design and object-oriented design. But with software, these “colors” do not blend well – software design is considered to be either “structured” or “object oriented”. Structured software is designed by considering each sequence of computer actions one event at a time. Conversely, object oriented software is designed by first articulating software objects and actions to be performed on those objects, then integrating such objects/actions into meaningful groups. Yes, structured design may have some objects. Yes, object oriented design may have sequential structural behaviors. But as a few drops of oil can float on water, that oil and water are hardly integrated; similarly structured and object oriented design are two distinct approaches which in their pure forms do not integrate well with each other.