Reengineering

Reengineering is an effective method of reuse of the software for prolongations of the legacy systems. The general reengineering processes include reverse engineering, directed to recovering of legacy object design, and forward that provides the reconstructed software.

In our case the application of reengineering was caused by following circumstances: the airplane was not accessible to study; the original computer was out of order, so we was not be able to observe the original simulator behavior; the project documentation was limited. The incoming for reverse process were: the source code listings assembler language, general descriptions of simulator models and acceptance tests cases, accessible in maintenance documentation. The validation of renewed software was achieved using comparison of recovered algorithms, models and tests.

The final criterion of adequacy of the new software was the evaluation of simulator behavior by the group of experts.