Development environment construction device and development environment construction method

The development environment construction device addresses the issue of inconsistent tool requirements across processes by optimizing resource allocation and tool selection, ensuring balanced specifications for software development environments.

WO2026062766A1PCT designated stage Publication Date: 2026-03-26ASTEMO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-09-18
Publication Date
2026-03-26

AI Technical Summary

Technical Problem

Existing software development environment construction systems fail to account for changing tool requirements across multiple development processes, leading to excessive or insufficient specifications.

Method used

A development environment construction device that includes a tool combination extraction unit, machine specification acquisition unit, machine type selection unit, and environment construction unit to determine optimal computer resources and tool combinations based on specific process needs, generating a script for constructing a balanced development environment.

Benefits of technology

This approach ensures that the development environment has appropriate specifications for multiple processes, reducing waste and inefficiency by optimizing resource allocation and tool selection.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2024033253_26032026_PF_FP_ABST
    Figure JP2024033253_26032026_PF_FP_ABST
Patent Text Reader

Abstract

This development environment construction device comprises: a tool combination extraction unit 110 that extracts, with regard to software tools selected from among a plurality of software tools, a software tool to be executed independently and a combination of software tools that may be executed in parallel; a machine specifications acquisition unit 120 that acquires, for the software tool to be executed independently and for the combination of software tools, requirements for partial computer resources necessary for execution, and acquires, from the partial computer resource requirements, overall computer resources required for the computer resources to be used in constructing a development environment; a machine type selection unit 130 that selects, from among a plurality of types of computers and on the basis of the requirements for overall computer resources, a computer of a type that can be used for constructing the development environment; and an environment construction unit 140 that generates a script describing a procedure for constructing an environment for operating a selected software tool on the selected computer.
Need to check novelty before this filing date? Find Prior Art

Description

Development Environment Construction Device and Development Environment Construction Method

[0001] The present invention relates to a development environment construction device for constructing a software development environment and a method for constructing a development environment.

[0002] In recent years, software development has been progressing using various software tools (hereinafter simply referred to as tools in this specification) that are realized as application programs operating on a computer in each step thereof. When constructing a development environment realized by such a computer system, computer resources suitable for the operation of the tools are required, but know-how is needed to select a computer having specifications suitable for the tools, and as the scale of the software to be developed increases, the man-hours therefor also become enormous.

[0003] As a technology related to the construction of such a software development environment, for example, the technology disclosed in Patent Document 1 is known. Patent Document 1 describes a development environment construction system that determines a construction destination of a development environment based on the specifications of the development environment, information on virtual devices, and information on the construction ability of the development environment at candidate construction destinations of the development environment when constructing a development environment including virtually configured virtual devices.

[0004] Japanese Patent Application Laid-Open No. 2023-145128

[0005] When developing software, a plurality of processes may be performed using the same development environment. For example, when considering the testing of developed software, it is more efficient to perform processes such as preprocessing of data used for testing, testing of developed software by simulation, etc., and postprocessing of test results using the same environment. In such a case, the specifications required for the development environment also change depending on the process, such as when the tools used for each process are different.

[0006] The development environment construction system described in Patent Document 1 does not consider such cases where requirements such as the tools used change depending on the process, and does not disclose how to construct a development environment that is used across a plurality of processes.

[0007] In view of the circumstances described above, the object of the present invention is to construct an appropriate software development environment that avoids excessive or insufficient specifications, even in development environments used across multiple stages of software development.

[0008] In one preferred embodiment, the development environment construction device according to the present invention includes: a storage unit that holds tool information relating to a plurality of software tools used in a development environment and machine specification information relating to the specifications of each of a plurality of types of computers that can be used to construct a development environment; a tool combination extraction unit that extracts combinations of software tools that can be executed individually and software tools that may be executed in parallel for software tools selected from a plurality of software tools; a machine specification acquisition unit that acquires the requirements for partial computer resources necessary for execution for each of the software tools that can be executed individually and combinations of software tools, and acquires the requirements for overall computer resources required for computer resources used to construct a development environment from the requirements for partial computer resources; a machine type selection unit that selects a type of computer that can be used to construct a development environment based on the requirements for overall computer resources; and an environment construction unit that generates a script describing the procedure for constructing an environment for running the selected software tools on the computer selected by the machine type selection unit.

[0009] Furthermore, in one preferred embodiment, the development environment construction method according to the present invention extracts, based on tool information, software tools selected from a plurality of software tools that can be executed independently and combinations of software tools that may be executed in parallel; for each of the extracted independently executed software tools and combinations of software tools, it obtains the partial computing resource requirements necessary for execution; from the partial computing resource requirements, it obtains the overall computing resource requirements required for the computing resources used to construct the development environment; based on the overall computing resource requirements, it selects a type of computer that can be used to construct the development environment from a plurality of types of computers indicated by machine specification information; and generates a script that describes the procedure for constructing an environment for running the selected software tools on the selected computer.

[0010] According to the present invention, it is possible to provide a software development environment that suppresses the occurrence of excessive or insufficient specifications, even when used across multiple processes. Other novel features of the present invention and the technical problems that will be solved thereby will become apparent from the description and drawings herein.

[0011] This is a schematic block diagram showing the configuration of the development system. This is a schematic block diagram showing the logical configuration of the development environment construction device. This is a schematic diagram showing an example of the data structure of tool information. This is a schematic diagram showing an example of the data structure of machine type information. This is a flowchart showing the flow of the environment construction process performed by the development environment construction device. This is a schematic diagram showing an example of the screen configuration of the development environment tool selection screen. This is a schematic diagram showing an example of the display screen for the development environment machine selection results. This is a schematic block diagram showing the logical configuration of the development environment construction device in the second embodiment. This is a schematic diagram showing an example of the data structure of project information. This is a flowchart showing the flow of the environment construction process performed by the development environment construction device in the second embodiment. This is a schematic block diagram showing the logical configuration of the development environment construction device in the third embodiment. This is a schematic diagram showing an example of the data structure of project information in the third embodiment. This is a schematic diagram showing an example of the data structure of tool information in the third embodiment. This is a flowchart showing the flow of the environment construction process performed by the development environment construction device in the third embodiment. This is a schematic block diagram showing the logical configuration of the development environment construction device in the fourth embodiment. This is a schematic diagram showing an example of the data structure of on-premise environment information. This is a flowchart showing the flow of the backup environment construction process performed by the backup target selection unit and the backup construction unit. This is a schematic block diagram showing the logical configuration of the development environment construction device in the fifth embodiment. This is a schematic diagram showing an example of the data structure of usage information. This is a flowchart showing the flow of the development environment reconstruction process performed by the development environment construction device in the fifth embodiment.

