Open source project development prediction method and device based on developer collaboration network

By building a developer collaboration network model and analyzing developer collaboration relationships in open source projects, the problem of uncertainty in the development of open source projects is solved, and more accurate development trend prediction and visualization are achieved.

CN115934165BActive Publication Date: 2025-08-08NAT UNIV OF DEFENSE TECH
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202211666845.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-12-23
Publication Date
2025-08-08
Estimated Expiration
2042-12-23

AI Technical Summary

Technical Problem

The existing technology is difficult to fully consider the complex internal structure and developer collaboration of open source projects, resulting in uncertainty in the development quality of open source projects and difficulty in predicting development trends.

Method used

Build an undirected and authorized network model based on the developer collaboration network, and predict the development trend of open source projects by analyzing the evolutionary indicators and node connection rules of the developer collaboration network.

Benefits of technology

It improves the rationality and accuracy of the development forecast of open source projects, can visualize and quantify the development process of open source projects, and reduces the risk of project decline.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115934165B_ABST
    Figure CN115934165B_ABST
Patent Text Reader

Abstract

The present application relates to a method and device for predicting the development of open source projects based on a developer collaboration network in the field of software design technology. The method makes full use of the historical data content provided by the open source community, combines it with a complex network system, and constructs an undirected and authorized developer collaboration network based on the developer's participation, contribution, and collaboration relationship. The method uses the evolution indicators of the developer collaboration network to characterize the changes in the evolution of the open source project, thereby achieving the purpose of visualizing and quantifying the development of the open source project; analyzes the developer contribution behavior according to the developer contribution cycle, sets node connection rules, and considers the evolution of the collaboration network from three dimensions: new developer participation and contribution, new cooperative contributions between existing developers, and developer loss, thereby improving the rationality and accuracy of predicting the development of open source projects.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of software development technology, and in particular to a method and device for predicting the development of open source projects based on a developer collaboration network. Background Art

[0002] In recent years, complex network theory has been widely applied in fields such as sociology, biology, transportation, and computer science. In software engineering, with the booming open source movement, open source has gradually entered the public eye, with a large number of open source projects continuously being incorporated into open source communities such as GitHub, GitLink, and OSchina. Although open source projects provide a wealth of freely available resources, the development of most open source projects is uncontrollable. This is especially true for large open source projects, which, due to their large scale, complex internal structures, and the high degree of initiative and freedom among participants, have irregular development cycles and considerable uncertainty in their quality. Some open source communities provide overviews of recent changes in open source projects (for example, GitHub offers an Insights section within open source projects) to characterize the current development status of open source projects, which to some extent reflects the quality of the projects. However, this approach only summarizes existing indicators of open source projects and cannot predict their development trends. Establishing an evolutionary model of open source project development using indicators that reflect the development status of open source projects would be beneficial for predicting the development of development projects and preventing them from declining or even being abandoned.

[0003] Currently, most methods for predicting the development of open source projects fall into two main categories: one is based on time series analysis models. Applied in the context of open source, these methods derive scores for evaluating the quality of open source projects based on metrics available within the open source community. These historical scores are then used to predict future project quality development. The other method analyzes fine-grained events within open source projects, breaking down the development of open source projects into even finer-grained events. Through comprehensive analysis of these fine-grained events, the method aims to improve the future development of open source projects. Prediction methods based on time series models rely on historical data and the changing cycles of the final evaluation metrics, often overlooking the interconnectedness within the complex internal structures of open source projects. Furthermore, analyzing fine-grained events often yields "local optimal" results within open source projects, effectively analyzing the impact of changes in fine-grained events on open source projects and failing to fully represent the quality of open source project development.

[0004] Therefore, how to reasonably evaluate the development quality of open source projects, comprehensively consider the internal factors that affect the development of open source projects, and more accurately predict the development trends of open source projects are important issues that researchers in this field are extremely concerned about. Summary of the Invention

[0005] Based on this, it is necessary to provide an open source project development prediction method and device based on a developer collaboration network to address the problems of difficulty in evolving and predicting the development process of open source projects due to the large number of developers, low threshold for participation and contribution, and high degree of freedom in open source projects.

[0006] A method for predicting the development of open source projects based on a developer collaboration network, the method comprising:

[0007] All event set data of the open source project to be predicted are stored in a local database in Json format; the event set data includes: a number of events, each event includes at least: the initiator, the event type and the event creation time.

