Software development cost accurate estimation system and method

CN122549972APending Publication Date: 2026-08-11BEIJING CENTURY MINGLANG INFORMATION SERVICE CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2026-05-29
Publication Date
2026-08-11

AI Technical Summary

Technical Problem

[0003]然而,在软件开发工作中,许多信息化项目过于依赖经验进行成本估算

Benefits of technology

(1)本发明通过采集用户软件开发需求数据,并通过数据处理方式对采集到的用户软件开发需求数据进行处理,处理完成后基于处理后的用户软件开发需求数据,通过软件规模估算方式估算用户软件开发规模,同时基于估算用户软件开发规模为各软件开发团队成员分配软件开发任务,确定软件开发任务执行队列,进而基于确定的软件开发任务执行队列构建不同开发决策模型,构建完成后通过数字孪生方式对不同开发决策模型对应成本进行估算,最后实时监控软件开发软件开发进度,若出现异常状况,根据异常状况实时调整,提高了软件开发估算的准确性和可靠性。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122549972A_ABST
    Figure CN122549972A_ABST
Patent Text Reader

Abstract

This invention discloses a system and method for accurately estimating software development costs, relating to the field of data processing technology. The invention collects user software development requirement data and processes this data. Based on the processed data, it estimates the user's software development scale using a software scale estimation method. Simultaneously, based on the estimated scale, it assigns software development tasks to each software development team member, determines a task execution queue, and constructs different development decision models. After construction, it estimates the costs corresponding to different development decision models using a digital twin approach. Finally, it monitors the software development progress in real time, and adjusts accordingly if any anomalies occur, thus improving the accuracy and reliability of software development cost estimation.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of data processing technology, specifically to a system and method for accurately estimating software development costs. Background Technology

[0002] Cost estimation is crucial to the success of software projects. First, software development projects differ from other engineering projects; their development process is significantly influenced by factors such as user needs and development methods. Without a clear cost estimate, software expenditures can become uncontrollable. Cost estimation helps project managers manage budgets, rationally control costs during development, prevent budget overruns, and improve project economic efficiency. Second, cost estimation helps project managers identify and assess various risks, develop corresponding risk management plans, reduce the risk of project failure, and increase the probability of project success.

[0003] However, in software development, many IT projects rely too heavily on experience for cost estimation. Because project reviews and decisions are based on data submitted by the client and the developer's own experience, this can introduce subjectivity and limitations.

[0004] Meanwhile, with the continuous development of information technology, software development has become more complex. Frequent technology updates, constant iteration of various tools, differences between programming languages, and software development teams continuously improving their development techniques and methods all contribute to greater uncertainty in software cost estimation. Summary of the Invention

[0005] The purpose of this invention is to provide a system and method for accurately estimating software development costs, which solves the problems existing in the background art.

[0006] To solve the above-mentioned technical problems, the present invention adopts the following technical solution: The present invention provides a method for accurately estimating software development costs, specifically including the following steps: S1. Collect user software development requirement data, and process the collected user software development requirement data through data processing methods to obtain processed user software development requirement data. S2. Based on the processed user software development requirements data, estimate the user software development scale using software scale estimation methods; S3. Collect data on software development team members and assign software development tasks to each software development team member based on the estimated user software development scale, and determine the software development task execution queue. S4. Based on a defined software development task execution queue, construct different development decision models. After construction, estimate the cost corresponding to different development decision models using digital twins to determine the estimated cost of software development. S5. Monitor the software development progress in real time. If any abnormal situation occurs, return to steps S3 and S4 to re-estimate the software development task queue and software development cost.

[0007] Preferably, the process of collecting user software development requirement data and processing the collected user software development requirement data to obtain processed user software development requirement data includes the following steps: S11. Collect user software development requirement data, and define the collected user software development requirement data in a standardized way to obtain standard user software development requirement data. A set of standard user software development requirements data must include: the software requirement time and the software requirement content; The software requirements include: software scope, software UI design, and software functionality; By aggregating all user software development requirement data that meet the standards, we obtain the standard data for user software development requirements. S12. Based on the user software development requirement data standard, the data is processed through the requirement identification and processing method to obtain the processed user software development requirement data.

