Extensions to real-time object-oriented software design methodologies

Real-time systems are systems where time is considered a system resource that needs to be managed. Time is usually represented in these systems as a deadline to complete a task. Unfortunately, by adding timing to even simple algorithms, it complicates them greatly. Real-time systems are by nature difficult and complex to understand. Object-oriented methodologies have attributes that allow real-time systems to be designed and implemented with less error and some control over the resultant complexity. With object-oriented design, the system is modeled in the environment that it will be used in. Objects themselves, are partitions of the system, into logical, understandable units. In this dissertation, we start by surveying the current real-time object-oriented design methodologies. By comparing these methodologies and developing a set of criteria for evaluating them, we discover that certain aspects of these methodologies still need some work. The most important aspects of the methodologies are understanding the effects of deadlines on statechart behavioral models and understanding the effects of deadlines when object models are inherited or undergo aggregation. The effects of deadlines on statecharts are then explored in detail. There are two basic ways that deadlines are added to statecharts. The first, and most popular, is adding timing as a condition on a state transition. The second is adding a count down timer to a state and forcing a transition if the timer reaches zero. We show that these are equivalent and can be used interchangeably to simplify designs. Next, the effects of deadlines on behavior models when the corresponding object models undergo inheritance or aggregation are studied. We will first analyze the effects on the behavior model when object inheritance is encountered. We found eight ways that the behavior model can be modified and still maintain the properties of inheritance. Finally, deadlines are added and the analysis is repeated.