A collaborative interaction method for software development
By using project management tools and computing a variety of indicators of developers in the software development collaborative interaction method, the problems of unreasonable task allocation, unintelligent template recommendations and unreasonable inspection frequency are solved, and efficient development collaboration and smooth development process are achieved.
Patent Information
- Application Number
- CN202411879760.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-19
- Publication Date
- 2025-03-11
- Estimated Expiration
- 2044-12-19
AI Technical Summary
The existing software collaborative development methods cannot reasonably assign development tasks, resulting in inefficient development efficiency and internal conflicts of the company; the inability to intelligently recommend code templates, resulting in inefficient development efficiency; the inability to reasonably formulate inspection frequency, resulting in congestion in inspections.
Create requirements documents through project management tools, decompose requirements points into specific tasks, calculate the developer's task allocation indicators and allocation index, and allocate tasks reasonably; calculate the developers' recommendation values for each template, and intelligently recommend development templates; calculate the similarity between developers, establish communication channels; calculate the developer's code inspection frequency, and arrange inspections reasonably.
A scientific and reasonable task allocation has been achieved, and development efficiency and developer satisfaction have been improved; development efficiency has been improved through intelligent recommendation templates; and inspection congestion has been avoided through reasonable inspection frequency arrangement.
Smart Images

Figure CN119338423B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of software development, and in particular to a collaborative interaction method for software development. Background Art
[0002] With the rapid development of information technology, the scale and complexity of software systems are constantly increasing. Modern software development is no longer a one-man show by individual developers, but involves the collaborative work of people from multiple professional fields. In this context, how to achieve efficient and smooth collaborative interaction in software development has become a key issue that needs to be solved urgently;
[0003] The existing software collaborative development methods cannot reasonably allocate a reasonable amount of tasks to each developer, which can easily lead to conflicts within the company; they cannot intelligently recommend code templates to developers based on their historical template usage, which leads to low development efficiency; they cannot reasonably formulate the inspection frequency of each developer, which can easily lead to excessive workload for inspectors and inspection congestion. Summary of the invention
[0004] In view of this, the present invention provides a software development collaborative interaction method to solve the problems raised by the above background technology.
[0005] The purpose of the present invention can be achieved through the following technical solutions:
[0006] A software development collaborative interaction method, characterized by comprising:
[0007] Step 1: Use the project management tool to create a requirement document in the document management module and break down each requirement point in the requirement document into specific tasks;
[0008] Step 2: Calculate the developer's allocated workload and the developer's allocation index for each task, and then assign developers to each task;
[0009] Step 3: The developer develops the code, and the recommended values of the development users for each template are calculated, so as to recommend a development template to each developer in a personalized way;
[0010] Step 4: Calculate the similarity between developers, select the developer with the highest similarity to the problem initiator as the solver, and establish a communication channel between the problem initiator and the solver; Step 5: Calculate the frequency of code checking by developers, and arrange personnel to check the code of developers regularly;
[0011] Step 6: Testers test the completed code;
[0012] Step 7: Developers fix the problematic code.
[0013] In some embodiments, developers are assigned to various tasks, specifically:
[0014] S1: Number the developers. Indicates that i=1,2...x, where x represents the total number of developers; tasks are numbered using Indicates that j=1,2...n, n is the total number of tasks, and obtains the historical development data, years of experience NXi, age NLi and salary XZi of each developer. The historical development data includes: the types of all development tasks and their corresponding development times and completion time, and the error rate of code online ;
[0015] S2: After normalizing the years of experience NXi and salary XZi of each developer, according to the formula: Get the task allocation index RWi corresponding to each developer, where a1 and a2 are the weighted influencing factors corresponding to the developer's years of experience NXi and salary XZi, respectively. is the adjustment factor calculated based on the age NLi of each developer. The specific calculation method is: , where e is the natural base; set a standard workload, multiply the standard workload by the task allocation indicator RWi of each developer, and thus obtain the allocated workload of each developer;
[0016] S3: Task allocation follows the principle of task priority. First, employees hold a meeting to discuss and sort tasks based on importance and order. Developers are then assigned to each task in order of priority. At the same time, all employees jointly decide the workload of each task.
[0017] S4: Match the development times and completion times of each task from the historical development data of each developer, expressed as and , It indicates the number of times the developer numbered i has developed the task numbered j. It indicates the completion time of the task numbered j by the developer numbered i;
[0018] S5: First, assign the first task using the formula: Calculate the allocation index of each developer for the first task , where c1, c2 and c3 are the number of times each developer develops each task , Development time of each person for each task and the error rate of each developer's code release The corresponding weight impact factor;
[0019] S6: The developer with the highest allocation index is selected as the developer for the first task. If there are multiple developers with the same allocation index, the age priority principle is adopted to assign the task to the youngest developer. If there are two or more developer candidates, the developer with the highest salary is assigned the task. The workload of the developer to be assigned is deducted from the workload of the first task from the developer's allocated workload.
[0020] S7: Then the second task is allocated. First, the allocation index of each developer for the second task is obtained. Developers are selected according to the three-layer filtering of allocation index, age and salary. For the selected developers, their workload to be allocated is obtained and compared with the workload of the second task. If their workload to be allocated is less than the workload of the second task, the task is allocated to the second-ranked developer in the same layer. If there is no competing developer in the same layer, the selection is returned to one layer.
[0021] S8: For the next task, the same as step S7 is performed until all tasks are assigned.
[0022] In some embodiments, the recommended value of each template by the development user is calculated as follows:
[0023] Get the historical template usage records of the developer, divide the total number of times the developer uses the template by the number of templates used, and get the average number of times the template is used;
[0024] Separate the usage records of each template from the developer's historical template usage records, calculate the time between two adjacent usages in the usage records of each template, classify them by template, number each template, and obtain the usage time interval set of each template , Indicates the set of usage time intervals corresponding to the template numbered m, where m=1,2...k, and k represents the total number of templates. Represents the data in each usage time interval set. For different usage time interval sets, the value of q is different because the amount of data in the set is different;
[0025] Extract the maximum and minimum values from the usage time interval set of each template and record them as usage valley values. and peak value ; Use the mean formula to calculate the data in the usage time interval set of each template, and the result is recorded as the mean ;
[0026] Get the number of times developers use each template, recorded as the template usage number ; Use the module number of each template Subtract the average number of times the template is used to obtain the number difference, preset the number difference intervals for each group, preset the number difference intervals for each group of number score values, match the number difference intervals corresponding to the number difference of each template, and thus obtain the number score value corresponding to each template. The larger the number difference, the higher the number score value;
[0027] The obtained valley value , use peak and using the mean Normalized descendant into the formula: Get the usage ratings of each template by the development users , where d1, d2 and d3 are the mean values of , use valley value and peak value The corresponding weight impact factor;
[0028] Preset the number of ratings and usage ratings for each template The weight influence factor is used to calculate the number of times and usage scores of each template. After normalization, the values are multiplied by their corresponding weight influence factors and then summed up. The results are used as the recommendation values of each template. Templates are recommended to users in descending order according to the corresponding recommendation values of the templates.
[0029] In some embodiments, a communication channel between developers is established, specifically:
[0030] A1: Create a group chat for all people involved in the software development, and developers raise questions in the group chat;
[0031] A2: Extract the types of all tasks developed by each developer and their corresponding development times and completion times, number all task types, and use It indicates the number of times the developer numbered i has developed the task numbered j, using Indicates the completion time of the task numbered j by the developer numbered i. and After normalization, enter the formula: Get the development index of the developer numbered i corresponding to the task numbered j;
[0032] A3: The years of experience NXi, age NLi, salary XZi of each developer, and the development index of each task And the code online error rate After normalization, it is expressed in the form of a multidimensional vector. , using the cosine similarity method to calculate the similarity between two developers ,in Indicates the developer numbered l. represents the similarity between developers numbered i and l;
[0033] A4: When a developer raises a question in a group chat, natural language processing technology is used to pre-process the language, including deduplication and enhancement, and then keywords are extracted, semantics are analyzed, and the task corresponding to the question is located. If it is a voice message, speech-to-text technology is used to convert the voice message into text first, and the developer with the highest similarity to the developer who raised the question is selected as the corresponding problem solver, and a one-to-one communication group chat is established for the current problem initiator and the selected solver.
[0034] A5: When the problem is solved, any developer can initiate a request to disband the group chat, and the group chat will be cancelled only after the two developers agree.
[0035] In some embodiments, the frequency of code review by developers is calculated, specifically:
[0036] The code errors submitted by the developer each time are summarized according to the error level, which is divided into general errors, moderate errors and severe errors, so as to obtain the number of general errors, moderate errors and severe errors of the code submitted by the developer each time. The number of general errors, moderate errors and severe errors submitted by the developer each time is divided by the total number of lines of the corresponding submitted code to obtain the general error ratio, moderate error ratio and severe error ratio of the code submitted by the developer each time; the average of the general error ratio, moderate error ratio and severe error ratio of the code submitted by the developer each time is taken to obtain the general error index, moderate error index and severe error index of the developer;
[0037] Preset the weighted impact factors corresponding to the general error index, the moderate error index, and the severe error index, multiply the general error index, the moderate error index, and the severe error index by the corresponding weighted impact factors, and then add them together to obtain the result as the comprehensive error index CWi of each developer;
[0038] Extract the code online error rate of each developer , and the comprehensive error index CWi of each developer are substituted into the formula: Thus, the inspection index JCi corresponding to each developer is obtained, where and They are the code online error rate and the weighted impact factor corresponding to the comprehensive error index CWi;
[0039] Preset each interval of the inspection index JCi, set each interval of the inspection index JCi to correspond to each inspection frequency, match the inspection index JCi interval corresponding to the inspection index JCi of each developer, so as to obtain the inspection frequency of each developer.
[0040] In some embodiments, the developer's error codes are classified into levels, specifically:
[0041] Obtain the repair cost of each error code of the developer. The repair cost includes time cost and resource consumption cost. The time cost is equal to the sum of the time invested by each repairer, and the resource consumption cost is measured by the additional money invested. Preset the weight influence factors corresponding to the time cost and resource consumption cost, normalize the time cost and resource consumption cost, and multiply them by the corresponding weight factors to obtain the error cost of each error code of the developer.
[0042] Obtain the number of other tasks affected by the developer's error code, preset the error cost and the weighted impact factor of the number of other tasks affected, normalize the error cost and the number of other tasks affected by each error code of the developer, and multiply them by the corresponding weight factor to obtain the error assessment index of each error code of the developer; preset each interval of the error assessment index, set each interval of the error assessment index to correspond to each error level, and the error level is divided into general error, moderate error and severe error; match the error assessment index interval corresponding to each error code of the developer, so as to obtain the error level corresponding to each error code of the developer.
[0043] In some embodiments, the completed task code is tested, specifically:
[0044] B1: After the developer has completed the code development, he / she can choose to apply for an urgency score for the task code and be authorized by the relevant person in charge, including the technical person in charge and the project person in charge. The score is 1-5 points. If no application is made, the default score is 0. 1-3 points are authorized by the technical person in charge, and 4-5 points are authorized by the project person in charge. After the person in charge has authorized the task code, the developer uploads the task code to be tested to the code repository through the version management tool.
[0045] B2: Testers arrange the order of task code testing according to the urgency score of the task code;
[0046] B3: After the test is completed, the defect information of the code file and the code file are packaged and sent back to the version management tool. The defect information includes the defect title and severity. The severity is divided into minor, general, severe and fatal.
[0047] In some embodiments, the code after the test is completed is repaired, specifically:
[0048] Obtain defect information of the tested code and extract the severity of each defect. For minor defects, use code repair tools to automatically repair them and eliminate defect information. For general defects, use code repair tools to repair them and then mark them in yellow. The developer will remove the mark after a second check. For serious and fatal defects, the corresponding developers will repair them.
[0049] Compared with the prior art, the present invention has the following beneficial effects:
[0050] The present invention calculates the task allocation index of each developer, thereby obtaining the task allocation amount of each user, thereby scientifically and reasonably allocating tasks to each developer, avoiding some developers being allocated too many tasks while some developers are allocated too few tasks, thereby causing internal conflicts in the company; by calculating the allocation index and selecting developers for each task, it can ensure that each task can be allocated to the most suitable developer, avoiding the influence of human subjective consciousness in allocating tasks, and making the result more objective;
[0051] The present invention calculates the recommended values of developers for each template, thereby intelligently recommending a suitable template to each development user, thereby significantly improving development efficiency;
[0052] The present invention calculates the similarity between developers, so that when a developer raises a question, the developer with the highest similarity can be selected to solve the problem for him, so that the development of the project can be quickly advanced;
[0053] The present invention can reasonably allocate the inspection frequency to each developer by calculating the inspection frequency of each developer, thereby avoiding inspection congestion caused by too few inspectors. BRIEF DESCRIPTION OF THE DRAWINGS
[0054] Further details, features and advantages of the present application are disclosed in the following description of exemplary embodiments in conjunction with the accompanying drawings, in which:
[0055] Figure 1 It is a principle block diagram of the present invention. DETAILED DESCRIPTION
[0056] Several embodiments of the present application will be described in more detail below with reference to the accompanying drawings so that those skilled in the art can implement the present application. The present application can be embodied in many different forms and purposes and should not be limited to the embodiments described herein. These embodiments are provided to make the present application comprehensive and complete, and to fully convey the scope of the present application to those skilled in the art. The embodiments do not limit the present application.
[0057] Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by those of ordinary skill in the art to which this application belongs. It will be further understood that terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with their meaning in the relevant art and / or the context of this specification, and will not be interpreted in an idealized or overly formal sense unless explicitly defined as such herein.
[0058] See also Figure 1 As shown in the figure, a collaborative interaction method for software development includes the following seven steps:
[0059] Step 1: Use the project management tool to create a requirement document in the document management module and break down each requirement point in the requirement document into specific tasks;
[0060] Step 2: Calculate the developer's allocated workload and the developer's allocation index for each task, and then assign developers to each task;
[0061] S1: Number the developers. Indicates that i=1,2...x, where x represents the total number of developers; tasks are numbered using Indicates that j=1,2...n, n is the total number of tasks, and obtains the historical development data, years of experience NXi, age NLi and salary XZi of each developer. The historical development data includes: the types of all development tasks and their corresponding development times and completion time, and the error rate of code online ;
[0062] S2: After normalizing the years of experience NXi and salary XZi of each developer, according to the formula: Get the task allocation index RWi corresponding to each developer, where a1 and a2 are the weighted influencing factors corresponding to the developer's years of experience NXi and salary XZi, respectively. is the adjustment factor calculated based on the age NLi of each developer. The specific calculation method is: , where e is the natural base; set a standard workload, multiply the standard workload by the task allocation indicator RWi of each developer, and thus obtain the allocated workload of each developer;
[0063] By calculating the workload of each developer, it is easier to reasonably allocate appropriate workload to each developer when arranging tasks later, avoiding conflicts caused by unreasonable workload allocation;
[0064] S3: Task allocation follows the principle of task priority. First, employees hold a meeting to discuss and sort tasks based on importance and order. Developers are then assigned to each task in order of priority. At the same time, all employees jointly decide the workload of each task.
[0065] S4: Match the development times and completion times of each task from the historical development data of each developer, expressed as and , It indicates the number of times the developer numbered i has developed the task numbered j. It indicates the completion time of the task numbered j by the developer numbered i;
[0066] S5: First, assign the first task using the formula: Calculate the allocation index of each developer for the first task , where c1, c2 and c3 are the number of times each developer develops each task , Development time of each person for each task and the error rate of each developer's code release The corresponding weight impact factor;
[0067] S6: The developer with the highest allocation index is selected as the developer for the first task. If there are multiple developers with the same allocation index, the age priority principle is adopted to assign the task to the youngest developer. If there are two or more developer candidates, the developer with the highest salary is assigned the task. The workload of the developer to be assigned is deducted from the workload of the first task from the developer's allocated workload.
[0068] By calculating the allocation index of each developer to each task, the most suitable developer can be assigned to each task;
[0069] S7: Then the second task is allocated. First, the allocation index of each developer for the second task is obtained. Developers are selected according to the three-layer filtering of allocation index, age and salary. For the selected developers, their workload to be allocated is obtained and compared with the workload of the second task. If their workload to be allocated is less than the workload of the second task, the task is allocated to the second-ranked developer in the same layer. If there is no competing developer in the same layer, the selection is returned to one layer.
[0070] S8: For the next task, the same as step S7, until all tasks are assigned;
[0071] Step 3: The developer develops the code, and the recommended values of the development users for each template are calculated, so as to recommend a development template to each developer in a personalized way;
[0072] Get the historical template usage records of the developer, divide the total number of times the developer uses the template by the number of templates used, and get the average number of times the template is used;
[0073] Separate the usage records of each template from the developer's historical template usage records, calculate the time between two adjacent usages in the usage records of each template, classify them by template, number each template, and obtain the usage time interval set of each template , Indicates the set of usage time intervals corresponding to the template numbered m, where m=1,2...k, and k represents the total number of templates. Represents the data in each usage time interval set. For different usage time interval sets, the value of q is different because the amount of data in the set is different;
[0074] The usage interval can reflect the developer's preference for the template. The smaller the usage interval, the more the developer likes the current template.
[0075] Extract the maximum and minimum values from the usage time interval set of each template and record them as usage valley values and peak value ; Use the mean formula to calculate the data in the usage time interval set of each template, and the result is recorded as the mean ;
[0076] Get the number of times developers use each template, recorded as the template usage number ; Use the module number of each template Subtract the average number of times the template is used to obtain the number difference, preset the number difference intervals for each group, preset the number difference intervals for each group of number score values, match the number difference intervals corresponding to the number difference of each template, and thus obtain the number score value corresponding to each template. The larger the number difference, the higher the number score value;
[0077] The difference in the number of templates can reflect whether the developer's use of the current template is above or below the average number of templates used. The larger the difference, the more times the developer uses the current template and the more frequently the current template is used.
[0078] The obtained valley value , use peak and using the mean Normalized descendant into the formula: Get the usage ratings of each template by the development users , where d1, d2 and d3 are the means , use valley value and peak value The corresponding weight impact factor;
[0079] Preset the number of ratings and usage ratings for each template The weight influence factor is used to calculate the number of times and usage scores of each template. After normalization, the values are multiplied by their corresponding weight influence factors and then summed up. The results are used as the recommendation values of each template. Templates are recommended to users in descending order according to the corresponding recommendation values of the templates.
[0080] Comprehensively considering the number of times and usage scores of templates can evaluate each template more scientifically and objectively, and then recommend appropriate templates to users in an orderly manner, improve the rationality and accuracy of recommendations, and meet user needs;
[0081] Step 4: Calculate the similarity between developers, select the developer with the highest similarity to the problem initiator as the solver, and establish a communication channel between the problem initiator and the solver;
[0082] A1: Create a group chat for all people involved in the software development, and developers raise questions in the group chat;
[0083] A2: Extract the types of all tasks developed by each developer and their corresponding development times and completion times, number all task types, and use It indicates the number of times the developer numbered i has developed the task numbered j, using Indicates the completion time of the task numbered j by the developer numbered i. and After normalization, enter the formula: Get the development index of the developer numbered i corresponding to the task numbered j;
[0084] A3: The years of experience NXi, age NLi, salary XZi of each developer, and the development index of each task And the code online error rate After normalization, it is expressed in the form of a multidimensional vector. , using the cosine similarity method to calculate the similarity between two developers ,in Indicates the developer numbered l. represents the similarity between developers numbered i and l;
[0085] The higher the similarity, the more similar the past development experience of the two developers is, and the greater the probability of encountering the same problem. When establishing a one-to-one communication group chat later, select the developer with the highest similarity to the problem initiator, so that the problem can be solved quickly for the problem initiator.
[0086] A4: When a developer raises a question in a group chat, natural language processing technology is used to pre-process the language, including deduplication and enhancement, and then keywords are extracted, semantics are analyzed, and the task corresponding to the question is located. If it is a voice message, speech-to-text technology is used to convert the voice message into text first, and the developer with the highest similarity to the developer who raised the question is selected as the corresponding problem solver, and a one-to-one communication group chat is established for the current problem initiator and the selected solver.
[0087] A5: When the problem is solved, any developer can initiate a request to disband the group chat. The group chat will be cancelled only after two developers agree.
[0088] Step 5: Calculate the frequency of code review by developers and arrange personnel to review the code of developers regularly;
[0089] The code errors submitted by the developer each time are summarized according to the error level, which is divided into general errors, moderate errors and severe errors, so as to obtain the number of general errors, moderate errors and severe errors of the code submitted by the developer each time. The number of general errors, moderate errors and severe errors submitted by the developer each time is divided by the total number of lines of the corresponding submitted code to obtain the general error ratio, moderate error ratio and severe error ratio of the code submitted by the developer each time; the average of the general error ratio, moderate error ratio and severe error ratio of the code submitted by the developer each time is taken to obtain the general error index, moderate error index and severe error index of the developer;
[0090] Preset the weighted impact factors corresponding to the general error index, the moderate error index, and the severe error index, multiply the general error index, the moderate error index, and the severe error index by the corresponding weighted impact factors, and then add them together to obtain the result as the comprehensive error index CWi of each developer;
[0091] Extract the code online error rate of each developer , and the comprehensive error index CWi of each developer are substituted into the formula: Thus, the inspection index JCi corresponding to each developer is obtained, where and They are the code online error rate and the weighted impact factor corresponding to the comprehensive error index CWi;
[0092] Preset each interval of the inspection index JCi, set each interval of the inspection index JCi to correspond to each inspection frequency, match the inspection index JCi interval corresponding to the inspection index JCi of each developer, and thus obtain the inspection frequency of each developer;
[0093] Set different inspection frequencies for each developer. Developers with fewer code errors should have a lower inspection frequency, while developers with more code errors should have a higher inspection frequency. This can reduce the workload of code inspectors and avoid inspection congestion.
[0094] Obtain the repair cost of each error code of the developer. The repair cost includes time cost and resource consumption cost. The time cost is equal to the sum of the time invested by each repairer, and the resource consumption cost is measured by the additional money invested. Preset the weight influence factors corresponding to the time cost and resource consumption cost, normalize the time cost and resource consumption cost, and multiply them by the corresponding weight factors to obtain the error cost of each error code of the developer.
[0095] Obtain the number of other tasks affected by the developer's error code, preset the error cost and the weighted impact factor of the number of other tasks affected, normalize the error cost and the number of other tasks affected by each error code of the developer, and multiply them by the corresponding weight factor to obtain the error assessment index of each error code of the developer; preset each interval of the error assessment index, set each interval of the error assessment index to correspond to each error level, and the error level is divided into general error, moderate error and severe error; match the error assessment index interval corresponding to each error code of the developer, so as to obtain the error level corresponding to each error code of the developer;
[0096] Step 6: Testers test the completed code;
[0097] B1: After the developer has completed the code development, he / she can choose to apply for an urgency score for the task code and be authorized by the relevant person in charge, including the technical person in charge and the project person in charge. The score is 1-5 points. If no application is made, the default score is 0. 1-3 points are authorized by the technical person in charge, and 4-5 points are authorized by the project person in charge. After the person in charge has authorized the task code, the developer uploads the task code to be tested to the code repository through the version management tool.
[0098] By applying urgency scores to task codes, we can ensure that some codes that need to be tested first can be tested first;
[0099] B2: Testers arrange the order of task code testing according to the urgency score of the task code;
[0100] B3: After the test is completed, the defect information of the code file and the code file are packaged and sent back to the version management tool. The defect information includes the defect title and severity. The severity is divided into minor, general, severe and fatal.
[0101] Step 7: Developers fix the problematic code;
[0102] Obtain defect information of the tested code and extract the severity of each defect. For minor defects, use code repair tools to automatically repair them and eliminate defect information. For general defects, use code repair tools to repair them and then mark them in yellow. The developer will remove the mark after a second check. For serious and fatal defects, the corresponding developers will repair them.
[0103] The preferred embodiments of the present invention disclosed above are only used to help explain the present invention. The preferred embodiments do not describe all the details in detail, nor do they limit the invention to only specific implementation methods. Obviously, many modifications and changes can be made according to the content of this specification. This specification selects and specifically describes these embodiments in order to better explain the principles and practical applications of the present invention, so that those skilled in the art can understand and use the present invention well. The present invention is limited only by the claims and their full scope and equivalents.
Claims
1. A software development collaborative interaction method, characterized in that: include: Step 1: Use the project management tool to create a requirement document in the document management module and break down each requirement point in the requirement document into specific tasks; Step 2: Calculate the developer's allocated workload and the developer's allocation index for each task, and then assign developers to each task; Step 3: The developer develops the code, and the recommended values of the development users for each template are calculated, so as to recommend a development template to each developer in a personalized way; Step 4: Calculate the similarity between developers, select the developer with the highest similarity to the problem initiator as the solver, and establish a communication channel between the problem initiator and the solver; Step 5: Calculate the frequency of code review by developers and arrange personnel to regularly review the code of developers; the frequency of code review by developers is calculated as follows: The code errors submitted by the developer each time are summarized according to the error level. The error level is divided into general errors, moderate errors and severe errors, so as to obtain the number of general errors, moderate errors and severe errors of the code submitted by the developer each time. The number of general errors, moderate errors and severe errors submitted by the developer each time is divided by the total number of lines of the corresponding submitted code, so as to obtain the general error ratio, moderate error ratio and severe error ratio of the code submitted by the developer each time; Take the average of the general error rate, moderate error rate and severe error rate of each code submission by the developer to obtain the general error index, moderate error index and severe error index of the developer; Preset the weighted impact factors corresponding to the general error index, the moderate error index, and the severe error index, multiply the general error index, the moderate error index, and the severe error index by the corresponding weighted impact factors, and then add them together to obtain the result as the comprehensive error index CWi of each developer; Extract the code online error rate of each developer , and the comprehensive error index CWi of each developer are substituted into the formula: Thus, the inspection index JCi corresponding to each developer is obtained, where and They are the code online error rate and the weighted impact factor corresponding to the comprehensive error index CWi; Preset each interval of the inspection index JCi, set each interval of the inspection index JCi to correspond to each inspection frequency, match the inspection index JCi interval corresponding to the inspection index JCi of each developer, and thus obtain the inspection frequency of each developer; Step 6: Testers test the completed code; Step 7: Developers fix the problematic code.
2. A software development collaborative interaction method according to claim 1, characterized in that: Assign developers to each task, specifically: S1: Number the developers. Indicates that i=1,2...x, where x represents the total number of developers; tasks are numbered using Indicates that j=1,2...n, n is the total number of tasks, and obtains the historical development data, years of experience NXi, age NLi and salary XZi of each developer. The historical development data includes: the types of all development tasks and their corresponding development times and completion time, and the error rate of code online ; S2: After normalizing the years of experience NXi and salary XZi of each developer, according to the formula: Get the task allocation index RWi corresponding to each developer, where a1 and a2 are the weighted influencing factors corresponding to the developer's years of experience NXi and salary XZi, respectively. is the adjustment factor calculated based on the age NLi of each developer. The specific calculation method is: , where e is the natural base; set a standard workload, multiply the standard workload by the task allocation indicator RWi of each developer, and thus obtain the allocated workload of each developer; S3: Task allocation follows the principle of task priority. First, employees hold a meeting to discuss and sort tasks based on importance and order. Developers are then assigned to each task in order of priority. At the same time, all employees jointly decide the workload of each task. S4: Match the development times and completion times of each task from the historical development data of each developer, expressed as and , It indicates the number of times the developer numbered i has developed the task numbered j. It indicates the completion time of the task numbered j by the developer numbered i; S5: First, assign the first task using the formula: Calculate the allocation index of each developer for the first task , where c1, c2 and c3 are the number of times each developer develops each task , Development time of each person for each task and the error rate of each developer's code release The corresponding weight impact factor; S6: The developer with the highest allocation index is selected as the developer for the first task. If there are multiple developers with the same allocation index, the age priority principle is adopted to assign the task to the youngest developer. If there are two or more developer candidates, the developer with the highest salary is assigned the task. The workload of the developer to be assigned is deducted from the workload of the first task from the developer's allocated workload. S7: Then the second task is allocated. First, the allocation index of each developer for the second task is obtained. Developers are selected according to the three-layer filtering of allocation index, age and salary. For the selected developers, their workload to be allocated is obtained and compared with the workload of the second task. If their workload to be allocated is less than the workload of the second task, the task is allocated to the second-ranked developer in the same layer. If there is no competing developer in the same layer, the selection is returned to one layer. S8: For the next task, the same as step S7 is performed until all tasks are assigned.
3. A software development collaborative interaction method according to claim 1, characterized in that: Calculate the recommended values for each template by development users, specifically: Get the historical template usage records of the developer, divide the total number of times the developer uses the template by the number of templates used, and get the average number of times the template is used; Separate the usage records of each template from the developer's historical template usage records, calculate the time between two adjacent usages in the usage records of each template, classify them by template, number each template, and obtain the usage time interval set of each template , Indicates the set of usage time intervals corresponding to the template numbered m, where m=1,2...k, and k represents the total number of templates. Represents the data in each usage time interval set; Extract the maximum and minimum values from the usage time interval set of each template and record them as usage valley values and peak value ; Use the mean formula to calculate the data in the usage time interval set of each template, and the result is recorded as the mean ; Get the number of times developers use each template, recorded as the template usage number ; Use the module number of each template Subtract the average number of times the template is used to obtain the number difference, preset the number difference intervals for each group, preset the number difference intervals corresponding to each group of number score values, match the number difference intervals corresponding to the number difference of each template, and thus obtain the number score value corresponding to each template; The obtained valley value , use peak and using the mean Normalized descendant into the formula: Get the usage ratings of each template by the development users , where d1, d2 and d3 are the means , use valley value and peak value The corresponding weight impact factor; Preset the number of ratings and usage ratings for each template The weight influence factor is used to calculate the number of times and usage scores of each template. After normalization, the values are multiplied by their corresponding weight influence factors and then summed up. The results are used as the recommendation values of each template. Templates are recommended to users in descending order according to the corresponding recommendation values of the templates.
4. A software development collaborative interaction method according to claim 1, characterized in that: Establish communication channels between developers, specifically: A1: Create a group chat for all people involved in the software development, and developers raise questions in the group chat; A2: Extract the types of all tasks developed by each developer and their corresponding development times and completion times, number all task types, and use It indicates the number of times the developer numbered i has developed the task numbered j, using Indicates the completion time of the task numbered j by the developer numbered i. and After normalization, enter the formula: Get the development index of the developer numbered i corresponding to the task numbered j; A3: The years of experience NXi, age NLi, salary XZi of each developer, and the development index of each task And the code online error rate After normalization, it is expressed in the form of a multidimensional vector. , using the cosine similarity method to calculate the similarity between two developers ,in Indicates the developer numbered l. represents the similarity between developers numbered i and l; A4: When a developer raises a question in a group chat, the language is preprocessed, keywords are extracted, semantics are analyzed, and the task corresponding to the question is located. The developer who has the highest similarity with the developer who raised the question is selected as the person who solves the corresponding problem, and a one-to-one communication group chat is established for the current problem initiator and the solver. A5: When the problem is solved, any developer can initiate a request to disband the group chat, and the group chat will be cancelled only after the two developers agree.
5. A software development collaborative interaction method according to claim 1, characterized in that: The error codes of developers are classified into the following levels: Obtain the repair cost of each error code of the developer. The repair cost includes time cost and resource consumption cost. The time cost is equal to the sum of the time invested by each repairer, and the resource consumption cost is measured by the additional money invested. Preset the weight influence factors corresponding to the time cost and resource consumption cost, normalize the time cost and resource consumption cost, and multiply them by the corresponding weight factors to obtain the error cost of each error code of the developer. Obtain the number of other tasks affected by the developer's error code, preset the error cost and the weighted impact factor of the number of other tasks affected, normalize the error cost of each developer's error code and the number of other tasks affected, and multiply them by the corresponding weight factor to obtain the error assessment index of each developer's error code; preset each interval of the error assessment index, set each interval of the error assessment index to correspond to each error level, and the error level is divided into general error, moderate error and severe error; The error assessment index interval corresponding to the error assessment index of each error code of the developer is matched, so as to obtain the error level corresponding to each error code of the developer.
6. A software development collaborative interaction method according to claim 1, characterized in that: Test the completed task code, specifically: B1: After the developer has completed the code development, he / she can choose to apply for an urgency score for the task code and be authorized by the relevant person in charge, including the technical person in charge and the project person in charge. The score is 1-5 points. If no application is made, the default score is 0. 1-3 points are authorized by the technical person in charge, and 4-5 points are authorized by the project person in charge. After the person in charge has authorized the task code, the developer uploads the task code to be tested to the code repository through the version management tool. B2: Testers arrange the order of task code testing according to the urgency score of the task code; B3: After the test is completed, the defect information of the code file and the code file are packaged and sent back to the version management tool. The defect information includes the defect title and severity. The severity is divided into minor, general, severe and fatal.
7. A software development collaborative interaction method according to claim 1, characterized in that: Repair the code after the test, specifically: Obtain defect information of the tested code and extract the severity of each defect. For minor defects, use code repair tools to automatically repair them and eliminate defect information. For general defects, use code repair tools to repair them and then mark them in yellow. The developer will remove the mark after a second check. For serious and fatal defects, the corresponding developers will repair them.
Citation Information
Patent Citations
Crowdsourcing task allocation method for complex task multi-person cooperation
CN119151267A
Method for recommending appropriate developers for software bug fixing and apparatus thereof
KR101390220B1