Method and apparatus for predicting product development man-hours

CN116151463BActive Publication Date: 2026-09-11联想诺谛(北京)智能科技有限公司
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310189953.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-02-27
Publication Date
2026-09-11
Estimated Expiration
2043-02-27

AI Technical Summary

Technical Problem

[0002]相关技术中,多数由人工、如开发人员根据经验和产品功能实现的难易程度,实现对产品开发工时的预测或评估,为一种人工预测或方法,无法体现智能性,且预测准确性有限

Benefits of technology

[0015] According to a fourth aspect of this application, a non-transitory computer-readable storage medium is provided storing computer instructions for causing the computer to perform the methods described in this application.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116151463B_ABST
    Figure CN116151463B_ABST
Patent Text Reader

Abstract

The application discloses a product development man-hour prediction method and a product development man-hour prediction device. The method comprises the following steps: obtaining at least one to-be-developed function of a product; determining target development nodes matched with the to-be-developed functions from a constructed development graph based on description information of the to-be-developed functions; determining a to-be-developed amount of the product based on development amounts of the target development nodes in the development graph; and predicting a to-be-developed man-hour of the product based on the to-be-developed amount of the product.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of forecasting technology, and in particular to a method and apparatus for forecasting product development man-hours. Background Technology

[0002] In most related technologies, the prediction or assessment of product development time is done manually, such as by developers based on experience and the ease of implementing product functions. This is a manual prediction or method that cannot reflect intelligence and has limited accuracy. Summary of the Invention

[0003] This application provides a method and apparatus for predicting product development time, in order to at least solve the above-mentioned technical problems existing in the prior art.

[0004] According to a first aspect of this application, a method for predicting product development man-hours is provided, comprising: Obtain at least one undeveloped feature for the product; Based on the description information of each function to be developed, the target development nodes that match each function to be developed are determined from the constructed development map. Based on the development volume of each target development node in the development map, determine the amount of product to be developed; Based on the amount of product to be developed, the development time of the product is predicted.

[0005] In one possible implementation, determining the amount of product to be developed based on the development volume of each target development node in the development graph includes: Based on the development volume of each target development node in the development map, the undeveloped volume of each function to be developed is obtained. Based on the amount of development needed for each function to be developed, the amount of development needed for the product is obtained.

[0006] In one possible implementation, obtaining the undeveloped quantity of each function based on the development quantity of each target development node in the development graph includes: Determine the target development path for each target development node in the development map; Determine the amount of development work done for one or more functions at each target development node in each target development path; The amount of development of one or more functions in each target development node in each target development path is taken as the amount of development to be done for each function to be developed.

[0007] In one possible implementation, if a first development node appears among the target development nodes and there are two or more development paths in the development map, then the target development path of the first development node is the development path that satisfies the first condition among the two or more development paths. The first condition includes having the minimum total number of functions in the development path and / or having the minimum amount of functions developed in the development path.

[0008] In one possible implementation, determining the target development nodes matching each function to be developed from the constructed development map based on the description information of each function to be developed includes: Using a text similarity algorithm, we identify development nodes from the constructed development graph that have the same or similar node function description information as each function to be developed. Each development node that has the same or similar node function description information as each function to be developed is designated as a target development node that matches each function to be developed.

[0009] In one possible implementation, the step of constructing the development map includes: From the first configuration information, obtain multiple developed nodes and the dependencies between each developed node; From the second configuration information, obtain the functions under each developed node and the dependencies between the functions; Based on each developed node and the dependencies between them, and the functions under each developed node and the dependencies between them, a development graph is constructed.

[0010] In one possible implementation, the method further includes: Based on the functional description information of the nodes, two or more developed nodes with the same or similar development functions are merged among the multiple developed nodes. The development graph is constructed based on the relationships between each developed node and the dependencies between them, and the relationships between the functions under each developed node and the dependencies between them, resulting in the following: Based on the dependencies between development nodes (composed of merged and unmerged development nodes), and the dependencies between functions under each development node, a development graph is constructed.

[0011] In one embodiment, the method further includes: merging two or more functions with the same or similar functions among the functions under each developed node, based on the function description information of the function; The development graph is constructed based on the dependencies between development nodes (composed of merged and unmerged development nodes), the functions under each development node, and the dependencies between these functions. This process includes: Based on the dependencies between development nodes (composed of merged and unmerged development nodes) and the dependencies between functions (composed of merged and unmerged functions), a development graph is constructed.

[0012] In one possible implementation, predicting the development time of the product based on the amount of product to be developed includes: Based on the product's undeveloped quantity and development efficiency value, the undeveloped man-hours of the product are predicted.

[0013] According to a second aspect of this application, a product development time prediction device is provided, comprising: The first acquisition unit is used to acquire at least one undeveloped function of the product; The first determining unit is used to determine each target development node that matches each function to be developed from the constructed development map based on the description information of each function to be developed. The second determining unit is used to determine the amount of product to be developed based on the development amount of each target development node in the development map. The forecasting unit is used to forecast the development time of a product based on the amount of work to be done.

