Software development process optimization method and device based on machine learning

By applying machine learning technology in software development tools, analyzing and optimizing software development processes, the problem that traditional tools are difficult to predict risks and problems in a rapidly changing project environment is solved, and the efficiency and quality of software development has been improved.

CN119645362APending Publication Date: 2025-03-18JINAN DALU ELECTROMECHANICAL CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411757681.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-03
Publication Date
2025-03-18

AI Technical Summary

Technical Problem

Traditional software development tools are difficult to predict risks and problems in a rapidly changing project environment, resulting in project delays and increased costs, and the tools are fixed in architecture, making it difficult to adjust according to project needs.

Method used

Using a machine learning-based method, we can obtain and preprocess software development data, extract feature information, and use clustering algorithms and decision tree models for analysis to achieve optimization of the software development process.

Benefits of technology

It significantly improves the efficiency and quality of software development, reduces project delays and cost increases through adaptive and predictive characteristics, and improves the applicability and scalability of tools.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119645362A_ABST
    Figure CN119645362A_ABST
Patent Text Reader

Abstract

The invention provides a software development process optimization method and device based on machine learning. The method comprises the steps that after software development data involved in a target software development process is obtained, feature extraction is conducted on the preprocessed software development data, and code submission class features, test result class features, project progress management class features and developer feedback class features are obtained; adopting a preset clustering algorithm to cluster the code submission class features, the test result class features and the project progress management class features to obtain clustering cluster information corresponding to different development stages in the project progress management class features; processing the code submission class features, the test result class features and the project progress management class features by adopting a trained decision tree algorithm model to obtain progress information corresponding to different development stages; and after the two kinds of information are analyzed, if an analysis result meets a preset optimization condition, optimizing the corresponding development stage. According to the method, the software development efficiency and quality are improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computer technology, and more specifically, to a method and device for optimizing a software development process based on machine learning. Background Art

[0002] In the existing industrial Internet software development process management field, most systems use traditional development methods, including horizontal management tools and static project management frameworks. These systems often focus on post-event problem tracking and document management, lack flexibility and adaptability, and therefore have difficulty effectively responding to the following issues in a rapidly changing project environment: Traditional tools usually only start processing after a problem occurs, and are unable to predict risks and problems in advance, leading to project delays and increased costs. Many existing tools use a fixed architecture that is difficult to adjust according to the specific needs of the project, which limits the applicability and scalability of the tools. Summary of the invention

[0003] The purpose of the embodiments of the present application is to provide a method and device for optimizing the software development process based on machine learning, so as to solve the shortcomings of traditional development tools and significantly improve the efficiency and quality of software development through its adaptive and predictive features.

[0004] In a first aspect, a method for optimizing a software development process based on machine learning is provided, and the method may include:

[0005] Acquire software development data involved in the target software development process, wherein the software development data includes code submission records, test results, and project progress management data;

[0006] After preprocessing the software development data, feature extraction is performed on the preprocessed software development data to obtain code submission features, test result features, project progress management features, and developer feedback features;

[0007] Using a preset clustering algorithm, the code submission class features, test result class features and project progress management class features are clustered to obtain cluster information corresponding to different development stages in the project progress management class features; each cluster information includes a code submission class feature and a test result class feature of a development stage;

[0008] The trained decision tree algorithm model is used to process the code submission features, test result features, and project progress management features to obtain the progress information corresponding to different development stages;

[0009] After analyzing the cluster information and progress information corresponding to different development stages, if the analysis results meet the preset optimization conditions, the corresponding development stage is optimized.

[0010] In a possible implementation, performing data preprocessing on the software development data includes:

[0011] The software development data is processed to remove invalid data and abnormal values ​​to obtain processed software development data; the abnormal value refers to data exceeding a preset threshold range;

[0012] Perform word segmentation processing on the processed software development data to obtain text data after word segmentation processing;

[0013] The preset bag-of-words model method is used to vectorize the text data after word segmentation processing, and the software development data in the form of numerical vectors obtained after the processing is determined as the preprocessed software development data.

