JP6801086B2 - Program development support device, program development support method, and program development support program - Google Patents

Program development support device, program development support method, and program development support program Download PDF

Info

Publication number
JP6801086B2
JP6801086B2 JP2019506453A JP2019506453A JP6801086B2 JP 6801086 B2 JP6801086 B2 JP 6801086B2 JP 2019506453 A JP2019506453 A JP 2019506453A JP 2019506453 A JP2019506453 A JP 2019506453A JP 6801086 B2 JP6801086 B2 JP 6801086B2
Authority
JP
Japan
Prior art keywords
flow definition
node
definition
flow
processing node
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.)
Active
Application number
JP2019506453A
Other languages
Japanese (ja)
Other versions
JPWO2019026248A1 (en
Inventor
哲 守屋
哲 守屋
弘志 那須
弘志 那須
佑樹 長沼
佑樹 長沼
順史 木下
順史 木下
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2019026248A1 publication Critical patent/JPWO2019026248A1/en
Application granted granted Critical
Publication of JP6801086B2 publication Critical patent/JP6801086B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs

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)

Description

本発明は、処理のまとまりを示すノードをオブジェクトとして表示し、オブジェクトに対するユーザの操作に基づいてプログラムにおけるノード構成を示すフロー定義を作成するプログラム開発支援装置等に関する。 The present invention relates to a program development support device or the like that displays a node indicating a set of processes as an object and creates a flow definition indicating a node configuration in the program based on a user's operation on the object.

ソフトウェア開発において、視覚的なオブジェクトを用いてプログラム開発を行うビジュアルプログラミングが知られている。ビジュアルプログラミングでは、処理のまとまりであるノードのそれぞれをブロック(オブジェクト)で表現し、これらのブロックをつなぐ等の操作をすることで、プログラムのフロー(プログラムに含まれるノードやノード間の接続等)を作成できる。このビジュアルプログラミングによると、プログラムのフローを視覚的に理解でき、プログラム言語の知識を有さないユーザでも容易にプログラムを開発することが可能である。 In software development, visual programming that develops programs using visual objects is known. In visual programming, each node, which is a group of processes, is represented by blocks (objects), and by performing operations such as connecting these blocks, the program flow (nodes included in the program and connections between nodes, etc.) Can be created. According to this visual programming, the flow of the program can be visually understood, and even a user who does not have knowledge of the programming language can easily develop the program.

また、ビジュアルプログラミングが実行可能な開発支援装置では、作成されたプログラムのフローの定義を、ファイルとして出力、保存することが可能である。開発支援装置では、フロー定義のファイルを読み込むことで、同様のプログラムを継続して開発することが可能である。 In addition, in the development support device that can execute visual programming, it is possible to output and save the definition of the flow of the created program as a file. The development support device can continue to develop similar programs by reading the flow definition file.

また、ソフトウェア開発においては、複数の開発者のチームで共同して同一のプログラムを開発することがあるが、この場合には、プログラムの整合性を保つためにバージョン管理システムが利用されることがある。バージョン管理システムには、ソースコード等のバージョン管理だけでなく、変更提案機能、バージョン間の差分確認等、チームでの開発を効率的に行うための支援機能を提供しているものもある。このようなバージョン管理システムの機能を活用してソフトウェア開発を推進する場合には、開発者達は、開発手順をチーム内で定め、それに従って開発を進めることとなる。 Also, in software development, a team of multiple developers may jointly develop the same program, but in this case, a version control system may be used to maintain the integrity of the program. is there. Some version control systems provide not only version control of source code, but also change proposal functions, confirmation of differences between versions, and other support functions for efficient team development. When promoting software development by utilizing the functions of such a version control system, developers will establish a development procedure within the team and proceed with development according to it.

バージョン管理システムは、テキスト情報、ファイルを管理対象としている。このため、開発支援装置が出力したフロー定義のファイルについても管理可能である。しかしながら、変更箇所を確認する際に利用する差分表示の機能は、テキストを対象にしており、開発支援装置上での視覚的な表現との対応関係を把握することが難しい。 The version control system manages text information and files. Therefore, the flow definition file output by the development support device can also be managed. However, the difference display function used when confirming the changed part targets the text, and it is difficult to grasp the correspondence with the visual expression on the development support device.

また、バージョン管理システムを利用するためには、CLI(Command Line Interface)コマンドや、バージョン管理システムを用いた開発手順の知識が必要である。特に、ビジュアルプログラミングが実行可能な開発支援装置においては、ソフトウェア開発の専門的な知識を持たないユーザを主要な利用対象者としていることがあるので、バージョン管理システムを効率的に利用することは困難である。 In addition, in order to use the version control system, knowledge of CLI (Command Line Interface) commands and development procedures using the version control system is required. In particular, in development support devices that can execute visual programming, it is difficult to use the version control system efficiently because users who do not have specialized knowledge of software development may be the main users. Is.

ビジュアルプログラミングに関する技術としては、例えば、特許文献1には、ソフトウェア開発装置で作成した制御ロジックをバージョン管理システムに登録する技術が開示されている。また、特許文献2には、変更前ブロックダイヤグラムと変更後ブロックダイヤグラムとの差分を容易に確認することのできる技術が開示されている。 As a technique related to visual programming, for example, Patent Document 1 discloses a technique for registering a control logic created by a software development device in a version control system. Further, Patent Document 2 discloses a technique capable of easily confirming the difference between the block diagram before the change and the block diagram after the change.

特開2015−162218号公報JP-A-2015-162218 特開2016−177668号公報Japanese Unexamined Patent Publication No. 2016-177668

例えば、複数の開発者で共同して一つのプログラムの開発を行っている場合には、開発対象の一つのプログラムに対して、バージョンの異なる複数のフロー定義が存在する。この場合に、最終的なプログラムを作成するためには、一のフロー定義に対して、他のフロー定義をマージさせる必要がある。このような場合には、一のフロー定義と、他のフロー定義との間で衝突が発生してしまって、そのままマージできないことが発生する虞がある。 For example, when a plurality of developers jointly develop one program, there are a plurality of flow definitions having different versions for one program to be developed. In this case, in order to create the final program, it is necessary to merge one flow definition with another flow definition. In such a case, there is a possibility that a collision occurs between one flow definition and another flow definition, and the merge cannot be performed as it is.

このように衝突が発生した場合には、フロー定義を修正する必要がある。この場合においては、例えば、一のフロー定義と、他のフロー定義との差分を表示させて、フロー定義を修正することが考えられる。 When a collision occurs in this way, it is necessary to revise the flow definition. In this case, for example, it is conceivable to modify the flow definition by displaying the difference between one flow definition and another flow definition.

しかしながら、一のフロー定義と、他のフロー定義との差分のみを確認しただけでは、フロー定義をどのように修正すればよいのか把握できない状況が発生し得る。例えば、2つのフロー定義が、共通の祖先となるフロー定義に対してそれぞれ修正を行ったような場合には、祖先となるフロー定義との差分を考慮しなければ、どのように修正すればよいのかを適切に把握できない。 However, there may be a situation where it is not possible to grasp how to modify the flow definition only by checking the difference between one flow definition and another flow definition. For example, if two flow definitions modify each of the flow definitions that have a common ancestor, how should they be modified without considering the difference from the flow definition that is the ancestor? I can't figure out properly.

本発明は、上記事情に鑑みなされたものであり、その目的は、複数のバージョンが存在するフロー定義を編集するために必要な情報を適切に表示することのできる技術を提供することにある。 The present invention has been made in view of the above circumstances, and an object of the present invention 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, the program development support device according to one viewpoint defines a flow definition including one or more processing nodes constituting the development target program and the connection relationship of the processing nodes according to the user's operation on the object indicating the processing node. In the program development support device to be created, the first flow definition acquisition unit that acquires the first flow definition, which is the flow definition at a predetermined time of the development target program, and the first flow definition of the development target program after the predetermined time. The second flow definition acquisition unit that acquires the second flow definition that reflects the changes in the above, and the third flow definition that has been changed since a predetermined time based on the first flow definition of the development target program are stored. A collision determination unit that determines whether or not the third flow definition storage unit, the third flow definition, and the second flow definition collide, and a first flow definition and a second flow definition when it is determined that they collide with each other. There is a difference between the processing node between the first flow definition and the second flow definition, and the difference detection unit that detects the difference between the processing nodes of the first flow definition and the third flow definition. When there is a difference and when there is no difference, the display mode of the object indicating the processing node of the second flow definition is changed and displayed, and when there is a difference between the first flow definition and the third flow definition and there is no difference. A node display processing unit that displays the object indicating the processing node of the third flow definition in a different display mode is provided.

