Behavior-Driven Development entails a unified set of practices for expressing requirements in business-readable language, and binding them to automated test cases. Unfortunately, the Agile community has been so focused on the test automation aspects of the methodology that they have overlooked the challenges involved in the initial step of BDD: expressing requirements in business-readable language.
While business-readable language simplifies communication with business stakeholders, it also complicates the process of specifying requirements for the implementation team. The informality of business language makes it difficult to write requirements that are accurate, consistent, and unambiguous. How can practitioners specify technical requirements with business-readable language?
This paper explores how domain models help to reconcile the looseness of business language with the exacting requirements of engineering. By systematically representing key concepts in the business domain with visual diagrams and operational definitions, we can construct a domain model that allows us to unambiguously specify implementation requirements in business-readable language.