Reverse Software Engineering
1988
The goal of Reverse Software Engineering is the reuse of old outdated programs in developing new systems which have an enhanced functionality and employ modern programming languages and new computer architectures. Mere transliteration of programs from the source language to the object language does not support enhancing the functionality and the use of newer computer architectures. The main concept in this report is to generate a specification of the source programs in an intermediate nonprocedural, mathematically oriented language. This specification is purely descriptive and independent of the notion of the computer. It may serve as the medium for manually improving reliability and expanding functionally. The modified specification can be translated automatically into optimized object programs in the desired new language and for the new platforms. This report juxtaposes and correlates two classes of computer programming languages: procedural vs. nonprocedural. The nonprocedural languages are also called rule based, equational, functional or assertive. Nonprocedural languages are noted for the absence of "side effects" and the freeing of a user from "thinking like a computer" when composing or studying a procedural language program. Nonprocedural languages are therefore advantageous for software development and maintenance. Non procedural languages use mathematical semantics and therefore are more suitable for analysis of the correctness and for improving the reliability of software. The difference in semantics between the two classes of languages centers on the meaning of variables. In a procedural language a variable may be assigned multiple values, while in a nonprocedural language a variable may assume one and only one value. The latter is the same convention as used in mathematics. The translation algorithm presented in this report consists of renaming variables and expanding the logic and control in the procedural program until each variable is assigned one and only one value. The translation into equations can then be performed directly. The source program and object specification are equivalent in that there is a one to one equality of values of respective variables. The specification that results from these transformations is then further simplified to make it easy to learn and understand it when performing maintenance. The presentation of translation algorithms in this report utilizes FORTRAN as the source language and MODEL as the object language. MODEL is an equational language, where rules are expressed as algebraic equations. MODEL has an effective translation into the object procedural languages PL/1, C and Ada. Comments University of Pennsylvania Department of Computer and Information Science Technical Report No. MSCIS-88-99. This technical report is available at ScholarlyCommons: http://repository.upenn.edu/cis_reports/661 REVERSE SOFTWARE ENGINEERING N. Prywes, X. Ge, I. Lee and M. Song Department of Computer and Information Science School of Engineering and Applied Science University of Pennsylvania Philadelphia, PA 19104 December 1988 Prepared Under Contract AFOSR-88-0116 from the Alr Force Office of Scientific Research Boiling Alr-Force Base, DC 20332-6448
Keywords:
- Correction
- Source
- Cite
- Save
- Machine Reading By IdeaReader
26
References
3
Citations
NaN
KQI