Object Oriented Software Construction - Bertrand Meyer
1370 pág.

Object Oriented Software Construction - Bertrand Meyer

DisciplinaProgramação Orientada A Objetos3.578 materiais54.322 seguidores
Pré-visualização50 páginas
as long as that compiler only needs to be used for delivering a final
lopment will rely on the incremental compiler. 
tions, perhaps most, will need to conserve objects from one session to the
ironment should provide a mechanism to do this in a simple way. 
ct will often contain references to other objects; since the same may be true
cts, this means that every object may have a large number of dependent
a possibly complex dependency graph (which may involve cycles). It would
 no sense to store or retrieve the object without all its direct and indirect
A persistence mechanism which can automatically store an object\u2019s
long with the object is said to support persistence closure.
e applications, mere persistence support is not sufficient; such applications
 database support. The notion of object-oriented database is covered in a
 which also explores other persistent issues such as schema evolution, the
ieve objects safely even if the corresponding classes have changed.
f classes and systems must provide management, customers and other
ith clear, high-level descriptions of the software they produce. They need
t them in this effort; as much as possible of the documentation should be
omatically from the software texts. Assertions, as already noted, help make
-extracted documents precise and informative.
ndent of the size of the system as a whole.
istent storage mechanism supporting persistence closure should be
le to store an object and all its dependents into external devices, and
eve them in the same or another session.
atic tools should be available to produce documentation about classes
When looking at a class, you will often need to obtain information about other classes; in
particular, the features used in a class may have been introduced not in the class itself but
in its various ancestors. This puts on the environment the burden of providing developers
with tools to
rapidly from 
This tas
include: find
2.4 LIBR
One of the ch
ability to rely
and mechanis
Basic libra
The fundame
the associate
ubiquitous in
implements a
of efforts but 
who impleme
application w
An obj
addressing th
Graphics a
Many moder
graphics and o
oriented mode
on graphical l
data str
S is a \u201csupplier\u201d of 
C if C is a client of S. 
\u201cClient\u201d was 
defined on page 24.
 examine a class text, find its dependencies on other classes, and switch
one class text to another. 
k is called browsing. Typical facilities offered by good browsing tools
 the clients, suppliers, descendants, ancestors of a class; find all the
of a feature; find the original declaration of a redefined feature.
aracteristic aspects of developing software the object-oriented way is the
 on libraries. An object-oriented environment should provide good libraries,
ms to write more. 
ntal data structures of computing science \u2014 sets, lists, trees, stacks\u2026 \u2014 and
d algorithms \u2014 sorting, searching, traversing, pattern matching \u2014 are
 software development. In conventional approaches, each developer
nd re-implements them independently all the time; this is not only wasteful
detrimental to software quality, as it is unlikely that an individual developer
nts a data structure not as a goal in itself but merely as a component of some
ill attain the optimum in reliability and efficiency. 
ect-oriented development environment must provide reusable classes
ese common needs of software systems.
nd user interfaces 
n software systems are interactive, interacting with their users through
ther pleasant interface techniques. This is one of the areas where the object-
l has proved most impressive and helpful. Developers should be able to rely
ibraries to build interactive applications quickly and effectively.
tive browsing facilities should enable software developers to follow up
 and conveniently the dependencies between classes and features.
le classes should be available to cover the most frequently needed
uctures and algorithms.
le classes should be available for developing applications which
e their users with pleasant graphical user interface.
Library evolution mechanisms 
Developing high-quality libraries is a long and arduous task. It is impossible to guarantee
that the design of library will be perfect the first time around. An important problem, then,
is to enable library developers to update and modify their designs without wreaking havoc
in existing sy
library catego
Library ind
Another prob
addressing a c
there must be
(to process qu
2.5 FOR 
Although to 
with an advan
read chapter 2
solution with
That ca
without havin
you must pro
chapter 3, as 
This introduc
selection of b
on analysis an
[Cox 19
different view
much larger a
stems that depend on the library. This important criterion belongs to the
ry, but also to the method and language category.
exing mechanisms 
lem raised by libraries is the need for mechanisms to identify the classes
ertain need. This criterion affects all three categories: libraries, language (as
 a way to enter indexing information within the text of each class) and tools
eries for classes satisfying certain conditions).
understand the concepts in depth it is preferable to read this book
readers who would like to complement the preceding theoretical overview
ce glimpse of the method at work on a practical example can at this point
0, a case study of a practical design problem, on which it compares an O-O
 one employing more traditional techniques.
se study is mostly self-contained, so that you will understand the essentials
g read the intermediate chapters. (But if you do go ahead for this quick peek,
mise to come back to the rest of the sequential presentation, starting with
soon as you are done.)
tion to the criteria of object orientation is a good opportunity to list a
ooks that offer quality introductions to object technology in general.
 1995] discusses the most important issues of object technology, focusing
d design, on which it is probably the best reference.
ones 1995] provides an excellent overview of the method.
90] (whose first edition was published in 1986) is based on a somewhat
 of object technology and was instrumental in bringing O-O concepts to a
udience than before.
nisms should be available to facilitate library evolution with minimal
ion of client software.
 classes should be equipped with indexing information allowing
ty-based retrieval.
[Henderson-Sellers 1991] (a second edition is announced) provides a short overview
of O-O ideas. Meant for people who are asked by their company to \u201cgo out and find out
what that object stuff is about\u201d, it includes ready-to-be-photocopied transparency masters,
precious on such occasions. Another overview is [Eliëns 1995].
The Dic
reference on m
All these
is also a need
the present b
executives. It
continues wit
policies). A
issues and the
languages, w
discussions th
even be critic
shows that de
cases they we
\u2022 Simula 
\u2022 Smallta
\u2022 The C+
More re
oriented ideas
that is to say,
through whic
knowledge) w
1996]. At the 
structures and
and [Wiener 
The Use
natural mediu
forums, be p
Technology d
has frequent i
Chapter 29 dis-
cusses teaching 
the technology.
tionary of Object Technology [Firesmith 1995] provides a comprehensive
any aspects of the method.
 books are to various degrees intended for technically-minded people. There
 to educate managers. [M 1995] grew out of a chapter originally planned