The Real-Time Specification for Java (RTSJ) offers developers an attractive platform for development of software that is composed of variously stringent real-time and non real-time tasks. However, the RTSJ introduces a programming model involving several non-intuitive rules and restrictions which make systems modeling and development a complex and error-prone task.
In this chapter we introduce an advanced software engineering technology that allows developers to address these challenges - component-oriented development. In the first part, we present the general concepts and identify the key benefits of this technology.
We further show one of the possible approaches on how to embrace this technology when mitigating the complexities of RTSJ development - the Hulotte framework. The framework provides a continuum between the component-oriented design and implementation process of RTSJ systems.
The RTSJ concepts are treated as first-class entities which enables the modeling and automatized preparation of their implementation by employing code-generation techniques. We conclude this chapter with an extensive case study comparing object-oriented and component-oriented implementation of the Collision Detector Benchmark.
Our empirical evaluation shows that the performance overhead of the framework is minimal in comparison to manually written object-oriented applications without imposing any restrictions on the programming style.