Ambient Intelligence applications consist of mechanics, electronics, and software. Application intelligence, in particular, is realized via software. These applications must be able to dynamically adapt to different requirements through re-configuration, while ensuring security and safety requirements at any point in time. In addition, the applications must be dynamically portable across heterogeneous platforms. This results in new challenges for software engineering, to include, among others, the areas of construction technology, quality assurance, and code optimization.
With regard to construction technology and quality assurance, the dynamic re-configuration must be supported by precise specification of the individual modules - especially of their non-functional properties - as well as by calculation models for determining the security and performance of the new systems in real-time. Only this can ensure that at the time of re-configuration, the necessary performance characteristics continue to be guaranteed. Concerning code optimization, Ambient Intelligence applications may require microcomputers with limited storage capacity and computing power. During the last few years, software engineering approaches have generally abstracted from such limitations. This was indeed justified due to the increasing performance power of computers. Now such constraints must again be taken into serious consideration. It will be important to provide systematic engineering-style processes that will permit both a guarantee of quality and an optimization of resources, in order to enable sensible usage on microcomputers. The combination of reliability and resource optimization is an absolute necessity, particularly in areas such as eHealth and Smart Cars.