This site contains older material on Eiffel. For the main Eiffel page, see

BON: The analysis and design method for reliability, reusabilility and reversibility

BON, the Business Object Notation, is a method and graphical notation for high-level object-oriented analysis and design.


BON is based on concepts similar to those of Eiffel but can be used independently of Eiffel, for example by people using another O-O language for implementation.

Many people who are attracted by the power and practicality of the concepts start with BON as their first step towards modern, systematic O-O software construction, even if in the short term they must use another implementation language.

Where did BON come from?

The original designer of BON was Jean-Marc Nerson of SOL (Paris); the design was completed with the collaboration of Kim Waldén of Enea Data (Stockholm). Dr. Waldén and Dr. Nerson are the coauthors of the definitive book on BON: "Seamless Object-Oriented Software Architecture" (Prentice Hall).

BON and EiffelCase

A particular attraction of BON is the availability of the supporting tool: EiffelCase (now integrated into ISE EiffelStudio), perhaps the most sophisticated analysis and design workbench on the market. Directly interfaced with the other tools of the ISE environment, EiffelCase supports generation of new system architectures as well as reverse engineering of existing systems, however large and complex.

The three key concepts

The three main concepts of the BON method are seamlessness, reversibility and software contracting:

  • Seamlessness is the principle of using a consistent set of concepts and notations throughout the lifecycle, avoiding the impedance mismatches of traditional approaches.
  • Reversibility guarantees that changes made at any step in the process, even as late as detailed implementation or maintenance, can be reflected all the way back to the earlier steps, including analysis, so as to guarantee the consistency of the entire project baseline.
  • Software contracting, an idea also fundamental in the Eiffel language, views the construction of a software system as a succession of precise contracts between its modules, to guarantee reliability and consistency.

How to learn more

An introduction to an early version of BON may be found in "Applying Object-Oriented Analysis and Design" by Jean-Marc Nerson, Communications of the ACM, vol. 35, no. 9, September 1992, pages 63-74. But for the real thing you should absolutely get a copy of the book mentioned above.