 |
|
Object-Oriented Analysis and Functional Specifications
Oracle Database Tips by Donald Burleson
|
In order to properly describe the
environment of an object-oriented system, the designer needs to be able
to develop a conceptual framework. Object-oriented systems view the
world at a much higher level than traditional systems, and unlike
traditional analysis, it is no longer necessary to de-partition systems
down to the data element level. Object-oriented databases view the
system components as physical "objects" (i.e. order forms, invoices),
rather than abstract data definitions. Figure 3.3 shows and order-form
object that contains the Customer, Order and Item list objects that
participate in the order form.
Figure 3.3 A composite object and its object
sub-objects
Each person sees the real world from a framework
of their own personal experiences, and each person's conceptual framework
determines how they look at the world around them. Experienced systems
individuals today are accustomed to viewing databases as being populated with
rows, columns and fields. The object-oriented database analyst must learn to
view the world at a much higher level, viewing "objects" as consolidations of
many columns and rows, thereby doing a much better job at modeling the
real-world.
Conceptualization
allows a person to look at an object and see new applications for it. This
"conceptual reversal" is used by many creative thinkers when they come up with
novel uses for existing principles. For example, many people today look at an
empty soda pop bottle and just see something to be recycled, while others look
at it and see a possible bird feeder, vase or plant holder.
Concepts allow us to develop recognition about
the classification of objects. For example, most people use the concept of
"wings" to classify airplanes, and the concept of "hull" to identify ships. But
what happens when an object such as the Alberta Clipper, the famous seaplane,
crosses the conceptual boundaries of two object classes? Sharing
characteristics from two concepts, the Alberta Clipper inherits the behaviors
and attributes of both aircraft and ships.
It is important to realize that concepts are not
required to have any physical existence. Object-oriented systems allow for the
use of "abstract" or intangible classes which do not have any concrete objects.
The idea of conceptualization can be directly applied to object-oriented
database analysis. The primary goal of object-oriented database analysis is to
identify the behaviors, some of which may be abstract and the data that may be
non-quantifiable. If the goal of object-oriented databases is to closely model
the real world, then both concrete and abstract data as well as behaviors must
be accounted for in the database analysis.
Object-oriented analysis (OOA) requires the
designer to identify the relevant entities, all relationships between these
entities, and a generalization hierarchy which decomposes the entities into
subclasses. This involves developing a conceptual framework for the system; the
perception of the system analyst can have a immense impact on the final design.
In a traditional systems development project, a
structured specification
is prepared to logically describe the hierarchy of processes, the data flowing
between processes, and the functionality of each process. The structured
specification document provides a complete identification of the system
components from a logical perspective.
Object-oriented
analysis has the goal of delineating the objects, determining the relationships
between the objects, and understanding the behaviors of each object. Whereas a
traditional analysis is focused on the transformation of data, object-oriented
analysis has a focus on the encapsulation of objects behaviors and the
interactions between the objects. This method is an extension of traditional
analysis techniques, and begins with a structured specification.