WO2025121180A1 - プログラム開発支援システム、プログラム開発支援方法、情報処理装置、及びプログラム - Google Patents

プログラム開発支援システム、プログラム開発支援方法、情報処理装置、及びプログラム Download PDF

Info

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
Application number
PCT/JP2024/041588
Other languages
English (en)
French (fr)
Japanese (ja)
Inventor
忠浩 高沢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sumitomo Wiring Systems Ltd
AutoNetworks Technologies Ltd
Sumitomo Electric Industries Ltd
Original Assignee
Sumitomo Wiring Systems Ltd
AutoNetworks Technologies Ltd
Sumitomo Electric Industries Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sumitomo Wiring Systems Ltd, AutoNetworks Technologies Ltd, Sumitomo Electric Industries Ltd filed Critical Sumitomo Wiring Systems Ltd
Publication of WO2025121180A1 publication Critical patent/WO2025121180A1/ja
Pending legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention 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)
PCT/JP2024/041588 2023-12-04 2024-11-25 プログラム開発支援システム、プログラム開発支援方法、情報処理装置、及びプログラム Pending WO2025121180A1 (ja)

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)

* Cited by examiner, † Cited by third party
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 プログラム、方法、情報処理装置、及びシステム

Patent Citations (2)

* Cited by examiner, † Cited by third party
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