Business Object Notation: A Unique Approach to Object-Oriented Software Design
In the realm of software engineering, there have been several attempts to create standardized methodologies for object-oriented analysis and design. One such methodology, Business Object Notation (BON), was developed in the early 1990s by Jean-Marc Nerson and Kim Waldén. Its primary goal was to provide a simpler and more effective alternative to other methods of software design, especially the widely known Unified Modeling Language (UML). BON aims to extend the higher-level concepts of the Eiffel programming language into the world of software analysis and design through a graphical notation. Despite its promise, BON has remained largely obscure in comparison to other methodologies such as UML, though it offers several distinct advantages that are worth exploring.
Origins of Business Object Notation
The development of BON occurred between 1989 and 1993, a period marked by rapid growth in the field of object-oriented programming (OOP). OOP had already gained significant traction, primarily through languages like C++ and Smalltalk, but there was still a need for effective methods to model the real-world entities and relationships that these programs sought to represent. In this context, BON emerged as an attempt to bridge the gap between abstract object-oriented concepts and practical software development.

BON was conceived as an extension of the Eiffel programming language, which was itself developed by Bertrand Meyer in the mid-1980s. Eiffel was known for its emphasis on design by contract and strong typing, which made it an ideal candidate for BON’s conceptual underpinnings. The goal of BON was not just to create a graphical notation for software design but to build a method that could simplify and clarify the process of object-oriented analysis and design (OOAD).
Jean-Marc Nerson and Kim Waldén, the creators of BON, were deeply influenced by their industrial experience. Their work on BON was informed by the observation that complex and ambiguous software design methods often became obstacles in practice. They understood that simplicity and well-defined semantics were key to ensuring the success of a software project, and they aimed to reflect these principles in the BON methodology. As a result, the BON approach was designed to be as simple as possible while maintaining rigorous semantics.
Key Features of Business Object Notation
At the heart of the BON methodology is its commitment to simplicity. Unlike UML, which is often criticized for its complexity and the need for numerous diagrams and conventions, BON focuses on using a small number of well-defined graphical elements to represent the essential aspects of a software system. This simplicity is one of its key strengths, particularly in environments where clarity and ease of understanding are paramount.
1. Graphical Notation
The most distinctive feature of BON is its graphical notation, which was designed to be intuitive and easy to use. The notation is built around the concept of business objects, which are entities that represent real-world concepts within a system. Each business object is depicted as a class, and relationships between these objects are represented as associations. The primary goal of this notation is to create a visual representation of a system that is easily understandable to both developers and non-technical stakeholders.
The notation is designed to be both expressive and simple, allowing for quick prototyping and iterative design. By focusing on just a few key concepts, BON eliminates the need for the vast array of diagrams commonly found in other methodologies, such as UML. This streamlined approach allows for faster understanding and reduces the risk of confusion.
2. Modeling Real-World Entities
Business objects in BON are designed to closely mirror real-world entities, making the notation highly relevant to business applications. Each object encapsulates both data and behavior, making it an ideal model for object-oriented systems. These objects interact with each other in a way that reflects the relationships between entities in the real world. This makes BON particularly well-suited for modeling complex business processes and workflows, where understanding the relationships between different entities is crucial.
3. Clarity and Simplicity
One of the primary criticisms of UML and other more complex methodologies is that they often introduce a level of abstraction that is difficult for stakeholders to grasp. In contrast, BON’s emphasis on simplicity ensures that the notation remains accessible. It is designed to present only the essential elements of the system, avoiding unnecessary complexity. By using a minimal set of graphical symbols, BON helps prevent the ambiguity that can arise when developers and business stakeholders interpret complex diagrams differently.
The simplicity of BON is not just a theoretical benefit—it also has practical implications. In an industry where deadlines are often tight and resources limited, being able to quickly communicate design decisions can significantly improve the efficiency of software development teams. BON helps ensure that everyone involved in a project is on the same page, reducing misunderstandings and the need for costly revisions.
4. Integration with Eiffel
BON is closely tied to the Eiffel programming language, which serves as the foundation for many of its concepts. Eiffel’s strong typing, design by contract, and emphasis on reusable software components provide a solid basis for the design principles embedded in BON. By aligning with Eiffel, BON can leverage the language’s advanced features, such as automated testing and runtime checking, to ensure the correctness of software designs. This integration allows for a smooth transition from design to implementation, ensuring that the abstractions created in the analysis phase are faithfully represented in the code.
BON vs. UML
The Business Object Notation (BON) methodology can be seen as a direct response to UML, which had already gained widespread popularity by the time BON was developed. While UML became the de facto standard for object-oriented modeling in the 1990s and 2000s, BON offers a more minimalist and conceptually focused alternative. There are several key differences between the two approaches:
-
Complexity: UML is often criticized for its complexity, with numerous diagrams and notations that can be overwhelming to newcomers. BON, in contrast, emphasizes simplicity and clarity. It uses a smaller set of graphical elements, making it easier for developers to understand and apply.
-
Scope: UML was designed to be a general-purpose modeling language, capable of supporting a wide range of software projects, from small systems to large enterprise applications. BON, on the other hand, was specifically designed to address the needs of business applications, with a focus on modeling real-world business objects and their relationships.
-
Flexibility: UML’s flexibility allows it to be adapted to a wide range of software development methodologies and tools. BON, while also flexible, is more tightly integrated with the Eiffel programming language and its design philosophy. This makes it a more specialized tool for those working with Eiffel or similar object-oriented languages.
Despite these differences, both UML and BON share a common goal: to provide a clear, effective way of modeling object-oriented systems. However, BON’s simplicity and focus on real-world entities make it a compelling choice for projects that require clarity and quick understanding.
The Decline of BON’s Popularity
While BON offered significant advantages, particularly in terms of simplicity and clarity, it did not achieve the level of commercial success that UML enjoyed. One reason for this is the broader industry adoption of UML, which quickly became the standard for object-oriented modeling. UML’s widespread acceptance, coupled with its support from major software vendors, made it difficult for alternative methodologies like BON to gain traction.
Another factor that contributed to BON’s limited commercial success is its close integration with the Eiffel programming language. Eiffel, despite being a powerful and innovative language, did not gain the same level of popularity as languages like Java and C++. As a result, BON was seen by many as a niche tool that was primarily useful for Eiffel developers, limiting its appeal to a broader audience.
BON in Modern Software Development
Although BON is not widely used in mainstream software development today, its emphasis on simplicity and clarity remains relevant. In an era where software development teams are under increasing pressure to deliver high-quality products on tight schedules, the principles of BON can still provide valuable insights. Many of the challenges faced by software engineers today—such as dealing with complex systems and ensuring effective communication between team members—are the same problems that BON was designed to address.
Furthermore, the ongoing rise of domain-driven design (DDD) has renewed interest in methodologies that focus on modeling real-world entities and their relationships. BON’s approach to business objects is closely aligned with DDD principles, which emphasize the importance of understanding the domain in order to create effective software solutions. As organizations continue to adopt DDD practices, there may be renewed interest in BON as a potential modeling tool.
Conclusion
Business Object Notation offers a unique approach to object-oriented analysis and design, emphasizing simplicity, clarity, and real-world modeling. While it did not achieve the commercial success of UML, its core principles remain relevant to modern software development practices. By focusing on a small set of graphical elements and closely aligning with the Eiffel programming language, BON provided a methodology that was both effective and easy to understand. Though it may not be widely used today, its emphasis on simplicity and well-defined semantics provides valuable lessons for the future of software design.
For those looking to explore an alternative to the complexity of UML, BON offers a streamlined and conceptually grounded methodology that is worth considering.