A Test-oriented Embedded System Production Methodology

In the business world, the use of Agile methodologies has been demonstrated as providing a pro-active, rather than reactive, path for the developer to create defect-free products. Although similarities exist with business desktop and line-of-business systems, the closer connection of signal processing systems to the hardware side of a product, and associated physical constraints, makes the adaption of desktop Agile methodologies for the embedded world difficult; and the adoption of these methodologies by developers problematic. We focus on our experiences in developing test frameworks to support transforming a subset of extreme programming from the world of desktop applications into a suitable embedded domain production methodology. Details are provided of the issues surrounding an Embedded xUnit testing framework that will permit development of digital signal processing applications on a wide range of standalone and multi-processor systems in research, teaching and commercial development environments.

[1]  Adam Geras,et al.  Making Fit / FitNesse Appropriate for Biomedical Engineering Research , 2006, XP.

[2]  R Frayne,et al.  Removing the effect of SVD algorithmic artifacts present in quantitative MR perfusion studies , 2004, Magnetic resonance in medicine.

[3]  R Frayne,et al.  Is correction necessary when clinically determining quantitative cerebral perfusion parameters from multi-slice dynamic susceptibility contrast MR studies? , 2006, Physics in medicine and biology.

[4]  Adam Geras,et al.  Approaches to Validating the "Quantity" in Quantitative MR Cerebral Perfusion Studies , 2006 .

[5]  Michel R. V. Chaudron,et al.  In practice: UML software architecture and design description , 2006, IEEE Software.

[6]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[7]  Laurie A. Williams,et al.  Assessing test-driven development at IBM , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[8]  Clémentine Nebut,et al.  Automatic test generation: a use case driven approach , 2006, IEEE Transactions on Software Engineering.

[9]  Nancy R. Mead,et al.  A Portal for Software Security , 2005, IEEE Secur. Priv..

[10]  James C. McKim,et al.  Design by Contract, By Example , 2001, TOOLS.

[11]  Laurie A. Williams,et al.  Test-driven development as a defect-reduction practice , 2003, 14th International Symposium on Software Reliability Engineering, 2003. ISSRE 2003..

[12]  Gerard J. Holzmann,et al.  The power of 10: rules for developing safety-critical code , 2006, Computer.

[13]  Michael R. Smith,et al.  E-RACE, A Hardware-Assisted Approach to Lockset-Based Data Race Detection for Embedded Products , 2008, 2008 19th International Symposium on Software Reliability Engineering (ISSRE).

[14]  Rick Mugridge Test driven development and the scientific method , 2003, Proceedings of the Agile Development Conference, 2003. ADC 2003.

[15]  Richard Frayne,et al.  An alternative viewpoint of the similarities and differences of SVD and FT deconvolution algorithms used for quantitative MR perfusion studies. , 2005, Magnetic resonance imaging.

[16]  Boby George,et al.  An initial investigation of test driven development in industry , 2003, SAC '03.

[17]  Bill Greene Agile methods applied to embedded firmware development , 2004, Agile Development Conference.

[18]  Barry Boehm,et al.  Balancing Agility and Dis-cipline: A Guide for the Perplexed , 2003 .

[19]  Nancy Van Schooenderwoert,et al.  Taming the embedded tiger - agile test techniques for embedded software , 2004, Agile Development Conference.

[20]  Michael D. Ernst,et al.  Reducing wasted development time via continuous testing , 2003, 14th International Symposium on Software Reliability Engineering, 2003. ISSRE 2003..

[21]  William Bereza,et al.  Mocking the Embedded World: Test-Driven Development, Continuous Integration, and Design Patterns , 2007 .

[22]  Michael R. Smith,et al.  E-TDD - Embedded Test Driven Development a Tool for Hardware-Software Co-design Projects , 2005, XP.

[23]  Kent L. Beck,et al.  Test-driven Development - by example , 2002, The Addison-Wesley signature series.

[24]  Brian W. Kernighan,et al.  The C Programming Language , 1978 .

[25]  Gregg Rothermel,et al.  Prioritizing JUnit Test Cases: An Empirical Assessment and Cost-Benefits Analysis , 2006, Empirical Software Engineering.

[26]  James Grenning,et al.  Extreme Programming and Embedded Software Development , 2002 .

[27]  Bertrand Meyer,et al.  Eiffel: The Language , 1991 .

[28]  Pekka Abrahamsson,et al.  Software Development under Stringent Hardware Constraints: Do Agile Methods Have a Chance? , 2003, XP.

[29]  Vicente Ferreira de Lucena,et al.  An agile development methodology applied to embedded control software under stringent hardware constraints , 2008, SOEN.

[30]  Michael R. Smith,et al.  An XP Inspired Test-Oriented Life-Cycle Production Strategy for Building Embedded Biomedical Applications , 2006, Testing: Academic & Industrial Conference - Practice And Research Techniques (TAIC PART'06).

[31]  Vijay Janapa Reddi,et al.  Code coverage testing using hardware performance monitoring support , 2005, AADEBUG'05.

[32]  M. Smith,et al.  Automatic Microcontroller Task Scheduling , 2005 .

[33]  Michael R. Smith,et al.  Extending the Embedded System E-TDDunit Test Driven Development Tool for Development of a Real Time Video Security System Prototype , 2006, XP.