Feature model for ClaferTools: Visualizer, Configurator, and IDE

Development History

ClaferTools is a set of tools based on the Clafer modeling language. ClaferWebTools are three web-based tools: ClaferMooVisualizer (the “visualizer”), ClaferConfigurator (the “configurator”), and ClaferIDE (the “IDE”). They have been developed using the clone and own approach. The visualizer was developed first. It accepts a model in Clafer file with optimization objectives, runs a multi-objective optimization, and visualizes the resulting set of optimal configurations. The configurator is a clone of the visualizer. It also accepts a model in Clafer, runs Clafer Instance Generator, and presents the resulting configurations. After the initial cloning, the two tools evolved and many features implemented in one of them were subsequently propagated to the other one. For example, the help system and the ability to collapse and expand a subtree in the feature matrix view were added to the configurator and later propagated to the visualizer.

The two projects are structurally very similar, they have the same folder structure, use the same technology for the server and web UI components, share various utilities (e.g., processing of resulting configurations), and have consistent look and feel. They also have significant differences, which are specific to their core functionality.

In that context, the third tool, called ClaferIDE (the “IDE”), was created. It offers basic editing, compilation, instantiation services over a web-based interface. That new tool reused a lot of functionality from the visualizer and the configurator.

Below we present the feature models of the two existing tools and of the new tool. Most of the features of IDE came from the visualizer and the configurator. The only one new feature unique to the IDE is claferTextEditor. Also, despite having the same features, their contents are different. The help pages and examples are be different, the windows support different workflows and they are linked in different ways. The specific layout and interactions among these features is different to provide the IDE functionality. For example, users can load, compile, and instantiate an example model or a model from a file without affecting the contents of the editor. The models presented here are more oriented towards the solution-space rather than problem space. Also, the models are incomplete (e.g., missing the feature loadFromURL).

Feature Models

c0_ClaferMooVisualizer ClaferMooVisualizer : ClaferWebTool c0_ClaferWebTool abstract ClaferWebTool c0_ClaferMooVisualizer->c0_ClaferWebTool c0_ClaferConfigurator ClaferConfigurator : ClaferWebTool c0_ClaferConfigurator->c0_ClaferWebTool c0_ClaferIDE ClaferIDE : ClaferWebTool c0_ClaferIDE->c0_ClaferWebTool
Module Statistics: | All clafers: 123 | Abstract: 1 | Concrete: 122 | Reference: 0 | Constraints: 8 | Goals: 0 | Global scope: 1..* | Can skip name resolver: no |

Module Downloads: | [.cfr] | [.html] |

ClaferMooVisualizer : ClaferWebTool
server
or backends
ClaferMoo
ChocoSingle
cache
examples
processManagement
polling
timeouts
errorHandling
cancellation
client
jquery
windowsEngine
forms
hottracking
help_pages
automaticViewSizing// from IDE
views
bubbleFrontGraph
variantComparer
removeVariant
featureAndQualityMatrix
expandCollapse
sorting
byId
byQuality
filtering
objectives
claferSourceView
input
examples
icons
ClaferConfigurator : ClaferWebTool
server
backends
ClaferIG
processManagement
interactive
timeouts
errorHandling
client
jquery
windowsEngine
forms
help_pages
views
featureAndQualityMatrix
expandCollapse
filtering
removeVariant
input// from visualizer's variantComparer
control
output
constraints
icons
ClaferIDE : ClaferWebTool
server
backends
ClaferIG
examples
processManagement
interactive
polling
timeouts
errorHandling
cancellation
client
jquery
windowsEngine
forms
help_pages
automaticViewSizing
views
claferSourceView
input
examples
claferTextEditor
control
output
icons
abstract ClaferWebTool
server
or backends
ClaferIG
ClaferMoo
ChocoSingle
cache ?
examples ?
processManagement
interactive ?
polling ?
timeouts
errorHandling
cancellation ?
client
jquery
windowsEngine
forms
help_pages
automaticViewSizing ?
or views
bubbleFrontGraph
variantComparer
removeVariant
featureAndQualityMatrix
expandCollapse
sorting ?
byId
byQuality
filtering
removeVariant ?
objectives
claferSourceView
input
examples ?
claferTextEditor ?
control
output
constraints
icons