updated 2007. 3. 5
//    i n t r o d u c t i o n   &   o v e r v i e w     // chapter jump
ANDREW
WALENSTEIN

walenste@ieee.org

Research Scientist

Center for Advanced Computer Studies
University of Louisiana @ Lafayette

Chapter 1: Explaining Cognitive Support

Artifacts can and do aid thinking. Cognitive support can be loosely defined as the assistance offered by an artifact for a user to think and solve problems. The focus of this work is on the cognitive support in software development tools. Software development is infamous for being one of our most mentally challenging enterprises. Cognitive support can thus be expected to be a very important issue in software development tools. Unfortunately, it is studied very rarely; when it is, it is handled in an ad hoc manner. In software engineering, we barely know where to start.

The main aim of this dissertation is to provide a solid theoretical foundation for understanding, evaluating, comparing, and designing cognitive support in software development tools. The core product of this research is therefore theoretical: cognitive support theories and support analysis frameworks. I concentrate on reverse engineering and program comprehension tools, but the lessons are really more general: they hold for many types software development tools. Indeed, the basic framework can conceivably be applied in nearly any work domain.

Theoretical Foundations
The theoretical foundations are built piecewise in several chapters, and then evaluated and applied in several more. The theory-building section follows three main stages:
  • Cognitive support phenomena are first surveyed very broadly in Chapter 3. This survey is used as a starting point for establishing adequate theoretical coverage in later chapters.

  • An integrated theoretical framework for analyzing and explaining cognitive support, is constructed. The framework and cognitive support theories are built from prior work in what is called "distributed cognition" (DCog). Distributed cognition is a relatively new field of cognitive science. It assumes that cognition is "spread out" (distributed) between humans and artifacts. As such, it is a likely candidate for being able to explain how artifacts assist thinking. Chapter 4, and chapter 5 articulate how this is done. The key issues are in integrating past theorizing and modeling, and in establishing how support arguments can be generated from this work.

  • Using the overarching DCog framework, Chapter 6 takes the next step of defining cognitive support theories within that framework. This collection of theories establish broad explanations for many of the different types of cognitive support which were surveyed in Chapter 2.
Application and Evaluation
Theories can be very useful if they can be applied. The second main contribution of this dissertation consists of explorations of the cognitive support framework and theories from the previous chapters. There are several steps to this work:
  • The way that cognitive support theories can be applied during design is analyzed in chapter 6. It is argued that cognitive support theories are able to provide a different form of design guidance than most prior model-based work in HCI and cognitive science. In particular, it can provide design guidance of several types.

  • In chapter 6, a survey is produced of a wide variety of examples of cognitive support. This survey provides a type of cookbook of design ideas, all organized by the type of support they provide (rather than, say, based on a list of features of the tools).

  • Two reverse engineering tools, Rigi and RMTool were analyzed using the cognitive support theories. The analysis reveals two things: (1) that the core ideas behind these two tools can be reconstructed using the cognitive support theories from previous chapters, and (2) that these theories are relevant to current research issues in reverse engineering tools. The theories say interesting things; they also deepen the scientific backing of the ideas underlying the tools.

  • A field study was conducted to evaluate the possibility of using theory-backed empirical techniques during tool design and evaluation. The field study examined the tool use of expert developers using industrial development tools. The field study showed that it may be reasonable to establish support requirements during tool design and then subsequently verify or measure the support expected.

Quick Summary
The overall result of the dissertation is the establishment of a theoretical basis for designing and evaluating cognitive support in software tools. This development opens up very unexplored methods for researching software development tools. The domain of software development tools is ripe for applying these theories. Cognitive support within tools can potentially be systematically designed, analyzed, compared, verified, and measured. Design ideas for implementing different classes of cognitive supports may some day be systematically collected into design cookbooks. In short, the cognitive support theories provide hope that we can begin to transform the production of helpful tools from a process dominanted by intuition and guesswork into an engineering process guided by systematic analysis, theory application, validation, and measurement.
[ up ]
thesis overview
1
2
3
4
5
6
7
8
9
 
[ up ]thesis overview 1 2 3 4 5 6 7 8 9
chapter jump