Real-time systems are supposed to satisfy not only the functional requirements but also the timing constraints imposed on thier behaviors. Timing constraints identified in the requirements phase are typically large-grained since they are concerned with the total elapsed time from the occurrence of an external event to the generation of a system response. On the other hand, timing constraints are expressed in fine-grained manner in the object-oriented implementations in the sense that they are imposed on the member functions or individual program statements. Fine-grained and fixed allocation in the prior design methods tends to decrease the scheduling flexibility and cause the urgency inversion problem.
In order to cope with these problems, we propose a new design method which allows flexible allocation of timing constraints. In our method, timing requirements represented in the Methods Interaction Graph (MIG) model is transformed into a set of timing allocation units (TAUs) each of which consists of a sequence of member functions. By allocating a flexible timing constraint to each TAU, scheduling becomes more flexible and the urgency inversion problem can be avoided. The effectiveness and feasibility of our design method is demonstrated through implementation of TAUs in the real-time object-oriented languages, RTConstraint and RTC++.