Abstract
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.
Similar content being viewed by others
Notes
One of the authors (MS) is the Analog Device University Ambassador (2002–2009).
References
Mead, N., & McGraw, G. (2005). A portal for software security. IEEE Security and Privacy, 3(4), 75–79. doi:10.1109/MSP.2005.88.
Nebut, C., Fleurey, F., Le Troan, Y., & Jezequel, J. (2006). Automatic test generation: a use case driven approach. IEEE Transactions on Software Engineering, 32(3), 140–155. doi:10.1109/TSE.2006.22.
Lange, C. F. J., Chaudron, M. R. V., & Muskens, J. (2006). In practice: UML software architecture and design description. IEEE Transactions on Software, 23(2), 40–46. doi:10.1109/MS.2006.50.
Correia, J. (2006). Recommendation for the Software Industry During Hard Times, Gartner Dataquest Report
Feathers, M., (2006). CppUnit—a C++ unit testing framework, cppunit.sourceforge.net/cppunit-wiki (accessed January 2006).
Junit, (2006). Testing Resources for eXtreme Programming, www.junit.org (accessed January 2006).
Beck, K. (2000). Extreme Programming Explained, Longman Higher Education.
Beck, K. (2002). Test-Driven Development—By Example, Addison-Wesley.
Maximillien, M., & Williams, L. (2003). Assessing Test-Driven Development at IBM, In Proceedings of International Conference on Software Engineering.
Williams, L., Maximillien, M., & Vouk, M. (2003). Test-Driven Development as a Defect-Reduction Practice, In Proceedings of IEEE International Symposium on Software Reliability Engineering (ISSRE).
Ronkainen, J., & Abrahamsson, P. (2003). Software Development Under Stringent Hardware Constraints: Do Agile Methods Have a Chance? In Proceedings of XP 2003, 4th International Conference on eXtreme Programming, Genova, Italy, 1012–1012.
Cordeiro, L., Mar, C, Valentin, E., Fabiano Cruz, F., Patrick, D., Barreto, R., et al. (2008). An agile development methodology applied to embedded control software under stringent hardware constraints, ACM SIGSOFT Software Engineering Notes, Volume 33 Number 1, Article #5.
Greene, W. (2004). Agile Methods Applied to Embedded Firmware Development, In Proceedings of the Agile Development Conference 71–77.
Van Schooenderwoert, N., & Morsicato, R. (2004). Taming the Embedded Tiger—Agile Test Techniques for Embedded Software, In Proceedings of Agile Development Conference, 120–126.
Karlesky, M., Williams, G., Bereza, W., & Fletcher, M. Mocking the Embedded World: Test-Driven Development, Continuous Integration, and Design Patterns, Embedded Systems Conference, ECS413 Silicon Valley, San Jose, USA, 2007; www.atomicobject.com/files/ESC-413Paper_KarleskyWilliams.pdf, accessed March 2008.
Greening, J. (2006). Extreme Programming and Embedded Software Development, www.objectmentor.com/resources/articles/EmbeddedXp.pdf (accessed February 2006).
Smith, M., Kwan, A., Martin, A., & Miller, J. (2005a). E-TDD—Embedded Test Driven Development: A Tool for Hardware-Software Co-design, In Proceedings of XP 2005, 6th International Conference on eXtreme Programming, Sheffield, UK, 145–153.
Smith, M., Martin, A., Huang, L., Bariffi, M., Kwan, A., Flaman, W., et al. (2005b). Thermal Arm Wrestling: A look at test driven development (TDD) in the embedded environment. Circuit Cellar, 176, 34–39.
Smith, M., Martin, A., Huang, L., Bariffi, M., Kwan, A., Flaman, W., et al. (2005c). A look at test driven development (TDD) in the embedded environment. Circuit Cellar, 177, 60–67.
Miller, J., Smith, M. R., Daeninck, S., Chen, J., Qiao, J., Huang, F., et al. (2006). A XP inspired test-oriented Life-cycle production strategy for building embedded biomedical applications”, In Proceedings of Testing Academic and Industrial Conference, Practical and Research Technologies, Windsor, U.K.
Boehm, B., & Turner, R. (2004). Balancing agility with discipline: A guide for the perplexed. Toronto: Addison-Wesley.
Mitchell, R., & McKim, J. (2002). Design by Contract, by example, Addison-Wesley.
Cunningham, W., (2006). Fit: Framework for Integrated Test (2002): fit.c2.com/wiki.cgi? FrameworkHistory (accessed, January, 2006).
Chen, J., Smith, M.R., Geras, A., Miller, J., & Ko, L. (2006). Making Fit/FitNesse Appropriate for Biomedical Engineering Research, In Proceeding of XP2006, 7th Int. Conf. eXtreme Programming and Agile Processes in Software, Oulu, Finland. 186–190.
Deshwar, A., Chen, J., & Smith, M. R. (2006). Embedded Fitness: An Agile Development Tool for Biomedical Embedded Systems, In Proceedings of 7th Alberta Biomedical Engineering Conference, Banff, Canada.
Smith, M. R., Miller, J., Ko, L., Chen, J., Geras, A., & Frayne, R. (2006). Approaches to Validating the ‘Quantity’ in Quantitative MR Cerebral Perfusion Studies, In Proceedings of MEDSIP 2006, 3rd Institution of Engineering and Technology International Conference on Advances in Medical, Signal and Information Processing, Glasgow, UK
Geras, A. (2006). Fit and MatLab, www.ucalgary.ca/∼ageras/testml/ (accessed, January 2006)
Phelan, B., 2006. xtargets.com/cms/Tutorials/Matlab-Programming/MUnit-Matlab-Unit-Testing.html (accessed: April 2006).
Dohnke, T. 2006. www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=7487&objectType=file (accessed: April 2006).
Smith, M. R., Lu, H., Trochet, S., & Frayne, R. (2004). Removing the effect of SVD algorithmic artifacts present in quantitative MR perfusion studies. Magnetic Resonance in Medicine, 51(4), 631–634. doi:10.1002/mrm.20006.
Salluzzi, M., Frayne, R., & Smith, M. R. (2005). An alternative viewpoint of the similarities and differences of SVD and FT deconvolution algorithms used for quantitative MR perfusion studies. Magnetic Resonance in Medicine, 23(3), 481–492. doi:10.1016/j.mri.2004.12.001.
Salluzzi, M., Frayne, R., & Smith, M. R. (2006). Is correction necessary when clinically determining quantitative cerebral perfusion parameters from multi-slice dynamic susceptibility contrast MR studies. Physics in Medicine & Biology, 51(2), 407–424. doi:10.1088/0031-9155/51/2/015.
Analog (2006). Analog Devices Processors, www.analog.com/processors (accessed, October 2006).
Holzmann, G. J. (2006). The power of 10: rules for developing safety-critical code. IEEE Computer, 39(6), 95–97.
Do, H., Rothermel, G., & Kinneer, A. (2006). Prioritizing JUnit test cases: an empirical assessment and cost–benefits analysis. Empirical Software Engineering, 11(1), 33–70. doi:10.1007/s10664-006-5965-8.
Saff, D., & Ernst, M. D. (2003). Reducing wasted development time via continuous testing, In Proceedings of 14th International Symposium on Software Reliability Engineering, (Denver, CO), 281–292.
Mugridge, R. (2003). Test Driven Development and the Scientific Method, In Proceedings of the Agile Development Conference, 47–52.
Ko, L., Miller, J. Frayne. R., & Smith, M. R. (2005). Advantages of Test Driven Development for MATLAB Simulation and Code Transfer, In Proceedings of 6th Alberta Biomedical Engineering Conference, Banff, Canada.
Simulink, (2006). www.mathworks.com/products/simulink/ (accessed: April 2006).
Myer, B. (2005). Eiffel: The language (in preparation), available from http://www.inf.ethz.ch/∼meyer/ongoing/etl/ (user name: Talkitover; password: etl3) (accessed June 2005).
Kernighan, B. W., & Ritchie, D. M. (1988). The C Programming Language (2nd Edition). New Jersey: Prentice Hall.
Smith, M. R. (2002). Application of a Big Business Project Management Tool to Optimize Microprocessor Resource Usage, In Proceedings of 10th IEEE DSP Workshop, Georgia, 2002 4.4.1–4.4.6.
Smith, M. R., & Miller, J. (2005). Automatic Microcontroller Task Scheduling: An unusual application of Microsoft Project. Circuit Cellar, 26–35
George, B., & Williams, L. (2002). An Initial Investigation of Test-Driven Development In Industry, ACM Symposium on Applied Computing (SAC), March 2002.
Daeninck, S. (2005). Test Driven Development of a Video Surveillance System, M. Eng. Final Project, Electrical Engineering, University of Calgary, Canada T2N 1N4.
Daeninck, S., Smith, M. R., Miller, J., & Ko, L. (2006). Extending the embedded system E-TDD test driven development tool for the development of a real-time video security system. In Proceedings of XP2006, 7th International Conference on eXtreme Programming and Agile Processes in Software, XP2006, Finland, 200–201.
Huang, F., Smith, M. R., Tran, A., & Miller, J. (2008). “E-RACE, A Hardware Assisted Approach to Lockset-based Data Race Detection on Embedded Product”. 19th International Symposium on Software Reliability Engineering, Nov., Seattle, USA. Accepted as a Fast Abstract, August 2008.
Shye, A., Iyer, M., Reddi, V. J., & Connors, D. A. (2005). Code coverage testing using hardware performance monitoring support. Proceedings of the Sixth International Symposium on Automated Analysis-driven Debugging, 05, 159–163. doi:10.1145/1085130.1085151.
Tran, A., Smith, M. R., Huang, F., Miller, J. (2008). “A high-performance hardware-instrumented approach to test coverage for embedded systems”, 19th International Symposium on Software Reliability Engineering, Nov., Seattle, USA. Accepted as a Student Paper, August 2008.
Embedded-UnitTest Framework download enel.ucalgary.ca/People/Smith/embeddedTDD/Embedded_UnitTest_1.3E1/EmbeddedUnitTest.htm (accessed August, 2008).
Acknowledgements
Financial support was provided by Analog Devices and the Natural Sciences and Engineering Council of Canada (NSERC) through a Collaborative Research and Development grant (CRD 299423-03). Early development was supported by an ASRA grant from the Government of Alberta, Canada. MRS is Analog Devices University Ambassador. Contributions for aspects of implementing the Embedded Unit tool set by the following University of Calgary students have been noted through appropriate references in the text: Engineering Internship students A. Martin, A. Kwan and J. Chen; NSERC undergraduate student research award (USRA) winner L. Ko; and graduate students A. Geras, L. Huang and A. Tran.
Author information
Authors and Affiliations
Corresponding author
Additional information
Preliminary results were presented in Proceedings of Testing Academic and Industrial Conference, Practical and Research Technologies, Windsor, UK, August 2006
Rights and permissions
About this article
Cite this article
Smith, M., Miller, J. & Daeninck, S. A Test-oriented Embedded System Production Methodology. J Sign Process Syst Sign Image Video Technol 56, 69–89 (2009). https://doi.org/10.1007/s11265-008-0266-7
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11265-008-0266-7