Estelle Development Toolset

Welcome to the EDT home page!

[ Institut National des Télécommunications | Dept Software Networks | EDT Contact | Webmaster ]
Estelle Development Toolset (EDT) / Updated 18 August 2000

Release: EDT 4.3

EDT 4.3 adds to the many new functionalities of version 4.2, and includes the following major features:
  • Message Sequence Chart generation in edb.
  • The linux version is compiled with new kernel libraries.
  • Integration of the Estelle Graphical Editor into the toolset.

Introduction to EDT

The EDT (Estelle Development Toolset) is a set of tools for specifying and analysing complex communicating systems specified using the Formal Description Technique Estelle (more information here).

EDT 4.3 runs on PC machines under LINUX 2.0.35 version and later

The EDT tools are protected by a licence key. If you would like to acquire a regular license for EDT please fill out and return the order form at the end of this document to Jean-Luc Raffy.

EDT is also available for FREE for evaluation purposes for a period of one month (non-renewable). In the evaluation version you are given one simulataneous access to each tool. The evaluation version is available via ftp here.

For more technical information on Estelle and the EDT tools, read on.

[ TOP ]

EDT Technical Information

ESTELLE is a formal description technique (language) for specifying distributed, concurrent information processing systems with a particular application in mind, namely communication protocols and services.

Estelle can be briefly described as a technique that is based on an extended state transition model, i.e., a model of a nondeterministic communicating automaton extended by the addition of Pascal language. Estelle may be viewed as a set of extensions to ISO standardised Pascal (ISO International Standard 7185), level 0, that models a specified system as a hierarchical structure of communicating automata that:

  • may run in parallel, and
  • may communicate by exchanging messages and by sharing, in a restricted way, some variables.
The complete description of Estelle, both syntax and semantics, is given in ISO International Standard 9074.

The ESTELLE DEVELOPMENT TOOLSET (EDT) is composed of the following tools:

All above tools are integrated within an X11 Window Interface. 

The tools are written in C, apart from the graphical editor and MSC trace tool, which are implemented in Tcl/Tk.

The EDT tools need a minimum of 8MB of internal memory for execution. User disk space for real-life Estelle specifications is about 20MB. About 7MB of disk space must be reserved for storing the EDT package itself.

The set of tools presented here has been used for the specification and development of many protocols, including FTAM, OSI-TP, CMIP, TP0, TP2, SSCOP and XTP.

More than 30 Universities, Research Centres and Industrial Laboratories around the world (Australia, Brazil, Canada, Finland, France, Germany, Hong Kong, Poland, Romania, South Africa, Sweden, USA) are licensed to use the EDT tools, including:

  • University of Delaware, Newark, DE, USA
  • Concordia University, Montreal, Canada,
  • Centro Studi e Laboratori Telecomunicazioni (CSELT), Mobile Service Department, Torino, Italy
  • Joint Interoperability Test Comand (JITC)- Open Systems Environment Test Laboratory, Ft. Huachuca, AZ, USA
Bull S.A. is the owner of the C code generator, of the simulator/debugger and is a co-owner with MARBEN of the translator. 

Bull S.A. has authorised GET (Groupe des Ecoles des Télécommunications), acting on behalf of INT (Institut National des Télécommunications) to commercialise the translator, the C code generator, and the simulator/debugger. 

MARBEN is the owner of the implementation motor and has authorised INT to commercialise it.

FRANCE TELECOM is the owner of the browser, the pretty printer, the tables generator and the X-Window Interface (XEDT), as well as certain extensions to the simulator/debugger and the splitter.

FRANCE TELECOM has authorized INT to commercialize the browser, the pretty printer, the tables generator and X-Window Interface.

INT is the owner of the the distributed specification generator (splitter), the decompiler, the test driver generator, the distributed implementation libraries, the MSC trace generator, the Graphical Editor, and various extensions of the tools.

[ TOP ]

The EDT Tools

Estelle Compiler

