Improving embedded software development performance through modular reuse

  • Wai Leung HA

    Student thesis: Doctoral Thesis

    Abstract

    Most of the modern electronic devices are built with embedded system. Embedded System is a special-purpose computer completely contained within the device it controls and performs specific predefined services. The embedded software is application-specific software residing in embedded system to perform predesigned specific tasks repeatedly. Embedded software development is one of the major parts of the whole development processes and draws the majority of resource. With the competitive environment, companies designing products with embedded systems always look for improvement of productivity, quality, cost, and time to market. Modular software design is a technique that discomposes a complex system into fine grain modules with standard interfaces. One of the key benefits of modular design is improving reusability. There are empirical studies showing software modular reuse improves some development metrics, such as, productivity and quality for general-purpose software. While embedded software shares the key characteristics of general-purpose software development, there are also unique characteristics that differentiate them. However, with the unique characteristics of embedded software, the direct study to find the relationship between embedded software reuse and development performance is rare. Hence, the first objective of this project is to find out whether higher modular reuse really benefits the performance metrics of embedded software development processes in the area of quality, productivity, cost, and time-to-market. If it does, the second objective is to develop a model that can improve modular reuse for embedded software development. Finally, the third objective is to validate the model through measuring reuse rate and performance metrics before and after implementation. With the objectives stated, literatures were reviewed in the following areas: software modular design; existing embedded software modular design models; software modular reuse versus development performance metrics; and success and inhibiting factors of software reuse. With the result of the literature review, a hypothetic model called Embedded Software Reuse (ESR) model was developed. The model consists of two main parts. The first part is the relationship between modular reuse and development performance. The second part consists of the success factors for software reuse. The first part was validated through empirical study and the whole model was further validated through measurement results before and after the implementation of the model. Both empirical study and model implementation were performed in a company focused on electronic products with embedded system development. The empirical study on the impact of modular reuse rate to development performances supports higher modular reuse improves productivity, quality, and cost but not time-to-market. The ESR model developed consists of five factors that shall improve reuse rate: Architectural design, Top Management Commitment, Human Factors, Standardize reuse procedures and Measurement and Control. The ESR model was further validated through model implementation in the target company. The implementation was first carried out through a pilot project. Further study with interview of key stack holders of the pilot project helped to refine all five factors before full implementation. Full implementation was started in a product line and five more projects were developed through ESR model. The reuse rate, productivity, quality, and cost were compared before and after the implementation. The result shows the average reuse rate has been increased from 31% to 71% with the implementation of ESR model. With the improvement of reuse rate, productivity has been increased for 154%; defect density was reduced 72%; and cost was reduced for 65%. The comparison verifies that the ESR model is effective for enhancing modular reuse rate and indeed improving key development performance metrics in embedded software development. There are three key contributions of the work of this project and thesis. The first one is the proof of the direct relationship of reuse rate to productivity, quality and cost but not time for embedded software development. The second contribution is the development, implementation, and validation of ESR model to improve the embedded software development performance through increasing the modular reuse rate. Finally, this project directly contributed to the improvement of the embedded software development performance of the target company. One of the key characteristics of the ESR model is the flexibility and expandability of building reusable assets. Building reusable assets will take more time than building non-reusable code. However, for some embedded software projects that are not on the critical path, more reusable assets can be developed during product development. Therefore, as the further study of this thesis, with more data collected, a dynamic model can be developed to help the industry to estimate the optimal amount of time allocation on developing reusable and non-reusable modules for each project with the knowledge of time of completion, estimated program size, and number of reusable assets.
    Date of Award15 Jul 2013
    Original languageEnglish
    Awarding Institution
    • City University of Hong Kong
    SupervisorHongyi SUN (Supervisor)

    Keywords

    • Embedded computer systems
    • Programming
    • Computer software
    • Reusability
    • Development

    Cite this

    '