[0014] In a possible implementation, the code submission record includes code content, code submission frequency, code change frequency, code change amount, submission ratios of different developers, and code submission time;

[0015] Test results include test pass rate, test pass rate change trend, test coverage, and time to resolve abnormal issues;

[0016] Project progress management data includes time progress information, task completion status and resource usage information at different development stages.

[0017] In a possible implementation, a preset clustering algorithm is used to cluster code submission features, test result features, and project progress management features to obtain cluster information corresponding to different development stages in the project progress management features, including:

[0018] A preset clustering algorithm is used to cluster the different development stage features in the project progress management features, the code submission time features in the code submission features, the code content features, and the test pass rate change trend features, test coverage features, and abnormal problem resolution time features in the test result features, to obtain the clustering cluster information corresponding to the different development stages in the project progress management features. Each clustering cluster information includes the code submission features and test result features corresponding to a development stage.

[0019] In a possible implementation, a trained decision tree algorithm model is used to process code submission features, test result features, and project progress management features to obtain progress information corresponding to different development stages, including:

[0020] The trained decision tree algorithm model is used to process the different development stage features in the project progress management features, the code submission frequency features in the code submission features, the test pass rate features in the test result features, and the problem solving time features to obtain the progress information corresponding to different development stages.

[0021] In a possible implementation, if the analysis result meets the preset optimization conditions, the corresponding development stage is optimized, including:

[0022] If the problem involved in the analysis result matches the configured common problems, then based on the mapping relationship between different configured common problems and different optimization rules, the target optimization rule corresponding to the matching common problems is determined, and the corresponding development stage is optimized based on the target optimization rule;

[0023] If the problems involved in the analysis results do not match the configured common problems, the trained deep Q network model is used, and the analysis results are represented as state input to obtain optimization suggestions output by the model; the deep Q network model is trained with historical analysis results and corresponding optimization suggestions as training targets, and with performance improvement of the development process as a reward.

[0024] In a possible implementation, the software development data further includes developer feedback data; the developer feedback data includes problems encountered in the development process and suggestions for the development process; the method further includes:

[0025] Analyze the developer feedback data of different developers, the submission ratios of different developers in the code submission characteristics, the frequency of code changes, and the amount of code changes;

[0026] If the analysis results meet the preset optimization conditions, the corresponding developers will be optimized.

[0027] In a second aspect, a device for optimizing a software development process based on machine learning is provided, and the device may include:

[0028] An acquisition unit, used to acquire software development data involved in the target software development process, wherein the software development data includes code submission records, test results, and project progress management data;

[0029] An extraction unit is used to extract features from the preprocessed software development data after preprocessing the software development data to obtain code submission features, test result features, project progress management features, and developer feedback features;

[0030] A clustering unit, used to cluster code submission class features, test result class features and project progress management class features using a preset clustering algorithm, and obtain cluster information corresponding to different development stages in the project progress management class features; each cluster information includes a code submission class feature and a test result class feature of a development stage;

[0031] A processing unit, used to process code submission features, test result features, and project progress management features using a trained decision tree algorithm model to obtain progress information corresponding to different development stages;

[0032] The optimization unit is used to analyze the cluster information and progress information corresponding to different development stages, and if the analysis result meets the preset optimization conditions, the corresponding development stage is optimized.

[0033] In a third aspect, an electronic device is provided, the electronic device comprising a processor, a communication interface, a memory and a communication bus, wherein the processor, the communication interface and the memory communicate with each other via the communication bus;

[0034] Memory, used to store computer programs;

[0035] The processor is used to implement any method step described in the first aspect when executing the program stored in the memory.

[0036] In a fourth aspect, a computer-readable storage medium is provided, wherein a computer program is stored in the computer-readable storage medium, and when the computer program is executed by a processor, any method step described in the first aspect is implemented.