本発明によれば、複数のバージョンが存在するフロー定義を編集するために必要な情報を適切に表示することができる。 According to the present invention, it is possible to appropriately display the information necessary for editing a flow definition in which a plurality of versions exist.

図1は、一実施形態に係るプログラム開発管理システムの全体構成図である。FIG. 1 is an overall configuration diagram of a program development management system according to an embodiment. 図2は、一実施形態に係るビジュアルプログラム装置のハードウェア構成図である。FIG. 2 is a hardware configuration diagram of the visual program device according to the embodiment. 図3は、一実施形態に係るリポジトリ管理テーブルの一例を示す図である。FIG. 3 is a diagram showing an example of the repository management table according to the embodiment. 図4は、一実施形態に係る変更衝突管理テーブルの一例を示す図である。FIG. 4 is a diagram showing an example of a modified collision management table according to an embodiment. 図5は、一実施形態に係るプログラム開発処理のフローチャートである。FIG. 5 is a flowchart of the program development process according to the embodiment. 図6は、一実施形態に係るフロー定義読み込み処理のフローチャートである。FIG. 6 is a flowchart of the flow definition reading process according to the embodiment. 図7は、一実施形態に係るフロー定義保存処理のフローチャートである。FIG. 7 is a flowchart of the flow definition saving process according to the embodiment. 図8は、一実施形態に係るフロー表示処理のフローチャートである。FIG. 8 is a flowchart of the flow display process according to the embodiment. 図9は、一実施形態に係るフロー表示画面の一例を示す図である。FIG. 9 is a diagram showing an example of a flow display screen according to an embodiment.

実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。 The embodiment will be described with reference to the drawings. It should be noted that the embodiments described below do not limit the invention according to the claims, and all of the elements and combinations thereof described in the embodiments are indispensable for the means for solving the invention. Is not always.

以下の説明では、「AAAテーブル」の表現にて情報を説明することがあるが、情報は、テーブル以外(例えばリストや連想配列)のデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「AAAテーブル」を「AAA情報」と呼ぶことができる。 In the following description, the information may be described by the expression of "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 show that the information does not depend on the data structure.

(システム全体構成)
図1は、一実施形態に係るプログラム開発管理システムの全体構成図である。
(Overall system configuration)
FIG. 1 is an overall configuration diagram of a program development management system according to an embodiment.

プログラム開発管理システム1は、1以上のプログラム開発支援装置の一例としてのビジュアルプログラム装置51と、版管理システムの一例としてのバージョン管理システム(VCSシステム)61とを備える。一つのバージョン管理システム61は、複数のビジュアルプログラム装置51におけるプログラム(フロー定義)のバージョンを管理することができる。 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 control system (VCS system) 61 as an example of a version control system. One version control system 61 can manage the version of the program (flow definition) in the plurality of visual program devices 51.

ビジュアルプログラム装置51は、1台以上のコンピュータで構成されてもよい。また、ビジュアルプログラム装置51は、1台以上のコンピュータにより構成される仮想マシンで構成されてもよく、例えば、コンピュータにおいてコンテナを実行することにより実現される仮想マシンで構成されてもよい。また、バージョン管理システム61は、1台以上のコンピュータで構成されてもよい。また、バージョン管理システム61は、1台以上のコンピュータにより構成される仮想マシンで構成されてもよく、例えば、コンピュータにおいてコンテナを実行することにより実現される仮想マシンで構成されてもよい。 The visual program device 51 may be composed of one or more computers. Further, the visual program device 51 may be composed of a virtual machine composed of one or more computers, and may be composed of, for example, a virtual machine realized by executing a container on the computer. Further, the version control system 61 may be composed of one or more computers. Further, the version control system 61 may be configured by a virtual machine composed of one or more computers, and may be configured by, for example, a virtual machine realized by executing a container on the computer.

ビジュアルプログラム装置51と、VCSシステム61とは、通信ネットワーク20を介して接続されている。通信ネットワーク20は、有線LAN(Local Area Network)、無線LAN、WAN(Wide Area Network)等であってよい。 The visual program device 51 and the VCS system 61 are connected to each other via the communication network 20. The communication network 20 may be a wired LAN (Local Area Network), a wireless LAN, a WAN (Wide Area Network), or the like.

VCSシステム61は、1以上のリポジトリ62を保持する。リポジトリ62は、開発対象プログラムについての複数のフロー定義を管理、保持する。リポジトリ62は、所定の開発対象プログラムに対する同時に並行して開発されるバージョンの異なるフロー定義を分離して管理可能なブランチ63を保持可能である。ブランチ63は、フロー定義64を管理する。ブランチ63は、フロー定義64に変更があった場合には、その変更の履歴についても管理する。フロー定義64には、プログラムを構成するひとまとまりの処理(プログラム部品)であるノード(処理ノード)の定義(ノード定義)、例えば、ノードの識別情報や、ノードと他のノードと接続関係等を示す情報が含まれる。 The VCS system 61 holds one or more repositories 62. The repository 62 manages and holds a plurality of flow definitions for the program to be developed. The repository 62 can hold a branch 63 that can separate and manage different flow definitions of different versions developed simultaneously and concurrently for a predetermined development target program. Branch 63 manages the flow definition 64. When the flow definition 64 is changed, the branch 63 also manages the history of the change. In the flow definition 64, a definition (node definition) of a node (processing node) which is a group of processes (program components) constituting a program, for example, node identification information, a connection relationship between a node and another node, and the like are provided. Contains information to indicate.

ブランチ63には、例えば、開発対象プログラムの主となるフロー定義(第2フロー定義)を管理するブランチ(主ブランチ)と、所定の時点における主ブランチのフロー定義(第1フロー定義)に基づいて作成され、編集されるフロー定義を管理するブランチ(開発ブランチ)とがある。開発ブランチは、例えば、同一の開発対象プログラムを共同で編集する開発者(ユーザ)ごとに作成される。 The branch 63 is based on, for example, a branch (main branch) that manages the 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 point. There is a branch (development branch) that manages flow definitions that are created and edited. A development branch is created for each developer (user) who jointly edits the same development target program, for example.

ビジュアルプログラム装置51は、入出力部52と、フロー実行部53と、フロー編集部54と、バージョン管理システム連携部(VCS連携部)55とを備える。ここで、VCS連携部55が、第1フロー定義取得部、第2フロー定義取得部、衝突判定部、差分検出部、及び送信部の一例に相当する。また、フロー編集部54がノード表示処理部の一例に相当する。また、入出力部52が変更受付部の一例に相当する。 The visual program device 51 includes an input / output unit 52, a flow execution unit 53, a flow editing unit 54, and a version control system cooperation unit (VCS cooperation unit) 55. Here, the 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. Further, the flow editing unit 54 corresponds to an example of the node display processing unit. Further, the input / output unit 52 corresponds to an example of the change reception unit.

入出力部52は、例えば、ビジュアルプログラム装置51を使用するユーザからの入力を受け付けると共に、各種情報を表示出力する。フロー実行部53は、作成されたフロー定義に対応するフロー(プログラム)を実行する。フロー編集部54は、フロー定義に基づいて、画面に表示させるフロー(表示フロー)を作成する。VCS連携部55は、VCSシステム61と連携してフロー定義を管理する処理を行う。 The input / output unit 52 receives input from, for example, 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 performs a process of managing the flow definition in cooperation with the VCS system 61.

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 linkage 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 given time. Therefore, at the initial stage 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 main branch of the VCS system 61 is updated or the like, the main branch of the local repository 58 may be in a different state from the main branch of the VCS system 61. The local repository 58 includes one or more branches 59. Branch 59 manages the flow definition 60. The branch 59 is created based on the main branch of the repository 62 at that time (and the flow definition (first flow definition) in the repository 62) when the user of the visual program device 51 starts editing the program to be developed. There is a development branch. The user of the visual program device 51 makes changes to the flow definition in this development branch. This flow definition corresponds to the third flow definition.

また、VCS連携部55は、ローカルリポジトリ58を管理するためのリポジトリ管理テーブル56と、フロー定義における変更衝突に関する情報を管理するための変更衝突管理テーブル57を有する。 Further, 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 regarding change conflicts in the flow definition.

(ハードウェア構成)
図2は、一実施形態に係るビジュアルプログラム装置のハードウェア構成図である。
(Hardware configuration)
FIG. 2 is a hardware configuration diagram of the visual program device according to the embodiment.

ビジュアルプログラム装置51は、例えば、1台のコンピュータにより構成され、プロセッサの一例としてのCPU(Central Processing Unite)21と、メモリ22と、記憶装置23と、入力装置24と、出力装置25と、通信装置26とを備える。各構成要素21〜26は、例えば、バスを介して通信可能に接続されている。 The visual program device 51 is composed of, for example, one 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. A device 26 is provided. The components 21 to 26 are communicably connected via, for example, a bus.

