Tuesday, January 20, 2015

Learning a new language from abstract formal descriptions is hard when lacking strong mathematical background. In the attached presentation, I explain the semantics of Clafer in a simple and intuitive, and yet precise way. I focus on individual language constructs, show small model snippets, and explicitly write down instances of these models as sets and relations. I also explicitly evaluate expressions to show the mechanics of the language. The main goal is to illustrate the application of the abstract semantic rules to concrete cases. This way of presenting the semantics of a modeling language is complementary to the formal presentations.

Thursday, January 15, 2015

We are currently working on the implementation of an extension to Clafer for modeling the evolution of model instances over time: "behavioral Clafer". We published a preview release in Clafer Tools Binary Distributions.

Here's an example model of a PowerWindow system, which includes a feature model, an architecture model, a state machine, and positive and negative execution scenarios. The page is a HTML rendering of the source code in Clafer done by the extended behavioral Clafer compiler. The page was manually edited to add headers explaining the parts of the model.

Friday, December 12, 2014

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.

Abstract

Monday, September 8, 2014

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.

About Clafer

Clafer is a general-purpose lightweight modeling language developed at GSD Lab, University of Waterloo and MODELS group at IT University of Copenhagen. 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. Clafer's goal is to make modeling more accessible to a wider range of users and domains.