[0008] Preferably, the process of obtaining processed user software development requirement data based on the user software development requirement data standard and through a requirement identification processing method includes the following steps: S121. Based on the user software development requirement data standard, determine the user's main requirements through semantic segmentation. Randomly select a set of software requirement content data from the user software development requirement data, extract all requirement statements related to the software requirement content, and construct a set of requirement statements. ; For the set of requirement statements For each requirement statement in the data, calculate the probability that each requirement statement becomes a subject of the user software development requirement data. ; in, Indicates the first Requirements statements in group user software development requirements data Number of times it appears Indicates the set of requirement statements Corresponding requirement statement Become the The probability of a group of users' software development requirements data topics; Set a probability threshold and summarize the request statements that exceed the set probability threshold; Set the summarized requirement statement as the user's main requirement; S122. The user's main requirements are hierarchically processed by a graph neural network to obtain the processed user software development requirement data. Construct a user requirement relationship diagram based on the requirement statements corresponding to the user's main requirements. ; in, This represents a graph node composed of the nth requirement statement. This represents the topological adjacency relationship between n requirement statements; The neighbor nodes in the user demand relationship graph are merged using aggregation functions; For the graph nodes composed of requirement statements, the Sample function is used to randomly sample S nodes from their neighboring nodes to obtain a set. ; After node collection is complete, the Aggregate function is used to aggregate the collected node information and generate new embedded features; The embedded features obtained from the multi-level Aggregate function are aggregated to obtain aggregated neighbor nodes and features; After merging, the embedding is updated based on the corresponding graph nodes, the new embedding features, and the neighbor nodes, and the updated user demand relationship graph is output. Based on the updated user requirement relationship graph obtained after embedding, the processed user software development requirement data is output.

[0009] Preferably, estimating the user software development scale based on the processed user software development requirement data using a software scale estimation method includes the following steps: Based on the software development process, software development is divided into: front-end development, back-end development, and front-end / back-end integration. The user software development requirements data are aggregated and processed, and the user software development scale is estimated using software scale estimation methods. The software size estimation methods include: model-based estimation techniques and expert judgment techniques; Model-based estimation techniques are shown below: Based on the processed user software development requirement data, the functional points of each part of the software development process are recorded separately, and a set of user software development requirement data is set to correspond to a functional point. Estimate the scale of user software development using the NESMA estimation method; The expert's assessment of the technology is as follows: The software development scale of the user software development requirement data after corresponding processing is judged by different experts according to their respective experiences, and the judgment results of different experts are converted into the software development scale of the user. At the same time, the weighted average method is used to quantify the software development scale of the user; Quantify the two software scale estimation methods through an average calculation method, and set the quantified software development scale of the user as the estimated software development scale of the user.

[0010] Preferably, the steps of collecting data of software development team members, allocating software development tasks to each software development team member based on the estimated software development scale of the user, and determining the software development task execution queue include the following steps: Set the software development team member data matrix Ava[i,…,j], the estimated user software development scale matrix Max[i,…,j], the allocated software development task matrix All[i,…,j], and the software development requirement matrix Need[i,…,j]; Among them, the software development team member data matrix Ava[i,…,j]: each element represents a software development team member; The estimated user software development scale matrix Max[i,…,j]: represents the maximum requirement of the estimated user software development scale; The allocated software development task matrix All[i,…,j]: represents the number of software development tasks currently allocated to a software development team member; The software development requirement matrix Need[i,…,j]: represents the number of software development team members still needed for the estimated user software development scale; When Ava[i,…,j]<Need[i,…,j], it means that the remaining software development team members are insufficient and cannot complete the corresponding software development within the specified time, and the software development time needs to be increased; When Ava[i,…,j]≥Need[i,…,j], calculate Ava[i,…,j]-Need[i,…,j], and determine the software development task execution queue based on the calculation result.

[0011] Preferably, the steps of constructing different development decision models based on the determined software development task execution queue, estimating the costs corresponding to different development decision models through digital twin after construction, and determining the software development estimation cost include the following steps: S41. Construct different development decision models based on the determined software development task execution queue; Construct a development decision model based on the minimum construction period decision, as follows: Collect the historical development situations of software development team members, and calculate the workload of software development team members to complete the corresponding requirements; ; ; in, This represents the monthly workload of software development team members. This indicates the number of codes that need to be converted to meet the requirements. This indicates the amount of work assigned to each member of the corresponding software development team. This represents the salary driver factors for the corresponding software development team members. It is a constant parameter; Based on the workload of software development team members, different development decision-making models are constructed. The decision model for minimizing the project duration is shown below: ; in, This represents the decision model for minimizing the project duration. This represents the monthly workload of the k-th software development team member, where K represents the number of software development team members. The cost minimization decision model is shown below; The formula for software development revenue decision-making is as follows: ; in, This indicates the change in revenue from software development. These represent user development investment and user maintenance investment, respectively. These represent software development costs and software maintenance costs, respectively. Based on software development revenue decision-making, a cost-minimizing decision-making model is constructed on a monthly basis. ; in, Indicates the duration of software development and maintenance; S42. Estimate the costs corresponding to different development decision models using digital twins to determine the estimated cost of software development.

[0012] Preferably, the digital twin method estimates the costs corresponding to different development decision models, and the determination of software development estimated costs includes the following steps: S421. Set the software development schedule set X = { , ,..., },in The first step in software development One state; Action set Y={ , ,..., },in The first step in software development The state of the first One action; S422. Calculate the software development progress transition probability based on the set software development progress set and action set; S423. Calculate the probability of software development schedule transition based on computation; S424. Based on the estimated software development schedule, the action set corresponding to each schedule, and the probability of executing the corresponding action, establish a real-time predictive digital twin model. At the same time, summarize the reward function in the digital twin model to determine the estimated cost of software development.

[0013] Preferably, the calculation of the multi-step software development progress transition probability based on computation includes the following steps: The software development progress transfer probabilities are shown below: Software development schedule transition probability distribution: ; in, This represents the probability distribution of software development progress transitions. Indicates software development progress After processing with the reward function, the software development progress is reached. The probability, This represents the reward function, specifically the cost of performing the corresponding action. , Indicates software development progress Execute action The reward value at that time.

[0014] Preferably, the real-time monitoring of software development progress, and the return to steps S3 and S4 to re-estimate the software development task queue and software development cost if an abnormal situation occurs, includes the following steps: Real-time prediction of software development progress is based on the established real-time predictive digital twin model; When an anomaly occurs, the execution queue for rebuilding the real-time predictive digital twin model and software development tasks is adjusted according to the type of anomaly.

[0015] This invention also provides a software development cost accurate estimation system, used to implement a software development cost accurate estimation method. The system includes: a data acquisition module, a data processing module, a development scale estimation module, a development task allocation module, a software development cost estimation module, a display unit, and a real-time adjustment module. The data acquisition module is used to collect user software development requirements data; The data processing module is used to process the collected user software development requirement data to obtain processed user software development requirement data. The development scale estimation module is used to estimate the development scale based on the processed user software development requirement data. The development task allocation module is used to collect data on software development team members and allocate software development tasks to each software development team member based on the estimated development scale. The software development cost estimation module is used to construct different development decision models. After the models are constructed, the costs corresponding to the different development decision models are estimated using a digital twin method. The display unit is used to display the estimated software cost and software development progress in real time; The real-time adjustment module is used to monitor the software development progress in real time. If any abnormal situation occurs, it will adjust and re-estimate the software cost and software development progress in real time.

[0016] The beneficial effects of this invention are as follows: (1) This invention collects user software development requirement data and processes the collected user software development requirement data through data processing. After processing, based on the processed user software development requirement data, the user software development scale is estimated through software scale estimation. At the same time, based on the estimated user software development scale, software development tasks are assigned to each software development team member, and a software development task execution queue is determined. Then, based on the determined software development task execution queue, different development decision models are constructed. After the construction is completed, the cost corresponding to different development decision models is estimated through digital twin method. Finally, the software development progress is monitored in real time. If an abnormal situation occurs, it is adjusted in real time according to the abnormal situation, which improves the accuracy and reliability of software development estimation.

[0017] (2) This invention determines the main user requirements by formulating user software development requirement data standards and combining semantic segmentation methods. After determining the requirements, the main user requirements are classified by graph neural network, which ensures the accuracy of the classification of the main user requirements.

[0018] (3) This invention constructs different development decision models according to the software development process. After the construction is completed, the cost corresponding to the different development decision models is estimated by digital twin method. After the estimation is completed, the software development progress is monitored in real time. If an abnormal situation occurs, the real-time prediction digital twin model and software development task are reconstructed according to the type of abnormal situation, thus ensuring the real-time nature of software development cost estimation. Attached Figure Description

