Operating Rules for a Signal Box: Rating
Achievements:
- Anyone understanding English and the project domain can
read and understand the rules.
- Rules can be written with only a minimum of programming skill.
- DSL definition independent from the underlying DRL and Java code
(but not from the data model).
Lessons learned:
- A DSL may not be able to express all that can be
written in the underlying language: recursive structure
of DRL in contrast to a translation based on regular expressions.
(Chomsky Type-2 vs. Type-3)
- Use "tailored" ("dedicated") phrases or (constraints in the
native rule language).
- Developing and maintaining a DSL with good parameterization
and reusability of phrases is not simple. Consider developing
individual DSLs for different rule groups (preconditions,
execution,...)
- Provide good DSL documentation for rule authors since usage
is not self-evident.
- A DSL is no guarantee against inefficient or wrong roles.