B Ect 0 Ien Ed System Deve I Pmen Methods: Alan R. Hevner
B Ect 0 Ien Ed System Deve I Pmen Methods: Alan R. Hevner
Methods
ALAN R. HEVNER
Information Systems Department and
Systems Research Center
College of Business and Management
University of Maryland
College Park, Maryland
1. Object-Oriented Concepts
Information systems have been successfully (and unsuccessfully) devel-
oped for centuries. The advent of the computer revolutionized the develop-
ment of information systems, making computer-based information systems
(CBIS) essential components of our lives. Numerous methods, techniques,
and tools for building systems have been developed since the beginning of
the computer era to support the tremendous demand for CBIS in business
135 Copyright 0 1992 by Academic Press, Inc.
All rights of reproduction in any form reserved.
ADVANCES IN COMPUTERS, VOL. 35 ISBN 0-12-012 135-2
136 A. R. HEVNER
Objects are grouped into classes based upon common state structures and
common behaviors. For example, all individual car objects can be grouped
into the car class. Further, lower-level classes (i.e., subclasses) can be grouped
into higher-level classes (i.e., superclusses). For example, cars and trucks can
be grouped into a wheeled-vehicle class. Such relationships among classes
are defined by inheritance hierarchies. (Note that a node in an inheritance
hierarchy can be either a class or an object at the leaf nodes. In the remainder
of the chapter, we use the term object-class to refer to an arbitrary node in an
inheritance hierarchy.) A simple example can help explain these definitions.
The description of a class for a generic tennis racquet is shown in Fig. 1.
(A straightforward representation of objects and classes is used for this
example. More detailed representations are discussed in later sections.)
The properties that describe a generic tennis racquet are listed. Further
development would design appropriate structures (e.g., simple and complex
data structures) for each property. Necessary behaviors are also listed with
the procedural design details to be added later as a system design is
completed.
A sample inheritance hierarchy that includes the tennis racquet class is
shown in Fig. 2. Note the grouping of subclasses (i.e., children in the hierar-
chy) into superclasses (i.e., parents in the hierarchy). This grouping repre-
sents one of three types of relationships among classes:
Generalization. Lower-level concepts generalize into a higher-level con-
cept. Such relationships can be termed isa or kind of relationships. For
example, collies, poodles, and terriers are all kinds of dogs (i.e., a collie
PROPERTIES:
MANUFACTURER, MODEL, DIMENSIONS,HITTING-AREA,
WEIGHT, BALANCE, STRING-TENSION, STRING-PATTERN,
STIFFNESS, MATERIALS, GRIP-SIZE
BEHAVIORS:
CONSTRUCT
RESTRING
MODIFY-FRAME
MODIFY-GRIP
DESTROY
FIG. 1. Tennis racquet class.
138 A. R. HEVNER
I . 2.1 Abstraction
Abstraction is the human cognitive ability to concentrate on the relevant
aspects of an object while ignoring nonrelevant aspects. Shaw (1984)
describes a system abstraction as “a simplified description, or specification,
of a system that emphasizes some of the system’s details or properties while
suppressing others. A good abstraction is one that emphasizes details that
are significant to the reader or user and suppresses details that are, at least
for the moment, immaterial or diversionary.”
Abstraction is essential in order to deal with the complexity of systems.
Attempting to specify all details of even a small system quickly results in
confusion and loss of perspective. Thus, an experienced system developer
will model system components (e.g., objects) at high levels of abstraction in
order to establish component boundaries and essential behaviors. As the
development proceeds and system requirements are better understood, the
system component is fleshed out with design details at lower levels of
abstraction.
A. R. HEVNER
1.2.2 Modularity
Complex systems are divided into modules in order to gain intellectual
control of the development (Gannon, Hamlet, and Mills, 1987). Each mod-
ule should represent a single meaningful abstraction in the system domain.
A module is defined by its internal design and its interfaces to the other
modules in the system. An important goal is for each module to be developed
and maintained independently from the other modules in the system (Parnas,
Clements, and Weiss, 1985).
The selection of system modules is a critical development activity.
Attempts at measuring the “goodness” of a module have identified the char-
acteristics of cohesiveness and coupling. A highly cohesive module “sticks
together” the state and behavior of a single, meaningful system abstraction.
A loosely coupled module is highly independent of other modules. All com-
munication among modules is strictly defined in module interfaces. Guide-
lines for achieving highly cohesive and loosely coupled system modules for
traditional software engineering approaches have been around for a number
of years (e.g., Parnas, 1972). Object-oriented approaches present unique
opportunities for defining modules in terms of objects and classes.
1.2.3 Encapsulation
Encapsulation hides the internal details of a module implementation.
These internal details would include data designs for state and procedural
designs for behavior. A user of the module is not aware of the internal
designs of the module, only the visible module interfaces. This principle is
also known as information hiding. Encapsulation supports effective mainten-
ance and evolution of the module. For example, the internal design of the
module can be enhanced and improved without effecting the use of the
module through existing interfaces.
1.2.4 Hierarchy
It is not enough just to “divide and conquer” a complex system through
abstraction, modularity, and encapsulation. We must “divide, connect, and
conquer” to gain true intellectual control of system development. The ability
to connect the different levels of system abstractions within modules is essen-
tial. Hierarchies have been used effectively to describe system models in most
software engineering methods. In particular, the foundation of structured
programming is based on the insight that any program can be defined as a
strict hierarchy of mathematical functions (Mills 1986).
OBJECT-ORIENTED SYSTEM DEVELOPMENT METHODS 141
systems require large, shared, persistent storage; as well as, facilities for
object-class organization, efficient manipulation (e.g., querying, retrieval,
and updating), concurrency control, and recovery. Database systems provide
these capabilities for the storage of data in traditional systems development.
What new requirements are needed for object-oriented database systems
(OODBS)?
The unit of storage in the OODBS is the object-class. This requires that
encapsulated combinations of data and methods (i.e., procedures) must be
managed as an integral unit. The goal of the OODBS is to provide logical
and physical independence of the objects to the application object-oriented
programs that form systems. Thus, multiple systems can query, retrieve, and
utkdate objects concurrently and independently while the OODBS manages
all -letails of object consistency, currency, security, recovery, and integrity
(Hughes 1991). Since multiple systems share the OODBS, communication
among applications through objects is provided.
We can identify four basic requirements of OODBS beyond conventional
database systems :
The Boehm Spiral (Boehm, 1988). The Boehm spiral model of system
development is risk driven. The objective of each loop is to reduce the
risks involved with the evolving stages of system development. Each loop
has four steps:
Determine objectives, alternatives, and constraints,
Evaluate alternatives, identify and resolve risks,
Develop and verify next-level product,
Plan next phases.
Prototyping is supported as an effective means of evaluating and resolving
risk. As many loops as needed are performed to complete the system
development. If the system can be divided into increments, parallel
development spirals are executed.
The Mills Spiral (Mills, Linger, and Hevner, 1987b). The Mills spiral
model defines a set of limited, time-phased activity loops to manage a
system development. Each activity loop is initiated and managed dynami-
cally on the basis of the outcome of previous loops. The activity loops in
the spiral can be sequential or concurrent and can be one of three types;
investigation, specification, or implementation. Each loop regardless of type
has three steps:
Planning the activity objectives, statement of work, and schedules,
Performance of the work needed to achieve the activity objectives,
148 A. R. HEVNER
Evaluation to determine if the objectives are met and to plan for the
next activities.
Activity loops are performed in the spiral until the system development is
completed.
These spiral models provide the flexibilityto plan and record system devel-
opment activities in a controlled, user-defined pattern. Activities are not
predefined into phases. Thus, a loop of investigation can be followed by a
loop of implementation, followed by a loop of specification, followed by a
loop of investigation, etc. in no predefined order.
The spiral system life cycle is a natural one for object-oriented system
development. The three activities of the Mills’s spiral model correspond
closely with the three principal OOSD activities: object-oriented analysis
(OOA), object-oriented design (OOD), and object-oriented implementation
and testing (OOIT) (Henderson-Sellers and Edwards, 1990; Booch, 1991;
Coad and Yourdon, 1991). Each of these activities can be defined as follows:
0 OOA works in the problem domain of the system. Investigation and
analysis tasks are performed to capture and understand system require-
ments based on the set of problems to be solved by the system. Required
objects and classes are proposed and modeled.
0 OOD works in the solution domain of the system. Based on the results
of OOA, system designs are specified under the opportunities and con-
straints of the development environment. Design tasks, such as module
definition and hierarchy definition via decomposition and composition,
are performed and validated as to correctness and predicted system
performance.
0 OOIT builds the system design in combinations of hardware, software,
and human behavior. System testing is an integral part of implementa-
tion. OOIT makes use of OOP languages and OODBS to support obj-
ect-Orientation directly in implementation.
The spiral model supports flexible patterns of OOA, OOD, and OOIT activ-
ity loops during a system development, as illustrated in Fig. 3. Integration
of the object concept throughout all system development activities is essential
for the spiral model to be most effective. This allows the results of each
activity to be shared efficiently with all other activities without the need for
information transformations (i.e., bridges) between development steps. As
discussed in Section 5, integrated CASE environments for OOSD is an
important area of current and future research and development (IEEE
Software, 1992).
Henderson-Sellersand Edwards (1990) analyze the combination of OOSD
methods and traditional methods for system development; for example, the
OBJECT-ORIENTED SYSTEM DEVELOPMEN-T METHODS 149
-
A MANAGEMENT
APPROVAL
A
COMPLETION
FIG.3. Object-oriented spiral model.
use of OOA and OOD with a procedural programming language (e.g., Pas-
cal), or the use of a process-oriented analysis technique (e.g., data-flow
diagrams) with OOD and OOIT. While these combined methods may appear
to be a natural evolution toward object-orientation, the disparities in system
concept and information representation cause many problems. Bridges must
be constructed to map information from one activity to another, forfeiting
true integration throughout the development process.
In the same paper, Henderson-Sellers and Edwards (19%) propose the
fountain life cycle model for OOSD. The central plume of water in the
fountain represents the main path of OOSD activities. Multiple, separate
water plumes represent the development of system modules. Each module
contains a “cluster” of related classes grouped for independent design and
implementation. The modules are placed into a library for use in the current
system and reuse in future systems. Similarly, the spiral model accommod-
ates concurrent paths of OOSD for the development of independent system
modules.
We now survey current methods for OOA, OOD, and OOIT. It is impor-
tant to view these methods in light of the integration required by the spiral
development model. While current OOSD methods can be fit into the tricho-
tomy of OOA, OOD, and OOIT, future research and development in OOSD
will emphasize total life-cycle integration.
150 A. R. HEVNER
SUBJECT LAYER
CLASS-&-OBJECT LAYER
~~
STRUCTURE LAYER
AlTRIBUTE LAYER
SERVICE LAYER
FIG. 4. Coad and Yourdon OOA model layers.
OBJECT-ORIENTED SYSTEM DEVELOPMENT METHODS 153
El
I I
Non-Fiction
CalcPurchStat CalcPurchStat
I
I
Science-Fic. Classificatlon
FutureEra Keyword
I I
Eiffel. Meyer was one of the first to realize the potential advantages of
object-oriented development for large scale systems. Finding no satisfac-
tory OOP language in which to design and build object-oriented systems,
Meyer (1988) developed the Eiffel language and programming environ-
ment. The Eiffel language is truly object-oriented, including multiple inheri-
tance, polymorphism, and strong typing. The system development
environment emphasizes the storage and reuse of classes and objects
(Meyer, 1987). The Eiffel OOD method has evolved through numerous
commercial applications of the language.
Object Modeling Technique (OMT). OMT has been developed at General
Electric Research and Development Center to support the complete devel-
opment life cycle of object-oriented systems (Rumbaugh et al., 1991). The
OMT graphic notation is used to build system models during OOA. These
OBJECT-ORIENTED SYSTEM DEVELOPMENT METHODS 155
models are transformed into system and object designs by adding imple-
mentation details. OMT is language independent and allows the selection
of a implementation language that best suits the application.
Responsibility Driven Design (RDD). Based on experience with Smalltalk
applications. Tektronix has developed RDD methods for OOD (Wirfs-
Brock, Wilkerson, and Weiner, 1990). Objects are assigned responsibilities
in the system to maintain knowledge and provide actions. The RDD
methodology iterates through phases of exploration and analysis to pro-
duce object-oriented system designs. Reuse is emphasized in forming
objects and classes.
Object-Oriented Role Analysis, Synthesis, and Structuring (OORASS).
The development group at the Senter for Industriforskning (SI) in Norway
has been building Smalltalk systems since 1983. Their OORASS method
of OOD centers on the roles that objects play in systems (Reenskaug and
Nordhagen, 1989). The five-stage design method covers the development
life cycle in Smalltalk from developing role models through system
implementation.
Other OOD projects are surveyed in (Wirfs-Brock and Johnson, 1990).
Many experienced system development organizations are beginning to cus-
tomize their own OOD methods. We will see a large number of proposed
object-oriented methods and tools in the near future. Currently, the most
widely known OOD method is due to Booch (1991). We now look at this
method in more detail.
1. Identfy the classes and objects at a given level of abstraction. This step
emphasizes the discovery of information from the application domain
156 A. R. HEVNER
3 . Identfy the relationships among these classes and objects. The relation-
ships (e.g., generalization, aggregation, and association) among classes
and objects are discovered, analyzed, and represented in the design
templates. This is a highly creative exercise that determines the
structure of the system.
4. Implement these classes and objects. The final design decisions are made
to complete the specification of these classes and objects. Additional
design templates are defined. In the module template, classes and objects
are allocated to physical modules for implementation. Required pro-
cesses are defined in the process template and are assigned to processors
in the processor template. Hardware resources are considered in the
device and connection template.
Booch emphasizes the iterative and spiral application of these four steps. He
recommends a complete pass through the four steps for each important level
of abstraction in the system.
A comprehensive set of examples is presented by Booch (1991) to illustrate
the use of his OOD method. Each example includes a partial implementation
of the example design in different OOP languages. The languages demonstra-
ted are Smalltalk, Object Pascal, C++, CLOS, and Ada.
The spiral activities of OOA, OOD, and OOIT can be performed for each
increment. The activities of one increment can overlap the activities of pre-
ceding and succeeding increments. The incremental development plan details
and controls the sequencing of increments. Each successive increment of
classes, objects, and structures builds onto the system until the system is
eventually completed. Incremental development supports the objectives of
system prototyping, configuration management, version control, incremental
verification, and incremental testing.
The risks are potentially poor system performance and OOSD start-up
costs. The performance overhead of OOP and OODBS in relation to tradi-
tional programming languages and database systems cannot be ignored.
Currently these implementation areas may preclude the use of object-orienta-
tion in certain applications that demand high performance. Also not to be
taken lightly are the costs-time, money, and human stress-required to
learn and apply OOSD methods.
Our analysis of current OOSD concludes that object-orientation has revo-
lutionary potential. However, important deficiencies, theoretical and
pragmatic, will hamper widespread use of OOSD methods until they are
remedied. In this section, we have surveyed the many research and develop-
ment efforts that are addressing object-oriented issues by investigating new
methods of OOA, OOD, and OOIT. In the next two sections, a comprehens-
ive methodology for OOSD, the cleanroom system development process
(CSDP), is presented. In CSDP, objects are defined mathematically as box
structures. As an integrated development process, CSDP provides important
new advances in achieving development productivity and system quality.
1. All data to be defined and stored in the design are hidden in data
abstractions.
2. All processing is defined by sequential and concurrent uses of data
abstractions.
3. Each use of a data abstraction in the system occupies a distinct place
in the usage hierarchy of the system.
162 A. R . HEVNER
Although a data stack can be readily imagined, the responses can be deter-
mined by examining only the stimulus histories, as in the preceding.
The state box of a system or subsystem expands the black box by identi-
fying data at this system level to be stored between stimuli so that only a
current stimulus is required but not previous history. Let T be a set of
possible data states at the top level, and let t be the initial state of the
system or subsystem. As noted earlier, the state box contains an internal data
abstraction that is defined by another black box, say g. In this case, the
internal black box has a compound stimulus consisting of the external
stimulus and the internal state and a compound response consisting of the
external response and the new internal state. That is, g has the form
g : ( S x T)* -+ ( R x T ) .
Then, each pair ( t , g ) of an initial state and an internal black box function
will uniquely define the behavior of the system. Note that the internal data
abstraction will be capable of maintaining more deeply stored data, with the
internal black box using its compound stimulus histories.
To continue the stack illustration, consider the state to be a list of integers,
where the initial state is the empty list. Then the commands reset, push, pop,
empty?, and top? are functions from the stimuli and state to a response and
new state. For example, the previous sequence of stimuli will produce states
as well as responses as follows:
(reset, ( ) 1 -+ (null, ( ) 1)
(empty?, ( ) 1 -+ (Yes, ( ))
(push 17, ( > ) -+ (null, (17))
(push 31, (17)) + (null, (31, 17))
(pop, (31,17)) -+ (null, (17))
(top?, (17)) -+ (17, (17))
(push 11, (17)) -+ (null, (11, 17)).
Furthermore, all intermediate states of this state box can be eliminated by
mathematical substitution to define a black box function, say k, in which
the initial state will serve as a parameter. Thus, to verify that a state box,
say (t, g ) , has been designed correctly to provide a specified black box
behavior, say f,the new black box k, defined by (t, g ) , need only be com-
pared with f.
Continuing, a state box can be expanded into a clear box by replacing the
internal data abstraction with a procedural structure of new data abstrac-
tions in either sequential or concurrent logic. Sequential structures may
1 64 A. R. HEVNER
I Black Box I
D e r i va ti on :
1
Expansion :
Eliminate CIeate State
I-
State
State Box -
I I
D e r i v a t i on : Expansion :
Eliminate Create
Procedure
Clear Box
into many correct state box (clear box) designs. Conversely, a state box
(clear box) will define a unique black box (state box) by derivation.
In order to gain intellectual control over the development of a complex
system, it is necessary to be able to decompose the system into smaller, more
manageable parts. A box structure usage hierarchy represents the use of
black box abstractions in a higher-level clear box abstraction. A usage hierar-
chy of abstractions provides referential transparency among all black boxes
within a clear box (Parnas, 1974). Thus, each black box in a clear box can
be designed independent of the others. Figure 9 illustrates a simple box
structure usage hierarchy.
In order to represent box structures during OOA and OOD, both a graphic
language, the box structure graphics, and a syntdctic language, box descrip-
tion language (BDL), have been developed (Mills et al., 1986). Box structure
graphics are appropriate for the construction of system models during OOA.
The more formal BDL is used for design specifications during OOD.
I - J I
....
.......... 1.
1 1 I I I
Clear Box ~
....
State Migration. State data should be identified and stored in the system
part (i.e., data abstraction) at the lowest level in the box structure hierar-
chy that includes all references to that data. At any time in the system
development process, state data can be migrated upward or downward in
the hierarchy in order to achieve some system objective, such as minimiz-
ing data scope (Hevner and Linger, 1989). State migration must be per-
formed carefully in order to maintain the consistency and mathematical
correctness of data abstractions throughout the hierarchy.
Common Services. A common service is a data abstraction that is
described in a separate box structure usage hierarchy and used in other
box structured systems. System parts with multiple uses should be defined
as common services for reusability. Also, predefined common services,
such as database management systems and input-output interfaces, should
be used to advantage throughout the box structured system. The advan-
tages of reusable common services for system development are obvious.
Box structures directly support the identification and reuse of common
services within and among systems.
OBJ ECT-OR1ENTED SYSTEM DEVELOPMENT METHODS 167
3.4.1 Abstraction
An object is an abstract representation of an entity in the problem domain.
Much creative skill and experience are needed to identify and design a good
set of system objects and classes. Box structures provide an excellent set of
abstraction capabilities for system description. During analysis, a potential
object can be defined and studied in any of the three box structure views. In
particular, the black box view gives the external, design-free system behavior
that provides the essence of a system abstraction. The state box views the
object as a data abstraction with visible state. Within the clear box view
complex object abstractions can be rigorously decomposed into simpler
objects and simple objects can be grouped into larger objects.
During design, the box structure usage hierarchy provides a framework
in which to capture multiple levels of system abstraction in a controlled
manner. All system design units, from the top-level, complete system to the
smallest subsystem components, and even down to simple variables, are
viewed and described as box structure objects. Throughout the hierarchy,
the ability to manage abstraction applies to all system components ;stimulus
(i-e., input), responses (i.e., outputs), state (i-e., internal data), and
procedures.
The ability to handle abstractions is also important for the reverse
engineering of existing systems. Bottom-up system analysis abstracts func-
tionality (i.e., black box behavior) from system implementation details of
procedure and state. The application of box structure theory to system
reverse engineering is presented in Hausler et al. (1990).
3.4.2 Modularity
Modularity in system development involves dividing the complete system
into manageable units of analysis, design, and implementation. Each system
module must be internally cohesive and loosely connected to the other mod-
ules of the system. Modularity is one of the major strengths of the box
structure development process. The principle of referential transparency
throughout the box structure usage hierarchy provides module independence
168 A. R. HEVNER
for all box structures in the system design. Furthermore, referential transpar-
ency applies to both object decomposition and object composition in the
system development process.
3.4.3 Encapsulation
Encapsulation is supported by the state box and clear box views of a box
structure object. The state of an object and the procedural operations on
that state are hidden within the box structure as design constructs. Whereas
the essential behavioral abstraction, or interface, of the object is described
by the black box view.
An extension to object encapsulation can be found in the box structure
principle of state migration. As box structure objects are decomposed and
composed in a usage hierarchy, opportunities for state migration may exist.
Beneficial state migrations provide insights into new class inheritance struc-
tures. Upward migration of state can identify new superclass structures and
downward migration of state can identify new subclass structures.
3.4.4 Hierarchy
The concept of a system hierarchy is an essential component for box
structure system development. A usage hierarchy of box structures is con-
structed during system design via the application of both object decomposi.-
tion and object composition.
Top-down system decomposition enables an essential intellectual control
in development. The system grows one level at a time. The mathematical
structuring of systems in usage hierarchies of objects allows formal veri-
fication methods to be used. Also, the referential transparency of objects in
a clear box provides an essential modularity and design independence to
each object.
In addition, in this framework of an object hierarchy, the advantages of
object composition come into play. An object requirement, stated as a black
box, can be matched with existing object classes stored for reuse in a reposi-
tory. During the system analysis phase the benefits and costs of object reuse
and modification can be studied. Another opportunity for object composi-
tion comes during the design of the clear box. Knowledge of existing object
classes or insight into desired object classes will influence the designer’s
invention of data abstractions as black boxes at the next level in the
hierarchy.
As an object is used in the system usage hierarchy, it carries with it a
description of its inherent behavior as defined in one or more inheritance
OBJECT-OR1ENTED SYSTEM DEVELOPMENT METHODS 169
The first two forms of object instantiations are examples of box structure
common services.
REQUIREMENTS TEAM
DOCUME~TATIONTEAM
GENERATION DOCUMENTATION
I
N
-
/\
CERTIFIED SYSTEM
black box to state box and from state box to clear box can be verified
immediately for consistency and closure. A state box (clear box) deriva-
tion produces a unique black box (state box). By comparing the derived
black box (state box) with the original black box (state box), the design
expansion can be verified as consistent. Closure can be determined by
ensuring that all stimuli, state, and responses in each box are sufficient
and necessary to support the required system functionality. Iteratively, as
the design evolves, CSDP calls for the design team to perform thorough
functional uerifications. In a group setting, the team develops a proof that
the design correctly implements the requirement specification for
the increment under consideration. The mathematical foundations of func-
tional verification can be found in Linger et al. (1979).
Reliability Certification. The testing team uses the requirement speci-
fication and the usage specification to build a set of random test cases.
The test team can build test cases for an increment in parallel with the
increment design since the requirement specifications are sufficient to
define system functionality. Once the increment is designed and implemen-
ted, it is integrated with previous increments and statistical testing is
172 A. R. HEVNER
Our emphasis in this section is to detail the processing found in the middle
three phases and to demonstrate the inherent object orientation of the box
structure development process. The phases of requirement definition, analy-
sis, and design and verification will be performed as a tightly integrated,
iterative process. The ability to achieve this tight integration comes about
because of the unifying box structure concepts and representations. (In the
following presentation, the term box structure will be used to refer to a
component in the system hierarchy; however, the term object could be used
with equivalent meaning.)
4.2.2 Analysis
Analysis is performed to support the decisions that must be made during
systems design. It is part of the creative box structure operations of state
box expansion and clear box expansion. The box structure requirement is
analyzed and information is gathered to enable one or more of the following
types of activities:
state migration, and common services are applied. Design metrics of struc-
tured programming can be used to study the clear box procedural design.
State Box Deviation. The state box derivation operation discovers the
state box representation of a given clear box. A clear box can be verified
as correct by deriving an equivalent state box as compared to the original
state box.
The design and verification of the clear box completes the detailed design
of the current box structure. The complete specification of the box structure
object, from the black box requirement, through the intermediate state box,
to the final clear box design, is stored in the system repository. Then, the
complete box structure development process is invoked recursively on each
internal black box in the clear box.
The procedural clear box design, developed in clear box expansion,
ensures that each internal black box is referentially transparent from all
other peer black boxes and common services in the clear box. Thus, each
black box can be designed independently. For each black box requirement
the development process of requirement definition, analysis, and design and
verification begins. Note that much of the work performed, and dutifully
recorded in the repository, for higher-level box structures in the hierarchy
can be used in the analysis and design of lower-level box structures. The
desired system is complete when no further black box requirements exist in
the leaves of the box structure usage hierarchy. The detailed design of the
complete system is then sent to the final phase of system implementation.
The appendix to this chapter illustrates the use of box structures for the
development of a realistic information system for a car rental agency. This
case study demonstrates the application of both box structure graphics and
the box description language (BDL) for system analysis and design.
lack of CASE tools and CASE environments. Much research and develop-
ment is needed before integrated CASE is a reality. Current work on
integrated development architectures, such as IBM’s AD/Cycle (Mercurio
et al., 1990), is a step in the right direction. Research directions to more
fully enable object-oriented CASE include
0 The need for further research on OOA and OOD methods and represen-
tations. In particular, effective ways for representing and managing
both functional and non-functional system requirements will be
important.
0 The central repository for a completed project must be maintained for
systems operations and systems maintenance. Keeping the repository
up to date in the presence of system evolution must be an efficient
process. A claim of object-oriented methods is that the resulting systems
provide more efficient maintenance and evolution. Experimental
research is needed to validate this claim.
0 Information from each project repository should be integrated into a
corporate repository for use by future system development projects.
This will result in the potential reuse of common service objects across
many systems.
A simple CASE tool has been produced for the Coad and Yourdon (1991)
OOA method. Other research on object-oriented CASE include the
Demeter system (Lieberherr and Riel, 1988) and cleanroom ICASE
(Hevner, Becker, and Pedowitz, 1992).
Qualify Control. The production of a top-quality system is a priority of
any system development process. How do we define and measure system
and software quality in object-oriented systems? Research on software
metrics and verification and validation (V&V) techniques is growing rap-
idly in importance (Wallace and Fujii, 1989). The principle rationale for
cleanroom methods is the application of statistical quality control to
software development (Mills et al., 1987a).
Concurrent and Real- Time Systems. Concurrent processing environments
have increasing viability and importance for computer-based information
systems. There are great needs for rigorous methods and tools for the
analysis and design of concurrent systems. Dynamic modeling of concur-
rency allows a developer to modify and evaluate a concurrent system
design until a correct and efficient design is achieved. Modeling tools,
such as simulation, queueing theory, and Petri-nets have been applied to
evaluate concurrency. However, these tools are not integrated well into
analysis and design activities (Becker and Hevner, 1991). Research is
also being performed to develop improved OOP capabilities to implement
concurrent systems (Agha, 1990).
180 A. R. HEVNER
Acknowledgments
I wish to acknowledge the many discussions that I have had on cleanroom
and box structure ideas with Richard Linger, Shirley Becker, Jesse Poore,
Richard Cobb, Phil Hausler, and Mark Pleszkoch. In particular, I thank
Harlan Mills for sharing with me his invaluable insights on system develop-
ment and object orientation.
REFERENCES
Current research and development activity in all object-oriented fields is reported annually
in the “Conference on Object-Oriented Programming: Systems, Languages, and Applications
(OOPSLA)” and the “European Conference on Object-Oriented Programming (ECOOP).”
Research on object-oriented system development is also presented at the annual International
Conference on Software Engineering. A two volume collection of papers on object-oriented
topics has been edited by Peterson (1988).
Abbott, R. (1983). Program Design by Informal English Descriptions, Communicarions of rhe
ACMU(11).
Agha, G . (1990). Concurrent Object-Oriented Programming, Communications of rhe ACM
33(9).
Bailin, S. (1989). An Object-Oriented Requirement Specification Method, Communicafions of
the ACM 32(5).
Banerjee, J., Chou, H., Garza, J., Kim, W., Woelk, D.,Ballou, N., and Kim, H. (1987). Data
Model Issues for Object-Oriented Applications, ACM Trans. on Ofice Informarion Systems
Batory, D., Barnett, J., Garza, J., Smith, K., Tsukuda, K., Twichell, B., and Wise, T. (1988).
GENESIS : An Extensible Database Management System, IEEE Trans. on Software Engin-
eering SE14(11).
Becker, S., and Hevner, A. (1989). Concurrent System Design with Box Structures, “Proceed-
ings of the 13th Annual International COMPSAC,” Orlando, FL.
Becker, S., and Hevner, A. (1991). A Dynamic System Modelling Tool Using Box Structures
and Petri Nets, “Proceedings of the Second International Working Conference on Dynamic
Modeling of Information Systems,” Washington, DC.
Biggerstaff, T., and Perlis, A. (1989). “Software Reusability: Vol. I-Concepts and Models”;
“Vol. 2-Applications and Experience.” ACM Press, Addison-Wesley, Reading, MA.
Boehm, B. (1988). A Spiral Model of Software Development and Enhancement, IEEE Com-
puter 21(5).
Booch, G . (1986). Object-Oriented Design, IEEE Trans. on Sofware Engineering SElZ(2).
OBJ ECT-OR I ENTED SYSTEM D EVELOPMENT M ETHO DS 181
Booch, G. (1987a). “Software Engineering with Ada,” 2nd ed. Benjamin Cummings, Menlo
Park, CA.
Booch, G. (1987b). “Software Components with Ada: Structures, Tools, and Subsystems.”
Benjamin Cummings, Menlo Park, CA.
Booch, G. (1991). “Object Oriented Design with Applications.” Benjamin Cummings, Menlo
Park, CA.
Brooks, F. (1987). No Silver Bullet: Essence and Accidents of Software Engineering, ZEEE
Computer 20(4).
Cameron, J. (1989). “JSP & JSD: The Jackson Approach to Software Development.” IEEE
Computer Society Press, Washington, D.C.
Cardelli, L., and Wegner, P. (1985). On Understanding Types, Data Abstraction, and Poly-
morphism, ACM Computing Surveys 17(4).
Carey, M., DeWitt, D., Richardson, J., and Shekita, E. (1986). Object and File Management
in the EXODUS Extensible Database System, “Proceedings of the 12th International Confer-
ence on Very Large Data Bases.” Kyoto, Japan
de Champeaux, D., Constantine, L., Jacobson, I., Mellor, S., Ward, P., and Yourdon, E.
( I 990). Panel-Structured Analysis and Object Oriented Analysis, “Proceedings of the Joint
OOPSLA and ECOOP ’90 Conferences,” Ottawa.
Chen, P. (1976). The Entity-Relationship Model-Toward a Unified View of Data, ACM
Trans. on Database Systems l(1).
Chikofsky, E., and Cross, J. (1990). Reverse Engineering and Design Recovery: A Taxonomy,
ZEEE Software 7(1).
Coad, P., and Yourdon, E. (1991). “Object-Oriented Analysis,” 2nd ed. Prentice-Hall, Engle-
wood Cliffs, NJ.
Cobb, R., and Mills, H. (1990). Engineering Software under Statistical Quality Control, IEEE
Software 7(6).
Constantine, L. (1989). Object-Oriented and Structured Methods : Toward Integration, Amer-
ican Programmer 2(7-8).
Cox, B. (1986). “Object-Oriented Programming: An Evolutionary Approach.” Addison-
Wesley, Reading, MA.
Currit, A., Dyer, M., and Mills, H. (1986). Certifying the Reliability of Software, ZEEE Trans.
on Software Engineering SE12( 1).
Danforth, S., and Tomlinson, C. (1988). Type Theories and Object-Oriented Programming,
ACM Computing Surveys 20(1).
Davis, A. (1990). “Software Requirements: Analysis and Specification.” Prentice-Hall, Engle-
wood Cliffs, NJ.
Dijkstra, E. (1968). The Structure of the “THE’ Multiprogramming System, Communications
of the ACM ll(5).
Fishman, D., Beech, D., Cate, H., Chow, E., Connors, T., Davis, J., Derratt, N., Hoch, C.,
Kent, W., Lyngbaek, P., Mahbod, B., Neimat, M., Ryan, T., and Shan, M. (1987). Iris: An
Object-Oriented Database Management System, ACM Trans. on Ofice Information Systems
%I).
Gannon, J., Hamlet, R., and Mills, H. (1987). Theory of Modules, IEEE Trans. on Soffware
Engineering S E l 3 ( 7 ) .
Goldberg, A,, and Robson, D. (1989). “Smalltalk-80: The Language.” Addison-Wesley,
Reading, MA.
Guttag, J. (1980). Notes on Type Abstraction, ZEEE Trans. on Software Engineering SE6(1).
Hausler, P., Linger, R., Pleszkoch, M., and Hevner, A. (1990). Using Function Abstraction to
Understand Program Behavior, ZEEE Software 7( I).
Henderson-Sellers, B., and Edwards, J. (1990). The Object-Oriented Systems Life-Cycle,
Communications of the ACM 33(9).
182 A. R. HEVNER
Hevner, A,, and Linger, R. (1989). A Method for Data Re-engineering in Structured Programs,
“Proceedings of the 22nd Annual Hawaii International Conference on System Sciences,
Vol. ]-Software Track.”
Hevner, A., and Mills, H. (1992). Box-Structured Methods for Systems Development with
Objects, IBM Systems Journal, to appear.
Hevner, A., Wilkey, J., Milhiser, C., and Sullivan, K. (1990). CARS, A Case Study of Box-
Structured Systems Development, Working Paper, Information Systems Department, Uni-
versity of Maryland, College Park.
Hevner, A., Wilkey, J., and Becker, S. (1991). CASE Support for Box Structure Systems
Development: A Case Study, “Proceedings of the 24th Annual Hawaii International Confer-
ence on System Sciences, Vol. 11-Software Technology Track.”
Hevner, A., Becker, S., and Pedowitz, L. (1992). Using ICASE for Cleanroom Development,
IEEE Software, 9( I).
Hughes, J. (1991). “Object-Oriented Databases.” International Series in Computer Sciences,
Prentice-Hall, Englewood Cliffs, NJ.
Hull, R., and King, R. (1987). Semantic Database Modelling: Survey, Applications, and
Research Issues, A CM Computing Surveys 19(3).
IEEE Software. (1992). Special Issue on Integrated CASE Systems, IEEE Software, 9( I).
IEEE TKDE. (1990). Special Issue on Database Prototype Systems, IEEE Trans. on Knowledge
and Data Engineering 2(1).
Jalote, P. (1989). Functional Refinement and Nested Objects for Object-Oriented Design, IEEE
Trans. on Software Engineering SE-15(3).
Kim, W. (1990). Object-Oriented Databases : Definition and Research Directions, IEEE Trans.
on Knowledge and Data Engineering 2(3).
Kim, W., and Lochovsky, F., eds. (1989). “Object-Oriented Concepts, Databases, and Applica-
tions.” ACM Press, Addison-Wesley, Reading, MA.
Korson, T., and McGregor, J. (1990). Understanding Object-Oriented: A Unifying Paradigm,
Communications of the ACM 33(9).
Kowal, J. (1988). “Analyzing Systems,” Prentice-Hall, Englewood Cliffs, NJ.
Lehman, T., and Lindsay, B. (1989). The Starburst Long Field Manager, “Proceedings of the
15th International Conference on Very Large Databases,” Amsterdam.
Lieberherr, K., and Riel, A. (1988). Demeter: A {CASE} Study of Software Growth Through
Parameterized Classes, Journal of Object-Oriented Programming l(3).
Linger, R., and Mills, H. (1988). A Case Study in Cleanroom Software Engineering: The IBM
Cobol Structuring Facility, “Proceedings of the IEEE COMPSAC,” Chicago.
Linger, R., Mills, H., and Witt, B. (1979). “Structured Programming: Theory and Practice,”
Addison-Wesley, Reading, MA.
Liskov, B., Snyder, A., Atkinson, R., and Schaffert, C. (1977). Abstraction Mechanisms in
CLU, Communications of the ACM 20(8).
Loy, P. (1989). A Comparison of Object-Oriented and Structured Development Methods,
“Proceedings of the 1989 Pacific Northwest Software Quality Conference,” Portland.
Martin, J. (1989). “Information Engineering: Book I-Introduction”; “Book 2-Planning and
Analysis”; “Book 3-Design and Construction.” Prentice-Hall, Englewood Cliffs, NJ.
Manola, F. (1989). An Evaluation of Object-Oriented DBMS Developments, Technical Report
TR-0066-10-89-165, GTE Laboratories Inc.
Mercurio, V., Meyers, B., Nisbet, A., and Radin, G. (1990). AD/Cycle Strategy and Architec-
ture, IBM Systems Journal 29(2).
Meyer, B. (1987). Reusability: The Case for Object-Oriented Design, IEEE Software 8(4).
Meyer, B. (1988). “Object-Oriented Software Construction.” Prentice-Hall, Englewood Cliffs,
NJ.
OBJECT-ORIENTED SYSTEM DEVELOPMENT METHODS 183
Mills, H. (1986). Structured Programming: Retrospect and Prospect, IEEE Software 3(4).
Mills, H. (1988). Stepwise Refinement and Verification in Box-Structured Systems, IEEE
Computer 21(6).
Mills, H., and Poore, J. (1988). Bringing Software Under Statistical Quality Control, Quality
Progress.
Mills, H., Linger, R., and Hevner, A. (1986). “Principles of Information Systems Analysis and
Design.” Academic Press, Inc. Boston, MA.
Mills, H., Dyer, M., and Linger, R. (1987a). Cleanroom Software Engineering, IEEE Software
4(5).
Mills, H., Linger, R., and Hevner, A. (1987b). Box Structured Information Systems Develop-
ment, IBM Systems Journal Xi(4).
Orr, K. (1977). “Structured Systems Development.” Yourdon Press, Prentice-Hall, Englewood
Cliffs, NJ.
Parnas, D. (1972). On the Criteria to Be Used in Decomposing Systems into Modules, Commu-
nications of the ACM 15(12).
Parnas, D. (1974). On a ‘‘Buzzword’’ Hierarchical Structure, “Proceedings of the IFIP Congress
1974.” North-Holland, Amsterdam.
Parnas, D., Clements, P., and Weiss, D. (1985). The Modular Structure of Complex Systems,
IEEE Trans. on Software Engineering SE-ll(3).
Peterson, G., (1988). “Tutorial: Object-Oriented Computing, Vol. 1 : Concepts, Vol. 2: Imple-
mentations.” Computer Society of the IEEE. Washington, D.C.
Ramamoorthy, C., and Sheu, P. (1988). Object-Oriented Systems, IEEE Expert 3(3).
Reenskaug, T. (198 I). User-Oriented Descriptions of Smalltalk Systems, Byte (August).
Reenskaug, T., and Nordhagen, E. (1989). The Description of Complex Object-Oriented
Systems, Technical Report, Senter for Industriforskning, Norway.
Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F., and Lorensen, W. (1991). “Object-Orien-
ted Modeling and Design.” Prentice-Hall, Englewood Cliffs, NJ.
Seidewitz, E., and Stark, M. (1986). Towards a General Object-Oriented Software Development
Methodology, “Proceedings of the First International Conference on Ada Programming
Language Applications for the NASA Space Station.”
Selby, R., Basili, V., and Baker, F. (1987). Cleanroom Software Development: An Empirical
Evaluation, IEEE Trans. on Software Engineering SE-13(9).
Shaw, M. (1984). Abstraction Techniques in Modem Programming Languages, IEEE Software
1(4).
Shlaer, S., and Mellor, S. (1988). “Object-Oriented Systems Analysis.” Prentice-Hall, Engle-
wood Cliffs, NJ.
Shriver, B., and Wegner, P., eds. (1987). “Research Directions in Object-Oriented Program-
ming,” MIT Press, Cambridge, MA.
SIGPLAN Notices. (1989). “Proceedings of the ACM SIGPLAN Workshop on Object-Based
Concurrent Programming,” SIGPLAN Notices 24(4).
Sincover, R., and Wiener, R. (1984). Modular Software Construction and Object-Oriented
Design Using Ada, Journal of Pascal, Ada, and Modula-2 (March-April).
Snyder, A,, Hill, W., and Olthoss, W. (1989). A Glossary of Common Object-Oriented Termin-
ology, Report STL-89-26, Software Technology Laboratory, Hewlett-Packard Laboratories,
Palo Alto, CA.
Stonebraker, M. ( 1986). Inclusion of New Types in Relational Data Base Systems, “Proceedings
of the International Conference on Data Engineering.” Los Angeles, CA.
Stroustrup, B. (1988). What Is Object-Oriented Programming? IEEE Software 5(3).
Teorey, T., Yang, D., and Fry, J. (1986). A Logical Design Methodology for Relational
Databases Using the Extended Entity-Relationship Model, ACM Computing Surveys 18(2).
184 A. R. HEVNER
Wallace, D., and Fujii, R. (1987). Software Verification and Validation: An Overview, IEEE
Software 6(3).
Ward, P. (1989). How to Integrate Object Orientation with Structured Analysis and Design,
IEEE SoJfware 8( I).
Wegner, P. (1990). Concepts and Paradigms of Object-Oriented Programming, OOPS
Messenger 1(1), ACM SIGPLAN Publication.
Wing, J. (1990). A Specifier’s Introduction to Formal Methods, IEEE Computer U(9).
Wirfs-Brock, R., and Johnson, R. (1990). Surveying Current Research in Object-Oriented
Design, Communications of rhe ACM 33(9).
Wirfs-Brock, R., Wilkerson, B., and Wiener, L. (1990). “Designing Object-Oriented Software.”
Prentice-Hall, Englewood Cliffs, NJ.
Yourdon, E. (1989). “Modern Structured Analysis.” Yourdon Press, Prentice-Hall, Englewood
Cliffs, NJ.
Note that the system has requirements for three on-line, real-time activi-
ties: to control fuel pumps to refuel autos, to control gate access to parking
lot, and to record phone calls from autos. We will highlight our analysis and
design of these real-time functions in this appendix.
Based on the given problem statement, we developed CARS using the box
structure methods. For expository purposes and because of space limitations,
we will state the black box requirements for the system, show the principal
state data design, and then present a portion of the CARS system design in
clear boxes. We will use the box description language, augmented by several
key box structure graphics, to present the design of the clear boxes.
We will store four files in CARS-files. In relational notation the files are
as follows: (primary keys of each file are underlined.)
The designer of the file system has the capability of building indexes on
the files at the beginning of the day. The indexes are automatically purged
at the end of the day. These operations are LOAD-INDEX and PURGE-INDEX,
respectively.
common service, which will be duplicated in each rental car; and the monitor-
-system common service, which will be used to monitor the real-time require-
ments of the gate-manager and the fuel-manager subsystems.
The clear box of the top-level of the CARS system will consist of three
sequential subsystems: daily-startup, CARS-on-line (to include all on-line
and real-time transactions), and daily-shutdown. The clear box description
of CARS at the top level is
Figure A. 1 presents the box structure graphic of this design. The clear box
concludes the design of the top-level box structure for CARS. The following
sections present the designs of several major subsystems in CARS. Not all
subsystems are presented here because of space limitations. The complete
design of CARS is contained in (Hevner et al., 1990). Figure A.2 shows the
complete CARS box structure hierarchy for CARS.
OBJECT-ORIENTED SYSTEM DEVELOPMENT METHODS 189
STATE:
Transaction-log, Parking-locations, Fuel-co
COMMON SERVICES:
CARS-files, Monitor-system, Telephone-use
‘ i
i
i
Stimuli
1 STARTUP I
- -
\
signal, represents the physical, real-time stimuli and responses with which
the system interacts with its environment.
STATE
Entry-buffe r: buffer o f C ont ract-number- type;
Exi t-buffe r : buffer o f Contract-number- type ;
Pump-buffer: buffer of Contract-number-type;
COMMON SERVICE
CARS-files: (*File organization manager*);
TRANSACTION
DATA
Time-stamp : Time-type ;
BEHAVIOR
con
select
accept Auto-card (Gate-entry);
do add (Contract-number, Time-stamp) to
Entry-buffer;
or
accept Auto-card (Gate-exit);
do add (Contract-number, Time-stamp) to
Exit-buffer;
or
accept Ant 0- card ( Pump-fuel ) ;
do add (Contract-number, Time-stamp) to
Pump-buffer;
end select;
use Gate-manager;
use Fuel-manager;
noc;
end CLEAR BOX MONITOR-SYSTEM.
With this monitor design, we now show the designs for the gate-manager
and fuel-manager subsystems.
Gate-manager controls the gate to the car rental lot as an object. Signals
are sent to open and close the gate. A car sensor signal indicates physical
car entry or exit. The clear box of the subsystem is
Car-sensor: Signal;
RESPONSE
Gate-open, Gate-close: Signal;
Security-message: Text;
Transaction-record: Transaction-log-type;
STATE
Gate-position: (UP, DOWN);
COMMON SERVICE
CARS-files (*File organizer manager*);
TRANSACTION
DATA
Val i d-aut0- card: B o o 1ean;
BEHAVIOR
while (Entry-buffer not empty) or (Exit-buffer
not empty)
do retrieve (Contract-number, Time-stamp)
with smallest Time-stamp from Entry-buffer
or Exit-buffer;
if Gate-entry then use Check-entry-request
(stim Contract-number; else
Vali d-auto-card);
else use Check-exit-request (stim
Contract-number; else Valid-auto-card);
end if;
if Valid auto-card then
send Gate-open;
Gate-posi t i on :=UP;
receive Car-sensor;
delay 2 seconds;
send Gate-close;
Gate-posit i on:=DOWN;
if Gate-entry then write (‘Gate-manager
transaction,’ Contract-number,
Gate-entry) to Transaction-log;
else write ( ‘Gatemanager transaction,’
Contract-number, Gate-exit) to
Transaction-log;
end if;
else write (Security-message);
end if;
end while;
end GATE-MANAGER.
OBJECT-ORIENTED SYSTEM DEVELOPMENT METHODS 193
Note that the design would instantiate the same number of fuel-manager
subsystems as the number of fuel stations concurrently used.
1. Reservations transaction,
2. Car-pickup transaction, to include the use of transaction gate manager
for exit,
3. Customer-departure subsystem, to include the sequence of transactions
gate-manager for entry, return-car, and customer-payment,
4. Maintenance transaction.
TRANSACTION
DATA
BEHAVIOR
con
use Reservation;
use Car-pickup;
use Cust ome r-departure;
use Maintenance;
noc;
end CARS- ON-LINE.
A.6. I Customer-Departure
The customer-departure subsystem consists of the sequence of entering
the gate via gate-manager, return-car, and customer-payment. The clear
box for customer-departure i s ,
STATE:
Next-reservation-number
Next-contract-num ber
I Reservation I
<
jl I-
T
Stimuli \ Re onse
Y T r e
\
+I----+ Maintenance
OBJECT-ORIENTED SYSTEM DEVELOPMENT METHODS 197
A.6.1.1 Return-Car
The clear box for return-car is
A.6.1.2 Customer-Payment
Customer-payment subsystem calculates and totals all of the charges on
the rental car. Payment is received from the customer and the customer
leaves the system. The clear box for customer-payment is
Customer-payment: Money-type;
Problems: Bo o l ean;
RESPONSE
Amount-due : Money-type;
Receipt : Physical-objec t ;
Call-manager-message: Text;
Transaction-record: Transaction-log-type;
COMMON SERVICE
CARS-files (*File organization manager*);
TRANSACTION
DATA
Temp-contract-record: Contract-record-type;
BEHAVIOR
read (Contract-number) from customer;
if Contract-number available then
use CARS-files (CONTRACT, GET,
Contract-number);
else
read (Customer-record) from Customer;
use CARS-files (CONTRACT, GET,
Customer-record);
end if;
use Prepare-receipt;
use Collect-payment (else Amount-due,
Problems) ;
if Problem then
write (Call-manager-message);
end if;
use CARS-files (CONTRACT, DELETE,
Contract-number);
write (‘Customer-payment transaction,’
Contract-record) to Transaction-log;
end CUSTOMER PAYMENT.