In the past, companies specializing in both military and commercial aviation were given several years to run their products through the litany of tests and certifications required to then reach the market.
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.
While DO-178C was published in 2012, with an Advisory Circular (AC) following in 2013, it continues to breathe life into the software development, coding, verification, configuration management, quality assurance, and liaison process of engineers creating software — and not only for airliners and business aircraft.