[0008] An undirected data pair representing a collaborative relationship between developers in each data set is determined according to the event set data in the local database.

[0009] An undirected and weighted developer collaboration network is constructed based on the undirected data pairs. The nodes of the developer collaboration network are developers, the edges of the developer collaboration network are the edges connecting the undirected data pairs, and the weights of the edges of the developer collaboration network are the number of times the corresponding undirected data pairs appear in different event sets.

[0010] According to the developer collaboration network and event creation time, the evolution index of the developer collaboration network in different time slices is calculated.

[0011] According to the evolution indicators, the evolution law of the developer collaboration network is determined.

[0012] According to the evolution law, node connection rules are set; the node connection rules include preference connection rules for new access nodes, connection change rules for existing nodes, and rules for deleting existing nodes.

[0013] The developer collaboration network is evolved according to the node connection rules to obtain a development prediction result of the open source project to be predicted.

[0014] In one embodiment, determining, based on the event set data in the local database, an undirected data pair representing a collaborative relationship between developers in each data set includes:

[0015] The event set data in the local database is divided into different time slices, and the data in the same time slice is grouped.

[0016] The obtained different time slice groups are grouped according to the event set, and the events under the same event set are grouped together.

[0017] The initiators of the events in the obtained event set group are matched pairwise to form undirected data pairs.

[0018] In one embodiment, setting node connection rules according to the evolution law includes:

[0019] According to the evolution law, preference connection rules for new access nodes, connection change rules for existing nodes, and rules for deleting existing nodes are set.

[0020] The preferred connection rule of the new access node is used to indicate that when a new developer joins an open source project, the new developer establishes a collaborative relationship with the selected original developer.

[0021] The connection change rules between the original nodes include no connection to a connection, a connection to no connection and a change in connection weight; no connection to a connection indicates that the two original developers have established a new collaborative relationship and have made the same contribution work; a connection to no connection indicates that the two original developers have terminated the collaborative relationship due to certain factors and stopped the same contribution work; a change in connection weight indicates that the two original developers have generated new identical contribution work or stopped part of the same contribution work.

[0022] The rule of deleting the original node is used to indicate that the original developer of the open source project has withdrawn from contributing to the open source project.

[0023] In one embodiment, the step of calculating the evolution index of the developer collaboration network in different time slices based on the developer collaboration network and the event creation time further includes:

[0024] According to the developer collaboration network, a degree distribution of the developer collaboration network is obtained.

[0025] The degree distribution of the developer collaboration network is fitted on a double logarithmic coordinate axis, and the degree index is obtained based on the slope of the degree distribution.

[0026] A characteristic of the developer collaboration network is obtained according to the degree distribution, the degree index, and the topological structure of the developer collaboration network.

[0027] An evolution indicator for measuring the evolution of the developer collaboration network is determined according to the characteristics of the developer collaboration network.

[0028] In one embodiment, the evolution indicators include: the number of nodes, the number of edges, the edge weight, the average degree, the shortest path and the clustering coefficient of the developer collaboration network.

[0029] The number of nodes and the number of edges are used to directly reflect the scale of the developer collaboration network.

[0030] The edge weight is used to represent the developer's contribution level.

[0031] The average degree is used to represent the direct connection between a node and other nodes in the developer collaboration network, and in open source projects, it represents the collaboration between developers.

[0032] The minimum path and the clustering coefficient are used to measure the information dissemination capability of nodes in the developer collaboration network. In open source projects, they represent the information sharing capability among developers and the clustered cooperative relationship between developers and their collaborators.

[0033] In one embodiment, the developer collaboration network is evolved according to the node connection rule to obtain a development prediction result of the open source project to be predicted, and the following steps are further included:

[0034] Based on the development prediction results and the historical data of the open source project to be predicted, the relative error of the prediction is determined; and the node connection rules are adjusted according to the relative error of the prediction until the prediction error meets the preset conditions, thereby obtaining the open source project development prediction model.

[0035] A device for predicting the development of open source projects based on a developer collaboration network, comprising:

[0036] The data acquisition and storage module is used to store all the event set data of the open source project to be predicted in the local database in Json format; the event set data includes: a number of events, each event includes at least: the initiator, event type and event creation time.

[0037] The data processing module is used to determine, based on the event set data in the local database, an undirected data pair representing a collaborative relationship between developers in each data set.

