Embedded systems are hardware/software systems built into devices that are not necessarily “recognized” as computerized devices, but these systems do control the functionality and perceived quality of these devices. Some specific examples of embedded systems include: controllers for the ABS of a car or the operation of its engine; the automatic pilot of an aircraft; the chip set and software within a set-top box for a digital TV; a pacemaker; chips within telecom switching equipment; ambient devices, and control systems embedded in process plants (including its sensors, actuators, control algorithms, filters, etc).
The importance of embedded systems is growing continuously. Exponentially increasing computing power (Moore’s law), ubiquitous connectivity and convergence of technology have resulted in hardware/software systems being embedded within everyday products and places. Already today 90% of computing devices are in Embedded Systems and not in PCs. The growth rate in embedded systems is more than 10% per annum and it is forecasted there will be over 40 billion devices (5 to 10 embedded devices per person on earth) worldwide by 2020. Today 20% of the value of each car is attributed to embedded electronics and this will increase to an average of 35-50% by 2020. Moreover, the value added to the final product by embedded software is often orders of magnitude higher than the cost of the embedded devices themselves.
The design of embedded systems requires an interdisciplinary approach of both Computer Science as well as Electrical Engineering. The master’s programme Embedded Systems combines expertises from both fields and is also open to students from both bachelor orientations. Four key attributes that we believe are characteristic for the 3TU Master Embedded Systems are: resource boundedness, dependability, systems design approach, and multi-disciplinary.
The most distinguishing characteristic of an embedded system, as opposed to a ”normal” ICT system, is that it is embedded in a physical environment that poses constraints on the operation of the system. Characteristic for Embedded Systems is their resource boundedness, where resources can be: cost of devices, chip area, size, response time, energy costs, but also development costs. In embedded systems the designers have to face these resource constraints. Therefore, next to functional specifications they have to deal with non-functional (or extra-functional) properties determined by the application domain.
A second aspect is that embedded systems are often functioning independently and should in their functioning be dependable. Our society has become increasingly dependent on complex, distributed embedded systems. Systems must continually provide services in the face of harsh environmental conditions, partial system failures or loss of resources, and human errors. People will no longer tolerate products that do not meet a certain level of dependability. Many Embedded Systems have tight cost constraints that make traditional dependability techniques infeasible. Adding additional hardware for fault tolerance mechanisms such as dual or triple modular redundancy often cannot be justified. Moreover, embedded systems are often software intensive. Millions of lines of code in an embedded system are not an exception. The use of embedded systems sometimes requires a software quality that is far better than that of common software (e.g. pacemakers, brake-control components, etc.).
A third aspect is that for the design of embedded systems a systems design approach is required that mixes functional and non-functional requirements right from the start. Embedded Systems can no longer be designed as two separate threads of hardware and software that are merged at a later stage. Central to this approach is the need to understand the interaction of the embedded system with its physical and network environments. This point of view requires engineering teams that possess skills in a wide range of disciplines such as: computer science, electrical engineering, real-time computing, computer architecture, control and signal processing, computer networking, mathematics, etc. Creating these cross-disciplinary skills requires fundamental changes in engineering education. The scientific challenge to the embedded systems engineers is to learn how to successfully integrate these different domains. Systems design is therefore a key characteristic of our embedded systems curriculum.