[0037] The optimization method of the software development process based on machine learning provided by the embodiment of the present application obtains the software development data involved in the target software development process, and the software development data includes code submission records, test results and project progress management data; after the software development data is preprocessed, the preprocessed software development data is subjected to feature extraction to obtain code submission class features, test result class features, project progress management class features and developer feedback class features; using a preset clustering algorithm, the code submission class features, test result class features and project progress management class features are clustered to obtain cluster cluster information corresponding to different development stages in the project progress management class features; each cluster cluster information includes a development stage code submission class feature and a test result class feature; using a trained decision tree algorithm model, the code submission class feature, the test result class feature and the project progress management class feature are processed to obtain progress information corresponding to different development stages; after analyzing the cluster cluster information and progress information corresponding to different development stages, if the analysis result meets the preset optimization conditions, the corresponding development stage is optimized. This method improves the efficiency and quality of software development. BRIEF DESCRIPTION OF THE DRAWINGS

[0038] In order to more clearly illustrate the technical solutions of the embodiments of the present application, the drawings required for use in the embodiments of the present application will be briefly introduced below. It should be understood that the following drawings only show certain embodiments of the present application and therefore should not be regarded as limiting the scope. For ordinary technicians in this field, other related drawings can be obtained based on these drawings without paying creative work.

[0039] Figure 1 A schematic diagram of the structure of an optimization system provided in an embodiment of the present application;

[0040] Figure 2 A flowchart of a method for optimizing a software development process based on machine learning provided in an embodiment of the present application;

[0041] Figure 3 A schematic diagram of the structure of a device for optimizing a software development process based on machine learning provided in an embodiment of the present application;

[0042] Figure 4 A schematic diagram of the structure of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0043] 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 of the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present application. Unless otherwise defined, the technical terms or scientific terms used in this application should be the common meanings understood by people with ordinary skills in the field to which the present invention belongs. The "first", "second" and similar words used in this application do not indicate any order, quantity or importance, but are only used to distinguish different components. "Including" or "including" and other similar words mean that the elements or objects appearing before the word include the elements or objects listed after the word and their equivalents, without excluding other elements or objects. "Connected", "coupled" or "connected" and other similar words are not limited to physical or mechanical connections, but may include electrical connections, whether direct or indirect. "Up", "down", "left", "right" and the like are only used to indicate relative positional relationships. When the absolute position of the described object changes, the relative positional relationship may also change accordingly.

[0044] The optimization method of the software development process based on machine learning proposed in the embodiment of the present application can be applied in Figure 1 In the optimization system architecture shown, the optimization system may include: a data collection module, an optimization module, a user feedback module, and a machine learning processing center;

[0045] Data collection module, used to collect software development data including code submission records, test results and project progress management data;

[0046] The optimization module is used to store optimization strategies for the software development process, including optimization rules and trained deep Q network models;

[0047] The user feedback module is used to receive user suggestions for improving the development process through the user interface, and receive user adjustment parameters through the user interface.

[0048] The machine learning processing center is used to execute the optimization method of the software development process based on machine learning in this application, and call the data collection module, optimization module and user feedback module to achieve the optimization of the software development process.

[0049] The specific advantages and innovations of the optimization method of the software development process based on machine learning proposed in the embodiment of the present application include:

[0050] Adaptive learning mechanism: By applying machine learning algorithms, the system can automatically collect and analyze development data, and adjust and optimize the development process in real time. This adaptive capability allows the system to continuously improve according to the actual progress of the project and the team's work mode, effectively improving development efficiency and reducing rework.

[0051] Predictive failure analysis technology: The predictive analysis function of this technology can provide warnings and solution suggestions before problems occur, significantly reducing delays in the development process, handling potential quality issues in advance, and improving product quality.

[0052] Modular and scalable design: Unlike existing fixed or closed systems, the modular design of this application allows individual components to be flexibly combined and adjusted to suit different project requirements and development scales, providing better versatility and adaptability.

[0053] Integration of cloud infrastructure and collaboration tools: Emphasis on the integration of cloud technology and team collaboration tools, so that geographically dispersed teams can also achieve efficient real-time collaboration and adapt to modern remote working mode.

[0054] Direct user feedback integration: Built-in user feedback channels allow end users to directly participate in the development process, make suggestions for improvements, and speed up the adjustment of product functions to better meet market and user needs.