[0038] A collaborative network construction module is used to construct an undirected and authorized developer collaborative network based on the undirected data pairs. The nodes of the developer collaborative network are developers, the edges of the developer collaborative network are the edges connecting the undirected data pairs, and the weights of the edges of the developer collaborative network are the number of times the corresponding undirected data pairs appear in different event sets.

[0039] The evolution law determination module is used to calculate the evolution index of the developer collaboration network in different time slices according to the developer collaboration network and event creation time; and determine the evolution law of the developer collaboration network according to the evolution index.

[0040] The module for setting node connection rules that change over time is used to set node connection rules according to the evolution law; the node connection rules include preferred connection rules for new access nodes, connection change rules for existing nodes, and rules for deleting existing nodes.

[0041] The evolution prediction module is used to evolve the developer collaboration network according to the node connection rules to obtain the development prediction results of the open source project to be predicted.

[0042] In one embodiment, the data processing module is further used to divide the event set data in the local database according to different time slices, and group the data in the same time slice; group the data according to the event set within the obtained different time slice groups, and group the events under the same event set; match the initiators of the events in the obtained event set groups in pairs to form undirected data pairs.

[0043] The above-mentioned open source project development prediction method and device based on the developer collaboration network fully utilizes the historical data content provided by the open source community, combines it with the complex network system, and constructs an undirected and authorized developer collaboration network based on the developer participation, contribution and collaboration relationship. The evolution indicators of the developer collaboration network are used to characterize the changes generated during the evolution of the open source project, thereby achieving the purpose of visualizing and quantifying the development of the open source project; according to the developer contribution cycle, the developer contribution behavior pattern is analyzed, the node connection rules are set, and the evolution process of the developer collaboration network is considered from three dimensions: new developer participation and contribution, new cooperative contributions between existing developers, and developer loss, so as to improve the rationality and accuracy of predicting the development of open source projects. BRIEF DESCRIPTION OF THE DRAWINGS

[0044] Figure 1 1 is a flow chart of an open source project development prediction method based on a developer collaboration network in one embodiment;

[0045] Figure 2 A data processing flow chart in one embodiment;

[0046] Figure 3 A flowchart of open source project development prediction based on the evolution of a developer collaboration network in one embodiment;

[0047] Figure 4 This is a structural block diagram of an open source project development prediction device based on a developer collaboration network in another embodiment. DETAILED DESCRIPTION

[0048] In order to make the purpose, technical solutions and advantages of this application more clear, the following further describes this application in detail with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain this application and are not intended to limit this application.

[0049] In one embodiment, Figure 1 As shown, a method for predicting the development of open source projects based on a developer collaboration network is provided, which includes the following steps:

[0050] Step 100: All event set data of the open source project to be predicted are stored in a local database in Json format; the event set data includes: a number of events, each event includes at least: an initiator, an event type, and an event creation time.

[0051] Specifically, a crawler program is used to crawl a set of events from a specified API interface in an open source community. For example, using the V3 REST API provided by GitHub, the crawler program is configured with the required information, including a personal access token, response header, and crawling URL.

[0052] The event set obtained by the API interface provided by GitHub is in JSON format.

[0053] Step 102: Determine, based on the event set data in the local database, an undirected data pair representing the developer collaboration relationship in each data set.

[0054] Specifically, the following operations are performed on the event set data stored in the local database: data within the same time slice is divided into groups according to different time slices; events within each group are grouped according to event sets, and events within the same event set are grouped together; and the initiators of events within each group are matched pairwise to form undirected data pairs. GitHub event sets are divided into different event types (recorded in the JSON format using the event field), and each event type has a corresponding creation time (recorded in fields such as created_time) and initiator (recorded in fields such as user login).

[0055] In data grouping, a time slice refers to a period of time. For example, the time when data is generated is determined to the second (moment), but in the experiment we grouped the data by month, and the data for each month was divided into one group.

[0056] Step 104: Construct an undirected weighted developer collaboration network based on the undirected data pairs. The nodes of the developer collaboration network are developers, the edges of the developer collaboration network are the edges connecting the undirected data pairs, and the weights of the edges of the developer collaboration network are the number of times the corresponding undirected data pairs appear in different event sets.

[0057] Specifically, data is grouped by time slices, and each set of data is from a different month. However, the constructed developer collaboration network needs to accumulate the data of the current month with the data of the previous month, because only in this way can the evolution of the project be reflected.

