Abstract: We present the
design and implementation of TaxTOOLJ, Taxonomy Tool for
Object-Oriented Language Java. TaxTOOLJ is a reverse engineering tool
that catalogs the classes of a Java software application using the
taxonomy of object oriented classes. TaxTOOLJ is entirely implemented
in Java, which makes it very reliable, portable, and maintainable. It
represents a scalable tool that performs efficiently during
introspection of large scale Java applications and enables support for program
understanding, software metrics, testing.
A Prediction Model for the Combination of Class
Characteristics in Large OO Applications. Peter J. Clarke, Djuradj
Babich, Tariq M. King and B.M. Golam Kibria.
Abstract: In this
paper we present the first study that investigates how the characteristics of
a class are combined, thereby providing feedback on how the features provided
by Java 1.4.x or earlier and Java 1.5.x or earlier are currently used. The
study uses a taxonomy of OO classes that provides a mechanism to catalog any
class written in Java into one of a finite set of groups. A detailed
description on how we enumerated all the possible groups of Java classes is
also provided. Using TaxTOOLJ (a Taxonomy Tool for the Object-Oriented
Language Java) we cataloged over 155k classes from a cross-section of Java
applications written in Java 1.4.x and Java 1.5.x to identify the distribution
of groups used by developers. We use the data from the study to create
prediction models that would allow developers to estimate the number of
different groups of classes, fields and methods that are expected to be
generated for large Java applications. This knowledge would be of significant
benefit to aid developers in testing and maintenance activities during the
software process.
A Taxonomy of
Java Classes to Support Testing. David Crowther,
Djuradj Babich,
and Peter J. Clarke.
Abstract: In this paper, we
describe a class abstraction technique (CAT) for the Java programming
language that supports the testing process by capturing aspects of
software complexity based on the combination of class characteristics.
These class characteristics relate to properties of the class features
such as concurrency, polymorphism, exception handling, and
accessibility as well as relationships between classes. Our taxonomy
(CAT) for Java allows us to generate a finite number of possible class
groups (taxa). We also provide a high-level design for a tool to
catalog classes based on our taxonomy.