Thursday, July 24, 2014

How to run Gitit from a Cabal sandbox?

by Michał Antkiewicz

Some Haskell projects, such as Gitit, dynamically load Haskell modules which implement plugins. ClaferWiki is one such a plugin for Gitit. To have Gitit load the ClaferWiki plugin, one must specify the following in the gitit.cnf file
plugins: Network.Gitit.Plugin.ClaferWiki
Gitit will then search for the module ClaferWiki in the user and global package registries. However, when the plugin is installed in a Cabal sandbox, it will not be found.

Tuesday, July 22, 2014

Clafer Tools 0.3.6.1 Released

by Michał Antkiewicz
 
We are moving to a staged release model. First, Haskell-based tools, including the compiler, IG, and the wiki, followed by backends Choco3-based and Z3-based, finally followed by the web tools. This will allow us to make more frequent releases of the core components on which all others depend.

The binaries for Win, Linux, and Mac can be downloaded from Clafer Tools - Binary Distributions. There's also a "portable" distribution for Win which includes preconfigured Sublime Text 2.

For feature modeling, see Guidelines for Feature Modeling using Clafer.

Clafer Tools 0.3.6.1 is a simultaneous release of the Clafer
  1. compiler
  2. wiki (go to the demo instance: Clafer Model Wiki)
  3. Alloy-based instance generator
  4. Choco3-based instance generator and multi-objective optimizer backend
  5. Choco3-based solver frontend
  6. Z3-based instance generator and multi-objective optimizer backend and frontend
  7. Clafer Integrated Development Environment (go to the demo instance: ClaferIDE)
  8. Clafer Configurator (go to the demo instance: ClaferConfigurator)
  9. Clafer Multi-Objective Optimization Visualizer and Exporer (go to the demo instance: ClaferMooVisualizer)
The 0.3.6.1 release is mostly focused on
  • the Choco3-based and Z3-based backends,
  • significant update of the web-based tools user interface (using D3 framework + usability improvements)
  • compiler fixes.

Thursday, January 23, 2014

Clafer Tools 0.3.5 Released

by Michał Antkiewicz
 
Clafer Tools 0.3.5.20-01-2014 is a simultaneous release of the Clafer
  1. compiler
  2. wiki
  3. Alloy-based instance generator
  4. Choco3-based solver
  5. Choco3-based instance generator
  6. IDE
  7. configurator
  8. Mooloy-based exact multi-objective optimizer
  9. Choco3-based exact single-objective optimizer
  10. MOO visualizer and explorer
  11. Clafer Tools UI Common Platform
projects.

Models expressed in Clafer can be translated either to Alloy and used for instance generation and multi-objective optimization or to Choco3 and used for instance generation and single-objective optimization.

The binary distributions of all tools are available for download.
The following are links to public live demo installations of
The 0.3.5 release is mostly focused on adding the Choco3-based backends and the three web-based tools: the new tool-ClaferIDE, and improvements of the ClaferMooVisualizer and ClaferConfigurator. In this release, the three web projects, which were forks of each other, were refactored into a product-line based on an integrated platform, the Clafer Tools UI Common Platform.
We have also created two new wiki resources:

Thursday, January 16, 2014

Example-Driven Modeling Using Clafer paper & presentation

by Michał Antkiewicz
 
UPDATE (Jan 16, 2014): Our paper "Effects of Using Examples on Structural Model Comprehension" has been accepted for publication at ICSE'14.

In the paper, we present a controlled experiment for the empirical evaluation of Example-Driven Modeling (EDM) for model comprehension and domain knowledge transfer. The results show a significant positive impact of using examples on the performance of experiment participants.

On Sep. 29, at the Model-Driven Engineering by Example workshop at the MODELS'13 conference we presented a paper Example-Driven Modeling Using Clafer. The paper shows a scenario in which Alice, an SME, and Bob, a BA, are communicating using examples, inferring abstractions, deriving new examples, and validating the abstractions.

