Cress (Communication Representation Employing Systematic Specification)

Cress logo

See the download page about obtaining this under licence


The current version of Cress is 5.0, dated 14th January 2014.


Cress is an acronym for Communication Representation Employing Systematic Specification. This page is an extract of the full manual. See the Cress home page for an overview of Cress and some references. Cress allows graphical description of (communications) services, translates them into formal languages for rigorous analysis, and translates them into implementation languages for deployment. It supports:

From the user point of view, Cress simplifies service creation to the point of drawing diagrams, clicking buttons and issuing simple commands.

From the developer point of view, Cress is a complex but comprehensive toolset. It is roughly equivalent to six compilers rolled into one, as it supports three diagram editors, six target languages, and five application domains. A relevant quote for Cress might be:

Ὓδραν τέμνεις
("You are cutting into a Hydra", Plato, Republic 426)


The following main tools are provided in the Cress toolset:

Tool Purpose
cadp_annotate annotate Lotos for use by CADP
cress_bpel translate Cress diagrams to BPEL
cress_check check Cress diagrams
cress_cpl translate Cress diagrams to CPL
cress_create create BPEL service archives
cress_deploy deploy BPEL service archives
cress_expand expand macros in Cress diagrams
cress_lola clean up Lola (Lotos) simulation traces
cress_lotos translate Cress diagrams to Lotos
cress_realise specify/implement/deploy Cress diagrams
cress_sdl translate Cress diagrams to SDL
cress_sdt turn a Lola (Lotos) test process into an MSC/PR file for Tau SDT (SDL)
cress_test run JUnit tests on BPEL services
cress_tidy delete temporary Lola (Lotos) and Tau SDT (SDL) files
cress_validate validate Cress diagrams
cress_verify verify Cress diagrams
cress_vxml translate Cress diagrams to VoiceXML
these are Tau Analyzer filters for IN, SIP and VoiceXML; set them as a filter in the Tau SDT Analyzer dialogue

These in turn rely on various Perl modules:

Module Purpose Cress diagram to BPEL/WSDL translator; variants apply for each vocabulary Cress common definitions Cress diagram to CPL translator; Cress lexical analyser (diagram analyser) Cress diagram to Lotos translator; variant code applies for each vocabulary Cress diagram parser (syntax analyser) Cress diagram to SDL translator; variant code applies for each vocabulary Cress diagram to VoiceXML translator Cress vocabularies

The relationship among the main scripts is as follows:

Cress Tool Architecture

Required Environment


To run these tools requires a Unix-like environment and Perl 5. The tools have been run on Unix (Fedora Core 4, NextStep 3.3/OpenStep 4.2, Solaris 7/8) and Windows (XP and 7, under CygWin 1.5/1.7).

Diagram Editor

The best choice is to make use of the Chive graphical editor created for Cress. This is Java-based and should run on many platforms. Virtually all Cress diagrams have been provided in Chive XML format.

If Java is supported on your platform, you can use yEd instead. Download this from yWorks. Diagrams need to be saved in GML format for Cress to use them. yEd will read .gml format as well as its own .ygf format.

If you are able to run NextStep/OpenStep, you can edit and create Cress diagrams. You may be able to download Diagram! and a licence key from the Web, though the author has local copies. The file cress.dpalette2 is a palette for this diagram editor.

Diagrams can be checked individually or in groups by running cress_check.


To deploy and run generated Web Services, you will need Apache Tomcat (e.g. version 5.5.12 onwards) and ActiveBPEL (e.g. version 5.0.2). To test web or grid services requires JUnit 4.0 or later and MySQL 5.0 or later. To deploy and run generated Grid Services, you will also need Globus WS Core (e.g. version 4.2).

ActiveBPEL versions 3.N onwards require a JVM version 1.5. However, by following online advice it is possible to configure ActiveBPEL to work with later JVM versions.


To deploy and run generated CPL, you will need a CPL-capable SIP server such as SER (SIP Express Router) or Vocal.


To analyse and execute the generated specifications, you will need Lola/Topo (e.g. version 3.6 onwards). The author has a version of Lola/Topo compiled for CygWin on Windows and Debian Linux. You might also wish to use CADP (e.g. version 7.1 onwards). Cress descriptions can be verified with Clove (Cress Language-Oriented Verification Environment) and can be validated with Mustard (Multiple-Use Scenario Testing and Refusal Description).


To analyse and execute the generated specifications, you will need Telelogic Tau SDL Suite or SDL/MSC (e.g. version 4.6 onwards).


To deploy and run Cress IVR services, you will need V-Builder and associated packages from Nuance Corporation (e.g. version 1.2 onwards). This is a substantial and complex set of downloads that needs registration and approval by Nuance. At least Nuance V-Builder, Nuance Vocalizer and a Nuance language pack will be needed.


This is not open-source software. The authors (Kenneth J. Turner and others, University of Stirling) retain copyright in it. Nonetheless, the authors will normally approve its use by others subject to the following conditions:

Up arrow Up one level to Graphical Utilities

Web Ken Turner Home   Email    Search Search Web Pages

Last Update: 18th July 2016