PrevTopNext

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.

PrevTopNext