[0012] Embodiments of the present invention will be described below with reference to the drawings. In each drawing, parts having the same or common configuration and / or function are denoted by the same reference numeral. The embodiments and drawings described below are illustrative examples for explaining the present invention, and it should be noted that omissions and simplifications have been made as appropriate for clarity of explanation. In the following description, unless particularly necessary, redundant explanations of parts having the same function and / or configuration will be omitted. This also applies to processes shown in flowcharts.

[0013] Figure 1 is a schematic block diagram showing the configuration of a development system to which the present invention is applied.

[0014] The development system in this embodiment consists of a development environment construction device 10, a user terminal 20, a local network (LAN) 30, a wide area network (WAN) 40, a cloud 50, a cloud management server 60, and a development environment 70.

[0015] The development environment setup device 10 is a device that sets up a development environment, such as various tools used in development work, and can use general-purpose computers such as personal computers (PCs) and servers. The user terminal 20 is operated by the user for software development work, and development work is performed using the development environment set up using the development environment setup device 10. As a user terminal, a computer such as a PC can be used. The LAN 30 is a local network that connects various terminals and devices installed within a company, and the development environment setup device 10 and the user terminal 20 are connected to it.

[0016] Cloud 50 is a system that provides various services to users and includes a computing system consisting of computers and storage, such as servers (not shown), used to provide services. The cloud management server 60 manages the computing resources of Cloud 50 and provides services to users. The development environment 70 is a development environment used from user terminals 20. The development environment 70 is provided, for example, using computing resources managed by the cloud management server 60 of Cloud 50, such as virtual machines (VMs) or containers, which are logical computers generated by the cloud management server 60 using the computing system.

[0017] LAN30 and Cloud50 are connected by WAN40. WAN40 is a network that enables wide-area communication and can utilize the internet or dedicated communication lines connecting locations.

[0018] In this embodiment, the development environment construction device 10 is connected to the WAN 40 and the cloud 50 via the LAN 30. The development environment construction device 10 and the user terminal 20 do not necessarily need to be connected to the same LAN and may be connected to different networks. Alternatively, the development environment construction device 10 may be located in the cloud 50 and configured to be operated from the user terminal 20. Furthermore, although this specification describes the case in which the development environment is built on a VM provided by the cloud 50 as an example, the development environment 70 may be built in the form of a container, or it may be built on a real computer without using virtualization technology. Moreover, it may be built using computing resources such as servers and PCs in an on-premises environment, not limited to computing resources provided by the cloud 50.

[0019] Figure 2 is a schematic block diagram showing the logical configuration of the development environment building device 10.

[0020] The development environment construction device 10 includes a tool information storage unit 100, a tool combination extraction unit 110, a machine specification acquisition unit 120, a machine type selection unit 130, an environment construction unit 140, and a machine type information storage unit 150.

[0021] The tool information storage unit 100 stores tool information 160 related to multiple tools used in development work. The machine type information storage unit 150 stores machine type information 170 related to candidate VMs capable of building a development environment.

[0022] The tool combination extraction unit 110 determines combinations of tools that may be executed simultaneously based on the tool information 160, and outputs tool combination information as a result. Note that simultaneous execution, as used here, includes not only the simultaneous and parallel execution of multiple tools by different processors or processor cores of the computer, but also the time-sharing parallel execution of multiple tools by the same processor or processor core.

[0023] The machine specification acquisition unit 120 receives the output of the tool combination extraction unit 110 and, based on the extracted tool combination results, acquires the computer specifications necessary to build the development environment from the computing resources required when simultaneously executing the extracted combination of tools.

[0024] The machine type selection unit 130 selects candidate VMs that can be used to build a development environment from among the VMs registered in the machine type information 170, based on the computer specifications obtained by the machine specification acquisition unit 120, and presents them to the user.

[0025] The environment construction unit 140 instructs the cloud management server 60 to generate a VM in order to build the development environment on the finally selected VM, and then installs the necessary tools on the generated VM to build the development environment.

[0026] The functions of the tool combination extraction unit 110, the machine specification acquisition unit 120, the machine type selection unit 130, and the environment construction unit can be realized by programs executed on a computer that serves as the development environment construction device 10. Specifically, the tool information storage unit 100 and the machine type information storage unit 150 are realized using storage connected to the computer that serves as the development environment construction device 10, or storage that can be accessed directly or indirectly from said computer.

[0027] Figure 3 is a schematic diagram showing an example of the data structure of the tool information 160. In this embodiment, the tool information for each tool is stored in a table format, but it does not necessarily have to be in a table format as long as the information about that tool can be retrieved for each tool; it may be stored in other formats, such as a list format. The same applies to the machine type information 170, which will be described later.

[0028] As shown in Figure 3, tool information 160 registers information about tools that may be used in development work. The tools are provided as application programs and are installed and used on the VM where the development environment created on Cloud 50 is built.

[0029] Tool Information 160 registers the tool name, tool type, system requirements, concurrent execution tools, and environment setup information for each tool. The tool name is information used to identify individual tools, and can be a name assigned by the tool vendor, etc. The tool type registers information indicating the type of tool it is. The system requirements register information indicating the specifications of the computer required to run the tool. The information registered in the system requirements includes the CPU clock (clock frequency) representing the operating speed required of the processor of the computer on which the VM is created, the amount of memory required to run the tool, and the amount of storage required for storing tool installation and development data. For concurrent execution tools, the names of tools that have dependencies that need to be run together when the tool is executed are registered as dependency information. The environment setup information registers information necessary for setting up the environment, such as the location of the tool installer and installation script.

[0030] Tool information 160 may include information about individual tools, as well as information about containers in which multiple software programs are packaged, or information on a VM basis. System requirements may include, in addition to the above information, information about read / write speeds to storage, network performance, or necessary peripherals and functions. The information registered in the system requirements can be determined based on past usage data and benchmark test results, or information provided by the tool vendor providing the tools can be used.

