Abstract

In Business-Driven Development (BDD), process models are produced by business analysts. To ensure that the defined requirements are satisfied, the IT solution must ideally be derived directly from the specifications through a process of model refinement. However, if the original models contain errors or lack some technical detail, an incorrect implementation would be inferred and the entire BDD life-cycle would have to be revised. In this report, we investigate the use of embedded language techniques to enable more abstract model descriptions and enable quality assurance and transformation of models. We have embedded such a domain-specific language in the functional programming language Haskell and show how it enables: (i) the rapid development of models in a concise and abstract manner, focusing on the specifications rather than the implementation and ensuring that all the required details to generate the executable code are specified; (ii) quality assurance of the models through the use of Haskell's type checker, at construction-time and through soundness analysis; (iii) transformation, analysis and interpretation of the models; and (iv) definition of composite model transformations, including the use of quality assurance.