Documenting Object-Oriented Frameworks (2000-2004)
Douglas Kirk, Marc Roper, Murray Wood
The aim of this project was to identify the difficulties in understanding object-oriented frameworks and to empirically evaluate a well-defined set of techniques for framework documentation through their application to industrial-strength case studies. Four major reuse problems were identified: understanding the functionality of framework components; understanding the interactions between framework components; understanding the mapping from the problem domain to the framework implementation; understanding the architectural assumptions in the framework design. Two forms of documentation were identified as having the potential to address these problems, namely pattern languages and micro-architecture descriptions. An in-depth, qualitative analysis suggested that, although pattern languages do provide useful support in terms of introducing framework concepts, this can be bypassed by developers using their previous knowledge, occasionally to the detriment of the final solution. Micro-architecture documentation appeared to provide support for simple interaction and functionality queries, but it was not able to address large scale interaction problems involving multiple classes within the framework. The research concluded that, although a combination of pattern language and micro-architecture documentation is useful for framework reuse, the forms of these documentation types used in this research require further enhancement to become truly effective.

Project details

Doug Kirk’s Phd

Inspecting Object-Oriented Software (1997-2005)

Alastair Dunsmore, Neil Walkinshaw, Marc Roper, Murray Wood

The aim of this project was to develop and evaluate techniques to support the challenges in inspecting object-oriented software. Research by the group has suggested that the characteristic features of object-oriented code cause two related problems for software inspection. Firstly, the run-time structure of object-oriented code is largely independent of its static, compile-time structure. Secondly, object-oriented code has increased interdependencies between methods and classes compared to the modules of the traditional approach. These problems suggest that a sequential reading of the code, as assumed by traditional inspection techniques, is not appropriate for object-oriented code.

The research has also developed an analysis technique for object oriented source code that is designed to help the inspector focus on source code elements that are relevant to a particular element of functionality, which is identified by ‘landmark methods’ (methods that must be invoked when the feature under inspection is executed). The technique is based on a combination of call graph analysis and code slicing. A tool has been developed to demonstrate that the technique is feasible. It also forms the basis for a thorough evaluation on open-source software projects. Evaluation established that the proposed technique is effective at removing irrelevant source code, thus helping the inspector to focus on the feature under inspection. The precision of the approach is however dependant on the topology of the call graph.

Alastair Dunsmore’s PhD

Neil Walkinshaw’s PhD

Software Visualisation for Object-Oriented Program Comprehension (2003-2005)

Michael Pacione, Marc Roper, Murray Wood

This research developed a theoretical model to underpin effective visualisation of object-oriented software across a full range of potential comprehension tasks. It addressed the research problem of understanding object-oriented software for maintenance, a problem that is particularly challenging because of the separation of structural and behavioural perspectives inherent in object-oriented software. Despite significant research effort on object-oriented visualisation technology, there currently appears to be little uptake of the results in the software industry. Initial research suggested that this may be because existing tools, individually, focus only on a subset of possible software comprehension tasks. To address this, the research proposed a rigorously defined model which can be used to generate tailored visualisations that integrate views across a full range of abstraction levels, from source code to system representations, and between the structural and behavioural perspectives. A thorough evaluation was performed using realistic comprehension tasks and case studies. The results suggest that visualisation tool support based on the proposed theoretical model has the potential to be both useful, and used, across a wide range of object-oriented software maintenance tasks.

Michael Pacione’s PhD

Computer Supported Software Inspection (1996-1999)

Fraser Macdonald, James Miller, Marc Roper, Murray Wood, John FergusonThis research addressed the problems that can arise when providing automated tool support for software inspection. The first problem concerns their inability to easily support a number of different inspection processes, as well as the inspection of a variety of document types. Previous tools treated the move to computer-based inspection as a simple change of medium, when there are opportunities to greatly enhance the process. Finally, evaluation of the effectiveness of these tools is sparse. This research tackled these deficiencies. Support for multiple inspection processes was achieved by developing a high-level process description language which can be used as input to an inspection tool. A prototype tool was developed which implements this language and also provides a simple mechanism for supporting inspection of multiple document types. This tool was also used to investigate a number of methods for increasing the efficiency of inspection, including cross-referencing within and between documents, active checklists and automatic collation of defect lists. In addition, two controlled experiments comparing paper-based and tool-based inspection were performed, the first of their kind. These experiments could reveal no performance difference between methods.

Fraser Macdonald’s PhD

Replication and a Multi-Method Approach to Empirical Software Engineering Research (1993-1996)

John Daly, Andrew Brooks, James Miller, Marc Roper, Murray WoodThis work focussed on a multi-method empirical investigation of object-oriented technology. This comprised an integrated evolutionary three part empirical study – a set of structured interviews with practitioners of object-oriented technology; followed by a wide-scale questionnaire survey; and concluded with a set of three controlled, laboratory experiments which thoroughly investigated one of the key findings from the exploratory interview and questionnaire phases. The multi-method approach allows attention to be paid to important matters and the results from each study in the series can be confirmatory. As a result a set of general recommendations are made for applying the multi-method approach which should enable researchers achieve quality empirical results in which they can have confidence. A more specific finding was that maintainers may experience comprehension difficulties as the depth of inheritance hierarchies increases.

John Daly’s PhD