You are on page 1of 13

articles

D a v i d E. M o n a r c h i and Gret(:hen I. O u h r

A Research Typology for


Object-Oriented Analysis
and Design
his article evaluates current research on object-oriented analysis and design
(OOAD). Critical components in OOAD are identified and various OOAD
techniques (i.e., processes or methods) and representations are compared based
on these components. Strong and weak areas in OOAD are identified and areas for future
research are discussed in this article. • • • • • • • • • • • • • • • • • • •

T h e authors assume the reader roots, the different OO approaches proaches. They also suggest a "syn-
has a basic understanding o f object- are not particularly well inte- ergistic" methodology which blends
oriented concepts and the object grated." In short, there are volumes function- and object-oriented tech-
paradigm in general. (Excellent dis- o f information on OOAD, but niques during specific phases of
cussions and definitions of the ob- there is a lack o f mechanisms or development. These different
ject paradigm are contained in the frameworks for synthesizing or methodologies provide a useful
first section [5] and in [29].) We use evaluating the work that has been classification, which may assist re-
"class" to mean a collection o f done. This article addresses that searchers and practitioners in eval-
things with common attributes and/ void. uating the various OO methodolo-
or behavior; "instance" to mean a Mrdalj [20] recognizes a "need gies and techniques. However, this
realization of a class (one of the for collection, classification and classification only considers one
things in a class), and "object" to evaluation of the available material" aspect of OO methodologies, the
mean either a class or an instance and his bibliography is a collection degree to which (and the manner in
(as in Smalltalk). o f 83 references which, taken to- which) function- and object-
There is a great deal of current gether, represent much of the re- oriented approaches are incorpo-
literature on object-oriented (OO) search on object-oriented systems rated.
systems development. But there is, development. He does not, how- This article develops a frame-
as yet, little consensus or standardi- ever, provide a classification or work for evaluating and comparing
zation among these new develop- evaluation of the research identi- current object-oriented analysis
ment techniques. At one extreme fied. Ladden [16] discusses several and design (OOAD) research. The
are "pure" thoroughbred OO de- factors to consider in developing an framework will serve as a basis for
velopment techniques, encompass- object-based methodology and assimilating various pieces of re-
ing OO analysis, design and/or specifies an object-based design search into a cohesive and complete
implementation [11]. They involve process. These factors are not O O A D methodology. The objec-
new notations and approaches that meant to be a complete listing o f tives of this article are: 1) to identify
are different from more traditional the essential ingredients in OO sys- critical components in a "complete
function- or data-oriented model- tems development; they are simply and cohesive" O O A D methodol-
ing techniques. At the other ex- desirable characteristics o f an object ogy; 2) to evaluate current O O A D
treme are approaches that are methodology. Ladden does not in- approaches and representations
termed "object-oriented," but vestigate to what extent existing based on these components; and 3)
which seem to be little more than research addresses his factors or to identify strong and weak areas in
new words applied to old concepts. complies with his design process. O O A D research.
In between are various analysis and Henderson-Sellers and Constantine
design techniques, many overlap- [11] outline several systems devel- Research Review
ping in scope and/or conflicting in opment methodologies and strate- The existing research can be di-
approach. Notations that blend ob- gies which incorporate object- vided into three broad categories:
ject-orientation with process, data orientation to varying degrees. 1) processes only; 2) representa-
and other modeling techniques They mention the OO thorough- tions only; and 3) processes and
may be poorly integrated and bal- bred approach, as well as two hy- representations. The first category,
anced with each other. As Iivari brid methodologies, which combine processes, refers to procedural
[13] notes, "Despite their common function- and object-oriented ap- methods for performing object-

COMMUNICATION8 OF THE ACM/September 1992/Vo1.35, No.9 ~


o'R
artEcles

oriented analysis or design, or some


