The traditional software development model commonly named ââ?¬Å?waterfallââ?¬Â is unable\nto cope with the increasing functionality and complexity of modern embedded systems.\nIn addition, it is unable to support the ability for businesses to quickly respond\nto new market opportunities due to changing requirements. As a response, the software\ndevelopment community developed the Agile Methodologies (e.g., extreme\nProgramming, Scrum) which were also adopted by the Embedded System community.\nHowever, failures and bad experiences in applying Agile Methodologies to the\ndevelopment of embedded systems have not been reported in the literature. Therefore,\nthis paper contributes a detailed account of our first-time experiences adopting\nan agile approach in the prototype development of a wireless environment data acquisition\nsystem in an academic environment. We successfully applied a subset of the\nextreme Programming (XP) methodology to our software development using the\nPython programming language, an experience that demonstrated its benefits in\nshaping the design of the software and also increasing productivity. We used an incremental\ndevelopment approach for the hardware components and adopted a ââ?¬Å?cumulative\ntestingââ?¬Â approach. For the overall development process management, however,\nwe concluded that the Promise/Commitment-Based Project Management (PBPM/\nCBPM) was better suited. We discovered that software and hardware components\nof embedded systems are best developed in parallel or near-parallel. We\nlearned that software components that pass automated tests may not survive in the\ntests against the hardware. Throughout this rapid prototyping effort, factors like\nteam size and our availability as graduate students were major obstacles to fully apply\nthe XP methodology.
Loading....