TA-5 is a high-integrity code generator for translating iUML models into C++.
The code generator takes standard executable UML models and produces 100% of the code required to implement the model behaviour. The generated code is single task and the model is executed in a single thread providing a robust and traceable implementation.
The generated code can be run as a "master" within the task so that the scheduling of the model is controlled by TA-5 with call-outs to legacy/library code as required or can be run as a "slave" where control of the task and scheduling is provided by legacy/library code. In either case the model itself can be executed in either a sequential or interleaved mode with other task activities. Although the model is executed by a single thread, users can create multiple threads within the TA-5 task, for example to implement process I/O. TA-5 provides facilities to exchange data and control in a thread-safe manner.
Dynamic memory allocation is used throughout and so there are no inherent limits on task operation (other than total available memory). Users can "tag" specific classes to cause TA-5 to generate additional code to implement indexed lookup and thus maintain high performance.
Example Generated Code
The following Action Language:

is translated to the following C++:

Platform Support
TA-5 is designed to produce highly portable code. It is supplied with run-time libraries that enable adaptation of the code to different operating systems and environments.
Out-of-the-box, TA-5 is shipped with run time adaptations to support the Microsoft Windows (NT/2000/XP) and Sun Solaris operating systems. However, both Kennedy Carter and its clients have made specific adaptations to support a number of other operating systems including Linux, LynxOS and VxWorks as well as proprietary embedded systems.
The generated C++ code makes use of the standard template library (STL). If this is not available with the compiler on the chosen target, Kennedy Carter can supply an alternative template library.
Support for the High Level Architecture (HLA)
The High Level Architecture (HLA) defines a standard environment that allows individual components of a simulation (Federates) to communicate with each other so as to form a larger simulation (A Federation). Federates can exchange information through messages and publish/subscribe mechanisms. In addition, the Run Time Infrastructure (RTI) ensures that all Federates share a common view of the current simulation time.
HLA was originally developed by the US Department of Defense as a way of constructing large scale simulations quickly and effectively by reusing existing components, but has since gained broader acceptance in the wider simulation community.
The HLA variant of TA-5 provides the ability to take the same Platform Independent Models (PIMs) that are used for target code production and (without modification) execute them as part of an HLA simulation. TA-5/HLA takes Executable UML domain models and generates HLA Federates. When running in the HLA environment, the xUML model is able to exchange information with other Federates (which might be other xUML models) using the messaging and publish/subscribe mechanism with the timing features of xUML responding to the simulated time of the Federation.
Variants
TA-5 is supplied in three main variants.
- The Fixed variant consists of the binaries of the code generator and run-time libraries and may be used to deploy iUML applications on targets already supported by Kennedy Carter - currently Windows NT/2000/XP and Solaris.
- The Portable variant additionally provides the source code of the run-time libraries and thus may be used to deploy iUML applications on any target that supports C++. TA-5 has been successfully ported to a number of additional operating systems including Linux, LynxOS and VxWorks.
- The Adaptable variant is provided with full source code of both the run-time libraries and the code generator and thus, in conjunction with iCCG, may be modified to any extent to meet the code generation needs of any particular project or organisation.
In addition an optional variant of TA-5 (described above) provides support for the generation of HLA Federates so that xUML models can be executed as part of a standard simulation environment.
