Real-time Software Design Strategies

Jan 21, 2020

Real-time software design strategies address the three core real-time design concepts that include; finite state machines that determine the control aspect, concurrent tasks that determine a system’s concurrency and information hiding to determine a system’s modifiability and re-usability potential. They also address how each real-time software handles timing constraints.

Designs based on functional decomposition

This design strategy is ideal for real-time structured design and analysis. As the name implies, the system is decomposed into different functions referred to as processes or transformations. The interfaces between the functions are defined as control flows or data flows. Functions like control or data transformations are mapped onto tasks, modules and processors.

Designs based on concurrent task structuring

This design strategy is mainly highlighted by DARTS (Design and Analysis for Real Time Systems) where concurrent tasking is classified as a core aspect in real-time designs. DARTS offers a task structuring criteria that aids real-time system designers to identify concurrent structures with a real-time system. It is also offers guidelines that assist in determining task interfaces.

Designs based on information hiding module structuring

This is a strategy whose aim is to provide maintainable and modifiable software design components that also have a reuse potential. This can be achieved by utilizing the information that is hidden in system design components. It is ideal for object-oriented design method and research lab software cost reduction method.

Designs based on modeling problem domains

The Jackson system development method emphasizes on this design strategy because its main objective is modelling of entities in problem domain and mapping them onto software processes.

DCDS (Distributed Computing Design System) method

DCDS offers a graphical notion for decomposing real-time system design hierarchically, emphasize on events, concurrent and sequential functions. A performance index is provided with each high level function and as the functions are decomposed hierarchically, the performance index which is the maximum allowed time for response, is distributed among low level functions. At the lowest decomposition level, the concurrent and sequential functions are allocated to real-time system components.

PAMELA design method

This method utilizes a hierarchical decomposition approach that is based on data flow diagrams where transformations are decomposed into lowest level concurrent tasks. These tasks and their interfaces are mapped to Ada.

Statecharts

Statecharts or state diagrams are graphical notations for state transition diagrams that decompose hierarchically. They utilize a tool referred to as Statemate that includes module and activity charts. As such, they are ideal for supporting different design and specification methods. For instance, a real-time structured analysis can easily be expressed in Statemate.

Summary

Some of the real-time software design strategies are design notions that suggest ideal approaches to perform decomposition as opposed to providing steps and principles for executing particular designs. As such, there are not strict real-time software design strategies that every software designer must adhere to.