[0014] According to a third aspect of this application, an electronic device is provided, comprising: At least one processor; and A memory communicatively connected to the at least one processor; wherein, The memory stores instructions that can be executed by the at least one processor to enable the at least one processor to perform the method described in this application.

[0015] According to a fourth aspect of this application, a non-transitory computer-readable storage medium is provided storing computer instructions for causing the computer to perform the methods described in this application.

[0016] Compared with manual prediction in related technologies, the product development time prediction method and product development time prediction equipment of this application can realize intelligent and accurate prediction of product development time.

[0017] It should be understood that the description in this section is not intended to identify key or essential features of the embodiments of this application, nor is it intended to limit the scope of this application. Other features of this application will become readily apparent from the following description. Attached Figure Description

[0018] The above and other objects, features, and advantages of exemplary embodiments of this application will become readily understood by reading the following detailed description with reference to the accompanying drawings. Several embodiments of this application are illustrated in the drawings by way of example and not limitation, in which: In the accompanying drawings, the same or corresponding reference numerals indicate the same or corresponding parts.

[0019] Figure 1 This illustration shows the implementation flow of the product development time prediction method in the embodiments of this application. Figure 1 ; Figure 2 This illustration shows the implementation flow of the product development time prediction method in the embodiments of this application. Figure 2 ; Figure 3 This illustration shows the implementation flow of the product development time prediction method in the embodiments of this application. Figure 3 ; Figure 4 This illustration shows the implementation flow of the product development time prediction method in the embodiments of this application. Figure 4 ; Figure 5 A schematic diagram of the development map in an embodiment of this application is shown; Figure 6 This illustration shows a schematic diagram of the atlas template in an embodiment of this application; Figure 7 This invention provides a schematic diagram illustrating the composition of a product development time prediction device in an embodiment of this application. Figure 8 A schematic diagram of the composition structure of the electronic device in an embodiment of this application is shown. Detailed Implementation

[0020] To make the objectives, features, and advantages of this application more apparent and understandable, the technical solutions in the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.

[0021] To make the objectives, technical solutions, and advantages of this application clearer, the application will be further described in detail below with reference to the accompanying drawings. The described embodiments should not be regarded as limitations on this application. All other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.

[0022] In the following description, references are made to “some embodiments,” which describe a subset of all possible embodiments. However, it is understood that “some embodiments” may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.

[0023] In the following description, the terms "first" and "second" are used merely to distinguish similar objects and do not represent a specific ordering of objects. It is understood that "first" and "second" may be interchanged in a specific order or sequence where permitted, so that the embodiments of this application described herein can be implemented in an order other than that illustrated or described herein.

[0024] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used herein is for the purpose of describing embodiments of this application only and is not intended to limit this application.

[0025] It should be understood that in the various embodiments of this application, the sequence number of each implementation process does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.

[0026] The product development time prediction method in this application can automatically predict product development time, and compared with the manual prediction schemes in related technologies, it has predictive intelligence and accuracy. The technical solution of this application is described in detail below.

[0027] Figure 1 This illustration shows the implementation flow of the product development time prediction method according to an embodiment of this application. Figure 1 .like Figure 1 As shown, the method includes: S101: Obtain at least one undeveloped feature for the product.

[0028] In this step, at least one function to be developed for the product is obtained by reading the function description information of each function to be developed recorded in the Product Requirement Document (PRD).

[0029] In practical applications, based on the customer's actual usage of the product, the product manager can design the product's functions. One or more designed functions (function points or function nodes) are then recorded to form a Product Requirement Document (PRD). It can be understood that the designed functions recorded in the PRD can serve as the product's undeveloped features.

[0030] In the PRD file, for each functional point in the design, functional description information can be used to describe the function of that functional point. Functional description information can be understood as information describing the functions that the functional point can perform.

[0031] For example, the PRD records a feature to be developed—a page feature. This feature may have the following description: This feature indicates that the product has a page function; on the page, buttons A and B can be clicked. Button A is used to navigate to another page, and button B is used to navigate to the user's personal information. Thus, by reading the description information of each feature in the PRD, one or more features that the product needs to implement can be determined.

[0032] In practical applications, PRD is an essential document for the design and improvement of product functions. Based on such a document, the automatic prediction of development time can be achieved, which will inevitably avoid the problem of large workload caused by the need to collect various functions to be developed in the product.

[0033] S102: Based on the description information of each function to be developed, identify the target development nodes that match each function from the constructed development map.

[0034] The development graph collects functional nodes that can implement various functions of the product. For example, it includes nodes that implement the aforementioned page functions, nodes that implement routing functions, etc. Because the functions of the functional nodes in the development graph have already been developed, these nodes can be called development nodes. A target development node that matches one (or a) undeveloped function of the product can be a development node in the development graph that can implement that undeveloped function of the product. Alternatively, it can be a development node that can implement a function similar to that undeveloped function of the product.