メモリ22は、例えば、RAM(Random Access Memory)であり、ビジュアルプログラム装置51の各機能部を構成するためのプログラム(プログラム開発支援プログラム)を含む種々のプログラムを記憶する。CPU21は、メモリ22に記憶されているプログラムを実行することにより、各種処理を実行する。記憶装置23は、例えば、ハードディスクやSSD(Solid State Drive)等の不揮発性の記憶装置であり、プログラムを含む各種情報を記憶する。入力装置24は、例えば、キーボードやマウスなどであり、ビジュアルプログラム装置51のユーザからの入力を受け付ける。出力装置24は、例えば、ディスプレイであり、各種情報を表示出力する。通信装置26は、通信ネットワーク20を介して、外部の装置(VCSシステム61等)との通信を行う。 The memory 22 is, for example, a RAM (Random Access Memory), and stores various programs including a program (program development support program) for configuring each functional unit of the visual program device 51. The CPU 21 executes various processes by executing the program stored in the memory 22. The storage device 23 is, for example, a non-volatile storage device such as a hard disk or SSD (Solid State Drive), and stores various information including a program. The input device 24 is, for example, a keyboard or a mouse, and receives 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.

ここで、図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 / output unit 52 of FIG. 1 is composed of an input device 24 and an output device 25. Further, the flow execution unit 53 and the flow editing unit 54 are configured by the CPU 21 executing the program of the memory 22. The process executed by the VCS cooperation unit 55 is configured by the CPU 21 executing the 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 the processing executed by the processor. The function of storing the repository management table 56, the change collision management table 57, and the local repository 58 in the VCS cooperation unit 55 is configured by the storage device 23.

(リポジトリ管理テーブル)
図3は、一実施形態に係るリポジトリ管理テーブルの一例を示す図である。
(Repository management table)
FIG. 3 is a diagram showing an example of the repository management table according to the embodiment.

リポジトリ管理テーブル56は、VCSシステム61のリポジトリ62と、ローカルリポジトリ58との対応関係を示す情報を保持するテーブルであり、対応するリポジトリ62とローカルリポジトリ58との組毎に対応するエントリ(レコード)を格納する。リポジトリ管理テーブル56のエントリは、外部リポジトリフィールド561と、主ブランチフィールド562、ローカルリポジトリフィールド563と、開発ブランチフィールド564と、分岐コミットフィールド565とを含む。 The repository management table 56 is a table that holds information indicating the correspondence between the repository 62 of the VCS system 61 and the local repository 58, and is an entry (record) corresponding to each pair of the corresponding repository 62 and the local repository 58. To store. The entries in 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.

外部リポジトリフィールド561は、VCSシステム61が保持するリポジトリ62の場所情報(例えば、URLなど)を格納する領域である。主ブランチフィールド562は、ユーザ50が指定した開発のベースとなるブランチ63(主ブランチ)の識別情報(例えば、ブランチ名)を格納する領域である。ローカルリポジトリフィールド563は、エントリに対応するリポジトリ62と対応するローカルリポジトリ58の場所情報(例えば、ビジュアルプログラム装置51におけるローカルリポジトリ58のパス名)を格納する領域である。開発ブランチフィールド564は、ビジュアルプログラム装置51において開発が進められているブランチ(開発ブランチ)の識別情報(例えば、開発ブランチの名前)を保持する領域である。分岐コミットフィールド565は、主ブランチと、開発ブランチとが分岐した時点(開発ブランチが作成された時点)のリポジトリ62の状態を示す情報(例えば、分岐時の主ブランチのコミットID)を格納する領域である。このコミットIDを用いることにより、リポジトリ62から分岐時の主ブランチの情報(例えば、フロー定義)を取得することができる。 The external repository field 561 is an area for storing the location information (for example, URL) of the repository 62 held by the VCS system 61. The main branch field 562 is an area for storing the identification information (for example, the branch name) of the branch 63 (main branch) that is the base of development specified by the user 50. The local repository field 563 is an area for storing the location information of the repository 62 corresponding to the entry and the local repository 58 (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, the name of the development branch) of the branch (development branch) being developed 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 at the time when the main branch and the development branch branch (when the development branch is created). Is. By using this commit ID, information on the main branch at the time of branching (for example, flow definition) can be obtained from the repository 62.

(変更衝突管理テーブル)
図4は、一実施形態に係る変更衝突管理テーブルの一例を示す図である。
(Change collision management table)
FIG. 4 is a diagram showing an example of a modified collision management table according to an embodiment.

変更衝突管理テーブル57は、2つのブランチ間(主ブランチと開発ブランチとの間)に変更の衝突があった場合における、衝突したノードの情報を保持するテーブルであり、衝突したノード毎に対応するエントリを格納する。ここで、衝突とは、2つのブランチのフロー定義における各ノードを適切にマージできない状態を意味している。 The change collision management table 57 is a table that holds information on the 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 collision means a state in which each node in the flow definition of two branches cannot be properly merged.

変更衝突管理テーブル57のエントリは、ノードIDフィールド571と、分岐時ノード定義フィールド572と、主ブランチノード定義フィールド573と、開発ブランチノード定義フィールド574とを含む。 The entries in the change conflict management table 57 include a node ID field 571, a branching node definition field 572, a main branch node definition field 573, and a development branch node definition field 574.

ノードIDフィールド571は、変更の衝突が発生しているノードを一意に示す識別情報(例えば、ビジュアルプログラム装置51が各ノードに定めるハッシュ値など)を格納する領域である。分岐時ノード定義フィールド572は、変更の衝突が発生しているノードについての、主ブランチと開発ブランチとが分岐した時点でのノードの情報(例えば、JSON形式のノード定義)を格納する領域である。主ブランチノード定義フィールド573は、変更の衝突が発生しているノードについての、主ブランチにおけるノードの情報(例えば、JSON形式のノード定義)を格納する領域である。開発ブランチノード定義フィールド574は、変更の衝突が発生しているノードについての、開発ブランチにおけるノードの情報(例えば、JSON形式のノード定義)を格納する領域である。 The node ID field 571 is an area for storing identification information (for example, a hash value defined by the visual program device 51 for each node) uniquely indicating the node in which the change collision has occurred. The node definition field 572 at the time of branching is an area for storing the node information (for example, JSON format node definition) at the time when the main branch and the development branch branch off for the node in which the change conflict occurs. .. The main branch node definition field 573 is an area for storing the node information (for example, JSON format node definition) in the main branch for the node in which the change conflict occurs. The development branch node definition field 574 is an area for storing node information (for example, JSON format node definition) in the development branch for the node in which the change conflict occurs.

(ビジュアルプログラミングにおける開発の流れ)
次に、ビジュアルプログラミングにおける開発の流れの一例に沿って、本実施形態に係るビジュアルプログラム装置51の動作を説明する。
(Development flow in visual programming)
Next, the operation of the visual programming device 51 according to the present embodiment will be described along with an example of the development flow in visual programming.

図5は、一実施形態に係るプログラム開発処理のフローチャートである。 FIG. 5 is a flowchart of the program development process according to the embodiment.

ユーザ50は、VCSシステム61に対して、開発対象プログラムのフロー定義を保存するためのリポジトリ(外部リポジトリ)62を作成する(ステップS41)。なお、ビジュアルプログラム装置51を起動して、ビジュアルプログラム装置51に対してユーザ50が操作指示を行って、ビジュアルプログラム装置51を介してVCSシステム61に、リポジトリ62を作成するようにしてもよい。 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, the user 50 may give an operation instruction to the visual program device 51, and the repository 62 may be created in the VCS system 61 via the visual program device 51.

次いで、ユーザ50は、ビジュアルプログラム装置51を起動する(ステップS42)。 Next, the user 50 activates the visual program device 51 (step S42).

ビジュアルプログラム装置51は、起動されると、図6に示すフロー定義読み込み処理を実行することにより、VCSシステム61からフロー定義を取得し、フロー定義に対応するフローを表示する(ステップS43)。 When the visual program device 51 is started, it acquires the flow definition from the VCS system 61 by executing the flow definition reading process shown in FIG. 6 and displays the flow corresponding to the flow definition (step S43).

次いで、ビジュアルプログラム装置51は、ユーザ50による入出力部52に対する操作入力に従って、表示されたフローに対する編集を実行する(ステップS44)。 Next, the visual program device 51 executes editing on the displayed flow according to the operation input to the input / output unit 52 by the user 50 (step S44).

ビジュアルプログラム装置51は、ユーザ50から編集の終了指示を受け付けると、フロー定義をVCSサービス61に保存する図7に示すフロー定義保存処理を実行する(ステップS45)。 Upon receiving the editing end instruction from the user 50, the visual program device 51 executes the flow definition saving process shown in FIG. 7 for saving the flow definition in the VCS service 61 (step S45).

