Size Estimation of Real-Time Software Components - A System Perspective
Licentiate thesis, 2010
The demands and expectations on the system architectures of contemporary consumer products like cars are increasing for each product generation. New features using new sensors and actuators, with different variants on different markets, and that interact with other features, create additional complexity in the system. This complexity needs to be managed in a cost-efficient manner, and with a focus on minimizing the risk of product failure. This calls for new methods and tools.
The problem we want to solve is how to predict the amount of ROM-type memory that is needed in an ECU (Electronic Control Unit) in a distributed system like a car. The ECU shall have spare capacity in terms of processing and storage to last for software updates and additions during at least five years. At the same time the pressure on product cost is high due to the large number of produced cars and the existing over-capacity in the automotive industry. So we need to balance spare capacity with cost efficiency in the system architecture.
We apply the FSM (Functional Size Measurement) method COSMIC to requirement specifications (including UML Component Diagrams) that are used for sourcing of the ECU hardware. We have used software components developed by GM (General Motors)to establish the linear relationship between CFP (COSMIC Function Points) and Bytes compiled code. The relationship is stronger than what is reported for similar work using SLOC (Source Lines-Of-Code) as Code Size Measure. Our idea is to use the linear relationship to convert CFP into Bytes, and hence estimate the needed memory size. The parameters of the linear relationship are affected by factors like functionality type, quality constraints, development tools, etc. By investigating 46 software components of 4 different types, we have identified these factors that are dominant in our context and use them to select the proper conversion from CFP into Bytes.
We have shown in our context that COSMIC FSM only need the information in the requirement specification available early in the development process, to predict the needed memory space in an ECU to be designed. In addition, we have identified a one-to-one mapping between the Generic Software Model (which is the basis for COSMIC FSM) and software components. Finally, we have shown that COSMIC FSM produces accurate Code Size Estimates of software containing complex operations like calculations, provided that similar software has been measured before and that the
operations are proportional to the number of data movements. This is contrary to what is reported by other researchers.
COSMIC Function Points
software code size
Functional Size Measurement
software components
system architecture.