Agile methods for embedded systems development - a literature review and a mapping study

There is a wide area of applications that use embedded systems, and the number of such systems keeps growing. The required functionality and complexity of embedded systems are also constantly increasing, and development of such products is becoming increasingly harder. This requires new thinking on the product development processes, and one such emerging philosophy is the agile methods. These methods were created by the software engineering community where they are commonly used. Since then, they have been adopted in embedded systems development; however, whether they can improve the embedded systems product development processes remains an open question. This study aims to bring forth what is known about agile methods in embedded systems development and to find out if agile practices are suitable in this domain and what evidence is there to support the findings. We conducted a literature review and a mapping study to answer these questions. The scope of this study is not only limited to embedded software development, but also to embedded hardware and integrated circuits. We have found that agile methods can be used in the embedded domain, but the methods and practices need to be adapted to suit the more constrained field of embedded product development. Furthermore, the field of embedded product development has wide diversity of products with different needs and domain-specific problems so that no single method is applicable, but rather many methods and practices are needed for different situations.

[1]  Pekka Abrahamsson,et al.  Agile methods in European embedded software development organisations: a survey on the actual use and usefulness of Extreme Programming and Scrum , 2008, IET Softw..

[2]  H. D. Rombach,et al.  The Goal Question Metric Approach , 1994 .

[3]  Timo Punkka Taming the Big Animal - Agile Intervention in a Large Organization , 2006 .

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

[5]  Luqi,et al.  Documentation driven development for complex real-time systems , 2004, IEEE Transactions on Software Engineering.

[6]  Juha Kuusela,et al.  Transition to Agile Development - Rediscovery of Important Requirements Engineering Practices , 2010, 2010 18th IEEE International Requirements Engineering Conference.

[7]  Nancy Van Schooenderwoert Embedded Agile Project by the Numbers With Newbies , 2006, AGILE.

[8]  James Miller,et al.  A Test-oriented Embedded System Production Methodology , 2009, J. Signal Process. Syst..

[9]  Petri Kettunen,et al.  How to steer an embedded software project: tactics for selecting the software process model , 2005, Inf. Softw. Technol..

[10]  Petri Kettunen,et al.  Combining agile software projects and large-scale organizational agility , 2008 .

[11]  P. M. Huang,et al.  Agile hardware and software system engineering for innovation , 2012, 2012 IEEE Aerospace Conference.

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

[13]  David Morgan Covert Agile: Development at the Speed of… Government? , 2009, 2009 Agile Conference.

[14]  Doug Dahlby Applying Agile Methods to Embedded Systems Development , 2004 .

[15]  Orit Hazzan,et al.  The Agile Manifesto , 2014 .

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

[17]  Lucas C. Cordeiro,et al.  Towards a Semiformal Development Methodology for Embedded Systems , 2008, ENASE.

[18]  William Bereza,et al.  Evolving into Embedded Development , 2007 .

[19]  Craig Larman,et al.  Agile and Iterative Development: A Manager's Guide , 2003 .

[20]  Elisa Yumi Nakagawa,et al.  An Investigation into Agile Methods in Embedded Systems Development , 2012, ICCSA.

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

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

[23]  Pearl Brereton,et al.  Performing systematic literature reviews in software engineering , 2006, ICSE.

[24]  Orit Hazzan,et al.  Agility in a Large-Scale System Engineering Project: A Case-Study of an Advanced Communication System Project , 2010, 2010 IEEE International Conference on Software Science, Technology & Engineering.

[25]  E. Mohammadi,et al.  Barriers and facilitators related to the implementation of a physiological track and trigger system: A systematic review of the qualitative evidence , 2017, International journal for quality in health care : journal of the International Society for Quality in Health Care.

[26]  Charles E. Matthews Agile practices in embedded systems , 2011, SPLASH Workshops.

[27]  Guoping Rong,et al.  Applying agile methods to embedded software development: A systematic review , 2012, 2012 Second International Workshop on Software Engineering for Embedded Systems (SEES).

[28]  W. W. Royce,et al.  Managing the development of large software systems: concepts and techniques , 1987, ICSE '87.

[29]  Jeanette Heidenberg,et al.  Systematic Piloting of Agile Methods in the Large: Two Cases in Embedded Systems Development , 2010, PROFES.

[30]  Kurt Schneider,et al.  Breaking the ice for agile development of embedded software: an industry experience report , 2004, Proceedings. 26th International Conference on Software Engineering.

[31]  Ensar Gul,et al.  Using XP in Telecommunication Software Development , 2008, 2008 The Third International Conference on Software Engineering Advances.

[32]  Petri Kettunen,et al.  Combining agile software projects and large-scale organizational agility , 2008, Softw. Process. Improv. Pract..

[33]  Petri Kettunen,et al.  Adopting key lessons from agile manufacturing to agile software product development—A comparative study , 2009 .

[34]  John J. Marciniak,et al.  Encyclopedia of Software Engineering , 1994, Encyclopedia of Software Engineering.

[35]  Bernd Waldmann There's never enough time: Doing requirements under resource constraints, and what requirements engineering can learn from agile development , 2011, 2011 IEEE 19th International Requirements Engineering Conference.

[36]  John Shalf,et al.  Rethinking Hardware-Software Codesign for Exascale Systems , 2011, Computer.

[37]  Tore Dybå,et al.  Empirical studies of agile software development: A systematic review , 2008, Inf. Softw. Technol..

[38]  Ken Schwaber,et al.  SCRUM Development Process , 1997 .

[39]  R. Modugno,et al.  Software Development Using an Agile Approach for Satellite Camera Ground Support Equipment , 2007 .

[40]  Kristina Lundqvist,et al.  'State of the Art' in Using Agile Methods for Embedded Systems Development , 2009, 2009 33rd Annual IEEE International Computer Software and Applications Conference.

[41]  Mike Karlesky,et al.  Evolving into Embedded Develop , 2007, Agile 2007 (AGILE 2007).

[42]  Jerry Drobka,et al.  Piloting XP on four mission-critical projects , 2004, IEEE Software.