[0035] The number of undeveloped features of a product recorded in the PRD can be one, two, or more. For each undeveloped feature of a product, the number of target development nodes identified from the development map can be one, two, or more. For example, for an undeveloped feature of a product, if the development node identified from the development map that matches it is development node 1, then development node 1 in the development map is considered to implement the same or similar function as the undeveloped feature of the product. If the development nodes identified from the development map that match it are development nodes 2 and 3, and development nodes 2 and 3 have no dependency relationship, then development node 2 in the development map can be considered one node that can implement the same or similar function as the undeveloped feature of the product, and development node 3 can be considered another node that can implement the same or similar function as the undeveloped feature of the product. In this case, only one of the two or three nodes with the same or similar function as the undeveloped feature of the product can be used to determine the amount of undeveloped features of the product.

[0036] If the development nodes identified from the development graph are development node 2 and development node 3, and development node 2 and development node 3 have a dependency relationship, such as development node 2 needing to call development node 3 to achieve the function of development node 2, then development node 2 and development node 3 can be considered as common nodes that can achieve the same or similar functions as the functions to be developed in the product.

[0037] For each feature to be developed in the PRD, development nodes with the same or similar functions as the product can be identified from the constructed development map based on the (functional) description information of each feature to be developed.

[0038] S103: Determine the amount of product to be developed based on the development amount of each target development node in the development map.

[0039] In this step, for each of the product's undeveloped functions, there is a target development node. The sum of the development quantities of all the target development nodes of the undeveloped functions in the development graph is taken as the product's undeveloped quantity.

[0040] S104: Based on the amount of product to be developed, predict the development time of the product.

[0041] The mapping between the amount of code to be developed and the development time can be pre-defined. For example, in this mapping, the development time for 1000-2000 lines of code to be developed is 3-5 days. The development time for 2000-3000 lines of code to be developed is 5-9 days. The aforementioned mapping is merely a specific example, and any reasonable mapping is within the scope of this application. In the mapping, the amount of code to be developed can be a specific value or a range. The development time can be a specific value or a range, depending on the specific circumstances.

[0042] In implementation, the development man-hours corresponding to the product's undeveloped quantity can be found from the corresponding relationship to predict the product's undeveloped man-hours. Alternatively, the product's undeveloped man-hours can be predicted based on the product's undeveloped quantity and development efficiency value. For example, dividing the product's undeveloped quantity by the development efficiency value yields a prediction of the undeveloped man-hours.

[0043] In S101~S104, a development map was used to achieve automatic prediction of development time, realizing intelligent prediction compared with manual prediction in related technologies. In particular, considering that the information provided in the development map, such as the development volume of development nodes, is highly accurate, the development volume of each target development node in the development map can be accurately determined, thereby achieving accurate prediction of the development time.

[0044] In some embodiments, such as Figure 2 As shown, determining the amount of product to be developed based on the development volume of each target development node in the development graph includes: S1031: Based on the development volume of each target development node in the development map, obtain the undeveloped volume of each function to be developed; S1032: Based on the amount of development to be done for each function to be developed, the amount of development to be done for the product is obtained.

[0045] In S1031-S1032, for a product's undeveloped function, the sum of the development quantities of all matching target development nodes in the development graph can be considered as the undeveloped quantity of that function. The sum of the undeveloped quantities of all undeveloped functions of the product can be considered as the product's undeveloped quantity. The development quantity of a development node in the development graph is represented by the amount of code in the development node or the amount of code in the functions called by the development node. A development node can implement its function by calling functions.

[0046] For example, suppose the functions to be developed include Function 1 and Function 2. In the development graph, Node 1 is the node that can implement the same or similar functions as Function 1, and Nodes 2 and 3 are the nodes that can implement the same or similar functions as Function 2 (Function 2 is implemented by Nodes 2 and 3 together). If Node 1 has 500 lines of code in the development graph, then the amount of code to be developed for Function 1 is 500. If Nodes 2 and 3 have 1000 and 2000 lines of code respectively, then the amount of code to be developed for Function 1 is 1000 + 2000 = 3000. Adding the amount of code to be developed for Function 1 and Function 2 gives the total amount of code to be developed for the product. This method for obtaining the amount of code to be developed for the product ensures intelligent and accurate prediction of working hours and is simple and easy to implement in engineering.

[0047] like Figure 3 As shown, in some embodiments, S1031 obtains the amount of development to be done for each function based on the development amount of each target development node in the development map, which can be achieved through the following scheme: S1031a: Determine the target development path for each target development node in the development map.

[0048] In the development graph, each development node can achieve its functionality by calling one or more functions. For example, development node 1 can achieve its functionality by calling functions 1 and 2. Function 1 enables the function of clicking button A to jump to another page in development node 1. Function 2 enables the function of clicking button B to jump to the user's personal information page in development node 1. Alternatively, development node 1 can achieve its functionality by sequentially calling functions 3 through 5. Each development node's development path is constituted by the sequentially called functions and the order in which they are called. For example, the aforementioned development path for development node 1 includes two paths: one is function 1 → function 2; the other is function 3 → function 4 → function 5. In the development graph, each development node has at least one development path, and its functionality is achieved by calling the functions along that path.

