James Power - Papers Published in 2004


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 metrics suite for grammar-based software

James F. Power and Brian A. Malloy,
Software Maintenance and Evolution: Research and Practice,
Vol. 16, No. 6, November/December, 2004, pp. 405-426.
ISSN: 1532-060X.
(c) Copyright 2004, John Wiley & Sons, Ltd..

One approach to measuring and managing the complexity of software, as it evolves over time, is to exploit software metrics. Metrics have been used to estimate the complexity of the maintenance effort, to facilitate change impact analysis, and as an indicator for automatic detection of a transformation that can improve the quality of a system. However, there has been little effort directed at applying software metrics to the maintenance of grammar-based software applications, such as compilers, editors, program comprehension tools and embedded systems. In this paper, we adapt the software metrics that are commonly used to measure program complexity and apply them to the measurement of the complexity of grammar-based software applications. Since the behaviour of a grammar-based application is typically choreographed by the grammar rules, the measure of complexity that our metrics provide can guide maintainers in locating problematic areas in grammar-based applications.

A Formal Model of Forth Control Words in the Pi-Calculus

James F. Power and David Sinclair,
Journal of Universal Computer Science,
Vol. 10, No. 9, September, 2004, pp. 1272-1293.
ISSN: 0948-6968.
(c) Copyright 2004, J.UCS.

In this paper we develop a formal specification of aspects of the Forth programming language. We describe the operation of the Forth compiler as it translates Forth control words, dealing in particular with the interpretation of immediate words during compilation. Our goal here is to provide a basis for the study of safety properties of embedded systems, many of which are constructed using Forth or Forth-like languages. To this end we construct a model of the Forth compiler in the pi-calculus, and have simulated its execution by animating this model using the Pict programming language.

Identifying and evaluating a generic set of superinstructions for embedded Java programs

Diarmuid O'Donoghue and James F. Power,
International Conference on Embedded Systems and Applications,
Las Vegas, Nevada, USA, June 21-24, 2004, pp. 192-198.
ISBN: 1-932415-41-6.
(c) Copyright 2004, CSREA Press.

In this paper we present an approach to the optimisation of interpreted Java programs using superinstructions. Unlike existing techniques, we examine the feasibility of identifying a generic set of superinstructions across a suite of programs, and implementing them statically on a JVM. We formally present the sequence analysis algorithm and we describe the resulting sets of superinstructions for programs from the embedded CaffeineMark benchmark suite. We have implemented the approach on the Jam VM, a lightweight JVM, and we present results showing the level of speedup possible from this

Run-Time Cohesion Metrics: An Empirical Investigation

Aine Mitchell and James F. Power,
International Conference on Software Engineering Research and Practice,
Las Vegas, Nevada, USA, June 21-24, 2004, pp. 532-537.
ISBN: 1-932415-29-7.
(c) Copyright 2004, CSREA Press.

Cohesion is one of the fundamental measures of the 'goodness' of a software design. The most accepted and widely studied object-oriented cohesion metric is Chidamber and Kemerer's Lack of Cohesion in Methods measure. However due to the nature of object-oriented programs, static design metrics fail to quantify all the underlying dimensions of cohesion, as program behaviour is a function of it operational environment as well as the complexity of the source code. For these reasons two run-time object-oriented cohesion metrics are described in this paper, and applied to Java programs from the SPECjvm98 benchmark suite. A statistical analysis is conducted to assess the fundamental properties of the measures and investigate whether they are redundant with respect to the static cohesion metric. Results to date indicate that run-time cohesion metrics can provide an interesting and informative qualitative analysis of a program and complement existing static cohesion metrics.

An Empirical Investigation into the Dimensions of Run-Time Coupling Metrics in Java programs

Aine Mitchell and James F. Power,
The Third International Conference on the Principles and Practice of Programming in Java,
Las Vegas, Nevada, USA, June 16-18, 2004, pp. 9-14.
(c) Copyright 2004, ACM.

Software quality is an important external software attribute that is difficult to measure objectively. Several studies have identified a clear empirical relationship between static coupling metrics and software quality. However due to the nature of object-oriented program static metrics fail to quantify all the underlying dimensions of coupling, as program behaviour is a function of it operational environment as well as the complexity of the source code. In this paper a set of run-time object-oriented coupling metrics are described and empirically validated in terms of their usefulness in predicting software quality. Preliminary results indicate that run-time coupling metrics can provide an interesting and informative qualitative analysis of a program and complement existing static coupling metrics.

An approach to quantifying the run-time behaviour of Java GUI applications

Aine Mitchell and James F. Power,
Winter International Symposium on Information and Communication Technologies,
Cancun, Mexico, January 5-8, 2004.
(c) Copyright 2004, ACM.

This paper outlines a new technique for collecting dynamic trace information from Java GUI programs. The problems of collecting run-time information from such interactive applications in comparison with traditional batch style execution benchmark programs is outlined. The possible utility of such run-time information is discussed and from this a number of simple run-time metrics are suggested. The metrics results for a small CelsiusConverter Java GUI program are illustrated to demonstrate the viability of such an analysis.


Contact: James Power
Last revised: 9 Jan 2006