Information Technology Reference
In-Depth Information
Chapter 8
Object-Oriented Design
8.1 Overview of Object-Oriented Design
Object design is primarily adding details to the requirements analysis and making
implementation decisions. Object design serves as the basis for implementation in an
object-oriented paradigm. During object design, developers define solution domain
objects to bridge the gap between the analysis model and the hardware/software
platform defined during system design. This includes precisely describing object and
subsystem interfaces, selecting off-the-shelf components, restructuring the object
model to attain design goals such as extensibility and understandability, and opti-
mizing the object model for performance. An object model describes how a com-
ponent or system works, down to programming language classes or some other level
that can be coded. The result of the object design activity is a detailed object model
annotated with constraints and precise description for each element (Bruegge and
Dutiot 2004 ). The following figure shows object design in the software lifecycle
(Bruegge and Dutoit 1999 ). ''Object design should consist solely of expanding the
requirements model to account for the complexities introduced in selecting a par-
ticular implementation—e.g. multiple computational resources, added objects to
manage other objects, added objects to manage external interfaces, continue from
analysis to design'' (Coad and Yourdon 1990 ) (Fig 8.1 ).
Eliens describes the distinction between object-oriented analysis and design
primarily as emphasis—emphasis on modeling the reality of the problem domain
versus emphasis on providing an architectural model of a system that lends itself to
implementation (Eliens 1995 ).During object design we close the gap between the
application objects and the off-the-shelf components by identifying additional
solution objects and refining existing objects. This is shown in Fig. 8.2 . Object
design includes Reuse, Service Specification, Object Model Restructuring, and
Object Model Optimization. Object design like system design is not algorithmic.
It's the developers who restructure and optimize the object model to address
design goals such as maintainability, extensibility, efficiency, response time or
timely delivery. Analysis reduces the gap between the problem and the machine by
identifying objects representing problem-specific concepts. System design reduces
Search WWH ::




Custom Search