[0019] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0020] Figure 1 This is a schematic diagram of the software development cost accurate estimation method of the present invention.

[0021] Figure 2 This is a schematic diagram of the software development cost accurate estimation system module of the present invention. Detailed Implementation

[0022] The present invention will now be described in further detail with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative of the invention and not intended to limit it. Furthermore, it should be noted that, for ease of description, only the parts relevant to the invention are shown in the drawings, not all structures. Moreover, unless otherwise specified, the embodiments and features described herein can be combined with each other.

[0023] It should also be noted that, for ease of description, the accompanying drawings show only the parts relevant to the invention and not all of them. Before discussing exemplary embodiments in more detail, it should be mentioned that some exemplary embodiments are described as processes or methods depicted as flowcharts. Although the flowcharts describe the operations (or steps) as sequential processes, many of the operations can be performed in parallel, concurrently, or simultaneously. Furthermore, the order of the operations can be rearranged. The process can be terminated when its operation is completed, but it may also have additional steps not included in the drawings. The process may correspond to a method, function, procedure, subroutine, subroutine, etc.

[0024] Example 1 Methods for accurately estimating software development costs, in practice, such as... Figure 1 The flowchart illustrates the software development cost accurate estimation method of the present invention, which includes the following steps: S1. Collect user software development requirement data, and process the collected user software development requirement data through data processing methods to obtain processed user software development requirement data. S2. Based on the processed user software development requirements data, estimate the user software development scale using software scale estimation methods; S3. Collect data on software development team members and assign software development tasks to each software development team member based on the estimated user software development scale, and determine the software development task execution queue. S4. Based on a defined software development task execution queue, construct different development decision models. After construction, estimate the cost corresponding to different development decision models using digital twins to determine the estimated cost of software development. S5. Monitor the software development progress in real time. If any abnormal situation occurs, return to steps S3 and S4 to re-estimate the software development task queue and software development cost.

[0025] Furthermore, referring to Figure 1 As shown, the process of collecting user software development requirement data and processing the collected user software development requirement data to obtain processed user software development requirement data includes the following steps: S11. Collect user software development requirement data, and define the collected user software development requirement data in a standardized way to obtain standard user software development requirement data. A set of standard user software development requirements data must include: the software requirement time and the software requirement content; The software requirements include: software scope, software UI design, and software functionality; Furthermore, all user software development requirement data that meets the standard are aggregated to obtain standard user software development requirement data. S12. Based on the user software development requirement data standard, the user software development requirement data is processed through the requirement identification and processing method to obtain the processed user software development requirement data. S121. Based on the user software development requirement data standard, determine the user's main requirements through semantic segmentation. Randomly select a set of software requirement content data from the user software development requirement data, extract all requirement statements related to the software requirement content, and construct a set of requirement statements. ; For the set of requirement statements For each requirement statement in the data, calculate the probability that each requirement statement becomes a subject of the user software development requirement data. ; in, Indicates the first Requirements statements in group user software development requirements data Number of times it appears Indicates the set of requirement statements Corresponding requirement statement Become the The probability of a group of users' software development requirements data topics; Furthermore, a probability threshold is set, and demand statements that exceed the set probability threshold are aggregated; Set the summarized requirement statement as the user's main requirement; S122. The user's main requirements are hierarchically processed by a graph neural network to obtain the processed user software development requirement data. Construct a user requirement relationship diagram based on the requirement statements corresponding to the user's main requirements. ; in, This represents a graph node composed of the nth requirement statement. This represents the topological adjacency relationship between n requirement statements; Furthermore, neighboring nodes in the user demand relationship graph are merged using aggregation functions; For the graph nodes composed of requirement statements, the Sample function is used to randomly sample S nodes from their neighboring nodes to obtain a set. ; The formula for random data collection using the Sample function is shown below: ; in, This represents the set obtained using the Sample function. This represents the Sample function. This represents a graph node composed of the x-th requirement statement. Indicates the number of data collection nodes; After node collection is complete, the Aggregate function is used to aggregate the collected node information and generate new embedded features; ; in, Represents a node At a depth of The embedding features are represented by the time and content of the requirement statement corresponding to the graph node. This indicates that node u is at a depth of Embedding features at time, Indicates depth as The Aggregate function is executed; Furthermore, the embedded features obtained from the multi-layer Aggregate function are aggregated to obtain aggregated neighbor nodes and features; Furthermore, after the merging is completed, the embedding is updated based on the corresponding graph nodes, the new embedding features, and the neighbor nodes, and the updated user demand relationship graph is output. Furthermore, based on the updated user requirement relationship graph obtained after embedding, the processed user software development requirement data is output. Furthermore, referring to Figure 1As shown, estimating the user software development scale based on the processed user software development requirement data using a software scale estimation method includes the following steps: Based on the software development process, software development is divided into: front-end development, back-end development, and front-end / back-end integration. Furthermore, the processed user software development requirements data are aggregated, and the user software development scale is estimated using software scale estimation methods. The software size estimation methods include: model-based estimation techniques and expert judgment techniques; Model-based estimation techniques are shown below: Based on the processed user software development requirement data, the functional points of each part of the software development process are recorded separately, and a set of user software development requirement data is set to correspond to a functional point. Furthermore, the scale of user software development is estimated using the NESMA estimation method; The expert's assessment of the technology is as follows: Different experts use their experience to judge the scale of user software development based on the processed user software development requirements data, and the judgment results of different experts are converted into the scale of user software development. At the same time, a weighted average method is used to quantify the scale of user software development. The weighted average method is shown below: ; in, This represents the expert's judgment on the processed user software development requirements data for the z-th group. Experts The judgment results of the user software development requirement data after processing z groups. Experts The scoring weights, where J represents the total number of experts; Furthermore, the two software size estimation methods are quantified by averaging, and the quantified user software development size is set as the estimated user software development size. Furthermore, referring to Figure 1 As shown, the process of collecting data on software development team members and assigning software development tasks to each team member based on the estimated scale of user software development, and determining the software development task execution queue, includes the following steps: Define the software development team member data matrix Ava[i,…,j], the estimated user software development scale matrix Max[i,…,j], the assigned software development task matrix All[i,…,j], and the software development requirement matrix Need[i,…,j]. Among them, the data matrix Ava[i,…,j] of the equipment software development team members: each element represents a member of the software development team; Estimated user software development scale matrix Max[i,…,j]: Represents the maximum requirement for estimating the user software development scale; Allocated software development task matrix All[i,…,j]: Represents the number of software development tasks currently allocated to software development team members; Software development requirement matrix Need[i,…,j]: Represents the number of software development team members still needed for the estimated user software development scale; When Ava[i,…,j]<Need[i,…,j], it means that the remaining software development team members are insufficient to complete the corresponding software development within the specified time, and the software development time needs to be increased; When Ava[i,…,j]≥Need[i,…,j], calculate Ava[i,…,j]-Need[i,…,j], and determine the software development task execution queue based on the calculation result; Furthermore, refer to Figure 1 As shown, different development decision models are constructed based on the determined software development task execution queue. After construction, the costs corresponding to different development decision models are estimated through digital twin. The steps to determine the software development estimated cost are as follows: S41. Construct different development decision models based on the determined software development task execution queue; Construct a development decision model based on the minimum duration decision as follows: Collect the historical development situations of software development team members, and calculate the workload of software development team members to complete the corresponding requirements; ; ; Among them, represents the monthly workload of software development team members, represents the number of lines of code converted from the corresponding requirements, represents the task volume assigned to the corresponding software development team members, represents the salary driving factor for the corresponding software development team members, is a constant parameter; Furthermore, different development decision models are constructed based on the workload of software development team members; The minimum duration decision model is as follows: ; Among them, represents the minimum duration decision model, represents the monthly workload of the kth software development team member, and K represents the number of software development team members; The cost minimization decision model is shown below; The formula for software development revenue decision-making is as follows: ; in, This indicates the change in revenue from software development. These represent user development investment and user maintenance investment, respectively. These represent software development costs and software maintenance costs, respectively. Furthermore, a cost-minimizing decision-making model is constructed on a monthly basis based on software development revenue decisions; ; in, Indicates the duration of software development and maintenance; S42. Estimate the costs corresponding to different development decision models using digital twins to determine the estimated cost of software development; S421. Set the software development schedule set X = { , ,..., },in The first step in software development One state; Action set Y={ , ,..., },in The first step in software development The state of the first One action; The actions mentioned include employee leave requests, employee attendance, employee resignations, and employee recruitment. S422. Calculate the software development progress transition probability based on the set software development progress set and action set; The software development progress transfer probabilities are shown below: Software development schedule transition probability distribution: ; in, This represents the probability distribution of software development progress transitions. Indicates software development progress After processing with the reward function, the software development progress is reached. The probability, This represents the reward function, specifically the cost of performing the corresponding action. , Indicates software development progress Execute action The reward value at that time; S423. Calculate the probability of software development schedule transition based on computation; S424. Based on the estimated software development schedule, the action set corresponding to each schedule, and the probability of executing the corresponding action, establish a real-time predictive digital twin model, and at the same time summarize the reward function in the digital twin model to determine the estimated cost of software development. Furthermore, referring to Figure 1 As shown, real-time monitoring of software development progress, and if any abnormal situation occurs, returning to steps S3 and S4 to re-estimate the software development task queue and software development cost, includes the following steps: Real-time prediction of software development progress is based on the established real-time predictive digital twin model; The abnormal situations include: new user requests and user deadlines being brought forward; Furthermore, when an anomaly occurs, the real-time predictive digital twin model and software development task execution queue are rebuilt according to the type of anomaly. Example 2 In one specific embodiment, refer to Figure 2 As shown, the software development cost accurate estimation system is used to implement a software development cost accurate estimation method. The system includes: a data acquisition module, a data processing module, a development scale estimation module, a development task allocation module, a software development cost estimation module, a display unit, and a real-time adjustment module. The data acquisition module is used to collect user software development requirements data; The data processing module is used to process the collected user software development requirement data to obtain processed user software development requirement data. The development scale estimation module is used to estimate the development scale based on the processed user software development requirement data. The development task allocation module is used to collect data on software development team members and allocate software development tasks to each software development team member based on the estimated development scale. The software development cost estimation module is used to construct different development decision models. After the models are constructed, the costs corresponding to the different development decision models are estimated using a digital twin method. The display unit is used to display the estimated software cost and software development progress in real time; The real-time adjustment module is used to monitor the software development progress in real time. If any abnormal situation occurs, it will adjust and re-estimate the software cost and software development progress in real time.

