CS 4448 - Spring 1998
Object-Oriented Programming and Design
Talk 7.2.2
by
Witaria Futanto
Object-Oriented Development of Large Applications
by
Blayne Maring
Since 1991, GTE Telephone Operations has been re-engineering its development
methods and processes to accommodate OO techniques. GTE TO is a large organization,
and this article mainly talks about lessons learned from their experience
in applying OO technologies into a large organization.
They conducted a root-cause analysis and developed four principles,
which they believe that these principles would improve the likelihood of
success in applying OO development methods in a large organization. These
four principles are:
-
All control-flow or dynamic behavior should be represented as a design-time
abstraction, which is the embodiment of the automated business process.
-
All business rules are likely to change over application's life should
be represented as a single-rules object that can be managed by business
managers.
-
Class attributes should be mapped to share persistent storage outside of
class behaviors.
-
Class templates should be used to ensure consistency, completeness, and
testability.
In 1991, they began to implement some of these principles in some of the
new applications. They had vision of reuse-centric development rather than
coding-centric process. When they first started the project, their programmers
were experienced only in C and COBOL. So, they trained their programmer
to make a switch to OO programming. At first, only 10-20 % of these programmers
learned OO programming. The ratio of success increased to 80-90 % when
they hand-picked members of more recent development teams based on experience
in different ways of solving design problems. The following are lessons
from their experience.
Lessons:
-
Consistency - There should be a single, consistency way to do
everything.
-
Reuse and Culture - Reuse goals should be accompanied by cultural
change.
-
Meta-model - There should be a single, OO meta-model.
-
Managing Class Libraries - Managing class libraries is hard.
Some tips: minimize sub-classing, clarify class abstraction, eliminate behavior
overrides, and organize for reuse.
-
Control Flow - Control flow should not be a class behavior. The
ability to dynamically bind new business process to an application's object
model is essential.
-
Business Rules - Business rules should be bound dynamically.
-
Attribute Mapping - Attribute mapping persistent storage should
be outside of the applications.
-
Managing Business Processes - Business managers need tools to
manage business processes in real time and tools that represent the dynamic
performance of processes.
-
Testing - Testing OO applications is different. Strategies are
needed for thoroughly testing components, for testing assembled applications,
and for evaluating the effectiveness of test suites.
Their experience has shown that all of the OO principles, such as inheritance,
encapsulation, and polymorphism are valuable and extremely useful. However,
their use of these principles alone did not yield the expected benefits
of productivity, time-to-market, quality, and so on. It needs to be understood
that OO techniques alone can't produce the benefits of reuse and maintainability.
GTE TO still continues to push forward with these new principles. They
believe that their vision is founded on empirically proven principles since
there are strong similarities between OO and electronics development.
Copyright © University of Colorado. All rights reserved.
Revised: March 4, 1998