"The Need For Good Mental Models of Software Subsystems"

Leaders:
Steve Edwards, The Ohio State University, and
Larry Latour, The University of Maine

Scope:
People form internal mental models of the things they interact with in order to understand those interactions. Unfortunately, programmers tend to design "behaviorally rigid" software that solves the particular problem at hand, and this approach hinders their ability to "see" analogous problem solutions. Conventional programming languages do little to help these programmers develop good mental models of their systems. This is turn, is an impediment to helping these same programmers overcome the behavioral rigidness of their designs.

In this working group we explore (1) the methods by which humans develop good mental models of generic software subsystems, and (2) how existing programming languages support/hinder these efforts.

Goals:
1. To make clear the definition and usefulness of "mental model".

2. To develop examples of how such mental models are developed and how they contribute to reusability.

3. To factor both formal methods and human factors into the development of mental models - "Formal methods help to represent subsystems precisely, but it is humans that develop mental models to understand these same subsystems."