• Corpus ID: 12677789

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… 

Figures from this paper

A quantitative framework for software restructuring
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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.
Differences between a static and a dynamic test-to-code traceability recovery method
TLDR
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
TLDR
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
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
Module interconnection languages
Rigi: a system for programming-in-the-large
  • H. Müller, K. Klashinsky
  • Computer Science
    Proceedings. [1989] 11th International Conference on Software Engineering
  • 1988
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
  • R. Selby, V. Basili
  • Computer Science
    Proceedings. 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
SOFTMAN: environment for forward and reverse CASE
Documenting software systems with views
TLDR
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.
...
...