|
A tool chain for reverse engineering C++ applicationsNicholas A. Kraft, Brian A. Malloy and James F. Power, Science of Computer Programming,
Vol. 69,
No. 1-3,
1 December,
2007, pp. 3-13.
ISSN: 0167-6423.
(c) Copyright 2007, Elsevier.
We describe a tool chain that enables experimentation and study of
real C++ applications. Our tool chain enables reverse engineering and
program analysis by exploiting gcc, and thus accepts any C++
application that can be analyzed by the C++ parser and front end of
gcc. Our current test suite consists of large, open-source
applications with diverse problem domains, including language
processing and gaming. Our tool chain is designed using a GXL-based
pipe-filter architecture; therefore, the individual applications and
libraries that constitute our tool chain each provide a point of
access. The preferred point of access is the g4api Application
Programming Interface (API), which is located at the end of the
chain. g4api provides access to information about the C++ program
under study, including information about declarations, such as classes
(including template instantiations); namespaces; functions; and
variables, statements, and some expressions. Access to the
information is via either a pointer to the global namespace, or a list
interface.
|
|
Intra-Class Testing of Abstract Class FeaturesPeter J. Clarke, Djuradj Babich, Tariq M. King and James F. Power, 18th IEEE International Symposium on Software Reliability Engineering, Trollhattan, Sweden,
5-9 November,
2007, pp. 191-200.
ISBN: 0-7695-3024-9.
(c) Copyright 2007, IEEE.
This paper presents a structured approach that supports the testing of
features in abstract classes. Core to the approach is a series of
static analysis steps that build a comprehensive view of the
inter-class dependencies in the system under test. We then leveraged
this information to define a test order for the methods in an abstract
class that minimizes the number of stubs required during testing, and
clearly identifies the required functionality of these stubs.
Our approach is based on a comprehensive taxonomy of object-oriented
classes that provides a framework for our analysis. First we describe
the algorithms to calculate the inter-class dependencies and the
test-order that minimizes stub creation. Then we give an overview of
our tool, AbstractTestJ that implements our approach by
generating a test order for the methods in an abstract Java class.
Finally, we harness this tool to provide an analysis of 12 substantial
Java applications that demonstrates both the feasibility of our
approach and the importance of this technique.
|
|
REM4j - A framework for measuring the reverse engineering
capability of UML CASE toolsSteven Kearney and James F. Power, 19th International Conference on Software Engineering and Knowledge Engineering, Boston, USA,
9-11 July,
2007, pp. 209-214.
ISBN: 1-891706-20-9.
(c) Copyright 2007, Knowledge Systems Institute.
Reverse Engineering is becoming increasingly important in the software
development world today as many organizations are battling to
understand and maintain old legacy systems. Today's software engineers
have inherited these legacy systems which they may know little about
yet have to maintain, extend and improve. Currently there is no
framework or strategy that an organisation can use to determine which
UML CASE tool to use. This paper sets down such a framework, to allow
organisations to base their tool choice on this reliable framework.
We present the REM4j tool, an automated tool, for benchmarking UML
CASE tools, we then use REM4j to carry out one such evaluation with
eleven UML CASE tools. This framework allows us to reach a conclusion
as to which is the most accurate and reliable UML CASE tool.
|
|
On the application of software metrics to UML modelsJacqueline A. McQuillan and James F. Power, Models in Software Engineering - Workshops and Symposia at MoDELS 2006, Reports and Revised Selected Papers, Springer Lecture Notes in Computer Science,
Vol. 4364,
2007, pp. 217- 226.
ISBN: 978-3-540-69488-5.
(c) Copyright 2007, Springer.
In this position paper we discuss a number of issues relating to model
metrics, with particular emphasis on metrics for UML models. Our
discussion is presented as a series of nine observations where we
examine some of the existing work on applying metrics to UML models,
present some of our own work in this area, and specify some topics for
future research that we regard as important. Furthermore, we identify
three categories of challeges for model metrics and describe how our
nine observations can be partitioned into these categories.
This is a revised version of our paper from the Model
Size Metrics workshop at MODELS/UML 2006.
|
|
An Infrastructure to Support
Interoperability in Reverse EngineeringNicholas A. Kraft, Brian A. Malloy and James F. Power, Information and Software Technology,
Vol. 49,
No. 3,
March,
2007, pp. 292-307.
ISSN: 0950-5849.
(c) Copyright 2007, 2006 Elsevier B.V..
The reverse engineering community has recognized the importance of
interoperability, the cooperation of two or more systems to enable
the exchange and utilization of data, and has noted that the current
lack of interoperability is a contributing factor to the lack of
adoption of available infrastructures. To address the problems of
interoperability and reproducing previous results, we present an
infrastructure that supports interoperability among reverse
engineering tools and applications. We present the design of our
infrastructure, including the hierarchy of schemas that captures the
interactions among graph structures. We also develop and utilize our
implementation, which is designed using a GXL-based pipe-filter
architecture, to perform a case study that demonstrates the
feasibility of our infrastructure.
|