[0055] Through these innovations, the technology of this application not only solves the shortcomings of traditional development tools, but also significantly improves the efficiency and quality of software development through its adaptive and predictive features.

[0056] The preferred embodiments of the present application are described below in conjunction with the drawings in the specification. It should be understood that the preferred embodiments described herein are only used to illustrate and explain the present application, and are not used to limit the present application. In addition, the embodiments and features in the embodiments of the present application may be combined with each other if there is no conflict.

[0057] Figure 2 A flowchart of a method for optimizing a software development process based on machine learning is provided in an embodiment of the present application. Figure 2 As shown, the method may include:

[0058] Step S210: Acquire software development data involved in the target software development process.

[0059] Software development data may include code submission records, test results, and project progress management data; among them, code submission records may include the submitted code content, submitters, code submission frequency, and each code addition, deletion, and modification, i.e., code change frequency, code change amount, submission ratio of different developers, and code submission time, which are regularly obtained through integration with the version control system;

[0060] The test results include the execution status of the test cases extracted from the automated testing tools or manual test record documents, including the number of test cases that passed or failed, the test pass rate, the trend of the test pass rate, the test coverage, and the time to resolve abnormal issues;

[0061] Project progress management data can include time progress information, task completion status and resource utilization information at different development stages, that is, data covering time progress (including planned schedule, actual working time and task completion time), task completion status (including task list, completion percentage and acceptance of deliverables), resource utilization (including manpower, materials and expenses), etc.

[0062] Step S220: After preprocessing the software development data, feature extraction is performed on the preprocessed software development data to obtain code submission features, test result features, project progress management features, and developer feedback features.

[0063] Perform data preprocessing on software development data, including:

[0064] Processing the software development data to remove invalid data and outliers to obtain processed software development data; the outliers refer to data exceeding a preset threshold range;

[0065] Perform word segmentation processing on the processed software development data to obtain text data after word segmentation processing;

[0066] The preset bag-of-words model method is used to vectorize the text data after word segmentation processing, and the software development data in the form of numerical vectors obtained after the processing is determined as the preprocessed software development data.

[0067] Furthermore, features are extracted from code submission records. Code submission features may include code submission frequency, code change frequency, code change amount, and submission ratios of different developers. Features are constructed based on test results. Test result features may include changing trends in test pass rates, differences in test coverage of different modules, and the time required to resolve abnormal problems.

[0068] Step S230: cluster the code submission features, test result features and project progress management features using a preset clustering algorithm to obtain cluster information corresponding to different development stages in the project progress management features.

[0069] The clustering algorithm K-Means is used to classify the data features in the development process to group project stages with similar code submission and test result characteristics into one category to discover potential process regularities and anomalies.

[0070] The cluster information of each cluster may include code submission class features and test result class features corresponding to a development stage.

[0071] Step S240: Use the trained decision tree algorithm model to process the code submission class features, test result class features and project progress management class features to obtain progress information corresponding to different development stages.

[0072] The decision tree algorithm model is used to predict bottlenecks and efficiency issues in the development process using data features in the development process as input. Based on the frequency of code submissions, test pass rate, and problem resolution time, it is determined whether there is a risk of progress delay in the current development stage.

[0073] It is understandable that for the model involved in steps S130-S140, the data in the development process collected historically can be divided into a training set and a validation set. The corresponding model is trained using the training set, and the parameters of the corresponding model are manually adjusted through the user interface. The parameters may include the number of clusters of the clustering algorithm and the depth of the decision tree, so that the model achieves better performance on the training set. Then, the trained model is evaluated using the validation set, and the optimal model parameters are selected according to the accuracy of the evaluation index.

[0074] Step S250: After analyzing the cluster information and progress information corresponding to different development stages, optimize the corresponding development stage based on the analysis result.

[0075] The clustering algorithm can obtain the classification of each stage in the development process, so the analysis result is: which stages have similar characteristics and potential problems. The decision tree model can output the judgment conditions and prediction results of each development stage, so the analysis result is: under which conditions is it predicted that the development process may have inefficiency problems, and point out the relevant characteristic factors.

