Categorization of Real-Time Software Components for Code Size Estimation
Lind , K., Heldal, R.
Lind , K., Heldal, R.
Background: To estimate Software Code Size early in the development process is important both for Cost/Effort estimation and electronic hardware design reasons. The COSMIC FSM (Functional Size Measurement) method treats the intended software to be measured as a black box, and measures CFP (COSMIC Function Points) based only on data movement in and out of the software. Therefore, CFP can be measured on requirements defined early, and be used to estimate Code Size if there exists a strong correlation between CFP and Code Size. We have conducted four experiments in the automotive industry showing strong correlation between CFP and implemented Code Size in Bytes. All four experiments, of which two have not been published before, show equally strong correlation but the linear relationship is different between the experiments.
Goal: This paper aims to identify the factors affecting the linear relationship. With these factors, we can categorize new requirements to be measured and select the proper linear relationship to convert CFP into Bytes, i.e. estimate Code Size.
Method: We replicate our earlier experiments with software components of new types, and review the results from all our experiments. Potential factors affecting implemented Code Size are identified by performing open-ended interviews with domain experts.
Results: We have in the automotive industry identified a set of factors that can be used to categorize the software components we want to measure; functionality type, quality constraints, and development methods and tools.
Conclusions: COSMIC can produce accurate Code Size Estimates provided that sub-sets of cohesive and uniform requirements can be identified. Moreover, similar requirements must have been measured before to establish the linear relationship between CFP and Bytes. Finally, the sub-sets of requirements need to be able to categorize based on factors that affect the linear relationship. With this approach, even complex calculations can be measured, provided that they are proportional to the number of data movements.