AuthorsA. Karahasanovic
TitleSupporting Application Consistency in Evolving Object-Oriented Systems by Impact Analysis and Visualisation
StatusPublished
Publication TypePhD Thesis
Year of Publication2002
Date PublishedMay
PublisherUniversity of Oslo
Thesis Typephd
Abstract

There is a growing number of object-oriented systems within areas such as CAD/CAM, software engineering, office automation and multimedia management where changes are rather a rule than an exception. Application systems in these areas are supposed to be easy to change due to encapsulation and inheritance. On the other hand, the transitivity of inheritance and aggregation structures makes it difficult to detect dependencies between classes, methods and fields of a system, which in turn makes it more difficult to change the system. The research presented in this thesis demonstrates that identifying and visualising impacts of changes in evolving object-oriented systems is a step towards improving the process of maintaining application consistency in such systems. A technology that identifies and visualises such impacts has been developed and evaluated. This technology helps discover dependencies and thus support maintaining application consistency. It is based on a component-based model of object-oriented systems and an improved version of a transitive closure algorithm. This technology identifies impacts of complex changes, i.e., changes involving several classes like merge and split. Furthermore, a visual language allows displaying relatively large amount of objects, both at a coarse level of granularity (packages, classes and interfaces) and at a fine level of granularity (fields and methods). Several empirical studies focusing on the usability of the proposed technology have been conducted. The results of these studies show that visualising impacts of changes improves the effectiveness of developers when conducting changes. Furthermore, the higher precision of impact analysis achieved by identifying impacts at the finer level of granularity (fields and methods) reduces the number of errors and the time needed to conduct changes. Identifying impacts of complex changes (merge, split) improves effectiveness. Empirical studies are a prerequisite for usability evaluation of any technology, including those supporting application consistency. Such studies, in turn, require efficient and reliable data collection. A tool for automatic data collection during software engineering experiments has been developed. This tool automatically collects data about the subjects and their interaction with the software technology under study. A {`}think-aloud' screen was proposed as a means for collecting subjective information. High-level subjective data sources (the think-aloud screen and evaluation screen) are combined with a low-level objective data sources (user command logs). It has been demonstrated that this combination may increase the validity of the conducted studies.

Notes

ISSN 1501-7710, Nr. 234, Unipub AS