Citation: Hai, V.V.; Nhung, H.L.T.K.;
Prokopova, Z.; Silhavy, R.; Silhavy, P.
A New Approach to Calibrating
Functional Complexity Weight in
Software Development Effort
Estimation. Computers 2022, 11, 15.
https://doi.org/10.3390/
computers11020015
Academic Editor: Robertas
Damaševiˇ cius
Received: 15 December 2021
Accepted: 19 January 2022
Published: 22 January 2022
Publisher’s Note: MDPI stays neutral
with regard to jurisdictional claims in
published maps and institutional affil-
iations.
Copyright: © 2022 by the authors.
Licensee MDPI, Basel, Switzerland.
This article is an open access article
distributed under the terms and
conditions of the Creative Commons
Attribution (CC BY) license (https://
creativecommons.org/licenses/by/
4.0/).
computers
Article
A New Approach to Calibrating Functional Complexity Weight
in Software Development Effort Estimation
Vo Van Hai * , Ho Le Thi Kim Nhung , Zdenka Prokopova, Radek Silhavy and Petr Silhavy
Department of Computer and Communication Systems, Tomas Bata University in Zlin, Nam. T.G.M. 5555,
76001 Zlin, Czech Republic; lho@utb.cz (H.L.T.K.N.); prokopova@utb.cz (Z.P.); rsilhavy@utb.cz (R.S.);
psilhavy@utb.cz (P.S.)
* Correspondence: vo_van@utb.cz
Abstract: Function point analysis is a widely used metric in the software industry for development
effort estimation. It was proposed in the 1970s, and then standardized by the International Function
Point Users Group, as accepted by many organizations worldwide. While the software industry has
grown rapidly, the weight values specified for the standard function point counting have remained
the same since its inception. Another problem is that software development in different industry
sectors is peculiar, but basic rules apply to all. These raise important questions about the validity of
weight values in practical applications. In this study, we propose an algorithm for calibrating the
standardized functional complexity weights, aiming to estimate a more accurate software size that fits
specific software applications, reflects software industry trends, and improves the effort estimation of
software projects. The results show that the proposed algorithms improve effort estimation accuracy
against the baseline method.
Keywords: software development effort estimation; function point analysis; functional complexity weight
1. Introduction
Software estimation has long been considered a core issue that directly affects success
or failure. According to the Standish Group [1], the failure rate of a part of a project or
of a whole project is likely to be up to 83.9% (as of 2019). One of the reasons for this
failure is inaccurate cost and effort estimates. In fact, to obtain software projects, companies
participating in tenders must submit bids that include cost, manpower, and software
development time. To be able to win the tender, the companies participating need to give
a reasonable estimate of the cost, manpower, and time required to carry out the project.
Reasonability here does not mean underestimating the price, because in so doing the
company will not gain (if not lose) when completing the project. It is also not reasonable
to overestimate the price, because then it is certain that the company will not win the
bid. Therefore, a project estimate is considered reasonable only if it accurately reflects the
project’s actual value.
Throughout the software development process, no matter what software manage-
ment model a company uses, project leaders often have to plan the work for software
development milestones, plan the next milestone, and recalculate the work done in the
previous milestone. All of these tasks require software estimation skills. Many methods
have previously been proposed to solve the software estimation problem. Due to the
increasing demand for more efficient and accurate estimation methods that can work with
more complex software projects, such estimation methods need to be refined. Software
estimation methods can be classified into three main groups: non-algorithmic, algorithmic,
and machine learning approaches [2,3]. In the non-algorithmic category, there are two
representative methods: expert judgement (EJ) [4] and analogy [5]; with these methods,
experts play the most significant role in judgement. Of course, previous samples (historical
dataset) also play another important role. In the algorithmic category, an algorithm takes
Computers 2022, 11, 15. https://doi.org/10.3390/computers11020015 https://www.mdpi.com/journal/computers