VM-DSL Syntax

The VM-DSL language syntax for defining variation points with their variants and modeling the implemented variability of a variability-rich system in terms of them.

<vps-list> ::= <vp> | <vp> <EOL> <vps-list> 

<variants-list> ::= <variant> | <variant> <EOL> <variants-list> 

<vp> ::= <vp-name> `=' <vp-type> `(' `asset' `(' <tag> `)' `)'

<variant> ::= <variant-name> `=' `Variant' `(' `asset' `(' <tag> `)' `)'

<vp-name> | <variant-name> := "string name"

<vp-type> ::= `VP' | `oVP' | `tVP' | `nVP'

<tag> ::= <class-name> | <method-name> | <field-name>

<fragment> ::= `fragment' `(' <tvm-name> `)' `{' 
    <vp-name> `is' <logical-relation> `with_variants' `('`{'<variants>`}'`)'
    `use' <technique> `with_binding' <binding-time> `and_evolution' <evolution> <EOL> 
`}'

<tvm-name> ::= <class-name> | <file-name> | <package-name> | "string name"

<logical-relation> ::= `MND' | `OPT' | `ALT' | `MUL'

<variants> ::= <variant-name> | <variant-name> `,' <variants> 

<technique> ::= `Inheritance' | `Overloading' | `Strategy_Pattern' |
                `Template_Pattern' | "etc"

<binding-time> ::= `Compile' | `StartUp' | `Runtime' | "etc"

<evolution> ::= `Open' | `Close'

The VM-DSL language syntax for defining trace links between variation points and variants at the implemenetation to features at the specification.

<trace-links> ::= `traces' `{' <links> `}'

<links> ::= <vp-name> `implements' <feature-name> | 
            <variant-name> `implements' <feature-name>

<vp-name> | <variant-name> | <feature-name> := "string name"

Bibliography

  • [1] Xhevahire Tërnava and Philippe Collet. On the Diversity of Capturing Variability at the Implementation Level. In the 21st International Systems and Software Product Line Conference-Volume B. 2017. ACM Press.
  • [2] Xhevahire Tërnava and Philippe Collet. Tracing Imperfectly Modular Variability in Software Product Line Implementation. In International Conference on Software Reuse. 2017. Springer, Cham.
  • [3] Xhevahire Tërnava and Philippe Collet. Early Consistency Checking Between Specification and Implementation Variabilities. In Proceedings of the 21st International Systems and Software Product Line Conference-Volume A. 2017. ACM Press.
  • [4] Xhevahire Tërnava. Handling variability at the code level: modeling, tracing and checking consistency. PhD dissertation, 2017.