Contents

Introduction

SDL (Specification and Description Language) is a powerful modelling language for visually yet formally describing state machines. As any programming language, SDL comes with a textual syntax, but in addition has an intuitive graphical notation that can be used to build models using interactive editors. The well-defined semantics of SDL makes it a good candidate for describing the behaviour of embedded, real-time systems.

The standard has been established by ITU-T under reference Z100. Among others, it is widely used in the telecommunication industry. See [1] for more information.

Thanks to its formalism, its well-defined concepts and ease of use, the SDL language is sized for the production of safe, robust software.

TASTE now includes an open-source SDL graphical editor that generates Ada code. It is free software, implemented in Python with the Qt graphical framework. The name "OpenGEODE" was chosen as a tribute to the former ObjectGEODE tool, which has unfortunately been discontinued several years ago. OpenGEODE is freely inspired from the ergonomy of its ancestor, and is trying to show how modern languages and tools can help providing a great user experience to programmers, even those who are not enclined to use a visual approach for development.

Important notice:

We are developing OpenGEODE as a technology demonstrator. Please consider it as such, and use it for your lab experiments, discovery of SDL, and for enriching your understanding of embedded, communicating systems. SDL and ASN.1 are powerful languages. They are also excellent languages that can be studied to concretely understand what state machines and data types are about.

Feel free to browse the source code here, that was also meant to show how Python and Qt allow, with little effort, to create amazing applications.

For professional applications, we recommend the use of the Pragmadev Studio tool, possibly in combination with TASTE. It is a complete, large scale tool that comes with commercial support. A free version of the tool exists for evaluation, check it out!

OpenGEODE Features

Graphical editor of SDL processes and procedures. The communication diagram is captured with the TASTE interface view editor.

SDL2010 features: FOR loops in task symbols, hierarchical and parallel states

Reads and save .pr files (textual SDL notation), with CIF support for the graphical information

Supports ASN.1 data types, including the Value notation - check this page to know more about our ASN.1 compiler and tools

Supports a subset of symbols that are sufficient to develop real-time applications (excluding the SAVE symbol)

Why SDL and OpenGEODE ?

SDL has formal semantics and syntax. It has yet a simple textual syntax and advanced checking capabilities. Because SDL uses ASN.1 data types, many checks are possible with SDL that do not exist with most other programming languages.

Non-determinism is detected by the tool as error.

Here are examples of errors caught by the tool. If you declare these variables: