Software has become the most expensive part of most computer-based systems.
Software Cost EstimationIf the error is large, the profit will become a loss.
Software Project estimation is a form of solving problems. In most cases, the problems to be solved are very complicated and it is difficult to solve them all at once. Therefore, the problem is decomposed into a small group of controllable subproblems that are close to the final solution, and then their features are defined.
Estimation techniques generally include code line (LOC) and Function Point (FP) estimation. These two different estimation techniques have many common features. The project scheduler first gives a description of a bounded scope of software, and then tries to break down the software into small sub-functions that can be independently estimated. Then, estimate the LOC or FP (estimation variable) of each sub-function ). Next, set the baseline productivityMeasurementUse specific estimation variables to export the cost or workload of sub-functions. After combining the estimation of sub-functions, you can get the total Estimation of the entire project.
The LOC or FP estimation technology requires different levels of detail for decomposition. When LOC is used as an estimation variable, functional decomposition is absolutely necessary and must be detailed. The data required for estimating function points is the amount of macro data. The degree of decomposition required when FP is used as an estimation variable is not detailed. LOC is a direct estimation, while FP is indirectly determined by estimating the number of input, output, data files, queries, and external interfaces, and the complexity correction value. In addition to the estimation variables used, the project scheduler must propose a representative estimation range for each decomposition function. With historical data or practical experience, planners give LOC or FP estimates for each function based on optimistic, possible, or pessimistic situations.
To reflectDevelopmentThe impact of features should be corrected at any time.
1 LOC (Lines of Code, Code line) to estimate Code size
Project is divided into several functions, and the code length of each function is calculated respectively. The sum of all functional code lines is the code length of the project.
The LOC estimation table includes:
Code Length Estimation for each function = (Happy value + 4 * possible value + sad value)/6
Estimated workload = total estimated code length/estimated productivity
Estimated total cost = daily salary * estimated workload
Estimated line cost = estimated total cost/estimated code length
Estimation productivity gained from experience
2 FP (Function Point) estimation code size
The function points of a project are the sum of the Function Points of several measurement parameters (user input, user output, user query, file count, and external interface count.
User input: calculates each user input, which provides application-oriented data to the software. The input should be separated from the query and calculated separately.
User output count: calculates the output of each user, which provides application-oriented information to the software. Here, output refers to reports, screens, error messages, and so on. A single data item in a report is not calculated separately.
User Query Count: a query is defined as an online input, which causes the software to generate a real-time response in the form of online output. Each different query must be calculated.
Number of Files: Calculate the master file of each logic (such as a logical combination of data, it may be a largeDatabase).
Number of External Interfaces: Calculate all machine-readable interfaces (such as data files on tapes or disks). These interfaces can be used to transmit information from one system to another.
FP estimates include:
Estimated FP count for each measurement parameter = estimated value * Weighting Factor
Project estimation FP = sum of FP count of each parameter * Complexity Adjustment Factor
Estimation productivity gained from experience
Estimated workload = project estimation FP/estimated productivity
Estimated total cost = daily salary * estimated workload
Estimate the cost of a single FP = estimate the total cost/estimate the FP