The following 6 examples have been designed to demonstrate the possibilities of TismTool:
|Airconditioning||This simple demo of an airco system is aimed to control a fan, a cooler and a temperature sensor. Its design contains many features demonstrating the possibilities of the TismTool: concurrent states, submachines, informal guards, threaded component, rendez-vous mechanism, asynchronous communication.|
|Calculator||This demo illustrates the verification between the calculator
API and its user interface.The generated source code of the calculator
logic is linked to a console application as well as to a Windows
This example is inspired by the calculator statechart described in the excellent book "Practical UML Statecharts in C/C++, Second Edition - Event-Driven Programming for Embedded Systems" by Miro Samek, ISBN: 978-0-7506-8706-5. Please, compare the interesting differences between the 2 state machine designs.
|Foreign||This demo illustrates how a generated controller can be integrated with foreign components. It also shows the deployment of both protection mechanisms based on a mutex and on a thread.|
|Howlers||The Howlers demo is an artificial system, purely meant for illustrating problem tracing. The sequence diagrams of the verificaton scenarios exhibit deadlocks, livelocks, queue overflows, synchronisation violations, and unhandled functions.|
|MediaPlayer||This complex controller demo exploits the transaction mechanism to control the lower level Reader and Display components. The threaded controller hence contains 2 proxy subcomponents, making use of the proxy stereotypes for the transitions.|
|Twins||The Twins demo is an example of asynchronous peer-to-peer communication between 2 identical, threaded component instances. Hence, TismTool enables verification of a communication protocol between 2 peers. The demo also contains an application executable.|
All examples have been made with the UML modeling tool MagicDraw (Personal Edition, version 17.0.1) by No Magic, Inc. The UML models of these examples have been designed with C# source code generation in mind. Nevertheless, also Java source code can be generated from the models. The (limited) source code in each model can be easily translated to Java thanks to the included translation tables. Some UML models have been modified slightly to cope with C++ or C.
The development environment for the C# programming language is Microsoft Visual Studio 2008 .
The development environment for the Java programming language is Eclipse (Indigo) under Windows.
Two operating systems have been used for the C and C++ programming languages: Linux (Ubuntu 11.04) and Windows 7. Under Linux the development environment is based on Eclipse (Galileo), whereas under Windows Microsoft Visual Studio 2008 has been applied.
The C++ Run-Time Environment requires additional libraries for interprocess communication and collections. The used C++ Boost library has version 1.47 for Linux and version 1.48 for Windows.
The C Run-Time Environment requires an additional Operating System Abstraction Layer (OSAL) library for interprocess communication. TismTool provides OSAL libraries for Linux and for Windows.