A development man-hour estimation method and system based on a function dependency graph
By constructing a requirement-functional dependency graph and a topology sorting algorithm, the impact scope of requirement changes in IT software outsourcing projects is automatically identified and calculated. This solves the problems of omissions and subjectivity in manual assessment, achieves accuracy and traceability in time estimation, and reduces cost overruns and project delays.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- SUZHOU QINGYING FEIFAN SOFTWARE TECH CO LTD
- Filing Date
- 2026-04-24
- Publication Date
- 2026-05-29
AI Technical Summary
In existing IT software outsourcing projects, improper management of requirement changes leads to cost overruns and project delays. Manual assessments struggle to systematically identify the full scope of the impact of changes, neglecting indirectly affected modules through multi-hop dependency chain propagation, resulting in omissions in time estimation and low efficiency.
Construct a requirement and function dependency graph using a weighted directed acyclic graph. Automatically infer the scope of change impact through topological sorting and dependency coefficients. Combine change type, complexity level, development status, and agreed work hour baseline value to calculate differential work hours and generate structured reports and audit logs.
It automates and enables full-path inference of development time estimation, improves the accuracy and consistency of estimation, provides traceability and objective arbitration basis, reduces disputes caused by information asymmetry, and shortens the change negotiation cycle.
Smart Images

