Program development support system, program development support method, information processing apparatus, and program
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-12-04
- Publication Date
- 2026-04-02
AI Technical Summary
When sharing an environment for executing jobs among multiple development teams, there is a concern that jobs of other development teams may become difficult to execute due to some teams committing a large amount of source code.
A program development support system that includes a storage unit for storing jobs, an execution unit for executing the jobs, and a priority determination unit that determines the priority of jobs based on their past execution time for each development team, ensuring that jobs with higher priority are executed first.
This solution allows for fair and efficient execution of jobs across development teams by prioritizing jobs based on past execution times, ensuring that no team is disproportionately affected by the actions of others.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to a program development support system, a program development support method, an information processing apparatus, and a program.
Background Art
[0002] Patent Document 1 discloses a program development support system. This system has an automatic execution processing server. This automatic execution processing server stores execution target information corresponding to source code for performing automatic execution processing in a predetermined order. This automatic execution processing server changes the order of the execution target information in the automatic execution queue based on the attribute information of the ticket (specifically, the priority attribute, the due date attribute, or the critical path attribute). This automatic execution processing server performs automatic execution processing based on the changed order.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] When sharing an environment for executing such jobs among a plurality of development teams, there is a concern that the jobs of other development teams may become difficult to execute due to some development teams committing a large amount of source code.
[0005] An object of the present disclosure is to provide a technology that easily and fairly executes the jobs of each development team.
Means for Solving the Problems
[0006] The program development support system of the present disclosure a storage unit that stores jobs for testing source code committed to a source code management system An execution unit that executes the job stored in the storage unit; A priority determination unit that determines the priority of the job stored in the storage unit based on the past execution time of the job calculated for each development team of the source code; and The execution unit preferentially executes the job with the higher priority determined by the priority determination unit.
[0007] The program development support method of the present disclosure includes: A step of storing, in a storage unit, a job for testing source code committed to a source code management system; A step of executing the job stored in the storage unit; A step of determining, by a priority determination unit, the priority of the job stored in the storage unit based on the past execution time of the job calculated for each development team of the source code; and Preferentially executing the job with the higher priority determined by the priority determination unit.
[0008] The information processing apparatus of the present disclosure is An information processing apparatus included in a program development support system including a storage unit that stores a job for testing source code committed to a source code management system, and an execution unit that executes the job stored in the storage unit in descending order of priority, The information processing apparatus includes a priority determination unit that determines the priority of the job stored in the storage unit based on the past execution time of the job calculated for each development team of the source code.
[0009] The program of the present disclosure causes a computer of an information processing apparatus included in a program development support system including a storage unit that stores a job for testing source code committed to a source code management system, and an execution unit that executes the job stored in the storage unit in descending order of priority, to perform the steps of the program development support method. Causing to execute determining the priority of the job to be stored in the storage unit based on the past execution time of the job calculated for each development team of the source code.
Effect of the Invention
[0010] According to the technology of the present disclosure, it is easy to execute the jobs of each development team fairly.
Brief Description of the Drawings
[0011]
Figure 1
Figure 2
Figure 3
Mode for Carrying Out the Invention
[0012] [Description of Embodiments of the Present Disclosure] First, embodiments of the present disclosure will be listed and described.
[0013] 〔1〕A storage unit that stores jobs for testing source code committed to a source code management system, An execution unit that executes the jobs stored in the storage unit, A priority determination unit that determines the priority of the jobs to be stored in the storage unit based on the past execution time of the jobs calculated for each development team of the source code, and The execution unit preferentially executes the jobs with the higher priority determined by the priority determination unit A program development support system.
[0014] The above program development support system determines the priority of a job based on the execution time of each development team for jobs executed in the past, and preferentially executes jobs with a higher priority. Therefore, the above program development support system can more fairly execute the jobs of each development team by taking into account the execution time of each development team for jobs executed in the past.
[0015] 〔2〕The priority determination unit determines the priority so that the higher the priority of the job of the development team with a shorter execution time during the determination period. The program development support system according to 〔1〕.
[0016] The above program development support system can execute the jobs of each development team more fairly by increasing the priority of the jobs of the development team with a shorter job execution time.
[0017] 〔3〕The priority determination unit determines the priority based on the execution time for each development team and the number of members in the development team. The program development support system according to 〔1〕 or 〔2〕.
[0018] The above program development support system can execute the jobs of each development team more fairly by determining the priority of the job taking into account not only the execution time of the job for each development team but also the number of members in the development team.
[0019] 〔4〕The priority determination unit determines the priority based on the execution time for each development team and the due date of the source code. The program development support system according to any one of 〔1〕 to 〔3〕.
[0020] The above program development support system can determine the priority of the job taking into account not only the execution time of the job for each development team but also the due date of the source code.
[0021] [Details of the Embodiment of the Present Disclosure] <First Embodiment> 1. Configuration of Program Development Support System 1 FIG. 1 shows a program development support system 1. The program development support system 1 is shared by a plurality of development teams. Each development team is composed of one or more developers.
[0022] 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, a node 50, and hardware 60. The source code management system 10, the execution system 20, the server 30, the information processing device 40, and the node 50 can communicate with each other via a network such as the Internet.
[0023] The source code management system 10 functions as a repository for managing source code, version information, and the like. Source code created by developers is committed to the source code management system 10.
[0024] The execution system 20 functions as a CI / CD tool that continuously tests the source code committed to the source code management system 10. CI is Continuous Integration. CD is 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 committed 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 a job, the execution unit 22 controls the hardware 60 via the node 50 (for example, a personal computer). Thereby, testing using the hardware 60 is realized. A plurality of types of hardware 60 may be provided. The hardware 60 is, for example, a substrate or a measuring jig.
[0025] The server 30 includes a ticket information management unit 31 and an execution information management unit 32. The ticket information management unit 31 manages, as ticket information, the content of program creation, the content of program modification, etc. The ticket information includes information such as the identification information of the ticket (e.g., ticket number), the title of the ticket, the content description, the developer, the development team, and the due date of the source code. The execution information management unit 32 manages execution information based on the execution results of jobs by the execution unit 22. The execution information includes the execution time of jobs for each development team. The execution information management unit 32 creates and updates execution information indicating the execution time of jobs for each development team based on the execution results of jobs transmitted from the execution system 20.
[0026] The information processing apparatus 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 execution time of jobs for each development team of the source code.
[0027] The priority determination unit 41 may determine the priority such that the jobs of the development team with a shorter execution time of jobs during the determination period have a higher priority. The determination period is, for example, the most recent predetermined time (e.g., 1 hour). The priority may be, for example, the reciprocal of the ratio of each execution time. Suppose the execution times of the jobs of development teams A, B, and C are 1 minute, 2 minutes, and 58 minutes, respectively, in the most recent 1 hour. In this case, the priorities of the jobs of development teams A, B, and C are 60, 30, and 60 / 58, respectively.
[0028] The priority determination unit 41 may also determine the priority based on the execution time of jobs for each development team, the number of members in the development team, and the due date of the source code.
[0029] The priority determination unit 41 may determine a first provisional priority of a job based on the execution time of the job for each development team. The priority determination unit 41 may determine the first provisional priority such that the jobs of the development team with a shorter execution time of the job during the determination period have a higher first provisional priority. The determination period is, for example, the most recent predetermined time (e.g., 1 hour). The first provisional priority may be, for example, the reciprocal of the ratio of each execution time. For example, if the execution times of the jobs of development teams A, B, and C are 1 minute, 2 minutes, and 58 minutes, respectively, in the most recent 1 hour. In this case, the first provisional priorities of the jobs of development teams A, B, and C are 60, 30, and 60 / 58, respectively.
[0030] The priority determination unit 41 may determine a second provisional priority of a job based on the number of members in the development team. The priority determination unit 41 may determine the second provisional priority such that the jobs of the development team with a larger number of members have a higher second provisional priority. The second provisional priority may be, for example, the same value as the number of members. For example, if the number of members in development teams A, B, and C are 1 person, 2 persons, and 3 persons, respectively. In this case, the second provisional priorities of the jobs of development teams A, B, and C are 1, 2, and 3, respectively.
[0031] The priority determination unit 41 may determine a third provisional priority of a job based on the due date of the source code. The priority determination unit 41 may determine the third provisional priority such that the jobs of the source code with a shorter due date have a higher third provisional priority. The third provisional priority may be, for example, the reciprocal of the remaining number of months. For example, if the due dates of the source codes created by development teams A, B, and C are 3 months, 2 months, and 1 month, respectively. In this case, the third provisional priorities of the jobs of development teams A, B, and C are 1 / 3, 2 / 3, and 1, respectively.
[0032] The priority determination unit 41 may determine the priority based on the first provisional priority, the second provisional priority, and the third provisional priority. For example, the priority determination unit 41 may determine, as the priority, the value obtained by multiplying the first provisional priority by the second provisional priority and the third provisional priority. In the example described above, the priorities of the jobs of development teams A, B, and C are 20 (= 60 × 1 × (1 / 3)), 40 (= 30 × 2 × (2 / 3)), and 180 / 58 (= 60 × 3 × 1 / 58), respectively. That is, the priorities of the jobs increase in the order of development teams B, A, and C.
[0033] When the storage unit 21 described above receives a commit notification from the source code management system 10, it creates a job. The storage unit 21 arranges the created jobs in descending order of priority and stores them in the queue 21A (see FIG. 2). For example, in the example of FIG. 2, as shown in the left part, jobs 1, 2, and 3 of development team C are stored in the queue 21A. Job 1 of development team C is being executed. The jobs waiting to be executed are arranged in the order in which they will be executed after the executing job 1. In this situation, it is assumed that jobs 1 and 2 of development team A and jobs 1 and 2 of development team B are created. In this case, excluding the executing job, the job with the higher priority is prioritized. Therefore, when the priorities are high in the order of development teams B, A, and C, the jobs are arranged in the order shown in the right part of FIG. 2. That is, after job 1 of development team C that is being executed, jobs 1 and 2 of development team B, jobs 1 and 2 of development team A, and jobs 1 and 2 of development team C are arranged in order.
[0034] The execution unit 22 described above executes the jobs stored in the storage unit 21 in the order in which they are arranged in the queue 21A. Thereby, the execution unit 22 preferentially executes the job with the higher priority determined by the priority determination unit 41.
[0035] 2. Processing Flow of the Program Development Support System 1 The program development support system 1 performs the processes shown in FIG. 3. The developer creates source code corresponding to the ticket managed by the ticket information management unit 31. In T10 of FIG. 3, the created source code is committed by the developer to the source code management system 10. To the source code management system 10, together with the source code, the identification information (e.g., ticket number) of the ticket corresponding to the source code is also committed. When the source code is committed, the source code management system 10 sends a commit notification to the execution system 20 at T11. When receiving the commit notification, the execution system 20 acquires commit information from the source code management system 10. The commit information includes the identification information of the source code (e.g., file name), test cases, the identification information of the ticket, and the like.
[0036] After acquiring the commit information, the execution system 20 sends, at T12, the identification information (e.g., ticket number) of the ticket included in the commit information to the information processing device 40. When receiving the identification information of the ticket, the information processing device 40 requests, at T13, the server 30 for information corresponding to the identification information of the ticket. Specifically, the information processing device 40 requests the server 30 for the information necessary to determine the priority. The information necessary to determine the priority is the execution information indicating the execution time of the job for each development team, the number of members in the development team, the due date of the source code, and the like. The server 30 sends, at T14, the information corresponding to the request to the information processing device 40.
[0037] When acquiring the information necessary to determine the priority, the information processing device 40 determines, at T15, the priority based on the acquired information. The specific determination method is as described above. The information processing device 40 sends, at T16, the determined priority to the execution system 20.
[0038] When the execution system 20 receives a priority, it creates a job at T17. Then, based on the received priority, the execution system 20 sorts the jobs at T18. The execution system 20 executes the sorted jobs in order at T19. After the execution of the job, the execution system 20 transmits the execution time of the executed job to the server 30 at T20. When the server 30 receives the execution time of the job, it updates the execution information at T21.
[0039] 3. Examples of the Actions and Effects of the Program Development Support System 1 The program development support system 1 determines the priority of a job based on the execution time of jobs executed in the past for each development team, and preferentially executes jobs with a higher priority. Therefore, the program development support system 1 can easily execute the jobs of each development team fairly, taking into account the execution time of jobs executed in the past for each development team.
[0040] The program development support system 1 can determine the priority of a job by taking into account the execution time of the job for each development team, the number of members in the development team, and the due date of the source code. By determining the priority of a job by taking into account not only the execution time of the job for each development team but also the number of members in the development team, the program development support system 1 can execute the jobs of each development team more fairly.
[0041] The program development support system 1 can determine the priority so that jobs of development teams with a shorter execution time of jobs during the judgment period have a higher priority. By increasing the priority of jobs of development teams with a shorter execution time of jobs, the program development support system 1 can execute the jobs of each development team more fairly.
[0042] The program development support system 1 can determine the priority so that jobs of development teams with a larger number of members have a higher priority. By increasing the priority of jobs of development teams with a larger number of members, the program development support system 1 can execute the jobs of each development team more fairly.
[0043] The program development support system 1 can determine priorities such that jobs with shorter due dates for source code have higher priorities. By increasing the priority of jobs corresponding to source code with short due dates, the program development support system 1 can make it easier to complete the jobs by the due date.
[0044] <Other Embodiments> This disclosure is not limited to the embodiments described by the above description and drawings. For example, the features of the above-described or below-described embodiments can be combined in any combination without contradiction. Also, any feature of the above-described or below-described embodiments can be omitted if it is not explicitly specified as essential. Furthermore, the above-described embodiments may be modified as follows.
[0045] In the first embodiment described above, an example was described in which the information processing apparatus 40 determines priorities based on the execution time of jobs for each development team, the number of members in the development team, and the due date of the source code. In contrast, the information processing apparatus 40 may determine priorities based only on the execution time of jobs for each development team and the number of members in the development team. Also, the information processing apparatus 40 may determine priorities based only on the execution time of jobs for each development team and the due date of the source code.
[0046] In each of the above embodiments, an example was described in which the information processing apparatus 40 obtains all of the information for determining priorities from the server 30. In contrast, when part or all of the information for determining priorities is managed by the source code management system 10, the information processing apparatus 40 may obtain part or all of the information for determining priorities directly from the source code management system 10 or via the execution system 20.
[0047] In the first embodiment described above, an example was described in which the information processing apparatus 40 calculates priorities by arithmetic operations. In contrast, the information processing apparatus 40 may determine priorities using a table.
[0048] In the above-described first embodiment, the ticket information management unit 31 and the execution information management unit 32 are configured to be provided in the same server, but they may be provided in separate servers.
[0049] The embodiments disclosed this time should be considered as illustrative in all respects and not restrictive. The scope of the present invention is not limited to the embodiments disclosed this time, but is indicated by the claims, and is intended to include all modifications within the meaning and scope equivalent to the claims.
Explanation of Reference Numerals
[0050] 1…Program Development Support System 10…Source Code Management System 20…Execution System 21…Storage Unit 21A…Queue 22…Execution Unit 30…Server 31…Ticket Information Management Unit 32…Execution Information Management Unit 40…Information Processing Apparatus 41…Priority Determination Unit 50…Node 60…Hardware
Claims
1. A storage unit that stores a job for testing source code committed to a source code management system; An execution unit that executes the job stored in the storage unit; A priority determination unit that determines the priority of the job stored in the storage unit based on the past execution time of the job calculated for each development team of the source code; and The execution unit preferentially executes the job with the higher priority determined by the priority determination unit A program development support system.
2. The priority determination unit determines the priority such that the job of the development team with a shorter execution time during the determination period has a higher priority. The program development support system according to claim 1.
3. The priority determination unit determines the priority based on the execution time for each development team and the number of members in the development team. The program development support system according to claim 1 or claim 2.
4. The priority determination unit determines the priority based on the execution time for each development team and the due date of the source code. The program development support system according to claim 1 or claim 2.
5. A step of storing a job for testing source code committed to a source code management system in a storage unit; A step of executing the job stored in the storage unit; A step of determining, by a priority determination unit, the priority of the job stored in the storage unit based on the past execution time of the job calculated for each development team of the source code; and Preferentially executing the job with the higher priority determined by the priority determination unit A program development support method.
6. An information processing apparatus included in a program development support system, comprising: a storage unit that stores a job for testing source code committed to a source code management system; and an execution unit that executes the jobs stored in the storage unit in descending order of priority. The information processing apparatus further includes a priority determination unit that determines the priority of the job stored in the storage unit based on the past execution time of the job calculated for each development team of the source code. Information processing apparatus.
7. A computer of an information processing apparatus included in a program development support system, the computer comprising: a storage unit that stores a job for testing source code committed to a source code management system; and an execution unit that executes the jobs stored in the storage unit in descending order of priority. causing the computer to determine the priority of the job stored in the storage unit based on the past execution time of the job calculated for each development team of the source code. Program.