Design Methods For Real-Time Systems In Ada (original) (raw)

Whether in commercial or military applications, no real-time system can simply be coded straight-away from the requirements. A method is needed to enable system designers to move from a requirements statement through a decomposition of the problem, to a system architecture, and then to an identification and specification of system components. For real-time systems, a design method must help identify concurrency and shared access to resources. The products of a design method should enable low-level design and coding assignments to be distributed to programmers. In many cases, the programmers will be required to code in Ada 1 , a language developed with concurrent, real-time systems in mind. Several methods exist for designing real-time systems that will be implemented in Ada. This paper helps a designer to choose between two such design methods. One method, developed by Nielsen and Shumate at the Hughes Aircraft Company, aims specifically at large, real-time systems that will be implemented in Ada. 2,3 The second method, devised by Gomaa, applies more generally to real-time systems, but includes some optional steps when the implementation language is Ada. 4,5,6 For each method, this paper compares the goals, the underlying assumptions, the design steps, and the resulting products. Then, the two design methods are evaluated , and one of the methods is recommended for designing real-time control systems that will be implemented with Ada. First, the Nielsen and Shumate method is reviewed. Designing Large Real-Time Systems With Ada Nielsen and Shumate have devised a method for designing large, real-time systems with Ada concepts and constructs. Nielsen and Shumate argue that: Ada requires a new design method for real-time systems since it differs from conventional language/executive combinations in two important ways: (1) concurrency and process communication are inherent in the language and do not require a separate RTE [Real-Time Executive]; and (2) the nature of the tasking model is different from current popular approaches used for task scheduling, communication, and synchronization.[3, p. 696]