Graphical product-line configuration of nesC-based sensor network applications using feature models - Niederhausen, Matthias (Kansas State University, 2008)
Developing a wireless sensor network application includes a variety of tasks, such as coding of the implementation, designing the architecture and assessing availability of hardware components, that provide necessary capabilities. Before compiling an application, the developer has to configure the selection of hardware components and set up required parameters. One has to choose from among a variety of configurations regarding communication parameters, such as frequency, channel, subnet identifier, transmission power, etc.. This configuration step also includes setting up parameters for the selection of hardware components, such as a specific hardware platform, which sensor boards and programmer boards to be used or the use of optional services and more. Reasoning about a proper selection of configuration parameters is often very difficult, since there are a lot of dependencies among these parameters which may rule out some other options. The developer has to know about all these constraints in order to pick a valid configuration. Unfortunately, the existing makefile approach that comes with nesC is poorly organized and does not capture important compatibility constraints. The configuration of a particular nesC application is distributed in multiple makefiles. Therefore a developer has to look at multiple files to make sure all necessary parameter are set up correctly for compiling a specific application. Furthermore without analyzing all makefiles it is unclear what the total configurability of a nesC application is and what options and parameters are provided (e.g. is there a parameter for enabling secure communication). In addition to this, the makefile approach tends to be error-prone, since the developer has to type in variable names and values manually, that match the existing implementation. However, the existing configuration system does not capture important compatibility constraints, such as capabilities of selected hardware components. This thesis proposes the use of feature models to configure nesC-based sensor network applications. We provide a tool-supported framework to model valid configurations and a generator that translates this model into a makefile compatible with existing nesC infrastructure. The framework automatically rules out selection of incompatible features using a build-in constraint language. Since all variables are defined in the model, misspellings of variable names are reduced and their domains are clearly defined because most variables come with all its possible options. A developer just needs to choose one or more of them by enabling certain features, where the problem of cardinality is also handled by the model. We show a detailed analysis of nesC's variability domain and how to use feature models to cover the exact behavior of nesC's makefile approach. In a following chapter we simplify our feature model and include the selection of specific hardware components, its capabilities and its dependencies. The feature model and the makefile generator offer a convenient way to configure nesC applications, that is faster, easier to understand and to handle, more transparent and once implemented it gives the possibility to adopt this configuration tool to an existing development environment.
Keywords: Feature model; Sensor network; nesC; Makefile; Computer Science (0984); Information Science (0723)