[0031] Figure 4 is a schematic diagram showing an example of the data structure of machine type information 170.

[0032] Machine type information 170 is, for example, a list of VMs provided by Cloud 50. For each type of VM provided, machine type information 170 includes the machine type name, CPU clock, memory capacity, machine cost, storage capacity, and additional storage cost.

[0033] The machine type name is information that indicates the type of VM being provided. The CPU clock is information that indicates the operating speed of the provided VM; for example, the clock frequency of the CPU on the server where the VM is generated is registered. The memory capacity and storage capacity indicate the memory and storage capacity allocated to the VM, respectively. The machine cost is information about the cost of using the VM, and here the hourly rate is registered. The additional storage cost is information about the cost required for additional storage capacity, and here the monthly fee per gigabyte (GB) is registered.

[0034] The machine type information 170 may also include other information about the VM available for building the development environment, such as the CPU allocated to the VM or the number of CPU cores.

[0035] Figure 5 is a flowchart showing the processing flow performed by the development environment construction device 10 in this embodiment.

[0036] When the user starts building the development environment, the development environment building device 10 acquires tool information 160 from the tool information storage unit 100 using the tool combination extraction unit 110 (step 500).

[0037] At this time, the tool combination extraction unit 110 generates a development environment tool selection screen based on the acquired tool information 160, displays it on a display device (not shown), and accepts the user's selection of tools to be used in the development environment being built.

[0038] Figure 6 is a schematic diagram showing an example of the screen configuration of the development environment tool selection screen.

[0039] The tool list 600 is a list of tools created based on the tool information 160. It includes a tool overview field that displays a description of the tool corresponding to the tool name to help the user understand what kind of tool it is, and a tool dependency field that shows the names of dependent tools if there are tools that need to be run before the tool can be executed. The user can select the tools to be incorporated into the development environment by, for example, selecting the tool name or the corresponding selection field of the tool to be used on the screen using an input device such as a mouse. When the user selects a tool, the tool combination extraction unit 110 may display detailed information about that tool, for example, using a pop-up screen.

[0040] The import button 610 is used to import another file containing tool information and add it to the list when a user attempts to select a tool that is not displayed in the tool list 600. When the import button 610 is selected by clicking the mouse or other means, the tool combination extraction unit 110 displays a file selection screen (not shown) to accept the user's file selection, imports the selected file, and adds the information of the new tool to the tool list 600. The imported file may be in tabular format, or it may be a script file or configuration file that describes the execution procedure of the tool. If the imported file is a script file or configuration file, it is possible to extract concurrently run tool information from the described execution procedure even if it does not contain direct information about dependent tools.

[0041] When a tool is selected by the user, the tool combination extraction unit 110 refers to the tool information 160, checks for any dependent tools that will run together with the selected tool, and extracts combinations of tools that will run concurrently. If there are concurrently running tools that have not been selected by the user, the tool combination extraction unit 110 selects those tools to be incorporated into the development environment without user selection and displays them on the development environment tool selection screen so that the user can recognize them. For example, in Figure 6, tools with a check mark in the selection column indicate tools selected by the user. Among the tools selected by the user, it can be seen that "Simulator Y" requires the execution of "Test Tool X" for execution, and "Test Result Post-Processing Tool B" requires the execution of "Test Result Post-Processing Tool C" for execution. The tool combination extraction unit 110 selects these dependent tools as tools to be incorporated and indicates this, for example, with a mark different from the user's selection (in this case, a black square mark) in the selection column of the tool list 600. If there are concurrently running tools that have not been selected by the user, the user may be notified, for example, in the manner shown in Figure 6, and the system may wait for the user to make a selection.

[0042] For example, when the user presses the OK button 620 on the development environment tool selection screen, the tool combination extraction unit 110 recognizes that the user has finished selecting tools, creates tool combination information 515 indicating the combination of tools that need to be executed together, and terminates the extraction of tool combinations (step 510).

[0043] Once the generation of tool combination information 515 is complete, the development environment construction device 10 uses the machine specification acquisition unit 120 to acquire the computer specifications (system requirements) necessary to run the tools in each tool combination extracted by the tool combination extraction unit 110. The acquisition of system requirements for each tool combination is performed based on the tool information 160 and the tool combination information 515 generated in step 510.

[0044] Specifically, for each tool combined as a tool to be executed simultaneously by the tool combination information 515, the system requirements for each tool are obtained from the tool information 160, and the system requirements necessary for the combination are calculated. For example, for the required CPU clock, the maximum CPU clock value among the combined tools is obtained as the required CPU clock value. Also, for the memory and storage capacities, the total value of the capacities indicated by the system requirements for each tool is obtained as the required memory capacity and storage capacity. The machine spec acquisition unit 120 calculates the system requirements in the same way for all combinations and creates the system requirement information 525 for each combination (step 520).

[0045] Next, the machine spec acquisition unit 120 calculates the system requirements required for the computer (VM) in which the development environment is constructed based on the system requirement information 525 for each combination of tools. This system requirement is calculated based on, for example, the most load - intensive combination among the combinations of tools. Specifically, for the CPU clock value and memory capacity, the maximum values among the CPU clock values and memory capacities indicated by the system requirements of each combination in the system requirement information 525 for each combination are obtained. Also, for the storage capacity, the total value of the storage capacities indicated by the system requirements for each combination of tools is obtained. The machine spec acquisition unit 120 outputs the system requirements obtained in this way as the system requirement information 535 of the development environment indicating the system requirements of the computer (VM) in which the development environment is constructed (step 530).

[0046] When the system requirement information 535 of the development environment is obtained, the development environment construction device 10 selects a VM that satisfies the obtained system requirements by referring to the machine type information 170 by the machine type selection unit 130. The machine type selection unit 130 selects one or more VMs that satisfy the system requirements within a certain range, presents the information to the user, and accepts the user's selection of the VM.

[0047] FIG. 7 is a schematic diagram showing an example of the display screen of the development environment machine selection result displayed at this time.

