VariaMos is a Java-based tool for 

1. defining variability modeling languages, 

2. modeling (dynamic) product lines and cyber-physical self-adaptive systems, and 

3. supporting automated verification, analysis, configuration and simulation of these models. 

VariaMos uses a high level constraint language to represent and reason over these models by means of different solvers (e.g., GNU and SWI Prolog). 

Website to download and learn about VariaMos:
Wiki with documentation: