Clafer (class, feature, reference) is a lightweight modeling language. Lightweight modeling aims at improving the understanding of the problem domain in the early stages of software development and determining the requirements with fewer defects. Lightweight modeling has proven cost effective in finding bugs and improving network protocol specifications. Clafer's goal is to make lightweight modeling more accessible to a wider range of users and domains, including enterprise systems.

What Can I Do with Clafer?

  • Domain and structural modeling. A single Clafer model can encode feature, class, and meta-models augmented with complex constraints.
  • Model verification and validation. Clafer instance generators (IGs) use the Alloy Analyzer or Choco4 to:
    • Check consistency of models.
    • Check if given examples are correct instances of models.
    • Derive examples from models.
  • Model completion. An IG helps to automatically configure models and specify attribute vales to derive fully-specified model instances. When configuring a model, the engineer can specify only some properties; the rest will be automatically completed by the reasoner.
  • Debugging. When a model is inconsistent, an IG highlights the contradicting constraints. It also shows a model with removed inconsistency.


What Is Lightweight about Clafer?

  • Minimalistic syntax and semantics. Very few underlying concepts should result in good language usability.
    • Simple things are simple and yet Clafer is powerful enough to model complex concepts
    • Clafer supports note taking during conversations, reading, and workshops. Clafer models are easy to rapidly evolve.
  • Tools are not required to get started
    • Clafer models can initially be written on a piece of paper, a whiteboard, and in any text editor
    • Tools required for more advanced tasks are push button
  • Modeling method is not prescribed