[0058] We use processed undirected data pairs to construct a developer collaboration network at different times. Developers are nodes in the network, and the developer collaboration relationships corresponding to the undirected data are edges. Edges represent the number of times developers have the same contribution (the same event set) during that time slice. Because there are multiple identical contributions, two developers may appear in different event sets. We traverse all event sets and record the number of times two developers appear at the same time. This number serves as the weight for the corresponding edge, ultimately forming an undirected, weighted developer collaboration network.

[0059] For example, in a GitHub open source project, developers A and B jointly participated in the committed and commented events in the same event set 10. In this case, the edge weight between nodes A and B in the developer collaboration network is 2. Of course, developers A and B may also have other similar contributions in this event set or in other event sets, in which case the corresponding edge weights are accumulated.

[0060] Step 106: Calculate the evolution index of the developer collaboration network in different time slices based on the developer collaboration network and event creation time.

[0061] Step 108: Determine the evolution law of the developer collaboration network based on the evolution indicator.

[0062] Specifically, according to the divided time slices, the evolution indicators in different time slices are calculated, the evolution process of the developer collaboration network is given, the indicator changes and evolution characteristics during the evolution process of the developer collaboration network are analyzed, and the evolution laws in the developer collaboration network are summarized.

[0063] Step 110: According to the evolution law, node connection rules are set; the node connection rules include preference connection rules for new access nodes, connection change rules for existing nodes, and rules for deleting existing nodes.

[0064] Specifically, we analyze the patterns of developer contribution behavior based on the developer contribution cycle, consider the evolution of the developer collaboration network from three dimensions: new developers participating in contributions, new cooperative contributions between existing developers, and developer loss, and set node connection rules that change over time.

[0065] Step 112: Evolving the developer collaboration network according to the node connection rules to obtain a development prediction result of the open source project to be predicted.

[0066] Specifically, the developer collaboration network is evolved according to the set node connection rules, the evolution indicators of the developer collaboration network are analyzed during the evolution process, and the characteristics and results of the open source project development are obtained.

[0067] In the above-mentioned open source project development prediction method based on the developer collaboration network, this method makes full use of the historical data content provided by the open source community, combines with the complex network system, and constructs an undirected and authorized developer collaboration network based on the developer participation, contribution and collaboration relationship. The evolution indicators of the developer collaboration network are used to characterize the changes generated in the evolution process of the open source project, thereby achieving the purpose of visualizing and quantifying the development of the open source project; according to the developer contribution cycle, the developer contribution behavior pattern is analyzed, and the node connection rules are set. The evolution process of the developer collaboration network is considered from three dimensions: new developer participation and contribution, new cooperative contributions between existing developers, and developer loss, so as to improve the rationality and accuracy of predicting the development of open source projects.

[0068] In one embodiment, step 102 includes: dividing the event set data in the local database according to different time slices, and grouping the data in the same time slice; grouping according to the event set within the obtained different time slice groups, and grouping the events under the same event set; matching the initiators of the events in the obtained event set groups in pairs to form undirected data pairs.

[0069] Specifically, the event set data in the local database is grouped according to time slices. The native data obtained by the crawler is called event set data. The event set data contains many events, and the events include attributes such as the initiator and time. After the event set is split, the event set serial number attribute is attached to the event in order to know which event set the event belongs to. The event is grouped according to the event and event set serial number. The name of the event initiator (developer) is recorded in the group, and then the two are paired to construct the data of the network.

[0070] The groups under the same time slice only contain events under that time slice, but these events do not necessarily belong to the same event set. They need to be grouped according to the attributes of the event set. Only when two events belong to the same event set can the initiators (developers) of the two events be considered to have a collaborative relationship. If they do not belong to the same event set and physically do not do the same thing, they cannot be considered to have a collaborative relationship.

[0071] The data format we crawled through the official API provided by GitHub is as follows: {[d,e,t],[d,e,t],.....}. The outermost {} represents an event set with a corresponding number. There are many events [] under the event set. The event contains the attributes of developer d, event type e, and time t. We want to group developer d into tuples, and the grouping basis is the event set number and time.

[0072] In one embodiment, in step 110: the preference connection rule of the newly accessed node is used to indicate that when a new developer joins the open source project, the new developer establishes a collaborative relationship with the selected original developer; the connection change rules between the original nodes include no connection to a connection, a connection to no connection, and a change in connection weight; no connection to a connection indicates that the two original developers have established a new collaborative relationship and have made the same contribution work; a connection to no connection indicates that the two original developers have terminated the collaborative relationship due to certain factors and stopped the same contribution work; a change in connection weight indicates that the two original developers have made new identical contribution work or stopped part of the identical contribution work; the rule for deleting the original node is used to indicate that the original developer of the open source project has withdrawn from contributing to the open source project.

