WO2019026248A1 - Program development assistance device, program development assistance method, and program development assistance program - Google Patents
Program development assistance device, program development assistance method, and program development assistance program Download PDFInfo
- Publication number
- WO2019026248A1 WO2019026248A1 PCT/JP2017/028278 JP2017028278W WO2019026248A1 WO 2019026248 A1 WO2019026248 A1 WO 2019026248A1 JP 2017028278 W JP2017028278 W JP 2017028278W WO 2019026248 A1 WO2019026248 A1 WO 2019026248A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- flow definition
- node
- definition
- flow
- difference
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
- 
        - G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
 
Definitions
- the present invention relates to a program development support apparatus and the like that displays nodes indicating a group of processing as an object and creates a flow definition indicating a node configuration in a program based on a user's operation on the object.
- visual programming In software development, visual programming is known in which program development is performed using visual objects.
- each node that is a collection of processing is expressed as a block (object), and operations such as connecting these blocks are performed to flow the program (nodes included in the program, connections between nodes, etc.)
- object an object
- operations such as connecting these blocks are performed to flow the program (nodes included in the program, connections between nodes, etc.)
- the development support apparatus capable of executing visual programming, it is possible to output and save the definition of the flow of the created program as a file.
- the development support apparatus can continue to develop a similar program by reading a flow definition file.
- version management systems provide not only version management of source code and the like, but also a change proposal function, a support function for efficiently performing development in a team, such as difference confirmation between versions, and the like.
- developers define a development procedure within a team and proceed with development accordingly.
- the version control system manages text information and files. Therefore, it is also possible to manage the flow definition file output by the development support apparatus.
- the function of the difference display used when confirming the changed portion is for text, and it is difficult to grasp the correspondence with the visual expression on the development support device.
- Patent Document 1 discloses a technique of registering control logic created by a software development device in a version control system.
- Patent Document 2 discloses a technique capable of easily confirming the difference between a block diagram before change and a block diagram after change.
- the present invention has been made in view of the above circumstances, and an object thereof is to provide a technique capable of appropriately displaying information necessary for editing a flow definition in which a plurality of versions exist.
- a program development support apparatus according to one aspect according to a user's operation on an object indicating a processing node, a flow definition including a connection relationship between one or more processing nodes constituting the development target program and the processing node
- a first flow definition acquisition unit that acquires a first flow definition that is a flow definition at a predetermined time of the development target program, and a predetermined time after the first flow definition of the development target program
- Collision determination unit that determines whether the third flow definition storage unit, the third flow definition, and the second flow definition collide with each other
- a difference detection unit that detects a difference between processing nodes of the first flow definition and the second flow definition and detects a difference between processing nodes of the first flow definition and the third flow definition when it
- the display mode of the object indicating the processing node of the second flow definition is changed and displayed depending on whether there is a difference between the processing nodes of the first flow definition and the second flow definition and the case where there is no difference.
- a node display processing unit that changes and displays the display mode of the object indicating the processing node of the third flow definition depending on whether there is a difference between the flow definition and the third flow definition.
- FIG. 1 is an overall configuration diagram of a program development and management system according to an embodiment.
- FIG. 2 is a hardware configuration diagram of a visual program device according to an embodiment.
- FIG. 3 is a diagram showing an example of a repository management table according to an embodiment.
- FIG. 4 is a diagram showing an example of a change collision management table according to an embodiment.
- FIG. 5 is a flowchart of a program development process according to an embodiment.
- FIG. 6 is a flowchart of a flow definition reading process according to an embodiment.
- FIG. 7 is a flowchart of flow definition storage processing according to an embodiment.
- FIG. 8 is a flowchart of flow display processing according to an embodiment.
- FIG. 9 is a diagram showing an example of a flow display screen according to an embodiment.
- information may be described by the expression “AAA table”, but the information may be expressed by a data structure other than the table (for example, a list or an associative array). That is, the "AAA table” can be called “AAA information” to indicate that the information does not depend on the data structure.
- FIG. 1 is an overall configuration diagram of a program development and management system according to an embodiment.
- the program development management system 1 includes a visual program device 51 as an example of one or more program development support devices, and a version management system (VCS system) 61 as an example of a version management system.
- VCS system version management system
- One version control system 61 can manage versions of programs (flow definitions) in a plurality of visual program devices 51.
- the visual program device 51 may be configured by one or more computers. Further, the visual program device 51 may be configured by a virtual machine configured by one or more computers, and may be configured by, for example, a virtual machine realized by executing a container in the computer. Further, the version control system 61 may be configured by one or more computers. In addition, the version management system 61 may be configured by a virtual machine configured by one or more computers, and may be configured by, for example, a virtual machine realized by executing a container in the computer.
- the visual program device 51 and the VCS system 61 are connected via the communication network 20.
- the communication network 20 may be a wired Local Area Network (LAN), a wireless LAN, a Wide Area Network (WAN), or the like.
- the VCS system 61 holds one or more repositories 62.
- the repository 62 manages and holds a plurality of flow definitions for a development target program.
- the repository 62 can hold a branch 63 which can separate and manage different flow definitions of different concurrently developed versions of a predetermined development target program.
- the branch 63 manages the flow definition 64. If there is a change in the flow definition 64, the branch 63 also manages the history of the change.
- a definition (node definition) of a node (processing node) which is a group of processes (program parts) constituting a program, for example, identification information of a node, a connection relationship between a node and another node, etc. It contains the information shown.
- the branch 63 includes, for example, a branch (main branch) for managing a main flow definition (second flow definition) of the program to be developed, and a flow definition (first flow definition) of the main branch at a predetermined time.
- a branch development branch
- the development branch is created, for example, for each developer (user) who jointly edits the same development target program.
- the visual program device 51 includes an input / output unit 52, a flow execution unit 53, a flow editing unit 54, and a version management system cooperation unit (VCS cooperation unit) 55.
- VCS cooperation unit 55 corresponds to an example of a first flow definition acquisition unit, a second flow definition acquisition unit, a collision determination unit, a difference detection unit, and a transmission unit.
- the flow editing unit 54 corresponds to an example of the node display processing unit.
- the input / output unit 52 corresponds to an example of the change receiving unit.
- the input / output unit 52 receives, for example, an input from a user who uses the visual program device 51, and displays and outputs various information.
- the flow execution unit 53 executes a flow (program) corresponding to the created flow definition.
- the flow editing unit 54 creates a flow (display flow) to be displayed on the screen based on the flow definition.
- the VCS cooperation unit 55 cooperates with the VCS system 61 to manage the flow definition.
- the VCS cooperation unit 55 holds one or more local repositories 58 (an example of a third flow definition storage unit).
- the local repository 58 is created based on the state of the repository 62 of the VCS system 61 at a certain point in time. Therefore, at the beginning of creation, the local repository 58 has a branch (main branch on the local side) in the same state as the main branch existing in the repository 62 at that time. After that, when the update of the main branch or the like occurs in the VCS system 61, the main branch of the local repository 58 may be in a state different from the main branch of the VCS system 61.
- the local repository 58 comprises one or more branches 59.
- the branch 59 manages the flow definition 60.
- the branch 59 is created based on the main branch of the repository 62 (and the flow definition therein (first flow definition) at that time, when the user of the visual program device 51 starts editing the development target program. There is a development branch, and the user of the visual program device 51 changes the flow definition in this development branch, etc. This flow definition corresponds to the third flow definition.
- the VCS cooperation unit 55 has a repository management table 56 for managing the local repository 58 and a change collision management table 57 for managing information on change collision in the flow definition.
- FIG. 2 is a hardware configuration diagram of a visual program device according to an embodiment.
- the visual program device 51 includes, for example, a single computer, and communicates with a CPU (Central Processing Unit) 21 as an example of a processor, a memory 22, a storage device 23, an input device 24, and an output device 25. And an apparatus 26.
- the respective components 21 to 26 are communicably connected via, for example, a bus.
- the memory 22 is, for example, a RAM (Random Access Memory), and stores various programs including programs (program development support programs) for configuring the respective functional units of the visual program device 51.
- the CPU 21 executes various programs by executing programs stored in the memory 22.
- the storage device 23 is, for example, a non-volatile storage device such as a hard disk or a solid state drive (SSD), and stores various types of information including a program.
- the input device 24 is, for example, a keyboard or a mouse, and receives an input from the user of the visual program device 51.
- the output device 24 is, for example, a display, and displays and outputs various information.
- the communication device 26 communicates with an external device (VCS system 61 or the like) via the communication network 20.
- the input / output unit 52 in FIG. 1 is configured by the input device 24 and the output device 25.
- the flow execution unit 53 and the flow editing unit 54 are configured by the CPU 21 executing a program in the memory 22.
- the processing executed by the VCS cooperation unit 55 is configured by the CPU 21 executing a program of the memory 22. Therefore, the processing executed by the flow execution unit 53, the flow editing unit 54, and the VCS cooperation unit 55 can be said to be processing executed by the processor.
- the function of storing the repository management table 56, the change conflict management table 57, and the local repository 58 in the VCS cooperation unit 55 is configured by the storage device 23.
- FIG. 3 is a diagram showing an example of a repository management table according to an embodiment.
- the repository management table 56 is a table holding information indicating the correspondence between the repository 62 of the VCS system 61 and the local repository 58, and an entry (record) corresponding to each pair of the corresponding repository 62 and the local repository 58 Store
- the entries of the repository management table 56 include an external repository field 561, a main branch field 562, a local repository field 563, a development branch field 564, and a branch commit field 565.
- the external repository field 561 is an area for storing location information (for example, a URL or the like) of the repository 62 held by the VCS system 61.
- the main branch field 562 is an area for storing identification information (for example, a branch name) of the branch 63 (main branch) as a base of development designated by the user 50.
- the local repository field 563 is an area for storing location information of the local repository 58 corresponding to the repository 62 corresponding to the entry (for example, the path name of the local repository 58 in the visual program device 51).
- the development branch field 564 is an area for holding identification information (for example, a name of a development branch) of a branch (development branch) under development in the visual program device 51.
- the branch commit field 565 is an area for storing information (for example, the commit ID of the main branch at the time of branching) indicating the state of the repository 62 when the main branch and the development branch are branched (at the time when the development branch is created). It is. By using this commit ID, information (for example, flow definition) of the main branch at the time of branching can be acquired from the repository 62.
- information for example, flow definition
- FIG. 4 is a diagram showing an example of a change collision management table according to an embodiment.
- the change collision management table 57 is a table for holding information on conflicted nodes when there is a change conflict between two branches (between the main branch and the development branch), and corresponds to each conflicted node. Store the entry.
- collision means that each node in the flow definition of two branches can not be properly merged.
- the entry of the change collision management table 57 includes a node ID field 571, a branch time node definition field 572, a main branch node definition field 573, and a development branch node definition field 574.
- the node ID field 571 is an area for storing identification information (for example, a hash value or the like determined by the visual program device 51 for each node) uniquely indicating a node in which a change collision has occurred.
- the branch time node definition field 572 is an area for storing information (for example, a node definition of JSON format) at the time when the main branch and the development branch branch about the node in which the change conflict occurs. .
- the main branch node definition field 573 is an area for storing information of the node in the main branch (for example, a node definition in JSON format) about the node in which the change conflict occurs.
- the development branch node definition field 574 is an area for storing information (for example, a node definition in JSON format) of a node in a development branch regarding a node in which a change conflict occurs.
- FIG. 5 is a flowchart of a program development process according to an embodiment.
- the user 50 creates a repository (external repository) 62 for storing the flow definition of the development target program in the VCS system 61 (step S41).
- the visual program device 51 may be activated, and the user 50 may issue an operation instruction to the visual program device 51 to create the repository 62 in the VCS system 61 via the visual program device 51.
- step S42 the user 50 activates the visual program device 51.
- the visual program device 51 When activated, acquires a flow definition from the VCS system 61 by executing a flow definition reading process shown in FIG. 6 and displays a flow corresponding to the flow definition (step S43).
- the visual program device 51 executes editing of the displayed flow according to the operation input to the input / output unit 52 by the user 50 (step S44).
- the visual program device 51 executes a flow definition storage process shown in FIG. 7 for storing the flow definition in the VCS service 61 (step S45).
- FIG. 5 shows processing when developing a program for which the repository 62 is not created in the VCS system 61.
- the processing from step S42 may be performed.
- FIG. 6 is a flowchart of a flow definition reading process according to an embodiment.
- the flow definition reading process is a process corresponding to step S43 in FIG.
- the VCS cooperation unit 55 receives from the user 50 the specification of the repository 62 of the VCS system 61 that manages the flow definition of the program to be developed, and does the local repository corresponding to the accepted repository 62 exist as the local repository 58? It is determined whether or not it is not with reference to the repository management table 56 (step S431).
- the VCS cooperation unit 55 acquires the designated repository 62 from the VCS system 61 and supports the repository 62. Create a local repository 58 (step S432).
- a git command may be used.
- step S431 if there is a local repository 58 corresponding to the designated repository 62 (step S431: Yes), or if the local repository 58 is created at step S432, the VCS cooperation unit 55 sends the local repository 58
- the development branch 59 is newly created (step S433).
- the development branch 59 is created by copying various information of the main branch in the local repository 58 (the main branch acquired from the repository 62).
- the VCS cooperation unit 55 After creating the development branch 59, the VCS cooperation unit 55 adds an entry to the repository management table 56, and location information of the repository 62 of the VCS system 61, identification information of the main branch, location information of the local repository 58, In the corresponding field of the entry added with the identification information of the development branch and information indicating the state of the repository at the time of branching between the main branch and the development branch (when the development branch is created) (for example, commit ID at branch) It registers (step S434).
- the commit ID at the time of branching may be acquired from the VCS system 61, for example, when creating the development branch 59.
- the flow editing unit 54 reads the flow definition 60 stored in the development branch 59, creates a display flow corresponding to the flow definition 60 (step S435), and the input / output unit 52 includes a display flow Is displayed (step S436).
- FIG. 7 is a flowchart of flow definition storage processing according to an embodiment.
- the flow definition storage process is a process corresponding to step S45 of FIG.
- the VCS cooperation unit 55 refers to the repository management table 56 and the VCS system 61 corresponding to the development branch 59.
- the main branch 63 and the external repository 62 are specified, and it is determined whether or not the main branch 63 is updated after the development branch 59 is created (step S452).
- step S452 when there is no update in the main branch 63 (step S452: No), the VCS cooperation unit 55 prevents the change collision between the development branch and the main branch and causes the development branch to be the main branch. Since this means that there is no problem in merging, the process proceeds to step S461.
- step S 452 when the main branch 63 is updated (step S 452: Yes), the VCS cooperation unit 55 acquires the update contents of the main branch 63 from the VCS system 61 and updates the main branch 59 of the local repository 58 ( Step S453).
- the VCS cooperation unit 55 executes rebase processing for connecting the development branch to the updated main branch (step S454).
- the function of the rebase process for example, the function of a VCS system such as git may be incorporated in the VCS cooperation unit 55.
- change conflict the flow definition node of the development branch in the flow definition of the main branch
- information on the generated collision is additionally recorded in the file of the flow definition 60 and saved.
- the changed collision information may be identification information of a node in which the collision has occurred, or information indicating that a collision has occurred.
- the VCS cooperation unit 55 determines whether or not there is a conflict in the change of the flow definition between the development branch and the main branch. Specifically, the file of the flow definition of the development branch includes the change collision information It is judged whether or not it is determined (step S455). As a result, if no change conflict occurs (step S455: No), this means that there is no problem in merging the development branch with the main branch, so the VCS cooperation unit 55 steps the processing. Proceed to S461.
- step S455 if a change collision has occurred (step S455: Yes), that is, if the flow definition includes change collision information, the VCS cooperation unit 55 changes collision based on the change collision information. Identify all nodes where is occurring.
- the VCS cooperation unit 55 refers to the repository management table 56 for each of the identified nodes, and the node definition in the flow definition (first flow definition) of the main branch at the time of branching and the flow definition of the latest main branch.
- the node definition in (the second flow definition) and the node definition in the flow definition (the third flow definition) of the development branch are acquired from the repository 62 or the local repository 59.
- the VCS cooperation unit 55 adds a new entry corresponding to the node in which the change collision has occurred to the change collision management table 57, and the node ID field 571 of the added entry has the node in which the collision has occurred.
- the identification information is stored, and the corresponding node definition already acquired is stored in each of the branch time node definition field 572, the main branch node definition field 573, and the development branch node definition 574 (step S456).
- the flow editing unit 54 reads the flow definition including the change collision information and the change collision management table 57, and displays a flow for displaying the flow display screen 30 (see FIG. 9) including the information on the change collision of the node.
- a process (see FIG. 8) is performed (step S457).
- the user 50 can edit the flow definition for solving the collision by operating the input / output unit 52 with reference to the displayed flow display screen 30.
- the visual program device 51 reflects the editing content in the flow definition based on an operation on the input / output unit 52 by the user 50 (step S458).
- the VCS cooperation unit 55 executes processing for committing the flow definition in which the conflict has been eliminated to the development branch of the local repository 58 (Ste S459).
- the VCS cooperation unit 55 deletes the entry corresponding to the node from which the collision has been eliminated from the change collision management table 57 (step S460).
- PUSHed to the VCS system 61 that is, the development branch is registered in the VCS system 61 (step S461).
- the registered development branch is merged with the main branch, so that the content edited by the user 50 of the visual program device 51 is reflected in the flow definition of the main branch.
- the VCS cooperation unit 55 deletes the development branch pushed from the local repository 58 to the VCS system 61 (step S462), and deletes the entry corresponding to this development branch from the repository management table 56 (step S463).
- FIG. 8 is a flowchart of flow display processing according to an embodiment.
- the flow display process is a process corresponding to step S457 in FIG.
- the flow editing unit 54 reads a flow definition including change collision information (step S501), and acquires one node definition to be processed from one or more node definitions included in the flow definition (step S502).
- the flow editing unit 54 determines whether a node corresponding to the acquired node definition is registered in the change conflict management table 57 (step S503). As a result, when this node is not registered in the change collision management table 57 (step S503: No), it indicates that no change collision has occurred, so the flow editor 54 corresponds to this node.
- the block (object) to be selected is drawn in a display mode (for example, black) indicating that a change collision has not occurred (step S510), and the process proceeds to step S509.
- step S503 Yes
- the flow editing unit 54 acquires the node definition at the time of branching corresponding to this node from the change collision management table 57, and the block corresponding to the node (first processing node) at the time of branching is the node related to the collision. It draws in the predetermined display mode (for example, gray) which shows that there exists (step S504).
- the node editing unit 54 acquires the node definition of the main branch of this node from the change collision management table 57, and determines whether there is a difference between the node definition of the main branch and the node definition at the time of branching Step S505).
- step S505 when it is determined that there is no difference between the main branch node definition and the branch node definition (step S505: No), the node editing unit 54 branches the block corresponding to the main branch node.
- the drawing is performed in the same color (gray in this embodiment) as the block corresponding to the hour node (step S511), and the process proceeds to step S507.
- step S505 when it is determined that there is a difference between the main branch node definition and the branch node definition (step S505: Yes), the node editing unit 54 branches the block corresponding to the main branch node.
- the drawing is performed in a display mode (for example, blue) different from the block corresponding to the node (step S506), and the process proceeds to step S507.
- the node editing unit 54 can visually recognize that the node is deleted from the block corresponding to the main branch node. Draw in (for example, blue and dotted line).
- step S507 the node editing unit 54 acquires the node definition in the development branch of this node from the change collision management table 57, and determines whether there is a difference between the node definition in the development branch and the node definition at the time of branching. .
- step S507 when it is determined that there is no difference between the node definition of the development branch and the node definition at the time of branching (step S507: No), the node editing unit 54 branches the block corresponding to the node of the development branch.
- the drawing is performed in the same color (gray in this embodiment) as the block corresponding to the hour node (step S512), and the process proceeds to step S509.
- step S507 when it is determined that there is a difference between the node definition of the development branch and the node definition at the time of branching (step S507: Yes), the node editing unit 54 executes the main branch for the block corresponding to the node of the development branch.
- the drawing is performed in a display mode (for example, red) different from the block corresponding to the node and the block corresponding to the branch node (step S508), and the process proceeds to step S509.
- the node editing unit 54 can visually recognize that the node is deleted in the block corresponding to the node of the development branch.
- Draw in for example, red and dotted line).
- step S 509 the node editing unit 54 determines whether or not drawing of the block corresponding to the node is completed with all nodes included in the flow definition as the processing target, and sets all blocks as the processing target. If drawing has not been completed (step S509: No), the process proceeds to step S502, while if drawing of blocks having all nodes processed has been completed (step S509: Yes), End the flow display process.
- FIG. 9 is a diagram showing an example of a flow display screen according to an embodiment.
- the flow display screen 30 has a node selection area 31, a flow editing area 32, a node information display area 33, and a flow operation area 34.
- the node selection area 31 is an area for displaying a block (object) indicating a plurality of nodes available in the visual program device 51.
- the user 50 operates the input / output unit 52 to select the block of the node to be used from the blocks displayed in the node selection area 31, thereby selecting the block of the node selected in the flow editing area 32. It becomes possible to arrange and so on.
- the flow editing area 32 is an area for displaying a flow according to the flow definition.
- the flows displayed in the flow editing area 32 include blocks (such as 321 to 325) corresponding to the nodes included in the flow definition, connection lines indicating connection relationships among the nodes, and the like.
- the user 50 operates the input / output unit 52 to edit the flow definition (that is, the program) by editing the arrangement of nodes in the flow definition, the connection relation of the nodes, and the like in the flow editing area 32. it can.
- the flow editing area 32 when there is a conflict of change between the development branch and the main branch, it corresponds to the block corresponding to the branch node (branch node) and the main branch node (main node)
- the corresponding blocks and the blocks corresponding to the nodes of the development branch (development nodes) are displayed so that differences in node definition corresponding to each node can be easily grasped visually.
- block 322 corresponds to a branch node
- block 323 corresponds to a main node
- block 324 corresponds to a development node.
- nodes that were not present or deleted are displayed in a display mode (for example, dotted line) different from the blocks of other nodes so that that can be visually grasped.
- the newly added node may be displayed in a display mode different from the other so that the newly added node can be grasped.
- the contents of the node definition or the difference between the node definition of another node and the node definition may be displayed corresponding to the block corresponding to the node.
- the contents of the node definition and the difference between the node definition and other node definitions may be displayed in the vicinity of the block, and when the block is selected, the node definition or the other node
- the content of the difference from the node definition may be displayed in the node information display area 33.
- the node information display area 33 is an area in which the contents of the node definition regarding the node selected in the node selection area 31 or the flow editing area 32 are displayed.
- the flow operation area 34 is an area for selecting and designating an operation related to the management of the flow definition.
- the user 50 can designate an operation related to management by performing an operation on the node operation area 34 by the input / output unit 52.
- In the flow operation area 34 for example, reading of the flow definition, saving of the flow definition (commit), execution of the flow definition, and the like can be selected as an operation related to management of the flow definition.
- the main branch is acquired when the main branch of the VCS system 61 is updated, and the flow display processing is performed.
- the VCS cooperation unit 55 sequentially monitors whether or not the main branch in the repository 62 of the VCS system 61 is updated, and the main branch is updated. If it has been detected, the main branch may be acquired and flow display processing may be performed. In this way, change collisions that occur as a result of the main branch being updated can be grasped at an early stage, that is, at a point where there are relatively few parts involved in change collisions, and it is relatively easy to resolve change collisions. be able to. For this reason, the load at the time of eliminating the change collision to the user 50 can be reduced, and the development efficiency of the program can be improved.
- the flow display screen 30 displays three blocks corresponding to the branch node, the main node, and the development node.
- the present invention is not limited to this, and two blocks of a block corresponding to the main node and a block corresponding to the development node may be displayed. Also in this case, it is possible to visually grasp whether the main node has a difference with the branch node and whether the development node has a difference with the branch node.
- the present invention when there is a difference between nodes, the color or line type of the block corresponding to the node is changed, but the present invention is not limited to this, for example, to change the shape of the block The point is to change the visually recognizable display mode.
- a part or all of the processing performed by the CPU may be performed by a hardware circuit.
- the program in the above embodiment may be installed from a program source.
- the program source may be a program distribution server or storage medium (eg, portable storage medium).
- program development management system 20 communication network 21 CPU 22 memory 23 storage device 51 visual program device 52 input / output unit 53 flow execution unit 54 flow editing unit 55 ... VCS cooperation unit, 56 ... repository management table. 57: Change collision management table, 61: VCS system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
Description
本発明は、処理のまとまりを示すノードをオブジェクトとして表示し、オブジェクトに対するユーザの操作に基づいてプログラムにおけるノード構成を示すフロー定義を作成するプログラム開発支援装置等に関する。 The present invention relates to a program development support apparatus and the like that displays nodes indicating a group of processing as an object and creates a flow definition indicating a node configuration in a program based on a user's operation on the object.
ソフトウェア開発において、視覚的なオブジェクトを用いてプログラム開発を行うビジュアルプログラミングが知られている。ビジュアルプログラミングでは、処理のまとまりであるノードのそれぞれをブロック(オブジェクト)で表現し、これらのブロックをつなぐ等の操作をすることで、プログラムのフロー(プログラムに含まれるノードやノード間の接続等)を作成できる。このビジュアルプログラミングによると、プログラムのフローを視覚的に理解でき、プログラム言語の知識を有さないユーザでも容易にプログラムを開発することが可能である。 In software development, visual programming is known in which program development is performed using visual objects. In visual programming, each node that is a collection of processing is expressed as a block (object), and operations such as connecting these blocks are performed to flow the program (nodes included in the program, connections between nodes, etc.) Can create According to this visual programming, it is possible to visually understand the flow of a program, and it is possible for a user who does not have knowledge of the programming language to easily develop the program.
また、ビジュアルプログラミングが実行可能な開発支援装置では、作成されたプログラムのフローの定義を、ファイルとして出力、保存することが可能である。開発支援装置では、フロー定義のファイルを読み込むことで、同様のプログラムを継続して開発することが可能である。 In addition, in the development support apparatus capable of executing visual programming, it is possible to output and save the definition of the flow of the created program as a file. The development support apparatus can continue to develop a similar program by reading a flow definition file.
また、ソフトウェア開発においては、複数の開発者のチームで共同して同一のプログラムを開発することがあるが、この場合には、プログラムの整合性を保つためにバージョン管理システムが利用されることがある。バージョン管理システムには、ソースコード等のバージョン管理だけでなく、変更提案機能、バージョン間の差分確認等、チームでの開発を効率的に行うための支援機能を提供しているものもある。このようなバージョン管理システムの機能を活用してソフトウェア開発を推進する場合には、開発者達は、開発手順をチーム内で定め、それに従って開発を進めることとなる。 Also, in software development, teams of multiple developers sometimes jointly develop the same program, but in this case, a version control system may be used to maintain program integrity. is there. Some version management systems provide not only version management of source code and the like, but also a change proposal function, a support function for efficiently performing development in a team, such as difference confirmation between versions, and the like. When promoting software development using such a function of a version control system, developers define a development procedure within a team and proceed with development accordingly.
バージョン管理システムは、テキスト情報、ファイルを管理対象としている。このため、開発支援装置が出力したフロー定義のファイルについても管理可能である。しかしながら、変更箇所を確認する際に利用する差分表示の機能は、テキストを対象にしており、開発支援装置上での視覚的な表現との対応関係を把握することが難しい。 The version control system manages text information and files. Therefore, it is also possible to manage the flow definition file output by the development support apparatus. However, the function of the difference display used when confirming the changed portion is for text, and it is difficult to grasp the correspondence with the visual expression on the development support device.
また、バージョン管理システムを利用するためには、CLI(Command Line Interface)コマンドや、バージョン管理システムを用いた開発手順の知識が必要である。特に、ビジュアルプログラミングが実行可能な開発支援装置においては、ソフトウェア開発の専門的な知識を持たないユーザを主要な利用対象者としていることがあるので、バージョン管理システムを効率的に利用することは困難である。 Also, in order to use a version control system, it is necessary to have knowledge of a CLI (Command Line Interface) command and a development procedure using the version control system. In particular, in a development support device capable of executing visual programming, it is difficult to efficiently use a version control system since a user who does not have specialized knowledge of software development is the main target of use. It is.
         
 ビジュアルプログラミングに関する技術としては、例えば、特許文献1には、ソフトウェア開発装置で作成した制御ロジックをバージョン管理システムに登録する技術が開示されている。また、特許文献2には、変更前ブロックダイヤグラムと変更後ブロックダイヤグラムとの差分を容易に確認することのできる技術が開示されている。
