What's Going on with Clafer?

Clafer has become one of the major projects in our lab. It is growing much faster than I ever expected. More and more people are involved in the project or work on its applications. We have been progressing in the following areas:

Language Design and Tools

  • Translator - many bugs got fixed in the Clafer translator and the language includes more and more constructions that support lightweight modeling.
  • Defaults - allow model creators to set default values of clafers (e.g. selection or a numeric value). For end-users, defaults save time spent on the configuration process.
  • Intermediate representation - Clafer models may be exchanged between tools in a widely-acceptable XML format. For details take a look at the XSD schema.
  • Type system - the type system detects certain errors at the time of model compilation. It also helps Clafer with handling elements of primitive types, such as integers and strings.
  • Test suite - we hope that future releases of the Clafer translator will have fewer bugs thanks to automatic regression tests.
  • Visualization - a way of graphical rendering Clafer models in graphviz.
  • Instance Generator - Clafer instance generator generates sample configurations of a given variability model. It allows for interactive validation of variability models by working with examples and counterexamples.


  • Lighweight methodology - we are designing Clafer as a part of lightweight methodology for specifying software requirements. It allows for quick creation of throw-away models and immediate model validation by examples.
  • Multiobjective optimization - the language will support functions that optimize variability model configurations with regard to some goals. For example, for a product line of phones it may find a configuration with the least power consumption and the maximum performance.
  • Usability evaluation - Clafer is being designed with usability in mind. We want to empirically verify several hypotheses about design of modeling languages and their usability.
  • Experiments with bug tracking - Clafer-related tools are subjects of a novel bug tracking system that is a fork of Askbot.


  • Tutorial - the tutorial on Domain Concept Modeling evolves together with the language. It provides a gentle introduction to Clafer.
  • Clafer wiki - the Clafer by Examples wiki describes semantics of the language by multitude of small examples. It is an ongoing work but it will be comprehensive enough to discuss the language in details.