The Business Object Notation (BON) was developed by Jean-Marc Nerson and Kim Walden from 1989 to 1993. The BON is a method for analysis and design of object-oriented software aided by a graphical notation.
The Business Object Notation is a method for analysis and design of object-oriented systems. Its focus is seamlessness, reversibility and software contracting. By using the same semantic and conceptual base for analysis, design and implementation, its purpose is to narrow the gap between these three levels. The idea is to use the same notation and models, so it is possible to do forward and reverse engineering easily.
The target of the Business Object Notation is software development in general. This method only contains concepts and notations that have proven useful in the application domain. In addition, the user has the possibility to add new descriptions and conventions that will be useful to a particular project. BON is independent of implementation platform and can be used in projects with different program languages.
Using the same notations throughout the three levels of developing a software allows a smooth transition from the initial analysis and design models down to executable code. This also allows to work in reverse. The big challenge is to keep the models consistent with the code during a software project, because of editing the software due to errors.
The applicable operations of a class interface are defined by syntax and semantics. The signature is the syntactic part of an operation (return value and arguments). The designer of a class has to specify the signature of all services of a class, this approach is called ‘strong typing’. Most important is the precise information of the specification, so that the reader is not misinterpreting it.
Today, it is very important to construct a correct, reliable software by using the ‘Design by Contract’.
One important thing for any notation is the scalability. The methods should be used for small as well as for big projects. The BON uses nested clustering and compression to group classes into higher-level units. As a result, the user has the possibility to zoom between various levels.