Abstract

The traditional software development model commonly named “waterfall” is unable to cope with the increasing functionality and complexity of modern embedded systems. In addition, it is unable to support the ability for businesses to quickly respond to new market opportunities due to changing requirements. As a response, the software development community developed the Agile Methodologies (e.g., extreme Programming, Scrum) which were also adopted by the Embedded System community. However, failures and bad experiences in applying Agile Methodologies to the development of embedded systems have not been reported in the literature. Therefore, this paper contributes a detailed account of our first-time experiences adopting an agile approach in the prototype development of a wireless environment data acquisition system in an academic environment. We successfully applied a subset of the extreme Programming (XP) methodology to our software development using the Python programming language, an experience that demonstrated its benefits in shaping the design of the software and also increasing productivity. We used an incremental development approach for the hardware components and adopted a “cumulative testing” approach. For the overall development process management, however, we concluded that the Promise/Commitment-Based Project Management (PB-PM/CBPM) was better suited. We discovered that software and hardware components of embedded systems are best developed in parallel or near-parallel. We learned that software components that pass automated tests may not survive in the tests against the hardware. Throughout this rapid prototyping effort, factors like team size and our availability as graduate students were major obstacles to fully apply the XP methodology.

Highlights

  • Despite its predominance in the last decades of the twentieth century, the single-pass model of software development, namely the “waterfall” model, suffers from serious shortcomings

  • iterative and incremental development” (IID) became the centerpiece of many software development approaches grouped under the Agile Methodologies umbrella since the publication of the Agile Manifesto in 2001

  • We present our experiences adopting Agile Methodologies to both the hardware and software development of a wireless environmental data acquisition system

Read more

Summary

Introduction

Despite its predominance in the last decades of the twentieth century, the single-pass model of software development, namely the “waterfall” model, suffers from serious shortcomings. These include its inability to cope with change when the requirements are not well defined on the onset, the need to re-write substantial portion of code, and the unpredictability of software quality due to late testing Approaches of this type expose software development projects to high failure risks that may end up being cancelled due to large lag time in product delivery. Ronkainen and Abrahamsson [4] explored the possibility of using agile development techniques in the development of low-level telecommunications software with stringent hardware constraints They noted that avoidance of up-front documentation, the negative effects of refactoring on hard real-time system timing and the need to cope with changes in requirements during development are obvious challenges to fully-fledged use of agile principles. We transition to the discussion section before we conclude the paper

Approach and Challenges to the System Development
Hardware Development
Software Development
System Testing Challenges
Discussion
Conclusions
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call