ABSTRACT

This chapter provides reverse engineering, identifies some issues related to it, and provides high level recommendations for how to reverse engineer the life cycle data required satisfying DO-178C objectives. DO-178C defines it as: The process of developing higher level software data from existing software data. Reverse engineering is an approach to generating software life cycle data that did not originally exist, cannot be found, is inadequate, or is not available in order to satisfy the applicable DO-178B/ED-12B objectives. Reverse Engineering is a class of development processes that start with detailed representations of an implementation, and apply various techniques to produce more generalized, less detailed representations. The certification authorities have identified common issues surrounding reverse engineering in Certification Authorities Software Team (CAST) -18. The CAST-18 focuses on reverse engineering from source code. These issues have also been noted in project-specific Federal Aviation Administration issue papers, when reverse engineering is proposed.