A Reverse Engineering Approach to Subsystem Structure Identiication a Reverse Engineering Approach to Subsystem Structure Identiication
@inproceedings{Uller1993ARE, title={A Reverse Engineering Approach to Subsystem Structure Identiication a Reverse Engineering Approach to Subsystem Structure Identiication}, author={Hausi A M Uller and Mehmet A. Orgun and Scott R. Tilley and James S. Uhl}, year={1993} }
1 SUMMARY Reverse engineering is the process of extracting system abstractions and design information out of existing software systems. This process involves the identiication of software artifacts in a particular subject system, the exploration of how these artifacts 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…
No Paper Link Available
14 Citations
A quantitative framework for software restructuring
- Computer ScienceJ. Softw. Maintenance Res. Pract.
- 1999
A set of design-level cohesion and coupling measures provides the objective criteria for comparing alternative design structures and can result in restructured software systems that are easier to maintain and reuse.
Reverse engineering a legacy software in a complex system: A systems engineering approach
- Computer ScienceINCOSE International Symposium
- 2018
By jointly apply the CAFCR model and the reverse engineering, a roadmap is created to guide incremental developments of legacy software in a complex system, which benefits both the maintenance of existing implementation and realization of new functionalities for improved system performance.
Understanding software systems using reverse engineering technology perspectives from the Rigi project
- Computer ScienceCASCON
- 1993
Reverse engineering is introduced as a possible solution to program understanding and software analysis and some analyses on the source code of SQL/DS are performed.
A System for Generating Reverse Engineering Tools: A Case Study of Software Modularisation
- Computer ScienceAutomated Software Engineering
- 2004
A system for developing code analysers that uses a database to store both a no-loss fine-grained intermediate representation and the analyses' results and a foreign language interface allows the analysers to be embedded into C programs.
Using software evolution to focus architectural recovery
- Computer ScienceAutomated Software Engineering
- 2006
This paper proposes a light-weight approach to architectural recovery, called Focus, which has three unique facets: first, it uses a system's evolution requirements to isolate and incrementally recover only the fragment of the system's architecture affected by the evolution, and secondly, in addition to software components, it recovers the key architectural notions of software connector and architectural style.
A C++ data model supporting reachability analysis and dead code detection
- Computer ScienceESEC '97/FSE-5
- 1997
The design rationales behind a data model for a C++ software repository that supports reachability analysis and dead code detection at the declaration level are examined and how future software repositories can be evaluated for completeness at a selected abstraction level is illustrated.
Cognitive design elements to support the construction of a mental model during software exploration
- Computer ScienceJ. Syst. Softw.
- 1999
Differences between a static and a dynamic test-to-code traceability recovery method
- Computer ScienceSoftware Quality Journal
- 2018
This work proposes a semi-automatic method for recovery of test-to-code traceability links using static and dynamic approaches, comparing their results and presenting the discrepancies to the user, who will determine the final traceable links based on the differences and contextual information.
Documenting-in-the-large vs. documenting-in-the-small
- Computer ScienceCASCON
- 1993
This paper outlines an approach to supporting software evolution through documenting-in-the-large, based on a flexible reverse engineering process which uses virtual subsystem stratifications to represent multiple abstract views of a software system.
Domain-retargetable reverse engineering
- Computer Science1993 Conference on Software Maintenance
- 1993
A user programmable approach to reverse engineering is described. The approach uses a scripting language that enables users to write their own routines for these activities, making the system…
References
SHOWING 1-10 OF 35 REFERENCES
Rigi: a system for programming-in-the-large
- Computer ScienceProceedings. [1989] 11th International Conference on Software Engineering
- 1988
Randi was designed to address three of the most difficult problems in the area of programming-in-the-large: the mastery of the structural complexity of large software systems, the effective presentation of development information, and the definition of procedures for checking and maintaining the completeness, consistency, and traceability of system descriptions.
Creating specifications from code: Reverse-engineering techniques
- Computer ScienceJ. Softw. Maintenance Res. Pract.
- 1991
Techniques which produce abstractions in object-oriented and functional notations are described, thus aiding the comprehension of the essential structure and operations of the application, and providing formal design information which may make the code much more maintainable and certainly more respectable.
Extracting and restructuring the design of large systems
- Computer ScienceIEEE Software
- 1990
The approach used is to map the resource exchange among modules and then derive a hierarchical design description using a system-restructuring algorithm, using a module interconnection language, NuMIL.
Reverse engineering and design recovery: a taxonomy
- Business, Computer ScienceIEEE Software
- 1990
The authors define and relate six terms: forward engineering, reverse engineering, redocumentation, design recovery, restructuring, and reengineering to apply to the underlying engineering processes, regardless of the degree of automation applied.
Management decision support through reverse engineering technology
- Computer ScienceCASCON
- 1992
How a software system can benefit from reverse engineering is outlined, and how management personnel can use the information provided by this process as an aid in making informed decisions related to large software projects is described.
Software interconnection models
- Computer ScienceICSE '87
- 1987
The semantic interconnection model is introduced, which incorporates the advantages of the unit and syntactic interconnection models and provides extremely useful extensions to them and provides tools that are knowledgeable about the process of system construction and evolution and that work in symbiosis with the system builders to construct and evolve large software systems.
Error localization during software maintenance: generating hierarchical system descriptions from the source code alone
- Computer ScienceProceedings. Conference on Software Maintenance, 1988.
- 1988
An empirical study is presented that investigates hierarchical software system descriptions that are based on measures of cohesion and coupling. The study evaluates the effectiveness of the…
Documenting software systems with views
- Computer ScienceSIGDOC '92
- 1992
This paper outlines a reverse engineering methodology for building subsystem structures out of software building blocks, and describes how documenting a software system with views created by this process can produce numerous benefits.