1ruble 1.
particular aspect o f analysis or de- Research R e v i e w e d
sign. These processes do not in-
clude O O A D diagrams or nota- CATEGORY 1
tions. The second category,
representations, refers to graphical Process only (no representation)
Bulman [61
notations or diagrams for depicting Henderson-Sellersand Constantine [11]
the output of OOAD. T h e focus is Johnson and FOOte[14]
Scharenberg and Dunsmore [25]
on visually representing a design,
not on how to derive a particular CATEGORY 2
design. T h e third category, pro-
Representation only (no technique)
cesses and representations, encom- Ackroyd and Daum [l)--a graphical notation
passes both processes for perform- Beck and Cunningham [4]--Class-Responsibillty Collaboration (CRC) cards
ing (some subset of) O O A D and Cunnlngham and Beck [9)--message diagrams
Page-Jones et al. [22)--Uniform Object Notation (UON)
representations for specifying the Wasserman et al. [27|--00 Structured Design Notation (OOSD)
results. Wilson [28]~Class Diagrams
Table 1 groups the research re- CATEGORY 3
viewed in this article into these cate-
gories. This list of research is not Process and Representation
Alablso [2)--Transformation from Analysis to Design (TAD)
meant to be complete; it is, how- Bailin [3)--Object-Oriented Requirements Specification Method
ever, intended to be representative BoOch [5[--Object-Oriented Design
of work being conducted on OO Coad and Yourdon [7)=Object-Oriented Analysis (OOA) and Design (OOD)
Gorman and Chooblneh [10]--Object-Orlented Entity Relationship Model
systems development. The research (OOERM)
listed spans a brief time period, ba- Ilvarl [13]--A Framework for Object identification
sically from 1988 to 1991. While Kappel [15]--Object/Behavior Model
Lleberherr et al. [181--The Law of Demeter
there are publications on OO sys- Meyer [19)--Object-oriented Software Construction
tems prior to 1988, in general these Rumbaugh et al. [24)--Object Modeling Technique (OMT)
Shlaer and Mellor [261=ObJect-Oriented Systems Analysis (OOSA)
earlier articles focus mainly on ob- wires-Brock et al. [29]~Designing Object-Oriented Software
ject-oriented programming or gen-
eral object-oriented concepts. More
recently, in the late 1980s and early
1990s, OO research has turned
toward methods and notations for
object-oriented systems develop-
ment. Mrdalj's [20] collection en-
compasses much of the research analysis
Real World Problem
that has been done on OO systems
development. Many of the sources
reviewed in this article are included
in Mrdalj's bibliography.

BackgrOund Problem
Various systems development Domain
methodologies have evolved, corre- Representation
sponding to different systems life
cycles, such as the traditional water-
design
fall model [23] and the fountain Solution Domain
model [12]. Despite individual dif- Representation
ferences in the models and their
variations, they all have compo-
nents corresponding to analysis,
design, and implementation. In this
article, we do not specifically ad-
dress implementation or physical
design; we will focus on analysis
and logical design for object-
oriented systems.
Analysis involves problem defini- F i g u r e 1. The relationship between analysis and design

36 September 1992/Vo1.35, No.9/COMMUNICATIONS OF T H E A C M


articles

tion/modeling and design focuses reflected in the overlapping stages oper continues defining relation-
on solution specification/modeling in Henderson-Sellers and Edwards' ships, behavior and communica-
[7, 8, 30]. Systems design trans- fountain model [12]. tion, he or she finds new classes
forms the problem representation Some authors present only O O A and/or redefines existing classes.
into a solution representation. methods (e.g., [17, 26]). Most of Table 2 lists the steps or activities
Figure 1 depicts the relationship these analysis methods emphasize in OO analysis and/or design that
between analysis and design. T h e modeling the problem domain, or various authors have proposed.
problem and solution domain rep- "universe of discourse" [13]. They One common theme is that the
resentations are different and are concerned with abstracting rel- problem domain objects must
smaller than the real-world prob- evant objects form the problem somehow be identified, and their
lem. And the solution domain in- domain, defining the objects' struc- meaning defined. This process is a
cludes everything in the problem ture and behavior, and determin- part of all the O O A techniques re-
domain, plus any additional con- ing the objects' interrelationships. viewed and some of the OOD
structs required by the solution. For A goal of O O A is to model the se- methods as well. Beyond object
example, the user interface is typi- mantics of the problem, in terms of identification, though, there is little
cally part of the solution to a prob- distinct but related objects. agreement on what other functions
lem, rather than a part of the prob- Other authors focus on OOD are involved in OOAD.
lem itself. (e.g., [5, 19]) rather than OOA. Although there is no standardi-
Colter [8] and Pressman [23] de- They assume that relevant problem zation across existing OOAD meth-
scribe a n u m b e r of analysis and domain objects have been identi- ods, the definitions of analysis and
design methodology characteristics. fied. They model the details of each design can be used to distinguish
These characteristics can be sum- object's behavior and the interob- O O A from OOD. Analysis deals
marized, extended and applied to ject communications (messages) with the problem domain, and de-
the object arena. OOAD compo- necessary to meet system require- sign with the solution domain;
nents include: ments. O O D also involves reexam- OOA focuses on problem domain
(1) An OOA process: A general- ining the problem domain classes-- objects and O O D on solution do-
domain analysis technique (i.e., an refining, extending or reorganizing main objects. Figure 2 shows a clas-
analysis procedure, the "how to's"); t h e m - - t o improve reusability and sification of problem and solution
(2) An OOD process: A solution do- take advantage of inheritance. domain objects which are discussed
main modeling technique (includ- In general, the OO analyst may in the following paragraphs.
ing the specification of interface be more concerned with the struc- Problem-domain objects repre-
objects and other solution domain ture of objects and the OO designer sent things or concepts used in de-
objects discussed later in this sec- with the dynamic behavior of ob- scribing the problem (rather than
tion); jects. But even this is not necessarily the solution). We call them seman-
(3) OOAD representations: For struc- true. Coad and Yourdon [7] men- tic objects because they have mean-
ture, function and control at differ- tion state-transition diagrams and ing in the problem domain. For
ent levels of abstraction (the macro other dynamic representations as example, an order entry system
and micro layers are two key ab- part of OOA, whereas Booch [5] might have semantic classes such as
straction levels); and discusses dynamic views of the sys- Customer, Order, Item and Employee.
(4) An OOAD complexity abstraction tem in OOD. Rumbaugh et al. [24] T h e solution domain includes, but
and management mechanism: For par- use separate structural, dynamic is not limited to, the semantic ob-
titioning the problem and manag- and functional representations jects. During analysis, the focus is
ing the complexity of the system. during both analysis and design. on representing the problem, iden-
Kappers [15] notation, which is tifying abstractions that are mean-
OOA or OOD based on two dynamic models, state ingful given the system require-
Using these criteria to e v a h a t e cur- transition diagrams and predicate ments and specifications. During
rent OOAD techniques may be dif- transition nets, integrates static design, the emphasis is on defining
ficult because of the blurred dis- structure and dynamic behavior a solution. T h e semantic classes
tinction between analysis and into one design model. may be extended during analysis or
design in the object paradigm. T h e To further complicate the issue, design, as useful abstractions are
first two criteria indicate that prob- the analysis and design stages in discovered. In the order entry ex-
lem domain analysis is distinct and OO development are frequently ample, an abstract class Person may
separate from solution domain de- comingled. Many authors (e.g., be created as the superclass of Cus-
sign. It is, however, difficult to find [29]) espouse an iterative develop- tomer and Employee.
a clear distinction in the OOAD re- ment strategy in which objects Other kinds of solution-domain
search. In particular, it is difficult are identified and defined, and re- objects include: interface, applica-
to determine where O O A ends and lationships and communication tion, and base/utility objects. Inter-
OOD begins. This phenomena is patterns are specified. As the devel- face objects are associated with the

COMMUNICATIONSOF THE ACM/Septembcr 1992/Vo1.35, No.9 37


IBm,t i c les

oi) the OOA processes; what is dif-


T a b l e 2.
Examples of OOAD Processes ferent is the objects or domain to
which the processes are applied.
OOA PROCESSES OOD PROCESSES Using the categorization of objects
just described, we can distinguish
Coati and Yourclon I71: BOOCh IS]:
Find class-and-objects Identify objects between OOA and O d D in the fol-
Identify structures Identify semantics of objects lowing manner:
Identify subjects Identify relationships O0 Analysis (.OOA) models the
Define attributes Implement and iterate
Define services problem domain by identifying and
Wirfs-Brock et al. 1291: specifying a set of semantic objects
Rumbaugh et al. ]241/shlaer and Mellor [26]: Initial exploration (classes, resp.,...) that interact and behave according
Build object model/Information model Detailed analysis (relationships,...)
Build dynamic model/state model Build subsystems to system requirements.
Build functional model/process model O0 Design (ODD) models the solu-
Shlaer and Mellor 126]:
Alabiso [21: Build system architecture design tion domain, which includes the
Perform structured analysis Build data structure design semantic classes (with possible addi-
Translate DFDs Into an object model tions) and interface, application,
Bulman [61:
Lee and Carver [171: Identify candidate objects and base/utility classes identified
AbStract facts from data-flow diagrams Specify objects during the design process. O d D
Abstract objects and actions from facts Refine objects and operations should still be language-indepen-
Construct entity-relationship model Complete operations
Construct object model Design object-oriented structure dent, and precedes physical design.
These are the two primary compo-
nents in OOAD. In addition, as dis-
cussed earlier, OOAD needs to
graphically or textually represent
its results and to manage analysis
and design complexity.

OOAD C o m p o n e n t s
Table 3 lists critical components in
OOAD. These components are
based on the combined Colter/
Pressman criteria with the exten-
sions and additions discussed in this
section. Many of these components
can be generalized to apply to any
Solution Domain methodology, but Table 3 presents
them as they apply to the object
paradigm.
There are static (structural) and
dynamic (control) considerations in
F i g u r e 2. Problem and solution do- objects. Base/utility objects are com- each of the four major areas de-
main objects ponents that are application-inde- fined in Table 3. For example,
pendent. The main characteristic of items (1)(a) and (1)(b) address
user interface. They are not di- base/utility objects is that they are structure, while item (1)(c) consid-
rectly a part of the problem do- application- and domain-indepen- ers control. Figure 3 depicts the
main; instead they represent the dent. Examples of base objects are structural aspects of Table 3 in
users' view(s) of the semantic ob- collections (strings, arrays, etc.) and more detail. In particular, Figure 3
jects. Application objects can be numbers; an example of a utility shows the relationship between the
thought of as the drivers or control object is the debugger window in identification and placement pro-
mechanisms for the system. They Smalhalk. cesses (items (1)(a) and (b)) as they
are objects that start the application In summary, the boundary be- apply to both problem- and solu-
and perhaps control the sequencing tween OOA and O d D is inconsist- tion-domain objects.
of high-level functions. In proce- ently defined in the literature. The processes in Figure 3 are the
dural languages, this corresponds Some processes used by one author same for both the problem space
to the main module. In d O devel- during OOA may be included in and the solution space, but they dif-
opment, the application class may another author's O d D technique. fer in the kinds of objects used. The
do nothing more than drive a menu In fact, most of the O d D processes problem space is defined during
or initiate message-passing to other are the same as (or are a superset OOA in terms of semantic objects

38 September 1992/Vol.35, No.9/GOMMUNiGATIONSOF T H E AGM


ortlcles

(noted by the subscript s); the solu-


1 ~ b l e 3.
tion space is defined during C O D Critical C o m p o n e n t s In OOAD
in terms of semantic, interface,
application and base/utility objects (1) OOA: PrOblem Domain Analysis Process
(noted by the subscript values s, i, a
or b). (a) Identification of:
semantic classes
Regardless of whether the do- attributes
main is the problem or solution behavior
relationships (e.g., generalization, aggregation, association)
space, an important process in (b) Placement of:
O O A D is the identification of classes
classes, attributes and methods (be- attributes
behavior
havior), noted in Figure 3 by C, A (c) Specification of dynamic behavior
and M, respectively, and shown on
(2) OOD: Solution Domain Design Process
the left side o f the figure. Relation-
ships between classes are also part (a) Same as (a), (b) and (c) above, applied to the following kinds of classes:
o f the identification process. The Interface
class lattices listed on the right side Application
Base/Utility
of the figure signify the kinds of (b) Optimization of classes
relationships which may be speci-
(3) OOAD Representations
fied among classes (and instances).
All of these elements in Figure 3 (a) Static view:
represent the identification phase of Objects
Attributes
O O A and C O D (e.g., As means the Behavior
identification of semantic attri- Relationships:
butes). The arcs represent the place- Generalization
Aggregation
ment of attributes, methods, and Other (e.g., ASSOciation)
classes. Attributes and methods (b) Dynamic View:
Communication
must be allocated to (or placed in) Control/Timing
classes; classes are arranged into (c) Constraints:
predefined relationships or organi- on structure (attribute values, relationship cardlnalltles)
On dynamic behavior
zations. Notice that the two pro-
cesses fit together in a complemen- (4) OOAD Complexity Management
tary way, both diagrammatically
(a) Mechanism for conceptually managing structural complexity
and operationally. (b) Mechanism for conceptually managing behavioral complexity
Two relationships are explicitly (c) Representation of system level:
declared in the figure: AKO (a- Static Structure
Dynamic Behavior/Control
kind-of, generalization-specializa-
tion) and APO (a-part-of, aggrega-
tion). Most authors would agree
that these are two primary ways o f
For the Problem and the Solution Space
organizing objects, or two kinds of
generic relationships among ob- IDENTIFICATION
jects. T h e r e are many other kinds
of relationships which could be de-
fined; these are grouped under
"Association Lattices," since there
does not appear to be a high degree
of consistency across the research in
terms of what these relationships
are and what they mean. An exam-
ple o f a user-defined association
lattice may be a "uses" lattice, as PLA CEMENT
Where
described by either [5] or [1]. Other A = attributes.
possibilities are AEO (an-element- M -- methods.
C -- classes.
of) and AVO (a-view-of). n = {s, i, b, a} and
s = semantic, I = interface, b = base/utility, a = application.
A K O = A Kincl Of, or generalization, relationship.
F i g u r e 3. OOAD: Identification and A P O = A Part Of, or aggregation, relationship.
placement processes

COMMUNICATIONS OF THE ACM/Septernber 1992/Vol.35, No.9 39


The relationships specified in it does not address dynamic consid- Several mechanisms have been
Figure 3 are of the form erations such as control or commu- developed which address this ques-
<relationship name> Lattice. The nication (message-passing). Refer- tion. Some mechanisms group ob-
term lattice is used because it en- ring again to Table 3, OOAD jects based on a particular relation-
compasses hierarchical tree struc- representations are needed for ship (e.g., generalization) in which
tures and one-to-one relationships, static and dynamic views of the sys- they participate; others group ob-
as well as lattices. Many OO pro- tem at both macro and micro levels jects based on dynamic communica-
gramming languages do not sup- (see the following paragraphs). tions they share (e.g., objects which
port multiple inheritance (i.e., lat- Static representations should por- send messages to .each other to ac-
tice class structures); however, the tray objects, relationships, attri- complish some high-level function).
analysis and (logical) design stages butes, and methods (the elements Coad and Yourdon's [7] subjects
should be implementation-inde- shown in Figure 3). Dynamic repre- are an example of the former;
pendent and should therefore per- sentations should depict communi- Wirfs-Brock et al.'s subsystems [29],
mit modeling lattices if this best cation (message-passing) and con- Meyer's clusters [19], and Johnson
represents the situation. Similarly, trol. In addition, the constraints and Foote's frameworks are exam-
AKO is the only kind of relation- specified for the system in such ples of the latter [14]. (Frameworks
ship directly supported in most OO areas as attribute values, relation- are at a higher level of abstraction
programming languages, but other ship cardinalities, and error han- than subsystems and clusters.)
relationships may be utilized dur- dling may be supported by the no- These mechanisms manage struc-
ing OOAD to represent the seman- tations. tural complexity. One of the few
tics of the problem and solution The last major component of constructs which addresses behav-
spaces. How these other lattices will OOAD (referring to Table 3) is ioral complexity is contracts [29].
be implemented in a particular lan- complexity management. Com- Another mechanism for managing
guage is an issue for more detailed plexity management is important complexity is the use of patterns
design or implementation phases from both a conceptual and visual discussed, for example, by
(which are not specifically ad- standpoint. Different views of a sys- Nierstrasz et al [21].
dressed in this article). tem have been defined that are Table 4 tabulates the literature
An important point to emphasize meaningful and can help in manag- based on whether the authors ad-
with regard to Figure 3 is that it ing a large, complex design: micro dress each component in Table 3.
does not indicate the order in which and macro; static and dynamic. The As noted in the table, a shaded cell
problem or solution space elements micro level includes the individual indicates the issue is addressed; a
should be identified or placed. This classes and their interrelationships. blank cell indicates it is not. The
is intentional: classes, attributes, The macro level includes groupings table does not grade the research
and methods may be identified in of these classes (e.g., subjects in [6]). on how well the issues are handled;
any order, and may be placed in Naturally, there can be multiple it simply identifies consideration of
any order once they are defined. macro levels just as there are multi- a topic.
(Obviously, an attribute or method ple levels in data-flow diagrams.
cannot be allocated to a clas,~ until And there may be macro levels or- Observations on C u r r e n t OOAD
that class is defined; similarly, ganized according to different cri- Processes a n d
classes cannot be placed in a rela- teria (aggregation vs. generaliza- Representations
tionship lattice unless they and that tion, for example). Both the macro An overall review of Table 4 rein-
relationship have been defined.) and the micro levels have static and forces our initial classification of
There may be a sequencing of these dynamic characteristics. However, the research. We can quickly see
processes which works "best" or an while a micro-level diagram obvi- which authors provide only a rep-
order which is advocated by some ously consists of objects, it is not resentation (only the boxes under
authors; however, in our experi- clear what constructs are shown on Representation have shading)
ence, the discovery and allocation a macro-level diagram. Complexity which focus only on the analysis or
of attributes, methods and classes is management requires that we: 1) design process, and which address
an iterative, nonsequential process. define the base component for a both process and representation.
At this time, the effectiveness of macro-level diagram (the counter-
various strategies seems to be part to an object on a micro-level Observations on OOA Processes
highly dependent on the back- diagram); 2) provide guidelines on (refer to section [4] of Table 4).
ground and expertise of the ana- identifying or deriving this compo- Most of the problem-domain analy-
lyst/designer and the characteristics nent; and 3) specify the graphical sis components have been ad-
of the problem space, as well as the representation of this construct, dressed by (at least) several authors.
merits of any particular strategy. including its relationship to lower- The identification of semantic
Figure 3 addresses only the level constructs and its static and (problem-domain) classes and be-
structural (static) aspects of OOAD; dynamic features. havior has been extensively c o v -

40 September 1992/Vol.35~No.9/COMMUNICATION$ OF THE A C M


articles

ered. It is interesting to note that object; it may be a new object which objects, as mentioned earlier, may
identifying attributes has not been simply has a window and a text edi- be viewed as the drivers of a partic-
addressed as often as behavior. A tor as components. This implies a ular application. Application ob-
reason for this is that an object can different kind of class structure. We jects are different from semantic
be viewed as an encapsulation of could not find any practical guide- classes; they are probably not
both structure and behavior which lines to determine where to place a things, concepts, roles, or devices
can be accessed only via its inter- new class in situations like this. which could be identified during
face. Therefore, some authors (e.g., problem-domain analysis. Applica-
[6, 29]) feel that it is not important Observations on OOD Processes tion objects are also different from
to specify attribute names, or any (refer to section [2] of Table 4) interface objects, which are essen-
object internals--the external spec- OOD involves the same processes tially views o f the semantic classes.
ification of the object (its interface) used during analysis, applied to dif- An application object is not a kind
is sufficient. ferent kinds of objects. O u r division of interface object, although it may
We agree that objects are encap- of objects into semantic, interface, use an interface object (e.g., a main
sulations of data and behavior and application, and base/utility is not a application window). Application
that they have an interface to other widely accepted division. There- objects are also different from base/
objects. At a conceptual level, how- fore, we might expect that few au- utility objects; they are not applica-
ever, the characteristics (attributes) thors have addressed these specific tion-independent. Application ob-
of an object are an important, inte- categories o f objects. Several au- jects are somewhat like function
gral aspect of that object's semantic thors, however, describe objects objects described by [25] in that
definition. For example, name and that fit our definition of base/utility they are best defined by what they
social security number seem natural, objects. Wirfs-Brock et al. [29], for do rather than what they are. Appli-
logical properties of an employee. example, describe component ob- cation objects may not have a state
They should be modeled as part of jects, black boxes that can be reused that persists over time; typically,
the employee object's structure. in many systems. Bulman [6] dis- they have only behavior. For these
While identifying classes, attri- cusses new abstract data types reasons, we consider application
butes and behavior has been fairly (ADTs) which may be identified classes separately from semantic,
thoroughly covered, placing them during design and added to the sys- interface, and base/utility classes.
has been largely neglected. Most tem library. He states that ADTs Another activity in OOD is refin-
research in placement has been may be discovered as designers see ing classes. This involves examining
done with respect to methods. T h e a need for a new kind of data struc- the class structure for opportunities
Law o f Demeter [18], for example, ture and that the original design to abstract c o m m o n behavior and
provides some valuable operational should be examined to see if objects attributes. It also involves making
rules for placing methods and re- can be added as reusable "compo- sure the classes are complete and
stricting the messages a method can nents." This is the only guideline correct in their design. Are there
send. Other O O A D research, how- we located for finding base/utility methods missing? Are the methods
ever, includes overly simplistic rules classes. and attributes in the proper place?
or rules based on mappings from User interfaces are a prevalent Considerable work has been
data-flow diagrams to behavior in and integral part of systems devel- done on refining classes, particu-
objects (e.g., [2] and [17]). Another opment today and should be a part larly with regard to finding better
problem is that placing methods in of any software analysis and design abstractions (classes), creating
the appropriate classes implies that methodology. Surprisingly, inter- deeper hierarchies, and refining or
the classes have already been placed face objects are rarely addressed adding methods. Bulman [6] points
correctly (again refer to the Law of unless the system being modeled is out that abstractions and better hi-
Demeter). T h e heuristics o f placing one in which the interface objects erarchies can be discovered as we
classes, however, are weak, itera- are part of the problem domain examine other classes, looking for
tive, and often nonoperational. (automated teller machines, for c o m m o n features and/or behavior.
Meyer [19] provides an example of example) Iivari [13] recognizes the He also suggests several questions
a window-oriented text editor, absence of interface objects in other to ask when deciding if a class's
which can be placed as a subclass of analysis methods and includes them behavior is adequate (complete).
a class window, a class text editor, or in his framework for identifying For example, are there other be-
both, or neither. Is a window- objects. A few other authors men- haviors that make sense for an ob-
oriented text editor a special kind tion that user interfaces are an ele- ject but which have not been in-
of window, or text editor, or both? ment o f systems, but they offer little cluded because they were not in the
I f it is any of these, a generalization in the way of identifying or model- requirements specification? Is there
structure is appropriate. On the ing interface objects. an inverse (undo) operation, or a
other hand, the new object may not Application objects are rarely complementary operation which is
be a specialization of an existing discussed in the literature. These an appropriate addition to an ob-

COMMUNICATIONS OF THE AOM/September 1992/Vol.35, No.9 41


T a b l e 4.
Comparison o f OOAD Representations and Processes

PROCESS AND
REPRESENTATION

Coad Gorman Lleb- Rum-


and and erherr baugh Lee &
Alablso Ballln Booch Yourdon Chooblneh Ilvarl Kappel Carver et al. Meyer e t a l .

1. OOA PROCESS
Problem Domain Analysis
(a) Identification of:
Semantic classes X X x x x X x x X x
Attributes X X x X
Behavior X X X X X X X X X
Relationships:
Generalization X X X X X X
Aggregation X X X
Other X X
(b) Placement of:
Classes X X
Attributes X
Behavior X X X X X X X X
(c) Specification of:
Dynamic behavior X X X
(i.e., message passing)

2. OOD PROCESS
Solution Domain Design
(a) Identification of:
Interface classes X X
Application classes
Base/utility classes X X X
(b) Optimization o f classes X X X X X

3. REPRESENTATIONS
(a) static View
Objects x x x X X x x X X X
Attributes X X X X X X X X
Behavior X X X X X X X X X X
Relationships:
Generalization X X X X x x X X x
Aggregation X X X X X
Other X X X
(b) Dynamic View
Communication X X X X X X
Control/Timing X X X X x x
(c) Constraints
On structure X X X X
On dynamic behavior X X X

4. COMPLEXITY MGT.
(a) For structural complexity X X X X X
(b) For behavioral complexity
(c) Representation of:
Static structure X X
Dynamic behavior

No. o f Issues Addressed 12 5 21 19 12 9 12 8 2 9 20

A marked cell indicates that the issue is addressed; a blank cell indicates that it is not. The table does not grade the research on how well the issues are handled; it simply identifies
consideration of a topic.

42 September 1992/Vol.35 No.9/COMMUN CAT ONSOFTHEACM


arficleS

REPRESENTATION PROCESS
ONLY ONLY

Shlaer Wlrfs- BeCk and Cunning- Page- Wasser- Henderson- JOhnson Scharen-
and Brock Ackroyd Cunning- ham Jones man Sellers and and berg and
Mellor et al. & Daum ham and BeCk et al. et al. WilSOn Bulman Constantine Foote Dunsmore

X X X X X

X X X X X

X X X X
X
X

X X

X X X

X
X X
i

X X X X X X X X
X X X X
X X X X X X X X

X X X X X X

X X X X

X X X X X
X X

X X X
X
i

X X X
X

13 15 5 3 4 5 8 5 7 3 5 6

G O M M U N I G A T I O N S OF T H E ACM/September 1992/Vol.35, No,9 43


ject's protocol? Bulman uses the ships are mentioned, but none is but do not provide a tool for repre-
example of an add operation which well supported by representations senting them. Rumbaugh et al. [24]
should also have an inverse delete or accepted by many authors. One discuss modules as a way of group-
operation and a complementary explanation for the wide accept- ing classes and relationships. They
modify operation. ance of generalization structures is do not provide a notation for view-
that they are directly supported in ing the module level, however.
Observations on Representations object-oriented programming lan-
(refer to section [3] of Table 4) guages. OOAD Research Strengths and
One of the first things to note is the weaknesses
large n u m b e r of static representa- Observations on Complexity An overall problem with the cur-
tion models. These representations Management (refer to section [41 rent O O A D research is that there is
all model similar constructs; how- of Table 4) no comprehensive methodology
ever, the notations used and con- Many authors provide a conceptual that integrates and balances differ-
structs emphasized vary greatly. A grouping mechanism to manage ent views of a system from macro to
detailed comparison of all the rep- the complexity of large designs. micro levels. Most the OO ap-
resentations is beyond the scope of Most of these mechanisms manage proaches are simply variations on a
this article. There are, however, structural complexity; i.e., they are t h e m e - - w h e t h e r the theme is func-
some important observations that a way of grouping classes into more tional decomposition, data model-
can be made. abstract "things." Coad and Your- ing or dynamic modeling--with
First, there are more OO static don's subjects [7] and Wirfs-Brock incomplete heuristics for transla-
models than OO dynamic models. et al.'s subsystems [29] are two ex- tion to an object design.
O f the dynamic models that are in- amples of problem-partitioning There is nothing wrong with
cluded, most of them consist of mechanisms. using or modifying existing ap-
state transition diagrams which A subject is a mechanism that proaches; many of them can fit into
must then be mapped or translated encapsulates objects in any rooted an OO methodology. OO is a new
into behavior in an object model. structure or substructure (e.g., a way of packaging units in a system,
One reason for the emphasis on generalization or aggregation a different way to solve p r o b l e m s - -
static structure rather than dynamic structure). Subjects are created by but many aspects remain the same.
behavior may be the heavy influ- collapsing a structure down to its Developers still have to define and
ence on O O A D from data model- root, thereby reducing its complex- represent the system's structure
ing. Data modeling focuses primar- ity. Wirfs-Brock et al.'s subsystems and dynamic behavior (i.e., con-
ily on structure, not dynamic are different from subjects in that trol). And they still have to perform
behavior or control. Dynamic mod- they are not necessarily based on functional decomposition on meth-
eling, on the other hand, focuses on rooted structures. A subsystem con- ods [11]. There is a need to incor-
event-handling--the sequence, sists of classes or other subsystems porate or modify existing processes
timing and control of events and that work together to achieve some and representations which model
processes. Dynamic modeling is higher-level function. (Subsystems these characteristics (structure,
currently used for real-time systems have long been used as an engi- function and control) into a com-
and office automation applications neering design principle). For ex- plete and comprehensive O O A D
[15]. As the popularity of dynamic ample, an automated teller ma- methodology.
modeling increases, we may see chine application might have a There are three general ap-
more of a balance between the financial subsystem and a user- proaches to OOAD, characterized
number of static and dynamic rep- interface subsystem [29], which are by the manner and degree to which
resentations in OOAD. For exam- defined by their functionality they incorporate other paradigms:
ple, Kappel's object/behavior model rather than by a structural relation- 1) The combinative approach: Use ob-
includes a set of diagrams that ship. While subsystems are a useful ject-oriented, function-oriented,
model both structure and behavior mechanism for reducing complex- and/or dynamic-oriented tech-
of objects. Many of the diagrams in ity, it may be difficult to operation- niques to separately model struc-
his model are extensions to existing alize the identification of subsys- ture, functionality and/or dynamic
dynamic models. tems. T h e authors of these behavior and provide a method for
Another important point regard- mechanisms do not provide many integrating the different models.
ing notations involves the represen- heuristics for identifying subsys- 2) The adaptive approach: Use exist-
tation of relationships. As seen in tems. ing techniques in a new (object-
Table 4, most representations sup- Subjects and subsystems are sup- oriented) way, or extend existing
port generalization relationships. ported by Coad and Yourdon's and techniques to include object-orien-
Aggregation relationships are also Wirfs-Brock et al.'s representations, tation.
supported, but to a lesser extent. respectively. Other authors suggest 3) The "pure" object-oriented ap-
Beyond that, several other relation- conceptual grouping mechanisms, proach: Use new techniques to

September 1992/Vol.35,No.9/COMMUNICATIONSOF THE ACM


articles

model object structure, functional- diagrams and predicate transition Table 5 lists the key OOAD
ity and dynamic behavior. nets. Another example is Nierstrasz strengths and weaknesses identified
The combinative approach mod- et al.'s [21] component-oriented and discussed in this article.
els separate views of a system using software development (COSD)
traditional techniques. Rumbaugh which is object-oriented with a pri-
Future Research
et al. [24] and Shlaer and Mellor mary emphasis on reusable frame-
This section discusses four direc-
[26] are in this category. They have works and components.
tions for future research: 1) defin-
processes and representations for
The "pure" object-oriented ap- ing and integrating various abstrac-
structural, dynamic and functional
proach describes work done, for tion levels and views of a system in
modeling. The structural represen-
example, by [4, 5, 29]. These au- OOAD; 2) developing evaluative
tations are derived from database
thors approach software design models for the results of OOAD;
modeling and ERDs in particular,
using an object-oriented perspec- 3) identifying typologies of objects,
even though the notation is new.
tive. They focus on modeling the behavior, and relationship to use
The dynamic model consists of
objects in the problem domain, during OOAD; and 4) specifying a
state-transition diagrams. The
their protocols, and their commu- typology of OOAD approaches.
functional model resembles data-
nication and relationships with Each of these items is discussed
flow diagrams.
other objects. Each object has re- briefly in the following subsections.
These three models are generally
sponsibilities, collaborators, and
independent of one another, and
relationships with other objects in
they capture different aspects of Layers a n d V i e w s
the system. These techniques do
the system. However, these combi- There is an effort among OOAD
not require a translation process as
native approaches deteriorate when researchers to model several views
do the combination approaches.
they try to integrate the different of a system. For example, struc-
They do, however, need a complex-
views into an object-oriented de- tural, functional, and control views
ity management mechanism to per-
sign. The structural model gener- can be modeled. There also is work
mit viewing the design at varying
ally includes objects, attributes, and on building higher levels of abstrac-
levels of detail (as in data-flow dia-
relationships, but not behavior tion than objects, such as Coad and
grams) or from various perspec-
(e.g., [26]). A major problem is Yourdon's subjects and Wirfs-
tives (as in the combination ap-
mapping the data-flow processes Brock et al.'s subsystems. What is
proaches).
from the functional (DFD) model, missing, however, is a clear defini-
and the events and activities from The representation for OOAD is tion of what layers and views are
the dynamic (STD) model into be- still incomplete and is not standard- important for representing and
havior of particular objects in the ized. A great deal of research ad- designing a system, and a means of
object model. dresses micro- (i.e., object- ) level integrating and balancing them.
Bailin [3], Gorman and static and dynamic representations; As can be seen from section (4) of
Choobineh [10], Henderson-Sellers much less work has been done on Table 4, relatively few of the
and Constantine [11], and Kappel macro-level static and dynamic nota- OOAD approaches include mecha-
[15] provide adaptive approaches. tions (particularly macro-level dy- nisms for managing the complexity
These authors blend existing pro- namic notations). of a large design. A solution to this
cesses and representations with an
object-oriented perspective. For
T u b l e S.
example, traditional data-flow dia- Strengths and Weaknesses of Current OOAD Research
grams and other function-oriented
representations can be used in a STRENGTHS WEAKNESSES
new context--representing an ob- • Identifying semantic classes • Identifying interface, application
and system classes
ject's functionality rather than the • Identifying attributes and behavior • Determining when an attribute,
system's functionality [11]. Bailin's relationship or behavior
technique uses entity data-flow dia- should be a class
• Placing methods (Law of Demeter) • Placing classes
grams, which are DFDs whose • Identifying and representing • Identifying and representing
functions are associated with spe- generalization and other kinds of relationships
cific objects or entities. Gorman and aggregation structures
• Maintaining consistent and correct
Choobineh's object-oriented entity semantics for relationships
relationship model extends the en- • Representing static views • Representing dynamic views
(structure) (message passing,
tity-relationship and semantic data control,...)
models to include behavior model- • Integrating static and dynamic
ing. Kappel's object/behavior models
• Maintaining consistent levels of
model, as noted earlier, is an object- abstraction/g ranularlty
oriented version of state transition