[0073] In one embodiment, before step 106, the following steps are further included: obtaining the degree distribution of the developer collaboration network based on the developer collaboration network; fitting the degree distribution of the developer collaboration network under a double logarithmic coordinate axis, and obtaining the degree index based on the slope of the degree distribution; obtaining the characteristics of the developer collaboration network based on the degree distribution, the degree index and the topological structure of the developer collaboration network; and determining an evolutionary indicator for measuring the evolution of the developer collaboration network based on the characteristics of the developer collaboration network.

[0074] In one embodiment, the evolution indicators include: the number of nodes, the number of edges, the edge weight, the average degree, the shortest path and the clustering coefficient of the developer collaboration network; the number of nodes and the number of edges are used to directly reflect the scale of the developer collaboration network; the edge weight is used to indicate the degree of contribution of the developer; the average degree is used to indicate the direct connection between a node and other nodes in the developer collaboration network, and in open source projects, it indicates the collaboration between developers. The larger the average degree, the more convenient and frequent the collaboration between developers; the shortest path and the clustering coefficient are used to measure the information dissemination ability of nodes in the developer collaboration network, and in open source projects, it indicates the information sharing ability between developers, as well as the clustered cooperative relationship between developers and their collaborators.

[0075] The degree of a node is the number of neighboring nodes connected to the node, and the average degree is the sum of the degrees of all nodes in the entire network divided by the number of nodes.

[0076] In one embodiment, step 112 further includes: determining the relative error of the prediction based on the development prediction results and the historical data of the open source project to be predicted; and adjusting the node connection rules according to the relative error of the prediction until the prediction error meets the preset conditions, thereby obtaining the open source project development prediction model.

[0077] In one embodiment, a method for predicting the development of open source projects based on a developer collaboration network is provided. The method includes a data processing process and an open source project development prediction process based on the evolution of a developer collaboration network. Figure 2 The data processing flowchart shown takes the GitHub open source community as an example and specifically performs the following steps:

[0078] Step 201: Data Acquisition. Use a crawler program to obtain the issue set of the open source project. Taking the V3 version of the REST API provided by GitHub as an example, set the required information such as the personal access token, response header information, and crawling URL in the crawler program.

[0079] Step 202: Data storage. The acquired data is stored in the database in JSON format. The event set acquired by the API interface provided by GitHub is in JSON format.

[0080] Step 203: Data Processing. The event set is divided into different time slices, and the data within the same time slice is grouped. Within each group, the events within the same event set are grouped together. The initiators of the events within the group are matched pairwise to form undirected data pairs. The GitHub event set is divided into different event types (recorded in the JSON format using the event field). Each event type has a corresponding creation time (recorded in fields such as created_time) and initiator (recorded in fields such as userlogin).

[0081] Step 204: Construct an undirected and unweighted network. A developer collaboration network is constructed based on time slices, with developers as nodes and the developer collaboration relationships corresponding to the data as edges.

[0082] Step 205: Network Weighting. Based on the undirected, unweighted network, weights are added to the edges corresponding to developers who have made multiple identical contributions. For example, in a GitHub open source project, developers A and B jointly participated in the two events "committed" and "commented" in the same event set 101. In this case, the edge weight between nodes A and B in the collaboration network is 2. Of course, developers A and B may also have other identical contributions in this event set or in other event sets. In this case, the corresponding edge weights are accumulated.

[0083] Step 206: The open source project data processing flow ends.

[0084] This data processing method takes the open source community GitHub as an example, constructs a developer collaboration network based on the time, type and collaborative relationship of developers' participation in open source projects, fully considers the degree of individual contribution of developers to the project and the weight of the collaborative relationship, and depicts the development status of open source projects from a "human" perspective.

[0085] The open source project development prediction process based on the evolution of developer collaboration network is as follows: Figure 3 As shown in Figure 1, the open source project development prediction process based on the evolution of the developer collaboration network specifically performs the following steps:

[0086] Step 301: Draw the degree distribution of the developer collaboration network and analyze the difference between the node with the largest degree and the node with the smallest degree.

[0087] Step 302: Measure the degree index of the developer collaboration network. Fit the degree distribution of the collaboration network on a double logarithmic coordinate axis, and obtain the degree index based on the slope of the degree distribution.