[0026] The working principle of the software development cost accurate estimation system provided by this invention is as follows: The data acquisition module is responsible for collecting user software development requirement data in real time and defining the collected user software development requirement data according to a standardized definition method. The data processing module then processes the user software development requirement data based on the user software development requirement data standard through requirement identification processing to obtain the processed user software development requirement data. The development scale estimation module determines the software development scale based on the processed user software development requirement data and software process through model estimation technology and expert judgment technology. The development task allocation module is used to collect software development team member data and software development scale to construct a software development team member data matrix, estimate the user software development scale matrix, the allocated software development task matrix, and the software development requirement matrix, and determine the software development task execution queue based on matrix calculation method. After determining the software development task execution queue, the software development cost estimation module constructs different development decision models and estimates the costs corresponding to different development decision models through digital twin method. Finally, the software development cost estimation process is monitored, controlled, and displayed through a display unit and a real-time adjustment module, making the software development cost estimation process more intuitive. It realizes a fully automatic and integrated software development cost estimation process from data acquisition, data processing, development scale estimation, development task allocation, and software development cost estimation.

[0027] It should be noted that, The above content is merely an example and illustration of the concept of the present invention. Those skilled in the art can make various modifications or additions to the specific embodiments described, or use similar methods to replace them, as long as they do not deviate from the concept of the invention or exceed the scope defined by the present invention, and all such modifications and additions should fall within the protection scope of the present invention.

Claims

1. A method for accurately estimating software development costs, characterized in that, Includes the following steps: S1. Collect user software development requirement data, and process the collected user software development requirement data through data processing methods to obtain processed user software development requirement data. S2. Based on the processed user software development requirements data, estimate the user software development scale using software scale estimation methods; S3. Collect data on software development team members and assign software development tasks to each software development team member based on the estimated user software development scale, and determine the software development task execution queue. S4. Based on a defined software development task execution queue, construct different development decision models. After construction, estimate the cost corresponding to different development decision models using digital twins to determine the estimated cost of software development. S5. Monitor the software development progress in real time. If any abnormal situation occurs, return to steps S3 and S4 to re-estimate the software development task queue and software development cost.

