Engineering of complex distributed real-time applications is one of the har
dest tasks faced by the software profession today. All aspects of the proce
ss, from design to implementation, are made more difficult by the interacti
on of behavioral and platform constraints. Providing tools for this task is
likewise not without major challenges. In this paper, we discuss a tool su
ite which supports the development of complex distributed real-time applica
tions in a suitable high-level language (CRL). The suite's component tools
include a compiler, a transformer-optimizer, an allocator-migrator, a sched
ulability analyzer, a debugger-monitor, a kernel, and a (simulated) network
manager. The overall engineering approach supported by the suite is to pro
vide as simple and natural an integrated development paradigm as possible.
The suite tools address complexity due to distribution, scheduling, allocat
ion and other sources in an integrated manner (largely) transparent to the
developer. To reflect the needs of propagation of functional and nonfunctio
nal requirements throughout the development process, a number of robust cod
e transformation and communication mechanisms have been incorporated into t
he suite. To facilitate practical use of the suite, the developed programs
compile-transform to a safe subset of C++ with appropriate libraries and ru
ntime support. (In this safe subset (C++) the use of pointers is minimized.
Aliases are not allowed. Unconstrained storage and time allocation is not
allowed, and constructions which lead to arbitrarily long executions or del
ays (due to time or other resource allocation use) are not permitted. Other
safe features include strong typing (including constrained variants) only,
no side-effects in expressions or functions, etc.).