[0088] Step 303: Analyze the properties of the developer collaboration network. Based on the degree distribution, degree index, and topology of the developer collaboration network, and by analogy with known real networks, analyze the properties of the developer collaboration network (scaling properties, small-world properties, etc.).

[0089] Step 304: Determine the developer collaboration network evolution indicators. Based on the characteristics of the developer collaboration network, determine the indicators for measuring the evolution of the developer collaboration network, which mainly include the number of nodes, number of edges, edge weights, average degree, shortest path, and clustering coefficient (clustering coefficient) of the developer collaboration network.

[0090] Step 305: Characterize the evolution of the developer collaboration network. Calculate the evolution indicators for each time slice, present the evolution of the developer collaboration network, analyze the indicator changes and evolution characteristics during the evolution of the developer collaboration network, and summarize the evolutionary patterns of the developer collaboration network.

[0091] Step 306: Set node connection rules. Based on the evolutionary characteristics and patterns of the developer collaboration network, set the connection rules between nodes in the developer collaboration network over time. This mainly includes setting the preferred connection rules for newly added nodes, the connection change rules between existing nodes, and the rules for deleting existing nodes.

[0092] Step 307: Evolution prediction of the developer collaboration network: The developer collaboration network is made to evolve according to the set node connection rules, and the evolution indicators of the developer collaboration network are analyzed during its evolution.

[0093] Step 308: Model Verification. Use existing historical data from the open source project to conduct local model verification experiments to verify the accuracy of the model's predictions (a relative error of less than 5% is considered good, and less than 10% is considered acceptable). Based on the verification results, adjust the node connection rules to reduce the prediction error (less than 5%).

[0094] Step 309: The prediction process ends.

[0095] It should be understood that although Figure 1-Figure 3 The steps in the flowchart are shown in sequence as indicated by the arrows, but these steps are not necessarily executed in the order indicated by the arrows. Unless otherwise specified in this document, there is no strict order restriction for the execution of these steps, and these steps can be executed in other orders. In addition, Figure 1-Figure 3 At least part of the steps may include multiple sub-steps or multiple stages. These sub-steps or stages are not necessarily executed at the same time, but can be executed at different times. The execution order of these sub-steps or stages is not necessarily sequential, but can be executed in turn or alternately with other steps or at least part of the sub-steps or stages of other steps.

[0096] In one embodiment, Figure 4 As shown, a device for predicting the development of open source projects based on a developer collaboration network is provided, comprising: a data acquisition and storage module, a data processing module, a collaboration network construction module, an evolution law determination module, a time-varying node connection rule setting module, and an evolution prediction module, wherein:

[0097] The data acquisition and storage module is used to store all event set data of the open source projects to be predicted in the local database in Json format; the event set data includes: several events, each event includes at least: the initiator, event type and event creation time.

[0098] The data processing module is used to determine the undirected data pairs representing the collaborative relationship between developers in each data set based on the event set data in the local database.

[0099] A collaborative network construction module is used to construct an undirected and authorized developer collaborative network based on the undirected data pairs. The nodes of the developer collaborative network are developers, the edges of the developer collaborative network are the edges connecting the undirected data pairs, and the weights of the edges of the developer collaborative network are the number of times the corresponding undirected data pairs appear in different event sets.

[0100] The evolution law determination module is used to calculate the evolution indicators of the developer collaboration network in different time slices based on the developer collaboration network and event creation time; and determine the evolution law of the developer collaboration network based on the evolution indicators.

[0101] The module for setting node connection rules that change over time is used to set node connection rules according to the evolution law; the node connection rules include the preferred connection rules for newly connected nodes, the connection change rules for existing nodes, and the rules for deleting existing nodes.

[0102] The evolution prediction module is used to evolve the developer collaboration network according to the node connection rules to obtain the development prediction results of the open source project to be predicted.

[0103] In one embodiment, the data processing module is further used to divide the event set data in the local database according to different time slices, and group the data in the same time slice; group the data according to the event set within the obtained different time slice groups, and group the events under the same event set; match the initiators of the events in the obtained event set groups in pairs to form undirected data pairs.

