A resource adjustment method, device and equipment
By decomposing software projects and building risk indicators, and combining convolutional neural network algorithm to predict the risk level of project units, the problem of inaccurate risk prediction of software projects in the existing technology is solved, and more reasonable resource allocation and more efficient software project promotion are achieved.
Patent Information
- Application Number
- CN202110174202.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-02-09
- Publication Date
- 2025-06-13
- Estimated Expiration
- 2041-02-09
AI Technical Summary
The existing software project risk prediction methods are difficult to effectively apply to complex and rapidly changing software systems, resulting in unreasonable resource allocation and affecting the efficiency and accuracy of software project promotion.
By decomposing the target software project, the correlation between the project unit and the software functional module is determined, risk indicators are constructed, the convolutional neural network algorithm is used to predict the risk level of the project unit, and resource allocation is adjusted according to the risk level.
It improves the rationality of software project resource allocation, enhances the efficiency and accuracy of software project promotion, and reduces unreasonable resource losses.
Smart Images

Figure CN112949825B_ABST
Abstract
Description
Technical Field
[0001] This specification relates to the field of big data technology, and in particular, to a resource adjustment method, device, and equipment. Background Art
[0002] In the process of software project promotion such as software system development, maintenance, and improvement, various risks usually exist, which affect the accurate and efficient promotion of software projects. For example, dependencies between software systems, inherent defect repair, and changes in software requirements may all lead to the risk that software projects cannot be accurately and efficiently promoted. Therefore, risk prediction of software projects is very important for the efficient promotion of software projects.
[0003] Currently, the commonly used software project risk prediction methods are prediction based on expert experience and risk prediction based on historical software project data. However, with the development of technology, the complexity of software system architectures is getting higher, functions are added and modified more frequently, expert experience usually has problems of inconsistency or incompleteness, and historical software project data is difficult to reflect the risks that may exist in newly added or re-modified function modules, resulting in the constructed risk prediction model not being well applicable to current software projects. This may further lead to unreasonable allocation of software project resources, affecting the efficiency and accuracy of software project promotion.
[0004] In response to the above problems, there is currently no effective solution. Summary of the Invention
[0005] The purpose of the embodiments of this specification is to provide a resource adjustment method, device, and equipment, which can improve the rationality of resource allocation and thus improve the high-efficiency and accuracy of software project promotion.
[0006] The resource adjustment method, device, and equipment provided in this specification are implemented in the following manner:
[0007] A resource adjustment method, the method includes: decomposing a target software project to obtain multiple project units of the target software project; determining at least one software function module associated with a corresponding project unit based on the function implementation requirement information of the project unit; constructing a risk index of the software function module relative to the associated project unit according to the module update information of the software function module relative to the associated project unit; using the risk indexes of the respective software function modules associated with the project unit to predict the risk degree of the corresponding project unit, so as to adjust the resource allocation of the target software project by using the risk degrees of the respective project units of the target software project.
[0008] In some other embodiments of the method provided in this specification, the method further includes: obtaining an inherent risk indicator of a software function module, where the inherent risk indicator refers to indicator data used to reflect the inherent risk characteristics of the software function module; taking the risk indicator constructed according to the module update information of the software function module relative to the associated project unit as the potential risk indicator of the software function module relative to the associated project unit; correlating the inherent risk indicator of the software function module and the potential risk indicator of the software function module relative to the associated project unit to obtain the risk indicator of the software function module relative to the associated project unit.
[0009] In some other embodiments of the method provided in this specification, predicting the risk level of the corresponding project unit includes: constructing a risk indicator vector of the corresponding software function module based on the risk indicator of the software function module; combining the risk indicator vectors of at least one software function module associated with the project unit to obtain a risk matrix of the corresponding project unit; and using the risk matrix to predict the risk level of the corresponding project unit.
[0010] In some other embodiments of the method provided in this specification, assuming that a row / column of the risk matrix corresponds to a software function module, after obtaining the risk matrix of the corresponding project unit, the method further includes: obtaining the reference row / column number in the risk prediction process; splitting the risk matrix with the row / column number greater than the reference row / column number, and the row / column number of the split matrix is less than or equal to the reference row / column number; combining multiple risk matrices with the row / column number less than the first preset threshold and / or the split matrix, and the row / column number of the combined matrix is less than or equal to the reference row / column number; where the reference row / column number is greater than the first preset threshold; performing zero-padding processing on the combined or split matrix with the row / column number less than the reference row / column number as the reference matrix, so that the row / column number of the reference matrix is equal to the reference row / column number; recording the project unit information included in each reference matrix; where the project unit information includes the project units included in the reference matrix, the total number of software function modules included, and the number of software function modules of each project unit included under the reference matrix; correspondingly, using the reference matrix and the project unit information included in the reference matrix to predict the risk level of each project unit in the target software project.
[0011] In some other embodiments of the method provided in this specification, predicting the risk levels of the project units in the target software project by using the reference matrix and the project unit information included in the reference matrix includes: obtaining the risk probabilities of each reference matrix and the project unit information included therein; for any project unit included in any reference matrix, calculating the ratio of the number of software function modules of the project unit under the reference matrix to the total number of software function modules included in the reference matrix, and taking the product of the calculated ratio and the risk probability of the reference matrix as the initial risk probability of the project unit; for any project unit, extracting the initial risk probabilities of the project unit, and determining the risk level of the corresponding project unit based on the sum of the extracted initial risk probabilities.
[0012] In some other embodiments of the method provided in this specification, a convolutional neural network algorithm is used to predict the risk levels of the project units in the target software project.
[0013] On the other hand, an embodiment of this specification also provides a resource adjustment device, which includes: a splitting module for decomposing the target software project to obtain multiple project units of the target software project; an association module determination module for determining at least one software function module associated with the corresponding project unit based on the function implementation requirement information of the project unit; a risk index construction module for constructing a risk index of the software function module relative to the associated project unit according to the module update information of the software function module relative to the associated project unit; a risk level prediction module for predicting the risk level of the corresponding project unit by using the risk indexes of the software function modules associated with the project unit; and a resource adjustment module for adjusting the resource adjustment of the target software project by using the risk levels of the project units of the target software project.
[0014] In some other embodiments of the device provided in this specification, the device further includes: a risk index acquisition module for acquiring the inherent risk index of the software function module, where the inherent risk index is index data used to reflect the inherent risk characteristics of the software function module; the risk index construction module is further used to use the risk index constructed according to the module update information of the software function module relative to the associated project unit as the potential risk index of the software function module relative to the associated project unit; and associating the inherent risk index of the software function module and the potential risk index of the software function module relative to the associated project unit to obtain the risk index of the software function module relative to the associated project unit.
[0015] In some other embodiments of the device provided in this specification, the risk level prediction module is further used to predict the risk levels of the project units in the target software project by using a convolutional neural network algorithm.
[0016] On the other hand, an embodiment of the present specification further provides a resource adjustment device, which is applied to a server. The device includes at least one processor and a memory for storing processor-executable instructions. When the instructions are executed by the processor, the steps of the method described in any one or more of the above embodiments are implemented.
[0017] The software system risk prediction method, device and equipment provided by one or more embodiments of the present specification split a software project by combining the functional implementation nodes of the software project to obtain multiple project units. And based on the functional implementation requirements of each project unit, an association is established between the project unit and the functional module of the software system. Then, for the possible impact of each project unit on the associated functional module, the risk indicators of the corresponding functional module for the project unit are refined. After that, the risk of the project unit can be predicted based on the risk indicators of the functional units associated with the project unit, so that the risks of each risk point in the software project can be accurately controlled, while ensuring the accurate and efficient progress of the software project, further reducing the unreasonable consumption of resources. BRIEF DESCRIPTION OF THE DRAWINGS
[0018] In order to more clearly illustrate the technical solutions in the embodiments of the present specification or the prior art, the following will briefly introduce the drawings required for the description of the embodiments or the prior art. Obviously, the drawings in the following description are only some embodiments recorded in the present specification. For those of ordinary skill in the art, without creative efforts, other drawings can also be obtained based on these drawings. In the drawings:
[0019] Figure 1 It is a schematic flowchart of an embodiment of a resource adjustment method provided by the present specification;
[0020] Figure 2 It is a schematic diagram of the management system display interface in an embodiment provided by the present specification;
[0021] Figure 3 It is a schematic diagram of the basic description information of a software project in an embodiment provided by the present specification;
[0022] Figure 4 It is a schematic diagram of a requirement item and requirement item information in an embodiment provided by the present specification;
[0023] Figure 5 It is a schematic diagram of a requirement entry and requirement entry information in an embodiment provided by the present specification;
[0024] Figure 6 It is a schematic diagram of a requirement sub-entry and requirement sub-entry information in an embodiment provided by the present specification;
[0025] Figure 7 Schematic diagram of tasks and task information in an embodiment provided in this specification;
[0026] Figure 8 Schematic diagram of the requirements tree of a software project in an embodiment provided in this specification;
[0027] Figure 9 Schematic diagram of the decomposition of a software project in an embodiment provided in this specification;
[0028] Figure 10 Schematic diagram of potential risk indicators of software function modules in an embodiment provided in this specification;
[0029] Figure 11 Schematic diagram of the merging and splitting of a risk matrix in an embodiment provided in this specification;
[0030] Figure 12 Schematic diagram of the module structure of another resource adjustment device provided in this specification. Detailed implementation manners
[0031] In order to enable those skilled in the art to better understand the technical solutions in this specification, the following will clearly and completely describe the technical solutions in one or more embodiments of this specification in conjunction with the accompanying drawings in one or more embodiments of this specification. Obviously, the described embodiments are only part of the embodiments of the specification, rather than all the embodiments. Based on one or more embodiments of the specification, all other embodiments obtained by those of ordinary skill in the art without creative efforts shall fall within the scope of protection of the embodiment solutions of this specification.
[0032] In a scenario example provided by an embodiment of this specification, the resource adjustment method can be applied to a device for performing resource adjustment. The device can include a single server or a server cluster composed of multiple servers. A software project can refer to processes such as software development, maintenance, and improvement. An enterprise can set processes such as software development, maintenance, and improvement as a series of software projects according to its own needs to facilitate resource allocation and management. The processing content included in any software project can be set according to requirements. During the processing of a software project, it may involve adding software function modules, modifying software function modules in an existing software system, and calling software function modules in an existing software system. In the embodiments of this specification, starting from the risk indicators of the software function modules associated with each project unit of the software project, the risk levels of each project unit are accurately evaluated, and then, based on the risk levels of each project unit, the resources required for the software project are adjusted, which can improve the rationality of resource utilization while ensuring the accurate and efficient progress of the software project.
[0033] Figure 1 This is a schematic flowchart of an embodiment of the resource adjustment method provided in this specification. Although this specification provides method operation steps or device structures as shown in the following embodiments or drawings, based on routine or non-creative labor, more or fewer operation steps or module units may be included in the method or device. In steps or structures where there is no necessary causal relationship logically, the execution order of these steps or the module structure of the device is not limited to the execution order or module structure shown in the embodiments or drawings of this specification. When the method or module structure is applied to an actual device, server, or terminal product, it can be executed sequentially or in parallel according to the method or module structure shown in the embodiments or drawings (for example, in an environment of parallel processors or multi-threaded processing, and even including an implementation environment of distributed processing or server clusters). A specific example is as follows Figure 1 As shown, in an embodiment of the resource adjustment method provided in this specification, the method can be applied to a server of the data processing device, and the method may include the following steps:
[0034] S20: Decompose the target software project to obtain multiple project units of the target software project.
[0035] The target software project may refer to the software project currently targeted for resource adjustment processing. A software project may refer to a processing process such as software development, maintenance, and improvement. An enterprise can set the processing processes such as software development, maintenance, and improvement as a series of software projects according to its own needs, so as to facilitate resource allocation and management. The processing content included in any software project can be set according to requirements.
[0036] The server can perform decomposition processing on the target software project. For example, the processing process of the target software project can be split according to the software functions to be realized by the software project, data processing logic, etc., to obtain a series of project units. Correspondingly, the project unit may refer to the software project implementation unit obtained after decomposing the target software project. The project unit can be marked as Task, abbreviated as T.
[0037] For example, for the software project "ATM Cash and Digital RMB Two-way Exchange Project", this software project refers to a software development project for an ATM to realize the function of two-way exchange of cash and digital RMB. A requirements document can be configured in advance according to requirements, and this requirements document contains the processing details required during the implementation process of the software project. This software project can be decomposed layer by layer. For example, it can be decomposed layer by layer into requirement items, requirement entries, requirement sub-entries, and tasks. Among them, tasks can be used as project units. Of course, the above decomposition process is only a preferred example for illustration and does not directly limit the solutions of the embodiments of this specification.
[0038] As shown Figure 2 in Figure 2 Figure 1, it is an example of the display interface of the management system for the "ATM Cash and Digital RMB Two-way Exchange Project". The left sidebar is the software project management tab bar, and the tab bar gives the label names of information such as requirement items, requirement entries, requirement sub-entries, and tasks. The right side is the information display interface corresponding to the respective labels. As shown Figures 3 to 7 in Figure 3 Figure 2, business personnel can configure the basic description information of the software project as needed (as shown Figure 4 in Figure 5 Figure 3), the requirement items and requirement item information included in the software project (as shown Figure 6 in Figure 7 Figure 4), the requirement entries and requirement entry information included in the requirement item (as shown Figure 8 in
[0039] Figure 9 Figure 5), the requirement sub-entries and requirement sub-entry information included in the requirement entry (as shown
[0040] Figure 6), the tasks and task information included in the requirement sub-entry (as shown
[0041] Figure 7), etc. Based on the above-configured information, a requirement tree of the software project can also be generated (as shown
[0042] The server can establish an association between project units and software function modules. For example, the project units can be mapped to at least one software function module based on the functional implementation requirement information of the project units, and the functional requirements of the project units are implemented by the at least one software function module. For example, if it is analyzed which software function module codes need to be modified or which software function modules need to be added to complete a project unit, an association can be established between the project unit and the software function module. As Figure 7 shown Figure 7 On the right side of, the function items of the "Digital Currency Error Handling Interface F_DCCA Sub-entry" are given, and the software function modules corresponding to the project unit (specific software function module information is not shown) can be configured in the function items.
[0043] S24: Construct a risk indicator of the software function module relative to the associated project unit according to the module update information of the software function module relative to the associated project unit.
[0044] After determining at least one software function module corresponding to the project unit, the module update information such as the modification direction, function modification, and code modification of the software function module for the project unit can be evaluated first, and a series of risk indicators can be refined. The risk indicator can be used as a potential risk indicator, marked as ReqFactor, abbreviated as RF.
[0045] Such as Figure 10 shown, for a certain project unit T 11 a newly added software function module M 2 , the potential risk indicators that can be refined based on the update information can be the expected number of newly added functions, the number of test cases to be added, the number of external interfaces to be added, the expected number of functions affecting other modules, etc. involved in the newly added module M 2 . Such as T 11 involves modifying an existing software function module M 1 , the software function module M 1 when adapting to the function implementation of the project unit T 11 , the expected number of modified functions RF 11 , the expected number of modified code lines RF 12 , the predicted number of test cases to be added RF 13 , the expected number of affected functions, the expected number of external interfaces to be added, etc.
[0046] The existing project risk information usually differs significantly from the current project development requirements. Therefore, it is difficult to accurately assess the risks of the current project development only by combining the existing project risk information. In this embodiment, by utilizing the direct impact of each project unit in project development on the software function units involved, potential risk indicators that can reflect the risks of the current software project progress are refined, which can more accurately characterize the possible risk characteristics of project units during the current progress, thereby improving the accuracy of the current software project risk assessment.
[0047] S26: Predict the risk level of the corresponding project unit by using the risk indicators of the software function modules associated with the project unit.
[0048] For any project unit, the server can use the potential risk indicators of the software function modules associated with the project unit to predict the risk level of the project unit. For example, by constructing a risk prediction model, the potential risk indicators of the software function modules associated with the project unit can be used as the input data of the risk prediction model to predict the risk level of the corresponding project unit.
[0049] In some embodiments, preferably, the risk prediction model can be constructed based on the convolutional neural network algorithm. The convolutional neural network does not require manual setting of rules and has good robustness to the input. However, it is very difficult to accurately capture the risk rules of software development tasks, and there are no explicit rules to capture them. Therefore, using the convolutional neural network algorithm can well construct the risk prediction model in the project risk identification scenario, improving the accuracy and efficiency of risk identification. Of course, other types of classification algorithms can also be used to construct the risk prediction model.
[0050] The risk indicator vector of the corresponding software function module can be constructed based on the risk indicator of the software function module. By combining the risk indicator vectors of at least one software function module associated with the project unit, the risk matrix of the corresponding project unit can be obtained. The risk matrix can be used as the input of the risk prediction model to predict the risk level of the corresponding project unit. Since the number of software function modules included in the risk matrices of different project units is not a constant value, while the input matrix of the convolutional neural network is a matrix of a constant size, adaptation is required between the two. In some embodiments, the risk prediction model mainly includes three parts: a data adaptation layer, a convolutional network layer, and a risk output layer.
[0051] (1) Data adaptation layer, mainly used to adapt the risk matrix and the input of the convolutional network layer. For example, Task iThe risk matrix is an (l, m) matrix, where the rows of the matrix correspond to the risk index vectors of the software function modules associated with the project unit. Since the number of software function modules associated with the project unit is not a constant value, the value range of l will have a certain fluctuation. This data adaptation layer can process the risk matrix to adapt the risk matrix to the input of the convolutional network layer.
[0052] For example, the number of rows of the matrix processed by the convolutional network layer can be obtained as the reference number of rows. Compare the number of rows of the currently input risk matrix with the reference number of rows. If the number of rows of the risk matrix is less than the reference number of rows, zero-padding processing can be performed on the risk matrix. The zero-padding processing can be, for example, increasing the number of rows of the risk matrix to the reference number of rows and filling the added rows with zeros. If the number of rows of the risk matrix is greater than the reference number of rows, the risk matrix can be split so that the number of rows of each split matrix is less than or equal to the reference number of rows; for the split matrix, if the number of rows is less than the reference number of rows, zero-padding processing can be performed on the split matrix. In this way, the input of the risk prediction model can be adapted to the parameters set for subsequent processing, improving the simplicity and efficiency of data processing.
[0053] In some other embodiments, for a risk matrix with the number of rows less than the first preset threshold, multiple risk matrices with the number of rows less than the first preset threshold can also be obtained, and then these multiple risk matrices are merged to obtain a merged matrix, and the number of rows of the merged matrix is less than or equal to the reference number of rows. If the number of rows of the merged matrix is less than the reference number of rows, zero-padding processing can be performed on the merged matrix. By merging the risk matrices, the matrix data processed by the risk prediction model can be maintained at approximately the same complexity, facilitating the parameter adjustment and optimization of the risk prediction model and improving the accuracy of the overall output result. For a risk matrix with the number of rows greater than the reference number of rows, or with the number of rows greater than or equal to the first preset threshold and less than the reference number of rows, the above splitting processing and zero-padding processing can be directly performed. As Figure 11 shown, Figure 11 shows the schematic diagrams of the merging and splitting of the risk matrix. The first preset threshold can be set to a relatively small value. For example, the first threshold can be set to half of the reference number of rows to ensure that the number of rows of any two merged matrices is less than or equal to the reference number of rows.
[0054] In some other embodiments, for the split matrix with the number of rows less than the first preset threshold, it can also be merged with other risk matrices or split matrices with the number of rows less than the first preset threshold, but it is also necessary to ensure that the number of rows of the merged matrix is less than or equal to the reference number of rows. If the number of rows of the merged matrix is less than the reference number of rows, zero-padding processing can be performed.
[0055] In some embodiments of the solution based on the above scenario example, the server may also obtain the reference number of rows in the risk prediction process. Split the risk matrix with the number of rows greater than the reference number of rows, and the number of rows of the split matrix is less than or equal to the reference number of rows. Further, merge multiple risk matrices with the number of rows less than the first preset threshold and / or the split matrix, and the number of rows of the merged matrix is less than or equal to the reference number of rows; wherein, the reference number of rows is greater than the first preset threshold. Perform zero-padding processing on the merged or split matrix with the number of rows less than the reference number of rows as the reference matrix, so that the number of rows of the reference matrix is equal to the reference number of rows.
[0056] Of course, the columns of the matrix can also be corresponding to the risk index vectors of the software function modules associated with the project units. Correspondingly, the reference number of columns in the risk prediction process can be obtained, the risk matrix with the number of columns greater than the reference number of columns is split, and the number of columns of the split matrix is less than or equal to the reference number of columns. Merge multiple risk matrices with the number of columns less than the first preset threshold and / or the split matrix, and the number of columns of the merged matrix is less than or equal to the reference number of columns; wherein, the reference number of columns is greater than the first preset threshold. Perform zero-padding processing on the merged or split matrix with the number of columns less than the reference number of columns as the reference matrix, so that the number of columns of the reference matrix is equal to the reference number of columns.
[0057] The server may also record the project unit information included in each reference matrix. Wherein, the project unit information may at least include the project units included in the reference matrix, the total number of software function modules included, and the number of software function modules of each project unit included under the reference matrix.
[0058] (2) Convolutional network layer
[0059] The convolutional network layer is the core of the risk assessment model, mainly including a convolutional layer, a pooling layer, a fully connected layer, and a softmax layer.
[0060] The first layer is the input layer, which is the reference matrix directly output by the data adaptation layer.
[0061] The second layer is the convolutional layer, which needs to use 6 convolutional kernels of 5×5, and the activation function used is the sigmoid() function. After passing through the convolutional layer, the matrix will become a three-dimensional matrix.
[0062] The third layer is the pooling layer, the convolutional kernel is 2×2, the stride is set to 2, and the activation function used is the max() function. After passing through the pooling layer, the width and height of the output matrix will both become 1 / 2.
[0063] The fourth layer is the convolutional layer, which requires 12 convolutional kernels of 3×3×3. The activation function used is the sigmoid() function. After convolution, the depth of the output matrix will be further increased.
[0064] The fifth layer is the pooling layer. The convolutional kernel is 2×2, the stride is set to 2, and the activation function used is the max() function. In order to reduce the number of parameters in the fully connected layer, pooling is required.
[0065] The sixth layer is the fully connected layer. The fully connected layer will expand the matrix of the previous layer into a one-dimensional vector and then perform a full connection.
[0066] The seventh layer is the softmax layer. It first amplifies the output of the fully connected layer through the exponential function and then normalizes it to output the probabilities of each reference matrix.
[0067] (3) Risk output layer
[0068] In the risk output layer, the risk probabilities of each reference matrix can be initially obtained, and further processing is required to obtain the risk probabilities of each project unit.
[0069] The risk probability of the reference matrix and the information of the project units it contains can be obtained. For any project unit contained in any reference matrix, the ratio of the number of software function modules of the project unit under the reference matrix to the total number of software function modules contained in the reference matrix can be calculated, and the product of the calculated ratio and the risk probability of the reference matrix is used as the initial risk probability of the project unit. For any project unit, the initial risk probabilities of the project unit can be extracted to determine the risk level of the corresponding project unit based on the sum of the extracted initial risk probabilities.
[0070] For example, for the project units whose risk matrices are split, the reference matrices involved in the project units can be obtained, and the initial risk probabilities of the project unit under each of the reference matrices it involves can be extracted, and the sum of the extracted initial risk probabilities is calculated to obtain the risk probability of the project unit. For the unsplit project units, the initial risk probability under the reference matrix it involves can be directly used as the risk probability of the project unit.
[0071] After obtaining the risk probabilities of the project units, the risk probabilities of the project units can be further divided to obtain the risk levels of each project unit. For example, four levels can be divided, namely low risk, medium risk, medium-high risk, and high risk. Then, the probability thresholds corresponding to each risk level can be configured. After that, the risk levels corresponding to each project unit can be determined based on the corresponding probability thresholds, and the risk levels are used to represent the risk degree of the project units. Of course, the risk probabilities of each project unit can also be directly used to represent the risk degree of the project units.
[0072] After the software project is completed, the actual values of each RF indicator and the actual risk levels of each project unit can be recorded, and these actual data can be entered into the database. Since the MF used to calculate risks is itself an objective indicator, it can be directly entered into the database. When the project data accumulates to a certain extent, the newly entered data and the original project information data in the database can be used to update the risk prediction model, making the new model more perfect.
[0073] In some other embodiments, the server can also obtain the inherent risk indicators of software function modules. Among them, the inherent risk indicators can be the indicator data used to reflect the inherent risk characteristics of software function modules. The risk indicators constructed according to the module update information of the software function module relative to the associated project unit can be used as the potential risk indicators of the software function module relative to the associated project unit. Then, the inherent risk indicators of the software function module and the potential risk indicators relative to the associated project unit are associated to obtain the risk indicators of the software function module relative to the associated project unit.
[0074] The server can also pre-evaluate the inherent risk indicators of each software function module. The inherent risk indicators can be, for example, the number of project units targeted by the update of the software function module within a specified time interval, the number of software function modules dependent on the software function module, the number of software function modules on which the software function module depends, the number of lines of code of the software function module, the number of bugs fixed in the software function module within half a year, the maintenance time of the software function module, etc. The above inherent risk indicators can be used to reflect the risks existing in the software function module itself during its daily operation. Such risks may indirectly affect the risks of the efficient and accurate progress of the currently associated project unit. Therefore, by further combining the inherent risk indicators of the software function unit, the risk analysis of the software project can be made more accurate.
[0075] S28: Adjust the resource allocation of the target software project by using the risk levels of each project unit of the target software project.
[0076] The resources can refer to the hardware device resources, human resources, time resources, monitoring resources for the processing status of the corresponding project units, etc. of the server or server cluster for processing the target software project. The server can, considering factors such as the actual operation status of each project unit, allocate resources in combination with the risk levels of each project unit. Among them, the adjusted resource allocation can include the allocation of resource types and the allocation of the corresponding resource amounts under each resource type. The specific allocation method is not limited here.
[0077] By analyzing the risk level of each project unit, the risk points of the target software project can be more accurately located, and then resources can be allocated based on each risk point. For risk points with high risk levels, more resources can be allocated, and for risk points with low risk levels, fewer resources can be allocated, etc. At the same time, based on the changes in the risk level of each risk point, the resource allocation of each risk point can be adjusted in real time, while improving the accuracy and efficiency of the overall advancement of the target software project, further improving the rationality of resource allocation and reducing unreasonable resource losses.
[0078] Each embodiment in this specification is described in a progressive manner, and the same or similar parts between the embodiments can be referred to each other, and each embodiment focuses on the differences from other embodiments. For details, please refer to the description of the above-mentioned related processing related embodiments, and no further description is given here.
[0079] The above is a description of a specific embodiment of the specification. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recorded in the claims can be performed in an order different from that in the embodiments and still achieve the desired results. In addition, the processes depicted in the drawings do not necessarily require the specific order or continuous order shown to achieve the desired results. In some embodiments, multitasking and parallel processing are also possible or may be advantageous.
[0080] Based on the resource adjustment method described above, one or more embodiments of this specification also provide a resource adjustment device. The device may include a system, software (application), module, component, server, etc. that uses the method described in the embodiments of this specification and is combined with necessary implementation hardware. Based on the same innovative concept, the device in one or more embodiments provided in the embodiments of this specification is as described in the following embodiments. Since the implementation scheme of the device to solve the problem is similar to the method, the implementation of the specific device in the embodiments of this specification can refer to the implementation of the aforementioned method, and the repetitions will not be repeated. As used below, the term "unit" or "module" can be a combination of software and / or hardware that implements predetermined functions. Although the devices described in the following embodiments are preferably implemented in software, the implementation of hardware, or a combination of software and hardware, is also possible and conceived. Specifically, Figure 12 A schematic diagram of the module structure of an embodiment of a resource adjustment device provided in the specification is shown as follows: Figure 12 As shown, applied to a server, the device may include the following modules.
[0081] The splitting module 102 may be used to decompose the target software project to obtain multiple project units of the target software project.
[0082] The associated module determination module 104 can be used to determine at least one software function module associated with a corresponding project unit based on the function implementation requirement information of the project unit.
[0083] The risk index construction module 106 can be used to construct a risk index of a software function module relative to an associated project unit according to the module update information of the software function module relative to the associated project unit.
[0084] The risk level prediction module 108 can be used to predict the risk level of a corresponding project unit by using the risk indexes of the software function modules associated with the project unit.
[0085] The resource adjustment module 110 can be used to adjust the resource adjustment of the target software project by using the risk levels of the project units of the target software project.
[0086] In some other embodiments, the device may further include a risk index acquisition module, which can be used to acquire the inherent risk index of a software function module, where the inherent risk index refers to the index data used to reflect the inherent risk characteristics of the software function module.
[0087] Correspondingly, the risk index construction module 106 can also be used to use the risk index constructed according to the module update information of the software function module relative to the associated project unit as the potential risk index of the software function module relative to the associated project unit; and, associate the inherent risk index of the software function module and the potential risk index of the software function module relative to the associated project unit to obtain the risk index of the software function module relative to the associated project unit.
[0088] In some other embodiments, the risk level prediction module 108 can also be used to predict the risk levels of the project units of the target software project by using the convolutional neural network algorithm.
[0089] It should be noted that the device described above may further include other implementation manners according to the description of the method embodiments. The specific implementation manners can refer to the description of the relevant method embodiments and will not be elaborated here one by one.
[0090] This specification also provides a resource adjustment device, which can be applied to a separate resource adjustment system or multiple computer data processing systems. The system can be a single server or can include a server cluster, a system (including a distributed system), software (application), an actual operating device, a logic gate circuit device, a quantum computer, etc. that use one or more of the methods or one or more embodiment devices of this specification, combined with the necessary implementation hardware of a terminal device. In some embodiments, the device may include at least one processor and a memory for storing processor-executable instructions, and when the instructions are executed by the processor, the steps of the method described in any one or more of the above embodiments are implemented.
[0091] The memory may include a physical device for storing information, usually by digitizing the information and then storing it in a medium using electrical, magnetic, or optical means. The storage medium may include: devices that store information using electrical energy, such as various memories, such as RAM, ROM, etc.; devices that store information using magnetic energy, such as hard disks, floppy disks, magnetic tapes, magnetic core memories, bubble memories, USB flash drives; devices that store information using optical means, such as CDs or DVDs. Of course, there are also other ways of readable storage media, such as quantum memories, graphene memories, and so on.
[0092] It should be noted that the above-described device may also include other implementation manners according to the description of the method or device embodiments. The specific implementation manner may refer to the description of the relevant method embodiments and will not be elaborated here one by one.
[0093] It should be noted that the embodiments of this specification are not limited to those that must conform to the standard data model / template or the situations described in the embodiments of this specification. Some industry standards or implementation schemes slightly modified on the basis of the implementation described by the custom method or embodiment can also achieve the same, equivalent, or similar, or predictable implementation effects after deformation as the above embodiments. The embodiments obtained by applying these modified or deformed data acquisition, storage, judgment, processing methods, etc. still fall within the scope of the optional implementation schemes of this specification.
[0094] Each embodiment in this specification is described in a progressive manner. For the same or similar parts among the embodiments, reference can be made to each other. Each embodiment focuses on the differences from other embodiments. In particular, for system embodiments, since they are basically similar to method embodiments, the description is relatively simple. For relevant parts, reference can be made to the corresponding descriptions in the method embodiments. In the description of this specification, the description with reference to terms such as "one embodiment", "some embodiments", "example", "specific example", or "some examples" means that the specific features, structures, materials, or characteristics described in connection with the embodiment or example are included in at least one embodiment or example of this specification. In this specification, the schematic expressions of the above terms do not necessarily refer to the same embodiment or example. Moreover, the specific features, structures, materials, or characteristics described can be combined in a suitable manner in any one or more embodiments or examples. In addition, without contradiction, those skilled in the art can combine and combine the different embodiments or examples described in this specification and the features of different embodiments or examples.
[0095] The above are only the embodiments of this specification and are not used to limit this specification. For those skilled in the art, various changes and modifications can be made to this specification. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of this specification shall be included within the scope of the claims of this specification.
Claims
1. A resource adjustment method, characterized in that, the method includes: Decompose the target software project to obtain multiple project units of the target software project; Determine at least one software function module associated with the corresponding project unit based on the function implementation requirement information of the project unit; According to the module update information of the software function module relative to the associated project unit, construct a risk index of the software function module relative to the associated project unit; including: evaluating and refining the corresponding risk index according to the modification direction, function modification, and code modification of the software function module for the associated project unit; wherein, the risk index includes: the expected number of modified functions, the expected number of modified code lines, the predicted number of added test cases, the expected number of affected functions, and the expected number of added external interfaces; Use the risk indexes of each software function module associated with the project unit to predict the risk level of the corresponding project unit, so as to adjust the resource allocation of the target software project by using the risk levels of each project unit of the target software project; Among them, predicting the risk level of the corresponding project unit includes: constructing a risk index vector of the corresponding software function module based on the risk index of the software function module; combining the risk index vectors of at least one software function module associated with the project unit to obtain a risk matrix of the corresponding project unit; using the risk matrix as the input of the risk prediction model to predict the risk level of the corresponding project unit; wherein, the risk prediction model is constructed based on the convolutional neural network algorithm, and the risk prediction model includes: a data adaptation layer, a convolutional network layer, and a risk output layer.
2. The method according to claim 1, characterized in that, the method further includes: Obtain the inherent risk index of the software function module, wherein the inherent risk index refers to the index data used to reflect the inherent risk characteristics of the software function module; Take the risk index constructed according to the module update information of the software function module relative to the associated project unit as the potential risk index of the software function module relative to the associated project unit; Associate the inherent risk index of the software function module and the potential risk index of the software function module relative to the associated project unit to obtain the risk index of the software function module relative to the associated project unit.
3. The method according to claim 1, characterized in that, Assume that a row / column of the risk matrix corresponds to a software function module; After obtaining the risk matrix of the corresponding project unit, the method further includes: Obtain the reference row / column number in the risk prediction process; Split the risk matrix with the row / column number greater than the reference row / column number, and the row / column number of the split matrix is less than or equal to the reference row / column number; Merge multiple risk matrices with the row / column number less than the first preset threshold and / or the split matrix, and the row / column number of the merged matrix is less than or equal to the reference row / column number; wherein, the reference row / column number is greater than the first preset threshold; Perform zero-padding processing on the merged or split matrix with the row / column number less than the reference row / column number as the reference matrix, so that the row / column number of the reference matrix is equal to the reference row / column number; Record the item unit information included in each reference matrix; wherein, the item unit information includes the item units included in the reference matrix, the total number of software function modules included, and the number of software function modules of each item unit included under the reference matrix; Correspondingly, use the reference matrix and the item unit information included in the reference matrix to predict the risk levels of the item units in the target software project.
4. The method according to claim 3, characterized in that, the predicting the risk levels of the item units in the target software project by using the reference matrix and the item unit information included in the reference matrix includes: Obtain the risk probabilities of each reference matrix and the item unit information included; For any item unit included in any reference matrix, calculate the ratio of the number of software function modules of the item unit under the reference matrix to the total number of software function modules included in the reference matrix, and take the product of the calculated ratio and the risk probability of the reference matrix as the initial risk probability of the item unit; For any item unit, extract the initial risk probabilities of the item unit to determine the risk level of the corresponding item unit based on the sum of the extracted initial risk probabilities.
5. The method according to claim 1, characterized in that, Use the convolutional neural network algorithm to predict the risk levels of the item units of the target software project.
6. A resource adjustment device, characterized in that, the device includes: A splitting module for decomposing the target software project to obtain multiple item units of the target software project; An association module determination module for determining at least one software function module associated with the corresponding item unit based on the function implementation requirement information of the item unit; A risk index construction module for constructing a risk index of the software function module relative to the associated item unit according to the module update information of the software function module relative to the associated item unit; the risk index construction module is specifically used to evaluate and refine the corresponding risk index according to the modification direction, function modification, and code modification of the software function module for the associated item unit; wherein, the risk index includes: the expected number of modified functions, the expected number of modified code lines, the predicted number of added test cases, the expected number of affected functions, the expected number of added external interfaces; A risk level prediction module for predicting the risk level of the corresponding item unit by using the risk indexes of the software function modules associated with the item unit; A resource adjustment module for adjusting the resource adjustment of the target software project by using the risk levels of the item units of the target software project; Among them, the risk level prediction module is specifically configured to construct a risk index vector of a corresponding software function module based on the risk indexes of the software function module; combine the risk index vectors of at least one software function module associated with the combined project unit to obtain a risk matrix of the corresponding project unit; use the risk matrix as the input of the risk prediction model to predict the risk level of the corresponding project unit; wherein, the risk prediction model is constructed based on the convolutional neural network algorithm, and the risk prediction model includes: a data adaptation layer, a convolutional network layer, and a risk output layer.
7. The device according to claim 6, wherein, the device further includes: a risk index acquisition module, configured to acquire the inherent risk indexes of the software function module, wherein the inherent risk indexes refer to the index data used to reflect the inherent risk characteristics of the software function module; the risk index construction module is further configured to use the risk indexes constructed according to the module update information of the software function module relative to the associated project unit as the potential risk indexes of the software function module relative to the associated project unit; and, associate the inherent risk indexes of the software function module and the potential risk indexes of the software function module relative to the associated project unit to obtain the risk indexes of the software function module relative to the associated project unit.
8. The device according to claim 6, wherein, the risk level prediction module is further configured to use the convolutional neural network algorithm to predict the risk levels of the project units of the target software project.
9. A resource adjustment device, wherein, the device includes at least one processor and a memory for storing processor-executable instructions, and when the instructions are executed by the processor, the steps of the method according to any one of claims 1-5 above are implemented.
Citation Information
Patent Citations
Method and device for evaluating software project risks
CN103208039A
Method, device and system for predicting application performance risk
CN105354092A