[0049] In practical applications, for each development function of the product, the target development node is identified, and its development path in the development graph is used as the target development path for the target development node in the development graph. Each target development node can achieve its function by calling a function in one of the identified one or more development paths.

[0050] S1031b: Determine the amount of development of one or more functions in each target development path for each target development node.

[0051] In this step, for each target development node of a feature to be developed, if it is identified that there is only one development path in the development graph, then the code volume of all functions called on that development path is calculated, and the result is taken as the development volume of the target development node in the target development path. If it is identified that there are two or more development paths in the development graph, then one of the development paths is selected as the target development path, and the code volume of all functions called on the selected development path is calculated, and the result is taken as the development volume of the target development node in the target development path.

[0052] S1031c: The development quantity of one or more functions in each target development path of each target development node is taken as the development quantity of each function to be developed.

[0053] In this step, for a feature to be developed, if there is only one target development node, the development amount of that target development node in the target development path can be considered as the undeveloped amount of that feature. If there are two or more target development nodes, the sum of the development amounts of all target development nodes in their respective target development paths can be considered as the undeveloped amount of that feature. The sum of the undeveloped amounts of all features can then be considered as the undeveloped amount of the product.

[0054] Schemes S1031a to S1031c are methods for calculating the amount of undeveloped functions of a product using a development graph. This development graph-based scheme is an automated calculation method, ensuring automatic prediction of development time. Furthermore, the information provided in the development graph, such as the development paths of development nodes and the development amount of functions called along those paths, is highly accurate. Therefore, based on the development amount of each target development node in the development graph, the accurate amount of undeveloped functions of the product can be determined, thus ensuring accurate prediction of development time.

[0055] In some embodiments, if a first development node appears among the target development nodes and there are two or more development paths in the development graph, then the target development path of the first development node is the development path among the two or more development paths that satisfies a first condition; wherein, satisfying the first condition includes having the minimum total number of functions in the development path and / or having the minimum amount of functions developed in the development path.

[0056] In layman's terms, if, after identification, a target development node for a feature to be developed is found to have two or more development paths in the development graph, to distinguish such a node from a node with only one development path in the development graph, this target development node is considered the first development node. For a first development node with two or more development paths, one development path can be randomly selected from the two or more development paths as the target development path for that node, which can be used to calculate the amount of work to be done. Alternatively, a development path that meets certain conditions, such as the first condition, can be selected as the target development path for that node. For example, from the two or more development paths, the development path with the fewest total number of functions can be selected as the target development path. Or, the path with the fewest number of functions and the fewest amount of function development can be selected as the target development path. Selecting the path with the fewest total number of functions and / or the fewest amount of function development as the target development path ensures that the amount of work to be done for the feature to be developed is relatively small, thereby facilitating the rapid calculation of predicted working hours.

[0057] Considering that each development node in the development graph also has functional description information to describe the functions that each development node can achieve, a text similarity algorithm can be used in implementation to identify development nodes from the constructed development graph that have the same or similar node functional description information as each function to be developed. These identified development nodes with the same or similar node functional description information are then used as target development nodes to match each function to be developed, thus achieving the aforementioned S102. The text similarity algorithm includes, but is not limited to, Natural Language Processing (NLP) techniques, BERT models, etc.

[0058] In layman's terms, for a feature to be developed, whose description information is textual, the algorithm calculates which development nodes(s) in the development graph have textual similarity to the description information of the feature to be developed, or whose textual similarity reaches a first preset threshold, such as 80%. In the development graph, nodes whose description information has textual similarity to the description information of the feature to be developed, or whose textual similarity reaches the first preset threshold, are considered to be matching nodes for the feature to be developed. The function implemented by these nodes is the same as or similar to the feature to be developed. This method of obtaining target development nodes ensures intelligent and accurate prediction of work hours and is simple and easy to implement in engineering.

[0059] The development graph in this application is a knowledge graph. A knowledge graph describes concepts, entities, and their relationships in the objective world in a structured form, expressing internet information in a way that more closely resembles human cognition, thus providing humans with better ways to understand and use the world. Knowledge graphs have revitalized internet semantic search and demonstrated powerful capabilities in intelligent question answering, becoming the infrastructure for knowledge-driven intelligent applications on the internet.

[0060] A knowledge graph, in essence, is a semantic network composed of nodes and edges. Nodes represent entities, concepts, or attributes. In this application, the nodes in the knowledge graph represent the functions they can perform. Edges represent the relationships between nodes. For example, node 1 and node 2 may have a mutual calling relationship, or node 1 and node 2 may have a relationship where node 2 is called by node 1. This relationship can also be called a dependency relationship. In this application, the knowledge graph can be constructed based on existing nodes in the network that can perform various functions and the dependencies between nodes. Furthermore, as... Figure 4 As shown, the steps for constructing the development graph in this application include: S401: Obtain multiple developed nodes and their dependencies from the first configuration information; In practical applications, numerous README files for developed nodes can be published on a network. The developers can record information such as the functionality implemented by each developed node (functional descriptions), the code of functions that each node can call, code comments, and the programming language in the README file, making it available to other users. In this application, the README files of multiple developed nodes already published on the network are used as the first configuration information. By analyzing this first configuration information, the functionality of each README file corresponding to a developed node, as well as the dependencies between different developed nodes, can be determined.

