Knowledge-Based Code Clone Approach in Embedded and Real-Time Systems

Knowledge-Based Code Clone Approach in Embedded and Real-Time Systems

Anupama Surendran (Cochin University of Science and Technology, India) and Philip Samuel (Cochin University of Science and Technology, India)
Copyright: © 2013 |Pages: 14
DOI: 10.4018/978-1-4666-4229-4.ch004
OnDemand PDF Download:
$37.50

Abstract

Even though human beings are using computers in their day-to-day activities, the terms embedded and real-time systems have received much attention only in the last few years, and they have become an inevitable part of our daily activities. The most evident and highlighted feature of embedded systems is the consideration of time. The significance of time constraints in designing each and every feature of embedded systems has made the software and hardware of embedded systems more complicated and entirely different from ordinary systems. Due to these reasons, several challenges exist in developing and maintaining embedded and real time software. Increase in complexity of the embedded system code increases the chance of occurrence of defects in the embedded software. Failure to deliver the software within the stipulated time, economic constraints faced during the development and the maintenance phase, inadequate testing, design of improper code and its reuse are some of the issues faced during the embedded system software development phase. In this chapter, the authors suggest a knowledge-based approach in managing the issues that arise during the coding and testing phase of embedded and real-time software. Program slicing is used to detect the code clones present in the embedded software, and a knowledge repository of code clones is created. This code clone knowledge repository is utilized during the coding and testing phase of real-time and embedded software, which in turn improves the whole software development process.
Chapter Preview
Top

Introduction To Real-Time And Embedded Systems

As the software industry is improving day by day, the competition among software companies have also increased. Improving the software quality and productivity improves the software development process and this in turn may help the software companies to manage the competition faced in software industry. Embedded systems are influencing our daily life activities due to their unique properties. In other words, it has become almost impossible for human beings to live without using embedded system applications. For example, the working of most of the household applications like television, washing machine etc. are based on the embedded chips present in them. The communication system of the world is also dependent on embedded chips present in them. Similarly in public transport vehicles like bus, trains etc. embedded processors are present, which controls their working. In effect, embedded systems is having a significant role today’s world (Heath, 1991).

Embedded systems are computing systems with tightly coupled hardware and software integration, which are designed to perform a dedicated function. They can be either stand-alone systems or they will be dependent systems. In standalone type of embedded system, they can work as an independent unit whereas in independent embedded systems, they can do the designated task. Nowadays it has almost become impossible to find a real life application which does not involve embedded application. Some household applications which use embedded chips for their smooth working are shown in Figure 1. Figure 2 shows how embedded systems enable communication across various networks.

Figure 1.

Household applications using embedded systems

Figure 2.

Communication between embedded systems across network

An Embedded system can be defined as a microprocessor based control system, which processes a fixed set of programmed instructions to control the operation of an electromechanical system, which in turn may be a part of a large system. The word ‘embedded’ itself denotes that the device will be mostly embedded or placed inside a larger device or any industrial equipment.

In real-time systems, the functioning depends not only on the output produced by the system, but also on the time constraints defined by the system. Even if correct output values are produced by real-time after the specified time slot, then their output is considered invalid. There are mainly two types of real-time systems. They are hard real-time systems and soft real-time systems. In soft real-time systems, time is not a critical factor which affects the performance of the system. On the other hand in hard real-time systems, time constraint is a critical factor and the results produced after the specified time slot is considered invalid. In real-time systems the system should respond to a stimulus within the specified time constraint. A periodic stimulus occurs at a predefined time interval and aperiodic stimulus occurs at uncertain time intervals.

In Real-time embedded system a combination of embedded system properties and real-time properties are present. Anyway all embedded systems may not have real-time properties and all real-time systems may not be embedded in nature. Figure 3 shows the picture of a real-time embedded system. Real-time embedded systems can be processor based, micro-controller based, DSP based or a general processor based embedded system with predefined time constraints. Some of the examples of real-time embedded systems are nuclear control system, aircraft navigation system, defense system, medical equipment etc. (Kopetz, n.d.) The processor used in real-time embedded systems should be easily flexible, upgradeable, and maintainable. During the design of real-time embedded system factors like cost, memory, reliability, power consumption etc. should be considered.

Figure 3.

Real-time embedded system

Complete Chapter List

Search this Book:
Reset