Title :
A development environment for complex distributed real-time applications
Author :
Stoyen, Alexander D. ; Marlowe, Thomas J. ; Younis, Mohamed F. ; Petrov, Plamen V.
Author_Institution :
Dept. of Comput. Sci., Nebraska Univ., Omaha, NE, USA
Abstract :
Engineering of complex distributed real-time applications is one of the hardest tasks faced by the software profession today. All aspects of the process, from design to implementation, are made more difficult by the interaction of behavioral and platform constraints. Providing tools for this task is likewise not without major challenges. In this paper, we discuss a tool suite which supports the development of complex distributed real-time applications in a suitable high-level language (CRL). The suite´s component tools include a compiler, a transformer-optimizer, an allocator-migrator, a schedulability analyzer, a debugger-monitor, a kernel, and a (simulated) network manager. The overall engineering approach supported by the suite is to provide as simple and natural an integrated development paradigm as possible. The suite tools address complexity due to distribution, scheduling, allocation and other sources in an integrated manner (largely) transparent to the developer. To reflect the needs of propagation of functional and nonfunctional requirements throughout the development process, a number of robust code transformation and communication mechanisms have been incorporated into the suite. To facilitate practical use of the suite, the developed programs compile-transform to a safe subset of C++ with appropriate libraries and runtime support. (In this safe subset (C++) the use of pointers is minimized. Aliases are not allowed
Keywords :
distributed programming; object-oriented programming; processor scheduling; program compilers; program debugging; programming environments; real-time systems; resource allocation; software libraries; software tools; C++; CRL; allocation; allocator migrator; behavioral constraints; compiler; complex distributed real-time application engineering; complexity; debugger monitor; development environment; distribution; functional requirements; high-level language; integrated development paradigm; kernel; libraries; network manager; nonfunctional requirements; platform constraints; robust code communication mechanisms; robust code transformation mechanisms; runtime support; schedulability analyzer; scheduling; tool suite; transformer optimizer; Application software; Computer Society; Computer languages; Computer science; Kernel; Process design; Processor scheduling; Real time systems; Resource management; Runtime;
Journal_Title :
Software Engineering, IEEE Transactions on