Object-oriented languages, in particular Java, are beginning to make their way into embedded real-time software development. This is for not only the safety and expressiveness of the source language; the mobility and dynamic loading of Java bytecode make it particularly useful in embedded real-time systems.However, using such languages in real-time systems makes it more difficult to predict the worst-case execution time of tasks. Such predictions are necessary for predictable task scheduling in the developed system. Garbage collection, common in object-oriented languages, must be considered; to schedule garbage collection safely, we must know how much memory it has to handle. Dynamic binding in conjunction with dynamic loading of code also needs treatment.We show how techniques for predicting time and memory demands of object-oriented programs are integrated into the Sk?nerost development environment. The environment explicitly targets an iterative development process, which is particularly important in real-time software development since time and memory demands cannot be determined until the code is written. Design changes due to timing problems become more costly as development progresses, and Sk?nerost allows such problems to be detected early.
Index Terms:
Software Development Environments, Real-Time Systems, Worst-Case Execution Time Analysis, Real-Time Java, Object-Oriented Languages
Citation:
Patrik Persson, Görel Hedin, "An Interactive Environment for Real-Time Software Development," tools, pp.57, Technology of Object-Oriented Languages and Systems (TOOLS 33), 2000