Open Access Thesis
Date of Award
Runtime views which show runtime structure, is a type of object graph. They show components as groups of objects and data structures. Runtime views are useful for tasks related to performance, reliability, and security. Most previous work on extracting object graphs has produced flat object graphs which are not scalable. Ownership object graphs (OOGs) increase the scalability of object graphs because it nests objects, creating hierarchy. Recent work has shown that sound extraction of OOGs from object-oriented systems is technically feasible. Soundness means that in any execution of the program, every object can be mapped to exactly one component in the graph. The recent work is a read-only viewer and shows a default decomposition. In order for developers to change the default decomposition, they must change the annotations. This is very tedious.
In order to allow developers to iteratively refine an OOG, we propose the front-end of an editor to support this functionality, OOGIE. The OOGIE tool only supports operations that intuitively support soundness. For example, objects cannot be deleted, and edges cannot be added. The tool allows developers two kinds of operations to change the decomposition, abstraction by ownership hierarchy and abstraction by type. Abstraction by ownership hierarchy means that the decomposition shows architecturally significant objects near the top of the hierarchy and less architecturally significant objects such as data structures further down. Abstraction by types allows objects to be collapsed further according to their declared types.
The work in this thesis is the first stage in addressing the usability problems of the read-only viewer. At this stage, OOGIE takes an XML file that contains an initial OOG produced by the extraction tool, and records the changes made to the OOG by the developer in the XML file. In the future, we plan on integrating the OOGIE tool with the extraction tool, and having OOGIE manipulate the annotations directly so that the developer does not have to. Having a user-friendly method of abstracting and manipulating OOGs increases their usefulness since developers can pick the decomposition that best suits their needs.
Selitsky, Talia Frances, "A Front-End For An Ownership Object Graph Interactive Editor" (2010). Wayne State University Theses. 42.