[0048] On the display screen for the development environment machine selection result, system requirement information 700 indicating the system requirements for the VM in which the development environment acquired by the machine specification acquisition unit 120 is to be constructed and a machine type list 710 listing the specifications for each type of VM selected by the machine type selection unit 130 are displayed. As described above, in the machine type list 710, information regarding a certain range of VMs that meet the acquired system requirements is acquired from the machine type information 170 and displayed. The user can specify and select a desired one from the types of VMs displayed in the machine type list 710. After the type of VM is selected by the user, when the user clicks the determination button 720, the machine type selection unit 130 determines the specified VM as the VM to be used for environment construction.

[0049] In this embodiment, the selection of the type of VM used for constructing the development environment is thus determined by the user's selection. However, without accepting the user's selection, for example, the machine type selection unit 130 may determine it by a method such as selecting the cheapest VM among the VMs that meet the system requirements (step 540).

[0050] The development environment construction device 10 secures a VM of the type determined using the API provided by the cloud management server 60 on the cloud 50 and generates a script for installing those tools on the secured VM. The development environment construction device 10 executes the generated script to construct a development environment 555 on the cloud 50. Note that the script generated here may include a script to be executed on the VM for installing tools on the VM (step 550).

[0051] According to this embodiment, since the specifications of the computer used for constructing the development environment are determined in consideration of the overall system requirements of the tools incorporated in the development environment, it is possible to reduce the waste of using a computer with excessive specifications.

[0052] In this embodiment, the development environment is automatically built on the cloud 50 by the development environment building device 10. However, for example, in step 550, a script for installing tools on the computer based on the development environment building information may be generated and the process may be terminated, and the user may secure a VM on the cloud and build the environment by executing the generated script on the VM.

[0053] Figure 8 is a schematic block diagram showing the logical configuration of the development environment construction device in the second embodiment.

[0054] The development environment construction device 11 in this embodiment differs from the development environment construction device 10 in the first embodiment in that, when constructing a development environment, it constructs the development environment according to the user who will use the constructed development environment. In Figure 8, devices having the same configuration as the development environment construction device 10 shown in Figure 2 are given the same reference numerals as in Figure 2. In the following description, the parts that differ from the first embodiment will be described, and parts that overlap with the description of the first embodiment will be omitted.

[0055] In this embodiment, the development environment construction device 11 has a project information storage unit 800 that holds project information 811 relating to the project on which the development environment is used, in order to construct a development environment corresponding to the user. The project information storage unit 800, like the tool information storage unit 100 and the machine type information storage unit 150, can be implemented using storage connected to the computer used as the development environment construction device 11, or accessible directly or indirectly from said computer.

[0056] In the development environment construction device 11 of this embodiment, the tool information 161 stored in the tool information storage unit 100 includes, for each registered tool, the type of user who is permitted to use that tool. Furthermore, the tool combination extraction unit 111, which processes using this information, also differs in some of its processing from the tool combination extraction unit 110 of the first embodiment, as will be described later.

[0057] Figure 9 is a schematic diagram showing an example of the data structure of project information 811 stored in the project information storage unit 800.

[0058] The project information 811 used in this embodiment includes a project list 900 in which information about projects in which development environments are built is registered, and a user list 910 in which information about the users who are members of each project is registered.

[0059] The project list 900 contains project names that can identify individual projects, along with link information to the user list 910, which contains information about the users who are members of those projects.

[0060] The user list 910 registers user information for each project, for users who are members of that project. User information can include, for example, the username of the user who is a member of the project, a user ID that uniquely identifies that user within the development system, and user type information regarding the user's attributes. In this embodiment, information about the organization to which the user belongs is used as the user type.

[0061] Figure 10 is a flowchart showing the processing flow performed by the development environment construction device 11 in this embodiment.

[0062] After acquiring tool information 161, the development environment setup device 11 uses a tool combination extraction unit 111 to acquire project information 811 from the project information storage unit 800. At this time, the tool combination extraction unit 111 displays a list of projects registered in the project list 900 on the screen and accepts the user's selection of the project for which the development environment will be used (step 1000).

[0063] Next, the tool combination extraction unit extracts information about the project selected by the user from the project information 811. Here, as project information, the user types of the members of the selected project are extracted from the corresponding user list 920.

[0064] The tool combination extraction unit 111 then generates a list of tools available to users of one of the acquired user types based on the tool information 161, and displays a development environment tool selection screen as shown in Figure 6 to accept tool selections from the user. At this time, the user types for which the tools displayed in the list are available may be displayed on the screen so that the user can recognize which type of user the development environment is being built for.

[0065] Next, the tool combination extraction unit 111 generates tool combination information for the selected tools in the same manner as the processing in step 510 of the first embodiment (step 511).

[0066] From this point onward, the development environment construction device 11 uses the tool combination information 515 to perform the same processing as in the first embodiment and construct the development environment. Once the development environment is constructed in step 550, the development environment construction device 11 determines whether the development environment has been constructed for all user types acquired in step 1000. If there are still user types for which the development environment has not been constructed, the development environment construction device 11 returns to the processing in step 511 and constructs the development environment for the next user type. When the construction of the development environment is completed for all user types acquired in step 1000, the development environment construction device 11 terminates the series of processes.

[0067] Development work in companies and other organizations sometimes involves collaboration among personnel from different departments. On the other hand, the use of development tools and other software may be restricted to certain users due to contracts or other agreements. For example, if a contract restricts the organizations to which users can use a tool, the same development environment cannot be shared by all users. In this embodiment, development environments are built for each user type, taking into account the user's affiliation, thus enabling the efficient construction of development environments tailored to each user type.

[0068] Figure 11 is a schematic block diagram showing the logical configuration of the development environment construction device in the third embodiment. The development environment construction device 12 in this embodiment differs from the development environment construction devices of the two embodiments described above in that, when constructing the development environment, it obtains the system requirements of the development environment according to the characteristics of the project in which the development environment will be used and constructs the environment accordingly.

[0069] The development environment construction device 12 in this embodiment has the same configuration as the development environment construction device 11 in the second embodiment, except that the contents of the tool information 162 stored in the tool information storage unit 100 and the project information 812 stored in the project information storage unit 800 are different from those in the second embodiment.

[0070] Figure 12 is a schematic diagram showing an example of the data structure of project information in this embodiment.

[0071] In this embodiment, the project information 812 is the project list 900 included in the project information 813 of the second embodiment, but instead of user information, it stores the amount of development data for each project and the requirements information for the development environment.

