Abstract
The computer science design goals of the object-
oriented paradigm may fundamentally conflict with
the goal of modeling an application domain as users
see it. I propose a research strategy to explore this
question.
Keywords:
Object-oriented, categories,
abstraction, reuse.
Introduction
It is claimed that object-oriented (OO) technology is
the "Silver Bullet" that can be used to solve the
software crisis [1] . Proponents of object oriented
analysis, design, and programming describe how these
approaches lead to systems which are faster to design,
easier to build and maintain, are less complex and are
more readily understood [2] . These qualities emerge
from the interaction of the core features of the
paradigm: encapsulation, binding data & behavior, and
classification and inheritance. OO is a computer science
discipline and the tools, methodologies and goals of
object oriented design reflect computer science values.
At the same time, OO is meant to create systems that
are models of users' application domains. The
increasingly popular object-oriented design techniques
based on object modeling are centered on this design
goal [2-5] . The domain-based object model has a
"stronger equivalence" than traditional approaches [6]
and hypothetically allows, systems developed using
OO methods to be more easily comprehended and
communicated [7] .
Most literature on the OO paradigm merely implies a
relationship to cognitive structures, however, there are
relevant psychological data. A good deal is known
about the structure and functionality of categories and
concepts people normally use [8] and other issues that
are at the core of the object oriented paradigm [9-11] .
But when one digests a consensus set of guidelines and
recommendations from the OO literature, and builds a
picture of the form well-designed object classes are
supposed to take, there are substantial differences
between what object classes should be, and the
observed properties of the corresponding psychological
structures. Given these differences, what happens when
a designer is faced with the task of designing in the
object oriented paradigm?
This is the focus of my dissertation research. The
design constraints of OO classes should structure them
differently than psychological categories. I am
exploring the consequences of these differences. I
expect the differences between the nature of normal
human categories and concepts to create tensions
wherever these differences exist. I am proposing a
research program to investigate if and how those
tensions manifest themselves in OO design.
DIFFERENCES BETWEEN OO CLASSES AND
PSYCHOLOGICAL CATEGORIES
The categorization literature clearly shows that object
classes are different from psychological categories.
They differ in the rigidity of their definitions, the
nature of category membership, and the distribution of
the most important attributes over levels of
abstraction.
Object Classes are formal categories in the classic
sense, where membership in a class is completely
determined by the presence or absence of features of an
object. In object classes, these features are attributes
which are the data structures of an object, or defined
behaviors which are the internal methods or external
operations the object can perform [1, 3, 6, 7] .
During the design of new systems, designers are
encouraged to constantly move features up in the
hierarchies they design and to construct abstract generic
classes which perform general operations [12] . To
actually meet system goals, designers should create
descendants of the generic classes and the descendants
should have particular specialized values in their
attributes which override their ancestors defaults [3, 7] .
When adding to an existing hierarchy, designers should
not edit existing classes, but should create new
specialized classes that override existing features [7] .
Both of these tactics will tend to generate deep and
narrow object class hierarchies, with the most
important attributes at high levels of abstraction.
Compared to the well-defined, rigid classes of current
object oriented paradigms, the psychological categories
and concepts explored in research are very different.
These categories are largely ill-defined and vague,
organized around clusters of correlated attributes, and
strongly shaped by the reasoner's goals and the context
in which the reasoning occurs [8, 13] . People have
"basic level" categories wherein most of the attributes
of the category are found. In hierarchies of related
objects, these basic level categories are an anchoring
level of abstraction in which the most concrete image
of the category as a whole is found. Both superordinate
and subordinate classes have fewer features [11] .
RESEARCH QUESTIONS
To follow OO reuse guidelines, OO designers must
create classes that are more generic by abstracting out
the general attributes shared by existing specific
classes, and create classes that are more specific by
refining the attributes of the formerly most specific
classes. According to cognitive psychology,
generating new classes that are not base level categories
will be difficult, especially when the new classes are
more abstract than the base level. I intend to discover if
this is true, and if so, what effect this difficulty has on
the design of class hierarchies.
My experiments will test the hypotheses that in the
design task of partitioning domain objects into class
hierarchies, a) the generation of new classes that are not
base level categories will be more difficult than the
generation of classes that are base level categories; b)
the assignment of behaviors and properties for classes
that are not base level categories will also be more
difficult; and c) these effects will be more pronounced
for classes that are more abstract than base level
categories than for classes that are more specific than
base level categories.
METHODOLOGY
The first experiments will test these hypotheses by
comparing the effort required for generating a more
abstract class to the effort required for generating a less
abstract class, independently of the effort for generating
any novel class. I will assess effort by measuring how
quickly and accurately subjects generate classes and
assign attributes (behaviors and properties), given
sample domains and specified levels of abstraction. I
will also determine the implemented structure of
various object oriented systems by running object
oriented software metrics on existing class libraries and
systems, and determining where which levels of
abstraction have the most attributes.
STATUS
I have already prepared and run OO software metrics on
an object library of 400 objects, and will analyze the
preliminary data. I have also repeated several iterations
of a training and data collection procedure I will use as
my experimental method.
References
- 1. Cox, Brad There is a Silver Bullet. Byte , 16 , (1991).
108-110.
- 2. Yourdon, Edward, Object-Oriented systems design: an
integrated approach. 1994, Englewood Cliffs, New Jersey:
Prentice Hall.
- 3. Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F. and
Lorensen, W., Object-oriented modeling and design.
1991, Englewood Cliffs, NJ: Prentice Hall.
- 4. Shlaer, S. and Mellor, S. J., Object-Oriented Systems
Analysis: Modeling the World in Data. 1988, Englewood
Cliffs, NJ: Prentice Hall.
- 5. Jacobson, I., Christerson, M., Johnsson, P. and
Overgaard, G., Object-Oriented Software Engineering: A
Use Case Driven Approach. 1992, Reading, MA: Addison-
Wesley.
- 6. Martin, James; Odell, James, Object Oriented Analysis
and Design. 1992, Englewood Cliffs: Prentice-Hall.
- 7. Meyer, B., Object-oriented software construction.
1988, Englewood Cliffs, NJ: Prentice-Hall.
- 8. Medin, Douglas L. Concepts and conceptual structure.
American Psychologist , 44 , (1989). 1469-1481.
- 9. Johnson, Kathy E. The effect of expertise on
hierarchical systems of categorization. Dissertation,
Emory University, 1992
- 10. Adelson, Beth Comparing natural and abstract
categories: A case study from computer science.
Cognitive Science , 9 (4), (1985). 417-430.
- 11. Rosch, E., Mervis, C.B., Gray, W., Johnson, D. and
Boyes-Braem, P. Basic objects in natural categories.
Cognitive Psychology , 8 , (1976). 133-156.
- 12. Love, Tom Timeless Design of Information Systems.
Object Magazine (November-December), (1991). 46.
- 13. Rosch, Eleanor; Mervis, Carolyn Family
Resemblences: Studies in the internal structure of
categories. Cognitive Psychology , 7 , (1975). 573-605.