Executable Specs: What Makes One, and How are They Used?

ABSTRACT Model-based systems development relies upon theconcept of an executable specification. A survey ofpublished literature shows a wide range of definitions forexecutable specifications [1-10]. In this paper, weattempt to codify the essential starting elements for acomplete executable specification-based design flow. Acomplete executable specification that includes afunctional model as well as test cases, in addition to atraditional prose document, is needed to transferrequirements from a customer to a supplier, or from asystems engineer to electrical hardware and softwareengineers. In the complete form demonstrated here,sub-components of a functionally-decomposed systemmanifest as modular reuse blocks suitable for publicationin functional libraries. The overarching definitionprovided by product architecture and by softwarearchitecture must also be harmoniously integrated withdesign and implementation. Using seven specificautomotive examples, we illustrate effective ways inwhich executable specifications have been used inproduction-ready applications. Benefits of model-baseddevelopment are captured, including earlier and morethorough testing, automatic document generation, andautocode generation.