James Power - Papers Published in 2007


This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by each author's copyright. In most cases, these works may not be reposted without the explicit permission of the copyright holder.

A tool chain for reverse engineering C++ applications

Nicholas 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 Features

Peter 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 tools

Steven 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 models

Jacqueline 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 Engineering

Nicholas 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.


Contact: James Power
Last revised: Wednesday Jun 18, 2008