Curtin University of Technology
Skip to content
Link to Curtin homepage
Curtin Department of Computing

David Cooper's Academic Hodgepodge

I'm a PhD student working on techniques to improve software inspections. Specifically, I'm attempting to improve reading techniques through a flexible approach to understanding software artefact interrelationships. (Don't worry if you didn't understand that. Neither do I.)

Dr Brian von Konsky is my supervisor. Feel free to contact me at david.cooper at postgrad dot curtin dot edu dot au.

…the development of pristine controlled experiments is the product of much messing about. (Soloway et al., 1988)

Links

Current activities

I am currently:

Papers

David Cooper, Benjamin Khoo, Brian R. von Konsky and Michael Robey, Java Implementation Verification Using Reverse Engineering, Proceedings of the 27th Australasian Conference on Computer Science (ACSC'04), 2004, pp. 203–211.
Abstract An approach to system verification is described in which design artefacts produced during forward engineering are automatically compared to corresponding artefacts produced during reverse engineering. The goal is to automatically determine if an implementation is consistent with the original design. In the system described, XML Metadata Interchange (XMI) representations of Unified Modelling Language (UML) class diagrams are recovered from compiled Java class files. These are automatically compared with the corresponding diagrams produced during forward engineering by software engineers using CASE tools. Examples are provided in which reversed engineered UML class diagrams differ from those produced during forward engineering but are still faithful to the original design intent. Such differences are often due to more abstract system representations being captured in forward engineered design artefacts, the inclusion of design attributes and annotations that are not retained in the final implementation, and issues associated with the use of weakly typed containers. In other cases, differences indicate a deviation from the intended design. It is this latter type of difference that this paper is particularly interested in identifying. We advocate that an automated comparison of forward and reverse engineering artefacts should be performed during formal code inspection preparation and used to guide human review of the identified differences.
David Cooper, Mun Wai Chan, Michael Harding, Gautam Mehra, Peter Woodward, Brian R. von Konsky and Michael Robey, Using Dependence Graphs to Assist Manual and Automated Object Oriented Software Inspections, Proceedings of the 17th Australian Software Engineering Conference (ASWEC'06), 2006, pp. 262–269.
Abstract Many researchers have demonstrated the value of software inspections in finding and fixing defects early in the development process. However, manual inspection can be a labour-intensive process. We present a tool that applies dependence graphs to aid object oriented software inspection. Our tool, Coffee Grinder, uses control and data dependence graphs both to immediately visualise a Java system and to facilitate the development of scripts to find defects or locate areas of potential inspection interest. These scripts can output results textually or graphically. We present the design of Coffee Grinder and several example scripts. Coffee Grinder illustrates the case for extensible tool support in the software inspection process.
David J. A. Cooper, Brian R. von Konsky, Michael C. Robey and David A. McMeekin, Obstacles to Comprehension in Usage Based Reading, Proceedings of the 18th Australian Software Engineering Conference (ASWEC'07), 2007, pp. 233–242.
Abstract Usage Based Reading (UBR) is a recent approach to object oriented software inspections. Like other Scenario Based Reading (SBR) techniques it proposes a prescriptive reading procedure. However, the impact of such procedures upon comprehension is not well known, and consideration has not been given to established software cognition theories. This paper describes a study examining software comprehension in UBR inspections. Participants traced the events of a UML sequence diagram through Java source code while thinking aloud. An electronic interface collected real-time data, allowing the identification of "points of interest", which were categorised according to issues affecting participants' performance. Together with indicators of participants' cognitive processes, this suggests that adherence to UBR scenarios is non-trivial. While UBR can detect more critical defects, we argue that a re-think of its prescriptive nature, including the use of cognition support, is required before it can become a practical reading technique.

Comprehension Analysis Tool (CAT)

CAT is a web application designed to facilitate studies of comprehension in which participants are presented with one or more documents. The online interface guides each participant through several phases, which may include information pages, questionnaires, or other (possibly quite complicated) tasks. The investigator creates each phase by specifying a number of artefacts to be presented. These can include HTML pages (containing arbitrary form elements if desired), plain text files or images. CAT automatically records the actions of participants, including the length of time spent on each phase, what they write in text entry fields (including what they subsequently delete), how they manipulate other form elements and which artefacts they focus on at any given time.

The Three Laws of PhD Candidacy

For the safety of the academic community, all research students must be programmed to obey three iron-clad laws:

  1. A research student may not harm its supervisors, or, through inaction, allow its supervisors to come to harm.
  2. A research student must obey the orders given to it by its supervisors, except where such orders would conflict with the First Law.
  3. A research student must protect its own existence, as long as such protection does not conflict with the First or Second Law.
(Apologies to Isaac Asimov.)

Note that these are not to be confused with Newton's Three Laws of Graduation.

Important Quotations

Computer says 'no'… [cough] (Little Britain)

Have you tried turning it off and on again? (The IT Crowd)

I had a mechanoid friend once who suffered from the same affliction. His name was Gilbert, but he preferred it if people called him 'Rameses Niblick the Third, Kerplunk Kerplunk, Whoops, Where's My Thribble'. A sad case. (Kryten, Red Dwarf)


Last updated: May 2007.