As a technique relating to visual programming, for example, 
          
例えば、複数の開発者で共同して一つのプログラムの開発を行っている場合には、開発対象の一つのプログラムに対して、バージョンの異なる複数のフロー定義が存在する。この場合に、最終的なプログラムを作成するためには、一のフロー定義に対して、他のフロー定義をマージさせる必要がある。このような場合には、一のフロー定義と、他のフロー定義との間で衝突が発生してしまって、そのままマージできないことが発生する虞がある。 For example, in the case where a plurality of developers are jointly developing one program, there are a plurality of flow definitions of different versions for one program to be developed. In this case, in order to create a final program, it is necessary to merge another flow definition with one flow definition. In such a case, a collision may occur between one flow definition and another flow definition, and there is a possibility that the merge can not be performed as it is.
このように衝突が発生した場合には、フロー定義を修正する必要がある。この場合においては、例えば、一のフロー定義と、他のフロー定義との差分を表示させて、フロー定義を修正することが考えられる。 If a collision occurs in this way, it is necessary to correct the flow definition. In this case, for example, it is conceivable to display the difference between one flow definition and another flow definition to correct the flow definition.
しかしながら、一のフロー定義と、他のフロー定義との差分のみを確認しただけでは、フロー定義をどのように修正すればよいのか把握できない状況が発生し得る。例えば、2つのフロー定義が、共通の祖先となるフロー定義に対してそれぞれ修正を行ったような場合には、祖先となるフロー定義との差分を考慮しなければ、どのように修正すればよいのかを適切に把握できない。 However, a situation may occur where it can not be understood how to modify the flow definition only by checking the difference between one flow definition and the other flow definition. For example, in the case where two flow definitions respectively modify the common ancestor flow definition, how to correct it if not considering the difference with the ancestor flow definition I can not grasp what is
本発明は、上記事情に鑑みなされたものであり、その目的は、複数のバージョンが存在するフロー定義を編集するために必要な情報を適切に表示することのできる技術を提供することにある。 The present invention has been made in view of the above circumstances, and an object thereof is to provide a technique capable of appropriately displaying information necessary for editing a flow definition in which a plurality of versions exist.
上記目的を達成するため、一観点に係るプログラム開発支援装置は、開発対象プログラムを構成する1以上の処理ノード及び処理ノードの接続関係を含むフロー定義を、処理ノードを示すオブジェクトに対するユーザの操作に従って作成するプログラム開発支援装置において、開発対象プログラムの所定の時点におけるフロー定義である第1フロー定義を取得する第1フロー定義取得部と、開発対象プログラムの第1フロー定義に対して所定の時点以降の変更が反映された第2フロー定義を取得する第2フロー定義取得部と、開発対象プログラムの第1フロー定義を基にして所定の時点以降に変更が施された第3フロー定義を記憶する第3フロー定義記憶部と、第3フロー定義と、第2フロー定義とが衝突するか否かを判定する衝突判定部と、衝突すると判定された場合に、第1フロー定義と第2フロー定義との処理ノードの差分を検出するとともに、第1フロー定義と第3フロー定義との処理ノードの差分を検出する差分検出部と、第1フロー定義と第2フロー定義とで処理ノードに差異がある場合と差異がない場合とで、第2フロー定義の処理ノードを示すオブジェクトの表示態様を変えて表示するとともに、第1フロー定義と第3フロー定義とで差異がある場合と差異がない場合とで、第3フロー定義の処理ノードを示すオブジェクトの表示態様を変えて表示するノード表示処理部と、を備える。 In order to achieve the above object, a program development support apparatus according to one aspect according to a user's operation on an object indicating a processing node, a flow definition including a connection relationship between one or more processing nodes constituting the development target program and the processing node In the program development support apparatus to be created, a first flow definition acquisition unit that acquires a first flow definition that is a flow definition at a predetermined time of the development target program, and a predetermined time after the first flow definition of the development target program Storing a second flow definition acquisition unit for acquiring a second flow definition in which the change of the change is reflected, and storing a third flow definition changed after a predetermined time based on the first flow definition of the development target program Collision determination unit that determines whether the third flow definition storage unit, the third flow definition, and the second flow definition collide with each other A difference detection unit that detects a difference between processing nodes of the first flow definition and the second flow definition and detects a difference between processing nodes of the first flow definition and the third flow definition when it is determined that a collision occurs. The display mode of the object indicating the processing node of the second flow definition is changed and displayed depending on whether there is a difference between the processing nodes of the first flow definition and the second flow definition and the case where there is no difference. And a node display processing unit that changes and displays the display mode of the object indicating the processing node of the third flow definition depending on whether there is a difference between the flow definition and the third flow definition.
本発明によれば、複数のバージョンが存在するフロー定義を編集するために必要な情報を適切に表示することができる。 According to the present invention, it is possible to appropriately display information required to edit a flow definition in which there are multiple versions.
        
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。 Embodiments will be described with reference to the drawings. The embodiments described below do not limit the invention according to the claims, and all of the elements described in the embodiments and their combinations are essential to the solution means of the invention. There is no limit.
以下の説明では、「AAAテーブル」の表現にて情報を説明することがあるが、情報は、テーブル以外(例えばリストや連想配列)のデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「AAAテーブル」を「AAA情報」と呼ぶことができる。 In the following description, information may be described by the expression “AAA table”, but the information may be expressed by a data structure other than the table (for example, a list or an associative array). That is, the "AAA table" can be called "AAA information" to indicate that the information does not depend on the data structure.
         
