Number 26, July 2000
Edited by Paul Mulholland P.Mulholland@open.ac.uk
Spotlight on PPIGers: Jim Buckley, Pete Hornsby and Micheal P. O’Brien
Effective component-based solutions: reusing components and design by Peter Hornsby and Ian Newman
The Psychology of Programming Interest Group (PPIG) was established in 1987 in order to bring together people from diverse communities to explore common interests in the psychological aspects of programming and/or in computational aspects of psychology. ‘Programming’, here, is interpreted in the broadest sense to include any aspect of software development. The group, which at present numbers approximately 300 world-wide, includes cognitive scientists, psychologists, computer scientists, software engineers, software developers, HCI people et al., in both Universities and industry.
PPIG aims to provide a forum for the rapid dissemination of results, ideas, and language or paradigm tool development, circumventing the long time-lag of conferences and journals. It does this by maintaining two electronic mailing lists - one for announcements and one for discussion - by publishing two newsletters a year, maintaining pages on the World Wide Web, and organising a workshop annually, together with other workshops as and when required.
The annual workshops, which always attract a high percentage of attendees from outside the United Kingdom, consist of keynote addresses by eminent practitioners in the relevant fields, discussion panels, software demonstrations and seminar-like presentations. Invited speakers have included Professors Jack Carroll, Bill Curtis, Laura Leventhal, Clayton Lewis, Gary Olson, Peter Polson, Elliot Soloway and Willemien Visser. Venues have included the Universities of Warwick (1989), Wolverhampton (1990), Huddersfield (1991), Loughborough (Jan 1992), INRIA (Paris) (Dec. 1992), the Open University (Jan. 1994), University of Edinburgh (1995), University of KaHo Sint Lieven, Ghent (1996), Sheffield Hallam University (1997), the Open University (1998) and University of Leeds (1999).
In 1996, for the first time, a workshop was held specifically to allow post-graduate students in the relevant disciplines to come together, give presentations and exchange ideas. It is hoped that this will be the first of a series.
There is no subscription. Financial help in the past has come from Xerox EuroPARC, the DTI and EPSRC. Further information is available from the organiser, Judith Segal.
The PPIG website can be found at http://www.ppig.org/
Spotlight on PPIGers
Hi. My name is Jim Buckley and I am a lecturer at the Limerick Institute of Technology. I have been listening in on PPIG for quite some time but this is my first active participation!
My work focuses on software comprehension and, in particular, in evaluating system monitoring in empirical studies of software comprehension. System monitoring is where the tool (editor/browser) used by the programmer to study code also logs their interactions. The idea then is to see if experiments can be set up where these log files can give us valuable information about the programmers’ comprehension process.
It seems like a neat idea when you compare it to hours and hours of transcription of talk-aloud in a darkened room and the possibility of non-standardised analysis! However, as I’m finding out, its not all easy sailing. Obviously, you have to try to breach the behaviour - intention divide, and the analysis programs can be quite difficult to get right. But once you’ve written them, you are guaranteed standardised analysis of results, and you can carry out that analysis many times.
I’ve been struggling over the last year with a new job and a new baby (Sarah), so output hasn’t been particularly prolific (or existent even). However, I’m getting back into it again and I’ve carried out a number of calibration-type experiments at this stage. These experiments try to relate programmers’ behaviour with their comprehension models / outcomes, and I hope to publish the results in a ‘workshop near you’ soon!
I have also developed a highly configurable browser/editor as the basis for my system monitoring experiments. This browser /editor logs the programmers viewing of the code as he goes. If anyone is interested in looking at the (really) rough drafts of the experiment findings, in finding out more about the system monitoring tool, or finding out more about my work in general, give me an e-mail on: firstname.lastname@example.org
I am a BT-sponsored research student at Loughborough University, in the final year (hopefully!) of my Ph.D, supervised by Ian Newman. My research topic was originally ‘End User Programming using Components’, but I have since broadened this to include all programmers. I am interested in all aspects of the psychology of programming, but particularly problem solving and representation. The main product of my research is a tool called DesignMatcher, which uses evolving documentation produced during the design process to identify opportunities for reuse. I am also interested in approaches to, and notations for, design, particularly the Unified Modelling Language (UML), and programming using Java. I am currently looking for people to participate in the evaluation of the system who know both Java and UML, as well as designs and code with which to initialise the system. I am a teaching assistant on the Object-oriented Programming (Java) module for Computer Scientists and the Systems Theory module for Systems Engineers.
I can be contacted at:
Hello, my name is Michael O’Brien and I am a postgraduate student at Limerick Institute of Technology, Ireland. My M.Sc. project entitled “Software Comprehension of Familiar Systems”, is supervised by Jim Buckley and in a nutshell, deals with the recall and recognition of familiar software systems. Our research review suggests that most of the empirical studies, which have been carried out in this area, limit themselves to programmers’ comprehension of unfamiliar systems. While some work has been carried out in the area of comprehending familiar software, it almost exclusively deals with the generic concept of plans (domain and program plans).
As we are aware, it is widely recognised that program comprehension is an essential part of the software development process, especially at the maintenance phase. Studies have shown that up to 70% of lifecycle costs are consumed with the maintenance phase, with 50% of these costs relating to comprehension alone. Despite being such a significant activity, research in the area of program comprehension is relatively new. Only recently have researchers attempted to evaluate the factors that affect comprehension and develop processes that aim to describe how programmers comprehend or understand code.
Such research is difficult because, while computer programs are formal, logical entities, the programmers who understand them are not. Their comprehension processes are guided by a number of psychological factors including the capacity of human memory, problem solving skills and perception abilities. Hence, researchers in this area must carry out empirical studies to validate their hypotheses and to assess the degree to which they are representative of programmers behaviour.
The aim of this project is to widen this research by characterising software comprehension with respect to recall and recognition of familiar software systems. As part of this project, we are currently designing an experiment that investigates inference-based processing, hypothesis-based processing and systematic-based processing by programmers during program comprehension. We will categorise talk-aloud utterances made by programmers during comprehension into the above strategies, expanding a classification system previously successfully employed.
If you would like some more information on our project, please, do not hesitate to get in with contact us: -
Michael P. O’Brien / Jim Buckley,
Irish National Software Ergonomics Research Centre,
Department of Information Technology,
Limerick Institute of Technology,
Effective component-based solutions: reusing components and design
Peter Hornsby and Ian Newman
Department of Computer Science
Producing software from predefined components can lead to significant cost savings, together with increases in the reliability of the software. During the software development process, the developers understanding of the nature of the problem changes as possible solutions are explored. As a result, the way in which components are described needs to encompass information from both the problem and the solution domains. The paper describes an approach to component based programming which uses information already generated during the design process to describe components for retrieval. This approach has been implemented in a tool called DesignMatcher, which is being used to explore the validity of the approach.