|
Ensuring behavioural equivalence in test-driven portingMark Hennessy and James F. Power, 16th Annual International Conference on
Computer Science and Software Engineering: Dublin Symposium, Dublin, Ireland,
October 17,
2006.
In this paper we present a test-driven approach to porting
code from one object-oriented language to another. We derive an
order for the porting of the code, along with a testing strategy to
verify the behaviour of the ported system at intra and inter-class
level. We utilise the recently defined methodology for porting C++
applications, eXtreme porting, as a framework for porting. This
defines a systematic routine based upon porting and
unit-testing classes in turn. We augment this approach by using
Object Relation Diagrams to define an order for porting that
minimises class stubbing. Since our strategy is
class-oriented and test-driven, we can ensure the structural
equivalence of the ported system, along with the limited behavioural
equivalence of each class. In order to extend this to
integration-level equivalence, we exploit aspect-oriented
programming to generate UML sequence diagrams, and we present a
technique to compare such automatically-generated diagrams for
equivalence. We demonstrate and evaluate our approach using a case
study that involves porting an application from C++ to
Java.
|
|
Some observations on the application of software metrics to
UML modelsJacqueline A. McQuillan and James F. Power, MoDELS/UML Workshop on Model Size Metrics, Genova, Italy,
October 3,
2006.
In this position paper we discuss 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.
|
|
Experiences of using the Dagstuhl Middle Metamodel for
defining software metricsJacqueline A. McQuillan and James F. Power, Principles and Practice of Programming in Java, Mannheim, Germany,
August 30 - September 1,
2006, pp. 194-198.
(c) Copyright 2006, ACM.
In this paper we report on our experiences of using the Dagstuhl
Middle Metamodel as a basis for defining a set of software metrics.
This approach involves expressing the metrics as Object Constraint
Language queries over the metamodel. We provide details of a
system for specifying Java-based software metrics through a tool
that instantiates the metamodel from Java class files and a tool
that automatically generates a program to calculate the expressed
metrics. We present details of an exploratory data analysis of some
cohesion metrics to illustrate the use of our approach.
|
|
Towards re-usable metric definitions at the meta-levelJacqueline A. McQuillan and James F. Power, PhD Workshop of the 20th European Conference on Object-Oriented Programming, Nantes, France,
July 3-7,
2006.
A large number of metrics for evaluating the quality of software
have been proposed in the literature. However, there is no standard
terminology or formalism for dening metrics and consequently many
of the metrics proposed have some ambiguity in their denitions. This
hampers the empirical validation of these metrics. To address this problem,
we generalise an existing approach to dening metrics that is based
on the Object Constraint Language and the Unied Modelling Language
metamodel. We have developed a prototype tool called DMML (Dening
Metrics at the Meta Level) that supports this approach and we present
details of this tool. To illustrate the approach, we present formal denitions
for the Chidamber and Kemerer metrics suite.
|
|
Exploiting design patterns to automate validation of class invariantsBrian A. Malloy and James F. Power, Software Testing, Verification and Reliability,
Vol. 16,
No. 2,
June,
2006, pp. 71-95.
ISSN: 0960-0833.
(c) Copyright 2006, 2005 John Wiley & Sons, Ltd..
In this paper, techniques are presented that
exploit two design patterns, the Visitor pattern and
the Decorator pattern, to automatically validate invariants
about the data attributes in a C++ class.
To investigate the pragmatics involved in using the two
patterns, a study of an existing, well-tested
application, keystone, a parser and front-end for
the C++ language, is presented. Results from the
study indicate that
these two patterns provide flexibility in terms of the
frequency and level
of granularity of validation of the class invariants,
which are expressed in the Object Constraint Language, OCL.
The quantitative results measure the impact of these
approaches and the additional faults uncovered
through validation of the case study.
|
|
A study of the influence of coverage on the relationship
between static and dynamic coupling metricsAine Mitchell and James F. Power, Science of Computer Programming,
Vol. 59,
No. 1-2,
January,
2006, pp. 4-25.
ISSN: 0167-6423.
(c) Copyright 2006, Elsevier B.V.
This paper examines the relationship between the static coupling
between objects (CBO) metric and some of its dynamic
counterparts. The dimensions of the relationship for Java programs
are investigated, and the influence of instruction coverage on
this relationship is measured. An empirical evaluation of 14 Java
programs taken from the SPEC JVM98 and the JOlden benchmark suites
is conducted using the static CBO metric, six dynamic metrics and
instruction coverage data.
The results presented here confirm preliminary studies indicating
the independence of static and dynamic coupling metrics, but point
to a strong influence of coverage on the relationship. Based on
this, this paper suggests that dynamic coupling metrics might be
better interpreted in the context of coverage measures, rather
than as stand-alone software metrics.
|