ABSTRACT

Most existing computers do not have a screen, a keyboard,

or a mouse. Instead, they are hidden in innumerable kinds of

objects: automobiles, trains, airplanes, tractors and cranes,

domestic appliances, medical devices, robots, telephones,

cameras, TVs, music players, smartcards. Because of the

flexibility of information processing, computerized systems

are progressively replacing manual, mechanical, and

hydraulic systems. For instance, railways and subways the

world over are being gradually transformed: electronic sig-

naling, switching, and dynamic scheduling are becoming the

rule. In the near future, computerized objects will commu-

nicate with each other without human intervention and will

be networked. For instance, cars will talk to each other and

to the road, which will itself communicate with the city in

order to organize traffic. Autonomous sensors will detect

forest fires or river floods. One can safely predict that there

will be many more autonomous objects than human beings

connected to our networks, including the Internet.[1]

These everyday examples of computing-based systems

highlight that software has become pervasive in our lives.

It helps to entertain us when embedded in iPods and MP3

players. In GPS navigation systems, it helps us get to our

desired location. It is even present in our home appliances

and cell phones. It is used in our defense systems, in space

exploration, in our hospitals. Constantly, we find software

appearing in more and more devices, with public expecta-

tions of greater functionality, reliability, and continued