What? variED (the variability editor) is a research prototype for viewing, editing and analyzing feature models in a collaborative, real-time web environment.
Why? In software product line engineering, a team of developers and other stakeholders may be involved in the feature modeling process. To facilitate live, light-weight editing, a real-time editing platform similar to Google Docs or Overleaf may be useful. This enables various use cases, such as sharing and editing feature models or teaching feature model concepts.
How? variED relies on a client-server architecture where the client is implemented in TypeScript and the server in Java. This fork of variED utilizes a pessimistic locking approach for concurrency control, which greatly simplifies the overall architecture compared to the optimistic technique implemented in ekuiter/variED.
Who? This project is a research effort of the DBSE working group and has been supported by pure-systems. It is released under the LGPL v3 license.
As a prerequisite, set up FeatJAR in the local Maven repository.
./gradlew build
builds a JAR file that can be run with a double click (on Windows) or withjava -jar variED.jar
. To stop the server, clickTools > Command Palette > Exit
(if run via double-click) or pressCtrl+C
(on a shell).npm start
inside theclient
directory runs the client onhttp://localhost:3000
../gradlew server:run
runs the server onhttp://localhost:8080
, which also serves the client at/
, if it already has been built.
Client and server communicate by sending JSON-encoded messages over a WebSocket connection. The client makes use of the React, Redux, Fluent UI and D3.js libraries to provide a user interface for feature modeling. The server relies on FeatJAR as a backend for feature-model IO, editing, and analysis.