2. The method for accurately estimating software development costs according to claim 1, characterized in that, The process of collecting user software development requirement data and processing the collected user software development requirement data to obtain processed user software development requirement data includes the following steps: S11. Collect user software development requirement data, and define the collected user software development requirement data in a standardized way to obtain standard user software development requirement data. A set of standard user software development requirements data must include: the software requirement time and the software requirement content; The software requirements include: software scope, software UI design, and software functionality; By aggregating all user software development requirement data that meet the standards, we obtain the standard data for user software development requirements. S12. Based on the user software development requirement data standard, the data is processed through the requirement identification and processing method to obtain the processed user software development requirement data.

3. The method for accurately estimating software development costs according to claim 2, characterized in that, The process of obtaining processed user software development requirement data based on the user software development requirement data standard, through requirement identification and processing, includes the following steps: S121. Based on the user software development requirement data standard, determine the user's main requirements through semantic segmentation. Randomly select a set of software requirement content data from the user software development requirement data, extract all requirement statements related to the software requirement content, and construct a set of requirement statements. ; For the set of requirement statements For each requirement statement in the data, calculate the probability that each requirement statement becomes a subject of the user software development requirement data. ; in, Indicates the first Requirements statements in group user software development requirements data Number of times it appears Indicates the set of requirement statements Corresponding requirement statement Become the The probability of a group of users' software development requirements data topics; Set a probability threshold and summarize the request statements that exceed the set probability threshold; Set the summarized requirement statement as the user's main requirement; S122. The user's main requirements are hierarchically processed by a graph neural network to obtain the processed user software development requirement data. Construct a user requirement relationship diagram based on the requirement statements corresponding to the user's main requirements. ; in, This represents a graph node composed of the nth requirement statement. This represents the topological adjacency relationship between n requirement statements; The neighbor nodes in the user demand relationship graph are merged using aggregation functions; For the graph nodes composed of requirement statements, the Sample function is used to randomly sample S nodes from their neighboring nodes to obtain a set. ; After node collection is complete, the Aggregate function is used to aggregate the collected node information and generate new embedded features; The embedded features obtained from the multi-level Aggregate function are aggregated to obtain aggregated neighbor nodes and features; After merging, the embedding is updated based on the corresponding graph nodes, the new embedding features, and the neighbor nodes, and the updated user demand relationship graph is output. Based on the updated user requirement relationship graph obtained after embedding, the processed user software development requirement data is output.

4. The method for accurately estimating software development costs according to claim 1, characterized in that, The process of estimating the user software development scale based on the processed user software development requirement data using a software scale estimation method includes the following steps: The software development is divided into: front-end development, back-end development, and front-back end docking based on the software development process; Summarize the processed user software development requirement data, and estimate the user software development scale through the software scale estimation method; The software scale estimation method includes: model-based estimation technology and expert judgment technology; The model-based estimation technology is as follows: Based on the processed user software development requirement data, record the function points of each part in the software development process, and set that a set of user software development requirement data corresponds to one function point; Estimate the user software development scale through the NESMA estimation method; The expert judgment technology is as follows: Let different experts judge the user software development scale corresponding to the processed user software development requirement data according to their respective experiences, convert the judgment results of different experts into the user software development scale, and at the same time use the weighted average method to quantify the user software development scale; Quantify the two software scale estimation methods through the average calculation method, and set the quantified user software development scale as the estimated user software development scale.

5. The method for accurately estimating software development costs according to claim 1, characterized in that, The steps of collecting the data of software development team members and allocating software development tasks to each software development team member based on the estimated user software development scale, and determining the software development task execution queue are as follows: Set the software development team member data matrix Ava[i,…,j], the estimated user software development scale matrix Max[i,…,j], the allocated software development task matrix All[i,…,j], and the software development requirement matrix Need[i,…,j]; Among them, the software development team member data matrix Ava[i,…,j]: each element represents a software development team member; The estimated user software development scale matrix Max[i,…,j]: represents the maximum requirement of the estimated user software development scale; The allocated software development task matrix All[i,…,j]: represents the number of software development tasks currently allocated to the software development team members; The software development requirement matrix Need[i,…,j]: represents the number of software development team members still needed for the estimated user software development scale; When Ava[i,…,j]<Need[i,…,j], it means that the remaining software development team members are insufficient and cannot complete the corresponding software development within the specified time, and the software development time needs to be increased; When Ava[i,…,j]≥Need[i,…,j], calculate Ava[i,…,j]-Need[i,…,j], and determine the software development task execution queue based on the calculation result.