[0072] Development data volume refers to information indicating the amount of data developed in a project using a development environment. Specifically, development data volume can include the data size and number of files of source code developed in the project, the data size and number of files of various configuration files, the data size and number of files of specifications, and the data size of the workspace used by the user. In this embodiment, it is assumed that the sum of the data sizes of these data will be used as the development data volume.

[0073] The amount of development data can be determined, for example, by estimating the amount of data based on past development performance, or by measuring the data used in the project.

[0074] The requirements information for the development environment is information about the requirements that a project has for the development environment. For example, it sets requirements for the processing speed of the processes performed by the tools used in the development environment, and requirements regarding costs. In Figure 12, projects with "Priority" set in the processing speed column indicate that faster processing is required. Similarly, projects with "Priority" set in the cost column indicate that minimizing the costs required to build the development environment is required.

[0075] Although not shown in Figure 12, the requirements information for the development environment may also include requirements such as the type of operating system to be used in the development environment to be built, and specifications of specific system requirements.

[0076] Figure 13 is a schematic diagram showing an example of the data structure of tool information in this embodiment. In this embodiment, tool information 162 is the same as tool information 160 in the first embodiment, with the addition of information on the impact of development data volume. Note that for the sake of explanation, Figure 13 shows only a part of the tool information 16, and the specific values ​​for other parts are omitted.

[0077] The development data volume impact is provided as information about the impact of development data volume on the tool's system requirements, for example, as a weighted value indicating the degree of that impact. The development data volume impact can be set as needed for each item, such as CPU clock speed and memory capacity. The development data volume impact may be set as a unique value for each system requirement item, or it may be set by dividing the development data volume into certain ranges. Alternatively, it may be set as a calculation formula tailored to the characteristics of the tool.

[0078] For example, in Figure 13, “Test Case Preprocessing Tool A” has a development data influence value of “Null” for each item, indicating that the amount of development data has no influence on the tool’s system requirements. “Test Tool X” is shown to have a stepped influence on CPU clock speed and memory capacity depending on the amount of development data, while storage capacity is given a unique influence. For example, regarding the CPU clock, if the amount of development data (X) is less than 8GB, the influence is “1,” indicating that the CPU clock specified in the system requirements can be applied as is. On the other hand, if the amount of development data (X) is 8GB or more, the influence is “1.25,” indicating that a CPU clock 1.25 times the CPU clock specified in the system requirements, i.e., a 3GHz CPU clock, is required. Furthermore, depending on the amount of development data, a certain percentage of storage capacity may be used additionally when the tool is running. In such cases, that percentage is set as a weight value. Figure 13 shows that this percentage is 0.1% (0.001), and that the amount of development data (X) multiplied by this percentage is added to the value set for the storage capacity in the system requirements.

[0079] The degree of influence of development data volume can be estimated, for example, through benchmark tests using development data volumes of different sizes or from past development performance. In this embodiment, weight values ​​are used to determine the influence of development data, but instead of using weight values, the required CPU clock, memory capacity, and storage capacity may be set directly.

[0080] Figure 14 is a flowchart showing the processing flow performed by the development environment construction device 12 of this embodiment. In Figure 14, the same reference numerals are used for processes that are the same as those described in Figure 5 or Figure 10.

[0081] In the development environment construction device 12, as in the first embodiment, once tool combination information 515 is created in step 510, the machine specification acquisition unit 122 then calculates the system requirements for each tool combination. For each tool selected in step 510, the machine specification acquisition unit 122 modifies the system requirements shown in the tool information acquired in step 500, taking into account the amount of development data and the degree of environmental requirements influence. Specifically, the machine specification acquisition unit 122 calculates the modified values ​​of the values ​​set for each item of the system requirements in the tool information 162 by referring to the amount of development data set for the project selected in step 1000 from the project information 812 and the degree of development data amount influence in the tool information 162. After the necessary system requirements have been modified for all selected tools, the machine specification acquisition unit 122 creates system requirement information 525 for each tool combination in the same manner as in step 520 of the first embodiment (step 522).

[0082] Next, the machine specification acquisition unit 122 calculates the final system requirements required for the VM on which the development environment is built, in the same manner as in step 530 of the previous embodiment. Here, if the project information 612 contains requirements information for the development environment, the machine specification acquisition unit 122 calculates the system requirements taking into account the requirements information for the development environment. For example, if "yes" is set as the requirement information in the processing speed column of the requirements information for the development environment, it is necessary to improve the processing speed by the tool. System requirements that affect such requirements include the CPU clock frequency and number of cores, the read / write speed to the storage, and network performance. In such cases, these system requirements are taken into account, and for example, system requirements are obtained in which these items are improved by a predetermined percentage.

[0083] In this embodiment, for storage capacity among the system requirements, the sum of the storage capacities obtained for each combination shown in the system requirements for each tool combination is added to the development amount shown in the project information 812 (step 532).

[0084] Subsequently, the machine type is determined based on the acquired system requirements (step 540), and the development environment is built (step 550).

[0085] According to this embodiment, it is possible to construct a development environment that is more suitable for the usage situation, depending on the environment in which the project is executed and the scale of the project.

[0086] Figure 15 is a schematic block diagram showing the logical configuration of the development environment construction device in the fourth embodiment. In this embodiment, the development environment construction device 12 is designed to build a backup development environment that backs up at least a part of the environment if the development environment built on the cloud 50 becomes unusable due to failure or other reasons, in addition to building the development environment.

[0087] The development environment construction device 13 has the following additions compared to the development environment construction device 10 in the first embodiment: a backup target selection unit 1500, a backup construction unit 1510, and a backup environment information storage unit 1520 for storing on-premise environment information 1530 used to construct the backup environment. Otherwise, it has the same configuration as the development environment construction device 10 in the first embodiment.

[0088] The backup target selection unit 1500 selects a combination of tools to perform backup in the on-premises environment based on the system requirements for each combination of tools and on-premises environment information created by the machine specification acquisition unit 120.

[0089] The backup construction unit 1510 constructs a backup development environment in the on-premises environment according to the combination of tools selected by the backup target selection unit 1500.