[0104] In one embodiment, in the module for setting node connection rules that change over time: the preference connection rule for the newly accessed node is used to indicate that when a new developer joins the open source project, the new developer establishes a collaborative relationship with the selected original developer; the connection change rules between the original nodes include no connection to a connection, a connection to no connection, and a change in connection weight; no connection to a connection indicates that the two original developers have established a new collaborative relationship and have made the same contribution work; a connection to no connection indicates that the two original developers have terminated the collaborative relationship due to certain factors and stopped the same contribution work; a change in connection weight indicates that the two original developers have made new identical contribution work or stopped part of the same contribution work; the rule for deleting the original node is used to indicate that the original developer of the open source project has withdrawn from contributing to the open source project.

[0105] In one embodiment, the evolution law determination module also includes an evolution index determination module before the developer collaboration network, which is used to obtain the degree distribution of the developer collaboration network based on the developer collaboration network; fit the degree distribution of the developer collaboration network under a double logarithmic coordinate axis, and obtain the degree index based on the slope of the degree distribution; obtain the characteristics of the developer collaboration network based on the degree distribution, the degree index and the topological structure of the developer collaboration network; and determine the evolution index for measuring the evolution of the developer collaboration network based on the characteristics of the developer collaboration network.

[0106] In one embodiment, the evolution indicators in the evolution indicator determination module include: the number of nodes, the number of edges, the edge weight, the average degree, the shortest path and the clustering coefficient of the developer collaboration network; the number of nodes and the number of edges are used to directly reflect the scale of the developer collaboration network; the edge weight is used to indicate the degree of contribution of the developer; the average degree is used to indicate the direct connection between a node and other nodes in the developer collaboration network, and in open source projects, it indicates the collaboration between developers; the minimum path and the clustering coefficient are used to measure the information dissemination ability of nodes in the developer collaboration network, and in open source projects, it indicates the information sharing ability between developers, as well as the clustered cooperative relationship between developers and collaborators of collaborators.

[0107] In one embodiment, the evolution prediction module also includes a verification module for determining the relative error of the prediction based on the development prediction results and the historical data of the open source project to be predicted; and adjusting the node connection rules according to the relative error of the prediction until the prediction error meets the preset conditions, thereby obtaining an open source project development prediction model.

[0108] Regarding the specific limitations of the open source project development prediction device based on the developer collaboration network, please refer to the limitations of the open source project development prediction method based on the developer collaboration network above, which will not be repeated here. The various modules in the above-mentioned open source project development prediction device based on the developer collaboration network can be implemented in whole or in part by software, hardware and their combination. The above-mentioned modules can be embedded in or independent of the processor in the computer device in the form of hardware, or can be stored in the memory of the computer device in the form of software, so that the processor can call and execute the operations corresponding to the above modules.

[0109] The technical features of the above embodiments can be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0110] The above-described embodiments merely represent several implementation methods of the present application. While the descriptions are relatively specific and detailed, they should not be construed as limiting the scope of the present invention. It should be noted that a person skilled in the art could make various modifications and improvements without departing from the spirit of the present application, all of which fall within the scope of protection of the present application. Therefore, the scope of protection of the present patent application shall be determined by the appended claims.

Claims

1. A method for predicting the development of open source projects based on a developer collaboration network, characterized in that: The method comprises: All event set data of the open source project to be predicted are stored in a local database in Json format; the event set data includes: a number of events, each event includes at least: the initiator, the event type and the event creation time; Determining, based on the event set data in the local database, undirected data pairs representing developer collaboration relationships in each data set; Constructing an undirected, weighted developer collaboration network based on the undirected data pairs, where the nodes of the developer collaboration network are developers, the edges of the developer collaboration network are the edges connecting the undirected data pairs, and the weights of the edges of the developer collaboration network are the number of times the corresponding undirected data pairs appear in different event sets; Calculate the evolution index of the developer collaboration network in different time slices based on the developer collaboration network and event creation time; Determining the evolution law of the developer collaboration network based on the evolution indicator; According to the evolution law, node connection rules are set, wherein the node connection rules include preference connection rules for newly connected nodes, connection change rules for existing nodes, and rules for deleting existing nodes; Evolving the developer collaboration network according to the node connection rules to obtain a development prediction result of the open source project to be predicted; The method of determining, based on the event set data in the local database, an undirected data pair representing a collaborative relationship between developers in each data set includes: Dividing the event set data in the local database into different time slices and grouping the data in the same time slice; Group the events in the same event set into one group within the obtained time slice groups. Match the initiators of events in the obtained event set group to form undirected data pairs; The step of calculating the evolution index of the developer collaboration network in different time slices based on the developer collaboration network and the event creation time also includes: Obtaining a degree distribution of the developer collaboration network according to the developer collaboration network; Fit the degree distribution of the developer collaboration network on a double logarithmic coordinate axis, and obtain the degree index based on the slope of the degree distribution; Obtaining characteristics of the developer collaboration network according to the degree distribution, the degree index, and the topological structure of the developer collaboration network; An evolution indicator for measuring the evolution of the developer collaboration network is determined according to the characteristics of the developer collaboration network.