6. The method for accurately estimating software development costs according to claim 1, characterized in that, The steps of constructing different development decision models based on the determined software development task execution queue, and estimating the costs corresponding to different development decision models through digital twin after construction, and determining the software development estimated cost are as follows: S41. Construct different development decision models based on the determined software development task execution queue; Construct a development decision model based on the minimum construction period decision, as follows: Collect the historical development situations of software development team members, and calculate the workload of software development team members to complete the corresponding requirements; ; ; in, This represents the monthly workload of software development team members. This indicates the number of codes that need to be converted to meet the requirements. This indicates the amount of work assigned to each member of the corresponding software development team. This represents the salary driver factors for the corresponding software development team members. It is a constant parameter; Based on the workload of software development team members, different development decision-making models are constructed. The decision model for minimizing the project duration is shown below: ; in, This represents the decision model for minimizing the project duration. This represents the monthly workload of the k-th software development team member, where K represents the number of software development team members. The cost minimization decision model is shown below; The formula for software development revenue decision-making is as follows: ; in, This indicates the change in revenue from software development. These represent user development investment and user maintenance investment, respectively. These represent software development costs and software maintenance costs, respectively. Based on software development revenue decision-making, a cost-minimizing decision-making model is constructed on a monthly basis. ; in, Indicates the duration of software development and maintenance; S42. Estimate the costs corresponding to different development decision models using digital twins to determine the estimated cost of software development.

7. The method for accurately estimating software development costs according to claim 6, characterized in that, The process of estimating the costs corresponding to different development decision models using digital twins to determine the estimated software development costs includes the following steps: S421. Set the software development schedule set X = { , ,..., },in The first step in software development One state; Action set Y={ , ,..., },in The first step in software development The state of the first One action; S422. Calculate the software development progress transition probability based on the set software development progress set and action set; S423. Calculate the probability of software development schedule transition based on computation; S424. Based on the estimated software development schedule, the action set corresponding to each schedule, and the probability of executing the corresponding action, establish a real-time predictive digital twin model. At the same time, summarize the reward function in the digital twin model to determine the estimated cost of software development.

8. The method for accurately estimating software development costs according to claim 7, characterized in that, The calculation of the multi-step software development schedule transition probability based on computation includes the following steps: The software development progress transfer probabilities are shown below: Software development schedule transition probability distribution: ; in, This represents the probability distribution of software development progress transitions. Indicates software development progress After processing with the reward function, the software development progress is reached. The probability, This represents the reward function, specifically the cost of performing the corresponding action. , Indicates software development progress Execute action The reward value at that time.

9. The method for accurately estimating software development costs according to claim 1, characterized in that, The real-time monitoring of software development progress, and the re-estimation of the software development task queue and software development cost in steps S3 and S4 if abnormal situations occur, includes the following steps: Real-time prediction of software development progress is based on the established real-time predictive digital twin model. When an anomaly occurs, the execution queue for rebuilding the real-time predictive digital twin model and software development tasks is adjusted according to the type of anomaly.

10. A software development cost accurate estimation system as described in claim 1, characterized in that, include: The system includes a data acquisition module, a data processing module, a development scale estimation module, a development task allocation module, a software development cost estimation module, a display unit, and a real-time adjustment module. The data acquisition module is used to collect user software development requirements data; The data processing module is used to process the collected user software development requirement data to obtain processed user software development requirement data. The development scale estimation module is used to estimate the development scale based on the processed user software development requirement data. The development task allocation module is used to collect data on software development team members and allocate software development tasks to each software development team member based on the estimated development scale. The software development cost estimation module is used to construct different development decision models. After the models are constructed, the costs corresponding to the different development decision models are estimated using a digital twin method. The display unit is used to display the estimated software cost and software development progress in real time; The real-time adjustment module is used to monitor the software development progress in real time. If any abnormal situation occurs, it will adjust and re-estimate the software cost and software development progress in real time.