[0061] For example, the function of developed node 1 corresponding to the readme file is to implement page functionality. Developed node 1 can implement its page functionality by calling developed nodes 2 and 3. There is such a dependency relationship between developed node 1 and developed nodes 2 and 3.

[0062] In practical applications, the developed nodes published in the network implement a wide variety of functions. Considering the actual functional requirements of the product, the developed nodes obtained from the initial configuration information can be nodes related to those requirements. For example, the developed nodes obtained from the initial configuration information could be nodes capable of fulfilling all the actual functional requirements of the product. Based on such nodes, constructing a development graph allows for targeted construction of node dependencies related to specific requirements. This approach is suitable for engineering use and easy to promote.

[0063] S402: Obtain the functions under each developed node and the dependencies between the functions from the second configuration information; The second configuration information is a subset of the first configuration information, including functional descriptions of each developed node, code of functions that can be called by each developed node, and code comments. Based on the Zero-Shot extraction algorithm using Prompt Learning, the second configuration information is analyzed to extract the functions under each developed node and the dependencies between these functions.

[0064] For example, the functionality of the developed node 1 can be achieved by sequentially calling function 1 and function 2. The functions under the developed node 1 include function 1 and function 2, and the dependency between function 1 and function 2 is that function 2 is called by function 1.

[0065] S403: Based on each developed node and the dependencies between each developed node, and each function under each developed node and the dependencies between the functions, construct the relationships to obtain the development graph.

[0066] In this step, the construction of relationships includes the construction of dependencies between developed nodes and the construction of dependencies between functions under developed nodes. Figure 5 It is part of the development roadmap that is being built. From Figure 5 As can be seen from the constructed development graph, it is clear which developed nodes have dependencies on each other, which functions have dependencies on each other, and which developed nodes require the cooperation of which developed nodes to realize their functions.

[0067] During implementation, settings such as can be pre-configured. Figure 6The diagram template shown is as follows. A Project represents a work unit, including a project name (Name), which is customized by the project's developer, such as the "Product A Functional Design" project. Each Project includes one or more developed (feature) nodes. Each node includes a node name (Name) and a description of its function (Description). Each developed (feature) node is implemented by calling one or more functions. Each function includes a function name (Name) and a description of its function (Description). Each function has its own parameters (parameters). In addition to its own parameters, a function may also have a return value from other functions, or a return value from other functions.

[0068] This paper employs a knowledge graph construction method. Based on each developed node and its dependencies, and the functions under each developed node and their dependencies, relationships are constructed according to a graph template to obtain a development graph that represents the dependencies between nodes and functions. It is understood that the development graph in this application is a type of structured data used to represent the dependencies between nodes and functions. The knowledge graph construction method includes, but is not limited to, top-down and bottom-up construction approaches.

[0069] In steps S401-S403, based on configuration information (including first and second configuration information), the dependencies required to construct the development graph (including dependencies between nodes and dependencies between functions) are obtained, and the development graph is constructed based on these dependencies. This represents a novel approach to constructing development graphs. This approach is highly feasible and easy to implement.

[0070] It is understandable that among the numerous developed nodes published in the network, there may be nodes with the same or similar functions. If these nodes exist as independent entities in the constructed development graph, it will inevitably increase the size of the development graph, leading to increased storage space requirements. Considering this, during implementation, based on the node's functional description information, two or more developed nodes with the same or similar functions are merged.

[0071] For the published and developed nodes in the network, a text similarity algorithm is used to identify whether there are nodes with the same or similar functional description information among the developed nodes. If so, such nodes are considered to have the same or similar development functions. These nodes can be merged into one node and used as a merged development node. There will also be nodes with different or dissimilar functions among the developed nodes in the network; naturally, there is no need to merge them. Such nodes are used as unmerged development nodes. Through the aforementioned scheme, the developed nodes in the network mainly include two types: merged development nodes and unmerged development nodes. Correspondingly, the S403 scheme can be implemented as follows: based on the dependency relationships between the development nodes composed of merged and unmerged development nodes, and the dependencies between the functions under each development node, a development graph is constructed. In implementation, a knowledge graph construction method can be used according to the graph template to construct the dependency relationships between the development nodes and the dependencies between the functions under each development node, thereby obtaining a development graph with a suitable structure. This effectively avoids problems caused by the large structure of the development graph.

