10398473
Structural Redocumentation: A Case Study
Most software documentation typically describes the program at the algorithm and data-structure level. For large legacy systems, understanding the system's architecture is more important. The authors propose a method of reverse engineering through redocumentation that promises to extend the useful life of large systems. >
1805653
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 domain-retargetable. The environment supported by this programmable approach subsumes existing reverse engineering systems by being able to simulate facets of each one and provides a smooth transition from semi-automatic to automatic reverse engineering.<<ETX>>
17291567
Understanding software systems using reverse engineering technology perspectives from the Rigi project
Software engineering research has focused mainly on software construction and has neglected software maintenance and evolution. Proposed is a shift in research from synthesis to analysis. Reverse engineering is introduced as a possible solution to program understanding and software analysis. Presented is reverse engineering technology developed as part of the Rigi project. The Rigi approach involves the identification of software artifacts in the subject system and the aggregation of these artifacts to form more abstract architectural models. Reported are some analyses on the source code of SQL/DS, performed by the authors while visiting the Program Understanding project at the IBM Centre for Advanced Studies in Toronto.
11319559
On inserting program understanding technology into the software change process
Program understanding technologies can be applied effectively in the analysis phase of a software change process. The analysis phase naturally follows a goal driven metaprocess. Described are issues involved with inserting program understanding technology into existing practice and into such a metaprocess. The implied processes of program understanding and reverse engineering tools play an important role. These issues pose major problems for the acceptance of redocumentation tools such as Rigi, an evolvable reverse engineering tool. An example using Rigi and its analysis methodology for change impact analysis is considered.
12936831
On designing an experiment to evaluate a reverse engineering tool
The Rigi reverse engineering system is designed to analyze and summarize the structure of large software systems. Two contrasting approaches are available for visualizing software structures in the Rigi graph editor. The first approach displays the structures through multiple, individual windows. The second approach, simple hierarchical multi-perspective (SHriMP) views, employs fisheye views of nested graphs. The paper describes the design of an experiment to evaluate these alternative user interfaces. Various results from a preliminary pilot study to test the experiment design are reported.
15226793
Code migration through transformations: an experience report
One approach to dealing with spiraling maintenance costs, manpower shortages and frequent breakdowns for legacy code is to "migrate" the code into a new platform and/or programming language. The objective of this paper is to explore the feasibility of semi-automating such a migration process in the presence of performance and other constraints for the migrant code. In particular, the paper reports on an experiment involving a medium-size software system written in PL/IX. Several modules of the system were migrated to C++, first by hand and then through a semiautomatic tool. After discovering that the migrant code was performing up to 50% slower than the original, a second migration effort was conducted which improved the performance of the migrant code substantially. The paper reports on the transformation techniques used by the transformation process and the effectiveness of the prototype tools that were developed. In addition, the paper presents preliminary results on the evaluation of the experiment.
45209699
A Workflow Model for Chinese Business Processes
This paper proposes a new workflow model (MAWM) targeted at Chinese business processing. The cultural dependent characteristics of Chinese business processes are identified and taken into account in the MAWM model. MAWM adopts a decentralized modeling style based on the conventional business perspective on labor division and cooperation. This idea is reflected in the concept of agent-workflow. Activity-based and communication-based modeling methods are integrated in the process model. They are used to model different types of business activities. In addition, the model is formalized using Process Algebra and a simplified algorithm is proposed for safety verification of workflow processes.
15569102
Improving document clustering by utilizing meta-data
In this paper, we examine how to improve the precision and recall of document clustering by utilizing meta-data. We use meta-data through NewsML tags to assist clustering and show that this approach is effective through experiments on sample news data. Experimental result shows that clustering using NewsML could improve average recall and precision over the same without using NewsML by about 10%. Our algorithm facilitates effective e-business for the news media and publishing industry to empower e-business.
38414976
An industrial experience in reverse engineering
This paper describes a reverse engineering case studywith an industrial-scale software system. The steps followedin the study involved: establishing a more comprehensivedomain model for representing structural factsabout C/C++ software; adapting a robust C/C++ parserthat focuses on source code before the preprocessing stage;decomposing or clustering the extracted artifacts in variousways for different understanding needs; generating reportsto highlight anomalies in the system; and clarifyingknowledge about its conceptual architecture. Also summarizedare lessons learned from this experience.
1581000
Extracting and representing cross-language dependencies in diverse software systems
This paper presents an approach for dealing with multi-language software systems. Much of the focus of reverse engineering tools is in analyzing software systems written in one programming language. Nowadays, the abundance of new technologies and languages used to ease application development raises new challenges for reverse engineers. Therefore, this paper focuses on finding cross-language dependencies in such diverse, heterogeneous software systems. Our approach uses source navigator extractors to produce the facts inside each language. Then, we show an example for finding Java Native Interface (JNI) dependencies between facts from Java and C/C++ code. The integrated facts are produced in GXL form, and conform to a unified schema introduced in the paper. This approach is useful from several perspectives. It illustrates how to retrieve the dependencies from software systems written in more than one programming language. Also, the generated facts conform to the GXL format, which is accepted by many reverse engineering tools. The usefulness and scalability of the approach are tested in a case study.
19534046
Animating the Evolution Process of Genetic Algorithms
This paper reports the work on the development of an animation system for visualising the optimisation process of the Genetic Algorithm. The description on the requirements and structure of the system is presented. The developed system is applied to visualise some six testing cases. Sequences of animation shots of the evolution process for solving the Branin RCOS problem and the Schaffer-6 problem are presented. In the latter example, the effect of a solution acceleration technique is also demonstrated. The method of building the visualisation system can be applied to other evolutionary computation techniques.