[SBVR] Does SBVR help us to design rule-based applications?

The SBVR specification essentially defines two metamodels in the form of “vocabularies”: the SBVR “Vocabulary for Describing Business Vocabularies” (henceforth called business vocabulary metamodel), and the SBVR “Vocabulary for Describing Business Rules” (henceforth called business rules metamodel), which builds on the Vocabulary for Describing Business Vocabularies.

A business vocabulary is defined to contain “all the specialized terms and definitions of concepts that a given organization or community uses in their talking and writing in the course of doing business”. A business rule is defined as “a rule that is under business jurisdiction”, which means that “the business can enact, revise, and discontinue business rules as it sees fit”.

The SBVR business vocabulary metamodel is rather large with more than one hundred concept definitions. The SBVR business rule metamodel, containing 33 concept definitions, is more handy but still sizeable.

SBVR being an OMG CIM standard and PRR being an OMG PIM standard, it is natural to expect that there will be guidelines how to derive a PRR PIM from an SBVR CIM. They should include guidelines how to derive a UML design class model (sometimes also called ‘Business Object Model’) from an SBVR business vocabulary.

The SBVR submission contains a discussion about how to represent a business vocabulary visually in the form of a UML class diagram (in Appendix H). The method considers fewer than 20 concepts from the more than 100 concepts of the SBVR business vocabulary metamodel. It is not discussed, if such a radical reduction in expressivity creates any problems or not. Also, the resulting class diagram corresponds rather to a UML domain model (or CIM), and not to a design model.(or PIM) because it

  • does not contain data types for attributes
  • does not include multiplicity elements (which would have to be derived from corresponding “structural business rules”)
  • does not follow standard naming conventions for design models (e.g. using names starting with upper case for classes and names starting with lower case for properties and associations)
  • may contain powertypes (which are typically not used in PIM-level models)

The SBVR submission does not say much about how to derive PIM-level rule expressions from SBVR business rule statements. In fact, it is unclear if any of the conceptual distinctions of the SBVR business rule metamodel can be preserved in a PRR rule model.

One option to consider in any possible RFP for mapping SBVR to PRR is to use OCL invariants and derive expressions as an intermediate representation from which a PRR rule model may be derived.