[0076] When the analysis results do not meet the preset optimization conditions, the process ends;

[0077] When the analysis results meet the preset optimization conditions, the corresponding development stage is optimized, including:

[0078] If the problems involved in the analysis results match the configured common problems, the target optimization rules corresponding to the matching common problems are determined based on the mapping relationship between different configured common problems and different optimization rules, and the corresponding development stage is optimized based on the target optimization rules;

[0079] In one example, a series of preset optimization rules can be formulated based on common problems in the analysis results. For example, if the test pass rate is continuously below a certain threshold and the code changes are large, it is recommended to conduct code review and optimize the test case process. When it is found that the code submission frequency of a team is too low, it is recommended to strengthen team communication and collaboration and formulate a clearer development plan and schedule.

[0080] If the problems involved in the analysis results do not match the common problems of the configuration, the trained deep Q network model is used, and the analysis results are represented as state input to obtain the optimization suggestions output by the model; the deep Q network model is trained with historical analysis results and corresponding optimization suggestions as training targets, and performance improvement of the development process as a reward.

[0081] In one example, a reinforcement learning algorithm is used to treat the development process as a dynamic environment, optimization recommendations as actions, and performance improvements in the development process as rewards. By continuously trying different optimization suggestions, the recommendation strategy is adjusted based on the feedback reward signal to find the optimization solution that best suits the current project.

[0082] Using the deep Q-network algorithm, the feature representation obtained by the analysis and processing module is used as the state input, and the optimization suggestion is used as the action output. The model continuously learns in the interaction with the development process environment, gradually optimizes the recommendation strategy, generates more accurate optimization suggestions for different project scenarios, and adjusts the suggestions or test process optimization strategies for the team division of labor for specific types of projects.

[0083] In some embodiments, when the software development data includes developer feedback data; the developer feedback data includes problems encountered in the development process and suggestions for the development process;

[0084] The developer feedback data of different developers, the submission ratios of different developers in the code submission characteristics, the frequency of code changes, and the amount of code changes can be analyzed; that is, the analysis results are: the performance differences of different developers or teams in the development process, and the comparison of the quality and efficiency of the developer's code submission with other developers. If the analysis results meet the preset optimization conditions, the corresponding developer will be optimized, such as replacing the developer / developer team, or providing education and guidance to the current developer / developer team.

[0085] The user interface in the method provided by the present application can not only adjust the parameters of the corresponding model, but also optimize the relevant parameters (such as learning rate, discount factor, etc.) of the reinforcement learning algorithm in the recommendation engine. A parameter setting area is provided on the user interface, and the user can adjust the parameters by means of a slider, an input box, etc. For the number of clusters, the user can select a suitable value by a slider within a specified range. After the user adjusts the parameters, the system displays the impact prediction of the parameter adjustment on the analysis results and optimization suggestions in real time. By simulation analysis or using a simple visualization method to show the classification result changes of the decision tree model under different parameters or the difference in the optimization suggestions generated by the reinforcement learning algorithm, the user is helped to understand the effect of parameter adjustment, so as to better optimize the parameters according to the project requirements, so as to obtain a development process optimization suggestion that is more in line with the actual situation. At the same time, the function of saving and resetting parameters is provided to facilitate the user to try and compare different parameter configurations.

[0086] In addition, optimization suggestions can be presented in a clear and understandable way in the user interface. Try to use a list format to display the title and brief description of each suggestion, and you can also use charts or graphics to display relevant data support.

[0087] For suggestions on adjusting the division of labor in the team, you can use an organizational chart to display the current team structure and the recommended adjustment plan, highlighting the changes. For suggestions on optimizing the test process, display a trend chart of the test pass rate and related test data comparisons.

[0088] The method provided in this application has the application of adaptive learning mechanism: compared with traditional development process management tools, the system continuously collects and analyzes development data through machine learning algorithms, and automatically adjusts and optimizes the development process. This adaptive ability makes the system not only responsive, but also continuously improves according to the actual progress of the project and the team's work mode, thereby significantly improving development efficiency.