The paper showcases the importance of redefinition, partial typing, and partial instantiation for the presented vision of performing example-driven modeling. The slides of the presentation are available at the publication's page.

Support for redefinition is partially implemented in Clafer 0.4.0. A preview release is available from binary distributions.

Monday, September 30, 2013

Clafer Tools 0.3.4 Released

by Michał Antkiewicz
 
Download binaries

SPLC'13 papers:
Clafer Tools for Product Line Engineering,
Visualization and Exploration of Optimal Variants in Product Line Engineering.

Clafer Tools 0.3.4 is a simultaneous release of the Clafer
projects.
The binary distributions of all tools are available for download.

The following are links to public live demo installations of
The 0.3.4 release is mostly focused on ClaferMooVisualizer and ClaferConfigurator.

Clafer Configurator (commits)
  • improved help pages
  • added check for dependencies
ClaferMoo Visualizer (commits)
  • improved help pages
  • added check for dependencies
  • added cancel button
  • improved error reporting
  • added example models selector and linked to the wiki
  • improved session management and server side process management
Detailed changelogs for release 0.3.4
Clafer new features and bug fixes
ClaferIG new features and bug fixes
ClaferConfigurator new features and bug fixes
ClaferWiki new features and bug fixes
ClaferMOO new features and bug fixes
ClaferMOOVisualizer new features and bug fixes

Thursday, August 15, 2013

Clafer Tools 0.3.3 Released

by Michał Antkiewicz
 
Download binaries for Clafer and ClaferIG

SPLC'13 papers:
Clafer Tools for Product Line Engineering,
Visualization and Exploration of Optimal Variants in Product Line Engineering.

Clafer Tools 0.3.3 is a simultaneous release of the Clafer
projects.The binary distributions of the compiler and instance generator are available for download. The other tools are either in Python or JavaScript and they do not require binary builds - they can be installed by downloading from the source code repositories.
The following are links to public live demo installations of
The live demos are still running 0.3.2 but will be upgraded asap. The 0.3.3 release is massive in size. Overall, it contains many new features, bug fixes, and big performance improvements.

Noteworthy Changes
Clafer (commits)
  • fixed if-then-else type resolution
  • improved error reporting for lexer, layout resolver, parser, and compiler errors
  • fixed default cardinality of grouped clafers
  • fixed 'sum' to use sum quantifier in Alloy
  • added attributed feature models check
  • added a powerful scope computation strategy based on linear programming
  • added scope computation strategy options: none, simple, full
  • fixed HTML rendering errors
  • included the Ecore2Clafer translator
  • fixed typing for unions
  • added a parameter to skip code generation for goals/objectives
ClaferIG (commits)
  • added JSON output of instance data
  • added automatic adjustment of bitwidth for a model
  • fixed displaying of strings-string literals from the models are properly displayed
  • improved the 'claferModel' command which now shows the model together with scopes and UnSAT core markers
  • IG now does not crach for models with goals
  • some compiler options can now be passed directly to IG
ClaferWiki (commits)
  • fixed download links - downloaded files now have page names
  • the wiki plugins are now a proper cabal package
  • improved situation with race conditions
Clafer Configurator (commits)
  • added help system - welcome help and pages for each window
  • the configurator no longer crashes for models with goals
  • added attributed feature model check, if not, displays an error
  • constraints representing current filters (feature selections and eliminations) can be copy pasted from the view Constraints.
ClaferMoo Visualizer (commits)
  • added help system - welcome help and pages for each window
  • added feature subtree collapse in feature matrix
  • improved graph resizing
Detailed changelogs for release 0.3.3
Clafer new features and bug fixes
ClaferIG new features and bug fixes
ClaferConfigurator new features and bug fixes
ClaferWiki new features and bug fixes
ClaferMOO new features and bug fixes
ClaferMOOVisualizer new features and bug fixes