Reverse Engineering of Software Life Cycle Data In Certification Projects

Leanna K. Rierson, Barbara Lingberg · Journal of Aerospace Computing Information and Communication · 2006

Some applicants, developers, and commercial-off-the-shelf (COTS) software vendors have proposed reverse engineering as an approach for satisfying RTCS/DO-178B objectives for airborne software. RTCA/DO-178B, Software Considerations in Airborne Systems and Equipment Certification, serves as means of compliance for most airborne software in civil aircraft. DO-178B defines reverse engineering as the method of extracting software design information from source code and provides guidance particular to reverse engineering, when it is used to upgrade a development baseline. For purposes of this paper, reverse engineering is an approach for creating software life cycle data that did not originally exist, cannot be found, is not adequate, or is not available to a developer in order to meet applicable DO-178B objectives. Reverse engineering is not just generation of data - rather it is a process to assure that data is correct, software functionality is understood and well documented and software functions as intended and required by system. Reverse engineering is not, as some software developers propose, just an effort to generate software life cycle data without intent to build in quality and resulting design assurance. This article explores reverse engineering in airborne software projects, by explaining a definition for certification domain, describing motivation for its use, and documenting certification concerns. Two actual cases of reverse engineering are also described to illustrate certification concerns in real projects.

Read the paper · More papers on PaperTik