Software development man-hour estimation system and software development man-hour estimation method
The system enhances software development labor-hour estimation accuracy by using a past database and feedback mechanisms to correct estimates based on project similarity and discrepancy analysis, addressing inaccuracies in conventional methods.
Patent Information
- Application Number
- JP2024114079
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-07-17
- Publication Date
- 2026-01-29
AI Technical Summary
Conventional software development labor-hour estimation methods lack accuracy due to discrepancies between estimated and actual results, which are not effectively addressed by existing prediction models.
A system and method that includes an input unit for project parameters, a past database for performance data accumulation, a feedback unit for discrepancy analysis, and a comparison unit to calculate corrected estimates using similarity and weighting information.
Improves the accuracy of labor-hour estimation by incorporating feedback on discrepancies and using similarity-based correction coefficients, enhancing the reliability of project planning and resource allocation.
Smart Images

Figure 2026013618000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a configuration of a software development man-hour estimation system and a method thereof, and in particular to a technique that is effective in improving the accuracy of development man-hour estimation. [Background technology]
[0002] In software development projects, estimating the development effort (man-months or man-hours) is an important factor in securing the necessary resources and planning the schedule. By estimating the development effort before starting the project, you can set the schedule, secure the necessary personnel, estimate the development costs, etc.
[0003] Therefore, various researches have been conducted to predict development effort using actual data of development projects.However, conventional prediction methods are not necessarily used in software development companies because the prediction models obtained are not convincing or the prediction models are difficult to understand.
[0004] Background art in this technical field includes, for example, technology such as that described in Patent Document 1. Patent Document 1 discloses "a software development cost estimation support system that receives input of software development conditions when creating an estimate, searches a relational approximation formula database for a relational approximation formula associated with factor information that matches the conditions, and calculates an estimated number of processes corresponding to the software functional amount based on the relational approximation formula." [Prior art documents] [Patent documents]
[0005] [Patent Document 1] Japanese Patent Application Laid-Open No. 2000-339147 Summary of the Invention [Problem to be solved by the invention]
[0006] As mentioned above, there are various techniques for calculating estimates of software development labor hours, but the accuracy of the estimate can vary depending on the skills and experience of the person making the estimate.
[0007] Therefore, if there is a discrepancy between the previous estimate and the actual results, it is possible to improve the accuracy of the estimate by analyzing the reason for the discrepancy and feeding this back into the next estimate.
[0008] However, the above Patent Document 1 does not mention anything about a mechanism for using the reason for the discrepancy between the first (previous) estimated value and the actual value as correction information for development man-hours for the second (next) estimate and there is room for improvement.
[0009] SUMMARY OF THE INVENTION It is therefore an object of the present invention to provide a software development man-hour estimation system and method that can improve the accuracy of estimating development man-hours in software development. [Means for solving the problem]
[0010] In order to solve the above problems, the present invention is characterized by comprising an input unit for inputting conditions related to software development, a past database for accumulating past performance data, a feedback unit for feeding back weighting information related to the reasons for discrepancies with the actual development man-hours required, and a comparison and improvement proposal unit for estimating development man-hours based on the similarity between each project parameter in the past database and each project parameter of the current project, and calculating an estimate using the estimated development man-hours and the weighting information from the feedback unit.
[0011] The present invention is also characterized by including: (a) a step of estimating development man-hours based on the similarity between each project parameter in the past database and each project parameter of the current project; and (b) a step of feeding back weighting information regarding the reason for the discrepancy between the development man-hours estimated in step (a) and the actual development man-hours required. [Effects of the Invention]
[0012] According to the present invention, it is possible to realize a software development man-hour estimation system and a software development man-hour estimation method that can improve the accuracy of estimating development man-hours in software development.
[0013] Problems, configurations, and effects other than those described above will become apparent from the following description of the embodiments. [Brief explanation of the drawings]
[0014] [Figure 1] 1 is a block diagram showing a schematic configuration of a software development man-hour estimation system according to a first embodiment of the present invention. [Figure 2] 2 is a diagram showing an example of an input / output display of the software development man-hour estimation system of FIG. 1. [Figure 3] 1 is a flowchart showing a software development man-hours estimation method according to a first embodiment of the present invention. [Figure 4] 4 is a flowchart showing details of the database collation and man-hour extraction step (S203) in FIG. 3. [Figure 5] 4 is a flowchart showing details of the step (S205) of calculating deviation ratio multiplied man-hours in FIG. 3. [Figure 6] 4 is a flowchart showing details of the step (S206) of calculating a correction coefficient from the reason for deviation in FIG. 3. [Figure 7] FIG. 6 is a diagram showing an example of a development scale 601 according to the first embodiment of the present invention. [Figure 8] FIG. 6 is a diagram showing an example of input man-hours 610 according to the first embodiment of the present invention. [Figure 9] FIG. 6 is a diagram showing an example of a deviation reason 620 and a ratio value conversion 621 according to the first embodiment of the present invention. [Figure 10] FIG. 6 is a diagram showing a basis 622 for converting weighting information of deviation reasons into a correction coefficient according to the first embodiment of the present invention. [Figure 11] FIG. 6 is a diagram showing an example of a proposed man-hour count 630 according to the first embodiment of the present invention. [Figure 12] FIG. 6 is a diagram showing an example of a history database 640 according to the first embodiment of the present invention. [Figure 13] FIG. 6 is a diagram showing a numerical interpolation graph 650 of the number of people and development timing and a numerical interpolation graph 651 of the number of people and the number of functions according to the first embodiment of the present invention. DETAILED DESCRIPTION OF THE INVENTION
[0015] Hereinafter, an embodiment of the present invention will be described with reference to the drawings. In the drawings, the same components are designated by the same reference numerals, and detailed description of overlapping parts will be omitted. [Example]
[0016] A software development man-hour estimation system and a software development man-hour estimation method according to a first embodiment of the present invention will be described with reference to FIGS.
[0017] FIG. 1 is a block diagram showing a schematic configuration of a software development man-hour estimation system 101 according to this embodiment.
[0018] As shown in FIG. 1, the software development labor cost estimation system 101 of this embodiment mainly comprises an input unit 104, a past database unit 105, a past database storage unit 106, a feedback unit 107, a comparison and improvement proposal unit 108, an input value output unit 109, and a result output unit 110.
[0019] Using an input tool 103, a user 102 inputs various conditions for the software to be developed into an input unit 104, and calculations are performed using performance data from past development projects stored in a past database unit 105 and a past database storage unit 106. The estimated results of the software development man-hours are output from an input value output unit 109 and a result output unit 110 to a monitor 111 and presented to the user 102.
[0020] As an example of the hardware configuration of the software development labor-hour estimation system 101, for example, the past database unit 105 and the past database storage unit 106 are configured with storage devices (memories), the input unit 104, the input value output unit 109, and the result output unit 110 are configured with input / output (I / O) devices, and the comparison / improvement proposal unit 108 is configured with a CPU (Central Processing Unit) or the like.
[0021] FIG. 2 is a diagram showing an example of an input / output display of the software development man-hour estimation system 101 of FIG.
[0022] An input value display 120 is an example of a display output by the input value output unit 109 to the monitor 111. For example, estimated man-hours, actual man-hours, reasons for discrepancies, etc. are displayed.
[0023] A result display 121 is an example of a display output by the result output unit 110 to the monitor 111. For example, the management man-hours, design man-hours, test man-hours, reliability, etc. are displayed as the proposed man-hours.
[0024] The software development man-hour estimation method of this embodiment will be described below with reference to the flowcharts shown in FIGS.
[0025] In the following, for ease of understanding, the reference numerals of the items shown in FIGS. 7 to 13 will be used for the explanation.
[0026] FIG. 7 is a diagram showing an example of development scale 601. FIG. 8 is a diagram showing an example of input man-hours 610. FIG. 9 is a diagram showing an example of deviation reasons 620 and ratio value conversion 621. FIG. 10 is a diagram showing basis 622 for converting weighting information of deviation reasons into correction coefficients. FIG. 11 is a diagram showing an example of proposed man-hours 630. FIG. 12 is a diagram showing an example of a history database 640. FIG. 13 is a diagram showing a numerical interpolation graph 650 of number of people and development timing and a numerical interpolation graph 651 of number of people and number of functions.
[0027] The correction coefficients in FIG. 10 are as follows:
[0028] For the 620 reasons for discrepancy in software development, the correction coefficient for the impact on release / rework was calculated by multiplying the impact from two different perspectives, "(1) impact on release" and "(2) impact on rework," by an appropriate correction coefficient.
[0029] The "external factors" in the deviation reason 620 refer to force majeure such as illness or injury, or customer circumstances such as changes in requirements. Also, the "other" in the deviation reason 620 refers to potential defects or environmental shortages.
[0030] The correction coefficient for "(3) Impact of experience in developing a new platform" is assigned a value according to the length of experience when developing on a new platform, and one of [a], [b], [c], or [d] is selected. When developing on an existing platform, select [d].
[0031] FIG. 3 is a flowchart showing the main processing by the software development man-hour estimation system 101 of FIG.
[0032] When the software development labor cost estimation system 101 starts processing, first, in step S201, the development scale 601, input labor costs 610, deviation reason 620, etc. input by the user 102 using the input tool 103 are stored in the input unit 104, and the input unit 104 then stores the same data in the input value output unit 109.
[0033] Next, in step S202, the input value output unit 109 outputs the stored development scale 601, input man-hours 610, deviation reason 620, etc. to the monitor 111 for display.
[0034] Next, in step S203, the process proceeds to database collation and man-hour extraction processing (FIG. 4).
[0035] Next, in step S204, it is confirmed whether the input man-hours 610 have been input (whether there is an actual value). If it has been input (Yes), the process proceeds to step S205. If it has not been input (No), the process proceeds to S207.
[0036] Next, in step S205, the process proceeds to the calculation process of deviation ratio multiplied man-hours (FIG. 5).
[0037] Next, in step S206, the process proceeds to calculation of a correction coefficient based on the reason for the deviation (FIG. 6).
[0038] On the other hand, in step S207, the man-hours extracted in the database collation and man-hour extraction process (FIG. 4) are stored in the result output unit 110 as the proposed man-hours 630.
[0039] Next, in step S208, the past database unit 105 stores the input development scale 601 and input man-hours 610 performance values in the past database storage unit 106, and accumulates the performance value data.
[0040] Finally, in step S209, the result output unit 110 outputs the proposed man-hours 630 to the monitor 111 for display.
[0041] With the above, the main processing by the software development man-hour estimation system 101 is completed.
[0042] FIG. 4 is a flowchart showing the details of the database collation and man-hour extraction step (S203) in FIG.
[0043] The process of comparing the development scale 601 entered by the user 102 with the past database 640 in which information on multiple past projects is stored can be roughly divided into two steps. Steps S301 and S306 in Figure 4 are the first process, and steps S303 to S305 are the second process. Each process is explained below.
[0044] In the database matching and labor cost extraction step (S203) of Figure 3, first, in step S301, the past database unit 105 searches for and matches the development scale 601 entered by the user 102 with the required parameters of development category 602, development timing 603, new development / derivative development 604, and optional parameters of number of people 605 and number of functions 606, and the DB development scale 641 in the past database 640.
[0045] The matching logic for matching search is as follows:
[0046] (1) Projects whose values completely match the development category 602 and new development / derivative development 604 are collated.
[0047] (2) The numerical interpolation graph 650 of the number of people and development timing is compared with the numerical interpolation graph 651 of the number of people and number of functions to find the projects with the number of people 605 / development timing 603 / number of functions 606 that match.
[0048] Next, in step S302, it is checked whether there is a project that satisfies the above two conditions (1) and (2). If the conditions are met (Yes), the process proceeds to step S306. On the other hand, if the conditions are not met (No), the process proceeds to step S303.
[0049] Next, in step S303, the "number of functions per person 606 (first arbitrary parameter)" and the "number of requirements per person 607 (second arbitrary parameter)" are calculated using the following formulas.
[0050] Formula 1: 606 functions per person = 606 functions / 605 people Formula 2: 607 requirements per person = 607 requirements / 605 people Next, in step S304, past projects that match the following conditions 1 and 2 are extracted. Note that the development scale 601 can also be searched under multiple conditions by adding any parameters to be searched.
[0051] Condition 1: Past projects that completely match the required parameters of the development category 602, development timing 603, and new development / derivative development 604 among the development scale 601 entered by the user 102 Condition 2: Among the past projects under Condition 1, the top three projects that have approximate values to the arbitrary parameters calculated in step S303 Finally, in step S305, the "DB development man-hours 642 of the top three projects" and the "reliability" indicating the rate of agreement are stored as the proposed man-hours 630.
[0052] On the other hand, in step S306, the DB development man-hours 642 of the project that meets the conditions are stored as the proposed man-hours 630.
[0053] This completes the database collation and man-hour extraction step (S203) in FIG.
[0054] FIG. 5 is a flowchart showing details of the step (S205) of calculating the deviation ratio multiplied man-hours in FIG.
[0055] In the step (S205) of calculating the deviation ratio multiplied man-hours in FIG. 3, first, in step S401, the actual man-hours value is divided by the estimated man-hours value in the input man-hours 610 entered by the user 102 as follows: (calculation formula: estimated value ÷ actual man-hours value) Estimated and actual management effort: 611 Estimated and actual design man-hours: 612 Estimated and actual test effort: 613 Next, in step S402, the proposed man-hours 630 is multiplied by the division result of step S401, and the multiplication result is overwritten on the proposed man-hours 630. (Calculation formula: proposed man-hours 630 × division result of step S401 = proposed man-hours 630) This completes the step of calculating the deviation ratio multiplied man-hours (S205) in FIG.
[0056] FIG. 6 is a flowchart showing the details of the step (S206) of calculating the correction coefficient based on the deviation reasons in FIG.
[0057] In the step (S206) of calculating the correction coefficients from the deviation reasons in Fig. 3, first, in step S501, the feedback unit 107 converts the weighting information related to the deviation reasons 620 input by the user 102 into correction coefficients. Next, the converted correction coefficients are added up to obtain a total value. Note that items [1], [2], [3], [4], and [5] of the deviation reasons 620 allow multiple selections.
[0058] Next, in step S502, the sum of the added correction coefficients is converted into a percentage value according to the percentage value conversion 621.
[0059] Finally, in step S503, the ratio value is multiplied by the deviation ratio multiplication man-hour calculated in step S205. The multiplication result is overwritten on the proposed man-hour 630. (Calculation formula: ratio value × deviation ratio multiplication man-hour = proposed man-hour 630) This completes the step (S206) of calculating the correction coefficient based on the deviation reasons in FIG.
[0060] As described above, the software development man-hour estimation system 101 of this embodiment comprises an input unit 104 for inputting conditions related to software development, a past database (past database unit 105 and past database storage unit 106) for accumulating past performance data, a feedback unit 107 for feeding back weighting information relating to the reasons for any discrepancy with the actual development man-hours required, and a comparison and improvement proposal unit 108 for estimating development man-hours based on the similarity between each project parameter in the past database (past database unit 105 and past database storage unit 106) and each project parameter of the current project, and for calculating an estimate based on the estimated development man-hours and the weighting information from the feedback unit 107.
[0061] Weighting the reasons for deviations can improve the accuracy of estimates.
[0062] Furthermore, the feedback unit 107 converts the weighting information into a correction coefficient for the development man-hours.
[0063] Since the weighting information is used as a correction coefficient for the development man-hours, the development man-hours can be corrected by multiplying the estimated development man-hours by the correction coefficient.
[0064] The weighting information is composed of multiple weighting information, and the correction coefficients of the multiple weighting information are added together and converted into a percentage value, and the development man-hours are multiplied by the percentage value to calculate an estimate of the development man-hours.
[0065] This allows the development man-hours to be corrected by comprehensively determining each correction coefficient.
[0066] Furthermore, the past database (past database unit 105 and past database storage unit 106) includes multiple project parameters, and the multiple project parameters include required parameters that are essential conditions. When estimating development man-hours, the past project parameters that match the required parameters are referenced to estimate the development man-hours.
[0067] The required parameters have different characteristics for estimating the number of development man-hours, so by making them required conditions, they can be used as the basis for estimating the number of development man-hours.
[0068] Furthermore, the required parameters include any one of the development category, development timing, and new development / derivative development information.
[0069] The information on development category and new development / derivative development includes, for example, products and technologies, and the characteristics of development man-hours differ depending on the product and technology, so it is preferable to set these as required parameters. Similarly, the development process differs depending on the early, middle, and late stages of development, and the characteristics of development man-hours also differ depending on the development process, so it is preferable to set these as required parameters.
[0070] Therefore, by including development category, development timing, and new development / derivative development in the required parameters, the accuracy of the estimate can be improved.
[0071] Furthermore, the multiple project parameters include multiple optional parameters that are optional conditions, and the multiple optional parameters have priorities. The development man-hours are estimated by referring to a past project that is most similar to the optional parameter with the highest priority.
[0072] When similarity is found in some of multiple optional parameters, the estimated development man-hours will vary depending on which optional parameters are considered important, but by determining the priority of multiple optional parameters in advance, it is possible to refer to past projects in which similarity is found in more important optional parameters when estimating development man-hours. By determining the priority of optional parameters, it is possible to improve the accuracy of the estimate.
[0073] The optional parameters include a first numerical parameter and a second numerical parameter, which are multiple numerical parameters with numerical values as units, and the first numerical parameter and the second numerical parameter have a correlation, and an approximate value that is close to the optional parameter of the current project through numerical interpolation is selected for the first numerical parameter, and a value that corresponds to the approximate value of the first numerical parameter in the correlation is selected for the second numerical parameter.
[0074] By selecting an approximate value through numerical interpolation, it is possible to select an approximate project even when there are few sample projects in the past database (past database unit 105 and past database storage unit 106). Also, by considering the correlation between multiple (first and second) numerical parameters, it is possible to comprehensively use multiple numerical parameters in estimating development man-hours. By considering the correlation between multiple numerical parameters, it is possible to improve the accuracy of the estimate.
[0075] Furthermore, the priority of the first numerical parameter is set higher than the priority of the second numerical parameter.
[0076] By setting the first numerical parameter, whose approximate value is selected by numerical interpolation, higher than the second numerical parameter, whose value is selected by correlation, the first numerical parameter, which has a higher priority, can be reliably reflected in the estimate of development man-hours. By reliably reflecting the numerical parameter, which has a higher priority, in the estimate of development man-hours, the accuracy of the estimate can be improved.
[0077] The present invention is not limited to the above-described embodiments and includes various modifications. For example, the above-described embodiments have been described in detail to clearly explain the present invention, and the present invention is not necessarily limited to those including all of the described configurations. Furthermore, it is possible to replace part of the configuration of one embodiment with the configuration of another embodiment, or to add the configuration of another embodiment to the configuration of one embodiment. Furthermore, it is possible to add, delete, or replace part of the configuration of each embodiment with other configurations. [Explanation of symbols]
[0078] 101...Software development labor cost estimation system 102...User 103...Input tool 104...input section 105...Past Database Section 106...Past database storage section 107...Feedback section 108…Comparison and improvement proposal department 109...Input value output section 110...Result output section 111...Monitor 120...Input value display 121…Result display 601...Development scale 602...Development Category 603...Development timing 604...New development / derivative development 605…Number of people 606...Number of functions 607...Number of requirements 610...input man-hours 611...Estimated and actual management man-hours 612...Estimated and actual values of design man-hours 613: Estimated and actual test effort 620...Reason for discrepancy 621...Percentage value conversion 622...Basis for converting weighting information of deviation reasons into correction coefficients 630…Proposed man-hours 640...Past database 641...DB development scale 642...DB development man-hours 650...Number of people and development timing numerical interpolation graph 651...Numerical interpolation graph of number of people and number of functions.
Claims
1. an input section for inputting conditions related to software development; A historical database that stores past performance data, a feedback unit that feeds back weighted information regarding the reason for the deviation from the actual development man-hours; a comparison and improvement proposal unit that estimates development man-hours based on the similarity between each project parameter in the past database and each project parameter of the current project, and calculates an estimate based on the estimated development man-hours and weighting information from the feedback unit; A software development labor cost estimation system.
2. 2. The software development man-hour estimation system according to claim 1, The feedback unit converts the weighting information into a correction coefficient for the development man-hours.
3. 3. The software development man-hour estimation system according to claim 2, the weighting information is composed of a plurality of weighting information, The software development man-hour estimation system calculates an estimate of the development man-hours by adding up the correction coefficients of the plurality of pieces of weighting information, converting them into a ratio value, and multiplying the development man-hours by the ratio value.
4. 2. The software development man-hour estimation system according to claim 1, The historical database includes a plurality of project parameters; the plurality of project parameters includes required parameters that are required conditions; When estimating development man-hours, the software development man-hour estimation system references past project parameters that match the required parameters and estimates the development man-hours.
5. 5. The software development man-hour estimation system according to claim 4, The software development man-hour estimation system includes the required parameters including any one of development category, development timing, and new development / derivative development information.
6. 5. The software development man-hour estimation system according to claim 4, the plurality of project parameters include a plurality of optional parameters that are optional conditions; the plurality of optional parameters have a priority; A software development man-hour estimation system that estimates development man-hours by referencing past projects that are most similar to the arbitrary parameters with high priority.
7. 7. The software development man-hour estimation system according to claim 6, the arbitrary parameters include a first numerical parameter and a second numerical parameter, which are a plurality of numerical parameters having numerical units; the first numerical parameter and the second numerical parameter have a correlation; The first numerical parameter is selected by numerical interpolation to have an approximate value that is close to the arbitrary parameter of the current project; A software development man-hour estimation system in which a numerical value corresponding to an approximate value of the first numerical parameter in correlation is selected as the second numerical parameter.
8. 8. The software development man-hour estimation system according to claim 7, A software development man-hour estimation system in which the priority of the first numerical parameter is set higher than the priority of the second numerical parameter.
9. A software development effort estimation method that includes the following steps: (a) estimating the development man-hours based on the similarity between each project parameter in the past database and each project parameter of the current project; (b) A step of feeding back weighting information regarding the reason for the discrepancy between the development man-hours estimated in the step (a) and the actual development man-hours required.
Citation Information
Patent Citations
System for supporting estimation of software development costs and recording medium
JP2000339147A