[0090] The backup environment information storage unit 1520, like the tool information storage unit 100 and the machine type information storage unit 150, can be implemented using storage connected to or directly or indirectly accessible from the computer used as the development environment construction device 13. The on-premises environment information 1530 stored in the backup environment information storage unit 1520 contains information regarding the specifications of computer resources provided in the on-premises environment. The information set as on-premises environment information 1530 includes, as shown in Figure 16, the name (machine name) of the computer that can be used to build the backup function, the CPU clock frequency of that computer, memory capacity, and available storage capacity. The on-premises environment information 1530 may also include other information that can be used by the user to determine which computer is the backup construction destination, such as the computer's location.

[0091] Figure 17 is a flowchart illustrating the flow of the backup environment construction process performed by the backup target selection unit 1500 and the backup construction unit 1510. The processes performed by the tool combination extraction unit 110, machine specification acquisition unit 120, machine type selection unit 130, and environment construction unit 140 are the same as the development environment construction process in the first embodiment described in Figure 5, and are therefore omitted from this explanation. The backup environment construction process described in Figure 17 is performed after the development environment construction process, or in parallel with the development environment construction process.

[0092] The backup target selection unit 1500 selects a combination of tools to create a backup environment from among the combinations of tools listed in the system requirements information 525 for each tool combination created by the machine specification acquisition unit 120, based on the on-premise environment information 1530. Specifically, for each tool combination listed in the system requirements information 525 for each tool combination, the acquired system requirements are compared with the specifications of the computers registered in the on-premise environment information 1530, and tool combinations whose specifications satisfy the system requirements are extracted for each computer registered in the on-premise environment information 1530. For example, tool combinations are extracted for each computer where the CPU clock frequency indicated in the system requirements information for each tool combination is less than or equal to the CPU clock frequency of the computer registered in the on-premise environment information 1530, the memory capacity is less than or equal to the memory capacity of the same computer resource, and the storage capacity is less than or equal to the free storage capacity of the same computer resource.

[0093] Next, for each computer from which tool combinations have been extracted, the system sequentially selects tool combinations from the extracted tool combinations whose sum of storage capacities falls within the range of the computer's available storage capacity as the target for backup using that computer. At this time, tool combinations that have already been selected as backup targets for other computers are excluded from the selection process or their priority is lowered. Note that the same tool combination may be selected to be backed up to multiple computers. As a result of the selection, the backup target selection unit 1500 creates backup target tool combination information 1705 for each computer where a backup environment is built, indicating the set of tool combinations extracted as backup targets. At this time, the backup target selection unit 1500 may display the selected computer and tool combination pair on a display device (not shown) and accept the user's selection of the computer and tool combination pair to build the backup environment (step 1700).

[0094] Next, the development environment construction device 13 generates a script for installing the tools included in the tool combination based on the environment construction information of the tool information 160, for each computer on which the backup environment is to be built, according to the backup target tool combination information 1705 created by the backup construction unit 1510. The generated script is distributed to the target computer and executed on that computer to build the backup environment 1715. The execution of the script on the target computer may be performed individually by the user rather than remotely from the development environment construction device 13 (step 1710).

[0095] According to this embodiment, it becomes possible to back up a development environment built using existing computing resources, and development work can be continued even if the development environment built on the cloud becomes unavailable due to a failure or other reason. In this embodiment, the backup environment is built using computing resources in an on-premises environment, but the backup environment may be built using computing resources on a different cloud than the cloud where the development environment is built.

[0096] Figure 18 is a schematic block diagram showing the logical configuration of the development environment construction device in the fifth embodiment. The development environment construction device 14 in this embodiment is designed to reconstruct the development environment according to the usage status of the constructed development environment.

[0097] The development environment construction device 14 of this embodiment is configured by adding a development environment analysis unit 1800 and a usage status storage unit 1810 for storing usage status information 1820 to the development environment construction device 10 of the first embodiment. The tool combination extraction unit 114 and the machine specification acquisition unit 124 have the same functions as the tool combination extraction unit 110 and the machine specification acquisition unit 120 in the first embodiment, and perform the same processing as the tool combination extraction unit 110 and the machine specification acquisition unit 120 when constructing the development environment. On the other hand, the tool combination extraction unit 114 and the machine specification acquisition unit 124 differ from the tool combination extraction unit 110 and the machine specification acquisition unit 120 in that they perform some different processing when rebuilding the development environment compared to when it is constructed.

[0098] The development environment analysis unit 1800 monitors the trend of surplus or shortage of computing resources on which the development environment is built based on the usage information 1820, and starts rebuilding the development environment if a surplus or shortage of computing resources is detected.

[0099] The usage information 1820 holds usage information regarding the usage status of the constructed development environment. The usage information 1820 includes, for example, a tool usage history table 1900 and a development environment list 1910, as shown in Figure 19.

[0100] The tool usage history table 1900 is maintained in a table format for each constructed development environment. Each entry in the tool usage history table 1900 contains the tool's execution time, computing resource usage (resources used), and the names of concurrently running tools, corresponding to the tool names of the tools installed in that development environment. Computing resource usage includes information such as CPU usage, memory usage, and storage usage. The information registered in the tool usage history table 1900 can be obtained, for example, based on historical information such as computing resource usage and tool execution status, which can be acquired by the monitoring function of the VM on which the development environment is built, or the cloud management server 60.

[0101] Development environment list 1910 contains information about the computing resources used to build each development environment. The computing resource information included in development environment list 1910 includes the machine type name indicating the type of VM used to build the development environment, as well as specifications such as CPU clock frequency, memory capacity, and storage capacity.

[0102] Figure 20 is a flowchart showing the flow of the development environment reconstruction process performed by the development environment construction device 14 of this embodiment. In this embodiment, the development environment to be reconstructed is described as being constructed by the same process as in the first embodiment shown in Figure 5.

[0103] The development environment construction device 14 periodically activates the development environment analysis unit 1800 to monitor the usage status of the constructed development environment. When activated, the development environment analysis unit 1800 acquires usage information 1820 from the usage information storage unit 1810 (step 2000). The development environment analysis unit 1800 then investigates the status of surplus or shortage of computing resources based on the acquired usage information 1820. Specifically, for example, it checks whether the maximum CPU and memory usage rates shown in the tool usage history table 1900 are within a predetermined range of usage rates, and similarly, whether the sum of storage usage is within a predetermined range of usage rates. If these values ​​exceed the upper limit of the predetermined range, there is a possibility that computing resources will be insufficient when using the development environment. On the other hand, if these values ​​fall below the lower limit of the predetermined range, there is a possibility that computing resources used to construct the development environment are in excess (step 2010).

