Effort Estimation in Model-Based Software Development 2006-01-0309
Since the end of the 1990s, model-based development processes have increasingly been adopted for the development of automotive embedded control software. One of the main goals of this approach is a reduction of project development time. This reduction is achieved through the use of executable modeling and autocoding. Due to the current constraints for a majority of embedded controllers on microprocessor memory and throughput, efficient production-quality code can not be generated from an executable model with the push of a button. The autocoding process requires manual setting of the software properties for the model's blocks and components by a software professional. Once the code is generated, code verification is needed. Although in many cases autocode generation and verification stages take less time to execute as compared to handcoding techniques, they still require substantial time to perform. The executable model, as a central artifact in a model-based development process, is used as a software specification for autocoding as well as a comprehensive source of information for testing of auto-generated code. In addition, the model opens new possibilities for more precise estimates of engineering effort needed to perform two stages of model-based development: autocoding and autocode verification in its multiple phases. This paper describes the stages of autocode generation and verification, with the emphasis on the approach and tools developed for use in estimating engineering effort for a number of production autocode projects at Delphi Corporation.