WO2025121180A1 - プログラム開発支援システム、プログラム開発支援方法、情報処理装置、及びプログラム - Google Patents
プログラム開発支援システム、プログラム開発支援方法、情報処理装置、及びプログラム Download PDFInfo
- Publication number
- WO2025121180A1 WO2025121180A1 PCT/JP2024/041588 JP2024041588W WO2025121180A1 WO 2025121180 A1 WO2025121180 A1 WO 2025121180A1 JP 2024041588 W JP2024041588 W JP 2024041588W WO 2025121180 A1 WO2025121180 A1 WO 2025121180A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- priority
- source code
- job
- jobs
- storage unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
Definitions
- This disclosure relates to a program development support system, a program development support method, an information processing device, and a program.
- 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 that performs automatic execution processing in a predetermined order.
- This automatic execution processing server changes the order of execution target information in the automatic execution queue based on attribute information of the ticket (specifically, priority attribute, due date attribute, or critical path attribute).
- This automatic execution processing server performs automatic execution processing based on the changed order.
- the purpose of this disclosure is to provide technology that makes it easier for each development team to execute their jobs fairly.
- the program development support system of the present disclosure includes: a storage unit for storing 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 a priority of the job stored in the storage unit based on a past execution time of the job calculated for each development team of the source code, The execution unit executes the job with higher priority as determined by the priority determination unit.
- the program development support method includes: storing in a storage unit a job for testing source code committed to the source code management system; executing the job stored in the storage unit; determining, by a priority determination unit, a 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; The job having the higher priority determined by the priority determination unit is executed with priority.
- the information processing device of the present disclosure includes: An information processing device included in a program development support system, the information processing device comprising: a storage unit that stores jobs 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 device comprising:
- the job management system 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.
- the program of the present disclosure is A computer of an information processing device included in a program development support system, the computer comprising: a storage unit for storing jobs for testing source code committed to a source code management system; and an execution unit for executing the jobs stored in the storage unit in descending order of priority; and determining 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.
- FIG. 1 is a configuration diagram that shows an outline of a program development support system according to the first embodiment.
- FIG. 2 is an explanatory diagram showing an example of sorting jobs in the storage unit of the first embodiment.
- FIG. 3 is a sequence diagram of the program development support system according to the first embodiment.
- a storage unit for storing 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 a priority of the job stored in the storage unit based on a past execution time of the job calculated for each development team of the source code, The execution unit executes the job having the higher priority determined by the priority determination unit with priority given to the job.
- the program development support system determines the priority of jobs based on the execution time of each development team for jobs executed in the past, and executes jobs with higher priority first. Therefore, the program development support system takes into account the execution time of each development team for jobs executed in the past, making it easier to execute jobs for each development team fairly.
- the above program development support system can execute jobs of each development team more fairly by increasing the priority of the jobs of development teams with shorter job execution times.
- the above program development support system determines job priorities by taking into account not only the execution time of each development team's job but also the number of people in the development team, allowing jobs for each development team to be executed more fairly.
- the above program development support system can determine job priorities by taking into account not only the execution time of jobs for each development team, but also the source code deadlines.
- FIG. 1 shows the program development support system 1.
- the program development support system 1 is shared by multiple development teams. Each development team is made up of one or more developers.
- 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.
- the source code management system 10 functions as a repository that manages source code, version information, etc.
- the source code created by developers is committed to the source code management system 10.
- the execution system 20 functions as a CI/CD tool that continuously tests source code committed to the source code management system 10.
- CI stands for Continuous Integration.
- 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 that test source code committed to the source code management system 10. Jobs include not only tests but also builds and deploys.
- the execution unit 22 executes the jobs stored in the storage unit 21.
- the execution unit 22 controls the hardware 60 via the node 50 (e.g., a personal computer). This allows testing to be performed using the hardware 60.
- Multiple types of hardware 60 may be provided.
- the hardware 60 is, for example, a board or a measuring jig.
- the server 30 comprises a ticket information management unit 31 and an execution information management unit 32.
- the ticket information management unit 31 manages the contents of program creation, program correction, etc. as ticket information.
- the ticket information includes information such as the ticket identification information (e.g., ticket number), ticket title, content description, developer, development team, and source code due date.
- the execution information management unit 32 manages execution information based on the results of job execution by the execution unit 22.
- the execution information includes the job execution time for each development team.
- the execution information management unit 32 creates and updates execution information indicating the job execution time for each development team based on the job execution results sent from the execution system 20.
- the information processing device 40 includes a priority determination unit 41.
- the priority determination unit 41 determines the priority of jobs stored in the storage unit 21 based on the execution time of jobs for each source code development team.
- the priority determination unit 41 may determine the priority so that the job of a development team with a shorter execution time in the judgment period has a higher priority.
- the judgment period is, for example, the most recent specified time (e.g., one hour).
- the priority may be, for example, the reciprocal of the ratio of each execution time.
- the execution times of jobs of development teams A, B, and C are 1 minute, 2 minutes, and 58 minutes, respectively, in the most recent hour.
- the priorities of jobs of development teams A, B, and C are 60, 30, and 60/58, respectively.
- the priority determination unit 41 may determine priorities based on the execution time of jobs for each development team, the number of people in the development team, and the deadline for the source code.
- the priority determination unit 41 may determine the first provisional priority of jobs based on the execution time of jobs for each development team.
- the priority determination unit 41 may determine the first provisional priority such that the job of a development team with a shorter execution time in the judgment period has a higher first provisional priority.
- the judgment period is, for example, the most recent specified time (for example, one hour).
- the first provisional priority may be, for example, the reciprocal of the ratio of each execution time.
- the execution times of jobs of development teams A, B, and C are 1 minute, 2 minutes, and 58 minutes, respectively, in the most recent hour.
- the first provisional priorities of jobs of development teams A, B, and C are 60, 30, and 60/58, respectively.
- the priority determination unit 41 may determine the second provisional priority of a job based on the number of members of a development team.
- the priority determination unit 41 may determine the second provisional priority such that the job of a development team with more members has a higher second provisional priority.
- the second provisional priority may be, for example, the same value as the number of members. For example, suppose that development teams A, B, and C have 1, 2, and 3 members, respectively. In this case, the second provisional priorities of jobs of development teams A, B, and C will be 1, 2, and 3, respectively.
- the priority determination unit 41 may determine the 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 job of source code with a shorter due date has a higher third provisional priority.
- the third provisional priority may be, for example, the reciprocal of the number of months remaining. For example, suppose that the due dates of the source code 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.
- the priority determination unit 41 may determine the priority based on the first tentative priority, the second tentative priority, and the third tentative priority. For example, the priority determination unit 41 may determine the priority as a value obtained by multiplying the first tentative priority by the second tentative priority and the third tentative priority.
- the storage unit 21 creates a job when it receives a commit notification from the source code management system 10.
- the storage unit 21 arranges the created jobs in order of priority and stores them in the queue 21A (see FIG. 2).
- jobs 1, 2, and 3 of development team C are stored in the queue 21A.
- Job 1 of development team C is currently being executed. Jobs waiting to be executed are arranged in the order of execution after job 1 that is currently being executed.
- jobs 1 and 2 of development team A and jobs 1 and 2 of development team B are created. In this case, jobs with higher priority are given priority, except for jobs that are currently being executed.
- the jobs are arranged in the order shown on the right side of FIG. 2.
- 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 that order.
- the execution unit 22 described above executes jobs stored in the storage unit 21 in the order in which they are arranged in the queue 21A. As a result, the execution unit 22 gives priority to executing jobs with high priorities determined by the priority determination unit 41.
- the program development support system 1 performs the processing shown in FIG. 3.
- a developer creates source code corresponding to a ticket managed by the ticket information management unit 31.
- the developer commits the created source code to the source code management system 10.
- identification information of the ticket corresponding to the source code e.g., ticket number
- the source code management system 10 transmits a commit notification to the execution system 20 at T11.
- the execution system 20 receives the commit notification, it acquires commit information from the source code management system 10.
- the commit information includes identification information of the source code (e.g., file name), test cases, ticket identification information, and the like.
- the execution system 20 After acquiring the commit information, the execution system 20 transmits the ticket identification information (e.g., ticket number) included in the commit information to the information processing device 40 at T12.
- the information processing device 40 receives the ticket identification information, it requests information corresponding to the ticket identification information from the server 30 at T13.
- the information processing device 40 requests information required to determine priority from the server 30.
- the information required to determine priority includes execution information indicating the execution time of jobs for each development team, the number of people in the development team, and the due date of the source code.
- the server 30 transmits information corresponding to the request to the information processing device 40 at T14.
- the information processing device 40 When the information processing device 40 acquires the information necessary to determine the priority, at T15, it determines the priority based on the acquired information. The specific determination method is as described above. At T16, the information processing device 40 transmits the determined priority to the execution system 20.
- the execution system 20 When the execution system 20 receives the priority, it creates a job at T17. Then, the execution system 20 sorts the jobs based on the received priority at T18. At T19, the execution system 20 executes the sorted jobs in order. After executing 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.
- the program development support system 1 determines the priority of jobs based on the execution time of each development team for jobs executed in the past, and executes jobs with higher priority. Therefore, the program development support system 1 takes into account the execution time of each development team for jobs executed in the past, making it easier to execute jobs of each development team fairly.
- the program development support system 1 can determine the priority of jobs by taking into account the execution time of each development team, the number of members of the development team, and the deadline for the source code. By determining the priority of jobs by taking into account not only the execution time of each development team but also the number of members of the development team, the program development support system 1 can execute jobs for each development team more fairly.
- the program development support system 1 can determine the priority so that the job of a development team that has a shorter execution time in the evaluation period has a higher priority. By increasing the priority of jobs of development teams that have a shorter execution time, the program development support system 1 can execute jobs of each development team more fairly.
- the program development support system 1 can determine priorities such that the jobs of development teams with more members have a higher priority. By increasing the priority of jobs of development teams with more members, the program development support system 1 can execute the jobs of each development team more fairly.
- the program development support system 1 can determine priorities such that jobs of source code with shorter deadlines have a higher priority. By increasing the priority of jobs corresponding to source code with shorter deadlines, the program development support system 1 can make it easier to complete jobs by their deadlines.
- the information processing device 40 determines the priority based on the execution time of jobs for each development team, the number of members of the development team, and the due date of the source code.
- the information processing device 40 may determine the priority based only on the execution time of jobs for each development team and the number of members of the development team.
- the information processing device 40 may determine the priority based only on the execution time of jobs for each development team and the due date of the source code.
- the information processing device 40 acquires all of the information for determining the priority from the server 30.
- the information processing device 40 may acquire some or all of the information for determining the priority from the source code management system 10 directly or via the execution system 20.
- the information processing device 40 may determine the priority by using a table.
- the ticket information management unit 31 and the execution information management unit 32 are configured to be provided on the same server, but they may be configured to be provided on separate servers.
- Reference Signs List 1 For program development support system 10
- source code management system 20 For execution system 21
- storage unit 21A For storage unit 21A
- queue 22 For execution unit 30
- server 31 for ticket information management unit 32
- execution information management unit 40
- information processing device 41 For priority determination unit 50
- node 60 For hardware
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2023-204384 | 2023-12-04 | ||
| JP2023204384A JP2025089642A (ja) | 2023-12-04 | 2023-12-04 | プログラム開発支援システム、プログラム開発支援方法、情報処理装置、及びプログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025121180A1 true WO2025121180A1 (ja) | 2025-06-12 |
Family
ID=95979878
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2024/041588 Pending WO2025121180A1 (ja) | 2023-12-04 | 2024-11-25 | プログラム開発支援システム、プログラム開発支援方法、情報処理装置、及びプログラム |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP2025089642A (https=) |
| WO (1) | WO2025121180A1 (https=) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2019191685A (ja) * | 2018-04-19 | 2019-10-31 | 東芝情報システム株式会社 | ソフトウェアのテスト方法、システム、プログラムおよびファイル生成方法 |
| JP2022092445A (ja) * | 2020-12-10 | 2022-06-22 | 株式会社Shift | プログラム、方法、情報処理装置、及びシステム |
-
2023
- 2023-12-04 JP JP2023204384A patent/JP2025089642A/ja active Pending
-
2024
- 2024-11-25 WO PCT/JP2024/041588 patent/WO2025121180A1/ja active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2019191685A (ja) * | 2018-04-19 | 2019-10-31 | 東芝情報システム株式会社 | ソフトウェアのテスト方法、システム、プログラムおよびファイル生成方法 |
| JP2022092445A (ja) * | 2020-12-10 | 2022-06-22 | 株式会社Shift | プログラム、方法、情報処理装置、及びシステム |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2025089642A (ja) | 2025-06-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9703692B2 (en) | Development supporting system | |
| Zanjani et al. | Automatically recommending peer reviewers in modern code review | |
| US10417586B2 (en) | Attaching ownership to data | |
| US8214877B1 (en) | System and method for the implementation of policies | |
| US20130066961A1 (en) | Automated crowdsourcing task generation | |
| US9483261B2 (en) | Software documentation generation with automated sample inclusion | |
| US20130036413A1 (en) | Methods and apparatus for bug-fix notifications | |
| US20210089297A1 (en) | Automated check for ticket status of merged code | |
| US20170178056A1 (en) | Flexible business task flow | |
| US7769821B2 (en) | Systems and methods for enhanced meassage support using a generic client proxy | |
| US20100121668A1 (en) | Automated compliance checking for process instance migration | |
| US20170161149A1 (en) | Backup management of software environments in a distributed network environment | |
| US20030005093A1 (en) | Server configuration versioning tool | |
| WO2014088864A2 (en) | Selective automated transformation of tasks in crowdsourcing systems | |
| CN108959086B (zh) | 程序包测试部署方法、装置、系统、电子设备及存储介质 | |
| Bernabé et al. | Faat: Freelance as a team | |
| GB2614012A (en) | Tag-driven scheduling of computing resources for function execution | |
| Hall | Adaptive Code via C#: Agile coding with design patterns and SOLID principles | |
| US20090299726A1 (en) | Method and System For Localizing A Software Product | |
| WO2025121180A1 (ja) | プログラム開発支援システム、プログラム開発支援方法、情報処理装置、及びプログラム | |
| TW201913374A (zh) | 微服務軟體開發基礎架構下自動化持續整合系統及其方法 | |
| US20100153977A1 (en) | Creating Step Descriptions for Application Program Interfaces | |
| WO2025121181A1 (ja) | プログラム開発支援システム、プログラム開発支援方法、情報処理装置、及びプログラム | |
| Deepak et al. | Continuous Integration-Continuous Security-Continuous Deployment Pipeline Automation for Application Software (CI-CS-CD) | |
| JP2008226122A (ja) | レポジトリサーバ管理システム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 24898959 Country of ref document: EP Kind code of ref document: A1 |