[0072] In practical applications, each function under a developed node has a functional description describing its implemented function. Functions with the same or similar functions may exist under different development nodes. If functions with the same or similar functions exist independently in the constructed development graph, it will inevitably increase the size of the development graph structure, thus increasing storage space consumption. Considering this situation, based on the functional description information, two or more functions with the same or similar functions under each developed node can be merged.

[0073] During implementation, a text similarity algorithm is used to identify whether there are functions with the same or similar function descriptions under each function of the developed nodes. If so, these functions are considered to have the same or similar functions and can be merged into one function for use as a merged function. Under each function of the developed nodes, there will also be functions with different or dissimilar functions; naturally, these functions do not need to be merged and are used as unmerged functions. Through the aforementioned scheme, the functions under the developed nodes in the network mainly fall into two categories: merged functions and unmerged functions.

[0074] Based on this, the aforementioned scheme of constructing a development graph based on the dependencies between development nodes (composed of merged and unmerged development nodes) and the dependencies between functions under each development node can be implemented as follows: The development graph is obtained by constructing relationships based on the dependencies between development nodes (composed of merged and unmerged development nodes) and the dependencies between functions (composed of merged and unmerged functions). In implementation, a knowledge graph construction method can be used according to a graph template to construct the dependencies between development nodes and between functions, thereby obtaining a development graph with a suitable structure. This effectively avoids problems caused by the large structure of the development graph.

[0075] The aforementioned schemes, such as merging nodes with the same or similar functions and / or merging functions with the same or similar functions, can be regarded as optimized construction schemes for the development graph, which can effectively reduce the structure of the development graph and avoid occupying storage resources.

[0076] Figure 5 This is a schematic diagram of the development map in an embodiment of this application. Figure 5 This is only a part of the constructed development roadmap. It is assumed that the product's undeveloped features, recorded in the PRD, include undeveloped feature 1 and undeveloped feature 2.

[0077] For feature 1 to be developed, based on its functional description, the target development node matching feature 1 is identified from the constructed development graph. Figure 5 Node 1 in the middle. From Figure 5 As can be seen, node 1 implements the function to be developed, node 2, and node 3 by calling function 4. Function 4 needs to call function 5 to implement its functionality. Function 5 calls functions 2 and 3 to implement its functionality. Node 2 needs to call function 1 to implement its functionality.

[0078] The development path for node 1 is a single path. Specifically, the development path calls node 2 (node ​​2 calls function 1), node 3, and function 4 (function 4 calls function 5, and function 5 calls functions 2 and 3). Calculate the total code size of all functions along the development path of node 1, such as the code size of functions 1 through 5, as the amount of code to be developed for feature 1.

[0079] For feature 2 to be developed, based on its functional description, the target development node matching feature 2 is identified from the constructed development graph. Figure 5 Node 4 in the middle. From Figure 5As can be seen, node 4 implements the second function by calling functions 4, 5, 3, 6, and 7. Specifically, function 4 needs to call function 5 to implement its functionality. Function 5 calls functions 2 and 3 to implement its functionality.

[0080] The development path for node 4 is a single path. Specifically, the development path could be a call to function 4 (function 4 calls function 5, function 5 calls functions 2 and 3), node 3, function 6, node 5, and function 7. Calculate the total code size of all functions along the development path of node 4, such as the code size of functions 2 through 7, as the amount of code to be developed for feature 2.

[0081] The sum of the undeveloped quantities of undeveloped function 1 and undeveloped function 2 can be used as the product's undeveloped quantity. Assuming a preset undeveloped efficiency value, such as 1000 lines of code that each person can edit per day, and the product's undeveloped quantity is 5000 lines, then dividing the product's undeveloped quantity by the daily code editing quantity per person can predict the number of days required to develop undeveloped functions 1 and 2, such as 5 days.

[0082] Understandable, Figure 5 In this context, "dependent on" between nodes can be viewed as a dependency relationship. "Call" can be viewed as a calling relationship. A node's call to a function can be seen as the node's functionality depending on the function for its implementation.

[0083] As can be seen, the technical solution of this application utilizes a development graph to achieve automatic prediction of development time, realizing intelligent prediction compared to manual prediction in related technologies. Since the development graph can provide the accurate amount of code for each development node, the accurate amount of product to be developed can be determined based on the development amount of each target development node in the development graph, thereby achieving accurate prediction of the development time.

[0084] This application provides an embodiment of a product development time prediction device, such as... Figure 7 As shown, it includes: The first obtaining unit 701 is used to obtain at least one undeveloped function of the product; The first determining unit 702 is used to determine each target development node that matches each function to be developed from the constructed development map based on the description information of each function to be developed. The second determining unit 703 is used to determine the amount of product to be developed based on the development amount of each target development node in the development map. The prediction unit 704 is used to predict the development time of a product based on the amount of product to be developed.

[0085] In some embodiments, the second determining unit 703 is configured to: Based on the development volume of each target development node in the development map, the undeveloped volume of each function to be developed is obtained. Based on the amount of development needed for each function to be developed, the amount of development needed for the product is obtained.