[0089] Predictive failure analysis technology: Existing systems mostly rely on post-analysis and problem solving, while this application technology can provide warnings and solution suggestions before problems occur through predictive analysis. This forward-looking quality control method can significantly reduce rework and delays in the development process and improve the quality of the final product.

[0090] Modular and scalable system design: Unlike other systems that may adopt a relatively fixed or closed structure, the modular design of this application allows the various components to be flexibly combined and adjusted to adapt to different project requirements and development scales, enhancing the system's versatility and ability to adapt to different development scenarios.

[0091] Integration of cloud infrastructure and collaboration tools: This system places special emphasis on the application of cloud technology and the integration of team collaboration tools, so that geographically dispersed teams can also achieve efficient real-time collaboration. This is a point that has not yet been widely applied in many existing systems and is particularly critical for modern remote work models.

[0092] Direct user feedback integration: The system's built-in user feedback channel allows end users to directly participate in the development process and make suggestions for improvements. This feedback mechanism can adjust product features more quickly to better meet market and user needs, which is often difficult to achieve in traditional development processes.

[0093] In some embodiments, new actual development requirements may be obtained, and multiple requirement code snippets matching the actual development requirements may be generated through a pre-trained machine learning model and the actual development requirements;

[0094] Through intelligent testing technology, the information of the software application scenario is processed to generate scenario test cases; through the scenario test cases, multiple requirement code fragments are tested to determine the software code data to realize automated software development.

[0095] This application has the following beneficial effects:

[0096] Improve development efficiency: Through the adaptive learning mechanism, the system can continuously learn and optimize the development process, reduce redundant work, and speed up project delivery.

[0097] Improved quality control: With predictive failure analysis, the system can predict and warn of possible problems in advance, helping the team to develop a solution strategy in advance, thereby improving product quality.

[0098] Increased flexibility and scalability: The modular design allows the system to be quickly adjusted according to specific project needs and is suitable for development projects of different sizes and types.

[0099] Enhanced collaboration: With cloud infrastructure support, the system can achieve efficient collaboration among team members and maintain good synchronization even if the team is distributed in different geographical locations.

[0100] Improved user experience: The integrated user feedback system allows developers to directly provide improvement suggestions, and the system is adjusted accordingly to better meet users' actual needs.

[0101] Corresponding to the above method, the embodiment of the present application also provides an optimization device for software development process based on machine learning, such as Figure 3 As shown, the device comprises:

[0102] The acquisition unit 310 is used to acquire software development data involved in the target software development process, wherein the software development data includes code submission records, test results, and project progress management data;

[0103] The extraction unit 320 is used to extract features from the preprocessed software development data after preprocessing the software development data to obtain code submission features, test result features, project progress management features, and developer feedback features;

[0104] The clustering unit 330 is used to cluster the code submission class features, the test result class features and the project progress management class features using a preset clustering algorithm to obtain cluster information corresponding to different development stages in the project progress management class features; each cluster information includes a code submission class feature and a test result class feature of a development stage;

[0105] The processing unit 340 is used to use the trained decision tree algorithm model to process the code submission class features, the test result class features and the project progress management class features to obtain the progress information corresponding to different development stages;

[0106] The optimization unit 350 is used to analyze the cluster information and progress information corresponding to different development stages, and if the analysis result meets the preset optimization condition, optimize the corresponding development stage.

[0107] The functions of each functional unit of the optimization device for software development process based on machine learning provided in the above-mentioned embodiments of the present application can be realized through the above-mentioned method steps. Therefore, the specific working process and beneficial effects of each unit in the optimization device for software development process based on machine learning provided in the embodiments of the present application will not be repeated here.

[0108] The present application also provides an electronic device, such as Figure 4 As shown, it includes a processor 410 , a communication interface 420 , a memory 430 and a communication bus 440 , wherein the processor 410 , the communication interface 420 , and the memory 430 communicate with each other via the communication bus 440 .