なお、図5は、VCSシステム61にリポジトリ62を作成していないプログラムの開発を行う場合の処理を示しているが、例えば、既にリポジトリ62が作成されているプログラムの開発を行う場合には、ステップS42からの処理を実行するようにすればよい。 Note that FIG. 5 shows a process when developing a program for which the repository 62 has not been created in the VCS system 61. For example, when developing a program for which the repository 62 has already been created, FIG. 5 shows the process. The process from step S42 may be executed.

(フロー定義読み込み処理の流れ)
図6は、一実施形態に係るフロー定義読み込み処理のフローチャートである。フロー定義読み込み処理は、図5のステップS43に対応する処理である。
(Flow of flow definition reading process)
FIG. 6 is a flowchart of the flow definition reading process according to the 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 VCS cooperation unit 55 receives the designation of the repository 62 of the VCS system 61 that manages the flow definition of the program to be developed from the user 50, and does the local repository corresponding to the accepted repository 62 exist as the local repository 58? Whether or not it is determined with reference to the repository management table 56 (step S431).

この結果、指定されたリポジトリ62に対応するローカルリポジトリ58が存在しない場合(ステップS431:No)には、VCS連携部55は、VCSシステム61から指定されたリポジトリ62を取得し、リポジトリ62に対応するローカルリポジトリ58を作成する(ステップS432)。VCSシステム61からリポジトリ62を取得する際には、例えば、VCSシステム61がgitである場合には、gitコマンドを利用すればよい。 As a result, when the local repository 58 corresponding to the designated repository 62 does not exist (step S431: No), the VCS linkage unit 55 acquires the designated repository 62 from the VCS system 61 and corresponds to the repository 62. Create the local repository 58 to be used (step S432). When acquiring the repository 62 from the VCS system 61, for example, when the VCS system 61 is a git, the git command may be used.

一方、指定されたリポジトリ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, when the local repository 58 corresponding to the designated repository 62 exists (step S431: Yes), or when the local repository 58 is created in step S432, the VCS linkage unit 55 sends the local repository 58 to the local repository 58. A new development branch 59 is created (step S433). Here, the development branch 59 is created by copying various information of the main branch (main branch acquired from the repository 62) in the local repository 58. After creating the development branch 59, the VCS linkage unit 55 adds an entry to the repository management table 56, and adds the location information of the repository 62 of the VCS system 61, the identification information of the main branch, the location information of the local repository 58, and so on. In the corresponding field of the entry that added the identification information of the development branch and the information indicating the state of the repository at the time of branching between the main branch and the development branch (when the development branch was created) (for example, the commit ID at the time of branching). Register (step S434). The commit ID at the time of branching may be obtained from the VCS system 61 when the development branch 59 is created, for example.

次いで、フロー編集部54が開発ブランチ59に格納されているフロー定義60を読み込み、フロー定義60に対応する表示用のフローを作成し(ステップS435)、入出力部52が表示用フローを含む画面を表示する(ステップS436)。 Next, 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 screen including the display flow. Is displayed (step S436).

(フロー定義保存処理の流れ)
図7は、一実施形態に係るフロー定義保存処理のフローチャートである。フロー定義保存処理は、図5のステップS45に対応する処理である。
(Flow of flow definition storage process)
FIG. 7 is a flowchart of the flow definition saving process according to the embodiment. The flow definition saving process is a process corresponding to step S45 in FIG.

ビジュアルプログラム装置51が、ユーザ50からフロー定義を開発ブランチにコミットする要求を受け付けると(ステップS451)、VCS連携部55がリポジトリ管理テーブル56を参照して、開発ブランチ59に対応するVCSシステム61の主ブランチ63及び外部リポジトリ62を特定し、開発ブランチ59を作成した時点以降において主ブランチ63に更新があるか否かを判断する(ステップS452)。 When the visual program device 51 receives a request from the user 50 to commit the flow definition to the development branch (step S451), the VCS linkage unit 55 refers to the repository management table 56 and of 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 has been updated since the time when the development branch 59 was created (step S452).

この結果、主ブランチ63に更新がない場合(ステップS452:No)には、VCS連携部55は、開発ブランチと主ブランチとの間に変更衝突が発生することがなく、開発ブランチを主ブランチにマージしても問題ないことを意味しているので、処理をステップS461に進める。 As a result, when there is no update in the main branch 63 (step S452: No), the VCS linkage unit 55 does not cause a change conflict between the development branch and the main branch, and makes the development branch the main branch. Since it means that there is no problem even if they are merged, the process proceeds to step S461.

一方、主ブランチ63に更新がある場合(ステップS452:Yes)には、VCS連携部55は、VCSシステム61から主ブランチ63の更新内容を取得し、ローカルリポジトリ58の主ブランチ59を更新する(ステップS453)。 On the other hand, when there is an update in the main branch 63 (step S452: Yes), the VCS linkage unit 55 acquires the updated contents of the main branch 63 from the VCS system 61 and updates the main branch 59 of the local repository 58 (step S452: Yes). Step S453).

次いで、VCS連携部55は、開発ブランチを更新後の主ブランチに接続するrebase処理を実行する(ステップS454)。rebase処理の機能は、例えば、git等のVCSシステムの機能をVCS連携部55に組み込んでおくようにすればよい。rebase処理においては、開発ブランチのフロー定義(第3フロー定義)と主ブランチのフロー定義(第2フロー定義)とについて、変更の衝突(開発ブランチのフロー定義のノードを主ブランチのフロー定義内に接続できない部分が存在すること)が発生すると、発生した衝突に関する情報(変更衝突情報)をフロー定義60のファイル内に追記して保存する。変更衝突情報としては、衝突が発生したノードの識別情報であってもよく、衝突があった旨の情報であってもよい。 Next, the VCS cooperation unit 55 executes a rebase process for connecting the development branch to the updated main branch (step S454). As for the function of the rebase process, for example, the function of the VCS system such as git may be incorporated in the VCS cooperation unit 55. In the rebase process, there is a conflict of changes between the flow definition of the development branch (third flow definition) and the flow definition of the main branch (second flow definition) (the node of the flow definition of the development branch is placed in the flow definition of the main branch). When (there is a part that cannot be connected) occurs, information regarding the occurrence of the collision (change collision information) is added and saved in the file of the flow definition 60. The change collision information may be the identification information of the node in which the collision has occurred, or the information indicating that the collision has occurred.

次いで、VCS連携部55は、開発ブランチと主ブランチとのフロー定義の変更の衝突が発生しているか否かを判断する、具体的には、開発ブランチのフロー定義のファイルに変更衝突情報が含まれているか否かを判断する(ステップS455)。この結果、変更の衝突が発生していない場合(ステップS455:No)には、開発ブランチを主ブランチにマージしても問題ないことを意味しているので、VCS連携部55は、処理をステップS461に進める。 Next, the VCS cooperation unit 55 determines whether or not there is a conflict of change in the flow definition between the development branch and the main branch. Specifically, the change conflict information is included in the flow definition file of the development branch. It is determined whether or not it is satisfied (step S455). As a result, when there is no change conflict (step S455: No), it means that there is no problem in merging the development branch into the main branch, so the VCS linkage unit 55 steps the process. Proceed to S461.

一方、変更の衝突が発生している場合(ステップ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, when a change collision has occurred (step S455: Yes), that is, when the change collision information is included in the flow definition, the VCS cooperation unit 55 determines the change collision based on the change collision information. Identify all nodes where is occurring. Next, the VCS linkage unit 55 refers to the repository management table 56 for each of the identified nodes, and refers to the node definition in the flow definition of the main branch at the time of branching (first flow definition) and the latest flow definition of the main branch. The node definition in (second flow definition) and the node definition in the flow definition (third flow definition) of the development branch are acquired from the repository 62 or the local repository 59. Next, 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 contains the node in which the collision has occurred. The identification information is stored, and the corresponding node definition already acquired is saved 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).

次いで、フロー編集部54は、変更衝突情報を含むフロー定義と、変更衝突管理テーブル57とを読み込み、ノードの変更衝突に関する情報を含むフロー表示画面30(図9参照)を表示するためのフロー表示処理(図8参照)を行う(ステップS457)。 Next, the flow editorial unit 54 reads the flow definition including the change collision information and the change collision management table 57, and displays the flow display 30 (see FIG. 9) including the information regarding the change collision of the node. A process (see FIG. 8) is performed (step S457).