COMMUNICATIONS OF THE ACM/September 1992/Vol.35, No.9 4S


ao'e
articles

problem may be to define various Prescriptive models specify the in which circumstances. Intuitively,
"abstraction layers" of the system. steps or procedures for developing it seems that the combinative ap-
The top, or macro, layer(s) should an analysis or design; evaluative proach is the least desirable, be-
communicate the system structure, models measure the quality of an cause it is more complex than the
function and control, and would be analysis or design. A number of others. It tries to combine the struc-
developed during requirements authors (e.g., [5, 14, 29])discuss tured and object-oriented para-
specification and analysis. T h e bot- qualities or characteristics which digms, but many of the fundamen-
tom, or micro, layer should repre- are desirable in an OO design. But tal concepts of these paradigms are
sent the objects' structure, func- many of the characteristics are conflicting. It also seems, however,
tionality, and control and would be vague, difficult to define and diffi- that structured techniques and con-
developed during analysis and/or cult to measure. Designs that are cepts do have a place in object-
object design. Any intermediate reusable are considered "good," but oriented systems development.
layers should provide a smooth what is "good" and what constitutes Structured techniques may best be
transition from the macro to micro reusability? A design should be applied in the context of designing
view. T h e bottom layers will have measured along at least two dimen- the behavior of an object, rather
much more detail and the top lay- sions, the technical and semantic than the behavior or functionality
ers will be much broader in scope. dimensions. T h e technical dimen- of the entire system [11]. Whether
A model that synthesizes the sion should address software engi- and how different modeling tech-
static and dynamic features of a sys- neering issues such as the amount niques should be blended into
tem at various levels o f abstraction of coupling and cohesion among O O A D is a hotly debated question
may be the most important need in objects in a design. T h e semantic which has not been adequately an-
O O A D research. For example'., con- dimension should assess whether swered in the research.
sider Rumbaugh et al.'s [24] Object the design is a good semantic model
Modeling Technique. It includes an of the problem and solution spaces. Summary
object diagram, data-flow diagrams In other words, how closely does Object-oriented systems develop-
and state-transition diagrams. the design reflect the mental model ment is a popular topic in both aca-
These diagrams, taken together, which the users, analysts and devel- demia and industry these d a y s - - s o
represent three different, impor- opers have of the situation? popular, in fact, that it is difficult to
tant views of the system. However, stay abreast o f all the research and
they are not well integrated. It is Typologies of Classes, Behavior, literature being published on ob-
difficult to recognize how an object, and Relationships ject-oriented analysis, object-
behavior or attribute in the object This article presented a typology of oriented design and object-oriented
model relates to a data flow or data- classes (semantic, interface, applica- programming. This article has at-
flow process in the functional tion, and base/utility). Another ty- tempted to bring some order to the
model or to an event or state in the pology has been presented by [13]. collection o f current O O A D re-
dynamic model. These three dia- Behavior classifications are men- search by building a framework for
grams also represent different ab- tioned by [7, 24]; various categories comparing O O A D research. This
straction levels--the object model of relationships (e.g., generalization framework includes the critical
depicts micro-level structure, and and aggregation) are discussed in components of an O O A D method-
the dynamic model portrays micro- the O O A D research. Most of these ology, which are based on O O ex-
level states and transitions, while typologies, however, are incom- tensions to Colter's [8] and Press-
the functional model describes plete. Research is needed to extend man's [23] work. In Table 4, 24
macro-level functionality. Tile dif- existing classifications or to develop O O A D processes and/or represen-
ferent levels of granularity make it new ones, to integrate them, and to tations are mapped to this frame-
difficult to integrate or synthesize test their completeness and useful- work. Observations are made with
the separate models. ness. Existing typologies should be respect to this comparison, and
compared to see what characteris- strengths and weaknesses in O O A D
Evaluative Models for OOAD tics are redundant. T h e remaining research are identified. Possible
Another direction for future re- characteristics could then be directions for future research in
search is in developing evaluation treated as different dimensions on O O A D were mentioned, based on
models for OOAD. Presently, the which to classify classes, and so on. the review of existing research. []
O O A D models are prescriptive
rather than evaluative in nature.* Typology of 00AD Approaches
References
This article discussed three ap- 1. Ackroyd, M. and Daum, D. Graphi-
*This section refers mostly to designs, since proaches to OOAD: combinative, cal notation for object-oriented de-
there is already some work on defining what adaptive and pure. An area for fu-
constitutes a good design (e.g., [8]). However,
sign and programming. J. Object-
evaluative models are also needed for analy- ture research is to determine which Oriented Program 3, .5 (Jan. 1991),
sis. of these approaches is "better" and 18-28.

