A method and device for determining software development man-hours
By establishing a development project clustering model and working hours measurement model and combining the number of code lines to calculate the working hours, the problem of subjectivity and inability to grade evaluation in the software development field is solved, and more objective workload evaluation and team motivation are achieved.
Patent Information
- Application Number
- CN202110974542.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-08-24
- Publication Date
- 2025-06-06
- Estimated Expiration
- 2041-08-24
AI Technical Summary
When the prior art is used in the field of software development, the workload evaluation is subjective and cannot effectively classify the workload of the team, especially when the workload acceptance of the new team is accepted.
By establishing a development project clustering model and working hours metric model, clustering according to the characteristic values of the software development project to be measured, selecting the corresponding working hours metric model, and using the number of code lines to calculate the working hours to determine the software development working hours.
This method can more objectively evaluate the workload of the development team, fully consider the differences in the work content of the development team, stimulate the work enthusiasm of developers, and safeguard the interests of the enterprise.
Smart Images

Figure CN113689191B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of artificial intelligence and can be used in the financial field. Specifically, it is a method and device for determining the working hours of software development. Background Art
[0002] In the field of software development, development hours can be obtained by adding up the total workload in the project management tool and multiplying it by a fixed coefficient. However, the workload assessment in the project management tool is highly subjective and ignores the differences in development costs between different application software. It is impossible to grade and evaluate the workload of the team based on objective conditions. This problem is particularly prominent when accepting the workload of a newly established team. Summary of the invention
[0003] In view of the problems in the prior art, the present application provides a method and device for determining software development man-hours, which can determine the software development man-hours corresponding to the software development project to be measured according to the characteristic values of the software development project to be measured.
[0004] In order to solve the above technical problems, this application provides the following technical solutions:
[0005] In a first aspect, the present application provides a method for determining software development man-hours, comprising:
[0006] Inputting the acquired characteristic values of the software development projects to be measured into a pre-established development project clustering model, clustering the software development projects to be measured, and obtaining clustering field values of the software development projects to be measured; the characteristic values at least include the technical debt rate, average cyclomatic complexity, code line coverage and application architecture score of the software development projects to be measured;
[0007] Selecting a man-hour measurement model corresponding to the software development project to be measured from a plurality of pre-established man-hour measurement models according to the cluster field value;
[0008] The number of lines of code of the software development project to be measured is input into a man-hour measurement model corresponding to the software development project to be measured, so as to obtain the software development man-hours corresponding to the software development project to be measured.
[0009] Furthermore, the steps of pre-establishing the development project clustering model include:
[0010] The historical software development projects are clustered according to their characteristic values to obtain the development project clustering model and the clustering field values of the historical software development projects.
[0011] Furthermore, clustering the historical software development projects according to the feature values of the historical software development projects to obtain the development project clustering model and the clustering field values of the historical software development projects includes:
[0012] Establishing a development project cluster training set according to the characteristic values of the historical software development projects; the characteristic values of the historical software development projects at least include the technical debt rate, average cyclomatic complexity, code line coverage and application architecture score of the historical software development projects;
[0013] Each characteristic value in the development project cluster training set is normalized and then input into the k-means clustering initial model to obtain the development project clustering model and the clustering field value of the historical software development project.
[0014] Furthermore, the step of pre-establishing the working time measurement model includes:
[0015] For the historical software development projects with different clustering field values, the man-hour measurement model is determined according to the number of code lines and the historical actual man-hours of the historical software development projects.
[0016] Furthermore, for the historical software development projects with different cluster field values, the man-hour measurement model is determined according to the number of code lines and the historical actual man-hours of the historical software development projects, including:
[0017] Obtaining cluster field values, code lines, and historical actual working hours of the historical software development project;
[0018] Establishing a man-hour measurement model training set using cluster field values, code lines, and historical actual man-hours of the historical software development projects;
[0019] The man-hour measurement model training set is input into a pre-initialized polynomial regression function to obtain a man-hour measurement model corresponding to the cluster field value.
[0020] Furthermore, the step of inputting the characteristic values of the software development projects to be measured into a pre-established development project clustering model to cluster the software development projects to be measured to obtain cluster field values of the software development projects to be measured includes:
[0021] Establishing a clustering data set of the software development project to be measured according to the characteristic values of the software development project to be measured; the characteristic values of the software development project to be measured include at least the technical debt rate, average cyclomatic complexity, code line coverage and application architecture score of the software development project to be measured;
[0022] Each characteristic value in the clustering data set of the software development project to be measured is normalized and then input into the development project clustering model to cluster the software development project to be measured to obtain the clustering field value of the software development project to be measured.
[0023] In a second aspect, the present application provides a software development man-hour determination device, comprising:
[0024] A development project clustering unit, used for inputting the acquired characteristic values of the software development projects to be measured into a pre-established development project clustering model, clustering the software development projects to be measured, and obtaining clustering field values of the software development projects to be measured; the characteristic values at least include the technical debt rate, average cyclomatic complexity, code line coverage and application architecture score of the software development projects to be measured;
[0025] A measurement model selection unit, configured to select a man-hour measurement model corresponding to the software development project to be measured from a plurality of pre-established man-hour measurement models according to the cluster field value;
[0026] The development man-hour determination unit is used to input the number of code lines of the software development project to be measured into the man-hour measurement model corresponding to the software development project to be measured, so as to obtain the software development man-hours corresponding to the software development project to be measured.
[0027] Furthermore, the software development man-hour determination device further includes:
[0028] The clustering model building unit is used to cluster the historical software development projects according to their feature values to obtain the development project clustering model and the clustering field values of the historical software development projects.
[0029] Furthermore, the clustering model building unit includes:
[0030] A cluster training set establishment module, used to establish a development project cluster training set according to the characteristic values of the historical software development projects; the characteristic values of the historical software development projects at least include the technical debt rate, average cyclomatic complexity, code line coverage and application architecture score of the historical software development projects;
[0031] The clustering model building module is used to normalize each feature value in the development project clustering training set and then input it into the k-means clustering initial model to obtain the development project clustering model and the clustering field value of the historical software development project.
[0032] Furthermore, the software development man-hour determination device further includes:
[0033] The measurement model building unit is used to determine the man-hour measurement model according to the number of code lines and the historical actual man-hours of the historical software development projects with different cluster field values.
[0034] Furthermore, the measurement model building unit includes:
[0035] A historical data acquisition module, used to acquire cluster field values, code lines, and historical actual working hours of the historical software development project;
[0036] A model training set building module, used to build a man-hour measurement model training set using the cluster field values, code lines, and historical actual man-hours of the historical software development project;
[0037] The measurement model building module is used to input the man-hour measurement model training set into a pre-initialized polynomial regression function to obtain the man-hour measurement model corresponding to the cluster field value.
[0038] Furthermore, the development project clustering unit includes:
[0039] A clustering data set establishment module, used to establish a clustering data set of the software development project to be measured according to the characteristic values of the software development project to be measured; the characteristic values of the software development project to be measured at least include the technical debt rate, average cyclomatic complexity, code line coverage and application architecture score of the software development project to be measured;
[0040] The clustering field value determination module is used to normalize each feature value in the clustering data set of the software development project to be measured and input it into the development project clustering model to cluster the software development project to be measured and obtain the clustering field value of the software development project to be measured.
[0041] In a third aspect, the present application provides an electronic device including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the steps of the method for determining software development man-hours when executing the program.
[0042] In a fourth aspect, the present application provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the steps of the method for determining software development man-hours.
[0043] In response to the problems in the prior art, the software development man-hour determination method and device provided in the present application can fully consider the differences in the work content of the development team, and determine the software development man-hours corresponding to the software development project to be measured based on the characteristic values of the software development project to be measured, thereby helping the enterprise to objectively evaluate the workload of the development team, stimulate the work enthusiasm of developers, and safeguard the interests of the enterprise. BRIEF DESCRIPTION OF THE DRAWINGS
[0044] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.
[0045] Figure 1 A flowchart of a method for determining software development man-hours in an embodiment of the present application;
[0046] Figure 2 The step of pre-establishing a development project clustering model in the embodiment of the present application;
[0047] Figure 3 The step of pre-establishing a working time measurement model in the embodiment of the present application;
[0048] Figure 4 A flowchart of obtaining cluster field values of software development projects to be measured in an embodiment of the present application;
[0049] Figure 5 This is a structural diagram of a device for determining software development man-hours in an embodiment of the present application;
[0050] Figure 6 A structural diagram of a clustering model establishment unit in an embodiment of the present application;
[0051] Figure 7 This is a structural diagram of a measurement model establishment unit in an embodiment of the present application;
[0052] Figure 8 This is a structural diagram of a development project clustering unit in an embodiment of the present application;
[0053] Fig. 9 It is a schematic diagram of the structure of an electronic device in an embodiment of the present application. DETAILED DESCRIPTION
[0054] The following will be combined with the drawings in the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.
[0055] It should be noted that the method and device for determining software development man-hours provided in the present application can be used in the financial field, and can also be used in any field other than the financial field. The application field of the method and device for determining software development man-hours provided in the present application is not limited.
[0056] In one embodiment, see Figure 1 In order to determine the software development man-hours corresponding to the software development project to be measured according to the characteristic values of the software development project to be measured, the present application provides a method for determining software development man-hours, including:
[0057] S101: inputting the characteristic values of the software development projects to be measured into a pre-established development project clustering model, clustering the software development projects to be measured, and obtaining cluster field values of the software development projects to be measured;
[0058] S102: selecting a man-hour measurement model corresponding to the software development project to be measured from a plurality of pre-established man-hour measurement models according to the cluster field value;
[0059] S103: Inputting the number of lines of code of the software development project to be measured into a man-hour measurement model corresponding to the software development project to be measured, and obtaining the software development man-hours corresponding to the software development project to be measured.
[0060] It is understandable that this application provides a method for measuring software development hours based on the amount of code submissions to address the problems in the existing software development industry where the development hours evaluation method is not objective enough and the evaluation criteria are out of touch with the actual development. When the software development hours measurement method is used to measure software development hours, the measurement results are closely related to the difficulty of software development, and the measurement results are highly objective and accurate.
[0061] Specifically, this application clusters the software development projects to be measured by obtaining the characteristics of the architecture, technical debt, complexity, and coverage of the software development projects to be measured. For software development projects of different clusters, a work time measurement model (which can be a linear regression model) between the acceptance work time and the project scale is constructed based on the historical project scale and acceptance work time. When the software development project to be measured is accepted, the software development project can be clustered by a clustering algorithm first, and then the software development work time is calculated based on the work time measurement model corresponding to the software development project that has been constructed.
[0062] After the development project clustering model and the work-hour measurement model are established, the software development work hours corresponding to the software development project to be measured can be determined according to the following method.
[0063] ① Obtain the characteristic values of the software development project to be measured:
[0064] When accepting a software development project to be measured, first obtain the project's characteristic values such as technical debt rate, average cyclomatic complexity, code line coverage, and application architecture scoring indicators.
[0065] ② Establish a two-dimensional table containing clustering characteristics of the software development projects to be measured:
[0066] Assuming that the software development project to be measured is X, and the historical software development projects are A, B, and C, the relevant data are merged into the following two-dimensional table, see Table 1.
[0067] Table 1
[0068] application Debt ratio Average Cyclomatic Complexity Line of code coverage Application Architecture Scoring A 1 3 80% 60 B 3 5 60% 40 C 4.5 10 50% 20 X 1 2.5 75% 60 …… …… …… …… ……
[0069] ③ Calculate the cluster to which the software development project X to be measured belongs:
[0070] The method for calculating the cluster to which the software development project X to be measured belongs is to input the characteristic value of X into the pre-established development project clustering model, thereby obtaining the cluster field value of the software development project X to be measured. For details, please refer to the description of steps S401 to S402, see Figure 4 .
[0071] S401: establishing a clustering data set of the software development project to be measured according to the characteristic values of the software development project to be measured; the characteristic values of the software development project to be measured include at least the technical debt rate, average cyclomatic complexity, code line coverage and application architecture score of the software development project to be measured;
[0072] S402: normalizing each feature value in the clustering data set of the software development project to be measured and inputting the result into the development project clustering model to cluster the software development project to be measured and obtain the clustering field value of the software development project to be measured.
[0073] More specifically, please refer to the description of step S201 to step S202; step S201 to step S202 is the process of clustering historical software development projects; the process of clustering software development projects to be measured is similar to the process of clustering historical software development projects, and will not be repeated here.
[0074] ④ Obtain the man-hour measurement model corresponding to the software development project to be measured, and calculate the acceptance man-hour according to the number of lines of code of the software development project X to be measured:
[0075] Determine the corresponding man-hour measurement model through the cluster field value of the software development project X to be measured. Assuming that the cluster field value of the software development project X to be measured is 0, call the predict method of model0 (man-hour measurement model with cluster field value 0) for calculation. The input parameter of model0 is the number of lines of code of the software development project X to be measured, and the method return value is the software development man-hour corresponding to X.
[0076] It should be noted that the key point of this application is that before measuring the working hours, it is necessary to first build a development project clustering model to cluster the software development projects to be measured, so as to select the most appropriate working hour measurement model corresponding to them for working hour measurement. In this way, the working hour measurement result finally calculated is relatively accurate.
[0077] From the above description, it can be seen that the software development man-hour determination method provided in this application can fully consider the differences in the work content of the development team, and determine the software development man-hours corresponding to the software development project to be measured based on the characteristic values of the software development project to be measured, thereby helping the enterprise to objectively evaluate the workload of the development team, stimulate the work enthusiasm of developers, and safeguard the interests of the enterprise.
[0078] In one embodiment, the step of pre-establishing a development project clustering model includes:
[0079] The historical software development projects are clustered according to their characteristic values, and a development project clustering model and clustering field values of the historical software development projects are obtained.
[0080] Understandably, see Figure 2 In order to establish a development project clustering model, it is first necessary to establish a development project clustering training set based on the characteristic values of historical software development projects (S201); wherein the characteristic values of historical software development projects at least include the technical debt rate, average cyclomatic complexity, line of code coverage and application architecture score of the historical software development projects; then, each characteristic value in the development project clustering training set is normalized and input into the k-means clustering initial model to obtain the development project clustering model and the clustering field values of the historical software development projects (S202).
[0081] Specifically, the embodiment of the present application can cluster the historical software development projects by calling the k-means clustering algorithm in the python sklearn machine learning package. The k value can be selected according to actual needs. The embodiment of the present application selects the k value as 3, that is, the historical software development projects are clustered into three categories according to their characteristics.
[0082] The specific clustering method is described as follows:
[0083] ① Select the characteristic values of historical software development projects:
[0084] From the software company's code quality measurement software, obtain the characteristic values of each historical software development project, such as the technical debt rate, average code cyclomatic complexity, code line coverage, and application architecture scoring indicators. For example, the software technology stacks used in the software company can be enumerated and arranged from old to new by technology stack. The oldest score is 20, and the scores increase by 20 from old to new. For example, the application architectures from old to new are: BTT, CTP, and microservices. Then the BTT application score is 20, the CTP application score is 40, and the microservice application score is 60, which are accumulated in sequence. List the historical software development projects and their characteristic values, as shown in Table 2.
[0085] Table 2
[0086] application Debt ratio Average Cyclomatic Complexity Line of code coverage Application Architecture Scoring A 1 3 80% 60 B 3 5 60% 40 C 4.5 10 50% 20 …… …… …… …… ……
[0087] ② Import the above feature table containing feature values into the development project clustering training set:
[0088] Organize the above feature table into a csv file, read the development project clustering training set through the read_csv method of the pandas package in python, and store it in the variable data.
[0089] ③Initialize the k-means model:
[0090] Call the k-means method of sklearn.cluster to build a k-means model. The model has a parameter k. In the embodiment of the present application, the k value is set to 3, and the initialized model is stored in the k-means variable.
[0091] ④ Normalization data:
[0092] Call the preprocessing class of sklearn to normalize the data in data and store the processed data in the trian_x variable as training data.
[0093] ⑤ Use normalized data for clustering:
[0094] Pass trian_x as a variable to the k-means.predict method to obtain the clustering result, and pass the result to the variable predict_y.
[0095] ⑥ Output the category labels of historical software development projects:
[0096] The data of predict_y is merged into the data dataset through the concat method of pandas, and the cluster labels (that is, cluster field values) corresponding to each historical software development project are given. For example, the application clustering table is shown in Table 3.
[0097] Table 3
[0098] project Debt ratio Average Cyclomatic Complexity Line of code coverage Application Architecture Scoring Cluster labels A 1 3 80% 60 0 B 3 5 60% 40 1 C 4.5 10 50% 20 2 …… …… …… …… …… ……
[0099] From the above description, it can be seen that the software development man-hour determination method provided in this application can cluster historical software development projects according to their feature values to obtain a development project clustering model and clustering field values of historical software development projects.
[0100] In one embodiment, the step of pre-establishing a work-hour measurement model includes:
[0101] For historical software development projects with different clustering field values, the working time measurement model is determined according to the number of code lines and the historical actual working hours of the historical software development projects.
[0102] Understandably, see Figure 3 In order to establish a work time measurement model, it is first necessary to obtain the clustering field values, code lines and historical actual work hours of historical software development projects (S301); then, use the clustering field values, code lines and historical actual work hours of historical software development projects to establish a work time measurement model training set (S302); finally, input the work time measurement model training set into a pre-initialized polynomial regression function to obtain the work time measurement model corresponding to the clustering field values (S303).
[0103] It should be noted that, by using steps S201 to S202, the embodiment of the present application has clustered the historical software development projects. Therefore, steps S301 to S302 are to construct the corresponding man-hour measurement model for each cluster.
[0104] The specific model building method is as follows:
[0105] ① Obtain the number of code submission lines and acceptance work hours data of historical software development projects:
[0106] The number of code submission lines and historical acceptance hours (also called historical actual hours) of each application and project are obtained from the enterprise's R&D measurement data warehouse, for example, see Table 4.
[0107] Table 4
[0108] Project Clustering Project No. Acceptance time Lines of code 0 001 100 1000 0 002 500 5000 0 003 600 6000 1 004 100 500 1 005 200 1000 2 006 100 250 2 007 200 500 …… …… …… ……
[0109] ②Import the fitted data set and split it by the cluster field value of the project clustering:
[0110] The above table is organized into a csv file, and the data set is read through the read_csv method of the pandas package in Python and stored in the variable data. Through the data set splitting function of pandas, the historical software development project is split into three data sets data0, data1 and data2 according to the cluster field values, corresponding to the cluster field values of 0, 1 and 2.
[0111] ③Define the polynomial regression function:
[0112] Define a polynomial regression function in Python. The function's input parameter is degree, and the default value is 1. In the function's method body, use the PolynomialFeatures class of sklearn.preprocessing to build a polynomial model, and set the degree parameter to the degree of the polynomial. Use the LinearRegression class of sklearn.linear for training. During training, the data in the dataset can be normalized first. The return value of the function is the polynomial model.
[0113] ④Initialize the polynomial model:
[0114] Use the polynomial regression function defined in step ③ to initialize three polynomial models, set the input degree to 1, and pass the constructed models into model0, model1, and model2 respectively.
[0115] ⑤ Use normalized data for fitting:
[0116] Taking the historical actual working hours of each historical software development project as y and the number of code submission lines as x, call the fit method of model0, model1, and model2 respectively to perform fitting training and save the fitted models model0', model1', and model2'.
[0117] It can be seen that model0', model1', and model2' are respectively the man-hour measurement models corresponding to the historical software development projects of each cluster, that is, in the embodiment of the present application, they correspond to clusters 0, 1, and 2, respectively.
[0118] From the above description, it can be seen that the software development man-hour determination method provided in this application can determine the man-hour measurement model for historical software development projects with different clustering field values according to the number of code lines and historical actual man-hours of the historical software development projects.
[0119] Based on the same inventive concept, the embodiments of the present application also provide a software development time determination device, which can be used to implement the method described in the above embodiments, as described in the following embodiments. Since the principle of solving the problem by the software development time determination device is similar to that of the software development time determination method, the implementation of the software development time determination device can refer to the implementation of the method based on the software performance benchmark determination, and the repeated parts will not be repeated. As used below, the terms "unit" or "module" can be a combination of software and / or hardware that implements predetermined functions. Although the system described in the following embodiments is preferably implemented in software, the implementation of hardware, or a combination of software and hardware, is also possible and conceived.
[0120] In one embodiment, see Figure 5 In order to determine the software development hours corresponding to the software development project to be measured according to the characteristic values of the software development project to be measured, the present application provides a software development hour determination device, including: a development project clustering unit 501 and a development hour determination unit 502.
[0121] A development project clustering unit 501 is used to input the feature values of the software development projects to be measured into a pre-established development project clustering model to cluster the software development projects to be measured, and obtain cluster field values of the software development projects to be measured;
[0122] The development man-hour determining unit 502 is used to input the number of code lines of the software development project to be measured into a man-hour measurement model corresponding to the software development project to be measured, so as to obtain the software development man-hour of the software development project to be measured.
[0123] In one embodiment, the software development man-hour determination device further includes:
[0124] The clustering model building unit 503 is used to cluster the historical software development projects according to their feature values to obtain the development project clustering model and the clustering field values of the historical software development projects.
[0125] In one embodiment, see Figure 6 The clustering model building unit 503 includes: a clustering training set building module 601 and a clustering model building module 602.
[0126] A cluster training set establishment module 601 is used to establish a development project cluster training set according to the characteristic values of the historical software development projects; the characteristic values of the historical software development projects at least include the technical debt rate, average cyclomatic complexity, code line coverage and application architecture score of the historical software development projects;
[0127] The clustering model building module 602 is used to normalize each feature value in the development project clustering training set and input it into the k-means clustering initial model to obtain the development project clustering model and the clustering field value of the historical software development project.
[0128] In one embodiment, the software development man-hour determination device further includes:
[0129] The measurement model building unit 504 is used to determine the man-hour measurement model according to the number of code lines and the historical actual man-hours of the historical software development projects with different cluster field values.
[0130] In one embodiment, see Figure 7 The measurement model building unit 504 includes: a historical data acquisition module 701, a model training set building module 702 and a measurement model building module 703.
[0131] The historical data acquisition module 701 is used to acquire the cluster field value, the number of code lines and the historical actual working hours of the historical software development project;
[0132] A model training set building module 702 is used to build a man-hour measurement model training set using the cluster field values, code lines, and historical actual man-hours of the historical software development project;
[0133] The measurement model building module 703 is used to input the man-hour measurement model training set into a pre-initialized polynomial regression function to obtain the man-hour measurement model corresponding to the cluster field value.
[0134] In one embodiment, see Figure 8 , the software development man-hour determination device, the development project clustering unit 501, includes: a clustering data set establishment module 801 and a clustering field value determination module 802.
[0135] A clustering data set establishment module 801 is used to establish a clustering data set of the software development project to be measured according to the characteristic values of the software development project to be measured; the characteristic values of the software development project to be measured include at least the technical debt rate, average cyclomatic complexity, code line coverage and application architecture score of the software development project to be measured;
[0136] The clustering field value determination module 802 is used to normalize each feature value in the clustering data set of the software development project to be measured and input it into the development project clustering model to cluster the software development project to be measured and obtain the clustering field value of the software development project to be measured.
[0137] From a hardware perspective, in order to determine the software development hours corresponding to the software development project to be measured according to the characteristic values of the software development project to be measured, the present application provides an embodiment of an electronic device for implementing all or part of the contents of the software development hours determination method, and the electronic device specifically includes the following contents:
[0138] Processor, memory, communication interface and bus; wherein the processor, memory and communication interface communicate with each other through the bus; the communication interface is used to realize information transmission between the software development man-hour determination device and related equipment such as core business systems, user terminals and related databases; the logic controller can be a desktop computer, a tablet computer and a mobile terminal, etc., but the present embodiment is not limited thereto. In the present embodiment, the logic controller can be implemented with reference to the embodiment of the software development man-hour determination method and the embodiment of the software development man-hour determination device in the embodiment, and the contents thereof are incorporated herein, and the repeated parts are not repeated.
[0139] It is understandable that the user terminal may include a smart phone, a tablet electronic device, a network set-top box, a portable computer, a desktop computer, a personal digital assistant (PDA), a vehicle-mounted device, a smart wearable device, etc. Among them, the smart wearable device may include smart glasses, a smart watch, a smart bracelet, etc.
[0140] In practical applications, part of the method for determining software development man-hours can be executed on the electronic device side as described above, or all operations can be completed in the client device. The selection can be made based on the processing capability of the client device and the limitations of the user's usage scenario. This application does not limit this. If all operations are completed in the client device, the client device may also include a processor.
[0141] The client device may have a communication module (i.e., a communication unit) that can communicate with a remote server to achieve data transmission with the server. The server may include a server on the task scheduling center side, and other implementation scenarios may also include a server on an intermediate platform, such as a server on a third-party server platform that has a communication link with the task scheduling center server. The server may include a single computer device, or a server cluster consisting of multiple servers, or a server structure of a distributed device.
[0142] Fig. 9 FIG. 9 is a schematic block diagram of the system structure of the electronic device 9600 according to an embodiment of the present application. Fig. 9As shown, the electronic device 9600 may include a central processor 9100 and a memory 9140; the memory 9140 is coupled to the central processor 9100. It is worth noting that Fig. 9 is exemplary; other types of structures may also be used to supplement or replace this structure to implement telecommunication functions or other functions.
[0143] In one embodiment, the software development man-hour determination method function may be integrated into the central processing unit 9100. The central processing unit 9100 may be configured to perform the following control:
[0144] S101: inputting feature values of software development projects to be measured into a pre-established development project clustering model, clustering the software development projects to be measured, and obtaining cluster field values of the software development projects to be measured;
[0145] S102: selecting a man-hour measurement model corresponding to the software development project to be measured from a plurality of pre-established man-hour measurement models according to the cluster field value;
[0146] S103: Inputting the number of lines of code of the software development project to be measured into a man-hour measurement model corresponding to the software development project to be measured, and obtaining the software development man-hours corresponding to the software development project to be measured.
[0147] From the above description, it can be seen that the software development man-hour determination method provided in this application can fully consider the differences in the work content of the development team, and determine the software development man-hours corresponding to the software development project to be measured based on the characteristic values of the software development project to be measured, thereby helping the enterprise to objectively evaluate the workload of the development team, stimulate the work enthusiasm of developers, and safeguard the interests of the enterprise.
[0148] In another embodiment, the software development time determination device can be configured separately from the central processing unit 9100. For example, the data composite transmission device software development time determination device can be configured as a chip connected to the central processing unit 9100, and the function of the software development time determination method is realized through the control of the central processing unit.
[0149] like Fig. 9 As shown, the electronic device 9600 may also include: a communication module 9110, an input unit 9120, an audio processor 9130, a display 9160, and a power supply 9170. It is worth noting that the electronic device 9600 does not necessarily have to include Fig. 9 In addition, the electronic device 9600 may also include Fig. 9 For components not shown, reference may be made to the prior art.
[0150] like Fig. 9As shown, the central processing unit 9100 is sometimes also referred to as a controller or an operation control, and may include a microprocessor or other processor device and / or logic device, which receives input and controls the operation of various components of the electronic device 9600.
[0151] The memory 9140 may be, for example, one or more of a cache, a flash memory, a hard drive, a removable medium, a volatile memory, a non-volatile memory or other suitable devices. The above-mentioned information related to the failure may be stored, and a program for executing the relevant information may also be stored. The CPU 9100 may execute the program stored in the memory 9140 to implement information storage or processing, etc.
[0152] The input unit 9120 provides input to the central processing unit 9100. The input unit 9120 is, for example, a key or a touch input device. The power supply 9170 is used to provide power to the electronic device 9600. The display 9160 is used to display display objects such as images and texts. The display may be, for example, an LCD display, but is not limited thereto.
[0153] The memory 9140 may be a solid-state memory, such as a read-only memory (ROM), a random access memory (RAM), a SIM card, etc. It may also be a memory that saves information even when the power is off, can be selectively erased, and is provided with more data, examples of which are sometimes referred to as EPROMs, etc. The memory 9140 may also be some other type of device. The memory 9140 includes a buffer memory 9141 (sometimes referred to as a buffer). The memory 9140 may include an application / function storage unit 9142, which is used to store application programs and function programs or processes for executing the operation of the electronic device 9600 through the central processor 9100.
[0154] The memory 9140 may also include a data storage unit 9143 for storing data, such as contacts, digital data, pictures, sounds, and / or any other data used by the electronic device. The driver storage unit 9144 of the memory 9140 may include various drivers for communication functions of the electronic device and / or for executing other functions of the electronic device (such as messaging applications, address book applications, etc.).
[0155] The communication module 9110 is a transmitter / receiver 9110 that sends and receives signals via an antenna 9111. The communication module (transmitter / receiver) 9110 is coupled to the central processor 9100 to provide input signals and receive output signals, which may be the same as the case of a conventional mobile communication terminal.
[0156] Based on different communication technologies, multiple communication modules 9110 may be provided in the same electronic device, such as a cellular network module, a Bluetooth module and / or a wireless LAN module. The communication module (transmitter / receiver) 9110 is also coupled to a speaker 9131 and a microphone 9132 via an audio processor 9130 to provide an audio output via the speaker 9131 and receive an audio input from the microphone 9132, thereby realizing a common telecommunication function. The audio processor 9130 may include any suitable buffer, decoder, amplifier, etc. In addition, the audio processor 9130 is also coupled to the central processor 9100, so that recording can be performed on the local machine through the microphone 9132, and the sound stored on the local machine can be played through the speaker 9131.
[0157] The embodiments of the present application also provide a computer-readable storage medium capable of implementing all the steps of the method for determining the man-hours for software development in the above embodiment, where the execution subject is a server or a client. The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, all the steps of the method for determining the man-hours for software development in the above embodiment are implemented. For example, when the processor executes the computer program, the following steps are implemented:
[0158] S101: inputting feature values of software development projects to be measured into a pre-established development project clustering model, clustering the software development projects to be measured, and obtaining cluster field values of the software development projects to be measured;
[0159] S102: selecting a man-hour measurement model corresponding to the software development project to be measured from a plurality of pre-established man-hour measurement models according to the cluster field value;
[0160] S103: Inputting the number of lines of code of the software development project to be measured into a man-hour measurement model corresponding to the software development project to be measured, and obtaining the software development man-hours corresponding to the software development project to be measured.
[0161] From the above description, it can be seen that the software development man-hour determination method provided in this application can fully consider the differences in the work content of the development team, and determine the software development man-hours corresponding to the software development project to be measured based on the characteristic values of the software development project to be measured, thereby helping the enterprise to objectively evaluate the workload of the development team, stimulate the work enthusiasm of developers, and safeguard the interests of the enterprise.
[0162] It will be appreciated by those skilled in the art that embodiments of the present invention may be provided as methods, devices, or computer program products. Therefore, the present invention may take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, the present invention may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0163] The present invention is described with reference to flowcharts and / or block diagrams of methods, devices (apparatus), and computer program products according to embodiments of the present invention. It should be understood that each process and / or block in the flowchart and / or block diagram, as well as the combination of processes and / or blocks in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to generate a machine, so that the instructions executed by the processor of the computer or other programmable data processing device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.
[0164] These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture comprising an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.
[0165] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for implementing the process. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.
[0166] The present invention uses specific embodiments to illustrate the principles and implementation methods of the present invention. The description of the above embodiments is only used to help understand the method of the present invention and its core idea. At the same time, for those skilled in the art, according to the idea of the present invention, there will be changes in the specific implementation methods and application scope. In summary, the content of this specification should not be understood as a limitation on the present invention.
Claims
1. A method for determining software development man-hours, It is characterized in that include: Inputting the characteristic value of the software development project to be measured into a pre-established development project clustering model to obtain the clustering field value of the software development project to be measured; Inputting the number of lines of code of the software development project to be measured into a man-hour measurement model corresponding to the software development project to be measured, to obtain the software development man-hours of the software development project to be measured; The steps of establishing a development project clustering model include: Clustering the historical software development projects according to their characteristic values to obtain a development project clustering model and clustering field values of the historical software development projects; The step of clustering the historical software development projects according to their characteristic values to obtain the development project clustering model and the clustering field values of the historical software development projects includes: Establishing a development project cluster training set according to the characteristic values of the historical software development projects; the characteristic values of the historical software development projects at least include the technical debt rate, average cyclomatic complexity, code line coverage and application architecture score of the historical software development projects; Each characteristic value in the development project cluster training set is normalized and then input into the k-means clustering initial model to obtain the development project clustering model and the clustering field value of the historical software development project; The steps of establishing the working time measurement model include: For the historical software development projects with different clustering field values, determining the man-hour measurement model according to the number of code lines and the historical actual man-hours of the historical software development projects; The historical software development projects with different clustering field values are respectively used to determine the man-hour measurement model according to the number of lines of code and the historical actual man-hours of the historical software development projects, including: Obtaining cluster field values, code lines, and historical actual working hours of the historical software development project; Establishing a work time measurement model training set using the cluster field values, code lines, and historical actual work hours of the historical software development projects; The man-hour measurement model training set is input into an initialized polynomial regression function to obtain a man-hour measurement model corresponding to the cluster field value.
2. The method for determining software development man-hours according to claim 1, It is characterized in that The step of inputting the characteristic value of the software development project to be measured into a pre-established development project clustering model to obtain the clustering field value of the software development project to be measured includes: Establishing a clustering data set of the software development project to be measured according to the characteristic values of the software development project to be measured; the characteristic values of the software development project to be measured include at least the technical debt rate, average cyclomatic complexity, code line coverage and application architecture score of the software development project to be measured; Each characteristic value in the clustering data set of the software development project to be measured is normalized and then input into the development project clustering model to cluster the software development project to be measured to obtain the clustering field value of the software development project to be measured.
3. A software development time determination device, It is characterized in that include: A development project clustering unit, used for inputting the characteristic value of the software development project to be measured into a pre-established development project clustering model to obtain a clustering field value of the software development project to be measured; A development man-hour determination unit, configured to input the number of lines of code of the software development project to be measured into a man-hour measurement model corresponding to the software development project to be measured, and obtain the software development man-hour of the software development project to be measured; Wherein, the software development man-hour determination device further includes: A clustering model building unit, used to cluster the historical software development projects according to their feature values, to obtain the development project clustering model and the clustering field values of the historical software development projects; Wherein, the clustering model building unit includes: A cluster training set establishment module, used to establish a development project cluster training set according to the characteristic values of the historical software development projects; the characteristic values of the historical software development projects at least include the technical debt rate, average cyclomatic complexity, code line coverage and application architecture score of the historical software development projects; A clustering model building module is used to normalize each feature value in the development project clustering training set and then input it into the k-means clustering initial model to obtain the development project clustering model and the clustering field value of the historical software development project; The software development man-hour determination device is characterized in that it also includes: A measurement model building unit, for determining the man-hour measurement model according to the number of lines of code and the historical actual man-hours of the historical software development projects with different cluster field values; Wherein, the measurement model building unit includes: A historical data acquisition module, used to acquire cluster field values, code lines, and historical actual working hours of the historical software development project; A model training set building module, used to build a man-hour measurement model training set using the cluster field values, code lines, and historical actual man-hours of the historical software development project; The measurement model building module is used to input the man-hour measurement model training set into a pre-initialized polynomial regression function to obtain the man-hour measurement model corresponding to the cluster field value.
4. The software development man-hour determination device according to claim 3, It is characterized in that The development project clustering unit comprises: A clustering data set establishment module, used to establish a clustering data set of the software development project to be measured according to the characteristic values of the software development project to be measured; the characteristic values of the software development project to be measured at least include the technical debt rate, average cyclomatic complexity, code line coverage and application architecture score of the software development project to be measured; The clustering field value determination module is used to normalize each feature value in the clustering data set of the software development project to be measured and input it into the development project clustering model to cluster the software development project to be measured and obtain the clustering field value of the software development project to be measured.
5. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, It is characterized in that When the processor executes the program, the steps of the method for determining software development man-hours according to any one of claims 1 to 2 are implemented.
6. A computer-readable storage medium having a computer program stored thereon, It is characterized in that When the computer program is executed by a processor, the steps of the method for determining software development man-hours as claimed in any one of claims 1 to 2 are implemented.
Citation Information
Patent Citations
TopCoder-oriented swarm software quality evaluation system and method
CN109062783A
Work order automatic classification method and device
CN111949795A