Figure CN122114881A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of software development technology, and in particular to a method and system for estimating development time based on functional dependency graphs. Background Technology
[0002] In IT software outsourcing projects, requirement changes are one of the main factors leading to cost overruns and project delays. Industry statistics show that over 70% of outsourcing project cost overruns and project delays stem directly from improper requirement change management. Currently, mainstream project management tools (such as Jira, ZenTao, and Worktile) typically employ the following technical solution when handling requirement changes: the project manager of the outsourcing company, based on the content of the change request and their personal experience, determines which functional modules might be affected and provides an estimate of increased work hours based on subjective experience; subsequently, the client and the outsourcing company reach an agreement on the scope of the change's impact and the additional workload through verbal communication or email negotiation; finally, the contract appendices are adjusted.
[0003] However, manual assessment methods struggle to systematically identify the complete scope of a change's impact. Because outsourced projects have multiple dependencies between functional modules (such as interface dependencies, data dependencies, and business dependencies), a change in one module can indirectly affect other seemingly unrelated modules through multiple dependency chains. When relying on manual assessment, assessors typically only notice modules directly related to the change, neglecting indirectly affected modules propagating through multi-hop dependency chains. This leads to incomplete identification of the impact scope, resulting in missed time estimates and low efficiency. Summary of the Invention
[0004] To address the shortcomings of existing technologies, the purpose of this application is to provide a development time estimation method based on functional dependency graphs, so as to automatically, comprehensively and objectively estimate development time efficiently.
[0005] To achieve the above objectives, this application provides a development time estimation method based on functional dependency graphs, comprising: Construct a requirement function dependency graph, which is a weighted directed acyclic graph, where nodes represent functional modules, and each node carries at least the agreed working time baseline value and current development status of the functional module; directed edges represent the dependency relationship between functional modules, and each directed edge carries a dependency coefficient. In response to a received change request from a development project, determine the set of nodes that are directly affected by the change, corresponding to the functional module that has been modified. Based on the set of nodes that have directly changed, an influence propagation traversal based on topological sorting is performed on the required functional dependency graph. All indirectly affected nodes are automatically inferred according to the dependency coefficient. Together with the set of nodes that have directly changed, they form the set of affected nodes, and the propagation depth of each affected node is recorded. For each node in the set of affected nodes, the differential working hours of the node are calculated based on the node's change type, complexity level, propagation depth, development status of the corresponding functional module, and agreed working hour baseline value.
[0006] Furthermore, the specific steps for constructing the requirement-functional dependency graph include: Based on the functional list of the development project, fill in the agreed working hour baseline value for each functional module and set the initial development status; Treat functional modules as nodes, add directed dependency edges between functional modules, and fill in the dependency type and dependency coefficient to form a requirement functional dependency graph; Perform a topological sort on the required functional dependency graph to verify that it is acyclic, and persist it after the verification is successful.
[0007] Furthermore, the specific steps for automatically inferring all indirectly affected nodes based on the dependency coefficient include: Nodes in the set of nodes that have directly changed are marked as directly affected nodes. If the current node has at least one predecessor node that has been marked as a directly affected or indirectly affected node, and the dependency coefficient of the directed edge from the predecessor node to the current node is greater than or equal to a preset threshold, then the current node is marked as an indirectly affected node, and its propagation depth is the propagation depth of the predecessor node plus 1. The propagation depth of the directly affected nodes is 0.
[0008] Furthermore, the default value of the preset threshold is 0.3.
[0009] Furthermore, the specific steps for calculating the differential working hours of each node in the affected node set, based on the node's change type, complexity level, propagation depth, development status of the corresponding functional module, and agreed-upon working hour baseline value, include: For each node in the set of affected nodes, the agreed working time base value of the corresponding functional module is adjusted according to the change type and complexity level of the node; Based on the propagation depth of the node, the agreed working time baseline value is corrected for propagation attenuation using a preset propagation attenuation coefficient; Based on the development status of the functional modules corresponding to the nodes, the agreed working time baseline value is penalized and adjusted to obtain the differential working time of the nodes; Summarize the differential working hours of each node in the set of all affected nodes.
[0010] Furthermore, the specific steps for calculating the differential working hours of each node in the affected node set, based on the node's change type, complexity level, propagation depth, development status of the corresponding functional module, and agreed-upon working hour baseline value, adopt the following formula: ; in, The differential working hours for nodes, For the change type of the node and complexity level Two-dimensional value table, To establish a benchmark for working hours, The propagation attenuation coefficient, For the propagation depth of the node, This is the rework penalty factor for the current development status of the node.
[0011] Furthermore, the change types include adding new functions, modifying existing functions, deleting existing functions, changing interfaces, and changing data structures; the complexity levels include simple, medium, complex, and extremely complex.
[0012] Furthermore, the method also includes; A structured report is generated, which includes a breakdown of the differential working hours for each affected node and an estimated total additional working hours. All parameter values are recorded throughout the process and stored in the audit log.
[0013] To achieve the above objectives, this application provides a development time estimation system based on functional dependency graphs, comprising: The graph construction module is used to construct and output a requirement-function dependency graph. The requirement-function dependency graph is a weighted directed acyclic graph, where nodes represent functional modules, and each node carries at least the baseline working hours and current development status of the functional module. Directed edges represent the dependency relationships between functional modules, and each edge carries a dependency coefficient. The change acquisition module is used to respond to the received change request of the development project, determine the set of nodes that are directly affected by the change corresponding to the functional module that has been changed, and output the acquired set of nodes that are directly affected by the change to the change impact determination module. The change impact determination module is connected to the graph construction module and the change acquisition module, respectively. It is used to perform a topological sorting-based impact propagation traversal on the requirement function dependency graph based on the set of nodes that have directly changed nodes. It automatically infers all indirectly affected nodes based on the dependency coefficient, and forms an affected node set together with the set of nodes that have directly changed nodes. It records the propagation depth of each affected node and outputs the affected node set and the propagation depth of each node to the differential time calculation module. The differential working time calculation module, connected to the change impact determination module, is used to receive the set of affected nodes and the propagation depth of each node, and for each node in the set of affected nodes, calculates the differential working time of the node according to the change type, complexity level, propagation depth, development status of the corresponding functional module and agreed working time benchmark value, and outputs the differential working time of each node and the estimated value of the total additional working time.
[0014] Furthermore, it also includes: The negotiation management module is connected to the differential time calculation module. It is used to receive the differential time and total additional processing time estimate of each node output by the differential time calculation module, expose the parameters involved in the calculation process to the contracting party and the contracting party for online negotiation and adjustment, record the adjustment history throughout the process, and output the negotiation confirmation result after the negotiation is completed. The signature locking module, connected to the negotiation management module, is used to receive the negotiation confirmation result, lock the estimated value of the total processing time through digital signature, and form a legally valid change certificate.
[0015] This application presents a development time estimation method based on functional dependency graphs. By constructing a requirement functional dependency graph, using a change impact propagation algorithm based on topological sorting, and employing three-factor differential time estimation, it systematically solves a series of technical problems in requirement change management for development projects, such as incomplete identification of the scope of impact, untraceable propagation paths, large subjective differences in time estimation, underestimation of rework costs, and lack of process auditability. This method significantly improves the objectivity, accuracy, comprehensiveness, and traceability of change assessment.
[0016] This application presents a development time estimation method based on functional dependency graphs. By constructing a weighted directed acyclic graph (RFD) structure, it transforms the originally implicit and scattered dependencies into an explicit, machine-readable graph structure. The graph structure employs the constraints of a directed acyclic graph, ensuring the correctness and loop-free nature of the subsequent topological sorting-based traversal algorithm. This allows change impact analysis to be performed on a standardized data model, avoiding ambiguity and omissions when manually describing dependencies.
[0017] This application presents a development time estimation method based on functional dependency graphs. By using an influence propagation traversal algorithm based on topological sorting, it automates the scope of change impact and performs full-path inference, eliminating omissions and subjectivity in manual assessment.
[0018] This application presents a development time estimation method based on functional dependency graphs. By comprehensively considering change type, complexity level, propagation depth, development status of functional modules, and agreed time benchmark values, differential time calculation is performed, realizing the transformation of time estimation from subjective experience to deterministic calculation, and improving the accuracy and consistency of estimation.
[0019] This application presents a development time estimation method based on functional dependency graphs. By recording the entire propagation depth and path, it achieves traceability of the impact propagation process, provides an objective arbitration basis for contract disputes in development projects, reduces wrangling and disputes caused by information asymmetry, and shortens the change negotiation cycle.
[0020] Other features and advantages of this application will be set forth in the following description, and will be apparent in part from the description, or may be learned by practicing this application. Attached Figure Description
[0021] The accompanying drawings are provided to further illustrate the present application and form part of the specification. Together with the embodiments of the present application, they serve to explain the present application but do not constitute a limitation thereof. In the drawings: Figure 1 This is a flowchart illustrating the development time estimation method based on functional dependency graphs proposed in this application. Figure 2 This is a schematic diagram of the structure of an exemplary requirement-function dependency graph; Figure 3 A flowchart illustrating the algorithm for inferring the changed affected area; Figure 4 The intent of a two-dimensional value representation for change type and complexity; Figure 5 This is an exemplary requirement-function dependency diagram of Embodiment 2 of this application; Figure 6 This is a schematic diagram of the development time estimation system based on functional dependency graphs according to this application; Among them, 100-map construction module, 200-change acquisition module, 300-change impact determination module, 400-differential working hour calculation module, 500-negotiation management module, and 600-signature locking module. Detailed Implementation
[0022] Embodiments of this application will now be described in more detail with reference to the accompanying drawings. While some embodiments of this application are shown in the drawings, it should be understood that this application can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of this application. It should be understood that the drawings and embodiments of this application are for illustrative purposes only and are not intended to limit the scope of protection of this application.
[0023] It should be understood that the steps described in the method embodiments of this application may be performed in different orders and / or in parallel. Furthermore, the method embodiments may include additional steps and / or omit the steps shown. The scope of this application is not limited in this respect.
[0024] The term "comprising" and its variations as used herein are open-ended inclusion, meaning "including but not limited to". The term "based on" means "at least partially based on". The term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one additional embodiment"; the term "some embodiments" means "at least some embodiments". Definitions of other terms will be given in the description below.
[0025] It should be noted that the terms "one" and "multiple" used in this application are illustrative rather than restrictive, and those skilled in the art should understand that, unless explicitly stated otherwise in the context, they should be understood as "one or more". "Multiple" should be understood as two or more.
[0026] The embodiments of this application will now be described in detail with reference to the accompanying drawings.
[0027] Example 1 One embodiment of this application provides a development time estimation method based on functional dependency graphs, which will be referred to below. Figures 1-5 The development time estimation method based on functional dependency graphs in this application is described in detail.
[0028] Step S101: Construct a requirement function dependency graph, which is a weighted directed acyclic graph, where nodes represent functional modules, and each node carries at least the agreed working time baseline value and current development status of the functional module; directed edges represent the dependency relationship between functional modules, and each directed edge carries a dependency coefficient. In this application's implementation, the requirement function dependency graph is the fundamental data structure of the invention, formally defined as a weighted directed acyclic graph G=(V, E, alpha), where V is a set of nodes, each node representing a functional module in the function list of a development project. A functional module is the smallest acceptable unit of the development project, carrying information such as agreed-upon working hours, current development status, and responsible party identification. The agreed-upon working hours, current development status, and responsible party identification are filled in one by one according to the determined development contract and function list. E is a set of directed dependency edges. This indicates that the complete implementation of functional module j (i.e., node j) depends on functional module i (i.e., node i). The directed edge is configured with dependency type and dependency coefficient alpha. , which represents the probability strength that a change in functional module i will have a substantial impact on functional module j; the dependency type and dependency coefficient are marked by the technical leaders of both parties through negotiation, can be automatically corrected by historical data, and are finally confirmed by the contracting party after review. Among them, the dependency type includes three categories: interface dependency, data dependency and business dependency.
[0029] Once the agreed-upon baseline working hours, current development status, dependency types, and dependency coefficients are communicated and confirmed, a topological sort is performed on the requirement dependency graph to verify the absence of loops (if loops exist, circular dependencies exist and require manual correction). After successful verification, the data is persisted and a version snapshot is generated.
[0030] For example, Figure 2 Here is a schematic diagram of the structure of an exemplary requirement-function dependency graph, such as Figure 2 As shown, the requirement function dependency graph includes 7 nodes, corresponding to 7 functional modules in the development project. Each node carries a predetermined work time baseline value w and a current development status s. For example, the predetermined work time baseline value w of node N3 is 5d, and the current development status s is "done". The nodes are connected by directed edges to form an acyclic structure. The directed edges are configured with dependency coefficients. For example, the dependency coefficient of the directed edge connecting node N1 to node N4 is 0.5.
[0031] Step S102: In response to the received change request of the development project, determine the set of nodes of the directly changed nodes corresponding to the functional modules that have been changed; In this embodiment of the application, when any party involved in the development submits a change request, the set of functional modules to be changed (corresponding to the set of nodes that directly undergo change) is determined based on the change request.
[0032] Step S103: Based on the set of nodes that have directly changed, perform an influence propagation traversal based on topological sorting on the requirement function dependency graph, automatically infer all indirectly affected nodes according to the dependency coefficient, and form an affected node set together with the set of nodes that have directly changed, and record the propagation depth of each affected node. In this embodiment of the application, a predetermined change-of-effect inference algorithm (CIP Algorithm) is used to determine the set of affected nodes. Figure 3 A flowchart illustrating the algorithm for inferring the range of impact changes, as shown below. Figure 3 As shown: In this embodiment, after determining the set of nodes delta_N that directly undergo change, the Kahn algorithm is used to perform topological sorting on the requirement function dependency graph to generate an ordered sequence of nodes, Topo(G), ensuring that each directed edge... Both node N_i and node N_j appear before node N_j.
[0033] Then, all nodes in the set of nodes that have directly changed are marked as "directly affected", with a propagation depth of 0, and added to the set of affected nodes.
[0034] Then, each node is processed sequentially according to the topological order Topo(G). It is determined whether each predecessor node of the current node (a node with a directed edge pointing to the current node) is in the set of affected nodes, and whether the dependency coefficient of the directed edge is greater than or equal to the default threshold. (e.g., 0.3). If satisfied, mark the current node as "indirectly affected", configure the propagation depth as the propagation depth of the predecessor node plus 1, record the affected path, and add the node to the set of affected points.
[0035] After processing each node, the set of affected points includes all "directly affected" and "indirectly affected" nodes, and the propagation path and propagation depth of each node are determined. The time complexity of the entire computation process is O(n log n). .
[0036] For a development project with 50 to 200 functional nodes, the entire calculation process can return the calculation results within milliseconds.
[0037] Step S104: For each node in the set of affected nodes, calculate the differential working hours of the node based on the node's change type, complexity level, propagation depth, development status of the corresponding functional module, and agreed working hour baseline value.
[0038] In this embodiment, a specific differential time estimation model (DEE Model) is used to calculate the differential time introduced by this change for each affected node. The total DW_total for subsequent processing is calculated using the following formula: ; in, The differential working hours for nodes, For the change type of the node and complexity level Two-dimensional value table, To establish a benchmark for working hours, The propagation attenuation coefficient, For the propagation depth of the node, This is the rework penalty factor for the current development status of the node.
[0039] Among them, the change type of the node and complexity level The range of values in the two-dimensional value table is 0.1-2.0; Change type The value can be {new feature, feature modified, feature deleted, interface changed, data structure changed}, with a complexity of [value missing]. The values are {simple, medium, complex, extremely complex}, and are assessed one by one by the technical leaders of both parties on an affected basis. For example, such as... Figure 4 As shown, Figure 4 This represents the intent of a two-dimensional value for changing type and complexity.
[0040] in, The value of is (0,1), with a default value of 0.6. It is used to characterize the pattern that the indirect influence gradually weakens with increasing propagation depth. It can also be calibrated by regression using historical outsourced project data.
[0041] In this embodiment of the application, when the current development status is "done", A value of 1.5 (indicating a need for complete rework) is applied when the current development status is "working WIP". A value of 1.2 (indicating that the current work needs to be modified) is used when the current development status is that a tudo will be implemented. A value of 1.0 (indicating no penalty).
[0042] For example, suppose a node's agreed-upon working time base value is 2 days, the change type is modification, the responsibility level is medium, and the propagation depth is 1. The value is 0.6, and the current development status is "working wip". If the value is 1.2, then the differential working time for this node is... sky.
[0043] After calculating the differential working hours for all nodes, the total differential working hours for this change are summed to form the total differential working hours DW_total, where DW_total = Σ. .
[0044] In the embodiments of this application, the parameters used to calculate the differential working hours can be modified and determined through negotiation between the project owner and the project contractor.
[0045] It should be noted that the entire time estimation process is transparent and traceable. The values of each parameter, the calculation process, and the calculation results are all stored in the audit log, providing objective arbitration basis for contract disputes.
[0046] Then, the total difference in working hours and the detailed working hours for each node are presented as a structured report. All parameter values are recorded throughout the process, forming an immutable audit chain for working hour estimation. After the adjustable parameters are confirmed by both parties, they are automatically added to the contract working hours appendix after being locked with digital signatures.
[0047] Example 2 Figure 5 This is an exemplary requirement function dependency diagram of Embodiment 2 of this application, which will be discussed below in conjunction with... Figure 5 The exemplary requirement-function dependency diagram shown illustrates the entire computational process of the method described in this application with a complete and concrete example.
[0048] Suppose an online education platform software outsourcing project includes 7 functional modules, corresponding to 7 nodes in the requirement function dependency diagram (e.g., Figure 5 As shown in the table below, the information for each node is as follows: Table 1 .
[0049] The dependencies and dependency coefficients between the nodes are shown in Table 2 below: Table 2 .
[0050] The above functional dependency graph was subjected to topological sorting to verify acyclicity, and the verification passed. The ordered sequence of nodes after topological sorting is: Topo(G) = [N1, N2, N3, N7, N6, N4, N5].
[0051] Suppose the client submits a change request, requesting an interface change (upgrading the user authentication interface) for the user management module (N1) and a functional modification (adding a course category filtering function) for the course management module (N2). Therefore, the set of nodes that directly experience changes is determined as ΔN = {N1, N2}.
[0052] According to the Change Inference Scope Algorithm (CIP Algorithm), N1 and N2 are first marked as "directly affected", with a propagation depth d=0, and added to the set of affected nodes A = {N1, N2}.
[0053] Then, process each node sequentially according to the topological order [N1, N2, N3, N7, N6, N4, N5] (skipping N1 and N2 already in set A), with a preset dependency coefficient threshold δ=0.3. Processing node N3 (order payment module): Since the predecessor node N2 is already in the set of affected nodes, the dependency coefficient α of the directed edge E(N2→N3) is 0.7 ≥ 0.3. Therefore, N3 is marked as "indirectly affected", the propagation depth d = 0+1 =1, and the influence path is N2→N3.
[0054] Processing node N7 (access control module): The predecessor node N1 is already in the set of affected nodes. The dependency coefficient α of the directed edge E(N1→N7) is 0.9 ≥ 0.3. Mark N7 as "indirectly affected". The propagation depth d = 0+1 =1. The influence path is N1→N7.
[0055] Processing node N6 (message notification module): The predecessor node N1 is already in the set of affected nodes. The dependency coefficient α of the directed edge E(N1→N6) is 0.4 ≥ 0.3. N6 is marked as "indirectly affected". The propagation depth d = 0+1 = 1. The influence path is N1→N6.
[0056] Processing node N4 (learning record module): The predecessor node N1 is already in the affected node set, and the dependency coefficient α of the directed edge E(N1→N4) is 0.5 ≥ 0.3; the predecessor node N2 is also already in the affected node set, and the dependency coefficient α of the directed edge E(N2→N4) is 0.6 ≥ 0.3. Taking the shortest propagation depth, N4 is marked as "indirectly affected", with a propagation depth d = 0+1 = 1, and the influence path is N1→N4 (or N2→N4).
[0057] Processing node N5 (data report module): Predecessor node N3 is already in the affected node set (d=1), and the dependency coefficient α of the directed edge E(N3→N5) is 0.5 ≥ 0.3; Predecessor node N4 is also already in the affected node set (d=1), and the dependency coefficient α of the directed edge E(N4→N5) is 0.8 ≥ 0.3. Taking the shortest propagation depth, N5 is marked as "indirectly affected", with a propagation depth d = 1+1 = 2, and the affected path is N2→N3→N5 (or N1→N4→N5).
[0058] After the traversal is complete, the final set of affected nodes is A = {N1, N2, N3, N4, N5, N6, N7}, a total of 7 nodes are affected. The type of impact and propagation depth of each node are summarized in Table 3 below: Table 3 .
[0059] Then, for each node in the affected node set, the technical leaders from both parties assess the change type and complexity level, and then calculate the differential work hours using the formula. This example uses a propagation attenuation coefficient β=0.6, and rework penalty factors γ(done)=1.5, γ(wip)=1.2, and γ(todo)=1.0. The values for the two-dimensional value table 'a' representing the change type and complexity level are referenced from [reference needed]. Figure 4 The calculation process for each node is as follows: Node N1 (User Management Module, Direct Change): Change type is Interface Change, Complexity level is Medium, and from the two-dimensional value table, a(Interface Change, Medium) = 0.6; Agreed working time baseline W = 3 person-days; Propagation depth d = 0; Current development status is Completed, Rework penalty factor. The differential working hours are calculated as follows: Humanity and Heaven.
[0060] Node N2 (Course Management Module, Direct Change): Change type is Function Modification, Complexity level is Complex, and from the two-dimensional value table, a(Function Modification, Complex) = 0.8; Standard working hours W = 5 person-days; Propagation depth d = 0; Current development status is Completed. The differential working hours are calculated as follows: .
[0061] Node N3 (Order Payment Module, indirectly affected): The change type is assessed as an interface change (requiring adaptation due to changes in the upstream course management interface); the complexity level is medium; a(interface change, medium) = 0.6; the agreed-upon work hour baseline W = 5 person-days; the propagation depth d = 1; the current development status is completed. The differential working hours are calculated as follows: .
[0062] Node N4 (Learning Records Module, indirectly affected): The change type is assessed as a data structure change (the learning record data structure needs adjustment due to changes in the user interface), the complexity level is medium, a (data structure change, medium) = 0.5; the agreed work hour baseline W = 4 person-days; the propagation depth d = 1; the current development status is in progress (wip). The differential working hours are calculated as follows: .
[0063] Node N5 (Data Reporting Module, indirectly affected): The change type is assessed as a functional modification (reporting logic requires minor adjustments due to changes in the upstream data source structure); the complexity level is simple; a(functional modification, simple) = 0.3; the agreed-upon work hour baseline W = 3 person-days; the propagation depth d = 2 (two-hop propagation, greater attenuation); the current development status is "to-do". The differential working hours are calculated as follows: Humanity and Heaven.
[0064] Node N6 (Message Notification Module, indirectly affected): The change type is assessed as an interface change (due to the upgrade of the user authentication interface, the user identifier for notification pushes needs to be adapted), the complexity level is simple, a(interface change, simple) = 0.3; the agreed work hour baseline W = 2 person-days; the propagation depth d = 1; the current development status is in progress (wip). The differential working hours are calculated as follows: Humanity and Heaven.
[0065] Node N7 (Access Control Module, indirectly affected): The change type is assessed as a functional modification (due to user interface upgrades, access control logic needs adaptation), the complexity level is simple, a(functional modification, simple) = 0.3; the agreed-upon work time baseline W = 3 person-days; the propagation depth d = 1; the current development status is "to-do". The differential working hours are calculated as follows: Humanity and Heaven.
[0066] Then, the differential man-hours of all affected nodes are summed up to form the total differential man-hours for this change: = 2.70 + 6.00 + 2.70 + 1.44 + 0.32 + 0.43 + 0.54 = 14.13 person-days.
[0067] The summary table of differential working hours for each node is shown in Table 4 below: Table 4 .
[0068] Finally, the system generates a structured report, which includes: change request number, list of directly changed nodes, set of affected nodes and impact paths, detailed differential man-hour calculations for each node (including α value, W baseline value, β decay, d propagation depth, γ penalty factor), and a total estimated additional man-days of 14.13. All parameter values are recorded throughout the process and stored in the audit log.
[0069] As can be seen from the complete example above, the method of this application is: The topological sorting traversal automatically identified all 7 functional modules that were affected (including the data report module N5, which was indirectly affected by two hops), avoiding omissions in manual evaluation.
[0070] Node N5, with a propagation depth of 2, generates only 0.32 man-days of differential working time (the square of the propagation attenuation coefficient causes the long-distance influence to naturally attenuate), while node N2, which is directly changed, generates 6.00 man-days of differential working time (the rework penalty for the completed state leads to an increase in working time), demonstrating the ability of the differential working time formula to accurately quantify various factors. The entire calculation process is transparent in terms of parameters and has a fixed formula, eliminating the ambiguity of subjective estimation.
[0071] Example 3 One embodiment of this application provides a development time estimation system based on functional dependency graphs. Figure 6This is a structural diagram of the development time estimation system based on functional dependency graphs in this application, as shown below. Figure 6 As shown, the development time estimation system based on functional dependency graphs in this application includes: The graph construction module 100 is used to construct and output a requirement function dependency graph. The requirement function dependency graph is a weighted directed acyclic graph, where nodes represent functional modules, and each node carries at least the baseline working time value and current development status of the functional module. Directed edges represent the dependency relationships between functional modules, and each edge carries a dependency coefficient. In this embodiment of the application, the client can construct a functional dependency graph in the graph construction module 100 through a visual operation interface. The client can also submit requirements, request changes, and confirm changes through the visual operation interface.
[0072] The change acquisition module 200 is used to respond to the received change application of the development project, determine the node set of the directly changed nodes corresponding to the functional module that has been changed, and output the acquired node set of directly changed nodes to the change impact determination module; The change impact determination module 300 is connected to the graph construction module 100 and the change acquisition module 200, respectively. It is used to perform a topological sorting-based impact propagation traversal on the requirement function dependency graph based on the set of nodes that have directly changed nodes. It automatically infers all indirectly affected nodes based on the dependency coefficient, and forms an affected node set together with the set of nodes that have directly changed nodes. It records the propagation depth of each affected node and outputs the affected node set and the propagation depth of each node to the differential time calculation module. The differential working time calculation module 400 is connected to the change impact determination module 300. It is used to receive the set of affected nodes and the propagation depth of each node, and for each node in the set of affected nodes, calculate the differential working time of the node according to the change type, complexity level, propagation depth, development status of the corresponding functional module and agreed working time benchmark value, and output the differential working time of each node and the estimated value of the total additional working time.
[0073] In other implementations, the differential time calculation module 400 can also be connected to an external contract execution engine for linkage with milestones and payments.
[0074] The negotiation management module 500 is connected to the differential time calculation module 400. It is used to receive the differential time and total additional processing time estimate of each node output by the differential time calculation module 400, expose the parameters involved in the calculation process to the contracting party and the contracting party for online negotiation and adjustment, record the adjustment history throughout the process, and output the negotiation confirmation result after the negotiation is completed. In this application embodiment, the receiving party and the contracting party can modify and confirm the dependency coefficient, node change type, complexity level, development status of the corresponding functional module, agreed working time base value, propagation attenuation coefficient, and rework penalty factor for the current development status of the node on the visual operation interface.
[0075] The signature locking module 600, connected to the negotiation management module 500, is used to receive the negotiation confirmation result, lock the estimated value of the total processing time through digital signature, and form a legally valid change certificate.
[0076] The above description is merely a partial embodiment of this application and an explanation of the technical principles employed. Those skilled in the art should understand that the scope of disclosure in this application is not limited to technical solutions formed by specific combinations of the above-described technical features, but should also cover other technical solutions formed by arbitrary combinations of the above-described technical features or their equivalents without departing from the above-described concept. For example, technical solutions formed by substituting the above features with (but not limited to) technical features with similar functions disclosed in this application.
[0077] Furthermore, while the operations are described in a specific order, this should not be construed as requiring these operations to be performed in the specific order shown or in sequential order. Multitasking and parallel processing may be advantageous in certain environments. Similarly, while several specific implementation details are included in the above discussion, these should not be construed as limiting the scope of this application. Certain features described in the context of individual embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented individually or in any suitable sub-combination in multiple embodiments.
[0078] Although the subject matter has been described using language specific to structural features and / or methodological logic, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or actions described above. Rather, the specific features and actions described above are merely illustrative examples of implementing the claims.
Claims
1. A development time estimation method based on functional dependency graphs, comprising: Construct a requirement function dependency graph, which is a weighted directed acyclic graph, where nodes represent functional modules, and each node carries at least the agreed working time baseline value and current development status of the functional module; directed edges represent the dependency relationship between functional modules, and each directed edge carries a dependency coefficient. In response to a received change request from a development project, determine the set of nodes that are directly affected by the change, corresponding to the functional module that has been modified. Based on the set of nodes that have directly changed, an influence propagation traversal based on topological sorting is performed on the required functional dependency graph. All indirectly affected nodes are automatically inferred according to the dependency coefficient. Together with the set of nodes that have directly changed, they form the set of affected nodes, and the propagation depth of each affected node is recorded. For each node in the set of affected nodes, the differential working hours of the node are calculated based on the node's change type, complexity level, propagation depth, development status of the corresponding functional module, and agreed working hour baseline value.
2. The development time estimation method based on functional dependency graphs according to claim 1, characterized in that, The specific steps for constructing the requirement function dependency graph include: Based on the functional list of the development project, fill in the agreed working hour baseline value for each functional module and set the initial development status; Treat functional modules as nodes, add directed dependency edges between functional modules, and fill in the dependency type and dependency coefficient to form a requirement functional dependency graph; Perform a topological sort on the required functional dependency graph to verify that it is acyclic, and persist it after the verification is successful.
3. The development time estimation method based on functional dependency graphs according to claim 1, characterized in that, The specific steps for automatically inferring all indirectly affected nodes based on the dependency coefficient include: Nodes in the set of nodes that have directly changed are marked as directly affected nodes. If the current node has at least one predecessor node that has been marked as a directly affected or indirectly affected node, and the dependency coefficient of the directed edge from the predecessor node to the current node is greater than or equal to a preset threshold, then the current node is marked as an indirectly affected node, and its propagation depth is the propagation depth of the predecessor node plus 1. The propagation depth of the directly affected nodes is 0.
4. The development time estimation method based on functional dependency graphs according to claim 3, characterized in that, The default value of the preset threshold is 0.
3.
5. The development time estimation method based on functional dependency graphs according to claim 4, characterized in that, The specific steps for calculating the differential working hours for each node in the affected node set, based on the node's change type, complexity level, propagation depth, development status of the corresponding functional module, and agreed-upon working hour baseline value, include: For each node in the set of affected nodes, the agreed working time base value of the corresponding functional module is adjusted according to the change type and complexity level of the node; Based on the propagation depth of the node, the agreed working time baseline value is corrected for propagation attenuation using a preset propagation attenuation coefficient; Based on the development status of the functional modules corresponding to the nodes, the agreed working time baseline value is penalized and adjusted to obtain the differential working time of the nodes; Summarize the differential working hours of each node in the set of all affected nodes.
6. The development time estimation method based on functional dependency graphs according to claim 5, characterized in that, The specific steps for calculating the differential working hours of each node in the affected node set, based on the node's change type, complexity level, propagation depth, development status of the corresponding functional module, and agreed-upon working hour baseline value, are as follows: ; in, The differential working hours for nodes, For the change type of the node and complexity level Two-dimensional value table, To establish a benchmark for working hours, The propagation attenuation coefficient, For the propagation depth of the node, This is the rework penalty factor for the current development status of the node.
7. The development time estimation method based on functional dependency graphs according to claim 1, characterized in that, The change types include adding new features, modifying existing features, deleting existing features, changing interfaces, and changing data structures; the complexity levels include simple, medium, complex, and extremely complex.
8. The development time estimation method based on functional dependency graphs according to claim 1, characterized in that, The method further includes: A structured report is generated, which includes a breakdown of the differential working hours for each affected node and an estimated total additional working hours. All parameter values are recorded throughout the process and stored in the audit log.
9. A development time estimation system based on functional dependency graphs, characterized in that, include: The graph construction module is used to build and output the requirement function dependency graph; The requirement function dependency graph is a weighted directed acyclic graph, where nodes represent functional modules, and each node carries at least the baseline working hours and current development status of the functional module; directed edges represent the dependency relationships between functional modules, and each edge carries a dependency coefficient. The change acquisition module is used to respond to the received change request of the development project, determine the set of nodes that are directly affected by the change corresponding to the functional module that has been changed, and output the acquired set of nodes that are directly affected by the change to the change impact determination module. The change impact determination module is connected to the graph construction module and the change acquisition module, respectively. It is used to perform a topological sorting-based impact propagation traversal on the requirement function dependency graph based on the set of nodes that have directly changed nodes. It automatically infers all indirectly affected nodes based on the dependency coefficient, and forms an affected node set together with the set of nodes that have directly changed nodes. It records the propagation depth of each affected node and outputs the affected node set and the propagation depth of each node to the differential time calculation module. The differential working time calculation module, connected to the change impact determination module, is used to receive the set of affected nodes and the propagation depth of each node, and for each node in the set of affected nodes, calculates the differential working time of the node according to the change type, complexity level, propagation depth, development status of the corresponding functional module and agreed working time benchmark value, and outputs the differential working time of each node and the estimated value of the total additional working time.
10. The development time estimation system based on functional dependency graphs according to claim 9, characterized in that, Also includes: The negotiation management module is connected to the differential time calculation module. It is used to receive the differential time and total additional processing time estimate of each node output by the differential time calculation module, expose the parameters involved in the calculation process to the contracting party and the contracting party for online negotiation and adjustment, record the adjustment history throughout the process, and output the negotiation confirmation result after the negotiation is completed. The signature locking module, connected to the negotiation management module, is used to receive the negotiation confirmation result, lock the estimated value of the total processing time through digital signature, and form a legally valid change certificate.