Software Engineering-Extensions for Real-Time Systems


Many software applications are time dependent and process as much or more control- oriented information as data. A real-time system must interact with the real world in a time frame dictated by the real world. Aircraft avionics, manufacturing process control, consumer products, and industrial instrumentation are but a few of hundreds of real-time software applications.

To accommodate the analysis of real-time software, a number of extensions to the basic notation for structured analysis have been defined. These extensions, developed by Ward and Mellor  and Hatley and Pirbhai , enable the analyst to represent control flow and control processing as well as data flow and processing.

Ward and Mellor Extensions

Ward and Mellor extend basic structured analysis notation to accommodate the following demands imposed by a real-time system:
Information flow is gathered or produced on a time-continuous basis.
Control information is passed throughout the system and associated control processing.
Multiple instances of the same transformation are sometimes encountered in multitasking situations.
Systems have states and a mechanism causes transition between states.

In a significant percentage of real-time applications, the system must monitor timecontinuous information generated by some real-world process. For example, a realtime test monitoring system for gas turbine engines might be required to monitor turbine speed, combustor temperature, and a variety of pressure probes on a continuous basis. Conventional data flow notation does not make a distinction between discrete data and time-continuous data. One extension to basic structured analysis notation, shown in figure, provides a mechanism for representing time-continuous data flow. The double headed arrow is used to represent time-continuous flow while a single headed arrow is used to indicate discrete data flow. In the figure, monitored temperature is measured continuously while a single value for temperature set point is also provided. The process shown in the figure produces a time-continuous output, corrected value.

The distinction between discrete and time-continuous data flow has important implications for both the system engineer and the software designer. During the creation of the system model, a system engineer will be better able to isolate those processes that may be performance critical (it is often likely that the input and output of time-continuous data will be performance sensitive). As the physical or implementation model is created, the designer must establish a mechanism for collection of time-continuous data. Obviously, the digital system collects data in a quasi-continuous fashion using techniques such as high-speed polling. The notation indicates where analog-to-digital hardware will be required and which transforms are likely to demand high-performance software.

In conventional data flow diagrams, control or event flows are not represented explicitly. In fact, the software engineer is cautioned to specifically exclude the  representation of control flow from the data flow diagram. This exclusion is overly restrictive when real-time applications are considered, and for this reason, a specialized notation for representing event flows and control processing has been developed. Continuing the convention established for data flow diagrams, data flow is represented using a solid arrow. Control flow, however, is represented using a dashed or shaded arrow. A process that handles only control flows, called a control process, is similarly represented using a dashed bubble.

Control flow can be input directly to a conventional process or into a control process. Figure below illustrates control flow and processing as it would be represented using Ward and Mellor notation. The figure illustrates a top-level view of a data and control flow for a manufacturing cell. As components to be assembled by a robot are placed on fixtures, a status bit is set within a parts status buffer (a control store) that indicates the presence or absence of each component. Event information contained within the parts status buffer is passed as a bit string to a process, monitor fixture and operator interface. The process will read operator commands only when the control information, bit string, indicates that all fixtures contain components. An event flag, start/stop flag, is sent to robot initiation control, a control process that enables further command processing. Other data flows occur as a consequence of the process activate event that is sent to process robot commands.

In some situations multiple instances of the same control or data transformation process may occur in a real-time system. This can occur in a multitasking environment when tasks are spawned as a result of internal processing or external events. For example, a number of part status buffers may be monitored so that different robots can be signaled at the appropriate time. In addition, each robot may have its own robot control system. The Ward and Mellor notation used to represent multiple equivalent instances simply overlays process (or control process) bubbles to indicate multiplicity.
Share this article :
 
Copyright © 2012. Best Online Tutorials | Source codes | Programming Languages - All Rights Reserved