Friday, December 12, 2014
"Clafer: unifying class and feature modeling" available on-line in Software & Systems Modeling journal
The paper (available from publisher's website) presents formal semantics of Clafer. It precisely explains how a single modeling construct (clafer) can play roles of features, feature groups, classes, attributes, references, associations, and association classes. The paper also explains inheritance, specialization, extension, and redefinition. The semantics is presented in a structure preserving way, that is, the shape of the model is preserved in its semantics, rather than being flattened into a multitude of FOL formulas.
Thursday, October 23, 2014
Clafer, ClaferIG, and ClaferWiki 0.3.7 Released
by Michał Antkiewicz
Clafer compiler, Alloy-based instance generator, and wiki 0.3.7 are released on Hackage (clafer, claferIG, claferwiki).
Major changes include:
Clafer compiler, Alloy-based instance generator, and wiki 0.3.7 are released on Hackage (clafer, claferIG, claferwiki).
Major changes include:
- added support for
real
numbers [clafer] - added
not
as a synonym to the quantifierno
[clafer] - moved to the latest Alloy 4.2_2014-05-16 build by default. The
.als
files are Alloy 4.2 whereas the.als41
files are Alloy 4.1. [clafer, claferIG] - added integration with SublimeText 2/3 and VIM.
- moved to the latest Gitit and Pandoc [claferwiki]
- many technical improvements
Wednesday, October 22, 2014
Clafer syntax highlighter for VIM
by Michał Antkiewicz
Andrzej Wąsowski has contributed an integration of Clafer into VIM featuring
Andrzej Wąsowski has contributed an integration of Clafer into VIM featuring
- syntax highlighting for structural and behavioral Clafer, including marking simple errors
- indentation based folding for collapsing parts of the model (experimental)
Thursday, September 25, 2014
Which new features would you like to see in Clafer?
by Michał Antkiewicz
We are thinking of implementing a few new features for Clafer. We opened a poll on the right, above the "Blog Archive". Please vote.
Here's a brief explanation of the features:
We are thinking of implementing a few new features for Clafer. We opened a poll on the right, above the "Blog Archive". Please vote.
Here's a brief explanation of the features:
Wednesday, September 10, 2014
Monday, September 8, 2014
Tutorial on Domain Modeling using Clafer
by Michał Antkiewicz
On Aug 25, 2014, as part of the Domain-Specific Modeling Theory and Practice 2014 Summer School, Michał Antkiewicz presented a 6-hour hands-on tutorial on Domain Modeling using Clafer. This year, the school had a common domain: "Traffic Lights", and it was first modeled and analyzed using Clafer.
The tutorial is in the form of the Clafer Wiki 'Traffic Lights' Domain Model Example. It contains four parts:
- Part 0: Introduction to Domain Engineering (slides)
- Part I: Feature-Oriented Domain Analysis and Modeling
- Part II: Domain Concept Modeling
- Part III: Application Configuration
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
UPDATE (Feb 10, 2015): the
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
fileplugins: 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.UPDATE (Feb 10, 2015): the
claferwiki.sh
script now provides an option --sandbox
.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
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
- compiler
- wiki (go to the demo instance: Clafer Model Wiki)
- Alloy-based instance generator
- Choco3-based instance generator and multi-objective optimizer backend
- Choco3-based solver frontend
- Z3-based instance generator and multi-objective optimizer backend and frontend
- Clafer Integrated Development Environment (go to the demo instance: ClaferIDE)
- Clafer Configurator (go to the demo instance: ClaferConfigurator)
- Clafer Multi-Objective Optimization Visualizer and Exporer (go to the demo instance: ClaferMooVisualizer)
- 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
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:
Clafer Tools 0.3.5.20-01-2014 is a simultaneous release of the Clafer
- compiler
- wiki
- Alloy-based instance generator
- Choco3-based solver
- Choco3-based instance generator
- IDE
- configurator
- Mooloy-based exact multi-objective optimizer
- Choco3-based exact single-objective optimizer
- MOO visualizer and explorer
- Clafer Tools UI Common Platform
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:
- Guidelines for Feature Modeling using Clafer
- An interactive assignment designed to introduce the concepts of variability management, multi-objective optimization, and computational decision-making in product line engineering.
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.
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.
Subscribe to:
Posts (Atom)