A Software Engineering Perspective on Ambient Intelligence