(ref.doc)kim 030993
Next kanze 080993
Prev: grumpy 220893
Up: Usenet
(Posting in comp.object. Reformatted)
[...]
BON promotes the following ideas:
1. Seamlessness through pure object-oriented concepts.
Most other published O-O methods are hybrids which include ERD
diagrams, state/transition diagrams or data flow diagrams as part
of their standard notation. This breaks the seamlessness, keeps
the barrier between specification and implementation, and prevents
large scale reuse. (Most O-O methods today hardly even mention
polymorphism and dynamic binding, but only concentrate on the
simple encapsulation part. This is not enough.)
2. Software contracting.
A software components industry requires well specified and correct
products. We believe the Design by Contract paradigm invented by
Bertrand Meyer is absolutely crucial for increasing software
quality and changing the general attitude of software designers and
programmers. BON emphasizes the contracting part and includes
special notation for it. Again, other published methods at best
mention specification by contracting, but do not give it the
attention it deserves.
3. Typed interface descriptions.
Static typing is not only a means to generate more efficient code
or catch certain types of implementation errors. It is just as
much an aid for classification and precise specification. Instead
of relying on ambiguous naming conventions, important information
can be spelled out exactly. Also, any kind of formal specification
becomes nearly impossible to use with an untyped notation.
4. Scalability.
To be useful in real-life situations a notation must scale up from
the simplified text book examples. We need views on different
levels of detail, and with different aspects emphasized. BON uses
recursive clustering to achieve a scalable notation; all graphical
elements used have both an abstracted and an expanded form. By
selectively abstracting or expanding various parts in a system,
many different views can be created.
5. Simplicity and space economy.
BON takes a minimalistic view both regarding the number of
notational elements and the space they occupy. For example, we
only use two basic relations: inheritance and client/supplier (the
latter with variants for aggregation and shared resources). These
relations are then generalized to also cover relations between
clusters and classes/clusters (with clearly specified semantics).
To get any kind of overview, a user needs to be able to see more
than just a few classes on one page.
6. Basis for intelligent case tools.
We believe there is a potential for much more automatic support in
object-oriented case tools (and also a much greater need, because
of the higher compression of information in O-O systems). With
typing and contracts, tools can be made much more intelligent,
whereas with untyped notations things are pretty much limited to
pure textual browsing, since there is simply not enough semantic
content in the descriptions.
BON keeps the static and dynamic aspects of modeling separate.
Instead of using state/transition diagrams for the dynamic part,
(which in most cases has no natural mapping to and from the eventual
implementation anyway), the BON dynamic notation is designed to
describe scenarios with message passing between objects and thus serve
as a complement to the static model both for finding classes and for
checking that a proposed static architecture will indeed be able to
fulfill the required behavior.
>
> (I have heard Nerson say that "BON" is not a good name, but he can't
> think of a better one offhand).
Well, we realized that it was not the name BON that was bad, it was
the interpretation, so since February 1993 the BON acronym instead
stands for "Business Object Notation".
>Actually, to call it a "methodology" is not really correct. Its a
>notation with a bunch of rules attached, some of which can be enforced
>by a tool, some of which cannot but should still be observed.
This may have been the case several years ago, but is certainly not
true today. BON is a fully documented method just as much as any of
the others out there. I just spent the better part of the summer
writing a thorough description of the BON model and notation, and the
steps and activities of the BON method.
Whether the text will be convincing enough to place BON among the
major players in the OOA/OOD field is of course always an open
question. We certainly hope so, and I look forward to hearing your
opinion when you have read the book.
> Most
>of its constructs map directly to Eiffel syntax, and its a good
>notation for documenting an Eiffel design.
It is true that the notation maps easily to Eiffel, but this is
because Eiffel directly supports the major modeling concepts of BON:
classes as abstract data types, strong typing, genericity, abstract
classes, multiple inheritance, and the contracting model.
The syntax is not important here. (We also use something similar to
Eiffel in our textual notation which can be used by case tool
implementors or in non-graphical contexts as an alternative to the
graphical notation.)
However, BON is language independent, and may also be mapped to
e.g. C++. (Of course, if the implementation language does not support
certain of the basic concepts, such as multiple inheritance and
genericity, the BON user would need to avoid using these in the
analysis and design model.)
The book, whose preliminary title is "Seamless Architecturing of
Object-Oriented Software" (by Jean-Marc Nerson and Kim Walden), will
be published by Prentice-Hall hopefully around Christmas or early next
year.
We are planning to use the word "Architecturing" in the title to
signify the process of creating a software architecture. I have a
feeling that the word "architecture" is sometimes used as a verb, but
I cannot find any support for this in avaliable dictionaries.
I would appreciate if some native English speaking computer
professionals (in both Europe and the USA) could email me an opinion
about this. Would "Architecturing" _sound_ right (perhaps stretching
normal usage a bit, but in a natural direction) or would it just sound
silly?
Best regards,
Kim Walden
Enea Data AB, Sweden
[email protected]
automatically generated by info2www version 1.2.2.8