これにより、ユーザ50は、表示されたフロー表示画面30を参照して、入出力部52を操作することにより、衝突を解決するためのフロー定義の編集を行うことができる。この際、ビジュアルプログラム装置51は、ユーザ50による入出力部52に対する操作に基づいて、フロー定義に編集内容を反映する(ステップS458)。 As a result, the user 50 can edit the flow definition for resolving the collision by operating the input / output unit 52 with reference to the displayed flow display screen 30. At this time, the visual program device 51 reflects the edited content in the flow definition based on the operation of the user 50 on the input / output unit 52 (step S458).

次いで、ユーザ50から、衝突を解消したフロー定義を開発ブランチへコミットする要求を受け付けると、VCS連携部55は、衝突を解消したフロー定義をローカルリポジトリ58の開発ブランチへコミットする処理を実行する(ステップS459)。この結果、フロー定義の開発ブランチへのコミットが成功すると、VCS連携部55は、変更衝突管理テーブル57から衝突を解消したノードに対応するエントリを削除し(ステップS460)、ローカルリポジトリ58の開発ブランチをVCSシステム61にPUSHする、すなわち、開発ブランチをVCSシステム61へ登録する(ステップS461)。なお、VCSシステム61では、登録された開発ブランチが、主ブランチとマージされることにより、ビジュアルプログラム装置51のユーザ50により編集された内容が主ブランチのフロー定義に反映されることとなる。 Next, when the user 50 receives a request to commit the flow definition that resolves the conflict to the development branch, the VCS linkage unit 55 executes a process of committing the flow definition that resolves the conflict to the development branch of the local repository 58 ( Step S459). As a result, when the commit to the development branch of the flow definition is successful, the VCS linkage unit 55 deletes the entry corresponding to the node that resolved the conflict from the change collision management table 57 (step S460), and the development branch of the local repository 58. PUSH to the VCS system 61, that is, register the development branch to the VCS system 61 (step S461). In the VCS system 61, 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.

次いで、VCS連携部55は、ローカルリポジトリ58からVCSシステム61にプッシュした開発ブランチを削除し(ステップS462)、リポジトリ管理テーブル56から、この開発ブランチに対応するエントリを削除する(ステップS463)。 Next, the VCS linkage 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).

(フロー表示処理の流れ)
図8は、一実施形態に係るフロー表示処理のフローチャートである。フロー表示処理は、図7のステップS457に対応する処理である。
(Flow of flow display processing)
FIG. 8 is a flowchart of the flow display process according to the embodiment. The flow display process is a process corresponding to step S457 in FIG.

まず、フロー編集部54は、変更衝突情報を含むフロー定義を読み込み(ステップS501)、フロー定義に含まれる1以上のノード定義から処理対象とする1つのノード定義を取得する(ステップS502)。 First, the flow editorial unit 54 reads the flow definition including the 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).

次いで、フロー編集部54は、変更衝突管理テーブル57に、取得したノード定義に対応するノードが登録されているか否かを判断する(ステップS503)。この結果、このノードが変更衝突管理テーブル57に登録されていない場合(ステップS503:No)には、変更衝突が発生していないことを示しているので、フロー編集部54は、このノードに対応するブロック(オブジェクト)を変更衝突が発生していないことを示す表示態様(例えば、黒色)で描画し(ステップS510)、処理をステップS509に進める。 Next, the flow editorial unit 54 determines whether or not the node corresponding to the acquired node definition is registered in the change collision 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 that the flow editorial unit 54 corresponds to this node. The block (object) to be changed is drawn in a display mode (for example, black) indicating that no change collision has occurred (step S510), and the process proceeds to step S509.

一方、このノードが変更衝突管理テーブル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 flow editorial unit 54 acquires the node definition at the time of branching corresponding to this node from the change collision management table 57, and sets the block corresponding to the node at the time of branching (first processing node) with the node related to the collision. Drawing is performed in a predetermined display mode (for example, gray) indicating that there is (step S504).

次に、ノード編集部54は、このノードの主ブランチにおけるノード定義を変更衝突管理テーブル57から取得し、主ブランチのノード定義と分岐時のノード定義とに差分があるか否かを判断する(ステップS505)。 Next, the node editorial unit 54 acquires the node definition in the main branch of this node from the change collision management table 57, and determines whether or not there is a difference between the node definition of the main branch and the node definition at the time of branching ( Step S505).

この結果、主ブランチのノード定義と分岐時のノード定義とに差分がないと判断された場合(ステップS505:No)には、ノード編集部54は、主ブランチのノードに対応するブロックを、分岐時のノードに対応するブロックと同じ色(本実施形態では、灰色)で描画し(ステップS511)、処理をステップS507に進める。 As a result, when it is determined that there is no difference between the node definition of the main branch and the node definition at the time of branching (step S505: No), the node editorial unit 54 branches the block corresponding to the node of the main branch. It is drawn in the same color as the block corresponding to the node of time (gray in this embodiment) (step S511), and the process proceeds to step S507.

一方、主ブランチのノード定義と分岐時のノード定義とに差分があると判断された場合(ステップS505:Yes)には、ノード編集部54は、主ブランチのノードに対応するブロックを、分岐時のノードに対応するブロックと異なる表示態様(例えば、青色)で描画し(ステップS506)、処理をステップS507に進める。なお、ステップS506において、主ブランチのノードが削除されている場合は、ノード編集部54は、主ブランチのノードに対応するブロックを、ノードが削除されていることを視覚的に認識可能な表示態様(例えば、青色且つ点線)で描画する。このようにブロックの表示を行うと、主ブランチのノードに対応するブロックと、分岐時のノードに対応するブロックとの表示態様を見比べることにより、これらノード間に差分があるか否かを視覚的に容易かつ適切に把握することができる。 On the other hand, when it is determined that there is a difference between the node definition of the main branch and the node definition at the time of branching (step S505: Yes), the node editorial unit 54 sets the block corresponding to the node of the main branch at the time of branching. Drawing is performed in a display mode (for example, blue) different from the block corresponding to the node of (step S506), and the process proceeds to step S507. In step S506, when the node of the main branch is deleted, the node editorial unit 54 can visually recognize that the node has been deleted from the block corresponding to the node of the main branch. Draw in (for example, blue and dotted line). When the blocks are displayed in this way, it is possible to visually check whether or not there is a difference between these nodes by comparing the display modes of the blocks corresponding to the nodes of the main branch and the blocks corresponding to the nodes at the time of branching. Can be easily and appropriately grasped.

ステップS507では、ノード編集部54は、このノードの開発ブランチにおけるノード定義を変更衝突管理テーブル57から取得し、開発ブランチのノード定義と分岐時のノード定義とに差分があるか否かを判断する。 In step S507, the node editorial unit 54 acquires the node definition in the development branch of this node from the change collision management table 57, and determines whether or not there is a difference between the node definition in the development branch and the node definition at the time of branching. ..