The Estelle Compiler translates an Estelle specification into C language source code. The compiler consist of the following two tools:
  • a translator (Estelle Translator) which given an Estelle specification returns the specification representation in so called Intermediate Form (IF) augmented with information resulting from a complete analysis (lexical, syntactical and semantical) of the specification. The translator was designed using the automatic tool SYNTAX developed in INRIA.
  • a C code generator (Estelle Generator) which given the Intermediate Form representation of an Estelle specification returns C-code for the specification.
The two parts of the compiler may be used separately or chained one after another to produce C-code directly from source Estelle text. The term "compiler" refers to the chained usage.

A special library giving a procedural interface to the Intermediate Form (IF) is available enabling the users to design their own tools (e.g., a C++ code generator).

The output of the Estelle Compiler mainly contains a portable, operating system independent, C representation of the components of source Estelle specification.

This generated code may be executed under the control of either the simulator/debugger or an implementation motor, which serves as the interface to a given operating system.

The implementation motor is a set of precompiled, specification independent, run-time support routines to be linked to the generated code to produce an executable program. The implementation motor for the UNIX operating system was developed by MARBEN. MSDOS and OS/2 versions of the implementation motor also exist.

The Estelle-to-C compiler (Ec) was developed by BULL S.A. based on the functional specification carried out within the European Esprit SEDOS (No.410) project. Some extensions of Ec have been developed by INT.

Estelle Simulator/Debugger (Edb)

The Estelle simulator/debugger (Edb) is an interactive symbolic simulator/debugger. The input of Edb is the Estelle specification source, the associated intermediate form and the result of the compilation of the generated C code. Edb simulates the execution of an Estelle specification in accordance with the Semantic Model defined in the ISO 9074 standard.

The purpose of Edb is to help the user in discovering and correcting errors that occur during the execution of an Estelle specification. The user may control, observe and trace the execution of the specification by means of the simulation commands.

In accordance with the "transition atomicity" principle of the Estelle Semantic Model, the unit of execution in Edb is a simple transition. All sorts of nondeterminism inherent to an Estelle description are resolved during the simulation by a random selection if treated without any user intervention. Special commands are offered by the simulator/debugger to control some of these nondeterministic choices in an interactive manner.

Edb offers powerful means (macro-commands, observers) to describe a simulation scenario (including the specification of anomalies to be detected), and it does not require the user to have any particular knowledge of how the simulation is implemented. The user can concentrate fully on the properties he wants to verify or detect.

There are three major and interrelated fields of application of the Estelle simulator/debugger:

(1) The analysis and validation of "global" properties of the simulated specification by means of its execution in a simulated environment. According to the Estelle semantic model, the unit of execution is a transition. This means that the user may observe the overall effects of executing transitions with respect to communication between the system components (module instances). In that sense the simulation concentrates on "global" system behaviour, and it provides means to detect and eliminate "logical" design errors (e.g., deadlocks, undesired sequences of transitions, etc.).

(2) The indication of run-time errors and warning situations while executing a transition or evaluating a transition's enabling condition (the errors or warning situations are caused, for instance, by an uninitialized variable, division by zero, lost output, etc.). This classical debugging facility complements that of (1) in that it detects "local" (with respect to a transition) errors that can influence global behaviour.

(3) The simulation and debugging, in the sense of (1) and (2), of Estelle specifications extended with "time constraints" defined by the user, i.e., with the average speed of a module instance or a subsystem explicitly specified (e.g., average execution time of transitions). These time constraints may reflect known execution speeds of components of a real computer architecture in which a specification is to be implemented. In this way implementation dependent problems related to performance may be studied in a simulated environment.

By default there are no time-constraints in Estelle (i.e., the execution time of each transition is assumed "infinitely small" or, as it is usual to say, zero). Thus, no execution speed is taken into account and all potential time relationships are represented. In this default case only relative values of "time-outs" (delays specified in transitions) are considered. This agrees with Estelle semantics, which treats time relationships as implementation dependent.

MSC trace generator

During the edb simulation session the user may request to generate multiple on-line Message Sequence Chart (MSC) views, individually parametrised. 

