Reinforcement learning-based software function iteration priority decision method and system
By using a discrete particle swarm optimization algorithm based on reinforcement learning, and combining the overall overlap and expected functional value, the software function development sequence is optimized, which solves the problem that existing technologies have failed to achieve global optimization and improves development efficiency and resource utilization.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- DELING SMART SERVICE (BEIJING) TECHNOLOGY CO LTD
- Filing Date
- 2026-03-05
- Publication Date
- 2026-06-05
Smart Images

Figure CN122152281A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of software function decision-making technology, specifically to a method and system for prioritizing software function iterations based on reinforcement learning. Background Technology
[0002] Prioritizing software features is a crucial step in product development, with the core objective of determining the order in which features are developed within limited resource constraints. This decision-making process typically involves considering multiple factors, including the expected value of each feature, development costs, and technological dependencies. The expected value of a feature can be quantified using methods like the Analytic Hierarchy Process (AHP), transforming subjective judgments into quantifiable values. The development cost of a feature is related to the number and complexity of its sub-modules. In real-world development scenarios, companies or teams often face multiple software features to be developed simultaneously. These features are not independent but rather technically interconnected. Specifically, each feature consists of several sub-modules, and different features often share some sub-modules, meaning these sub-modules appear repeatedly in different features. Due to limited development resources, teams cannot develop all features in parallel and must develop them sequentially.
[0003] Existing methods for prioritizing software feature iterations often employ static ranking models, such as simple ranking based on value scores or using weighted scoring to prioritize features. These methods have the following shortcomings: First, each feature is evaluated independently, failing to fully consider the technical dependencies and reuse potential arising from shared sub-modules. Second, the decision-making process lacks dynamic optimization of the development sequence. Finally, existing methods often adopt a local optimization approach, considering only the comparison between current software features for each decision, without considering the overall optimality. This can lead to decisions that get stuck in local optima and fail to achieve a globally optimal path planning where earlier-developed features provide reusable modules for later-developed features.
[0004] Therefore, it is necessary to propose a software function iteration priority decision method to achieve global optimization of the software function development sequence. Summary of the Invention
[0005] (1) Technical problems to be solved The purpose of this invention is to provide a method and system for prioritizing software function iterations based on reinforcement learning, thereby achieving global optimization of the software function development sequence.
[0006] (2) Technical solution To achieve the above objectives, this invention provides a software function iteration priority decision method based on reinforcement learning, the method comprising the following steps: S1, obtain the set of software functions to be decided; the set of software functions to be decided includes N software functions; number the N software functions and denot them as the first software function to the Nth software function; obtain the expected functional value of the first software function to the Nth software function and denot them as the first expected functional value to the Nth expected functional value.
[0007] S2, obtain the sets of sub-functional modules contained in the first software function to the Nth software function, respectively, and denoted as the first sub-functional module set to the Nth sub-functional module set; obtain the number of times each sub-functional module in the first sub-functional module set to the Nth sub-functional module set appears in the first sub-functional module set to the Nth sub-functional module set; calculate the overall overlap of the first sub-functional module set to the Nth sub-functional module set, respectively, and denoted as the first overall overlap to the Nth overall overlap; denote the software function corresponding to the maximum value among the first overall overlap to the Nth overall overlap as the basic software function.
[0008] S3, taking the basic software function as the starting point, based on the first expected functional value to the Nth expected functional value, with the goal of maximizing the sum of the weighted sum of the expected functional value of each software function developed later in the development sequence and the maximum overlap between it and all software functions developed earlier, the discrete particle swarm optimization algorithm is used to obtain the optimal development sequence of the first software function to the Nth software function.
[0009] S4. Develop software functions according to the optimal development order from the first software function to the Nth software function.
[0010] Furthermore, the method for obtaining the expected functional values of the first software function to the Nth software function respectively, and denoting them as the first expected functional value to the Nth expected functional value respectively, includes: The expected functional values of the first software function to the Nth software function are obtained by using the analytic hierarchy process, and are respectively denoted as the first expected functional value to the Nth expected functional value; the values of the first expected functional value to the Nth expected functional value are in the range of 0 to 1.
[0011] Further, the method for calculating the overall overlap from the first set of sub-functional modules to the Nth set of sub-functional modules, denoted as the first overall overlap to the Nth overall overlap, includes: The first to Nth overall overlap degrees are calculated using the overall overlap degree formula; the overall overlap degree formula is as follows: ; in, Indicates the overall overlap of the i-th element; This represents the number of sub-functional modules in the i-th sub-functional module set obtained from statistics, where i represents an integer variable with values from 1 to N; Represents the i-th sub-functional module in the set of sub-functional modules. The number of times each sub-functional module appears in the set of sub-functional modules from the first sub-functional module set to the Nth sub-functional module set. Indicates a value from 1 to Integer variables.
[0012] Furthermore, the method for obtaining the optimal development order of the first software function to the Nth software function using the discrete particle swarm optimization algorithm, with the goal of maximizing the sum of the weighted sums of the expected functional value of each later-developed software function and its maximum overlap with all earlier-developed software functions, based on the first expected functional value to the Nth expected functional value, includes: The corresponding numbers for the basic software functions are denoted as follows: .
[0013] Construct an optimization objective function; the optimization objective function is expressed as: ; in, This represents the objective function to be optimized. To optimize variables; This indicates that, according to the development order, the first... The number corresponding to each software function being developed; Represents an integer variable that takes values from 2 to N; This represents the pre-set weighting coefficients. The value of is greater than 0 and less than 1; The value range is from 1 to N and is not equal to 1. Integer variables, The value is ; Indicates the first Expected functional value; The value is 1 to Integers between; Indicates the first Sub-functional module set and the first The degree of intersection and overlap of the sub-functional module sets; The calculation formula is: ; in, Indicates the first Sub-functional module set and the first The number of sub-functional modules in the intersection of the sets of sub-functional modules; This indicates the statistical result of the first... The number of sub-functional modules in the set of sub-functional modules.
[0014] Construct optimization constraints.
[0015] Using the aforementioned optimization constraints as constraints and maximizing the value of the objective function as the objective, the discrete particle swarm optimization algorithm is employed to calculate the result. to The optimal values are denoted as follows: to The optimal development order for the first to Nth software functions is determined to be: software function B, software function N ... Software functionality up to the first Software functionality.
[0016] Furthermore, the method for constructing optimization constraints includes: Construct optimization constraints, wherein the optimization constraints are: to They are not equal to each other, and none of them are equal to each other. .
[0017] Based on the same inventive concept, this invention also provides a software function iteration priority decision system based on reinforcement learning, the system comprising: The data reading module is used to acquire a set of software functions to be decided; the set of software functions to be decided includes N software functions; the N software functions are numbered and denoted as the first software function to the Nth software function; the expected functional value of the first software function to the Nth software function is acquired and denoted as the first expected functional value to the Nth expected functional value.
[0018] The basic software function decision module, connected to the data reading module, is used to obtain the sets of sub-functional modules contained in the first software function to the Nth software function, denoted as the first sub-functional module set to the Nth sub-functional module set; to obtain the occurrence count of all sub-functional modules in the first sub-functional module set to the Nth sub-functional module set; to calculate the overall overlap of the first sub-functional module set to the Nth sub-functional module set, denoted as the first overall overlap to the Nth overall overlap; and to denote the software function corresponding to the maximum value among the first overall overlap to the Nth overall overlap as the basic software function.
[0019] The optimal development order decision module, connected to the basic software function decision module, is used to obtain the optimal development order of the first software function to the Nth software function by taking the basic software function as the starting point and based on the first expected functional value to the Nth expected functional value. The objective is to maximize the sum of the weighted sum of the expected functional value of each software function developed later in the development order and the maximum overlap between it and all software functions developed earlier. The optimal development order is obtained by using the discrete particle swarm optimization algorithm.
[0020] The software development module is connected to the optimal development order decision module and is used to develop software functions in the optimal development order from the first software function to the Nth software function.
[0021] Furthermore, the data reading module includes: The hierarchical analysis module is used to obtain the expected functional value of the first software function to the Nth software function using the hierarchical analysis method, which are respectively denoted as the first expected functional value to the Nth expected functional value; the value range of the first expected functional value to the Nth expected functional value is between 0 and 1.
[0022] Furthermore, the basic software function decision module includes: The overall overlap calculation module is used to calculate the first to Nth overall overlap degrees using the overall overlap degree formula; the overall overlap degree formula is: ; in, Indicates the overall overlap of the i-th element; This represents the number of sub-functional modules in the i-th sub-functional module set obtained from statistics, where i represents an integer variable with values from 1 to N; Represents the i-th sub-functional module in the set of sub-functional modules. The number of times each sub-functional module appears in the set of sub-functional modules from the first sub-functional module set to the Nth sub-functional module set. Indicates a value from 1 to Integer variables.
[0023] Furthermore, the optimal development sequence decision module includes: The tagging module is used to record the numbers corresponding to the basic software functions as follows: .
[0024] An optimization objective function construction module, connected to the tagging module, is used to construct the optimization objective function; the optimization objective function is expressed as: ; in, This represents the objective function to be optimized. To optimize variables; This indicates that, according to the development order, the first... The number corresponding to each software function being developed; Represents an integer variable that takes values from 2 to N; This represents the pre-set weighting coefficients. The value of is greater than 0 and less than 1; The value range is from 1 to N and is not equal to 1. Integer variables, The value is ; Indicates the first Expected functional value; The value is 1 to Integers between; Indicates the first Sub-functional module set and the first The degree of intersection and overlap of the sub-functional module sets; The calculation formula is: ; in, Indicates the first Sub-functional module set and the first The number of sub-functional modules in the intersection of the sets of sub-functional modules; This indicates the statistical result of the first... The number of sub-functional modules in the set of sub-functional modules.
[0025] The optimization constraint construction module is connected to the optimization objective function construction module and is used to construct optimization constraints.
[0026] The optimization solution module, connected to the optimization constraint construction module, is used to calculate the solution using the discrete particle swarm optimization algorithm, with the optimization constraints as the constraints and the objective function as the maximization target. to The optimal values are denoted as follows: to The optimal development order for the first to Nth software functions is determined to be: software function B, software function N ... Software functionality up to the first Software functionality.
[0027] Furthermore, the optimization constraint construction module includes: The distinct constraint module is used to construct optimization constraints, which are: to They are not equal to each other, and none of them are equal to each other. .
[0028] (3) Beneficial effects Compared with the prior art, the beneficial effects of the present invention are: The development of software functions is started from the basic software functions identified by the overall overlap degree. The goal is to maximize the expected functional value of each software function developed later in the development sequence and the weighted sum of the maximum overlap degree between each software function and all software functions developed earlier. The optimal development sequence is solved by the discrete particle swarm optimization algorithm, thereby realizing the global optimization of the software function development sequence. Attached Figure Description
[0029] Figure 1 This is a flowchart of the software function iteration priority decision method based on reinforcement learning according to Embodiment 1 of the present invention; Figure 2 This is a schematic diagram of the module composition of the reinforcement learning-based software function iteration priority decision system according to Embodiment 2 of the present invention. Detailed Implementation
[0030] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0031] Before providing examples, it's necessary to explain the application scenario of this invention, which is applied to the global optimization of the software function development sequence. Specifically, in the software product development process, an enterprise or team faces multiple software functions to be developed, denoted as the first software function to the Nth software function. Each software function consists of several sub-functional modules, corresponding to the first to the Nth sub-functional module sets, respectively. There is overlap between the sub-functional module sets of different software functions; that is, the same sub-functional module may appear in multiple software functions simultaneously. Due to limited development resources, the team cannot develop all software functions in parallel and needs to develop them sequentially according to a certain order. In this scenario, this embodiment is used to rationally arrange the development order of each software function, achieving global optimization of the software function development sequence.
[0032] Example 1: As Figure 1 As shown, this embodiment provides a software function iteration priority decision method based on reinforcement learning, the method including the following steps: S1, obtain the set of software functions to be decided; the set of software functions to be decided includes N software functions; number the N software functions and denot them as the first software function to the Nth software function; obtain the expected functional value of the first software function to the Nth software function and denot them as the first expected functional value to the Nth expected functional value.
[0033] S2, obtain the sets of sub-functional modules contained in the first software function to the Nth software function, respectively, and denoted as the first sub-functional module set to the Nth sub-functional module set; obtain the number of times each sub-functional module in the first sub-functional module set to the Nth sub-functional module set appears in the first sub-functional module set to the Nth sub-functional module set; calculate the overall overlap of the first sub-functional module set to the Nth sub-functional module set, respectively, and denoted as the first overall overlap to the Nth overall overlap; denote the software function corresponding to the maximum value among the first overall overlap to the Nth overall overlap as the basic software function.
[0034] S3, taking the basic software function as the starting point, based on the first expected functional value to the Nth expected functional value, with the goal of maximizing the sum of the weighted sum of the expected functional value of each software function developed later in the development sequence and the maximum overlap between it and all software functions developed earlier, the discrete particle swarm optimization algorithm is used to obtain the optimal development sequence of the first software function to the Nth software function.
[0035] S4. Develop software functions according to the optimal development order from the first software function to the Nth software function.
[0036] For example, the set of software functions to be decided is obtained. For instance, a company's back-end management system needs to develop four software functions: user management, role management, access control, and log auditing, where N is 4. In this patent, N must be greater than or equal to 2. These four functions are numbered for easy differentiation and reference later, sequentially designated as the first to the fourth software function. The expected functional value of each software function is obtained. The expected functional value reflects the benefits that the function will bring after development; for example, the value of user management is 0.8, role management is 0.7, access control is 0.6, and log auditing is 0.5. The expected functional value can be obtained using various evaluation methods, such as using the Analytic Hierarchy Process (AHP) to convert the experience judgments of product managers, developers, and business experts into quantitative values, making the values of different functions comparable.
[0037] Obtain the set of sub-functional modules contained in each software function. A sub-functional module is the smallest reusable unit that constitutes a software function. For the four functions mentioned above, the user management function includes sub-functional modules such as user data model module, database operation module, and logging module; the role management function includes sub-functional modules such as role data model module, database operation module, and logging module; the permission management function includes sub-functional modules such as permission data model module, database operation module, and logging module; and the log auditing function includes sub-functional modules such as logging module and database operation module. Count the number of times each sub-functional module appears in all software functions. For example, the logging module appears in four functions, with a frequency of 4. Based on the sub-functional modules contained in each software function and their frequency of appearance, calculate the overall overlap of each software function. The overall overlap measures the degree of sharing of the sub-functional modules contained in a software function in the entire function set. The higher the overall overlap, the more common modules the function contains. The calculated overall overlap of the log auditing function is the highest. Therefore, the log auditing function is recorded as a basic software function and used as the starting point for subsequent development sequence optimization. Prioritizing the development of log auditing functionality allows its highly generic logging and database operation modules to be reused in subsequent feature development. It's worth noting that if two or more software functions have the highest overall overlap, they should be ranked from highest to lowest expected functional value, and the software function with the highest expected functional value among these should be selected as the foundational software function. If two or more software functions have the highest expected functional value among those with the highest overall overlap, the software function with the lowest function number should be selected as the foundational software function.
[0038] The development order of the basic software function, namely log auditing, is prioritized, and the development order of the remaining user management, role management, and permission management functions is optimized. The optimization objective is to maximize the expected functional value of each subsequently developed software function and the weighted sum of its maximum overlap with all previously developed software functions. In this embodiment, a weighting coefficient of 0.6 is used, so the value of subsequent software functions and the maximum overlap are weighted and summed using 0.6 and 0.4 respectively. The maximum overlap reflects the reuse potential of the current software function at the sub-module level with all previously developed software functions. That is, if a sub-module has been developed in any previous function, the current software function can directly reuse that module, requiring only minor adjustments to the sub-module's interface, which are negligible compared to the workload of developing the sub-module. Weighting and summing the expected functional value with the maximum overlap achieves a balance between functional value and reuse potential. The weighting coefficients can be adjusted according to actual development needs. Increase the weighting coefficients when functional value is prioritized, and decrease them when reuse efficiency is emphasized. The discrete particle swarm optimization algorithm is used to solve this combinatorial optimization problem, yielding the optimal development order for the remaining three functions. Placing the basic software functions first ensures that the log auditing function, which has the highest overall overlap, is developed first, maximizing the reuse of completed functional modules in subsequent development. Developing highly overlapping functions early allows the development team to complete a full software function early in the project, improving early output efficiency. Conversely, if highly overlapping functions are developed later, the early development will consist mostly of poorly related functions, each requiring significant effort and lacking reusability, leading to low early development efficiency.
[0039] The software functions are developed sequentially according to the optimal development order obtained from the solution. The final optimal development order is: log auditing function, user management function, role management function, and permission management function. When developing the user management function, since the log auditing function has already completed the development of the log recording module and database operation module, the user management function can directly reuse these two modules, and only the user data model module needs to be developed. It is worth noting that when reusing sub-functional modules, minor adjustments need to be made to the interfaces of the sub-functional modules, but the workload of these minor adjustments is negligible. In this way, the sub-functional modules contained in the software functions developed earlier are reused in the functions developed later, reducing the workload of repeated development and improving the overall development efficiency. At the same time, since the optimization of the development order takes into account both functional value and module reuse potential, high-value functions can be delivered as early as possible, and functions with high module reuse rates can provide support for subsequent development, thereby achieving optimal allocation of development resources. It is worth noting that only four software functions need to be developed in this embodiment, so the calculation is relatively simple, and even the optimal solution can be obtained using analytical algorithms or enumeration methods. However, in actual software development, there may be dozens or even hundreds of software functions to be developed. If conventional analytical algorithms or enumeration methods are used for optimization, the computational complexity and workload will be greatly increased. The discrete particle swarm optimization algorithm used in this invention, through the search mechanism of swarm intelligence, can approach the global optimum in a relatively small number of iterations, avoiding the combinatorial explosion problem caused by enumerating all possible development sequences. Thus, it can still efficiently find the optimal development sequence even when there are a large number of software functions.
[0040] Furthermore, the method for obtaining the expected functional values of the first software function to the Nth software function respectively, and denoting them as the first expected functional value to the Nth expected functional value respectively, includes: The expected functional values of the first software function to the Nth software function are obtained by using the analytic hierarchy process, and are respectively denoted as the first expected functional value to the Nth expected functional value; the values of the first expected functional value to the Nth expected functional value are in the range of 0 to 1.
[0041] For example, the expected functional value is obtained using the Analytic Hierarchy Process (AHP). AHP is a decision analysis method that combines subjective judgment with quantitative calculation, suitable for multi-factor comprehensive evaluation scenarios. When obtaining the expected functional value of each software function, a hierarchical model is first constructed. The decision objective is set as the expected functional value, the criteria layer is set as the various factors influencing the functional value, including business value, user value, strategic value, and technological value, and the solution layer is set as the software functions to be decided. For each factor in the criteria layer, an evaluation team composed of product managers, developers, and business experts conducts pairwise comparisons to construct a judgment matrix and calculate the weight coefficients of each factor. For each factor, the performance of each software function on that factor is compared pairwise, constructing a judgment matrix and calculating the score of each software function under that factor. The weight coefficients of each factor and the scores of each software function under each factor are weighted and combined to obtain the expected functional value of each software function. In this embodiment, the weighting coefficients for business value, user value, strategic value, and technological value are 0.4, 0.3, 0.2, and 0.1, respectively. The scores for the user management function on each factor are 0.9, 0.8, 0.7, and 0.6, respectively, therefore its expected functional value is 0.8. Similarly, the expected functional values of other functions can be calculated. The expected functional values obtained using the analytic hierarchy process range from 0 to 1, facilitating comparison and weighting in subsequent optimization calculations.
[0042] Further, the method for calculating the overall overlap from the first set of sub-functional modules to the Nth set of sub-functional modules, denoted as the first overall overlap to the Nth overall overlap, includes: The first to Nth overall overlap degrees are calculated using the overall overlap degree formula; the overall overlap degree formula is as follows: ; in, Indicates the overall overlap of the i-th element; This represents the number of sub-functional modules in the i-th sub-functional module set obtained from statistics, where i represents an integer variable with values from 1 to N; Represents the i-th sub-functional module in the set of sub-functional modules. The number of times each sub-functional module appears in the set of sub-functional modules from the first sub-functional module set to the Nth sub-functional module set. Indicates a value from 1 to Integer variables.
[0043] For example, overall overlap reflects the degree of generality of the sub-functional modules contained in a software function within the entire function set. A higher overall overlap indicates that the function contains more general-purpose modules, and its sub-functional modules are more likely to be shared by other functions. The purpose of selecting the software function corresponding to the maximum overall overlap as the basic software function is to place this most general-purpose function at the beginning of the development sequence, enabling its frequently reused modules to be developed as early as possible. This provides reusable module resources for subsequent functions, improving overall development efficiency. It is worth noting that the expected functional value was not considered in determining the basic software function. This is because in software function development practice, the positioning of basic software functions is often to provide technical support for subsequent development, rather than pursuing early business value delivery.
[0044] Furthermore, the method for obtaining the optimal development order of the first software function to the Nth software function using the discrete particle swarm optimization algorithm, with the goal of maximizing the sum of the weighted sums of the expected functional value of each later-developed software function and its maximum overlap with all earlier-developed software functions, based on the first expected functional value to the Nth expected functional value, includes: The corresponding numbers for the basic software functions are denoted as follows: .
[0045] Construct an optimization objective function; the optimization objective function is expressed as: ; in, This represents the objective function to be optimized. To optimize variables; This indicates that, according to the development order, the first... The number corresponding to each software function being developed; Represents an integer variable that takes values from 2 to N; This represents the pre-set weighting coefficients. The value of is greater than 0 and less than 1; The value range is from 1 to N and is not equal to 1. Integer variables, The value is ; Indicates the first Expected functional value; The value is 1 to Integers between; Indicates the first Sub-functional module set and the first The degree of intersection and overlap of the sub-functional module sets; The calculation formula is: ; in, Indicates the first Sub-functional module set and the first The number of sub-functional modules in the intersection of the sets of sub-functional modules; This indicates the statistical result of the first... The number of sub-functional modules in the set of sub-functional modules.
[0046] Construct optimization constraints.
[0047] Using the aforementioned optimization constraints as constraints and maximizing the value of the objective function as the objective, the discrete particle swarm optimization algorithm is employed to calculate the result. to The optimal values are denoted as follows: to The optimal development order for the first to Nth software functions is determined to be: software function B, software function N ... Software functionality up to the first Software functionality.
[0048] For example, the number corresponding to the basic software function is denoted as Since the basic software function is log auditing, and the log auditing function corresponds to the fourth software function, therefore... Then, the objective function and constraints are constructed. The weighting coefficient in the objective function is set to 0.6, indicating that the expected functional value is given more weight in the optimization. The optimization variables are... , , . , , The value range is 1, 2, and 3. Finally, it is calculated using the discrete particle swarm optimization algorithm. , , Optimal value , , The numbers are 1, 2, and 3 respectively, so the final optimal development order is the fourth software function, the first software function, the second software function, and the third software function, namely, log auditing function, user management function, role management function, and permission management function. The discrete particle swarm optimization algorithm used in this invention is a swarm intelligent search algorithm suitable for discrete combinatorial optimization problems. The algorithm encodes each possible development order as a particle position, and through the flight of particles in the solution space and mutual learning, it gradually approaches the global optimal solution. During the iteration process, each particle updates its flight speed and position based on its own historical best position and the group's historical best position, and simultaneously evaluates the quality of its current position through the fitness function, i.e., the optimization objective function value. Compared with the enumeration method, the discrete particle swarm optimization algorithm can avoid the combinatorial explosion problem when the number of software functions is large. Even when the number of software functions is small, the discrete particle swarm optimization algorithm is faster than the traditional enumeration method. In this embodiment, the optimization variable is set as a discrete software function number, and optimization constraints ensure that the variable values are distinct and not equal to the basic software function number, enabling the algorithm to efficiently search for the optimal arrangement while satisfying the uniqueness of the development order.
[0049] Furthermore, the method for constructing optimization constraints includes: Construct optimization constraints, wherein the optimization constraints are: to They are not equal to each other, and none of them are equal to each other. .
[0050] Example 2: Based on the same inventive concept, such as Figure 2 As shown, this embodiment also provides a software function iteration priority decision system based on reinforcement learning, the system comprising: The data reading module is used to acquire a set of software functions to be decided; the set of software functions to be decided includes N software functions; the N software functions are numbered and denoted as the first software function to the Nth software function; the expected functional value of the first software function to the Nth software function is acquired and denoted as the first expected functional value to the Nth expected functional value.
[0051] The basic software function decision module, connected to the data reading module, is used to obtain the sets of sub-functional modules contained in the first software function to the Nth software function, denoted as the first sub-functional module set to the Nth sub-functional module set; to obtain the occurrence count of all sub-functional modules in the first sub-functional module set to the Nth sub-functional module set; to calculate the overall overlap of the first sub-functional module set to the Nth sub-functional module set, denoted as the first overall overlap to the Nth overall overlap; and to denote the software function corresponding to the maximum value among the first overall overlap to the Nth overall overlap as the basic software function.
[0052] The optimal development order decision module, connected to the basic software function decision module, is used to obtain the optimal development order of the first software function to the Nth software function by taking the basic software function as the starting point and based on the first expected functional value to the Nth expected functional value. The objective is to maximize the sum of the weighted sum of the expected functional value of each software function developed later in the development order and the maximum overlap between it and all software functions developed earlier. The optimal development order is obtained by using the discrete particle swarm optimization algorithm.
[0053] The software development module is connected to the optimal development order decision module and is used to develop software functions in the optimal development order from the first software function to the Nth software function.
[0054] Furthermore, the data reading module includes: The hierarchical analysis module is used to obtain the expected functional value of the first software function to the Nth software function using the hierarchical analysis method, which are respectively denoted as the first expected functional value to the Nth expected functional value; the value range of the first expected functional value to the Nth expected functional value is between 0 and 1.
[0055] Furthermore, the basic software function decision module includes: The overall overlap calculation module is used to calculate the first to Nth overall overlap degrees using the overall overlap degree formula; the overall overlap degree formula is: ; in, Indicates the overall overlap of the i-th element; This represents the number of sub-functional modules in the i-th sub-functional module set obtained from statistics, where i represents an integer variable with values from 1 to N; Represents the i-th sub-functional module in the set of sub-functional modules. The number of times each sub-functional module appears in the set of sub-functional modules from the first sub-functional module set to the Nth sub-functional module set. Indicates a value from 1 to Integer variables.
[0056] Furthermore, the optimal development sequence decision module includes: The tagging module is used to record the numbers corresponding to the basic software functions as follows: .
[0057] An optimization objective function construction module, connected to the tagging module, is used to construct the optimization objective function; the optimization objective function is expressed as: ; in, This represents the objective function to be optimized. To optimize variables; This indicates that, according to the development order, the first... The number corresponding to each software function being developed; Represents an integer variable that takes values from 2 to N; This represents the pre-set weighting coefficients. The value of is greater than 0 and less than 1; The value range is from 1 to N and is not equal to 1. Integer variables, The value is ; Indicates the first Expected functional value; The value is 1 to Integers between; Indicates the first Sub-functional module set and the first The degree of intersection and overlap of the sub-functional module sets; The calculation formula is: ; in, Indicates the first Sub-functional module set and the first The number of sub-functional modules in the intersection of the sets of sub-functional modules; This indicates the statistical result of the first... The number of sub-functional modules in the set of sub-functional modules.
[0058] The optimization constraint construction module is connected to the optimization objective function construction module and is used to construct optimization constraints.
[0059] The optimization solution module, connected to the optimization constraint construction module, is used to calculate the solution using the discrete particle swarm optimization algorithm, with the optimization constraints as the constraints and the objective function as the maximization target. to The optimal values are denoted as follows: to The optimal development order for the first to Nth software functions is determined to be: software function B, software function N ... Software functionality up to the first Software functionality.
[0060] Furthermore, the optimization constraint construction module includes: The distinct constraint module is used to construct optimization constraints, which are: to They are not equal to each other, and none of them are equal to each other. .
[0061] It should be noted that the specific methods by which each module performs operations in the system described in the above embodiments have been described in detail in the embodiments related to the method, and will not be elaborated here.
[0062] Finally, it should be noted that although the present invention has been described in detail with reference to the foregoing embodiments, those skilled in the art can still modify the technical solutions described in the foregoing embodiments or make equivalent substitutions for some of the technical features. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the present invention should be included within the protection scope of the present invention.
Claims
1. A software function iteration priority decision method based on reinforcement learning, characterized in that, The method includes the following steps: S1, obtain the set of software functions to be decided; the set of software functions to be decided includes N software functions; number the N software functions and record them as the first software function to the Nth software function; obtain the expected functional value of the first software function to the Nth software function and record them as the first expected functional value to the Nth expected functional value. S2, obtain the sets of sub-functional modules contained in the first software function to the Nth software function, respectively denoted as the first sub-functional module set to the Nth sub-functional module set; obtain the occurrence count of all sub-functional modules in the first sub-functional module set to the Nth sub-functional module set; calculate the overall overlap of the first sub-functional module set to the Nth sub-functional module set, respectively denoted as the first overall overlap to the Nth overall overlap; denote the software function corresponding to the maximum value among the first overall overlap to the Nth overall overlap as the basic software function; S3, taking the basic software function as the starting point, based on the first expected functional value to the Nth expected functional value, with the goal of maximizing the sum of the weighted sum of the expected functional value of each software function developed later in the development sequence and the maximum overlap between it and all software functions developed earlier, the discrete particle swarm optimization algorithm is used to obtain the optimal development sequence of the first software function to the Nth software function. S4. Develop software functions according to the optimal development order from the first software function to the Nth software function.
2. The software function iteration priority decision method based on reinforcement learning as described in claim 1, characterized in that, The method of obtaining the expected functional values of the first software function to the Nth software function respectively, and denoting them as the first expected functional value to the Nth expected functional value respectively, includes: The expected functional values of the first software function to the Nth software function are obtained by using the analytic hierarchy process, and are respectively denoted as the first expected functional value to the Nth expected functional value; the values of the first expected functional value to the Nth expected functional value are in the range of 0 to 1.
3. The software function iteration priority decision method based on reinforcement learning as described in claim 2, characterized in that, The method for calculating the overall overlap from the first set of sub-functional modules to the Nth set of sub-functional modules, and denoted as the first overall overlap to the Nth overall overlap, includes: The first to Nth overall overlap degrees are calculated using the overall overlap degree formula; the overall overlap degree formula is as follows: ; in, Indicates the overall overlap of the i-th element; This represents the number of sub-functional modules in the i-th sub-functional module set obtained from statistics, where i represents an integer variable with values from 1 to N; Represents the i-th sub-functional module in the set of sub-functional modules. The number of times each sub-functional module appears in the set of sub-functional modules from the first sub-functional module set to the Nth sub-functional module set. Indicates a value from 1 to Integer variables.
4. The software function iteration priority decision method based on reinforcement learning as described in claim 3, characterized in that, The method for obtaining the optimal development order of the first to Nth software functions using a discrete particle swarm optimization algorithm, with the goal of maximizing the sum of the weighted sums of the expected functional values of each later-developed software function and the maximum overlap between each function and all earlier-developed software functions, based on the first to Nth expected functional values, includes: The corresponding numbers for the basic software functions are denoted as follows: ; Construct an optimization objective function; the optimization objective function is expressed as: ; in, This represents the objective function to be optimized. To optimize variables; This indicates that, according to the development order, the first... The number corresponding to each software function being developed; Represents an integer variable that takes values from 2 to N; This represents the pre-set weighting coefficients. The value of is greater than 0 and less than 1; The value range is from 1 to N and is not equal to 1. Integer variables, The value is ; Indicates the first Expected functional value; The value is 1 to Integers between; Indicates the first Sub-functional module set and the first The degree of intersection and overlap of the sub-functional module sets; The calculation formula is: ; in, Indicates the first Sub-functional module set and the first The number of sub-functional modules in the intersection of the sets of sub-functional modules; This indicates the statistical result of the first... The number of sub-functional modules in the set of sub-functional modules; Construct optimization constraints; Using the aforementioned optimization constraints as constraints and maximizing the value of the objective function as the objective, the discrete particle swarm optimization algorithm is employed to calculate the result. to The optimal values are denoted as follows: to The optimal development order for the first to Nth software functions is determined to be: software function B, software function N ... Software functionality up to the first Software functionality.
5. The software function iteration priority decision method based on reinforcement learning as described in claim 4, characterized in that, The method for constructing optimization constraints includes: Construct optimization constraints, wherein the optimization constraints are: to They are not equal to each other, and none of them are equal to each other. .
6. A software function iteration priority decision-making system based on reinforcement learning, characterized in that, The system includes: A data reading module is used to acquire a set of software functions to be decided; the set of software functions to be decided includes N software functions; the N software functions are numbered and denoted as the first software function to the Nth software function; the expected functional value of the first software function to the Nth software function is acquired and denoted as the first expected functional value to the Nth expected functional value. The basic software function decision module, connected to the data reading module, is used to obtain the sets of sub-functional modules contained in the first software function to the Nth software function, denoted as the first sub-functional module set to the Nth sub-functional module set; to obtain the occurrence count of all sub-functional modules in the first sub-functional module set to the Nth sub-functional module set; to calculate the overall overlap of the first sub-functional module set to the Nth sub-functional module set, denoted as the first overall overlap to the Nth overall overlap; and to denote the software function corresponding to the maximum value among the first overall overlap to the Nth overall overlap as the basic software function. The optimal development order decision module is connected to the basic software function decision module. It is used to obtain the optimal development order of the first software function to the Nth software function by taking the basic software function as the starting point and according to the first expected functional value to the Nth expected functional value. The objective is to maximize the sum of the weighted sum of the expected functional value of each software function developed later in the development order and the maximum overlap between it and all the software functions developed earlier. The optimal development order is obtained by using the discrete particle swarm optimization algorithm. The software development module is connected to the optimal development order decision module and is used to develop software functions in the optimal development order from the first software function to the Nth software function.
7. The software function iteration priority decision system based on reinforcement learning as described in claim 6, characterized in that, The data reading module includes: The hierarchical analysis module is used to obtain the expected functional value of the first software function to the Nth software function using the hierarchical analysis method, which are respectively denoted as the first expected functional value to the Nth expected functional value; the value range of the first expected functional value to the Nth expected functional value is between 0 and 1.
8. The software function iteration priority decision system based on reinforcement learning as described in claim 7, characterized in that, The basic software function decision module includes: The overall overlap calculation module is used to calculate the first to Nth overall overlap degrees using the overall overlap degree formula; the overall overlap degree formula is: ; in, Indicates the overall overlap of the i-th element; This represents the number of sub-functional modules in the i-th sub-functional module set obtained from statistics, where i represents an integer variable with values from 1 to N; Represents the i-th sub-functional module in the set of sub-functional modules. The number of times each sub-functional module appears in the set of sub-functional modules from the first sub-functional module set to the Nth sub-functional module set. Indicates a value from 1 to Integer variables.
9. The software function iteration priority decision system based on reinforcement learning as described in claim 8, characterized in that, The optimal development sequence decision module includes: The tagging module is used to record the numbers corresponding to the basic software functions as follows: ; An optimization objective function construction module, connected to the tagging module, is used to construct the optimization objective function; the optimization objective function is expressed as: ; in, This represents the objective function to be optimized. To optimize variables; This indicates that, according to the development order, the first... The number corresponding to each software function being developed; Represents an integer variable that takes values from 2 to N; This represents the pre-set weighting coefficients. The value of is greater than 0 and less than 1; The value range is from 1 to N and is not equal to 1. Integer variables, The value is ; Indicates the first Expected functional value; The value is 1 to Integers between; Indicates the first Sub-functional module set and the first The degree of intersection and overlap of the sub-functional module sets; The calculation formula is: ; in, Indicates the first Sub-functional module set and the first The number of sub-functional modules in the intersection of the sets of sub-functional modules; This indicates the statistical result of the first... The number of sub-functional modules in the set of sub-functional modules; The optimization constraint construction module, connected to the optimization objective function construction module, is used to construct optimization constraints. The optimization solution module, connected to the optimization constraint construction module, is used to calculate the solution using the discrete particle swarm optimization algorithm, with the optimization constraints as the constraints and the objective function as the maximization target. to The optimal values are denoted as follows: to The optimal development order for the first to Nth software functions is determined to be: software function B, software function N ... Software functionality up to the first Software functionality.
10. The software function iteration priority decision system based on reinforcement learning as described in claim 9, characterized in that, The optimization constraint construction module includes: The distinct constraint module is used to construct optimization constraints, which are: to They are not equal to each other, and none of them are equal to each other. .