Today computer hardware continues to increase in
power and speed at a phenomenal rate. Software, on the other hand, remains
difficult to develop and maintain. The job a systems analysts is to talk to
their clients to define a new system, or to define the nature of updates to an
existing computer system. Usually structured methods like functional
decomposition, top down design, and data flow diagrams are used in their
analysis. The analyst writes the specs and then ask the client to sign off on
the specs. Essentially, the end-user must approve the analysis saying this is
what they want, while the analyst is saying that this is what I will deliver.
This specification is then cast in stone and will never change during the
development of the system. Yeah right.
The business world today is changing at an
unprecedented rate and computer systems need to be able to change as quickly as
the technology. Unfortunately most computer system projects today seldom are
done on time or within budget, and when the project is finished it can be
extremely difficult and expensive (if not impossible) to make updates to the
system. What is needed is a new approach to developing computer systems, one
that can handle both small and large systems. Maintenance costs must be kept to
a minimum, the system must be flexible, and the specification must be flexible
to meet changing business needs.
To achieve this goal, we need to break out of
the software paradigm that has been around for the last fifty years.
Object-oriented technology (OT) will help to break the existing software
paradigm and meet the changing business needs of today.
Object-oriented technology
The next logical step of database design is the
object-oriented technology method. Object-oriented databases will not only
store data, the relationships between data, but also the behavior of the data.
Once data behaviors are added into a database management system, these
"intelligent" databases are dramatically changing the development of database
systems.
The OT (Object-Oriented Technology) method not
only uses the intelligent database concept but enhances it by adding additional
features. Instead of simple triggers that are associated with a physical event,
object-oriented behaviors may contain operations which effect hundreds of
database objects. Objects are "encapsulated" with their methods, and as a
result no data items may be accessed or updated except through these methods.
Of course, encapsulation violates the Relational database concept of data
independence, and any type of "ad-hoc" data access is prohibited in the OT
model. This is a major problem with coexistence strategies for relational
databases and object-oriented databases.
OT has suffered for a long time because there
were no real standards and no one stepping up to develop standards. Each object
vendor seemed to be doing their own thing. Facilitated by Chris Stone, Some of
the object vendors got together and formed the OMG (Object Management Group).
One of the most confusing things about OT are
all of the new terms, jargon, and acronyms. Every new technology has it's share
of buzzwords that you need to learn and understand but OT has a much higher
share of buzzwords. The two letters OO together seem to encourage more and more
?OO? acronyms. To put an end to this plethora of acronyms, the OMG decided to
call the paradigm OT, or Object Technology.
The following is a list of commonly used OOT
acronyms:
Standards committee terms
OMG
-Object Management Group
ODMG
-Object Database Management Group
CORBA
-Common Object Request Broker Architecture
OMT
-Object Modeling Technique
General Object-Oriented Terms
OOA
-Object-oriented Analysis
OOD
-Object-oriented Design
OOPL
-Object-oriented Programming Language
OOPS -Object-oriented Programming Systems
OODBMS
-Object-oriented Database management system
OO
-Object-oriented
OT -Object-oriented Technology
Object-Oriented Programming Languages
Beginning with modeling languages such as SIMULA,
many object-oriented programming languages (OOPL) have evolved, being
incorporated into Object-oriented database systems. In their 1993
specifications endorsed C++ and Smalltalk. For programming to be considered
object oriented it must use encapsulation, inheritance, and polymorphism.
C++ has emerged as the most dominant
object-oriented language. C++ is really an extension of C language which is not
object-oriented in nature. Object technology purists will be quick to point out
that C++ is not a pure object-oriented language, and as anyone who uses C++ will
tell you it is very difficult to learn and master. C++ actually got its name
from the C programming language, where the double plus sign (++) is used to add
a variable, and since C++ is the next extension of C, the ++ was added to the
name.
Incrementing a counter
Cobol: ADD 1 TO COUNTER.
Basic: counter = counter + 1;
C: counter++;
Smalltalk, on the other hand, is a pure
object-oriented language which makes the programmer follow the OT methodology.
Smalltalk is easier to learn than C++ and because of its nature most colleges
and universities have endorsed it as the standard teaching language. Most
students learn Smalltalk as their first object language and then move on to
learn other OOPLs.