Skip to document

Real-time software Engineering

Real-time software Engineering
Course

Software Engineering (CSPC 111)

140 Documents
Students shared 140 documents in this course
Academic year: 2022/2023
Uploaded by:
Anonymous Student
This document has been uploaded by a student, just like you, who decided to remain anonymous.
Don Mariano Marcos Memorial State University

Comments

Please sign in or register to post comments.

Preview text

Real-time software Engineering

Computers are used to control a wide range of systems from simple domestic machines, through games controllers, to entire manufacturing plants. These computers interact directly with hardware devices. Their software must react to events generated by the hardware and often issue control signals in response to these events. These signals result in an action, such as the initiation of a phone call, the movement of a character on the screen, the opening of a valve, or the display of the system status. The software in these systems is embedded in system hardware, often in read-only memory. It responds, in real time, to events from the system’s environment. By real time, I mean that the software system has a deadline for responding to external events. If this deadline is missed, then the overall hardware–software system will not operate correctly.

Embedded software is very important economically because almost every electrical device now includes software. There are therefore many more embedded software systems than other types of software systems. Ebert and Jones (Ebert and Jones 2009) estimated that there were about 30 embedded microprocessor systems per person in developed countries. This figure was increasing between 10% and 20% per year. This suggests that, by 2020, there will be more than 100 embedded systems per person.

Responsiveness in real time is the critical difference between embedded systems and other software systems, such as information systems, web-based systems, or personal software systems, whose main purpose is data processing. For non–real-time systems, the correctness of a system can be defined by specifying how system inputs map to corresponding outputs that should be produced by the system. In response to an input, a corresponding output should be generated by the system and, often, some data should be stored. For example, if you choose a create command in a patient information system, then the correct system response is to create a new patient record in a database and to confirm that this has been done. Within reasonable limits, it does not matter how long this takes.

However, in a real-time system, the correctness depends both on the response to an input and the time taken to generate that response. If the system takes too long to respond, then the required response may be ineffective. For example, if embedded software controlling a car’s braking system is too slow, then an accident may occur because it is impossible to stop the car in time.

Therefore, time is fundamental in the definition of a real-time software system:

A real-time software system is a system whose correct operation depends on both the results produced by the system and the time at which these results are produced. A “soft real-time system” is a system whose operation is degraded if results are not produced according to the specified timing requirements. If results are not produced according to the timing specification in a “hard real-time system,” this is considered to be a system failure.

Timely response is an important factor in all embedded systems, but not all embedded systems require a very fast response. For example, the insulin pump software that I have used as an example in several chapters of this book is an embedded system. However, while the system needs to check the glucose level at periodic intervals, it does not need to respond very quickly to external events. The wilderness weather station software is also an embedded system, but, again, it does not require a fast response to external events.

As well as the need for real-time response, there are other important differences between embedded systems and other types of software system:

  1. Embedded systems generally run continuously and do not terminate. They start when the hardware is switched on, and execute until the hardware is switched off. Techniques for reliable software engineering, as discussed in Chapter 11,may therefore have to be used to ensure continuous operation. The real-time system

critical behavior at all times. This often leads to a conservative approach to design where tried and tested techniques are used instead of newer techniques that may introduce new failure modes.

Real-time embedded systems can be thought of as reactive systems; that is, they must react to events in their environment (Berry 1989; Lee 2002). Response times are often governed by the laws of physics rather than chosen for human convenience. This is in contrast to other types of software where the system controls the speed of the interaction. For example, the word processor that I am using to write this book can check spelling and grammar, and there are no practical limits on the time taken to do so.

Was this document helpful?

Real-time software Engineering

Course: Software Engineering (CSPC 111)

140 Documents
Students shared 140 documents in this course
Was this document helpful?
Real-time software Engineering
Computers are used to control a wide range of systems from simple domestic
machines, through games controllers, to entire manufacturing plants. These computers
interact directly with hardware devices. Their software must react to events generated
by the hardware and often issue control signals in response to these events. These
signals result in an action, such as the initiation of a phone call, the movement of a
character on the screen, the opening of a valve, or the display of the system status. The
software in these systems is embedded in system hardware, often in read-only memory.
It responds, in real time, to events from the system’s environment. By real time, I mean
that the software system has a deadline for responding to external events. If this
deadline is missed, then the overall hardware–software system will not operate
correctly.
Embedded software is very important economically because almost every electrical
device now includes software. There are therefore many more embedded software
systems than other types of software systems. Ebert and Jones (Ebert and Jones 2009)
estimated that there were about 30 embedded microprocessor systems per person in
developed countries. This figure was increasing between 10% and 20% per year. This
suggests that, by 2020, there will be more than 100 embedded systems per person.
Responsiveness in real time is the critical difference between embedded systems and
other software systems, such as information systems, web-based systems, or personal
software systems, whose main purpose is data processing. For non–real-time systems,
the correctness of a system can be defined by specifying how system inputs map to
corresponding outputs that should be produced by the system. In response to an input,
a corresponding output should be generated by the system and, often, some data
should be stored. For example, if you choose a create command in a patient information
system, then the correct system response is to create a new patient record in a
database and to confirm that this has been done. Within reasonable limits, it does not
matter how long this takes.