Djuradj Babich

Learn More
The transition from Java 1.4 to Java 1.5 has provided the programmer with more flexibility due to the inclusion of several new language constructs, such as parameterized types. This transition is expected to increase the number of class clusters exhibiting different combinations of class characteristics. In this paper we investigate how the number and(More)
As researchers and members of the IT industry move towards a vision of computing systems that manage themselves, it is imperative to investigate ways to dynamically validate these systems to avoid the high cost of system failures. Although research continues to advance in many areas of autonomic computing, there is a lack of development in the area of(More)
One of the characteristics of the increasingly widespread use of object-oriented libraries and the resulting intensive use of inheritance is the proliferation of dependencies on abstract classes. Such classes defer the implementation of some features, and are typically used as a specification or design tool. However, since their features are not fully(More)
In this paper, we describe a class abstraction technique (CAT) for Java programs that support 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(More)
In this paper, we propose an innovative suite of metrics based on a class abstraction that uses a taxonomy for OO classes (CAT) to capture aspects of software complexity through combinations of class characteristics. We empirically validate their ability to predict fault prone classes using fault data for six versions of the Java-based open-source Eclipse(More)
parent ACsEx.A Concrete children ACsEx.B1, ACsEx.B2, ACsEx1.B3 Class ACsEx.B1: Inherited methods B1.a2(), B1.a3(), B1.a4(P), B1.a7() Class ACsEx.B2: Inherited methods B2.a1(P), B2.a4(P), B2.a6(), B2.a7(), B2.a8(int) Class ACsEx1.B3: Inherited methods B3.a4(P), B3.a6(), B3.a7(), B3.a8(int) for the classes ACsEx.A, ACsEx.B1, ACsEx.B2, and ACsEx1.B3 from the(More)
One of the characteristics of the increasingly widespread use of object-oriented libraries and the resulting intensive use of inheritance is the proliferation of dependencies on abstract classes. Since abstract classes cannot be instantiated, they cannot be tested in isolation using standard execution-based testing strategies. A standard approach to testing(More)
Many software developers are using the Java language as the language of choice on many applications. This is due to the effective use of the object-oriented (OO) paradigm to develop large software projects and the ability of the Java language to support the increasing use of web technologies in business applications. The recent release of the Java version(More)