Automated Testing and Development of WSN Applications
Emerging Communications for Wireless Sensor Networks
Introduction Over the course of time the application range of Wireless Sensor Networks will become more varied and complex. A WSN may consist of several hundred sensor nodes, which are independent processing units equipped with various sensors and which communicate wirelessly. WSNs can be compared to wireless ad-hoc networks, but the sensor nodes are constrained by very limited resources and suit the purpose of collecting and processing sensory data. Therefore it is increasingly important to
... gramme it with the corresponding efficiency. Programming can become more productive and robust, if it is subject to a systematic and structured software development process, which enhances application and accommodates for the sensor network's operating conditions. The pivotal approach for this can be found in the automated Software development process, during which administrational functionalities, which are suitable for the operation of the Sensor Network, are integrated. This constitutes the approach of our proposed Tool-Chain ScatterClipse (Al Saad et al., 2008b) . The architecture centric method of the model driven paradigm (Stahl et al., 2006) is used for the automation. New in this case is that the models are not only used for documentation or visualisation: The semantic and expressive formal models also act as a method to completely and concisely represent important concepts as well as the domain's (platform's) basic conditions. Such specific, yet technology neutral models, are inputted into the configurable code generator and after their validation the corresponding software artefact is generated and distributed to the appropriate platform (wireless sensors nodes). The high degree of automation accelerates the development and testing of applications, which are already running on sensor nodes. Furthermore substitutability and reusability of the software artefacts are increased, because the artefacts, alongside the automated code generation, are represented by their respective models. Both increase the development process's productivity. The model driven code generation is used to furthermore generate a largely tailor made code, so that only the required amount of code is generated for the sensor node's intended roll. Thus the scarce memory space is not only optimised, but also unnecessary calculating and energy intensive software modules are avoided. The decreased portion of manually written code also reduces the possibility of a programmer's careless mistakes. In this process the validation on the model level plays an important role, because 4 www.intechopen.com Emerging Communications for Wireless Sensor Networks 42 the earlier a mistake (bug) is discovered in the development process the more robust and reliant it will become. For automation purposes an appropriate generative infrastructure was developed ScatterFactory (Al Saad et al., 2007a) and ScatterUnit (Al Saad et al., 2008a) , which constitutes the backbone of our platform or Tool-Chain. For the modelling a graphical editor, based on the Eclipse Modelling Framework and the Graphical Modelling Framework (GMF), was developed. For the examination of the basic conditions, which are linked to the respective models, a real time validation was integrated into the editor, which also makes the development process more robust. OpenArchitectureWare (oAW) framework is used as the code generator, where the corresponding code is automatically generated from the inputted model and this code is then deployed onto the deployed sensor nodes. All frameworks are Eclipse platform open source projects. Furthermore the emphasis lies on the integration of essential functionalities, which regard the administration and Management of the Wireless Sensor Network, with the model driven software development process. These shall not be isolated, but shall be seamlessly combined with attributes like configuration, bug fixing, monitoring, user interaction, over the air software updates as well as sensor status visualization (Al Saad et al., 2007b) . This combination potential is an important character of the platform. The realisation of such combinations was achieved by the plug-in oriented architecture in accordance with the Eclipse platform. On the one hand the user can operate certain plug-ins (functionalities) independent from each other, so that a "separation of concerns" is achieved, and on the other hand the user can navigate the different plug-ins collaboratively at the same time, whereby coherence is achieved. In order to improve the platforms productivity, its main features can be accessed in local as well as in remote, or internet based, mode. For this reason one can, for example, operate the administration and configuration from a computer in one location (for instance in a development or test laboratory) while the sensors are deployed in real world conditions (for example an experiment field) in a different remote location. This was realized by an ordinary client/server architecture.