The present application claims priority to Japanese Patent Application No. 2020-114207 filed on Jul. 1, 2020, the entire contents of which are incorporated herein by reference.
The present disclosure relates to a system for providing a software development environment, a method for providing a software development environment, and a non-transitory computer readable medium.
Along with advances in technology pertaining to the Internet of Things (JOT), systems have been proposed for automatic control of various devices, sensors, and the like connected to a network in plants, factories, buildings, residences, and the like. For example, various systems (engineering systems) have been constructed in plants, factories, and the like, such as a distributed control system, a manufacturing execution system (MES), a plant information management system (PIMS), and an enterprise resource planning (ERP) system.
The development of software implemented in these engineering systems, such as applications, workflow, and programs, has been achieved using an apparatus installed in a plant, such as a programmable logic controller (PLC). Patent literature (PTL) 1, for example, proposes technology to support software development using a visual programming tool. Specifically, PTL 1 discloses the development of software by representing various processes, such as functions, collectively as an object and representing the relationships between processes by wires connecting the processes.
A system for providing a software development environment according to an embodiment is a system for providing a software development environment to develop software by combining a plurality of development components, the system including an information processing apparatus that includes a display and a controller, wherein the display is configured to display a user interface on which the plurality of development components and a plurality of links connecting the development components to each other are placed; and when one development component among the plurality of development components is selected, the controller is configured to display a link connected to the selected development component on the display in a display form with emphasis.
A method for providing a software development environment according to an embodiment is a method for providing a software development environment to develop software by combining a plurality of development components, the method including:
displaying a user interface on which the plurality of development components and a plurality of links connecting the development components to each other are placed; and
displaying, when one development component among the plurality of development components is selected, a link connected to the selected development component in a display form with emphasis.
A non-transitory computer readable medium according to an embodiment is a non-transitory computer readable medium storing a program, for providing a software development environment, configured to cause a processor to execute operations including:
displaying a user interface on which the plurality of development components and a plurality of links connecting the development components to each other are placed; and
displaying, when one development component among the plurality of development components is selected, a link connected to the selected development component in a display form with emphasis.
In the accompanying drawings:
When numerous objects are combined to develop software using the technology in PTL 1, however, the relationship between objects becomes harder to grasp as the number of combined objects increases. In other words, there is room for improvement in the convenience of the user interface of the software development environment.
It would be helpful to provide a system for providing a software development environment, a method for providing a software development environment, and a non-transitory computer readable medium that can improve the convenience of the user interface of a software development environment.
A system for providing a software development environment according to an embodiment is a system for providing a software development environment to develop software by combining a plurality of development components, the system including an information processing apparatus that includes a display and a controller, wherein the display is configured to display a user interface on which the plurality of development components and a plurality of links connecting the development components to each other are placed; and
when one development component among the plurality of development components is selected, the controller is configured to display a link connected to the selected development component on the display in a display form with emphasis.
According to the system for providing a software development environment of an embodiment, when one development component among the plurality of development components is selected, a link connected to the selected development component is thus displayed on the display in a display form with emphasis. This enables the user to grasp the relationship between development components easily. In other words, the convenience of the user interface of a software development environment can be improved by the system for providing a software development environment in an embodiment.
In an embodiment, the controller may be configured to display the selected development component on the display with emphasis.
According to the system for providing a software development environment of an embodiment, when one development component among the plurality of development components is selected, the selected development component is thus also displayed in a display form with emphasis, in addition to the link connected to the development component. This enables the user to grasp the relationship between development components more easily.
In an embodiment, the controller may be configured to display a link connected to an input port and a link connected to an output port of the selected development component on the display with emphasis in different colors.
According to the system for providing a software development environment of an embodiment, the link connected to the input port and the link connected to the output port of the selected development component are thus displayed with emphasis in different colors. This configuration enables the user to easily grasp the relationship between development components in a form that distinguishes between the input side and the output side.
In an embodiment, the controller may be configured to display a link connected to the selected development component on the display in a higher-level layer than a link not connected to the selected development component.
According to the system for providing a software development environment of an embodiment, the link connected to the selected development component is thus displayed on the display in a higher-level layer, thereby improving the operability when an operation to select the link is performed.
In an embodiment, the controller may be configured to display a link connected indirectly to the selected development component on the display with emphasis.
According to the system for providing a software development environment of an embodiment, the indirectly connected links are thus displayed with emphasis. This enables the user to easily grasp which development components are affected by the input and output of a certain development component.
In an embodiment, the controller may be configured to display a link connected directly to the selected development component and a link connected indirectly to the selected development component on the display with emphasis in different colors.
According to the system for providing a software development environment of an embodiment, the link connected directly to the selected development component and the link connected indirectly to the selected development component are thus displayed with emphasis in different colors. This configuration enables the user to easily grasp the relationship between development components in a form that distinguishes between directly connected links and indirectly connected links.
In an embodiment, the plurality of development components may include at least two development components that are of the same type and are connected to the same destination development component, and the at least two development components may be displayed by an integrated object corresponding to the at least two development components.
According to the system for providing a software development environment of an embodiment, the number of objects and the number of links are thus reduced, enabling the user to easily grasp the relationship between development components.
In an embodiment, the controller may be configured to display the integrated object in a display form that includes the number of integrated development components.
According to the system for providing a software development environment in an embodiment, the user can thus easily learn the number of integrated development components.
A method for providing a software development environment according to an embodiment is a method for providing a software development environment to develop software by combining a plurality of development components, the method including:
displaying a user interface on which the plurality of development components and a plurality of links connecting the development components to each other are placed; and
displaying, when one development component among the plurality of development components is selected, a link connected to the selected development component in a display form with emphasis.
According to the method for providing a software development environment of an embodiment, when one development component among the plurality of development components is selected, a link connected to the selected development component is thus displayed in a display form with emphasis. This enables the user to grasp the relationship between development components easily. In other words, the convenience of the user interface of a software development environment can be improved by the method for providing a software development environment in an embodiment.
A non-transitory computer readable medium according to an embodiment is a non-transitory computer readable medium storing a program, for providing a software development environment, configured to cause a processor to execute operations including:
displaying a user interface on which the plurality of development components and a plurality of links connecting the development components to each other are placed; and
displaying, when one development component among the plurality of development components is selected, a link connected to the selected development component in a display form with emphasis.
According to the non-transitory computer readable medium storing a program for providing a software development environment of an embodiment, when one development component among the plurality of development components is selected, a link connected to the selected development component is thus displayed in a display form with emphasis.
This enables the user to grasp the relationship between development components easily. In other words, the convenience of the user interface of a software development environment can be improved by the non-transitory computer readable medium that stores a program for providing a software development environment in an embodiment.
According to the present disclosure, a system for providing a software development environment, a method for providing a software development environment, and a non-transitory computer readable medium that can improve technology related to the user interface of a software development environment can be provided.
A system 10 for providing a software development environment according to an embodiment of the present disclosure is described below with reference to the drawings.
Identical or equivalent portions in the drawings are labeled with the same reference signs. In the explanation of the present embodiment, a description of identical or equivalent portions is omitted or simplified as appropriate.
An overview and configuration of the system 10 for providing a software development environment according to the present embodiment are described with reference to
The system 10 for providing a software development environment according to the present embodiment includes a plurality of servers 20 and an information processing apparatus 30. The servers 20 and the information processing apparatus 30 are communicably connected to a network 40, such as a mobile communication network and/or the Internet. Each server 20 is, for example, installed in a data center or the like. Each server 20 is, for example, a server belonging to a cloud computing system or another computing system. In overview, the system 10 for providing a software development environment provides a user with an environment, for example on the cloud, for developing software by combining a plurality of development components. The user operates the information processing apparatus 30 to access the cloud, which is formed by the plurality of servers 20, using a web browser on the information processing apparatus 30, for example. The user can then develop software by combining a plurality of development components on an interface displayed by the web browser. The system 10 for providing a software development environment in
The configurations of the server 20 and the information processing apparatus 30 according to the present embodiment are described below.
As illustrated in
The controller 21 includes at least one processor, at least one dedicated circuit, or a combination thereof. The processor may, for example, be a general-purpose processor, such as a central processing unit (CPU) or graphics processing unit (GPU), or a dedicated processor specialized for particular processing. The dedicated circuit may, for example, be a field-programmable gate array (FPGA) or an application specific integrated circuit (ASIC). The controller 21 executes processing related to operation of the server 20 while controlling each component of the server 20.
The memory 22 includes at least one semiconductor memory, at least one magnetic memory, at least one optical memory, or a combination of at least two of these. The semiconductor memory is, for example, random access memory (RAM) or read only memory (ROM). The RAM is, for example, static random access memory (SRAM) or dynamic random access memory (DRAM). The ROM is, for example, electrically erasable programmable read only memory (EEPROM). The memory 22 functions as, for example, a main memory, an auxiliary memory, or a cache memory. The memory 22 stores data to be used for operation of the server 20 and data resulting from operation of the server 20.
The communication interface 23 includes at least one interface for communication with an external destination. The interface for communication may be an interface for wired communication or wireless communication. In the case of wired communication, the interface for communication may be a local area network (LAN) interface or a universal serial bus (USB), for example. In the case of wireless communication, the interface for communication may be an interface conforming to a mobile communication standard, such as Long Term Evolution (LTE), 4th Generation (4G), or 5th Generation (5G), or an interface conforming to short-range wireless communication such as Bluetooth® (Bluetooth is a registered trademark in Japan, other countries, or both). The communication interface 23 receives data for use in operation of the server 20 and transmits data resulting from operation of the server 20.
The functions of the server 20 are implemented by a processor corresponding to the controller 21 executing a program according to the present embodiment. In other words, the functions of the server 20 are implemented by software. The program causes a computer to function as the server 20 by causing the computer to execute the operations of the server 20. In other words, the computer functions as the server 20 by executing the operations of the server 20 in accordance with the program.
The program according to the present embodiment can be recorded on a computer readable recording medium. Computer readable recording media include non-transitory computer readable recording media, examples of which are a magnetic recording apparatus, an optical disc, a magneto-optical recording medium, and a semiconductor memory. The program is, for example, distributed by the sale, transfer, or lending of a portable recording medium such as a digital versatile disk (DVD) or a compact disk read only memory (CD-ROM) on which the program is recorded. The program may also be distributed by storing the program in the storage of an external server and transmitting the program from the external server to another computer. The program may also be provided as a program product.
A portion or all of the functions of the server 20 may be implemented by a dedicated circuit corresponding to the controller 21. In other words, a portion or all of the functions of the server 20 may be implemented by hardware.
The information processing apparatus 30 includes a controller 31, a memory 32, a communication interface 33, an input interface 34, and a display 35.
The controller 31 includes at least one processor, at least one dedicated circuit, or a combination thereof. The processor may be a general-purpose processor, such as a CPU or GPU, or a dedicated processor specialized for particular processing. The dedicated circuit is, for example, an FPGA or an ASIC. The controller 31 executes processing related to operation of the information processing apparatus 30 while controlling each component of the information processing apparatus 30.
The memory 32 includes at least one semiconductor memory, at least one magnetic memory, at least one optical memory, or a combination of at least two of these. The semiconductor memory is, for example, RAM or ROM. The RAM is, for example, SRAM or DRAM. The ROM is, for example, EEPROM. The memory 32 functions as, for example, a main memory, an auxiliary memory, or a cache memory. The memory 32 stores data to be used for operation of the information processing apparatus 30 and data resulting from operation of the information processing apparatus 30.
The communication interface 33 includes at least one interface for communication with an external destination. The interface for communication may be an interface for wired communication or wireless communication. In the case of wired communication, the interface for communication may be a LAN interface or a USB, for example. In the case of wireless communication, the interface for communication may be an interface conforming to a mobile communication standard, such as LTE, 4G, or 5G, or an interface conforming to short-range wireless communication such as Bluetooth®. The communication interface 33 receives data for use in operation of the information processing apparatus 30 and transmits data resulting from operation of the information processing apparatus 30.
The input interface 34 includes at least one interface for input. The interface for input is, for example, a physical key, a capacitive key, a pointing device, or a touchscreen integrally provided with a display. The input interface 34 receives an operation for inputting data used in operation of the information processing apparatus 30. Instead of being provided in the information processing apparatus 30, the input interface 34 may be connected to the information processing apparatus 30 as an external input device. Any appropriate connection method can be used, such as USB, High-Definition Multimedia Interface (HDMI®) (HDMI is a registered trademark in Japan, other countries, or both), or Bluetooth®.
The display 35 includes at least one interface for display output. The interface for output is, for example, a display. The display may, for example, be a liquid crystal display (LCD) or an organic electro luminescence (EL) display. The display 35 outputs data resulting from operation of the information processing apparatus 30 by displaying the data. Instead of being provided in the information processing apparatus 30, the display 35 may be connected to the information processing apparatus 30 as an external output device. Any appropriate connection method can be used, such as USB, HDMI®, or Bluetooth®.
The functions of the information processing apparatus 30 are implemented by a processor corresponding to the controller 31 executing a program according to the present embodiment. In other words, the functions of the information processing apparatus 30 are implemented by software. The program causes a computer to function as the information processing apparatus 30 by causing the computer to execute the operations of the information processing apparatus 30. In other words, the computer functions as the information processing apparatus 30 by executing the operations of the information processing apparatus 30 in accordance with the program.
The computer in the present embodiment temporarily stores, in the main memory, the program recorded on a portable recording medium or transferred from a server, for example. The computer uses a processor to read the program stored in the main memory and executes processing with the processor in accordance with the read program. The computer may read the program directly from the portable recording medium and execute processing in accordance with the program. Each time the program is received from an external server, the computer may sequentially execute processing in accordance with the received program. Processing may be executed by an application service provider (ASP) type of service that implements functions only via execution instructions and result acquisition, without transmission of the program from an external server to the computer. Examples of the program include an equivalent to the program represented as information provided for processing by an electronic computer. For example, data that is not a direct command for a computer but that has the property of specifying processing by the computer corresponds to the “equivalent to the program”.
A portion or all of the functions of the information processing apparatus 30 may be implemented by a dedicated circuit corresponding to the controller 31. In other words, a portion or all of the functions of the information processing apparatus 30 may be implemented by hardware.
The user interface 200 illustrated in
The development components in the present embodiment are classified into types such as trigger, action, connector, and logic. The development components 221 to 225 illustrated in
First, the controller 31 of the information processing apparatus 30 displays the user interface 200 on the display 35 (step S10).
Next, the input interface 34 receives an input to select one of the development components 301 to 311 displayed in the builder area 210 (step S20). For example, the input interface 34 receives an input to select the development component 305.
Subsequently, the controller 31 displays links connected to the selected development component in an emphasized display form on the display 35 (step S30).
In this way, according to the system 10 for providing a software development environment of the present embodiment, the links connected to a selected development component are displayed in an emphasized display form, as illustrated in
As illustrated in
The form of the emphasized display is not limited to this example. For example, the display may be emphasized by appropriately changing any parameter such as brightness, the shade of the display color, or the contrast of the link or development component, or a combination thereof. Apart from changing these parameters, the display may also be emphasized by any form that stands out visually as compared to other links or development components.
The system 10 for providing a software development environment according to the present embodiment achieves a greater effect when a plurality of development components are present in the builder area 210 and have a complex connection relationship.
If the number of development components and links increases as in
Furthermore, the controller 31 displays the links connected to a selected development component on the display 35 in a higher-level layer than links not connected to the selected development component. Operability can thereby be improved when an operation to select the links is performed. For example, the case of changing the destination of the link 422, among the links displayed with emphasis in
For example, when wishing to change the destination of the link 422, the user selects the link 422, which is displayed with emphasis. The input interface 34 receives this selection operation.
The basic configuration of a link illustrated in the above embodiment is a combination of horizontal or vertical lines, but this example is not limiting. A link may be a line or a curve, extending horizontally, vertically, or diagonally, or a combination thereof, and the line type of a link may be changeable.
The controller 31 may, for example, display the links connected indirectly to a selected development component with emphasis on the display 35.
The directly connected links and the indirectly connected links may be displayed with emphasis in different forms. In other words, the controller 31 may display the links connected directly to a selected development component and the links connected indirectly to the selected development component with emphasis in different colors on the display 35. For example, when the links 401 to 403 are displayed with emphasis in blue, and the link 404 is displayed with emphasis in red, the links 406 to 410 may be displayed with emphasis in black. This configuration enables the user to easily grasp the relationship between development components in a form that distinguishes between directly connected links and indirectly connected links.
When a plurality of development components placed in the builder area 210 includes a plurality of development components of the same type, the development components of the same type may be displayed by an object that integrates a plurality of development components (integrated object). In other words, a plurality of development components of the same type may be displayed by an integrated object instead of by separate objects. The development components of the same type are development components associated with the same icon and connected to the same destination development component. For example, the icons of the development components 301, 302, 303 placed in the builder area 210 of
The integrated object may be displayed in a display form that includes a badge indicating the number of integrated development components. The integrated object 501 in
When the plurality of development components placed in the builder area 210 includes a plurality of development components of the same type, the development components of the same type have been described as being indicated by an integrated object, but this example is not limiting. For example, when the plurality of development components placed in the builder area 210 includes a plurality of development components of the same type, the development components of the same type may be indicated by an integrated object if a predetermined condition is satisfied. The predetermined condition may, for example, be the number of development components placed in the builder area 210, the number of links, the display magnification, or a combination thereof.
The information processing apparatus 30 has been described as accessing the server 20 via a web browser in the present embodiment to provide the user with a software development environment, but this example is not limiting. For example, an application according to the system 10 for providing a software development environment may be installed on the information processing apparatus 30, and a software development environment may be provided to the user by communication with the server 20 via the application.
| Number | Date | Country | Kind |
|---|---|---|---|
| 2020-114207 | Jul 2020 | JP | national |