[0104] The development environment analysis unit 1800 terminates processing if the CPU usage, memory usage, storage usage, etc., are all within the predetermined range, determining that there is no surplus or shortage of computing resources. On the other hand, if any of the CPU usage, memory usage, or storage usage deviates from the predetermined range, it determines that there is a surplus or shortage of computing resources and that reconstruction is necessary (step 2020).

[0105] If the development environment analysis unit 1800 determines that there is a surplus or shortage of computing resources, the development environment construction device 14 extracts combinations of tools that can be executed simultaneously using the tool combination extraction unit 114 and creates tool combination information 515. Here, instead of tool information 160, the tool usage history table 1900 of the usage status information 1820 is used to create the tool combination information, and combinations of tools that have actually been executed simultaneously are extracted. Other procedures for extracting tool combinations are carried out in the same way as in step 510 of Figure 5 (step 514).

[0106] Once the tool combination information 515 is created, the development environment construction device 14 uses the machine specification acquisition unit 124 to create system requirement information 525 for each tool combination. The system requirement information 525 for each tool combination created here is also created based on the usage status information 1820, similar to the tool combination information 515. In the processing of step 2010, for computing resources where the utilization rate and usage amount shown in the usage resource column for each tool in the tool usage record table 1900 are determined to be within a predetermined range, the value of the computing resource registered in the development environment list 1910 is used as the system requirement for that computing resource. On the other hand, for computing resources where the utilization rate and usage amount are determined to be outside the predetermined range in step 2010, the value obtained based on the value in the usage resource column of the tool usage record table 1900 is used as the system requirement for that computing resource. At this time, the machine specification acquisition unit 124 refers to the specifications registered in the usage resource column of the tool usage record table 1900 as needed. For example, if the memory usage value in the tool usage history table 1900 is outside a predetermined range, the system requirement for memory capacity is obtained by adding or subtracting the memory capacity value for that development environment shown in the development environment table, according to the degree of deviation from the upper or lower limit of the predetermined range. System requirements for other items can be obtained using a similar method.

[0107] The machine specification acquisition unit 124 creates system requirement information 525 for each tool combination based on the system requirements for each item of the computing resources acquired in this manner (step 524).

[0108] Subsequently, the development environment construction device 14 obtains the system requirements of the VM to be used to construct the development environment (step 530), determines the VM to be used to construct the development environment (step 540), and constructs the development environment (step 550), in the same manner as in the first embodiment.

[0109] Furthermore, when building the development environment, the environment building unit 140 may execute the same process in the newly built development environment based on the history of the processes executed in the development environment before reconstruction, and present the results obtained therefrom to the user in comparison with the results before reconstruction, so that the user can confirm the effect.

[0110] According to this embodiment, the system requirements for the development environment can be obtained according to the usage status of the development environment, and the development environment can be reconstructed based on those system requirements, making it possible to build a development environment that is more suitable for the actual usage status of the development environment.

[0111] According to the embodiments described above, a development environment that includes multiple software tools and is used across multiple processes can be constructed using computing resources suitable for its usage, thereby suppressing waste due to excessive use of computing resources and a decrease in the efficiency of development work due to a shortage of computing resources.

[0112] The embodiments described above represent typical aspects of the present invention and do not limit it. The present invention can be modified in various ways without departing from its essence. For example, any of the embodiments described above can be combined with any other. Furthermore, although the embodiments described above were explained using a development environment used in software development work as an example, it can also be applied to the construction of a work environment used in general work other than development work.

[0113] It is possible to build a development environment, which is provided using computing resources and used in development work such as software development, while suppressing excessive use of computing resources and the decrease in efficiency of development work due to a shortage of computing resources.

[0114] 10, 11, 12, 13, 14: Development environment construction device, 20: User terminal, 30: LAN, 40: WAN, 50: Cloud, 60: Cloud management server, 70: Development environment, 100: Tool information storage unit, 110, 111, 114: Tool combination extraction unit, 120, 122, 124: Machine specification acquisition unit, 130: Machine type selection unit, 140: Environment construction unit, 150: Machine type information storage unit, 160, 161, 162: Tool information, 170: Machine type information, 800: Project information storage unit, 811, 812: Project information, 1500: Backup target selection unit, 1510: Backup construction unit, 1520: On-premise environment information storage unit, 1530: On-premise environment information, 1800: Development environment analysis unit, 1810: Usage status information storage unit, 1820: Usage status information

Claims

1. A development environment construction device for constructing a development environment for performing development work using software tools on computer resources, comprising: a storage unit that holds tool information relating to a plurality of software tools used in the development environment and machine specification information relating to the specifications of each of a plurality of types of computers that can be used to construct the development environment; a tool combination extraction unit that extracts combinations of software tools that can be executed independently and software tools that may be executed in parallel, based on the tool information, for software tools selected from the plurality of software tools; a machine specification acquisition unit that obtains the requirements for partial computer resources necessary for execution for each of the extracted independently executed software tools and combinations of software tools, based on the tool information, and obtains the requirements for overall computer resources required for the computer resources used to construct the development environment from the requirements for partial computer resources; a machine type selection unit that selects a type of computer that can be used to construct the development environment from a plurality of types of computers indicated by the machine specification information based on the requirements for overall computer resources; and an environment construction unit that generates a script describing the procedure for constructing an environment for running the selected software tools on the computer selected by the machine type selection unit.

2. The development environment construction device according to claim 1, wherein the tool information includes dependency information indicating the dependencies between each of the plurality of software tools and other software tools that need to be executed in parallel, and the tool combination extraction unit extracts combinations of the software tools based on the dependency information.

3. The development environment construction device according to claim 2, wherein the tool information further includes memory requirements for each of the plurality of software tools, and the machine specification acquisition unit acquires the memory requirements necessary to execute the software tools included in the combination of software tools in parallel based on the memory requirements, and acquires the partial computing resource requirements including the memory requirements.