A tree module/body structure is displayed in a window with some complementary objects namely, interaction points (external, internal) and associated output interactions. The user may select the tree type (static, dynamic). The static structure (by default) corresponds to the generic (textual) module/body structure and a dynamic structure corresponds to the current module instance structure.

The tree may be displayed also in a compact way (the space reserved to modules is no more disjoint) and all identifiers may be compressed. The user may also select spacing between displayed objects (horizontal, vertical) . By default the displayed tree is static, not compact and the identifiers are not compressed.

By default all interactions will be displayed in MSC views (all are selected). To filter some of them the user has to click on an object. If it is an interaction, then only this interaction will be filtered. If it is another object, then all descendent objects (and associated interactions) are filtered. 

The filtering may be done on static or dynamic tree in any moment of the simulation (provided a new MSC view has been requested at this moment). Filtering an object on static structure leads to filter such objects in all module instances. 

Edb was developed by BULL S.A. based on the functional specification carried out within the Esprit SEDOS (No.410) project. Many extensions of Edb have been developed by INT, in particular the MSC trace generator and performance studies (partially supported by CNET).

Universal Generator (Ug)

The Universal Generator is a tool which permits the user to:
  • generate from a given Estelle specification a modified one in which some selected module bodies are replaced by so-called universal bodies (Universal test drivers generator - Utdg)
  • generate from (split) an Estelle specification containing 'n' subsystems i.e., modules attributed 'systemprocess' or 'systemactivity' (Distributed Specification Generator - splitter) into:
    1. n Estelle specifications each containing one of the subsystems and a special interface (called also "switch board") to the external word,
    2. a supervisor C program
  • generate from an intermediate form the corresponding Estelle specification (decompiler)
  • Each particular function of the Universal Generator may be viewed as a separate tool (Test Drivers Generator, Distributed Specification Generator (splitter), Decompiler).

    The decompilation function do not need any further remarks. The splitter function has been aided as a part of a procedure to generate distributed implementations.

    The Universal Test Generator allows automatic generation of interactive test drivers for any "open" Estelle specification.

    A system specified in Estelle is frequently "open" in that it can cooperate with some systems (an environment) not defined within the same specification. For example, a protocol entity of the i-th layer specified in Estelle cooperates with the (i-1)-th and (i+1)-th layers' entities, which are not specified within the same specification.

    To validate (to test) an open system, its specification has to be completed with modules of the environment (test drivers), capable of sending sequences of interactions to the system to test its reactions and/or to respond to its requests. In this case a testing module is associated with every interaction point of the open system under test.

    The task of specifying the environment (test driver modules) is usually time consuming. Also, to enlarge or to restrict a set of test sequences that a module may produce can be laborious. In addition, in many situations, one would like to start executing (testing) a system while it is still being designed, even before it is completely specified. The UTDG (Universal Test Drivers Generator) tool helps the user in all such situations by automatically completing a specification in a desired way and enabling its interactive prototype execution.

    The completion is done by requesting the tool to generate "universal" bodies for those module-headers of the specification that are indicated by the user. The term "universal" means that the generated module body is capable of accepting and sending any interaction that is defined, by appropriate channels, for the module interaction points (it also offers the possibility of assigning a value to each of the exported variables of the module if it has any of them defined in its header definition).

    The "universal" bodies for the testing modules might have been automatically created by UTDG replacing existing (possibly "empty") bodies, i.e., in Estelle terms, inserting the <body_definition> part of the scheme:
            body <body_name> for <module_header_name>
    The execution of a specification with some inserted "universal" module bodies is interactive, in that the user, when he gets control, may choose (for any of these modules):

    • an interaction point through which he wants to send an interaction,
    • a name of the interaction to be sent and the values of its parameters,
    • the values of exported variables, if such variables have been declared within the module header.
    It has to be stressed that a "universal" body description may replace ANY module body definition within a given Estelle specification; hence the use of UTDG can be much larger than that suggested above. Testing seems to be the most obivious and important use of the tool. For example, one may put a "universal" module in place of an internal module of a specification, which may be, in general, very useful for an interactive design of the module's final behaviour.

    The development of UTDG was partially supported by ESPRIT Project N0 5341 -- OSI 95.

    State/Event Tables Generator

    The tool permits creation of the state/event tables corresponding to a user-specified body within a specification (generated from the information given in the intermediate form file generated from a specification by Estelle Translator. A state/event table represents a behaviour of a body whose absolute name is given on the top of the table.

    Each column corresponds to a from-state, a stateset or state_list. Each line correspods to an event which is a transition firing condition. In each cell a transition name, to-state(s) and outputs are displayed.

    If the names of objects are to long to fit in a column they abreviations are shown (first and last letters separeted by points. The width of columns can be modified. The name of objects adapts automatically tothe new column width.

    The user can zoom to display all the information of the transitions for each cell of the displayed table.

    The results can be output either on the screen or on a printer (selective printing and global printing modes). The development of this version was partially supported by CNET-France Telecom.


    The Estelle Browser is an interactive tool, which enable the user to generate a so-called high-level-design (hld) views of the specification represented in its Intermediate Form. These views can be then displayed on the screen and registered on a file.

    The 'hld' view consists of the description of the module instance hierarchy and of communication links between the module instances (interaction points) without the description of the modules' behaviour. The 'hld' view corresponds to the specification architecture, in terms of module instances considered until a user-specified DEPTH.

    Pretty Printer

    Estelle Pretty Printer (Epp) takes an Estelle specification and gives it back in a diffrerent (pretty) form. The user may choose several options:
    • the identifiers and keywords may be translated (uppercase, lowercase) or not i.e., kept as they was in the original text
    • the comments in the Estelle original text may be stripped or not
    • the lines width and tabulation size may be selected.

    X11 Windows interface (XEDT)

    XEDT is an X-windows interface for the Estelle Development Toolset (EDT). It was developed under X11R5 using MOTIF 1.2 objects. Its functions are guaranteed when used under the 'mwm' window manager. Experiments have shown that it does work also under 'twm' and others window managers (but problems occurs with 'olvm').

    The following EDT tools are currently integrated under the XEDT interface:

    In addition to the above tools a Viewer tool is also integrated within XEDT.

    In general any number of instances of these tools may be simultaneously invoked and used under the XEDT interface. To know the actual number, please consult the terms of your license to use EDT tools, since this number may be limited. For example, the 'evaluation' license limits the number of simultaneous accesses to each of the EDT tools to just 1.

    The development of this version was partially supported by CNET-France Telecom.

    The graphical editor

    The Estelle/GR editor is graphical window-based interface for defining, editing and viewing an Estelle specification document in the Estelle/GR (graphical) syntax. 

    The editor provides a structured environment which separates Estelle structure and behaviour definitions. It is designed to compliment the Estelle Development Toolset (EDT), in that it can import textual ISO Estelle documents which have been compiled to the EDT intermediate form using ec, and can generate textual ISO Estelle form which can be used as an input to the EDT tools. 

    The graphical editor is integrated with the Estelle compiler (ec), which it uses to detect static specification errors, reducing debugging time dramatically.

    The main functions of the editor are :

    1. Import - Convert a text ISO-Estelle document (in EDT intermediate form) to the Estelle/GR equivalent.
    2. Export - Convert an Estelle/GR document to textual ISO-Estelle form.
    3. Document - Generate postscript output of the Estelle/GR diagrams.
    4. Edit - Provide full-function editing (cut-copy-paste, undo) of an Estelle/GR document.
    5. Explore - Provide an interface and additional views which help understanding n large documents.
    The graphical editor was developed in cooperation with the Data Networks Architecture Laboratory at the University of Cape Town in South Africa. This cooperation was funded in parts by the CNET (France), the Ministre des Affaires Etrangères (France), the Ministre de l?'Education Nationale, de la Recherche et de la Technologie (France), and the Foundation for Research and Development (South Africa).

    [ TOP ]

    Download EDT

    You can download the EDT software via anonymous ftp from this page. If you have any difficulties, you can connect directly to the FTP site at ftp://ftpdsr.int-evry.fr/EDT4.3/.

    NOTE: EDT is protected by licencing software. Once you have downloaded the software you can purchase a regular licence by returning the order form at the end of this document, or request an evaluation license on-line (non-renewable).

    EDT 4.3 binary versions, tar'd and gzipped:

    Linux 2.0 and later, for PC Pentium platform
    [ file linux2.2.13.tgz, size 5131 Kb ]

    The Estelle graphical editor version 2.2.1
    [ Note: Although the EDT ver 4.3 binaries package includes the editor, the most recent version of the editor is to be had here. ] EDT 4.3 user reference manuals:

    EDT General Information

    The EDT Utilities: Universal generator (ug), Pretty printer (epp) and Browser (hld)

    The Estelle-to-C compiler (ec)

    The Estelle Simulator / Debugger (edb)

    The Estelle State/Event tables generator (edoc)

    Intermediate Form Utilisation Principals

    XEDT: The X-Windows Interface for EDT (xedt)

    The Estelle Graphical Editor

    The file 
    contains the instructions for installing EDT.

    In case of technical difficulties please contact Eric Lallet.

    [ TOP ]

    Get the EDT evaluation version

    The EDT evaluation version is available for free for a (non-renewable) period of one month. You can get the EDT evaluation version on-line following the following steps:
    1. Download EDT 4.3 (directions are here)
    2. Install (follow directions in the file README)
    3. Generate a licence key (described below)

    Generating an evaluation licence key

    1. fill the formular at: http://www-lor.int-evry.fr/cgi-bin/xedt,

    3. The licence key is generated from the information you provide, and immediately emailed to your specified address. 
    4. Generation of the licence key requires a hostname and hostid. Instructions on how to determine them are here (just below).

    6. To activate the licence, store the licence key in the file $ESTEL/bin/edt.dat and run the program $ESTEL/bin/edtflexlm

    In case of a technical problem please contact Eric Lallet.

    How to get an hostid:

    For the Sun platform just issue the command: hostid
    For the HP platform issue the command:
    echo `uname -i` 16op |dc
    For the PC_LINUX platform issue the command:
    /sbin/ifconfig|grep HWaddr|tr -s " "|cut -d " " -f5 | tr -d ":"

    How to get an hostname:
    For all platforms issue the command: hostname
    [ TOP ]

    Contact persons

    For details about EDT, buying licences, etc:
    Jean-Luc Raffy
    Departement Logiciels-Réseaux
    Institut National des Télécommunications
    9, rue Charles Fourier
    91011 Evry Cedex, FRANCE
    Tél: +33 (0)1 60 76 44 28
    Fax: +33 (0)1 60 76 47 11
    Mél: jean-luc.raffy@int-evry.fr
    In case of technical difficulties downloading, installing and generating licence keys:
    Eric Lallet
    Departement Logiciels-Réseaux
    Institut National des Télécommunications
    9, rue Charles Fourier
    91011 Evry Cedex, FRANCE
    Tél: +33 (0)1 60 76 44 71
    Fax: +33 (0)1 60 76 47 11
    Mél: eric.lallet@int-evry.fr

    [ TOP ]


    Purchaser details

    Company Representative:

    [   ] University license
    [   ] Full license with [   ] simultaneous accesses 

    Host Identification 


    Authorized Signature: 


    Send this form to Jean-Luc Raffy 

    [ Review the licence conditions ]
    [ How to get a hostid and hostname ]

    [ TOP ]

    EDT Licence conditions

    1. For Universities (restricted use for teaching and non-profit research) the license is free but to cover our expenses the amount of 1000 Euros is requested for each delivery of tools. It includes the delivery of the appropriate documentation. 
    2. For other users the license is NOT free. The price depends on the number of simultaneous accesses required. For each simultaneous access (token) the amount of 1 500 Euros  is charged.

    [ TOP ]