(システム全体構成)
 図1は、一実施形態に係るプログラム開発管理システムの全体構成図である。
(System overall configuration) 
 FIG. 1 is an overall configuration diagram of a program development and management system according to an embodiment.
      
         
 プログラム開発管理システム1は、1以上のプログラム開発支援装置の一例としてのビジュアルプログラム装置51と、版管理システムの一例としてのバージョン管理システム(VCSシステム)61とを備える。一つのバージョン管理システム61は、複数のビジュアルプログラム装置51におけるプログラム(フロー定義)のバージョンを管理することができる。
The program 
         
 ビジュアルプログラム装置51は、1台以上のコンピュータで構成されてもよい。また、ビジュアルプログラム装置51は、1台以上のコンピュータにより構成される仮想マシンで構成されてもよく、例えば、コンピュータにおいてコンテナを実行することにより実現される仮想マシンで構成されてもよい。また、バージョン管理システム61は、1台以上のコンピュータで構成されてもよい。また、バージョン管理システム61は、1台以上のコンピュータにより構成される仮想マシンで構成されてもよく、例えば、コンピュータにおいてコンテナを実行することにより実現される仮想マシンで構成されてもよい。
The 
         
 ビジュアルプログラム装置51と、VCSシステム61とは、通信ネットワーク20を介して接続されている。通信ネットワーク20は、有線LAN(Local Area Network)、無線LAN、WAN(Wide Area Network)等であってよい。