4. The development environment construction device according to claim 2, wherein the storage unit further stores user type information relating to the attributes of members of a project as information relating to a project in which the constructed development environment will be used; the tool combination extraction unit, if there are multiple user types in the user type information, selects the software tools for each user type and extracts combinations of software tools that can be executed independently and software tools that may be executed in parallel for each user type; the machine specification acquisition unit acquires the overall computing resource requirements for each user type based on the combinations of software tools that can be executed independently and software tools that may be executed in parallel extracted for each user type; the machine type selection unit selects a type of computer that can be used to construct the development environment for each user type based on the overall computing resource requirements acquired for each user type; and the environment construction unit generates a script that describes the procedure for constructing an environment for running the selected software tools on each of the computers selected for each user type.

5. The development environment construction device according to claim 2, wherein the storage unit further holds project information representing the characteristics of the project on which the constructed development environment is used, and the machine specification acquisition unit modifies at least one of the partial computing resource requirements and the overall computing resource requirements using weights corresponding to the characteristics of the project indicated by the project information.

6. The development environment construction device according to claim 5, wherein the project information includes, as a characteristic, information regarding the amount of data to be developed in the project.

7. The development environment construction device according to claim 5, characterized in that the project information includes, as characteristics, information regarding the requirements for the development environment required by the project.

8. The development environment construction device according to claim 1, wherein the environment construction unit executes the script to construct the development environment.

9. The development environment construction device according to claim 1, wherein the plurality of types of computers are provided by computing resources located in the cloud.

10. The development environment construction device according to claim 9, further comprising: a storage unit which includes on-premises environment information relating to computer resources provided in an on-premises environment; a backup target selection unit which selects at least a portion of the combination of standalone software tools and software tools that may be executed in parallel to construct a development environment using computer resources provided in the on-premises environment based on the requirements of the partial computer resources obtained by the machine specification acquisition unit; and a backup construction unit which generates a script for constructing an environment on computer resources in the on-premises environment that runs the software tools included in the combination of standalone software tools and software tools that may be executed in parallel selected by the backup target selection unit, based on the combination of standalone software tools and software tools that may be executed in parallel selected by the backup target selection unit.

11. The development environment construction device according to claim 2, further comprising a development environment analysis unit that acquires the usage status of the computer resources on which the development environment is constructed by the constructed development environment, and determines whether there is a surplus or shortage of the computer resources on which the development environment is constructed based on the usage status, wherein the machine specification acquisition unit acquires the requirements for the partial computer resources and the requirements for the overall computer resources based on the usage status if the surplus or shortage falls outside a predetermined range.

12. A method for constructing a development environment for performing development work using software tools on computer resources, comprising: extracting combinations of software tools that can be executed individually and software tools that may be executed in parallel, based on tool information relating to the multiple software tools, for software tools selected from a plurality of software tools; obtaining the requirements for partial computer resources necessary for execution for each of the individually executed software tools and combinations of software tools based on the tool information; obtaining the requirements for overall computer resources required for the computer resources used to construct the development environment from the requirements for partial computer resources; selecting a type of computer that can be used to construct the development environment from among a plurality of types of computers indicated by machine specification information relating to the specifications of each of the plurality of types of computers that can be used to construct the development environment based on the requirements for overall computer resources; and generating a script that describes the procedure for constructing an environment for running the selected software tools on the computer selected by the computer selection process.

13. The development environment construction method according to claim 12, wherein the tool information includes dependency information indicating the dependencies between each of the plurality of software tools and other software tools that need to be executed in parallel, and the extraction process extracts combinations of the software tools based on the dependency information.

14. The development environment construction method according to claim 13, wherein the tool information includes memory requirements for each of the plurality of software tools, and the process for obtaining the partial computing resource requirements includes a process for obtaining the memory requirements necessary to execute the software tools included in the combination of software tools in parallel based on the memory requirements.

15. The development environment construction method according to claim 13, wherein the extraction process obtains user type information relating to the attributes of members of a project included in information about the project in which the constructed development environment will be used, and if there are multiple user types in the user type information, selects the software tools for each user type, extracts combinations of software tools that are executed independently and software tools that may be executed in parallel for each user type, and the process of obtaining the partial computing resource requirements, the process of obtaining the overall computing resource requirements, the process of selecting the computer, and the process of generating the script are performed for each user type.

16. The development environment construction method according to claim 13, wherein the process of obtaining the partial computing resource requirements includes referring to project information representing the characteristics of the project in which the constructed development environment will be used, and modifying the partial computing resource requirements using weights corresponding to the characteristics of the project indicated by the project information, and the process of obtaining the overall computing resource requirements includes modifying the overall computing resource requirements using weights corresponding to the characteristics of the project indicated by the project information.

17. The development environment construction method according to claim 13 further comprises: selecting at least some software tools or combinations of software tools from a combination of software tools that can be executed independently and software tools that can be executed in parallel, based on the requirements for partial computing resources and on-premises environment information relating to computing resources provided in the on-premises environment, and generating a script for constructing a development environment that runs the software tools included in at least some software tools or combinations of software tools using computing resources provided in the on-premises environment.

18. A development environment construction method according to claim 13, further comprising: obtaining the usage status of the computer resources on which the development environment is constructed by the constructed development environment; determining the surplus or deficiency of the computer resources on which the development environment is constructed based on the usage status; extracting combinations of software tools that can be executed independently and software tools that may be executed in parallel based on the usage status if the surplus or deficiency falls outside a predetermined range; re-obtaining the partial computer resource requirements necessary for execution for each of the independently executed software tools and combinations of software tools based on the usage status; re-obtaining the overall computer resource requirements required for the computer resources used to construct the development environment from the partial computer resource requirements; selecting a type of computer that can be used to reconstruct the development environment from among a plurality of types of computers indicated in the machine specification information based on the re-obtained overall computer resource requirements; and generating a script that describes the procedure for reconstructing an environment for running the selected software tools on the selected computer.

19. The development environment construction method according to claim 12, further comprising the process of executing the script to construct the development environment.

Citation Information

Patent Citations

  • Virtualization environment constructing support system and virtualization environment constructing support method

    JP2011242964A

  • Method and system for robotics application development

    JP2022507142A

  • Development environment construction system, development environment construction method and program

    JP2023145128A

  • Environment construction support system, apparatus, environment construction support method, and program

    US20220229635A1