The Development and Achievements of Software Size Measurement
Total Page:16
File Type:pdf, Size:1020Kb
The Development and Achievements of Software Size Measurement Tharwon Arnuphaptrairong A. Lines of Code Abstract—Software size measurement is crucial for the software development process. It is used for project planning Measuring software size in Lines of Code (LOC) can be and control purposes during the project execution. It is achieved by either “counting” or “estimating / required for productivity measurement after the project approximating”. finished. Software size is also an important driver of software effort and cost estimation. This paper analyzed software sizing Lines of Code Counting articles reviewed from the literature and presents the development, and achievements of software size measurement. Lines of Code (LOC) or Source lines of code (SLOC) is Comments on the findings and future trends and challenges of probably the oldest software matrix used to measure the software size estimation models are also given. software size, since the first program was typed on cards one instruction per line per card. It is simply counting the Index Terms— Software Size, Software Sizing Software size number of lines in the text of the program's source codes. measurement. Counting for SLOC is feasible when the program is completed. The counting is helpful for productivity and I. INTRODUCTION performance measurement and evaluation. However, for oftware size is crucial for the software development planning of software effort, duration and cost purpose, one Sprocess. It is used for project planning and control cannot wait until the software is finished. Estimating or purposes during the project execution. It is required for approximating the LOC of the program to be developed is productivity measurement after the project finished. then necessary before it is actually built. Software size is also an important driver of software effort and costs estimation. Most of the software effort estimation methods require software size. Boehm asserted in his list Lines of Code Estimation that “the biggest difficulty in using today’s algorithm There are two methods in order to estimate the lines of software cost models is the problem of providing sound code (LOC), either by using a model with some parameters sizing estimates [1].” or without any parameters. To estimate the LOC using a model with some parameters is sometimes called model Lines of Code (LOC) and Function Points (FP) are two based method or derived method. To estimate the LOC well known measures for software sizing. Over the years, without any parameters is also known as non-model based there have been a lot of researches contributed to this area. This method or direct method [2]. The direct methods or direct intrigues the question on how software sizing research has estimation methods include: expert judgment, Delphi, been developed and achieved. Hence, the objective of this Wideband Delphi (expert consensus), analogy or case-based paper is to review and analyze the software sizing articles reasoning (CBR), thumb’s rule, standard component, and from the literature and present the general picture the three points estimation. The derive methods comprises of development and update the status of research in the field of methods such as, extrapolative counts, components based software size measurement. method and backfiring. The following section gives more details for these methods. The remaining of this paper is organized as follows: Section II gives a review of the software size. Section III concludes and discusses the findings. Future trends of Direct estimation method software sizing are also discussed in section IV. Expert judgment [1], [3], [4], sometimes called heuristic method, refers to the estimation method based on the expertise, skill and experience of one or more experts. This II. SOFTWARE SIZE MEASUREMENT REVIEW method needs someone who already familiar with the domain of the software to be built. Review from the literature has shown that software size Delphi or Shang technique [2]-[4] was originally can be measured in either lines of codes, or function points developed by Rand Corporation in 1944. This method may and its variants. Only few other measures were mentioned. be considered as a subset of expert judgment method, where group of experts are asked for the estimates until the consensus is reached. T. Arnuphaptrairong is with the Department of Statistics, Chulalongkorn Wideband Delphi or expert consensus [3], [4] is a Business School, Chulalongkorn University, Bangkok 10250 Thailand (e- mail: [email protected]). subset of Delphi method proposed by Rand Corporation and later modified by Boehm [5]. Original Delphi technique avoids discussions. Wideband Delphi accommodates group Backfiring method, this method came from the research discussion to achieve the consensus. of Caper Jones [14]. This method estimates the lines of Analogy or Case-Based reasoning (CBR) [4], [6], [7] codes needed to implement a Function Point value involves the retrieval of the similar projects from the (Albrecth’s Function Points) of a program or a piece of repository and use of the knowledge learned from those software for different languages. Details of this method are projects for the estimation of the new project. Accessing the discussed in the next section –Function Points Estimation. similarity may use variety of techniques including -- B. Function Point Euclidian distance, nearest distance, manually guided induction, template retrieval, goal directed preference, Function Point (FP) was originated in 1979 and widely specialty preference, frequency preference, recency accepted with a lot of variants, from both academics and preference, and fuzzy similarity. practitioner [15]. The research in this area is also known as Thumb’s Rule [3], [8], the estimation is made according Function Point Analysis (FPA) or Function Size to a rough and ready practical rule or way of guessing, not Measurement (FSM). The FP measurement could be based on science or exact measurement. classified into FP counting and estimation [2]. Standard component or three point estimation [2] or PERT technique [4], this is rather a technique than a Function Point Counting method to accompany with other direct estimation method Function Point was introduced by Albrecht [16], the in order to improve the estimation. It involves the expert concept is based on the idea that the functionality of the judgment of three possible estimates – the highest (Max), software delivered is the driver of the size of the software the most likely and the lowest possible (Min). The estimate (LOC). In other words, the more the functions delivered, the of the LOC is computed as: LOC = (Max + 4 Most likely + more the LOC. The functionality size is measured in terms Min) / 6. of Function Points (FP). Machine Learning (ML), a subfield of artificial FPA assumes that a software program comprises of intelligence, has been applied in the area [9, 10]. Machine functions or processes. In turn each function or process learning method is to automatically inducing knowledge in consists of five unique components or function types as the forms such as models, functions, rules and patterns, shown in Figure 1. The five function types are External from historical project data. Regolin et al. [10] demonstrated Input (EI), External Output (EO), External Query (EQ), how two machine learning algorithms --genetic Internal Interface File (ILF), and External Interface File programming (GP) and neural networks (NN) can be used (EIF). to predict lines of code from function points (FP), or Each of these five function types is individually assessed number of components (NOC) [11]. Machine learning for complexity and given a Function Point value which algorithms such as genetic programming (GP) and neural varies from 3 (for simple external inputs) to 15 (for complex networks are considered as “black boxes” and therefore it is internal files). The Function Point values are based the not easy to explain how it works to the users [12]. complexity of the feature being counted. The low, average and high complexity level of ILF and Derived method EIF are based on the number of Record Element Type This LOC estimation method uses a model with some (RET) and Data Element Type (DET). A Record Element known (at the point of estimation) software attributes as Type (RET) is a subgroup of the data element (record) of an parameters or drivers to estimate the LOC. ILF or ELF. A data element type is a unique non-repeated data field. Extrapolative counts, this method extrapolates the LOC The complexity level of EI and EO and EQ are based on from the countable components using statistical method or the number of File Type Referenced (FTR) and Data other theoretical basis, for example, work of Tan, Zhao and Element Type (DET). A File Type Referenced (FTR) is an Yuan [13]. Zhao, Yuan and Zhang [13] used conceptual ILF or EIF. data model to estimate the LOC. By using regression techniques they found the relations between KLOC (Kilo Source Lines of Code), C (number of class), R (Number of relation) and Ā (Average number of attributes per class). The relation can be expressed as: KLOC = β0 + β1 C + β2 R+ β3 Ā From the dataset they analyzed, the Java-Based system, the relation is as: KLOC = -10.729 + 1.342 C + 1.254 R+ 0.889 Ā Components based method, Verner and Tate [11] discussed a method that is bottom up approach by sizing the individual software components e.g., menus, screen, report Fig. 1. The Albrecht five function types components, relations and updates. Then sum up all of the The Unadjusted Function Points (UFP) or Unadjusted components sizes to obtain the software size. Function Points Counts (UFC) is calculated as follows [4]: The sum of all the occurrences is computed by method. Expert judgment, Delphi or Shang techniques and multiplying each function count (N) with a Function Point Wideband Delphi (expert consensus) are also called expert weighting (W), and then the UFP is attained by adding up opinion method [2].