Title :
Reengineering with reflexion models: a case study
Author :
Murphy, Gail C. ; Notkin, David
Author_Institution :
British Columbia Univ., Vancouver, BC, Canada
fDate :
8/1/1997 12:00:00 AM
Abstract :
Reengineering large and complex software systems is often very costly. The article presents a reverse engineering technique and relates how a Microsoft engineer used it to aid an experimental reengineering of Excel-a product that comprises about 1.2 million lines of C code. The reflexion technique is designed to be lightweight and iterative. To use it, the user first defines a high-level structural model, then extracts a map of the source code and uses a set of computation tools to compare the two models. The approach lets software engineers effectively validate their high-level reasoning with information from the source code. The engineer in this case study-a developer with 10-plus years at Microsoft-specified and computed an initial reflexion model of Excel in a day and then spent four weeks iteratively refining it. He estimated that gaining the same degree of familiarity with the Excel source code might have taken up to two years with other available approaches. On the basis of this experience, the authors believe that the reflexion technique has practical applications
Keywords :
software engineering; spreadsheet programs; systems analysis; systems re-engineering; C code; Excel reengineering; Microsoft engineer; complex software systems; computation tools; high-level reasoning; high-level structural model; large software systems; reflexion models; reverse engineering technique; software engineers; systems reengineering; Costs; Data mining; Iterative methods; Knowledge engineering; Reverse engineering; Robustness; Software engineering; Software performance; Software systems;