2. The method according to claim 1, characterized in that According to the evolution law, node connection rules are set. The preferred connection rules of the newly accessed nodes in the step are used to indicate that when a new developer joins the open source project, the new developer establishes a collaborative relationship with the selected original developer. The connection change rules between the original nodes include no connection to a connection, a connection to no connection, and a change in connection weight. No connection to a connection indicates that the two original developers have established a new collaborative relationship and have made the same contribution. A connection to no connection indicates that the two original developers have terminated their collaborative relationship due to certain factors and stopped making the same contribution. A change in connection weight indicates that the two original developers have made new contributions or stopped making some of the same contributions. The rule of deleting the original node is used to indicate that the original developer of the open source project has withdrawn from contributing to the open source project.

3. The method according to claim 1, characterized in that The evolution indicators include: the number of nodes, number of edges, edge weight, average degree, shortest path and clustering coefficient of the developer collaboration network; The number of nodes and the number of edges are used to directly reflect the scale of the developer collaboration network; The edge weight is used to represent the developer's contribution level; The average degree is used to represent the direct connection between a node and other nodes in the developer collaboration network, and in open source projects, it represents the collaboration between developers; The shortest path and the clustering coefficient are used to measure the information dissemination capability of nodes in the developer collaboration network. In open source projects, they represent the information sharing capability among developers and the clustered cooperative relationship between developers and their collaborators.

4. The method according to claim 1, wherein Evolving the developer collaboration network according to the node connection rule to obtain a development prediction result of the open source project to be predicted, the following step further includes: Based on the development prediction results and the historical data of the open source project to be predicted, the relative error of the prediction is determined; and the node connection rules are adjusted according to the relative error of the prediction until the prediction error meets the preset conditions, thereby obtaining the open source project development prediction model.

5. An open source project development prediction device based on a developer collaboration network, characterized in that: The device comprises: The data acquisition and storage module is used to store all event set data of the open source project to be predicted in the local database in Json format; the event set data includes: a number of events, each event includes at least: the initiator, event type and event creation time; A data processing module, configured to determine, based on the event set data in the local database, undirected data pairs representing developer collaboration relationships in each data set; A collaboration network construction module is used to construct an undirected and authorized developer collaboration network based on the undirected data pairs, where the nodes of the developer collaboration network are developers, the edges of the developer collaboration network are the edges connecting the undirected data pairs, and the weights of the edges of the developer collaboration network are the number of times the corresponding undirected data pairs appear in different event sets; An evolution law determination module, configured to calculate the evolution indicators of the developer collaboration network in different time slices based on the developer collaboration network and event creation time; and determine the evolution law of the developer collaboration network based on the evolution indicators; A module for setting node connection rules that change over time is used to set node connection rules based on the evolution law; the node connection rules include preferred connection rules for newly connected nodes, connection change rules for existing nodes, and rules for deleting existing nodes; An evolution prediction module, configured to evolve the developer collaboration network according to the node connection rules to obtain a development prediction result of the open source project to be predicted; The data processing module is further configured to divide the event set data in the local database into different time slices and group the data in the same time slice; group the data in the different time slice groups into groups according to the event set, and group the events in the same event set; and match the initiators of the events in the obtained event set groups in pairs to form undirected data pairs. Among them, the evolution law determination module also includes an evolution indicator determination module for measuring the evolution of the developer collaboration network, which is used to obtain the degree distribution of the developer collaboration network based on the developer collaboration network; fit the degree distribution of the developer collaboration network under the double logarithmic coordinate axis, and obtain the degree index according to the slope of the degree distribution; obtain the characteristics of the developer collaboration network according to the degree distribution, the degree index and the topological structure of the developer collaboration network; and determine the evolution indicator for measuring the evolution of the developer collaboration network based on the characteristics of the developer collaboration network.

Citation Information

Patent Citations

  • Core developer identification method, device and equipment based on developer cooperation network

    CN115904464A