[0109] Memory 430, for storing computer programs;

[0110] The processor 410 is used to execute the program stored in the memory 430 to implement the following steps:

[0111] Acquire software development data involved in the target software development process, wherein the software development data includes code submission records, test results, and project progress management data;

[0112] After preprocessing the software development data, feature extraction is performed on the preprocessed software development data to obtain code submission features, test result features, project progress management features, and developer feedback features;

[0113] Using a preset clustering algorithm, the code submission class features, test result class features and project progress management class features are clustered to obtain cluster information corresponding to different development stages in the project progress management class features; each cluster information includes a code submission class feature and a test result class feature of a development stage;

[0114] The trained decision tree algorithm model is used to process the code submission features, test result features, and project progress management features to obtain the progress information corresponding to different development stages;

[0115] After analyzing the cluster information and progress information corresponding to different development stages, if the analysis results meet the preset optimization conditions, the corresponding development stage is optimized.

[0116] The communication bus mentioned above can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. The communication bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, only one thick line is used in the figure, but it does not mean that there is only one bus or one type of bus.

[0117] The communication interface is used for communication between the above electronic device and other devices.

[0118] The memory may include a random access memory (RAM) or a non-volatile memory (NVM), such as at least one disk memory. Optionally, the memory may also be at least one storage device located away from the aforementioned processor.

[0119] The above-mentioned processor can be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), etc.; it can also be a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components.

[0120] The implementation methods and beneficial effects of the components of the electronic device in the above embodiments to solve the problems can be seen in Figure 2 The various steps in the illustrated embodiment are implemented, therefore, the specific working process and beneficial effects of the electronic device provided by the embodiment of the present application are not repeated here.

[0121] In another embodiment provided in the present application, a computer-readable storage medium is also provided, in which instructions are stored. When the computer-readable storage medium is executed on a computer, the computer executes the method for optimizing the software development process based on machine learning as described in any of the above embodiments.

[0122] In another embodiment provided in the present application, a computer program product comprising instructions is also provided, which, when executed on a computer, enables the computer to execute the method for optimizing the software development process based on machine learning as described in any of the above embodiments.

[0123] Those skilled in the art will appreciate that the embodiments in the present application may be provided as methods, systems, or computer program products. Therefore, the present application may adopt a complete hardware embodiment, a complete software embodiment, or a form of an embodiment combining software and hardware. Moreover, the present application may adopt a 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.

[0124] The embodiments of the present application are described with reference to the flowcharts and / or block diagrams of the methods, devices (systems), and computer program products according to the embodiments of the present application. It should be understood that each process and / or box in the flowchart and / or block diagram, as well as the combination of the processes and / or boxes 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. 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.

[0125] 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.

[0126] 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.

[0127] Although the preferred embodiments of the present application have been described, those skilled in the art may make additional changes and modifications to these embodiments once they have learned the basic creative concept. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments and all changes and modifications falling within the scope of the embodiments of the present application.

[0128] Obviously, those skilled in the art can make various changes and modifications to the embodiments in the present application without departing from the spirit and scope of the embodiments in the present application. Thus, if these modifications and variations of the embodiments in the present application fall within the scope of the claims and their equivalents in the embodiments of the present application, the embodiments of the present application are also intended to include these modifications and variations.

Claims

1. A method for optimizing software development process based on machine learning, characterized in that: The method comprises: Acquire software development data involved in the target software development process, wherein the software development data includes code submission records, test results, and project progress management data; After preprocessing the software development data, feature extraction is performed on the preprocessed software development data to obtain code submission features, test result features, project progress management features, and developer feedback features; Using a preset clustering algorithm, the code submission class features, test result class features and project progress management class features are clustered to obtain cluster information corresponding to different development stages in the project progress management class features; each cluster information includes a code submission class feature and a test result class feature of a development stage; The trained decision tree algorithm model is used to process the code submission features, test result features, and project progress management features to obtain the progress information corresponding to different development stages; After analyzing the cluster information and progress information corresponding to different development stages, if the analysis results meet the preset optimization conditions, the corresponding development stage is optimized.

