From the Lab to the Factory Floor: Engineering Software for Wireless Sensor Networks

From the Lab to the Factory Floor: Engineering Software for Wireless Sensor Networks

Christian Scholz (University of Applied Sciences Coburg, Germany), Thomas Wieland (University of Applied Sciences Coburg, Germany) and Christoph Niedermeier (Siemens Corporate Research, Germany)
DOI: 10.4018/978-1-61520-655-1.ch022


Wireless sensor networks consisting of numerous embedded systems with wireless connectivity, called motes, have gained much interest in network-related research involving MAC protocols, routing, or data aggregation. The various projects that have been undertaken so far are mostly in a scientific context; the software development has not taken into consideration appropriate software engineering methods and processes. Practical adoption of this technology in industry, agriculture, building automation, or similar fields of use, requires well-defined software engineering processes. Building a sensor network application is either a systems engineering task if the mote hardware has to be developed as well, or a pure software engineering task if existing hardware is going to be used. Both cases are considered in this chapter. Each phase of the software life cycle is analyzed, and recommendations concerning the proper (software) engineering of wireless sensor networks are made.
Chapter Preview

2. Requirements And Platforms

Development of applications for WSNs is strongly driven by the requirements imposed by the application domain as well as the specific application context. Industrial applications of WSNs exist in quite a number of different domains such as: Factory automation, process automation, predictive maintenance (condition monitoring of machines and facilities), building automation (HVAC control systems, lighting control systems, automatic meter reading), building security (intrusion detection systems, fire alarm systems), and logistics (inventory management, monitoring of goods and means of transportation).

Functional and non-functional requirements have to be investigated separately for each of these domains as there are considerable differences between them. For instance, some applications in the field of factory automation are subject to hard real-time constraints with strict deadlines whereas fire alarm systems and intrusion detection systems have less severe real-time constraints but must be highly reliable and well protected against external attacks that may affect their integrity. As another example: Building automation systems must permit long maintenance intervals in order to be cost-efficient. Thus energy-efficient design of wireless components resulting in a low frequency of battery changes is vital for this domain.

Key Terms in this Chapter

Embedded System Debugging: Is the process of finding and reducing the number of bugs or defect in an embedded system, thus making it behave as expected.

Software Engineering: Is a systematic and disciplined approach to developing software, which applies both computer science and engineering principles and practices to the creation, operation and maintenance of software systems.

Wireless Sensor Networks: Are networks consisting of spatially distributed autonomous sensors that monitor physical or environmental conditions such as temperature, motion or pollutants, and cooperatively past their data through the network to a main location.

Dynamic Software Update: Are software updates that do not require stopping and restarting the software, occurring while the system is running due to the fact that many systems cannot afford to halt service or would prefer not to.

Model-Driven Development: Is a software design and implementation approach that encourages efficient use of models in the software development process, and supports reuse of best practices when creating families of systems. In general, it provides a way to organize and manage software architectures supported by automated tools and services for both defining the models and facilitating transformations between different models, including the automated transformation of the software system specification into automated code generation.

Auto-Configuration: Is the automatic configuration of devices without manual intervention or any need for software configuration programs.

Complete Chapter List

Search this Book: