The precise estimation of time and resource consumption plays a pivotal role in the planning of software development projects at their earliest development phases. Due to the continuous development of information technology, this challenge has become an extremely difficult task, as it requires time to learn those features of new technologies that can be used to determine the development costs. I encountered this issue during my work at evopro Innovation Kft., a company mainly performing development of innovative software systems by using new technologies. For these systems cost estimation cannot be, or may only be partly, based on previous experiences.
The company previously introduced the usage of the SysML, a system modeling language, in the design phase of development projects. The purpose of this decision was mainly to represent the architecture of the system under design in a platform independent, unified way. Since cost parameters are basically determined by the architecture, the need has arisen for a new method, by which these parameters can be extracted from system models.
In order to implement such a method, I relied on VMTS metamodeling system developed at BME AAIT. By using this tool, any modeling language, such as SysML, can be flexibly designed. As the first step of my work I took advantage of this flexibility to establish a SysML modeling environment. The greatest benefit resulting from VMTS, however, is in its advanced model processing ability, by which cost influencing parameters can be extracted directly from SysML models. For selection of the actual parameters, legacy, though non-model based cost estimating techniques provide a sound basis.
In the first part of my thesis, I demonstrate how I managed to establish a SysML modeling environment through the VMTS metamodeling tool. In the second part, I introduce my own cost modeling method, which is anchored in an existing non-model based technique, the so-called function point analysis. This method can be applied onto SysML system models in order to determine the cost of the system under design. In the next part, I demonstrate the method through real life examples, and finally I evaluate its practical usability based on the estimation results.