Results 1 -
9 of
9
A logic-based approach to reverse engineering tools production
- IEEE Transactions on Software Engineering
, 1992
"... Abstiact-This paper analyzes difficulties arising in the use ..."
Abstract
-
Cited by 24 (3 self)
- Add to MetaCart
Abstiact-This paper analyzes difficulties arising in the use
An Intermediate Representation for Integrating Reverse Engineering Analyses
, 1998
"... Intermediate representations (IR) are a key issue both for compilers as well as for reverse engineering tools to enable efficient analyses. Research in the field of compilers has proposed many sophisticated IRs that can be used in the domain of reverse engineering, especially in the case of deep ana ..."
Abstract
-
Cited by 17 (3 self)
- Add to MetaCart
(Show Context)
Intermediate representations (IR) are a key issue both for compilers as well as for reverse engineering tools to enable efficient analyses. Research in the field of compilers has proposed many sophisticated IRs that can be used in the domain of reverse engineering, especially in the case of deep analyses, but reverse engineering has also its own requirements for intermediate representations not covered by traditional compiler technology. This paper discusses requirements of IRs for reverse engineering. It shows then how most of these requirements can be met by extending and integrating existing IRs. These extensions include a generalized AST and a mechanism supporting multiple views on programs. Moreover, the paper shows how these views can efficiently be implemented.
Re-engineering Legacy Software through Language Conversion
, 2000
"... Software industry has a huge amount of legacy programs needing modernization and re-engineering. We are especially interested in re-engineering legacy programs via language conversion. In language conversion, the source and target languages can be either from the same programming paradigm or from di ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
Software industry has a huge amount of legacy programs needing modernization and re-engineering. We are especially interested in re-engineering legacy programs via language conversion. In language conversion, the source and target languages can be either from the same programming paradigm or from di#erent ones. Thus, we consider program modernization from two aspects. If the source and target languages share the same programming paradigm, we can modernize programs via source-to-source translation. If the languages are from di#erent paradigms, for example procedural and object-oriented, we need re-engineering means in modernization, particularly in identifying objects from procedural code. After finding objects and their operations, we need again source-to-source translation methods in the actual conversion. As a constructive part of this thesis, we have implemented a converter translating PL/M programs into C. As an implementation tool of that converter, we have used TaLE (Tampere Language Editor). Because of the nature of the legacy software and PL/M language, we have been forced to extend TaLE. Since legacy systems are typically large, we have developed a technique to reduce the space requirements of the converter. In addition, conditional compilation of the source language may cause parsing problems in source-to-source translation. As a solution for this problem, we introduce multi-branch parsing. Both of these techniques are implemented in TaLE. We also show how to exploit the existing features of TaLE in information passing. We have extended the PL/M-to-C converter with object identification methods as a first step to enable translation from a procedural language into an objectoriented one (for example, C++). We introduce new methods to identify objectoriented f...
An Overview of Structural and Specification Driven Candidature Criteria for Reuse Reengineering Processes
, 1995
"... One of the most promising ways to make the population of a repository of reusable assets cost effective and to obtain useful results in the short time is by extracting and reengineering them from existing software. A reuse reengineering process consists of the set of activities for identifying softw ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
(Show Context)
One of the most promising ways to make the population of a repository of reusable assets cost effective and to obtain useful results in the short time is by extracting and reengineering them from existing software. A reuse reengineering process consists of the set of activities for identifying software components implementing abstractions, reengineering them according to a predefined template, associating them with their interface and functional specification and populating a repository with the reusable assets so obtained. Code scavenging consists in searching existing software systems for source code components that implement software abstractions. We present an overview of code scavenging techniques with reference to the first phase of the RE 2 project reference paradigm for setting up reuse reengineering processes. Several program representations proposed in the literature for software maintenance and in particular useful for reverse engineering and reengineering are also describ...
Verification, and Validation of Self-checking Software Components
- Proc. International Phoenix Conference on Computers and Communications 96. IEEE, Piscataway, NJ USA
"... ..."
Reverse Engineering: Why and How to Reverse Engineer Software
- in Proceedings of the California Software Symposium (CSS
, 1996
"... Today especially large organizations are not only faced with the problem of replacing their information systems with completely new ones, but they have to maintain and gain control over their legacy applications. Reverse engineering provides the means for this purpose supporting in recapturing lost ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
(Show Context)
Today especially large organizations are not only faced with the problem of replacing their information systems with completely new ones, but they have to maintain and gain control over their legacy applications. Reverse engineering provides the means for this purpose supporting in recapturing lost information, restructuring complex systems or transforming old systems to a new and more maintainable architecture. This paper introduces the basic concepts of reverse engineering, clarifies related terms and indicates important reverse engineering approaches. Furthermore, a particular reverse engineering methodology for re-architecturing legacy applications is introduced and its impact on software engineering is discussed. Keywords: reverse engineering, re-engineering, software engineering, redocumentation, restructuring, design recovery, re-architecturing. INTRODUCTION For many years software engineering primarily concentrated on the development of new applications. Much research as wel...
PEOPLE, PROCESSES, AND PRODUCTS: CASE STUDIES IN OPEN-SOURCE SOFTWARE USING COMPLEX NETWORKS
, 2011
"... ..."
Reverse Engineering: Why and How to Reverse Engineer Software
"... Today especially large organizations are not only faced with the problem of replacing their information systems with completely new ones, but they have to maintain and to gain control over their legacy applications. Reverse engineering provides the means for this purpose supporting in recapturing lo ..."
Abstract
- Add to MetaCart
(Show Context)
Today especially large organizations are not only faced with the problem of replacing their information systems with completely new ones, but they have to maintain and to gain control over their legacy applications. Reverse engineering provides the means for this purpose supporting in recapturing lost information, restructuring complex systems or transforming old systems to a new and more maintainable architecture. This paper introduces the basic concepts of reverse engineering, clarifies related terms and indicates important reverse engineering approaches. Furthermore, a particular reverse engineering methodology for re-architecturing legacy applications is introduced and its impact on software engineering is discussed.
A Survey Of Object Identification In Software Re-Engineering
, 1998
"... In order to translate a non-object-oriented (procedural) program into an object-oriented one, objects must be identified from the procedural program. Object-oriented programs (compared with procedural ones) are considered to be easier to reuse and maintain. Thus, object identification followed by tr ..."
Abstract
- Add to MetaCart
In order to translate a non-object-oriented (procedural) program into an object-oriented one, objects must be identified from the procedural program. Object-oriented programs (compared with procedural ones) are considered to be easier to reuse and maintain. Thus, object identification followed by translation from a non-object-oriented language into an object-oriented language is one way to re-engineer legacy programs. This paper gives an overview of re-engineering in general and of object identification especially. Associated with objectorientation, identification of (design) patterns is discussed, too.