On The Design of a Modeling Tool for Students of Object Oriented Programming

One reason for the difficulty that novice Object-Oriented programmers have during the transition to the Object-Oriented paradigm is that Object-Oriented Programming introduces a modeling component to the process of designing and building software. A model is any conceptual representation of a real-world system or object. While any program can be considered as a model, it is the explicit focus of Object-Oriented Programming that the structure of the program should match the structure of the real-world system (allowing the program to "speak the language" of the domain). The skills involved in designing, evaluating and building a valid OO model are similar to the modeling skills needed by other engineers in their design processes. These skills include:

The lack of these skills is one of the primary obstacles students face in learning Object-Oriented methods. The students lack a language in which to discuss design or modeling constructs – in fact, they see such discussion as an impediment towards their "true" goal of typing code.

One way to teach the students modeling skills is by explicitly asking them to model, a process called model-building. In the OO domain, a model-building environment would be a language independent workplace where a student could design, test and evaluate their software models. We are in the process of designing such an environment, called BOOST (Basic Object-Oriented Support Tool).

BOOST differs from existing CASE tools such as Rational Rose or Playground, because it emphasizes support for problems that novices have as they first learn Object-Oriented techniques. This poster will discuss studies that we have done to discover what these novice problems are, along with their implications for the design of a successful model-building tool.

A Survey of Novice Design Prejudices

Students taking a sophomore level introduction to Object-Oriented design were asked to solve a moderately complex design problem approximately 1/4 of the way through the class (after they had been introduced to concepts and notation, but before they had completed designs on their own). They were given a half-hour to solve the problem. Student performance will be compared to the design solutions of experienced OO programmers and to the student performance at the end of the quarter. Some students were given supplemental information designed to move them along their modeling process (either a list of candidate classes, or a set of interaction scenarios). Preliminary analysis of the student designs indicates the following:

A Survey of Novice Design Process

Students in the same class were given a survey on their process at the end of the quarter. They were asked about what their steps were in doing the two-week design and programming projects. These surveys suggest:

An Object-Oriented Modeling Tool

As a result of the above surveys, BOOST will have the following features: