Skip to content
kbak edited this page Feb 28, 2012 · 14 revisions

Clafer is a lightweight modeling language developed at Generative Software Development Lab at University of Waterloo.

What is Clafer good for?

  • Software Product Lines modeling and analysis. Clafer can express software architecture (as object, class, and meta-models), variants of different products (as feature models with attributes and cardinalities), and complex constraints. Unlike other popular variability modeling languages (e.g., eCos CDL, or the Linux Kernel KConfig), Clafer is supported by a reasoner.
  • Concept Modeling. We are designing Clafer to support domain modeling, requirements elicitation, and specification. One of the purpose of models is to improve communication among various shareholders. Usability of the language and simple syntax are Clafer’s priorities. Clafer models may be used to verify examples of business concepts, or to generate acceptance test for developers.

What is lightweight about Clafer?

  • Minimalistic syntax and semantics (very few underlying concepts).
    • Simple things are simple and yet Clafer is powerful enough to model complex concepts
    • Clafer supports note taking during conversations, reading, and workshops
  • Tools are not required to get started
    • Clafer models can initially be written on a piece of paper, a whiteboard, and in any word processor
    • Tools required for more advanced tasks are push button
  • Modeling method is not prescribed
    • Clafer can be used with a variety of methods, such as, domain-driven design, agile modeling, and specification by example.

Sounds good? Let’s start clafering!

Learn Clafer by Examples The tutorial introduces Clafer by presenting simple examples for each language construction. It gives an intuitive understanding of language semantics.

Clafer in Depth explains the language in more details.

Experimental is a place for discussing various design choices and proposed extensions to the language.

Clone this wiki locally