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
|