46 September 1992/Vol.35, No.9/(:OMMUNICATIONS OF THE ACM


articles

2. Alabiso, B. Transformation of data 17. Lee, S. and Carver, D.L. Object- CR Categories and Subject Descrip-
flow analysis models to object- oriented analysis and specification: tors: D.2.1 [Software]: Software Engi-
oriented design. In Proceedings of A knowledge base approach. J. Ob- neeriixg--requirements/specifications;
OOPSLA '88 Conference (San Diego, ject-Oriented Program. (Jan. 1991), D.2.10 [Software]: Software Engi-
Calif., Sept. 1988), 335-353. 35-43. neering-design; 1.6.0 [Computing
3. Bailin, S.C. An object-oriented re- 18. Lieberherr, K., Holland, I., and Methodologies]: Simulation and Mod-
quirements specification method. Riel, A. Object-oriented program- eling-general; 1.6.3 [Computing Meth-
Commun. ACM 32, 5 (May 1989), ming: An objective sense of style. In odologies]: Simulation and Modeling--
608-623. Proceedings of OOPSLA '88 Confer- applications; K.6.3 [Computing
4. Beck, K. and Cummingham, W. A ence (San Diego, Calif., Sept. 1988), Milieux]: Management of Computing
laboratory for teaching object- pp. 323-334. and Information Systems--software
oriented thinking. In Proceedings of 19. Meyer, B. Object-Oriented Software management; K.6.4 [Computing
OOPSLA '89 Conference (New Orle- Construction. Prentice Hall, Engle- Milieux]: Management of Computing
ans, La., Sept. 1989), pp. 1-6. wood Cliffs, N.J., 1988. and Information Systems--system man-
5. Booch, G. Object-OrientedDesign with 20. Mrdalj, S. Bibliography of object- agement
Applications. Benjamin/Cummings, oriented system development. ACM
1991. SIGSOFT Softw. Eng. Not. 15, 5
6. Bulman, D. Refining candidate ob- (1990), 60-63. General Terms: Design, Methodology
jects. Comput. Language (Jan. 1991), 21. Nierstrasz, O., Gibbs, S. and Additional Key Words and Phrases:
30-39. Tsichritzis, D. Component-oriented Analysis, Modeling
7. Coad, P. and Yourdon, E. Object- software development. Commun.
Oriented Design. Prentice Hall, En- ACM 35, 9 (Sept. 1992).
glewood Cliffs, N.J., 1991. 22. Page-Jones, M., Constantine, L.L.
8. Colter, M.A. A comparative exami- and Weiss, S. Modeling object- About the Authors:
nation of systems analysis tech- oriented systems: The uniform ob- DAVID E. MONARCHI is an associate
niques. MIS Q. (Mar. 1984), 51-66. ject notation. Comput. Language professor in information systems at the
9. Cunningham, W. and Beck, K. A (Oct. 1990), 70-87. University of Colorado at Boulder. Cur-
diagram for object-oriented pro- 23. Pressman, R.S. Software Engineering: rent research interests include object-
grams, In Proceedings of OOPSLA "86 A Practitioner'sApproach. Second ed., oriented systems, data modeling, and
Conference. (Portland, Ore., Sept. McGraw-Hill, 1987. knowledge representation.
1986), pp 39-43. 24. Rumbaugh, J., Blaha, M., Premer-
10. Gorman, K. and Choobineh, J. The lani, W., Eddy, F. and Lorensen, W.
object-oriented entity-relationship Object-oriented modeling and design.
model (OOERM). J. Manage. Inf. Prentice Hall, Englewood Cliffs,
GRETCHEN I. PUHR is a Ph.D stu-
Syst. 7, 3, 41-65. N.J., 1991.
dent in Information Systems at the Uni-
11. Henderson-Sellers, B. and Con-
25, Scharenberg, M.E. and Dunsmore, versity of Colorado at Boulder. Current
stantine, L.L. Object-oriented de-
H.E. Evolution of classes and ob- research interests include object-
velopment and functional decom-
jects during object-oriented design oriented analysis and design, and evalu-
position. J. Object-OrientedProg. 33,
and programming.J. Object-Oriented ative models (including metrics) for
9 (1991), 11-17.
Program. (Jan. 1991), 30-34. analysis and design.
12. Henderson-Sellers, B. and Ed-
wards, J.M. The object-oriented 26. Shlaer, S. and Mellor, S.J. Object-
systems life cycle. Commun. ACM 33, Oriented SystemsAnalysis: Modeling the
9 (Sept. 1990), 142-169. World in Data. Prentice Hall, 1988. Authors' Present Address: University
13. Iivari, J. Object-oriented informa-
27, Wasserman, A.I., Pircher, P.A. and of Colorado, School of Business and
tions systems analysis: A framework
Muller, R.J. The object-oriented Administration, Campus Box 419,
for object identification. IEEE
structured design notation for soft- Boulder, Colorado, 80309-0419; email:
Trans. (1991), 205-218.
ware design representation. IEEE {monarchi_d, puhr_g}@cubldr.colora
14. Johnson, R.E. and Foote, B. De-
signing reusable classes. J. Object-
Comput. (Mar. 1990), 50-62. do.edu
Oriented Program. 1, 2 (June/July 28. Wilson, D. Class diagrams: A tool
1988), 22-35. for design, documentation, and
15. Kappel, G. Using an object-oriented teaching. J. Object-OrientedProgram. Permission to copy without fee all or part of
diagram technique for the design of (Jan./Feb. 1990), 38-44. this material is granted provided that the
information systems. Dynamic copies are not made or distributed for direct
Modelling of Information Systems. 29. Wirfs-Brock, R.J., Wilkerson, B. commercial advantage, the ACM copyright
H,G. Sol and K.M. van Hee Eds. and Wiener, L. Designing Object- notice and the title of the publication and its
Elsevier Science Publishers B.V., Oriented Software. Prentice Hall, date appear, and notice is given that copying
1991, 121 164. Englewood Cliffs, N.J., 1990. is by permission of the Association for
16. Ladden, R.M. A survey of issues to 30. Yourdon, E. and Constantine, L.L. Computing Machine W, To copy otherwise, or
to republish, requires a fee and/or specific
be considered in the development Structured Design: Fundamentals of a permission.
of an object-oriented development Discipline of Computer Program and
methodology in Ada. Ada Letters 9, 2 Systems. Prentice Hall, Englewood
(Mar./Apr. 1989), 78-88. Cliffs, N.J., 1979. © ACM 0002-0782/92/0900-035$1.50

C O M M U N I C A T I O N S OF THE ACM/September1992/Vo1.35,No.9 47

You might also like