Developing applications for sensor networks is a challenging task. Most programming systems narrowly focus on programming issues while ignoring that programming represents only a tiny fraction of the typical life cycle of an application. Furthermore, application developers face the prospect of investing a lot of time in writing code that has “nothing” to do with the actual application logic. A lot of this code is related to different life cycle concerns such as distributed programming issues or runtime services (e.g. group communication or time synchronisation). In this paper we introduce an engineering method that simplifies the development of sensor network applications by providing comprehensive life cycle support for programming as well as ongoing evolutionary modification of embedded applications throughout the application life cycle. The proposed engineering method is realised in form of a concrete system called RuleCaster. To verify the utility of the engineering method ...