Simple Language of Communicating Objects

The Simple Language of Communicating Objects (SLCO) was created by Suzana Andova, Marcel van Amstel, Mark van den Brand, and me as a way to experiment with model-driven software engineering and domain-specific modeling languages, and demonstrate their usefulness in practice. It is possible to simulate SLCO models, use model checking to verify their correctness, and generate code from them.

SLCO is used in combination with a number of model transformations to generate executable code from simple models. The figure below shows a part of a model that is used as input for a sequence of model transformations that produce executable code.

In a number of transformation steps, implementation details are added to the model depicted above. The resulting code can be executed on Lego Mindstorms controllers, as illustrated in the video below.

Experimenting with SLCO

SLCO has been implemented using a number of Eclipse plug-ins. For those that want to experiment with SLCO, a description of the language, an installation guide, and an Eclipse workspace containing all grammars, metamodels, templates, and model transformations related to SLCO are available.

Publications Concerning SLCO

SLCO is featured in a number of scientific publications. The applications of SLCO, the development of the language, and the development of the associated model transformations are described in the following publications.

Reusable and Correct Endogenous Model Transformations, Suzana Andova, Mark van den Brand, and Luc Engelen, Proceedings of the fifth International Conference on Model Transformation (ICMT 2012), Prague, Czech Republic, May 2012.
Prototyping the Semantics of a DSL using ASF+SDF: Link to Formal Verification of DSL Models, Suzana Andova, Mark van den Brand, and Luc Engelen, Proceedings of the second workshop on Algebraic Methods in Model-Based Software Engineering (AMMSE 2011), Z├╝rich, Switzerland, June 2011.
Using a DSL and Fine-grained Model Transformations to Explore the Boundaries of Model Verification, M.F. van Amstel, M.G.J. van den Brand, and L.J.P. Engelen, Proceedings of the third workshop on Model-Based Verification and Validation (MVV 2011), Jeju Island, South Korea, June 2011.
Using a DSL and Fine-grained Model Transformations to Explore the Boundaries of Model Verification -- Extended Abstract. M.F. van Amstel, M.G.J. van den Brand, and L.J.P. Engelen, Proceedings of the seventh workshop on Advances in Model Based Testing (A-MOST 2011), Berlin, Germany, March 2011.
An Exercise in Iterative Domain-Specific Language Design, Marcel van Amstel, Mark van den Brand, and Luc Engelen, Joint ERCIM workshop on Software Evolution and International Workshop on Principles of Software Evolution (IWPSE-EVOL 2010), September 2010.

Additionally, SLCO is used as an example in the following publications.

Incremental Formal Verification for Model Refining, Anton Wijs and Luc Engelen, Proceedings of the 9th Workshop on Model-Driven Engineering, Verification and Validation (MoDeVVa'12), Innsbruck, Austria, October 2012.
MDE basics with a DSL focus, Suzana Andova, Mark G.J. van den Brand, Luc J.P. Engelen, and Tom Verhoeff, 12th International School on Formal Methods for the Design of Computer, Communication, and Software Systems (SFM 2012), June 2012.

Finally, the development of SLCO and its model transformations as well as the resulting publications form the basis of parts of the following PhD theses.

From Napkin Sketches to Reliable Software, L.J.P. Engelen, Technische Universiteit Eindhoven, December 2012.
Assessing and Improving the Quality of Model Transformations, M.F. van Amstel, Technische Universiteit Eindhoven, January 2012.