Off-campus WSU users: To download campus access dissertations, please use the following link to log into our proxy server with your WSU access ID and password, then click the "Off-campus Download" button below.
Non-WSU users: Please talk to your librarian about requesting this thesis through interlibrary loan.
Date of Award
Software maintenance accounts for 50% to 90% of the costs over the life-cycle of
a software system. And program comprehension is a major activity during software
maintenance, absorbing around half of the maintenance costs. This is especially
true when developers attempt to perform maintenance tasks such as bug fixes and
feature requests on a well-designed framework. Therefore, during code evolution
tasks, developers often consult high-level views of the system, i.e., design documents
and diagrams, to help them understand the design intent before they attempt any
code modification. Different diagrams are often used to describe the design intent in
a software system, including diagrams of the code structure, e.g. class diagrams, and
diagrams of the run-time structure, i.e. object diagrams. A class diagram describes
class dependencies at compile time, whereas an object diagram describes interactions
between different instances of a class at run-time. An exploratory study showed that
80% of the developers questions while doing coding activities required thinking about
object relations rather than class dependencies. Thus, class diagrams are not enough
for understanding the structure of the system and need to be combined with object
diagrams to understand object interactions.
There is no shortage of tools that extract class diagrams. Also, previous research
studied the benefits of class diagrams. Giving developers usable object diagrams, how-
ever, had typically been challenging. Recently, Abi-Antoun and Aldrich had proposed
an approach to extract hierarchical ownership object graphs (OOG) for the entire system. An OOG can help developers address a typical software comprehension task at a variety of abstraction levels, by combining information about object communication
at both the architectural level and implementation details hidden within interfaces
such as data structures, an inherent feature in the object-oriented paradigm. But the
usefulness of those diagrams had not been evaluated empirically. So we set out to
investigate the following research question: do developers who have access to diagrams of the run-time structure, i.e. OOGs, in addition to diagrams of the code structure, i.e. class diagrams, perform code modification tasks more effectively than developers who have access to only diagrams of the code structure?
This thesis provides the first empirical evidence to evaluate the usefulness of
OOGs. In a controlled experiment, we observed 10 developers perform maintenance
activities on a well-designed object-oriented framework. We found that when developers attempt code maintenance tasks, they struggle mostly with activities related
seeking answers for questions about the object structure. Two of the developers who
had access to OOGs completed the three tasks compared to only one developer who
had access to only class diagrams. On average, developers who had access to OOGs
performed their activities in less time (22%-60%), and by browsing less irrelevant
code (10%-60%) than developers who had access to only class diagrams or who did
not use diagram at all.
Ammar, Nariman, "Evaluation of the usefulness of diagrams of the run-time structure for coding activities" (2011). Wayne State University Theses. 91.