This Article 
 Bibliographic References 
 Add to: 
A More Agile Approach to Embedded System Development
May/June 2009 (vol. 26 no. 3)
pp. 50-57
Michael Smith, University of Calgary
James Miller, University of Alberta
Lily Huang, NovATel
Albert Tran, DirectVoxx
Given the plethora of advantages attributed to agile methodologies, why are there only infrequent reports of their application in the embedded systems world? We believe this has two principal causes. First, embedded applications go through a life cycle that differs from desktop life cycles, so that desktop application production processes must be significantly altered to meet the demands of this new domain. Second, without providing for full life-cycle tool support, no change to embedded production processes will ever succeed, and again desktop tools must be adapted to meet the new environment's constraints. Here, the authors discuss their thoughts on an XP-inspired embedded life cycle and their successes in developing, extending, and using embedded test-driven development frameworks for customers (Matlab-Fit and Embedded-FitNesse) and developers (MUnit and Embedded-Unit).

1. J. Miller, and M.R. Smith, "A TDD Approach to In-tro–ducing Students to Embedded Programming," Proc. 12th Ann. Conf. Innovation and Technology in Com-puter Science Education (ITiCSE 07), ACM Press, 2007, pp. 33–37.
2. C. Denger et al., "A Snapshot of the State of Practice in Software Development for Medical Devices," Proc. 1st Int'l Symp. Empirical Software Eng. and Measurement (ESEM 07), IEEE CS Press, 2007, pp. 485–487.
3. B. Greene, "Agile Methods Applied to Embedded Firmware Development," Proc. Agile Development Conf. (ADC 04), IEEE CS Press, 2004, pp. 71–77.
4. F. Huang et al., "E-Race: A Hardware-Assisted Approach to Lockset-Based Data Race Detection on Embedded Products," Proc. 19th Int'l Symp. Software Reliability Eng. (ISSRE 08), IEEE CS Press, 2008, pp. 277–278.
5. A. Tran et al., "A High-Performance Hardware-Instrumented Approach to Test Coverage for Embedded Systems," Proc. 19th Int'l Symp. Software Reliability Eng. (ISSRE 08), IEEE CS Press, 2008.
6. J.C. Sanchez, L. Williams, and E.M. Maximilien, "On the Sustained Use of a Test-Driven Development Practice at IBM," Proc. Agile 2007, IEEE CS Press, 2007, pp. 5–14.
7. K. Beck, Test-Driven Development—by Example, Addison-Wesley, 2002.
8. W. Cunningham, FIT: Framework for Integrated Tests, 2002; http:/
9. B. Phelan, "MUnit: Matlab Unit Testing," XTargets; MUnit-Matlab-Unit-Testing.html .
10. E. Murphy-Hill and A.P. Black, "Refactoring Tools: Fitness for Purpose," IEEE Software, vol. 25, no. 5, 2008, pp. 38–44.
11. J. Chen et al., "Making Fit/FitNesse Appropriate for Biomedical Engineering Research," Proc. 7th Int'l Extreme Programming and Agile Processes in Software, LNCS 4044, Springer, 2006, pp. 186–190.
12. M. Smith et al., "E-TDD—Embedded Test Driven Development: A Tool for Hardware-Software Co-design," Extreme Programming and Agile Processes in Software Engineering, 6th Int'l Conf. XP 2005, LNCS 3556, Springer, 2005, pp. 145–153.
13. M. Feathers CppUnit Wiki;
14. S. Savage et al., "Eraser: a Dynamic Data Race Detector for Multithreaded Programs," ACM Trans. Computer Systems, vol. 15, no. 4, 1997, pp. 391–411.

Index Terms:
embedded systems, agile methods, test-driven development, tool support
Michael Smith, James Miller, Lily Huang, Albert Tran, "A More Agile Approach to Embedded System Development," IEEE Software, vol. 26, no. 3, pp. 50-57, May-June 2009, doi:10.1109/MS.2009.57
Usage of this product signifies your acceptance of the Terms of Use.