BON is the Business Object Notation, a clear and concise graphical and textual specification language for software[WaldenNerson95]. BON is unique in that every construct specified in BON is checkable and reversible. That is to say, we can consistently and completely check the conformance of a piece of software according to a BON specification and any changes to the software can be reflected back into the specification. The specification is obviously an abstraction of the software, but a bijection (equivalence relation) exists between the specification an a subset of the software it specifies.
BON is useful for much more than "business" objects --- don't let the name fool you. BON is easy to learn, has a grammar and style that are influenced by the Eiffel programming language, and doesn't require a math degree, dozens of immense tomes to explain, nor multi-thousand dollar pieces of software to use.
This document describes a suite of tools called "Extended BON" or "Extended BON", the core of which is a Extended BON scanner, parser, documentation generator, and design model checker. This set of tools is meant to help software developers keep their documentation, design, and implementation in sync as well as help find and correct errors as early as possible in the process of creating software artifacts.
Extended BON is an extension of BON by Joseph Kiniry that incorporates additional formal specification from [KiniryZimmerman97] and [Kiniry01] via the use of semantic properties [Kiniry02-SP] into the BON standard. Since Extended BON is a proper superset of BON, this suite of tools will work with BON or Extended BON specifications.
The Extended BON tool suite consists of the following tools:
The phrase "must" means that the design and implementation of the discussed component is not considered completely unless the indicated capability is present and correct. The phrase "may" means that the capability is optional; it is a secondary requirement.
The Extended BON parser must:
The Extended BON parser may:
The Extended BON serializer must:
The Extended BON serializer may:
All tools must:
All tools may:
Pending...
@Book{WaldenNerson95, author = { Kim Wald\'en and Jean-Marc Nerson }, title = { Seamless Object-Oriented Software Architecture - Analysis and Design of Reliable Systems }, publisher = pub-ph, address = pub-ph:adr, series = { The Object-Oriented Series }, year = 1995 }
A PDF of this text will soon be available online. If you are working on the EBON project, request a copy from Joe Kiniry (kiniry@users.sourceforge.net) until Kim Walden puts the PDF up on the web.
@TechReport{KiniryZimmerman97, editor = { Joseph R. Kiniry and Daniel M. Zimmerman }, title = { The Infospheres Java Coding Standard }, institution = { Department of Computer Science, California Institute of Technology }, year = { 1997 }, note = { Available at http://www.infospheres.caltech.edu/ } }
@TechReport{Kiniry01, author = { Joseph R. Kiniry }, title = { The KindSoftware Coding Standard }, institution = { KindSoftware, LLC }, year = { 2001 }, note = { Available at http://www.kindsoftware.com/. Directly evolved from Kiniry97. } }
@Unpublished{Kiniry02-SP, author = { Joseph R. Kiniry }, title = { Semantic Properties for Lightweight Specification in Knowledgeable Development Environments }, year = { 2002 }, url = { arxiv.org }, note = { Submitted to the 10th International Symposium on the Foundations of Software Engineering (FSE-10). } }
This project was started with the intent of entering it into Eiffel Struggle 2001. Only the first three tools (parser, serializer, and documentation generator) are meant to be designed and written for this contest. Since the Stuggle did not happen for 2001, we will enter this tool into the next contest.
This document was last committed: $Date: 2002/12/10 12:01:09 $