The following technical report is available from
http://aib.informatik.rwth-aachen.de:
Empirical Studies for the Application of Agile Methods
to Embedded Systems
Dirk Wilking
AIB 2008-19
Agile Methods are a collection of software engineering techniques with
specific differences to traditional software engineering processes.
The main differences consist of rapid, cycle based development phases
setting the focus of attention on feedback of the source code being
developed. The results taken from user feedback, software reviews, or
other forms of software evaluation are used as a basis for changes
which comprise for example corrections of the user interface or the
adaption of the software architecture. Based on single techniques
taken from Agile Methods, their application to embedded systems
software engineering is empirically evaluated in this thesis.
The experiments and studies which have been conducted comprise the
techniques of refactoring, short releases, and test driven
development. The results hint to inconclusive effects. For example it
could be shown that a constant effort for functional work is achieved
by using the short releases technique, but its impact on the resulting
software remains difficult to assess. For refactoring a reduced
consumption of memory was found, but this effect was created by an
overhead for applying the refactoring technique itself.
The effect of agile techniques appears to be inferior to individual
software development ability of participants in terms of factor
strength. Consequently, the second part of the thesis aims at creating
variables for the purpose of experiment control. Variables comprise
C language knowledge and viscosity measuring a participant's level of
reluctance to change a fragment of source code.
An additional experiment consists of the replication of the N-version
programming experiment by Knight and Leveson. The original experiment
of independence between two program failures has been extended by an
additional factor of hardware diversity. By using different hardware
platforms, it has been expected to create mutual independent failures
which is not approved by experimental observations.