[0086] In some embodiments, the second determining unit 703 is configured to: Determine the target development path for each target development node in the development map; Determine the amount of development work done for one or more functions at each target development node in each target development path; The amount of development of one or more functions in each target development node in each target development path is taken as the amount of development to be done for each function to be developed.

[0087] In some embodiments, if a first development node appears among the target development nodes and there are two or more development paths in the development map, then the target development path of the first development node is the development path that satisfies the first condition among the two or more development paths. The first condition includes having the minimum total number of functions in the development path and / or having the minimum amount of functions developed in the development path.

[0088] In some embodiments, the first determining unit 702 is configured to: Using a text similarity algorithm, we identify development nodes from the constructed development graph that have the same or similar node function description information as each function to be developed. Each development node that has the same or similar node function description information as each function to be developed is designated as a target development node that matches each function to be developed.

[0089] In some embodiments, the device further includes a construction unit for: From the first configuration information, obtain multiple developed nodes and the dependencies between each developed node; From the second configuration information, obtain the functions under each developed node and the dependencies between the functions; Based on each developed node and the dependencies between them, and the functions under each developed node and the dependencies between them, a development graph is constructed.

[0090] The building unit is used to: merge two or more developed nodes with the same or similar development functions among the plurality of developed nodes, based on the functional description information of the nodes; Based on the dependencies between development nodes (composed of merged and unmerged development nodes), and the dependencies between functions under each development node, a development graph is constructed.

[0091] In some embodiments, the building unit is configured to: Based on the function description information, among the functions under each developed node, two or more functions with the same or similar functions are merged; Based on the dependencies between development nodes (composed of merged and unmerged development nodes) and the dependencies between functions (composed of merged and unmerged functions), a development graph is constructed.

[0092] In some embodiments, the prediction unit 704 is configured to: Based on the product's undeveloped quantity and development efficiency value, the undeveloped man-hours of the product are predicted.

[0093] It should be noted that the product development time prediction device in this application embodiment solves the problem in a similar way to the aforementioned product development time prediction method. Therefore, the implementation process and implementation principle of the product development time prediction device can be found in the description of the implementation process and implementation principle of the aforementioned method, and the repeated parts will not be repeated.

[0094] According to embodiments of this application, this application also provides an electronic device and a readable storage medium.

[0095] Figure 8 A schematic block diagram of an example electronic device 800 that can be used to implement embodiments of this application is shown. The electronic device is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device may also represent various forms of mobile devices, such as personal digital processors, cellular phones, smartphones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely illustrative and are not intended to limit the implementation of the application described and / or claimed herein.

[0096] like Figure 8As shown, device 800 includes a computing unit 801, which can perform various appropriate actions and processes based on a computer program stored in read-only memory (ROM) 802 or a computer program loaded from storage unit 808 into random access memory (RAM) 803. RAM 803 may also store various programs and data required for the operation of device 800. The computing unit 801, ROM 802, and RAM 803 are interconnected via bus 804. Input / output (I / O) interface 805 is also connected to bus 804.

[0097] Multiple components in device 800 are connected to I / O interface 805, including: input unit 806, such as keyboard, mouse, etc.; output unit 807, such as various types of monitors, speakers, etc.; storage unit 808, such as disk, optical disk, etc.; and communication unit 809, such as network card, modem, wireless transceiver, etc. Communication unit 809 allows device 800 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks.

[0098] The computing unit 801 can be a variety of general-purpose and / or special-purpose processing components with processing and computing capabilities. Some examples of the computing unit 801 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various special-purpose artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, a digital signal processor (DSP), and any suitable processor, controller, microcontroller, etc. The computing unit 801 performs the various methods and processes described above, such as the product development time prediction method. For example, in some embodiments, the product development time prediction method may be implemented as a computer software program tangibly contained in a machine-readable medium, such as storage unit 808. In some embodiments, part or all of the computer program may be loaded and / or installed on device 800 via ROM 802 and / or communication unit 809. When the computer program is loaded into RAM 803 and executed by the computing unit 801, one or more steps of the product development time prediction method described above may be performed. Alternatively, in other embodiments, the computing unit 801 may be configured to perform the product development time prediction method by any other suitable means (e.g., by means of firmware).

[0099] Various embodiments of the systems and techniques described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific labeled products (ASSPs), systems-on-a-chip (SoCs), payload-programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments may include implementations in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which may be a dedicated or general-purpose programmable processor, capable of receiving data and instructions from a storage system, at least one input device, and at least one output device, and transmitting data and instructions to the storage system, the at least one input device, and the at least one output device.

[0100] The program code used to implement the methods of this application may be written in any combination of one or more programming languages. This program code may be provided to a processor or controller of a general-purpose computer, special-purpose computer, or other programmable data processing device, such that when executed by the processor or controller, the functions / operations specified in the flowcharts and / or block diagrams are implemented. The program code may be executed entirely on a machine, partially on a machine, as a standalone software package partially on a machine and partially on a remote machine, or entirely on a remote machine or server.

