Domain Specific Languages

Different aspects of a project are often best described using different terms. For example, possible traits of a customer are commonly described as a set of options, with some interplay between them (e.g. if a customer does not like ice cream, her favorite ice cream flavor has to be none). The user journey of a customer through a system, on the other hand, is commonly described as a linear user story or a state machine.

The provengo tool supports multiple DSLs[1], each one focuses on different types of description. There’s one for rule base, another one for user stories, and yet another one for state machines. Together, theses partial description create a full description of the specified system, and its possible tests. Of course, more languages are being developed.

All languages are created on top of a base language: BP-Base. This language allows relatively low-level actions, as well as coordinations between descriptions written in different DSLs.

Available DSLs:

BP-Base

Base language for BP-Based modeling. This language is available in all other languages, and allows low-level requesting, waiting-for, and blocking of events and event sets.

Storylines

For describing aspects of the system that resemble agile user stories (experimental).

Provengo’s DSLs play well with each other. So you can mix and match languages to create a good description of your system specification and testing model.

1. Domain Specific Languages