Reverse‐engineering is the process of extracting system abstractions and design information out of existing software systems. This process involves the identification of software artefacts in a particular subject system, the exploration of how these artefacts interact with one another, and their aggregation to form more abstract system representations that facilitate program understanding. This paper describes our approach to creating higher‐level abstract representations of a subject system, which involves the identification of related components and dependencies, the construction of layered subsystem structures, and the computation of exact interfaces among subsystems. We show how top‐down decompositions of a subject system can be (re)constructed via bottom‐up subsystem composition. This process involves identifying groups of building blocks (e.g., variables, procedures, modules, and subsystems) using composition operations based on software engineering principles such as low coupling and high cohesion. The result is an architecture of layered subsystem structures. The structures are manipulated and recorded using the Rigi system, which consists of a distributed graph editor and a parsing system with a central repository. The editor provides graph filters and clustering operations to build and explore subsystem hierarchies interactively. The paper concludes with a detailed, step‐by‐step analysis of a 30‐module software system using Rigi.
No abstract
Documentation has traditionally played a key role as an aid in program understanding. However, most documentation is in-the-small," describing the program at the algorithm and data structure level. For large, legacy software systems, one needs in-the-large" documentation describing the high-level structural aspects of the software system's architecture from multiple perspectives. One way of producing such structural documentation for existing software systems is to use reverse engineering technologies. This paper describes a case study in structural redocumentation: an analysis of SQL DS a multi-million line relational database system using a exible reverse engineering approach developed as part of the Rigi project.
No abstract
Program understanding can be enhanced using reverse engineering technologies. The understanding process is heavily dependent on both individuals and their specific cognitive abilities, and on the set of facilities provided by the program understanding environment. Unfortunately, most reverse engineering tools provide a fixed palette of extraction, selection, and organization techniques. This paper describes a programmable approach to reverse engineering. The approach uses a scripting language that enables users to write their own routines for common reverse engineering activities, such as graph layout, metrics, and subsystem decomposition, thereby extending the capabilities of the reverse engineering toolset to better suit their needs. A programmable environment supported by this approach subsumes existing reverse engineering systems by being able to simulate facets of each one.
We discuss two geosynchronous gravitational wave mission concepts, which we generically name gLISA. One relies on the science instrument hosting program onboard geostationary commercial satellites, while the other takes advantage of recent developments in the aerospace industry that result in dramatic satellite and launching vehicle cost reductions for a dedicated geosynchronous mission. To achieve the required level of disturbance free-fall onboard these large and heavy platforms we propose a "two-stage" drag-free system, which incorporates the Modular Gravitational Reference Sensor (MGRS) (developed at Stanford University) and does not rely on the use of N thrusters.Although both mission concepts are characterized by different technical and programmatic challenges, individually they could be flown and operated at a cost significantly lower than those of previously envisioned gravitational wave missions.We estimate both mission concepts to cost less than 500M US$ each, and in the year 2015 we will perform at JPL a detailed selecting mission cost analysis.
This paper describes an initial conceptual framework for the classification of reverse engineering tools and techniques that aid program understanding. It is based on a description of the canonical activities that are characteristic of the reverse engineering process. A descriptive model is presented that categorizes important support mechanism features based on a hierarchy of attributes.engineering environment must make this inverse mapping process easier by recovering lost information and making implicit information explicit. This paper develops a framework for computeraided reverse engineering support of program understanding. The framework provides a means to classify different approaches to reverse engineering and enables a common frame of reference for comparing different tools. It should be emphasized that the framework enables a comparison between different tools-it is not meant to be used as an evaluation mechanism. Evaluation requires a different set of comparative criteria, which are beyond the scope of this paper.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
334 Leonard St
Brooklyn, NY 11211
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.