Program development support system, program development support method, information processing apparatus, and program
By managing developer skill levels and determining execution priority in the program development support system, the problem of low error detection efficiency in multi-developer environments is solved, achieving efficient error detection and error rate reduction.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- AUTONETWORKS TECH LTD
- Filing Date
- 2024-11-25
- Publication Date
- 2026-06-16
Smart Images

Figure CN122228490A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to a program development support system, a program development support method, an information processing device, and a program. Background Technology
[0002] Patent Document 1 discloses a program development support system. This system includes an automated execution processing server. The server stores execution object information in a predetermined order, and this execution object information corresponds to the source code used for automated execution processing. The server modifies the order of the execution object information in the automated execution queue based on work order attribute information (specifically, priority attribute, deadline attribute, or critical path attribute). The server then performs automated execution processing based on the modified order.
[0003] Existing technical documents
[0004] Patent documents
[0005] Patent Document 1: Japanese Patent Application Publication No. 2021-105866 Summary of the Invention
[0006] The problem that the invention aims to solve
[0007] In an environment where multiple developers share the opportunity to perform such tasks, it is foreseeable that each developer will have a different error rate. In this situation, it is desirable to be able to detect errors efficiently. However, Patent Document 1 does not offer any guidance on this.
[0008] The purpose of this disclosure is to provide a technique for easily and efficiently detecting errors.
[0009] Methods for solving problems
[0010] The program development support system disclosed herein has the following features: Storage department, storage job, the job being used to test source code that has been submitted to the source code management system; The execution unit executes the job stored in the storage unit; The Level Information Management Department manages level information, which represents the skill level of each developer of the source code; and The priority determination unit determines the priority of the job stored in the storage unit based on the level information managed by the level information management unit. The execution unit prioritizes the operations with the highest priority determined by the priority determination unit.
[0011] The program development support method disclosed herein includes the following steps: The storage is performed in a storage unit that stores jobs used to test source code that has been submitted to a source code management device. Execute the job stored in the storage unit; and The level information management department, which utilizes management level information, determines the priority of the jobs stored in the storage unit based on the level information managed by the level information management department. The level information represents the skill level of each developer of the source code. The jobs with the highest priority, as determined by the priority determination department, are executed first.
[0012] The information processing apparatus disclosed herein is an information processing apparatus included in a program development support system, the program development support system comprising: a storage unit storing jobs for testing source code submitted to a source code management device; an execution unit executing the jobs stored in the storage unit in descending order of priority; and a level information management unit managing level information, the level information representing the skill level of each developer of the source code, wherein... The information processing device includes a priority determination unit, which determines the priority of the job stored in the storage unit based on the level information managed by the level information management unit.
[0013] The program disclosed herein is used to cause a computer in an information processing device included in a program development support system to perform processing. The program development support system includes: a storage unit storing jobs for testing source code submitted to a source code management device; an execution unit executing the jobs stored in the storage unit in descending order of priority; and a level information management unit managing level information representing the skill level of each developer of the source code. The process involves determining the priority of the job stored in the storage unit based on the level information managed by the level information management unit.
[0014] Invention Effects
[0015] According to the technology disclosed herein, errors can be easily and efficiently detected. Attached Figure Description
[0016] Figure 1 This is a schematic diagram illustrating the structure of the program development support system of the first embodiment.
[0017] Figure 2 This is an explanatory diagram representing the skill levels of each developer.
[0018] Figure 3It is a table that shows the correspondence between skill levels and priorities.
[0019] Figure 4 This is an explanatory diagram showing an example of sorting jobs in the storage unit of the first embodiment.
[0020] Figure 5 This is a timing diagram of the program development support system of the first implementation method.
[0021] Figure 6 This is a schematic diagram illustrating the structure of the program development support system of the second embodiment.
[0022] Figure 7 This is a timing diagram of the program development support system of the second implementation method.
[0023] Figure 8 This is an explanatory diagram showing the skill information of the third embodiment. Detailed Implementation
[0024] [Description of embodiments of this disclosure]
[0025] First, embodiments of this disclosure will be listed and described.
[0026] [1] A program development support system, comprising: Storage department, storage job, the job being used to test source code that has been submitted to the source code management system; The execution unit executes the job stored in the storage unit; The Level Information Management Department manages level information, which represents the skill level of each developer of the source code; and The priority determination unit determines the priority of the job stored in the storage unit based on the level information managed by the level information management unit. The execution unit prioritizes the operations with the highest priority determined by the priority determination unit.
[0027] The error rate varies depending on the developer's skill level. The aforementioned program development support system efficiently detects errors by prioritizing tasks based on the developer's skill level.
[0028] [2] A program development support system based on [1], wherein, The priority determination unit determines the priority in a manner that the lower the skill level of the developer, the higher the priority of the task.
[0029] Developers with lower skill levels are considered to have a higher rate of errors. The aforementioned software development support system can efficiently detect errors by prioritizing the tasks of developers considered to have a high rate of errors.
[0030] [3] Develop a support system based on the program described in [1] or [2], wherein, The program development support system includes a generation unit, which generates the level information based on the result of the job executed by the execution unit.
[0031] The aforementioned program development support system can generate level information based on the results of job execution. Therefore, the aforementioned program development support system does not need to prepare level information in advance.
[0032] [4] Develop a support system based on the program described in [1] or [2], wherein, The level information management department includes an update department, which updates the level information based on the result of the operation performed by the execution department.
[0033] The aforementioned program development support system can update level information based on the results of job execution. Therefore, the system can adapt to changes in developers' skill levels.
[0034] [5] Develop a support system based on the program described in [1] or [2], wherein, The Level Information Management Department manages the level information representing the skill level of each developer in each technical field. The priority determination unit determines the priority of the job based on the technical field corresponding to the source code and the level information.
[0035] Developers' skill levels may vary depending on the technical field. The aforementioned program development support system can prioritize tasks based on the skill level corresponding to the technical field.
[0036] [6] A program development support system based on [5], wherein, The technical fields defined by the level information include multiple technical fields that can overlap with the submitted source code. The priority determination unit determines the priority of the job corresponding to the source code that overlaps with multiple technical fields based on the technical fields and the level information corresponding to the source code.
[0037] The aforementioned program development support system can prioritize tasks based on the skill level corresponding to each technical field for source code that overlaps with multiple technical fields.
[0038] [7] A program development support system based on [5], wherein, For the job corresponding to the source code that overlaps with multiple technical fields, the priority determination unit determines the priority corresponding to each technical field based on the skill level of each technical field corresponding to the source code, and uses the average value of the priorities corresponding to each technical field to determine the priority.
[0039] In situations where there are jobs corresponding to source code that overlap with multiple technical fields and jobs corresponding to source code that only exist in one technical field, the aforementioned program development support system can easily avoid situations where jobs from one field are prioritized.
[0040] [8] Develop a support system based on the program described in [1] or [2], wherein, The priority determination unit determines the priority based on the level information and the deadline of the source code.
[0041] The aforementioned program development support system can prioritize tasks by considering not only the developer's skill level but also the deadline of the source code.
[0042] [Detailed Description of Embodiments of this Disclosure]
[0043] <First Implementation Method>
[0044] 1-1. Structure of Program Development Support System 1
[0045] Figure 1 The program development support system 1 is shown. Program development support system 1 is shared by multiple developers.
[0046] The program development support system 1 includes a source code management system 10, an execution system 20, a server 30, an information processing device 40, nodes 50, and hardware 60. The source code management system 10, the execution system 20, the server 30, the information processing device 40, and the nodes 50 can communicate with each other via a network such as the Internet.
[0047] The source code management system 10 functions as a repository for managing source code, version information, and more. Source code generated by developers is submitted to the source code management system 10.
[0048] The execution system 20 functions as a CI / CD tool for continuously testing the source code submitted to the source code management system 10. CI stands for Continuous Integration, and CD stands for Continuous Delivery. The execution system 20 includes a storage unit 21 and an execution unit 22. The storage unit 21 stores jobs for testing the source code submitted to the source code management system 10. Jobs include not only testing but also building and deployment. The execution unit 22 executes the jobs stored in the storage unit 21. When executing jobs, the execution unit 22 controls the hardware 60 via a node 50 (e.g., a personal computer). This enables testing using the hardware 60. The hardware 60 can be configured in various ways. The hardware 60 may be, for example, a circuit board or a measuring fixture.
[0049] Server 30 comprises a work order information management department 31 and a level information management department 32. The work order information management department 31 manages the content generated by the program, the content of program corrections, etc., as work order information. Work order information includes work order identification information (e.g., work order number), work order title, content description, developer, development team, and source code expiration date. The level information management department 32 manages level information representing the skill level of each source code developer. Level information is pre-stored in the level information management department 32.
[0050] The information processing device 40 includes a priority determination unit 41. The priority determination unit 41 determines the priority of the jobs stored in the storage unit 21 based on the level information managed by the level information management unit 32.
[0051] The prioritization department 41 can determine priorities by assigning higher priority to tasks where the developer's skill level is lower. For example, in... Figure 2 In the example shown, developers A, B, and C have skill levels of 3, 2, and 1, respectively. The higher a developer's skill level, the larger the numerical value of that skill level. The priority determination unit 41 stores a table representing the correspondence between skill levels and priorities (see [reference]). Figure 3 ).exist Figure 3 In the example shown, skill levels 3, 2, and 1 correspond to priorities 1, 2, and 3, respectively. The priority determination unit 41 determines the priority of the task corresponding to the source code generated by the developer based on the developer's skill level and the table. Specifically, the priority determination unit 41 assigns a priority of 1 to the task of developer A (skill level 3), a priority of 2 to the task of developer B (skill level 2), and a priority of 3 to the task of developer C (skill level 1). That is, the tasks are assigned priority from highest to lowest according to the order of developers C, B, and A.
[0052] The priority determination unit 41 can also determine priorities based on level information and the deadline of the source code.
[0053] The priority determination unit 41 can determine the first temporary priority of a task based on level information. The priority determination unit 41 can determine the first temporary priority in a manner where the lower the developer's skill level, the higher the first temporary priority. Similar to the priority determination method described above, the priority determination unit 41 can use... Figure 3 The table shown determines the first temporary priority. In this case, the first temporary priorities of developers A, B, and C's jobs are 1, 2, and 3, respectively.
[0054] The priority determination unit 41 can determine the second temporary priority of the job based on the deadline of the source code. The priority determination unit 41 can determine the second temporary priority in a manner that the shorter the deadline of the source code, the higher the second temporary priority. The second temporary priority can, for example, be the reciprocal of the remaining number of months. For example, suppose the deadlines for the source code generated by developers A, B, and C are 3 months, 2 months, and 1 month, respectively. In this case, the second temporary priorities of the jobs of developers A, B, and C are 1 / 3, 2 / 3, and 1, respectively.
[0055] The priority determination unit 41 can also determine the priority based on the first temporary priority and the second temporary priority. For example, the priority determination unit 41 can determine the priority by multiplying the first temporary priority by the second temporary priority. In the example above, the priorities of the jobs of developers A, B, and C are 1 / 3 (=1×(1 / 3)), 4 / 3 (=2×(2 / 3)), and 3 (=3×1), respectively. That is, the priority of the jobs is from high to low according to the order of developers C, B, and A.
[0056] The aforementioned storage unit 21 generates a job upon receiving a submission notification from the source code management system 10. The storage unit 21 arranges the generated jobs in descending order of priority and stores them in queue 21A (see reference). Figure 4 For example, in Figure 4 In the example shown on the left, developer A's jobs 1, 2, and 3 are stored in queue 21A. Developer A's job 1 is currently executing. Jobs waiting to be executed are arranged in the order they are executed after the currently executing job 1. In this situation, suppose developer B's jobs 1 and 2, and developer C's jobs 1 and 2 are generated. At this time, apart from the currently executing jobs, jobs with higher priority are processed first. Therefore, if the priority is arranged from highest to lowest according to the order of developers C, B, and A, the jobs are processed in order... Figure 4 The order shown on the right is as follows. That is, after Developer A's Job 1, which is currently being executed, Developer C's Jobs 1 and 2, Developer B's Jobs 1 and 2, and Developer A's Jobs 1 and 2 are arranged in sequence.
[0057] The execution unit 22 executes the jobs stored in the storage unit 21 in the order arranged in the queue 21A. Therefore, the execution unit 22 prioritizes the jobs with higher priority determined by the priority determination unit 41.
[0058] 1-2. Processing flow of program development support system 1
[0059] Program Development Support System 1 Execution Figure 5 The process is shown. The developer generates the source code corresponding to the work orders managed by the work order information management department 31. Figure 5 In T10, the generated source code is submitted by the developer to the source code management system 10. In the source code management system 10, the identification information of the corresponding work order (e.g., work order number) is also submitted along with the source code. After the source code is submitted, the source code management system 10 sends a submission notification to the execution system 20 in T11. Upon receiving the submission notification, the execution system 20 retrieves the submission information from the source code management system 10. The submission information includes the source code's identification information (e.g., filename), test cases, work order identification information, etc.
[0060] After the execution system 20 obtains the submission information, it sends the work order identification information (e.g., work order number) contained in the submission information to the information processing device 40 at T12. Upon receiving the work order identification information, the information processing device 40 requests information corresponding to the work order identification information from the server 30 at T13. Specifically, the information processing device 40 requests information from the server 30 needed to determine the priority. This information includes level information indicating the developer's skill level, the deadline for the source code, etc. The server 30 sends the information corresponding to the request to the information processing device 40 at T14.
[0061] After obtaining the information necessary to determine the priority, the information processing device 40 determines the priority based on the obtained information at T15. The specific decision-making method is as described above. At T16, the information processing device 40 sends the determined priority to the execution system 20.
[0062] After receiving the priority, execution system 20 generates a job at T17. Then, at T18, execution system 20 sorts the jobs based on the received priority. At T19, execution system 20 executes the sorted jobs in sequence.
[0063] 1-3. Example of the role and effect of program development support system 1
[0064] Error rates vary depending on the developer's skill level. The program development support system 1 efficiently detects errors by prioritizing tasks based on the developer's skill level.
[0065] Developers with lower skill levels are considered to have a higher rate of errors. The program development support system 1 can efficiently detect errors by prioritizing the tasks of developers considered to have a high rate of errors.
[0066] The program development support system 1 can prioritize tasks by considering not only the developer's skill level but also the deadline of the source code.
[0067] <Second Implementation Method>
[0068] In the first embodiment, an example of pre-storing level information in the information processing device is described. In the second embodiment, an example of the information processing device generating and updating the level information is described. Furthermore, in the second embodiment, the same reference numerals are used for structures identical to those in the first embodiment, and detailed descriptions are omitted.
[0069] 2-1. Structure of Program Development Support System 201
[0070] The second embodiment of the program development support system 201, as shown in the example... Figure 6 As shown, it includes a source code management system 10, an execution system 20, a server 30, an information processing device 240, a node 50, and hardware 60.
[0071] The information processing device 240 includes a priority determination unit 41, a generation unit 42, and an update unit 43.
[0072] The generation unit 42 generates level information based on the results of the tasks performed by the execution unit 22. The "results of task execution" include "success" and "failure." The generation unit 42 can generate skill levels for each developer based on, for example, a predetermined number of attempts (e.g., 10 attempts) for each developer. For example, the generation unit 42 can set the skill level of a developer who succeeded 10 times to 3, the skill level of a developer who succeeded 8-9 times to 2, and the skill level of a developer who succeeded 7 times or less to 1. The predetermined number of attempts can also be 1.
[0073] The updating unit 43 updates the level information based on the results of the tasks performed by the execution unit 22. "Results of task execution" include "success" and "failure". The updating unit 43 can update each developer's skill level based on, for example, a predetermined number of attempts (e.g., 10 attempts) for each developer. This predetermined number of attempts can also be 1. For example, the generation unit 42 can set the skill level of a developer who succeeded 10 times to 3, the skill level of a developer who succeeded 8-9 times to 2, and the skill level of a developer who succeeded 7 times or less to 1. Alternatively, the updating unit 43 can also increase the skill level of developers who have succeeded more than a predetermined number of times and decrease the skill level of developers who have failed more than a predetermined number of times. The magnitude of skill level increases can vary depending on the number of successes. The magnitude of skill level decreases can vary depending on the number of failures.
[0074] 2-2. Processing flow of Program Development Support System 201
[0075] Program Development Support System 201 Execution Figure 7 The processing shown. Figure 7 The processing steps T10 to T19 are the same as those described in the first embodiment. Each time the execution system 20 executes a job, it sends the job execution result to the information processing device 40 at T20. Upon receiving the job execution result, the information processing device 40 generates or updates level information based on the received execution result at T21. The specific generation and updating methods are as described above. When generating or updating level information, the information processing device 40 sends the level information to the server 30. As a result, the level information on the server 30 is updated.
[0076] 2-3. Example of the role and effect of the program development support system 201
[0077] The program development support system 201 can generate level information based on the results of job execution. Therefore, the program development support system 201 does not need to prepare level information in advance.
[0078] The application development support system 201 can update level information based on the results of job execution. Therefore, the application development support system 201 can adapt to changes in developers' skill levels.
[0079] <Third Implementation Method>
[0080] There are cases where developers' skill levels vary depending on the technical field. In the third embodiment, examples that can address this situation are described. Furthermore, in the third embodiment, structures identical to those in the first embodiment are labeled with the same reference numerals, and detailed descriptions are omitted.
[0081] In the third embodiment, the level information management unit 32 manages level information representing the skill level of each developer in each technical field. Figure 8 An example of skill information in the third embodiment is shown. The technical fields specified by the level information include, for example, programming languages such as Python and C++, and troubleshooting.
[0082] The priority determination unit 41 determines the priority of the job based on the technical field and level information corresponding to the source code. Information indicating the technical field is, for example, included in the work order information. In this case, the priority determination unit 41 determines the priority of the job based on the technical field and level information corresponding to the source code. Figure 5 The T14 obtains work order information to determine the developer and technical field, and based on the determined technical field, developer, and skill level information, determines the developer's skill level in that technical field. For example, if the developer is Developer A and the technical field is Python, the priority determination unit 41 determines the skill level as 3. Then, the priority determination unit 41 determines the priority of the job based on the determined skill level.
[0083] exist Figure 8 In the example shown, the technical areas defined by the level information include multiple technical fields that overlap with the submitted source code. For example, the technical fields of C++ and troubleshooting overlap with the source code for troubleshooting, which uses C++ as the programming language. In this case, the priority determination unit 41 determines the priority of the job based on the technical fields and level information corresponding to the source code. For example, for a job corresponding to source code that overlaps with multiple technical fields, the priority determination unit 41 determines the priority corresponding to each technical field based on the skill level of each technical field corresponding to the source code, and uses the average of the priorities corresponding to each technical field to determine the priority. The priority determination unit 41 may determine the priority as the average of the priorities corresponding to each technical field, or it may determine the first temporary priority as described in the first embodiment.
[0084] The program development support system 1 of the third embodiment can determine the priority of tasks by taking into account the skill level corresponding to the technical field.
[0085] The program development support system 1 of the third embodiment can determine the priority of a job by taking into account the skill level corresponding to each technical field for jobs corresponding to source code that overlap with multiple technical fields.
[0086] In the case of a mixture of jobs that correspond to source code that overlaps with multiple technical fields and jobs that correspond to source code that corresponds to only one technical field, the program development support system 1 of the third embodiment can easily avoid the situation where one type of job is easily prioritized.
[0087] <Other Implementation Methods>
[0088] This disclosure is not limited to the embodiments described above and in the accompanying drawings. For example, the features of the embodiments described above or later can be combined in any way without contradiction. Furthermore, any feature of the embodiments described above or later may be omitted unless explicitly stated as necessary. In addition, the above embodiments may also be modified as follows.
[0089] In the above embodiments, an example was described where the information processing device 40 obtains all the information required to determine the priority from the server 30. In contrast, if some or all of the information required to determine the priority is managed by the source code management system 10, the information processing device 40 may also obtain some or all of the information required to determine the priority directly from the source code management system 10 or via the execution system 20.
[0090] In the above embodiments, the work order information management department 31 and the level information management department 32 are located on the same server, but they can also be located on different servers.
[0091] The level information in the third embodiment can also be generated or updated as described in the second embodiment.
[0092] The level information that is pre-stored as in the first embodiment can also be updated as in the second embodiment.
[0093] The embodiments disclosed herein are illustrative and not restrictive in all respects. The scope of the invention is not limited to the embodiments disclosed herein, but is defined by the claims and is intended to include all modifications equivalent to and within the scope of the claims.
[0094] Label Explanation
[0095] 1…Program Development Support System
[0096] 10…Source Code Management System
[0097] 20…Execution System
[0098] 21… Storage Department
[0099] 21A… queue
[0100] 22…Execution Department
[0101] 30… servers
[0102] 31…Work Order Information Management Department
[0103] 32… Level Information Management Department
[0104] 40…Information processing device
[0105] 41…Priority Decision Department
[0106] 42…Generation Department
[0107] 43…Update Department
[0108] 50… nodes
[0109] 60… Hardware
[0110] 201… Program Development Support System
[0111] 240…Information Processing Device
Claims
1. A program development support system, comprising: Storage department, storage job, the job being used to test source code that has been submitted to the source code management system; The execution unit executes the job stored in the storage unit; The Level Information Management Department manages level information, which represents the skill level of each developer of the source code; and The priority determination unit determines the priority of the job stored in the storage unit based on the level information managed by the level information management unit. The execution unit prioritizes the operations with the highest priority determined by the priority determination unit.
2. The program development support system according to claim 1, wherein, The priority determination unit determines the priority in a manner that the lower the skill level of the developer, the higher the priority of the task.
3. The program development support system according to claim 1 or 2, wherein, The program development support system includes a generation unit, which generates the level information based on the result of the job executed by the execution unit.
4. The program development support system according to claim 1 or 2, wherein, The level information management department includes an update department, which updates the level information based on the result of the operation performed by the execution department.
5. The program development support system according to claim 1 or 2, wherein, The Level Information Management Department manages the level information representing the skill level of each developer in each technical field. The priority determination unit determines the priority of the job based on the technical field corresponding to the source code and the level information.
6. The program development support system according to claim 5, wherein, The technical fields defined by the level information include multiple technical fields that can overlap with the submitted source code. The priority determination unit determines the priority of the job corresponding to the source code that overlaps with multiple technical fields based on the technical fields and the level information corresponding to the source code.
7. The program development support system according to claim 5, wherein, For the job corresponding to the source code that overlaps with multiple technical fields, the priority determination unit determines the priority corresponding to each technical field based on the skill level of each technical field corresponding to the source code, and uses the average value of the priorities corresponding to each technical field to determine the priority.
8. The program development support system according to claim 1 or 2, wherein, The priority determination unit determines the priority based on the level information and the deadline of the source code.
9. A method for supporting program development, comprising the following steps: The storage is performed in a storage unit that stores jobs used to test source code that has been submitted to a source code management device. Execute the job stored in the storage unit; as well as The level information management department, which utilizes management level information, determines the priority of the jobs stored in the storage unit based on the level information managed by the level information management department. The level information represents the skill level of each developer of the source code. The jobs with the highest priority, as determined by the priority determination department, are executed first.
10. An information processing apparatus, included in a program development support system, the program development support system comprising: a storage unit storing jobs for testing source code submitted to a source code management device; an execution unit executing the jobs stored in the storage unit in descending order of priority; and a level information management unit managing level information, the level information representing the skill level of each developer of the source code, wherein... The information processing device includes a priority determination unit, which determines the priority of the job stored in the storage unit based on the level information managed by the level information management unit.
11. A program for causing a computer of an information processing device included in a program development support system to perform processing, the program development support system comprising: a storage unit storing jobs for testing source code submitted to a source code management device; an execution unit executing the jobs stored in the storage unit in descending order of priority; and a level information management unit managing level information, the level information representing the skill level of each developer of the source code. The process involves determining the priority of the job stored in the storage unit based on the level information managed by the level information management unit.