[0101] In the context of this application, a machine-readable medium can be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. Machine-readable media can be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fibers, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.

[0102] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device for displaying information to the user (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor); and a keyboard and pointing device (e.g., a mouse or trackball) through which the user provides input to the computer. Other types of devices can also be used to provide interaction with the user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including sound input, voice input, or tactile input).

[0103] The systems and technologies described herein can be implemented in computing systems that include backend components (e.g., as a data server), or computing systems that include middleware components (e.g., an application server), or computing systems that include frontend components (e.g., a user computer with a graphical user interface or web browser through which a user can interact with implementations of the systems and technologies described herein), or any combination of such backend, middleware, or frontend components. The components of the system can be interconnected via digital data communication of any form or medium (e.g., a communication network). Examples of communication networks include local area networks (LANs), wide area networks (WANs), and the Internet.

[0104] Computer systems can include clients and servers. Clients and servers are generally located far apart and typically interact via communication networks. Client-server relationships are created by computer programs running on the respective computers and having a client-server relationship with each other. Servers can be cloud servers, servers in distributed systems, or servers incorporating blockchain technology.

[0105] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

Claims

1. A method for predicting product development man-hours, comprising: Obtain at least one undeveloped feature for the product; Based on the description information of each function to be developed, the target development nodes that match each function to be developed are determined from the constructed development map. Based on the development volume of each target development node in the development map, determine the amount of product to be developed; Based on the amount of product to be developed, the development time of the product is predicted; The steps for constructing the development map include: From the first configuration information, obtain multiple developed nodes and the dependencies between each developed node; From the second configuration information, obtain the functions under each developed node and the dependencies between the functions; Based on each developed node and the dependencies between them, and the functions under each developed node and the dependencies between them, a development graph is constructed.

2. The method according to claim 1, wherein determining the amount of product to be developed based on the development amount of each target development node in the development graph includes: Based on the development volume of each target development node in the development map, the undeveloped volume of each function to be developed is obtained. Based on the amount of development needed for each function to be developed, the amount of development needed for the product is obtained.

3. The method according to claim 2, wherein obtaining the undeveloped quantity of each function based on the development quantity of each target development node in the development graph includes: Determine the target development path for each target development node in the development map; Determine the amount of development work done for one or more functions at each target development node in each target development path; The amount of development of one or more functions in each target development node in each target development path is taken as the amount of development to be done for each function to be developed.

4. According to claim 3, if a first development node appears among the target development nodes and there are two or more development paths in the development map, then the target development path of the first development node is the development path that satisfies the first condition among the two or more development paths. wherein The first condition being met includes having the minimum total number of functions in the development path and / or having the minimum amount of functions developed in the development path.

5. The method according to claim 1, wherein determining each target development node matching each function to be developed from the constructed development map based on the description information of each function to be developed includes: Using a text similarity algorithm, we identify development nodes from the constructed development graph that have the same or similar node function description information as each function to be developed. Each development node that has the same or similar node function description information as each function to be developed is designated as a target development node that matches each function to be developed.

6. The method according to claim 1, further comprising: Based on the functional description information of the nodes, two or more developed nodes with the same or similar development functions are merged among the multiple developed nodes. The development graph is constructed based on the relationships between each developed node and the dependencies between them, and the relationships between the functions under each developed node and the dependencies between them, resulting in the following: Based on the dependencies between development nodes (composed of merged and unmerged development nodes), and the dependencies between functions under each development node, a development graph is constructed.

7. The method according to claim 6, further comprising: Based on the function description information, among the functions under each developed node, two or more functions with the same or similar functions are merged; The development graph is constructed based on the dependencies between development nodes (composed of merged and unmerged development nodes), the functions under each development node, and the dependencies between these functions. This process includes: Based on the dependencies between development nodes (composed of merged and unmerged development nodes) and the dependencies between functions (composed of merged and unmerged functions), a development graph is constructed.

8. The method according to claim 1, wherein predicting the development time of the product based on the amount of product to be developed includes: Based on the product's undeveloped quantity and development efficiency value, the undeveloped man-hours of the product are predicted.

9. A device for predicting product development time, comprising: The first acquisition unit is used to acquire at least one undeveloped function of the product; The first determining unit is used to determine the target development nodes that match each function to be developed from the constructed development map based on the description information of each function to be developed. The second determining unit is used to determine the amount of product to be developed based on the development amount of each target development node in the development map. The forecasting unit is used to forecast the development time of a product based on the amount of product to be developed. The device also includes a construction unit for: From the first configuration information, obtain multiple developed nodes and the dependencies between each developed node; From the second configuration information, obtain the functions under each developed node and the dependencies between the functions; Based on each developed node and the dependencies between them, and the functions under each developed node and the dependencies between them, a development graph is constructed.

Citation Information

Patent Citations

  • Method and device for associating software function module with principal based on knowledge graph

    CN114064036A

  • Method and device for estimating working hours of software development project, computer equipment and medium

    CN115630916A