The 
         
 VCSシステム61は、1以上のリポジトリ62を保持する。リポジトリ62は、開発対象プログラムについての複数のフロー定義を管理、保持する。リポジトリ62は、所定の開発対象プログラムに対する同時に並行して開発されるバージョンの異なるフロー定義を分離して管理可能なブランチ63を保持可能である。ブランチ63は、フロー定義64を管理する。ブランチ63は、フロー定義64に変更があった場合には、その変更の履歴についても管理する。フロー定義64には、プログラムを構成するひとまとまりの処理(プログラム部品)であるノード(処理ノード)の定義(ノード定義)、例えば、ノードの識別情報や、ノードと他のノードと接続関係等を示す情報が含まれる。
The VCS 
         
 ブランチ63には、例えば、開発対象プログラムの主となるフロー定義(第2フロー定義)を管理するブランチ(主ブランチ)と、所定の時点における主ブランチのフロー定義(第1フロー定義)に基づいて作成され、編集されるフロー定義を管理するブランチ(開発ブランチ)とがある。開発ブランチは、例えば、同一の開発対象プログラムを共同で編集する開発者(ユーザ)ごとに作成される。
The 
         
 ビジュアルプログラム装置51は、入出力部52と、フロー実行部53と、フロー編集部54と、バージョン管理システム連携部(VCS連携部)55とを備える。ここで、VCS連携部55が、第1フロー定義取得部、第2フロー定義取得部、衝突判定部、差分検出部、及び送信部の一例に相当する。また、フロー編集部54がノード表示処理部の一例に相当する。また、入出力部52が変更受付部の一例に相当する。
The 
         
 入出力部52は、例えば、ビジュアルプログラム装置51を使用するユーザからの入力を受け付けると共に、各種情報を表示出力する。フロー実行部53は、作成されたフロー定義に対応するフロー(プログラム)を実行する。フロー編集部54は、フロー定義に基づいて、画面に表示させるフロー(表示フロー)を作成する。VCS連携部55は、VCSシステム61と連携してフロー定義を管理する処理を行う。