2. The method according to claim 1, characterized in that The software development data is preprocessed, including: The software development data is processed to remove invalid data and abnormal values ​​to obtain processed software development data; the abnormal value refers to data exceeding a preset threshold range; Perform word segmentation processing on the processed software development data to obtain text data after word segmentation processing; The preset bag-of-words model method is used to vectorize the text data after word segmentation processing, and the software development data in the form of numerical vectors obtained after the processing is determined as the preprocessed software development data.

3. The method according to claim 1, characterized in that The code submission record includes code content, code submission frequency, code change frequency, code change amount, submission ratio of different developers and code submission time; The test results include the test pass rate, the changing trend of the test pass rate, the test coverage, and the time required to resolve abnormal issues; Project progress management data includes time progress information, task completion status and resource usage information at different development stages.

4. The method according to claim 3, characterized in that The preset clustering algorithm is used to cluster the code submission features, test result features, and project progress management features to obtain cluster information corresponding to different development stages in the project progress management features, including: A preset clustering algorithm is used to cluster the different development stage features in the project progress management features, the code submission time features in the code submission features, the code content features, and the test pass rate change trend features, test coverage features, and abnormal problem resolution time features in the test result features, to obtain the clustering cluster information corresponding to the different development stages in the project progress management features. Each clustering cluster information includes the code submission features and test result features corresponding to a development stage.

5. The method according to claim 3, characterized in that The trained decision tree algorithm model is used to process the code submission features, test result features, and project progress management features to obtain the progress information corresponding to different development stages, including: The trained decision tree algorithm model is used to process the different development stage features in the project progress management features, the code submission frequency features in the code submission features, the test pass rate features in the test result features, and the problem solving time features to obtain the progress information corresponding to different development stages.

6. The method according to claim 1, characterized in that If the analysis results meet the preset optimization conditions, the corresponding development stage will be optimized, including: If the problem involved in the analysis result matches the configured common problems, then based on the mapping relationship between different configured common problems and different optimization rules, the target optimization rule corresponding to the matching common problems is determined, and the corresponding development stage is optimized based on the target optimization rule; If the problems involved in the analysis results do not match the configured common problems, the trained deep Q network model is used, and the analysis results are represented as state input to obtain optimization suggestions output by the model; the deep Q network model is trained with historical analysis results and corresponding optimization suggestions as training targets, and with performance improvement of the development process as a reward.

7. The method according to claim 1, characterized in that The software development data also includes developer feedback data; The developer feedback data includes problems encountered in the development process and suggestions for the development process; the method further includes: Analyze the developer feedback data of different developers, the submission ratios of different developers in the code submission characteristics, the frequency of code changes, and the amount of code changes; If the analysis results meet the preset optimization conditions, the corresponding developers will be optimized.

8. A device for optimizing software development process based on machine learning, characterized in that: The device comprises: An acquisition unit, used to acquire software development data involved in the target software development process, wherein the software development data includes code submission records, test results, and project progress management data; An extraction unit is used to extract features from the preprocessed software development data after preprocessing the software development data to obtain code submission features, test result features, project progress management features, and developer feedback features; A clustering unit, used to cluster code submission class features, test result class features and project progress management class features using a preset clustering algorithm, and obtain cluster information corresponding to different development stages in the project progress management class features; each cluster information includes a code submission class feature and a test result class feature of a development stage; A processing unit, used to process code submission features, test result features, and project progress management features using a trained decision tree algorithm model to obtain progress information corresponding to different development stages; The optimization unit is used to analyze the cluster information and progress information corresponding to different development stages, and if the analysis result meets the preset optimization conditions, the corresponding development stage is optimized.

9. An electronic device, characterized in that: The electronic device comprises a processor, a communication interface, a memory and a communication bus, wherein the processor, the communication interface and the memory communicate with each other via the communication bus; Memory, used to store computer programs; A processor, for implementing any of the methods described in claims 1-7 when executing a program stored in a memory.

10. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the method according to any one of claims 1 to 7 is implemented.