この結果、開発ブランチのノード定義と分岐時のノード定義とに差分がないと判断された場合(ステップ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 node editorial unit 54 branches the block corresponding to the node of the development branch. It is drawn in the same color as the block corresponding to the node of time (gray in this embodiment) (step S512), and the process proceeds to step S509.

一方、開発ブランチのノード定義と分岐時のノード定義とに差分があると判断された場合(ステップ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 node editorial unit 54 sets the block corresponding to the node of the development branch to the main branch. The block corresponding to the node of No. 1 and the block corresponding to the node at the time of branching are drawn in a different display mode (for example, red) (step S508), and the process proceeds to step S509. When the node of the development branch is deleted in step S508, the node editorial unit 54 can visually recognize that the node has been deleted from the block corresponding to the node of the development branch. Draw in (for example, red and dotted line). When the blocks are displayed in this way, it is easy to visually check whether or not there is a difference between these nodes by comparing the display mode of the block corresponding to the node of the development branch and the block corresponding to the node at the time of branching. And it can be grasped appropriately. In addition, by comparing the display mode of the block corresponding to the node of the development branch and the block corresponding to the node of the main branch, it is possible to visually and appropriately grasp whether or not there is a difference between these nodes. Can be done. For the link line connecting the block of each node to the block of the next node, if the next node is specified in the node definition for this node, draw it according to the color of the block of each node. You may.

ステップS509では、ノード編集部54は、フロー定義に含まれる全てのノードを処理対象として、ノードに対応するブロックの描画が完了したか否かを判断し、全てのノードを処理対象としたブロックの描画が完了していない場合(ステップS509:No)には、処理をステップS502に進める一方、全てのノードを処理対象としたブロックの描画が完了している場合(ステップS509:Yes)には、フロー表示処理を終了する。 In step S509, the node editorial unit 54 determines whether or not the drawing of the block corresponding to the node is completed with all the nodes included in the flow definition as the processing target, and the node editing unit 54 determines whether or not the drawing of the block corresponding to the node is completed. If the drawing is not completed (step S509: No), the process proceeds to step S502, while if the drawing of the block for all the nodes to be processed is completed (step S509: Yes), the process proceeds to step S502. End the flow display process.

(フロー表示画面)
図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 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.

ノード選択領域31は、ビジュアルプログラム装置51で利用可能な複数のノードを示すブロック(オブジェクト)を表示するための領域である。ユーザ50は、入出力部52を操作して、ノード選択領域31に表示されているブロックの中から、使用したいノードのブロックを選択することにより、フロー編集領域32で選択されたノードのブロックを配置等することができるようになる。 The node selection area 31 is an area for displaying blocks (objects) 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, and thereby selects the block of the node selected in the flow editing area 32. You will be able to arrange them.

フロー編集領域32は、フロー定義に従ったフローを表示するための領域である。フロー編集領域32に表示されるフローとしては、フロー定義に含まれるノードに対応するブロック(321〜325等)や、ノード間の接続関係を示す接続線等が含まれる。ユーザ50は、入出力部52を操作することにより、フロー編集領域32において、フロー定義におけるノードの配置や、ノードの接続関係等を編集することでフロー定義(すなわち、プログラム)を編集することができる。 The flow editing area 32 is an area for displaying a flow according to the flow definition. The flow displayed in the flow editing area 32 includes blocks (321 to 325, etc.) corresponding to the nodes included in the flow definition, connection lines indicating the connection relationship between the nodes, and the like. By operating the input / output unit 52, the user 50 can edit the flow definition (that is, the program) by editing the arrangement of the nodes in the flow definition, the connection relationship of the nodes, and the like in the flow editing area 32. it can.

フロー編集領域32においては、開発ブランチと主ブランチとの間で変更の衝突があった場合には、分岐時のノード(分岐時ノード)に対応するブロック、主ブランチのノード(主ノード)に対応するブロック、及び開発ブランチのノード(開発ノード)に対応するブロックが、各ノードに対応するノード定義の差分が視覚的に容易に把握できるように表示される。例えば、ブロック322が分岐時ノードに対応し、ブロック323が主ノードに対応し、ブロック324が開発ノードに対応する。ブロック322,323,324の表示態様を見ることにより、各ブロックに対応するノードのノード定義に差分があるか否かを視覚的に容易に把握することができる。図9に示す例では、ブロック322に対応する分岐時ノードと、ブロック323に対応する主ノードとのノード定義に差分があり、また、ブロック322に対応する分岐時ノードと、ブロック324に対応する開発ノードとのノード定義に差分があることを示している。 In the flow editing area 32, when there is a change conflict between the development branch and the main branch, the block corresponding to the node at the time of branching (node at the time of branching) and the node of the main branch (main node) are supported. The blocks to be used and the blocks corresponding to the nodes (development nodes) of the development branch are displayed so that the difference in the node definitions corresponding to each node can be easily grasped. For example, block 322 corresponds to a branching node, block 323 corresponds to a main node, and block 324 corresponds to a development node. By looking at the display mode of blocks 322, 323, 324, it is possible to easily visually grasp whether or not there is a difference in the node definitions of the nodes corresponding to each block. In the example shown in FIG. 9, there is a difference in the node definition between the branching node corresponding to block 322 and the main node corresponding to block 323, and the branching node corresponding to block 322 and block 324 are supported. It shows that there is a difference in the node definition with the development node.

フロー編集領域32において、存在していなかったノードや、削除されたノードについては、そのことが視覚的に把握できるように、他のノードのブロックと異なる表示態様(例えば、点線)で表示するようにしてもよく、また、新たに追加されたノードについては、新たに追加されたことを把握できるように他と異なる表示態様で表示するようにしてもよい。また、フロー編集領域32において、ノードに対応するブロックに対応してノード定義や、他のノードのノード定義との差分の内容を表示するようにしてもよい。具体的には、ブロックの近傍にノード定義や、他のノードのノード定義との差分の内容を表示するようにしてもよく、ブロックが選択等された際に、ノード定義や、他のノードのノード定義との差分の内容をノード情報表示領域33に表示するようにしてもよい。これにより、フロー表示画面30に、ノード定義や、差分の内容を適切に表示することができ、ユーザは、容易かつ適切にその内容を把握することができる。 In the flow editing area 32, nodes that did not exist or deleted nodes are displayed in a display mode (for example, a dotted line) different from the blocks of other nodes so that they can be visually grasped. In addition, the newly added node may be displayed in a display mode different from the others so that the newly added node can be grasped. Further, in the flow editing area 32, the content of the node definition or the difference from the node definition of another node may be displayed corresponding to the block corresponding to the node. Specifically, the node definition or the content of the difference from the node definition of another node may be displayed in the vicinity of the block, and when the block is selected, the node definition or the node definition of another node may be displayed. The content of the difference from the node definition may be displayed in the node information display area 33. As a result, the node definition and the contents of the difference can be appropriately displayed on the flow display screen 30, and the user can easily and appropriately grasp the contents.

ノード情報表示領域33は、ノード選択領域31やフロー編集領域32で選択されたノードに関するノード定義の内容が表示される領域である。 The node information display area 33 is an area in which the contents of the node definition related to the node selected in the node selection area 31 or the flow editing area 32 are displayed.

フロー操作領域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 user 50 can specify an operation related to management by performing an operation by the input / output unit 52 on the node operation area 34. In the flow operation area 34, as the operation related to the management of the flow definition, for example, reading the flow definition, saving (committing) the flow definition, executing the flow definition, and the like can be selected.

なお、本発明は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。 The present invention is not limited to the above-described embodiment, 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, when there is an update in the main branch of the VCS system 61 starting from committing the flow definition to the development branch, the main branch is acquired and the flow display process is performed. However, the present invention is not limited to this. For example, the VCS cooperation unit 55 is made to sequentially monitor whether or not the main branch in the repository 62 of the VCS system 61 has been updated, and the main branch is updated. When it is detected that the main branch has been acquired, the flow display process may be performed. In this way, the change collision caused by the update of the main branch can be grasped at an early stage, that is, at a time when the part related to the change collision is relatively small, and the change collision can be resolved relatively easily. be able to. Therefore, the load when resolving the change collision with the user 50 can be reduced, and the program development efficiency can be improved.

また、上記実施形態では、フロー表示画面30において、開発ブランチと主ブランチ間で変更の衝突があった場合には、分岐時ノード、主ノード、開発ノードに対応する3つのブロックを表示するようにしていたが、本発明はこれに限られず、主ノードに対応するブロックと、開発ノードに対応するブロックとの2つを表示するようにしてもよい。このようにしても、主ノードが分岐ノードと差分があるか否か、開発ノードが分岐ノードと差分があるか否かを視覚的に把握することができる。 Further, in the above embodiment, when there is a change conflict between the development branch and the main branch on the flow display screen 30, three blocks corresponding to the branching node, the main node, and the development node are displayed. However, the present invention is not limited to this, and two blocks, a block corresponding to the main node and a block corresponding to the development node, may be displayed. Even in this way, it is possible to visually grasp whether or not the main node has a difference from the branch node and whether or not the development node has a difference from the branch node.

また、上記実施形態では、ノード間に差分がある場合に、ノードに対応するブロックの色や線種を変えるようにしていたが、本発明はこれに限られず、例えば、ブロックの形状を変えるようにしてもよく、要は、視覚的に認識可能な表示態様を変えるようにすればよい。 Further, in the above embodiment, when there is a difference between the nodes, the color and line type of the block corresponding to the node are changed, but the present invention is not limited to this, and for example, the shape of the block is changed. However, the point is that the visually recognizable display mode may be changed.

また、上記実施形態において、CPUが行っていた処理の一部又は全部を、ハードウェア回路で行うようにしてもよい。また、上記実施形態におけるプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記憶メディア(例えば可搬型の記憶メディア)であってもよい。 Further, in the above embodiment, a part or all of the processing performed by the CPU may be performed by the hardware circuit. In addition, the program in the above embodiment may be installed from the program source. The program source may be a program distribution server or storage media (eg, portable storage media).

1…プログラム開発管理システム、20…通信ネットワーク、21…CPU、22…メモリ、23…記憶装置、51…ビジュアルプログラム装置、52…入出力部、53…フロー実行部、54…フロー編集部、55…VCS連携部、56…リポジトリ管理テーブル。57…変更衝突管理テーブル、61…VCSシステム

1 ... Program development management system, 20 ... Communication network, 21 ... CPU, 22 ... Memory, 23 ... Storage device, 51 ... Visual program device, 52 ... Input / output section, 53 ... Flow execution section, 54 ... Flow editing section, 55 … VCS cooperation department, 56… Repository management table. 57 ... Change collision management table, 61 ... VCS system

Claims (15)

開発対象プログラムを構成する1以上の処理ノード及び前記処理ノードの接続関係を含むフロー定義を、前記処理ノードを示すオブジェクトに対するユーザの操作に従って作成するプログラム開発支援装置において、
前記開発対象プログラムの所定の時点におけるフロー定義である第1フロー定義を取得する第1フロー定義取得部と、
前記開発対象プログラムの前記第1フロー定義に対して前記所定の時点以降の変更が反映された第2フロー定義を取得する第2フロー定義取得部と、
前記開発対象プログラムの前記第1フロー定義を基にして前記所定の時点以降に変更が施された第3フロー定義を記憶する第3フロー定義記憶部と、
前記第3フロー定義と、前記第2フロー定義とが衝突するか否かを判定する衝突判定部と、
衝突すると判定された場合に、前記第1フロー定義と前記第2フロー定義との処理ノードの差分を検出するとともに、前記第1フロー定義と前記第3フロー定義との処理ノードの差分を検出する差分検出部と、
前記第1フロー定義と前記第2フロー定義とで処理ノードに差異がある場合と差異がない場合とで、前記第2フロー定義の処理ノードを示すオブジェクトの表示態様を変えて表示するとともに、前記第1フロー定義と前記第3フロー定義とで差異がある場合と差異がない場合とで、前記第3フロー定義の処理ノードを示すオブジェクトの表示態様を変えて表示するノード表示処理部と、
を備えるプログラム開発支援装置。
In a program development support device that creates a flow definition including one or more processing nodes constituting the development target program and the connection relationship of the processing nodes according to the user's operation on the object indicating the processing node.
The first flow definition acquisition unit that acquires the first flow definition, which is the flow definition at a predetermined time in the development target program,
A second flow definition acquisition unit that acquires a second flow definition that reflects changes after the predetermined time point with respect to 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 since the predetermined time point based on the first flow definition of the development target program.
A collision determination unit that determines whether or not the third flow definition and the second flow definition collide with each other.
When it is determined that a collision occurs, 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. Difference detector and
The display mode of the object indicating the processing node of the second flow definition is changed and displayed depending on whether the processing node is different or not between the first flow definition and the second flow definition. A node display processing unit that displays different display modes of objects indicating the processing nodes of the third flow definition depending on whether there is a difference between the first flow definition and the third flow definition or when there is no difference.
Program development support device equipped with.
前記ノード表示処理部は、前記第1フロー定義に含まれる第1処理ノードを示すオブジェクトを表示するとともに、前記第1フロー定義と前記第2フロー定義とで差異のない前記第2フロー定義の処理ノードのオブジェクトについては、前記第1処理ノードを示すオブジェクトと同様な表示態様で表示すると共に、前記第1フロー定義と前記第2フロー定義とで差異のある前記第2フロー定義の処理ノードを示すオブジェクトについては、前記第1処理ノードを示すオブジェクトと異なる表示態様で表示し、前記第1フロー定義と前記第3フロー定義とで差異のない前記第3フロー定義の処理ノードを示すオブジェクトについては、前記第1処理ノードを示すオブジェクトと同様な表示態様で表示すると共に、前記第1フロー定義と前記第3フロー定義とで差異のある前記第3フロー定義の処理ノードを示すオブジェクトについては、前記第1処理ノードを示すオブジェクトと異なる表示態様で表示する
請求項1に記載のプログラム開発支援装置。
The node display processing unit displays an object indicating the 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 node object is displayed in the same display mode as the object indicating the first processing node, and the processing node of the second flow definition having a difference between the first flow definition and the second flow definition is shown. 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 in which there is no difference between the first flow definition and the third flow definition is shown. The object indicating the processing node of the third flow definition, which is displayed in the same display mode as the object indicating the first processing node and has a difference between the first flow definition and the third flow definition, is described in the first. 1. The program development support device according to claim 1, which is displayed in a display mode different from that of an object indicating a processing node.
前記ノード表示処理部は、前記処理ノードについての差異が、処理ノードの追加、処理ノードの変更、処理ノードの削除のいずれであるかによって、処理ノードを示すオブジェクトの表示態様を異ならせる
請求項1又は請求項2に記載のプログラム開発支援装置。
Claim 1 that the node display processing unit makes a display mode of an object indicating a processing node different depending on whether the difference about the processing node is addition of a processing node, change of a processing node, or deletion of a processing node. Alternatively, the program development support device according to claim 2.
通信ネットワークを介して、前記フロー定義の版を管理する版管理システムに接続されており、
前記第1フロー定義取得部は、前記第1フロー定義を、前記版管理システムから取得し、
前記第2フロー定義取得部は、前記第2フロー定義を、前記版管理システムから取得する
請求項1に記載のプログラム開発支援装置。
It is connected to the version management system that manages the version of the flow definition via the communication network.
The first flow definition acquisition unit acquires the first flow definition from the version management system, and obtains the first flow definition.
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フロー定義が更新されている場合に、前記版管理システムから更新後の第2フロー定義を取得し、
前記衝突判定部と、前記差分検出部と、前記ノード表示処理部は、前記第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 has been updated, after updating from the version management system. Get the second flow definition,
When the second flow definition acquisition unit acquires the updated second flow definition, the collision determination unit, the difference detection unit, and the node display processing unit obtain the updated second flow definition. The program development support device according to claim 4, wherein the process is executed by using the device.
前記第3フロー定義に対する変更を受け付ける変更受付部をさらに備え、
前記衝突判定部は、前記変更受付部により受け付けられた変更が反映された第3フロー定義と、前記第2フロー定義とが衝突するか否かを判定し、
変更が反映された前記第3フロー定義と前記第2フロー定義とが衝突しないと判定された場合に、版管理システムに、前記第3フロー定義を前記第2フロー定義とマージさせるために送信する送信部をさらに備える
請求項1に記載のプログラム開発支援装置。
It also has a change reception unit that accepts changes to the third flow definition.
The collision determination unit determines whether or not 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 and the second flow definition to which the change is reflected do not collide, the third flow definition is transmitted to the version management system to be merged with the second flow definition. The program development support device according to claim 1, further comprising a transmitter.
前記ノード表示処理部は、前記第2フロー定義の処理ノードを示すオブジェクトに対応させて、前記第2フロー定義における前記処理ノードのノード定義、又は第1フロー定義との差分を表示可能であると共に、前記第3フロー定義の処理ノードを示すオブジェクトに対応させて、前記第3フロー定義における前記処理ノードのノード定義、又は第3フロー定義との差分を表示可能である
請求項1に記載のプログラム開発支援装置。
The node display processing unit can display a difference from the node definition of the processing node in the second flow definition or the first flow definition in correspondence with the object indicating the processing node of the second flow definition. The program according to claim 1, wherein the difference from the node definition of the processing node in the third flow definition or the third flow definition can be displayed in correspondence with the object indicating the processing node of the third flow definition. Development support device.
開発対象プログラムを構成する1以上の処理ノード及び前記処理ノードの接続関係を含むフロー定義を、前記処理ノードを示すオブジェクトに対するユーザの操作に従って作成するプログラム開発支援装置によるプログラム開発支援方法であって、
(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 using a program development support device that creates a flow definition including one or more processing nodes constituting a development target program and a connection relationship between the processing nodes according to a user's operation on an object indicating the processing node.
(A) Acquire the first flow definition, which is the flow definition at a predetermined time point of the development target program.
(B) Acquire the second flow definition that reflects the changes after the predetermined time point with respect to the first flow definition of the development target program.
(C) The storage unit stores the third flow definition that has been changed since the predetermined time point based on the first flow definition of the development target program.
(D) It is determined whether or not the third flow definition and the second flow definition collide with each other.
(E) When it is determined that a collision occurs, 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. Detected
(F) The display mode of the object indicating the processing node of the second flow definition is displayed differently depending on whether the processing node is different or not between the first flow definition and the second flow definition. At the same time, a program development support method for displaying different display modes of objects indicating the processing nodes of the third flow definition depending on whether there is a difference between the first flow definition and the third flow definition or not. ..
前記(f)において、前記第1フロー定義に含まれる第1処理ノードを示すオブジェクトを表示するとともに、前記第1フロー定義と前記第2フロー定義とで差異のない前記第2フロー定義の処理ノードのオブジェクトについては、前記第1処理ノードを示すオブジェクトと同様な表示態様で表示すると共に、前記第1フロー定義と前記第2フロー定義とで差異のある前記第2フロー定義の処理ノードを示すオブジェクトについては、前記第1処理ノードを示すオブジェクトと異なる表示態様で表示し、前記第1フロー定義と前記第3フロー定義とで差異のない前記第3フロー定義の処理ノードを示すオブジェクトについては、前記第1処理ノードを示すオブジェクトと同様な表示態様で表示すると共に、前記第1フロー定義と前記第3フロー定義とで差異のある前記第3フロー定義の処理ノードを示すオブジェクトについては、前記第1処理ノードを示すオブジェクトと異なる表示態様で表示する
請求項8に記載のプログラム開発支援方法。
In the above (f), an object indicating the first processing node included in the first flow definition is displayed, and the processing node of the second flow definition having no difference between the first flow definition and the second flow definition. Is displayed in the same display mode as the object indicating the first processing node, and is an object indicating the processing node of the second flow definition having a difference between the first flow definition and the second flow definition. Is displayed in a display mode different from that of 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 described above. The object indicating the processing node of the third flow definition, which is displayed in the same display mode as the object indicating the first processing node and has a difference between the first flow definition and the third flow definition, is the first. The program development support method according to claim 8, wherein the object is displayed in a display mode different from that of the object indicating the processing node.
前記(f)において、前記処理ノードについての差異が、処理ノードの追加、処理ノードの変更、処理ノードの削除のいずれであるかによって、処理ノードを示すオブジェクトの表示態様を異ならせる
請求項8又は請求項9に記載のプログラム開発支援方法。
In claim 8 or the above (f), the display mode of the object indicating the processing node is 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. 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 the version of the flow definition via a communication network.
In (a), the first flow definition is acquired from the version management system.
The program development support method according to claim 8, wherein in the above (b), the second flow definition acquisition unit acquires the second flow definition from the version management system.
前記(b)において、前記版管理システムにおける前記第2フロー定義が更新されたか否かを判定し、前記第2フロー定義が更新されている場合に、前記版管理システムから更新後の第2フロー定義を取得し、
前記(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 the update from the version management system. Get the definition,
The program development support method according to claim 11, wherein in the above (d), (e), and (f), processing is executed using the updated second flow definition.
(g)前記第3フロー定義に対する変更を受け付け、
前記(d)において、前記(g)において受け付けられた変更が反映された第3フロー定義と、前記第2フロー定義とが衝突するか否かを判定し、
(h)変更が反映された前記第3フロー定義と前記第2フロー定義とが衝突しないと判定された場合に、版管理システムに、前記第3フロー定義を前記第2フロー定義とマージさせるために送信する
請求項8に記載のプログラム開発支援方法。
(G) Accepting changes to the third flow definition
In (d), it is determined whether or not the third flow definition reflecting the change accepted in (g) and the second flow definition collide with each other.
(H) To have the version management system merge the third flow definition with the second flow definition when it is determined that the third flow definition and the second flow definition to which the change is reflected do not collide with each other. The program development support method according to claim 8, which is transmitted to.
前記(f)において、前記第2フロー定義の処理ノードを示すオブジェクトに対応させて、前記第2フロー定義における前記処理ノードのノード定義、又は第1フロー定義との差分を表示可能であると共に、前記第3フロー定義の処理ノードを示すオブジェクトに対応させて、前記第3フロー定義における前記処理ノードのノード定義、又は第3フロー定義との差分を表示可能である
請求項8に記載のプログラム開発支援方法。
In (f), it is possible to display the difference from the node definition of the processing node in the second flow definition or the first flow definition in correspondence with the object indicating the processing node of the second flow definition. The program development according to claim 8, wherein the difference from the node definition of the processing node in the third flow definition or the third flow definition can be displayed in correspondence with the object indicating the processing node of the third flow definition. Support method.
開発対象プログラムを構成する1以上の処理ノード及び前記処理ノードの接続関係を含むフロー定義を、前記処理ノードを示すオブジェクトに対するユーザの操作に従って作成するプログラム開発支援装置を構成するコンピュータに実行させるためのプログラム開発支援プログラムであって、
前記コンピュータを、
前記開発対象プログラムの所定の時点におけるフロー定義である第1フロー定義を取得する第1フロー定義取得部と、
前記開発対象プログラムの前記第1フロー定義に対して前記所定の時点以降の変更が反映された第2フロー定義を取得する第2フロー定義取得部と、
前記開発対象プログラムの前記第1フロー定義を基にして前記所定の時点以降に変更が施された第3フロー定義を記憶する第3フロー定義記憶部と、
前記第3フロー定義と、前記第2フロー定義とが衝突するか否かを判定する衝突判定部と、
衝突すると判定された場合に、前記第1フロー定義と前記第2フロー定義との処理ノードの差分を検出するとともに、前記第1フロー定義と前記第3フロー定義との処理ノードの差分を検出する差分検出部と、
前記第1フロー定義と前記第2フロー定義とで処理ノードに差異がある場合と差異がない場合とで、前記第2フロー定義の処理ノードを示すオブジェクトの表示態様を変えて表示するとともに、前記第1フロー定義と前記第3フロー定義とで差異がある場合と差異がない場合とで、前記第3フロー定義の処理ノードを示すオブジェクトの表示態様を変えて表示するノード表示処理部と、して機能させる
プログラム開発支援プログラム。

A computer for configuring a program development support device that creates a flow definition including one or more processing nodes constituting a development target program and a connection relationship between the processing nodes according to a user's operation on an object indicating the processing node. It is a program development support program
The computer
The first flow definition acquisition unit that acquires the first flow definition, which is the flow definition at a predetermined time in the development target program,
A second flow definition acquisition unit that acquires a second flow definition that reflects changes after the predetermined time point with respect to 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 since the predetermined time point based on the first flow definition of the development target program.
A collision determination unit that determines whether or not the third flow definition and the second flow definition collide with each other.
When it is determined that a collision occurs, 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. Difference detector and
The display mode of the object indicating the processing node of the second flow definition is changed and displayed depending on whether the processing node is different or not between the first flow definition and the second flow definition. A node display processing unit that displays different display modes of objects indicating the processing nodes of the third flow definition depending on whether there is a difference between the first flow definition and the third flow definition or when there is no difference. Program development support program that makes it work.

JP2019506453A 2017-08-03 2017-08-03 Program development support device, program development support method, and program development support program Active JP6801086B2 (en)

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 (2)

Publication Number Publication Date
JPWO2019026248A1 JPWO2019026248A1 (en) 2019-08-08
JP6801086B2 true JP6801086B2 (en) 2020-12-16

Family

ID=65233649

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019506453A Active JP6801086B2 (en) 2017-08-03 2017-08-03 Program development support device, program development support method, and program development support program

Country Status (2)

Country Link
JP (1) JP6801086B2 (en)
WO (1) WO2019026248A1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022011442A (en) 2020-06-30 2022-01-17 オムロン株式会社 Program of visual programming editor, computer, and method
CN112506796B (en) * 2020-12-21 2022-06-10 北京百度网讯科技有限公司 Data processing method, device, equipment and storage medium
JP7150002B2 (en) * 2020-12-29 2022-10-07 マーク マリアン ヴァシレ Software development support system, software development support server and software development support program
CN113407230B (en) * 2021-06-04 2023-09-29 中船奥蓝托无锡软件技术有限公司 Intelligent main model management system based on data driving

Family Cites Families (2)

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

Also Published As

Publication number Publication date
WO2019026248A1 (en) 2019-02-07
JPWO2019026248A1 (en) 2019-08-08

Similar Documents

Publication Publication Date Title
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
JP2008139971A (en) Document processing device and document processing program
JP5267732B2 (en) Web page control method, computer system, and program
CN115599437B (en) Software version processing method and device, electronic equipment and storage medium
JP2006277435A (en) Source file version management system
JP6336919B2 (en) Source code review method and system
CN108334333B (en) Method and device for updating source code base
CN113590097A (en) API interface generation method and device, electronic equipment and storage medium
JP2003208501A (en) Business process definition display method and program
JP6558358B2 (en) Server, information processing apparatus, processing method, and program
JP2007226472A (en) Job definition confirmation system, its method, and program
JP2016001376A (en) Programmable controller system, and support device of the same
JP2016009423A (en) Information processing device, method for controlling information processing device, and program
JP2009223822A (en) Source code update notifying device and source code update notifying method
JP5473250B2 (en) Search device control method and search device
JP2009266149A (en) Job management program and job management apparatus
JP2017033079A (en) Program, device, and method for supporting software introduction
KR102007610B1 (en) Distributed versioning tool of spatial information and method for managing distributed version of spatial information using same
JP2010128776A (en) Apparatus and method for automatic maintenance of portable terminal
JP4886910B1 (en) Information processing apparatus, information processing apparatus control method, program, and recording medium storing program
JP6217231B2 (en) Software configuration management system
JP5772123B2 (en) Building design support apparatus and building design support method
JP2000112800A (en) File history management system
JP5316273B2 (en) Program automatic generation apparatus and program automatic generation method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200421

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200525

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201027

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201125

R150 Certificate of patent or registration of utility model

Ref document number: 6801086

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150