The input / 
         
 VCS連携部55は、1以上のローカルリポジトリ58(第3フロー定義記憶部の一例)を保持する。ローカルリポジトリ58は、或る時点におけるVCSシステム61のリポジトリ62の状態に基づいて作成される。したがって、作成当初においては、ローカルリポジトリ58には、その時点においてリポジトリ62に存在する主ブランチと同様な状態のブランチ(ローカル側の主ブランチ)が存在する。なお、それ以降においては、VCSシステム61において主ブランチの更新等が発生すると、ローカルリポジトリ58の主ブランチがVCSシステム61の主ブランチと異なる状態となることがある。ローカルリポジトリ58は、1以上のブランチ59を備える。ブランチ59は、フロー定義60を管理する。ブランチ59としては、ビジュアルプログラム装置51のユーザが開発対象プログラムの編集を開始する際に、その時点におけるリポジトリ62の主ブランチ(及びその中のフロー定義(第1フロー定義)に基づいて作成される開発ブランチがある。ビジュアルプログラム装置51のユーザは、この開発ブランチ内のフロー定義に対して変更等を行うこととなる。このフロー定義が第3フロー定義に相当する。
The 
         
 また、VCS連携部55は、ローカルリポジトリ58を管理するためのリポジトリ管理テーブル56と、フロー定義における変更衝突に関する情報を管理するための変更衝突管理テーブル57を有する。
Further, the 
         
(ハードウェア構成)
 図2は、一実施形態に係るビジュアルプログラム装置のハードウェア構成図である。
(Hardware configuration) 
 FIG. 2 is a hardware configuration diagram of a visual program device according to an embodiment.
      
         
 ビジュアルプログラム装置51は、例えば、1台のコンピュータにより構成され、プロセッサの一例としてのCPU(Central Processing Unite)21と、メモリ22と、記憶装置23と、入力装置24と、出力装置25と、通信装置26とを備える。各構成要素21~26は、例えば、バスを介して通信可能に接続されている。
The 
         
 メモリ22は、例えば、RAM(Random Access Memory)であり、ビジュアルプログラム装置51の各機能部を構成するためのプログラム(プログラム開発支援プログラム)を含む種々のプログラムを記憶する。CPU21は、メモリ22に記憶されているプログラムを実行することにより、各種処理を実行する。記憶装置23は、例えば、ハードディスクやSSD(Solid State Drive)等の不揮発性の記憶装置であり、プログラムを含む各種情報を記憶する。入力装置24は、例えば、キーボードやマウスなどであり、ビジュアルプログラム装置51のユーザからの入力を受け付ける。出力装置24は、例えば、ディスプレイであり、各種情報を表示出力する。通信装置26は、通信ネットワーク20を介して、外部の装置(VCSシステム61等)との通信を行う。
The 
         
 ここで、図1の入出力部52は、入力装置24及び出力装置25により構成される。また、フロー実行部53及びフロー編集部54は、CPU21がメモリ22のプログラムを実行することにより構成される。VCS連携部55が実行する処理は、CPU21がメモリ22のプログラムを実行することにより構成される。したがって、フロー実行部53、フロー編集部54、及びVCS連携部55が実行する処理は、プロセッサが実行する処理ということができる。VCS連携部55におけるリポジトリ管理テーブル56、変更衝突管理テーブル57、及びローカルリポジトリ58を記憶する機能は、記憶装置23により構成される。
Here, the input / 
         
(リポジトリ管理テーブル)
 図3は、一実施形態に係るリポジトリ管理テーブルの一例を示す図である。
(Repository management table) 
 FIG. 3 is a diagram showing an example of a repository management table according to an embodiment.
      
         
 リポジトリ管理テーブル56は、VCSシステム61のリポジトリ62と、ローカルリポジトリ58との対応関係を示す情報を保持するテーブルであり、対応するリポジトリ62とローカルリポジトリ58との組毎に対応するエントリ(レコード)を格納する。リポジトリ管理テーブル56のエントリは、外部リポジトリフィールド561と、主ブランチフィールド562、ローカルリポジトリフィールド563と、開発ブランチフィールド564と、分岐コミットフィールド565とを含む。
The repository management table 56 is a table holding information indicating the correspondence between the 
         
 外部リポジトリフィールド561は、VCSシステム61が保持するリポジトリ62の場所情報(例えば、URLなど)を格納する領域である。主ブランチフィールド562は、ユーザ50が指定した開発のベースとなるブランチ63(主ブランチ)の識別情報(例えば、ブランチ名)を格納する領域である。ローカルリポジトリフィールド563は、エントリに対応するリポジトリ62と対応するローカルリポジトリ58の場所情報(例えば、ビジュアルプログラム装置51におけるローカルリポジトリ58のパス名)を格納する領域である。開発ブランチフィールド564は、ビジュアルプログラム装置51において開発が進められているブランチ(開発ブランチ)の識別情報(例えば、開発ブランチの名前)を保持する領域である。分岐コミットフィールド565は、主ブランチと、開発ブランチとが分岐した時点(開発ブランチが作成された時点)のリポジトリ62の状態を示す情報(例えば、分岐時の主ブランチのコミットID)を格納する領域である。このコミットIDを用いることにより、リポジトリ62から分岐時の主ブランチの情報(例えば、フロー定義)を取得することができる。
The 
         
(変更衝突管理テーブル)
 図4は、一実施形態に係る変更衝突管理テーブルの一例を示す図である。
(Change conflict management table) 
 FIG. 4 is a diagram showing an example of a change collision management table according to an embodiment.
      
変更衝突管理テーブル57は、2つのブランチ間(主ブランチと開発ブランチとの間)に変更の衝突があった場合における、衝突したノードの情報を保持するテーブルであり、衝突したノード毎に対応するエントリを格納する。ここで、衝突とは、2つのブランチのフロー定義における各ノードを適切にマージできない状態を意味している。 The change collision management table 57 is a table for holding information on conflicted nodes when there is a change conflict between two branches (between the main branch and the development branch), and corresponds to each conflicted node. Store the entry. Here, the term "collision" means that each node in the flow definition of two branches can not be properly merged.
         
 変更衝突管理テーブル57のエントリは、ノードIDフィールド571と、分岐時ノード定義フィールド572と、主ブランチノード定義フィールド573と、開発ブランチノード定義フィールド574とを含む。
The entry of the change collision management table 57 includes a 
         
 ノードIDフィールド571は、変更の衝突が発生しているノードを一意に示す識別情報(例えば、ビジュアルプログラム装置51が各ノードに定めるハッシュ値など)を格納する領域である。分岐時ノード定義フィールド572は、変更の衝突が発生しているノードについての、主ブランチと開発ブランチとが分岐した時点でのノードの情報(例えば、JSON形式のノード定義)を格納する領域である。主ブランチノード定義フィールド573は、変更の衝突が発生しているノードについての、主ブランチにおけるノードの情報(例えば、JSON形式のノード定義)を格納する領域である。開発ブランチノード定義フィールド574は、変更の衝突が発生しているノードについての、開発ブランチにおけるノードの情報(例えば、JSON形式のノード定義)を格納する領域である。
The 
         
(ビジュアルプログラミングにおける開発の流れ)
 次に、ビジュアルプログラミングにおける開発の流れの一例に沿って、本実施形態に係るビジュアルプログラム装置51の動作を説明する。
(Flow of development in visual programming) 
 Next, the operation of the 
図5は、一実施形態に係るプログラム開発処理のフローチャートである。 FIG. 5 is a flowchart of a program development process according to an embodiment.
         
 ユーザ50は、VCSシステム61に対して、開発対象プログラムのフロー定義を保存するためのリポジトリ(外部リポジトリ)62を作成する(ステップS41)。なお、ビジュアルプログラム装置51を起動して、ビジュアルプログラム装置51に対してユーザ50が操作指示を行って、ビジュアルプログラム装置51を介してVCSシステム61に、リポジトリ62を作成するようにしてもよい。
The 
         
 次いで、ユーザ50は、ビジュアルプログラム装置51を起動する(ステップS42)。
Next, the 
         
 ビジュアルプログラム装置51は、起動されると、図6に示すフロー定義読み込み処理を実行することにより、VCSシステム61からフロー定義を取得し、フロー定義に対応するフローを表示する(ステップS43)。
When activated, the 
         
 次いで、ビジュアルプログラム装置51は、ユーザ50による入出力部52に対する操作入力に従って、表示されたフローに対する編集を実行する(ステップS44)。
Next, the 
         
 ビジュアルプログラム装置51は、ユーザ50から編集の終了指示を受け付けると、フロー定義をVCSサービス61に保存する図7に示すフロー定義保存処理を実行する(ステップS45)。
When the 
         
 なお、図5は、VCSシステム61にリポジトリ62を作成していないプログラムの開発を行う場合の処理を示しているが、例えば、既にリポジトリ62が作成されているプログラムの開発を行う場合には、ステップS42からの処理を実行するようにすればよい。
Note that FIG. 5 shows processing when developing a program for which the 
         
(フロー定義読み込み処理の流れ)
 図6は、一実施形態に係るフロー定義読み込み処理のフローチャートである。フロー定義読み込み処理は、図5のステップS43に対応する処理である。
(Flow of flow definition reading process) 
 FIG. 6 is a flowchart of a flow definition reading process according to an embodiment. The flow definition reading process is a process corresponding to step S43 in FIG.
      
         
 まず、VCS連携部55は、ユーザ50から開発対象のプログラムのフロー定義を管理するVCSシステム61のリポジトリ62の指定を受け付け、受け付けたリポジトリ62に対応するローカルリポジトリが、ローカルリポジトリ58として存在するか否かを、リポジトリ管理テーブル56を参照して判断する(ステップS431)。
First, the 
         
 この結果、指定されたリポジトリ62に対応するローカルリポジトリ58が存在しない場合(ステップS431:No)には、VCS連携部55は、VCSシステム61から指定されたリポジトリ62を取得し、リポジトリ62に対応するローカルリポジトリ58を作成する(ステップS432)。VCSシステム61からリポジトリ62を取得する際には、例えば、VCSシステム61がgitである場合には、gitコマンドを利用すればよい。
As a result, if the 
         
 一方、指定されたリポジトリ62に対応するローカルリポジトリ58が存在する場合(ステップS431:Yes)、又は、ステップS432でローカルリポジトリ58を作成した場合には、VCS連携部55は、ローカルリポジトリ58に、開発ブランチ59を新たに作成する(ステップS433)。ここで、開発ブランチ59は、ローカルリポジトリ58内の主ブランチ(リポジトリ62から取得された主ブランチ)の各種情報をコピーして作成される。開発ブランチ59を作成した後、VCS連携部55は、リポジトリ管理テーブル56にエントリを追加し、VCSシステム61のリポジトリ62の場所情報と、主ブランチの識別情報と、ローカルリポジトリ58の場所情報と、開発ブランチの識別情報と、主ブランチと開発ブランチとの分岐時(開発ブランチを作成した時)のリポジトリの状態を示す情報(例えば、分岐時のコミットID)とを追加したエントリの対応するフィールドに登録する(ステップS434)。なお、分岐時のコミットIDは、例えば、開発ブランチ59を作成する際に、VCSシステム61から取得するようにすればよい。
On the other hand, if there is a 
         
 次いで、フロー編集部54が開発ブランチ59に格納されているフロー定義60を読み込み、フロー定義60に対応する表示用のフローを作成し(ステップS435)、入出力部52が表示用フローを含む画面を表示する(ステップS436)。
Next, the 
         
(フロー定義保存処理の流れ)
 図7は、一実施形態に係るフロー定義保存処理のフローチャートである。フロー定義保存処理は、図5のステップS45に対応する処理である。
(Flow of flow definition saving process) 
 FIG. 7 is a flowchart of flow definition storage processing according to an embodiment. The flow definition storage process is a process corresponding to step S45 of FIG.
      
         
 ビジュアルプログラム装置51が、ユーザ50からフロー定義を開発ブランチにコミットする要求を受け付けると(ステップS451)、VCS連携部55がリポジトリ管理テーブル56を参照して、開発ブランチ59に対応するVCSシステム61の主ブランチ63及び外部リポジトリ62を特定し、開発ブランチ59を作成した時点以降において主ブランチ63に更新があるか否かを判断する(ステップS452)。
When the 
         
 この結果、主ブランチ63に更新がない場合(ステップS452:No)には、VCS連携部55は、開発ブランチと主ブランチとの間に変更衝突が発生することがなく、開発ブランチを主ブランチにマージしても問題ないことを意味しているので、処理をステップS461に進める。
As a result, when there is no update in the main branch 63 (step S452: No), the 
         
 一方、主ブランチ63に更新がある場合(ステップS452:Yes)には、VCS連携部55は、VCSシステム61から主ブランチ63の更新内容を取得し、ローカルリポジトリ58の主ブランチ59を更新する(ステップS453)。
On the other hand, when the 
         
 次いで、VCS連携部55は、開発ブランチを更新後の主ブランチに接続するrebase処理を実行する(ステップS454)。rebase処理の機能は、例えば、git等のVCSシステムの機能をVCS連携部55に組み込んでおくようにすればよい。rebase処理においては、開発ブランチのフロー定義(第3フロー定義)と主ブランチのフロー定義(第2フロー定義)とについて、変更の衝突(開発ブランチのフロー定義のノードを主ブランチのフロー定義内に接続できない部分が存在すること)が発生すると、発生した衝突に関する情報(変更衝突情報)をフロー定義60のファイル内に追記して保存する。変更衝突情報としては、衝突が発生したノードの識別情報であってもよく、衝突があった旨の情報であってもよい。
Next, the 
         
 次いで、VCS連携部55は、開発ブランチと主ブランチとのフロー定義の変更の衝突が発生しているか否かを判断する、具体的には、開発ブランチのフロー定義のファイルに変更衝突情報が含まれているか否かを判断する(ステップS455)。この結果、変更の衝突が発生していない場合(ステップS455:No)には、開発ブランチを主ブランチにマージしても問題ないことを意味しているので、VCS連携部55は、処理をステップS461に進める。
Next, the 
         
 一方、変更の衝突が発生している場合(ステップS455:Yes)、すなわち、フロー定義に変更衝突情報が含まれている場合には、VCS連携部55は、変更衝突情報に基づいて、変更衝突が発生している全てのノードを特定する。次いで、VCS連携部55は、特定したそれぞれのノードに関して、リポジトリ管理テーブル56を参照して、分岐時の主ブランチのフロー定義(第1フロー定義)におけるノード定義と、最新の主ブランチのフロー定義(第2フロー定義)におけるノード定義と、開発ブランチのフロー定義(第3フロー定義)におけるノード定義とをリポジトリ62又はローカルリポジトリ59から取得する。次いで、VCS連携部55は、変更衝突管理テーブル57に変更衝突が発生しているノードに対応する新たなエントリを追加し、追加したエントリのノードIDフィールド571に、衝突が発生しているノードの識別情報を格納し、分岐時ノード定義フィールド572、主ブランチノード定義フィールド573、及び開発ブランチノード定義574のそれぞれに、既に取得している対応するノード定義を保存する(ステップS456)。
On the other hand, if a change collision has occurred (step S455: Yes), that is, if the flow definition includes change collision information, the 
         
 次いで、フロー編集部54は、変更衝突情報を含むフロー定義と、変更衝突管理テーブル57とを読み込み、ノードの変更衝突に関する情報を含むフロー表示画面30(図9参照)を表示するためのフロー表示処理(図8参照)を行う(ステップS457)。
Next, the 
         
 これにより、ユーザ50は、表示されたフロー表示画面30を参照して、入出力部52を操作することにより、衝突を解決するためのフロー定義の編集を行うことができる。この際、ビジュアルプログラム装置51は、ユーザ50による入出力部52に対する操作に基づいて、フロー定義に編集内容を反映する(ステップS458)。
Thereby, the 
         
 次いで、ユーザ50から、衝突を解消したフロー定義を開発ブランチへコミットする要求を受け付けると、VCS連携部55は、衝突を解消したフロー定義をローカルリポジトリ58の開発ブランチへコミットする処理を実行する(ステップS459)。この結果、フロー定義の開発ブランチへのコミットが成功すると、VCS連携部55は、変更衝突管理テーブル57から衝突を解消したノードに対応するエントリを削除し(ステップS460)、ローカルリポジトリ58の開発ブランチをVCSシステム61にPUSHする、すなわち、開発ブランチをVCSシステム61へ登録する(ステップS461)。なお、VCSシステム61では、登録された開発ブランチが、主ブランチとマージされることにより、ビジュアルプログラム装置51のユーザ50により編集された内容が主ブランチのフロー定義に反映されることとなる。
Next, upon receiving a request from the 
         
 次いで、VCS連携部55は、ローカルリポジトリ58からVCSシステム61にプッシュした開発ブランチを削除し(ステップS462)、リポジトリ管理テーブル56から、この開発ブランチに対応するエントリを削除する(ステップS463)。
Next, the 
         
(フロー表示処理の流れ)
 図8は、一実施形態に係るフロー表示処理のフローチャートである。フロー表示処理は、図7のステップS457に対応する処理である。
(Flow of flow display process) 
 FIG. 8 is a flowchart of flow display processing according to an embodiment. The flow display process is a process corresponding to step S457 in FIG.
      
         
 まず、フロー編集部54は、変更衝突情報を含むフロー定義を読み込み(ステップS501)、フロー定義に含まれる1以上のノード定義から処理対象とする1つのノード定義を取得する(ステップS502)。
First, the 
         
 次いで、フロー編集部54は、変更衝突管理テーブル57に、取得したノード定義に対応するノードが登録されているか否かを判断する(ステップS503)。この結果、このノードが変更衝突管理テーブル57に登録されていない場合(ステップS503:No)には、変更衝突が発生していないことを示しているので、フロー編集部54は、このノードに対応するブロック(オブジェクト)を変更衝突が発生していないことを示す表示態様(例えば、黒色)で描画し(ステップS510)、処理をステップS509に進める。
Next, the 
         
 一方、このノードが変更衝突管理テーブル57に登録されている場合(ステップS503:Yes)には、このノードについて、主ブランチと、開発ブランチとの間で変更衝突が発生していることを示しており、フロー編集部54は、変更衝突管理テーブル57からこのノードに対応する分岐時のノード定義を取得し、分岐時のノード(第1処理ノード)に対応するブロックを、衝突に関係するノードであることを示す所定の表示態様(例えば、灰色)で描画する(ステップS504)。
On the other hand, when this node is registered in the change collision management table 57 (step S503: Yes), it indicates that a change collision has occurred between the main branch and the development branch for this node. The 
         
 次に、ノード編集部54は、このノードの主ブランチにおけるノード定義を変更衝突管理テーブル57から取得し、主ブランチのノード定義と分岐時のノード定義とに差分があるか否かを判断する(ステップS505)。
Next, the 
         
 この結果、主ブランチのノード定義と分岐時のノード定義とに差分がないと判断された場合(ステップS505:No)には、ノード編集部54は、主ブランチのノードに対応するブロックを、分岐時のノードに対応するブロックと同じ色(本実施形態では、灰色)で描画し(ステップS511)、処理をステップS507に進める。
As a result, when it is determined that there is no difference between the main branch node definition and the branch node definition (step S505: No), the 
         
 一方、主ブランチのノード定義と分岐時のノード定義とに差分があると判断された場合(ステップS505:Yes)には、ノード編集部54は、主ブランチのノードに対応するブロックを、分岐時のノードに対応するブロックと異なる表示態様(例えば、青色)で描画し(ステップS506)、処理をステップS507に進める。なお、ステップS506において、主ブランチのノードが削除されている場合は、ノード編集部54は、主ブランチのノードに対応するブロックを、ノードが削除されていることを視覚的に認識可能な表示態様(例えば、青色且つ点線)で描画する。このようにブロックの表示を行うと、主ブランチのノードに対応するブロックと、分岐時のノードに対応するブロックとの表示態様を見比べることにより、これらノード間に差分があるか否かを視覚的に容易かつ適切に把握することができる。
On the other hand, when it is determined that there is a difference between the main branch node definition and the branch node definition (step S505: Yes), the 
         
 ステップS507では、ノード編集部54は、このノードの開発ブランチにおけるノード定義を変更衝突管理テーブル57から取得し、開発ブランチのノード定義と分岐時のノード定義とに差分があるか否かを判断する。
In step S507, the 
         
 この結果、開発ブランチのノード定義と分岐時のノード定義とに差分がないと判断された場合(ステップS507:No)には、ノード編集部54は、開発ブランチのノードに対応するブロックを、分岐時のノードに対応するブロックと同じ色(本実施形態では、灰色)で描画し(ステップS512)、処理をステップS509に進める。
As a result, when it is determined that there is no difference between the node definition of the development branch and the node definition at the time of branching (step S507: No), the 
         
 一方、開発ブランチのノード定義と分岐時のノード定義とに差分があると判断された場合(ステップS507:Yes)には、ノード編集部54は、開発ブランチのノードに対応するブロックを、主ブランチのノードに対応するブロック及び分岐時のノードに対応するブロックと異なる表示態様(例えば、赤色)で描画し(ステップS508)、処理をステップS509に進める。なお、ステップS508において、開発ブランチのノードが削除されている場合は、ノード編集部54は、開発ブランチのノードに対応するブロックを、ノードが削除されていることを視覚的に認識可能な表示態様(例えば、赤色且つ点線)で描画する。このようにブロックを表示すると、開発ブランチのノードに対応するブロックと、分岐時のノードに対応するブロックとの表示態様を見比べることにより、これらノード間に差分があるか否かを視覚的に容易かつ適切に把握することができる。また、開発ブランチのノードに対応するブロックと、主ブランチのノードに対応するブロックとの表示態様を見比べることにより、これらノード間に差分があるか否かを視覚的に容易かつ適切に把握することができる。なお、各ノードのブロックから次のノードのブロックにつながるリンク線については、このノードについてのノード定義の中に次のノードが指定されている場合には、各ノードのブロックの色に合わせて描画してもよい。
On the other hand, when it is determined that there is a difference between the node definition of the development branch and the node definition at the time of branching (step S507: Yes), the 
         
 ステップS509では、ノード編集部54は、フロー定義に含まれる全てのノードを処理対象として、ノードに対応するブロックの描画が完了したか否かを判断し、全てのノードを処理対象としたブロックの描画が完了していない場合(ステップS509:No)には、処理をステップS502に進める一方、全てのノードを処理対象としたブロックの描画が完了している場合(ステップS509:Yes)には、フロー表示処理を終了する。
In step S 509, the 
         
(フロー表示画面)
 図9は、一実施形態に係るフロー表示画面の一例を示す図である。
(Flow display screen) 
 FIG. 9 is a diagram showing an example of a flow display screen according to an embodiment.
      
         
 フロー表示画面30は、ノード選択領域31と、フロー編集領域32と、ノード情報表示領域33と、フロー操作領域34とを有する。
The 
         
 ノード選択領域31は、ビジュアルプログラム装置51で利用可能な複数のノードを示すブロック(オブジェクト)を表示するための領域である。ユーザ50は、入出力部52を操作して、ノード選択領域31に表示されているブロックの中から、使用したいノードのブロックを選択することにより、フロー編集領域32で選択されたノードのブロックを配置等することができるようになる。
The 
         
 フロー編集領域32は、フロー定義に従ったフローを表示するための領域である。フロー編集領域32に表示されるフローとしては、フロー定義に含まれるノードに対応するブロック(321~325等)や、ノード間の接続関係を示す接続線等が含まれる。ユーザ50は、入出力部52を操作することにより、フロー編集領域32において、フロー定義におけるノードの配置や、ノードの接続関係等を編集することでフロー定義(すなわち、プログラム)を編集することができる。
The 
         
 フロー編集領域32においては、開発ブランチと主ブランチとの間で変更の衝突があった場合には、分岐時のノード(分岐時ノード)に対応するブロック、主ブランチのノード(主ノード)に対応するブロック、及び開発ブランチのノード(開発ノード)に対応するブロックが、各ノードに対応するノード定義の差分が視覚的に容易に把握できるように表示される。例えば、ブロック322が分岐時ノードに対応し、ブロック323が主ノードに対応し、ブロック324が開発ノードに対応する。ブロック322,323,324の表示態様を見ることにより、各ブロックに対応するノードのノード定義に差分があるか否かを視覚的に容易に把握することができる。図9に示す例では、ブロック322に対応する分岐時ノードと、ブロック323に対応する主ノードとのノード定義に差分があり、また、ブロック322に対応する分岐時ノードと、ブロック324に対応する開発ノードとのノード定義に差分があることを示している。
In the 
         
 フロー編集領域32において、存在していなかったノードや、削除されたノードについては、そのことが視覚的に把握できるように、他のノードのブロックと異なる表示態様(例えば、点線)で表示するようにしてもよく、また、新たに追加されたノードについては、新たに追加されたことを把握できるように他と異なる表示態様で表示するようにしてもよい。また、フロー編集領域32において、ノードに対応するブロックに対応してノード定義や、他のノードのノード定義との差分の内容を表示するようにしてもよい。具体的には、ブロックの近傍にノード定義や、他のノードのノード定義との差分の内容を表示するようにしてもよく、ブロックが選択等された際に、ノード定義や、他のノードのノード定義との差分の内容をノード情報表示領域33に表示するようにしてもよい。これにより、フロー表示画面30に、ノード定義や、差分の内容を適切に表示することができ、ユーザは、容易かつ適切にその内容を把握することができる。
In the 
         
 ノード情報表示領域33は、ノード選択領域31やフロー編集領域32で選択されたノードに関するノード定義の内容が表示される領域である。
The node 
         
 フロー操作領域34は、フロー定義の管理に関する動作を選択指定するための領域である。ユーザ50は、ノード操作領域34に対して入出力部52による操作を行うことにより、管理に関する動作を指定することができる。フロー操作領域34においては、フロー定義の管理に関する動作としては、例えば、フロー定義の読み込み、フロー定義の保存(コミット)、フロー定義の実行などを選択できる。
The flow operation area 34 is an area for selecting and designating an operation related to the management of the flow definition. The 
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。 The present invention is not limited to the embodiments described above, and can be appropriately modified and implemented without departing from the spirit of the present invention.
         
 例えば、上記実施形態では、図7に示すように、フロー定義を開発ブランチにコミットすることを起点として、VCSシステム61の主ブランチに更新がある場合に、主ブランチを取得して、フロー表示処理を行うようにしていたが、本発明はこれに限られず、例えば、VCS連携部55が、VCSシステム61のリポジトリ62における主ブランチが更新されたか否かを逐次監視するようにし、主ブランチが更新されたことを検出した場合に、主ブランチを取得してフロー表示処理を行うようにしてもよい。このようにすると、主ブランチが更新されたことにより発生する変更衝突について、早期に、すなわち、変更衝突に関わる部分が比較的少ない時点において把握することができ、変更衝突を比較的容易に解消することができる。このため、ユーザ50に対する変更衝突を解消する際の負荷を低減することができ、プログラムの開発効率を向上することができる。
For example, in the above embodiment, as shown in FIG. 7, starting from committing the flow definition to the development branch, the main branch is acquired when the main branch of the 
         
 また、上記実施形態では、フロー表示画面30において、開発ブランチと主ブランチ間で変更の衝突があった場合には、分岐時ノード、主ノード、開発ノードに対応する3つのブロックを表示するようにしていたが、本発明はこれに限られず、主ノードに対応するブロックと、開発ノードに対応するブロックとの2つを表示するようにしてもよい。このようにしても、主ノードが分岐ノードと差分があるか否か、開発ノードが分岐ノードと差分があるか否かを視覚的に把握することができる。
Further, in the above embodiment, when there is a change conflict between the development branch and the main branch, the 
また、上記実施形態では、ノード間に差分がある場合に、ノードに対応するブロックの色や線種を変えるようにしていたが、本発明はこれに限られず、例えば、ブロックの形状を変えるようにしてもよく、要は、視覚的に認識可能な表示態様を変えるようにすればよい。 In the above embodiment, when there is a difference between nodes, the color or line type of the block corresponding to the node is changed, but the present invention is not limited to this, for example, to change the shape of the block The point is to change the visually recognizable display mode.
また、上記実施形態において、CPUが行っていた処理の一部又は全部を、ハードウェア回路で行うようにしてもよい。また、上記実施形態におけるプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記憶メディア(例えば可搬型の記憶メディア)であってもよい。 Further, in the above embodiment, a part or all of the processing performed by the CPU may be performed by a hardware circuit. Also, the program in the above embodiment may be installed from a program source. The program source may be a program distribution server or storage medium (eg, portable storage medium).
         
 1…プログラム開発管理システム、20…通信ネットワーク、21…CPU、22…メモリ、23…記憶装置、51…ビジュアルプログラム装置、52…入出力部、53…フロー実行部、54…フロー編集部、55…VCS連携部、56…リポジトリ管理テーブル。57…変更衝突管理テーブル、61…VCSシステム
 
1 program 
 
 
      
Claims (15)
前記開発対象プログラムの所定の時点におけるフロー定義である第1フロー定義を取得する第1フロー定義取得部と、
前記開発対象プログラムの前記第1フロー定義に対して前記所定の時点以降の変更が反映された第2フロー定義を取得する第2フロー定義取得部と、
前記開発対象プログラムの前記第1フロー定義を基にして前記所定の時点以降に変更が施された第3フロー定義を記憶する第3フロー定義記憶部と、
前記第3フロー定義と、前記第2フロー定義とが衝突するか否かを判定する衝突判定部と、
衝突すると判定された場合に、前記第1フロー定義と前記第2フロー定義との処理ノードの差分を検出するとともに、前記第1フロー定義と前記第3フロー定義との処理ノードの差分を検出する差分検出部と、
前記第1フロー定義と前記第2フロー定義とで処理ノードに差異がある場合と差異がない場合とで、前記第2フロー定義の処理ノードを示すオブジェクトの表示態様を変えて表示するとともに、前記第1フロー定義と前記第3フロー定義とで差異がある場合と差異がない場合とで、前記第3フロー定義の処理ノードを示すオブジェクトの表示態様を変えて表示するノード表示処理部と、
を備えるプログラム開発支援装置。 A program development support apparatus that creates a flow definition including connection relationships between one or more processing nodes that constitute a development target program and the processing nodes according to an operation of a user indicating the processing node.
A first flow definition acquisition unit that acquires a first flow definition that is a flow definition at a predetermined time of the development target program;
A second flow definition acquisition unit that acquires a second flow definition in which a change after the predetermined time is reflected on the first flow definition of the development target program;
A third flow definition storage unit that stores a third flow definition that has been changed after the predetermined time based on the first flow definition of the development target program;
A collision determination unit that determines whether the third flow definition and the second flow definition collide with each other;
When it is determined that there is a collision, the difference between the processing nodes of the first flow definition and the second flow definition is detected, and the difference between the processing nodes of the first flow definition and the third flow definition is detected. A difference detection unit,
The display mode of the object indicating the processing node of the second flow definition is changed and displayed depending on whether there is a difference between the processing nodes of the first flow definition and the second flow definition and the case where there is no difference. A node display processing unit that changes and displays the display mode of the object indicating the processing node of the third flow definition between the case where there is a difference between the first flow definition and the third flow definition and the case where there is no difference;
Program development support apparatus comprising:
請求項1に記載のプログラム開発支援装置。 The node display processing unit displays an object indicating a first processing node included in the first flow definition, and processes the second flow definition in which there is no difference between the first flow definition and the second flow definition. The object of the node is displayed in the same display manner as the object indicating the first processing node, and indicates the processing node of the second flow definition having a difference between the first flow definition and the second flow definition. The object is displayed in a display mode different from the object indicating the first processing node, and the object indicating the processing node of the third flow definition having no difference between the first flow definition and the third flow definition, The first flow definition and the third are displayed in the same display manner as the object indicating the first processing node. Wherein a difference between the low definition for the third object indicating flow definition of processing nodes, the program development support apparatus according to claim 1 to be displayed in a display mode different from the object representing the first processing node.
請求項1又は請求項2に記載のプログラム開発支援装置。 The node display processing unit makes the display mode of the object indicating the processing node different depending on whether the difference regarding the processing node is the addition of the processing node, the change of the processing node, or the deletion of the processing node. Or the program development assistance apparatus of Claim 2.
前記第1フロー定義取得部は、前記第1フロー定義を、前記版管理システムから取得し、
前記第2フロー定義取得部は、前記第2フロー定義を、前記版管理システムから取得する
請求項1に記載のプログラム開発支援装置。 It is connected to a version management system that manages the version of the flow definition via a communication network,
The first flow definition acquisition unit acquires the first flow definition from the version management system,
The program development support device according to claim 1, wherein the second flow definition acquisition unit acquires the second flow definition from the version management system.
前記衝突判定部と、前記差分検出部と、前記ノード表示処理部は、前記第2フロー定義取得部が更新後の第2フロー定義を取得した場合には、前記更新後の第2フロー定義を用いて処理を実行する
請求項4に記載のプログラム開発支援装置。 The second flow definition acquisition unit determines whether or not the second flow definition in the version management system has been updated, and if the second flow definition is updated, the version after the version management system is updated Get the second flow definition,
When the collision determination unit, the difference detection unit, and the node display processing unit acquire the second flow definition after the second flow definition acquisition unit acquires the updated second flow definition. The program development support device according to claim 4, which executes processing using the program.
前記衝突判定部は、前記変更受付部により受け付けられた変更が反映された第3フロー定義と、前記第2フロー定義とが衝突するか否かを判定し、
変更が反映された前記第3フロー定義と前記第2フロー定義とが衝突しないと判定された場合に、前記版管理システムに、前記第3フロー定義を前記第2フロー定義とマージさせるために送信する送信部をさらに備える
請求項1に記載のプログラム開発支援装置。 The system further includes a change receiving unit that receives a change to the third flow definition,
The collision determination unit determines whether the third flow definition reflecting the change received by the change reception unit collides with the second flow definition.
When it is determined that the third flow definition in which the change is reflected does not collide with the second flow definition, the version management system is transmitted to merge the third flow definition with the second flow definition. The program development support device according to claim 1, further comprising: a transmitting unit.
請求項1に記載のプログラム開発支援装置。 The node display processing unit can display the difference between the node definition of the processing node in the second flow definition or the first flow definition in association with the object indicating the processing node of the second flow definition. The program according to claim 1, wherein the difference between the node definition of the processing node in the third flow definition or the third flow definition can be displayed in correspondence with an object indicating the processing node of the third flow definition. Development support device.
(a)前記開発対象プログラムの所定の時点におけるフロー定義である第1フロー定義を取得し、
(b)前記開発対象プログラムの前記第1フロー定義に対して前記所定の時点以降の変更が反映された第2フロー定義を取得し、
(c)記憶部に前記開発対象プログラムの前記第1フロー定義を基にして前記所定の時点以降に変更が施された第3フロー定義を記憶し、
(d)前記第3フロー定義と、前記第2フロー定義とが衝突するか否かを判定し、
(e)衝突すると判定された場合に、前記第1フロー定義と前記第2フロー定義との処理ノードの差分を検出するとともに、前記第1フロー定義と前記第3フロー定義との処理ノードの差分を検出し、
(f)前記第1フロー定義と前記第2フロー定義とで処理ノードに差異がある場合と差異がない場合とで、前記第2フロー定義の処理ノードを示すオブジェクトの表示態様を変えて表示するとともに、前記第1フロー定義と前記第3フロー定義とで差異がある場合と差異がない場合とで、前記第3フロー定義の処理ノードを示すオブジェクトの表示態様を変えて表示する
プログラム開発支援方法。 A program development support method by a program development support apparatus, which creates a flow definition including a connection relationship between one or more processing nodes constituting a development target program and the processing nodes according to a user's operation on an object indicating the processing node,
(A) acquiring a first flow definition which is a flow definition at a predetermined time of the development target program;
(B) acquiring a second flow definition in which a change from the predetermined time point on the first flow definition of the development target program is reflected,
(C) storing, in the storage unit, a third flow definition that has been changed after the predetermined time based on the first flow definition of the development target program;
(D) determining whether the third flow definition and the second flow definition collide with each other;
(E) When it is determined that there is a collision, the difference between the processing nodes of the first flow definition and the second flow definition is detected, and the difference between the processing nodes of the first flow definition and the third flow definition To detect
(F) The display mode of the object indicating the processing node of the second flow definition is changed and displayed depending on whether there is a difference between the processing nodes of the first flow definition and the second flow definition or not. And a program development support method for changing and displaying the display mode of the object indicating the processing node of the third flow definition between the case where there is a difference and the case where there is no difference between the first flow definition and the third flow definition .
請求項8に記載のプログラム開発支援方法。 In (f), an object indicating a first processing node included in the first flow definition is displayed, and a processing node of the second flow definition having no difference between the first flow definition and the second flow definition Object of the second flow definition in which the first flow definition and the second flow definition are different from each other while being displayed in the same display manner as the object indicating the first processing node Is displayed in a display mode different from the object indicating the first processing node, and the object indicating the processing node of the third flow definition having no difference between the first flow definition and the third flow definition is While displaying the first processing node in the same display manner as the object indicating the first processing node, the first flow definition and the third flow Wherein for the third object indicating flow definition of processing nodes, the program development support method according to claim 8 to be displayed in a display mode different from the object representing the first processing node with differences defined.
請求項8又は請求項9に記載のプログラム開発支援方法。 The display mode of the object indicating the processing node is made different depending on whether the difference regarding the processing node is the addition of the processing node, the change of the processing node, or the deletion of the processing node in (f). The program development support method according to claim 9.
前記(a)において、前記第1フロー定義を、前記版管理システムから取得し、
前記(b)において、第2フロー定義取得部は、前記第2フロー定義を、前記版管理システムから取得する
請求項8に記載のプログラム開発支援方法。 The program development support device is connected to a version management system that manages a version of the flow definition via a communication network,
In the (a), the first flow definition is acquired from the version management system,
The program development support method according to claim 8, wherein in (b), the second flow definition acquisition unit acquires the second flow definition from the version management system.
前記(d),(e),(f)では、前記更新後の第2フロー定義を用いて処理を実行する
請求項11に記載のプログラム開発支援方法。 In (b), it is determined whether or not the second flow definition in the version management system has been updated, and if the second flow definition has been updated, the second flow after being updated from the version management system Get the definition,
The program development support method according to claim 11, wherein in (d), (e) and (f), processing is performed using the updated second flow definition.
前記(d)において、前記(g)において受け付けられた変更が反映された第3フロー定義と、前記第2フロー定義とが衝突するか否かを判定し、
(h)変更が反映された前記第3フロー定義と前記第2フロー定義とが衝突しないと判定された場合に、前記版管理システムに、前記第3フロー定義を前記第2フロー定義とマージさせるために送信する
請求項8に記載のプログラム開発支援方法。 (G) accept changes to the third flow definition;
In (d), it is determined whether the third flow definition reflecting the change accepted in (g) collides with the second flow definition.
(H) causing the version management system to merge the third flow definition with the second flow definition when it is determined that the third flow definition reflecting the change does not conflict with the second flow definition 9. The program development support method according to claim 8, wherein the program development support method is transmitted.
請求項8に記載のプログラム開発支援方法。 In (f), the difference between the node definition of the processing node in the second flow definition or the first flow definition can be displayed in correspondence with the object indicating the processing node of the second flow definition. The program development according to claim 8, wherein the difference between the third flow definition and the node definition of the processing node in the third flow definition can be displayed in correspondence with an object indicating the processing node of the third flow definition. Support method.
前記コンピュータを、
前記開発対象プログラムの所定の時点におけるフロー定義である第1フロー定義を取得する第1フロー定義取得部と、
前記開発対象プログラムの前記第1フロー定義に対して前記所定の時点以降の変更が反映された第2フロー定義を取得する第2フロー定義取得部と、
前記開発対象プログラムの前記第1フロー定義を基にして前記所定の時点以降に変更が施された第3フロー定義を記憶する第3フロー定義記憶部と、
前記第3フロー定義と、前記第2フロー定義とが衝突するか否かを判定する衝突判定部と、
衝突すると判定された場合に、前記第1フロー定義と前記第2フロー定義との処理ノードの差分を検出するとともに、前記第1フロー定義と前記第3フロー定義との処理ノードの差分を検出する差分検出部と、
前記第1フロー定義と前記第2フロー定義とで処理ノードに差異がある場合と差異がない場合とで、前記第2フロー定義の処理ノードを示すオブジェクトの表示態様を変えて表示するとともに、前記第1フロー定義と前記第3フロー定義とで差異がある場合と差異がない場合とで、前記第3フロー定義の処理ノードを示すオブジェクトの表示態様を変えて表示するノード表示処理部と、して機能させる
プログラム開発支援プログラム。
For making a computer constituting a program development support device to create a flow definition including a connection relationship between one or more processing nodes constituting the development target program and the processing nodes according to the user's operation on the object indicating the processing nodes Program development support program, and
The computer,
A first flow definition acquisition unit that acquires a first flow definition that is a flow definition at a predetermined time of the development target program;
A second flow definition acquisition unit that acquires a second flow definition in which a change after the predetermined time is reflected on the first flow definition of the development target program;
A third flow definition storage unit that stores a third flow definition that has been changed after the predetermined time based on the first flow definition of the development target program;
A collision determination unit that determines whether the third flow definition and the second flow definition collide with each other;
When it is determined that there is a collision, the difference between the processing nodes of the first flow definition and the second flow definition is detected, and the difference between the processing nodes of the first flow definition and the third flow definition is detected. A difference detection unit,
The display mode of the object indicating the processing node of the second flow definition is changed and displayed depending on whether there is a difference between the processing nodes of the first flow definition and the second flow definition and the case where there is no difference. A node display processing unit that changes and displays the display mode of the object indicating the processing node of the third flow definition between the case where there is a difference between the first flow definition and the third flow definition and the case where there is no difference; Program development support program to function.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title | 
|---|---|---|---|
| JP2019506453A JP6801086B2 (en) | 2017-08-03 | 2017-08-03 | Program development support device, program development support method, and program development support program | 
| PCT/JP2017/028278 WO2019026248A1 (en) | 2017-08-03 | 2017-08-03 | Program development assistance device, program development assistance method, and program development assistance program | 
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title | 
|---|---|---|---|
| PCT/JP2017/028278 WO2019026248A1 (en) | 2017-08-03 | 2017-08-03 | Program development assistance device, program development assistance method, and program development assistance program | 
Publications (1)
| Publication Number | Publication Date | 
|---|---|
| WO2019026248A1 true WO2019026248A1 (en) | 2019-02-07 | 
Family
ID=65233649
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date | 
|---|---|---|---|
| PCT/JP2017/028278 Ceased WO2019026248A1 (en) | 2017-08-03 | 2017-08-03 | Program development assistance device, program development assistance method, and program development assistance program | 
Country Status (2)
| Country | Link | 
|---|---|
| JP (1) | JP6801086B2 (en) | 
| WO (1) | WO2019026248A1 (en) | 
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| JP2021184309A (en) * | 2020-12-21 | 2021-12-02 | ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド | Data processing method, apparatus, electronic device, storage medium, and program | 
| WO2022004053A1 (en) | 2020-06-30 | 2022-01-06 | オムロン株式会社 | Program, computer, and method for visual programming editor | 
| JP2022104700A (en) * | 2020-12-29 | 2022-07-11 | マーク マリアン ヴァシレ | Software development support system, software development support server and software development support program | 
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| CN113407230B (en) * | 2021-06-04 | 2023-09-29 | 中船奥蓝托无锡软件技术有限公司 | Intelligent main model management system based on data driving | 
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| JP2013164725A (en) * | 2012-02-10 | 2013-08-22 | Fuji Electric Co Ltd | Configuration management support device and program | 
| JP2015162218A (en) * | 2014-02-28 | 2015-09-07 | 三菱重工業株式会社 | Software development apparatus and software development method | 
- 
        2017
        - 2017-08-03 JP JP2019506453A patent/JP6801086B2/en active Active
- 2017-08-03 WO PCT/JP2017/028278 patent/WO2019026248A1/en not_active Ceased
 
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| JP2013164725A (en) * | 2012-02-10 | 2013-08-22 | Fuji Electric Co Ltd | Configuration management support device and program | 
| JP2015162218A (en) * | 2014-02-28 | 2015-09-07 | 三菱重工業株式会社 | Software development apparatus and software development method | 
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| WO2022004053A1 (en) | 2020-06-30 | 2022-01-06 | オムロン株式会社 | Program, computer, and method for visual programming editor | 
| JP2021184309A (en) * | 2020-12-21 | 2021-12-02 | ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド | Data processing method, apparatus, electronic device, storage medium, and program | 
| JP7212735B2 (en) | 2020-12-21 | 2023-01-25 | ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド | Data processing method, device, electronic device, storage medium and program | 
| JP2022104700A (en) * | 2020-12-29 | 2022-07-11 | マーク マリアン ヴァシレ | Software development support system, software development support server and software development support program | 
| JP7150002B2 (en) | 2020-12-29 | 2022-10-07 | マーク マリアン ヴァシレ | Software development support system, software development support server and software development support program | 
Also Published As
| Publication number | Publication date | 
|---|---|
| JPWO2019026248A1 (en) | 2019-08-08 | 
| JP6801086B2 (en) | 2020-12-16 | 
Similar Documents
| Publication | Publication Date | Title | 
|---|---|---|
| JP4845153B2 (en) | System, method, server, and computer program for avoiding conflict of update work in distributed environment using multiple clients | |
| JP6801086B2 (en) | Program development support device, program development support method, and program development support program | |
| US9754242B2 (en) | Deployment mechanism for non-versioning business process artifacts | |
| US20150222731A1 (en) | Computer, guide information providing method and recording medium | |
| CN115599437B (en) | Software version processing method and device, electronic equipment and storage medium | |
| US10275234B2 (en) | Selective bypass of code flows in software program | |
| US10048978B2 (en) | Apparatus and method for identifying a virtual machine having changeable settings | |
| JP5106062B2 (en) | File search method, file search device, search system, and file search program | |
| JP5024036B2 (en) | Program distribution server, distribution system, distribution method, and distribution target program | |
| JP6336919B2 (en) | Source code review method and system | |
| JP2007226472A (en) | Job definition confirmation system, its method, and program | |
| US12259852B2 (en) | Managing file revisions from multiple reviewers | |
| JP2013191003A (en) | Branch repository management system | |
| JP2009289042A (en) | Control method for retrieval device and retrieval device | |
| JP6169485B2 (en) | Distributed processing system | |
| JP2017033079A (en) | Software introduction support program, software introduction support apparatus, and software introduction support method | |
| US11144592B2 (en) | Extendable JSON configuration architecture | |
| JP2009266149A (en) | Job management program and job management apparatus | |
| JP5048537B2 (en) | Workflow processing device | |
| JP2017091027A (en) | System development support system | |
| JP4886910B1 (en) | Information processing apparatus, information processing apparatus control method, program, and recording medium storing program | |
| JP5652329B2 (en) | Program inspection program, program inspection apparatus, and program inspection method | |
| JP2000112800A (en) | File history management system | |
| JP5316273B2 (en) | Program automatic generation apparatus and program automatic generation method | |
| JP2008003732A (en) | Business scenario notification function based on operation logs | 
Legal Events
| Date | Code | Title | Description | 
|---|---|---|---|
| ENP | Entry into the national phase | Ref document number: 2019506453 Country of ref document: JP Kind code of ref document: A | |
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application | Ref document number: 17920305 Country of ref document: EP Kind code of ref document: A1 | |
| NENP | Non-entry into the national phase | Ref country code: DE | |
| 122 | Ep: pct application non-entry in european phase | Ref document number: 17920305 Country of ref document: EP Kind code of ref document: A1 |