JP5564579B2 - フローチャート描画装置、フローチャート描画方法およびプログラム - Google Patents
フローチャート描画装置、フローチャート描画方法およびプログラム Download PDFInfo
- Publication number
- JP5564579B2 JP5564579B2 JP2012552616A JP2012552616A JP5564579B2 JP 5564579 B2 JP5564579 B2 JP 5564579B2 JP 2012552616 A JP2012552616 A JP 2012552616A JP 2012552616 A JP2012552616 A JP 2012552616A JP 5564579 B2 JP5564579 B2 JP 5564579B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- flowchart
- connector
- input
- display position
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 332
- 238000012545 processing Methods 0.000 claims description 36
- 238000007493 shaping process Methods 0.000 description 18
- 230000005484 gravity Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 229910003460 diamond Inorganic materials 0.000 description 2
- 239000010432 diamond Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000005452 bending Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/206—Drawing of charts or graphs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/067—Enterprise or organisation modelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Economics (AREA)
- General Engineering & Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Software Systems (AREA)
- Development Economics (AREA)
- Educational Administration (AREA)
- Game Theory and Decision Science (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- User Interface Of Digital Computer (AREA)
Description
本発明は、フローチャート描画装置、フローチャート描画方法およびプログラムに関する。
企業における業務知識やノウハウ等を用いた業務を行う手順を可視化するツールとして業務フローチャートがある。この業務フローチャートは、その業務で行われる作業や処理内容を示すノードやノード間の接続線等で構成される。
業務フロー等のように、オブジェクトをフローチャート形式で、表示装置に表示させるソフトウェアの編集機能において、従来技術では、オブジェクトの配置作業時に以下の作業をユーザ自らが行う必要があった。
(1)新規に追加したオブジェクトの配置
(2)描画領域を考慮した配置済みオブジェクトの移動
(3)オブジェクト間の結線(不要な結線の削除や追加したオブジェクトと既存のオブジェクトとの結線)
(1)新規に追加したオブジェクトの配置
(2)描画領域を考慮した配置済みオブジェクトの移動
(3)オブジェクト間の結線(不要な結線の削除や追加したオブジェクトと既存のオブジェクトとの結線)
特に、上記(2)のオブジェクトの移動作業については、フローが見やすい形になるようにユーザが考慮して行う必要があり、フローの大きさや複雑さに応じて、多くの作業時間を要していた。
この業務フローチャートの作成を効率的に行うための技術として、フローチャートを描画する編集機能を持たず、業務フローの各々の処理を示す表形式のファイルを入力としてフローチャートを作図する方法が開示されている(特許文献1参照)。
また、作成中のフローチャートの接続線が交差しないように自動的に制御する方法が開示されている(特許文献2参照)。
また、作成中のフローチャートの接続線が交差しないように自動的に制御する方法が開示されている(特許文献2参照)。
この特許文献1に記載の技術は、完成したフローチャートの全貌を見た後に編集することができない。また、対象とする業務フローの構成要素が少なく、複雑な形をとらないため、見やすさを考慮に入れていない方法である。
通常、新規オブジェクトの追加によって完成したフローチャートを見て、他のオブジェクトとインデントをそろえたり、ユーザに見やすくするためにスペースをとるなどの見た目を目的とした調整作業が発生する。フローチャートのオブジェクトを描画・編集するソフトウェアにおいて、見た目調整の作業は必須であり、かつ、二次的な作業であるにもかかわらず多くの工数を要していた。
また、特許文献2に記載の技術は、ツールによって形の決まる接続線の配置に着目しているものである。しかしながら、フローチャートを作成するユーザは、フローチャート全体の形を見て、接続線だけでなくオブジェクトの位置を更に手作業により調整する必要があった。
つまり、ユーザは、オブジェクトを追加する場合に、ユーザ自身により、フローチャート全体の形を調整する必要があり、手間のかかるものであった。
通常、新規オブジェクトの追加によって完成したフローチャートを見て、他のオブジェクトとインデントをそろえたり、ユーザに見やすくするためにスペースをとるなどの見た目を目的とした調整作業が発生する。フローチャートのオブジェクトを描画・編集するソフトウェアにおいて、見た目調整の作業は必須であり、かつ、二次的な作業であるにもかかわらず多くの工数を要していた。
また、特許文献2に記載の技術は、ツールによって形の決まる接続線の配置に着目しているものである。しかしながら、フローチャートを作成するユーザは、フローチャート全体の形を見て、接続線だけでなくオブジェクトの位置を更に手作業により調整する必要があった。
つまり、ユーザは、オブジェクトを追加する場合に、ユーザ自身により、フローチャート全体の形を調整する必要があり、手間のかかるものであった。
このような背景に鑑みて本発明がなされたのであり、本発明は、フローチャート作成の編集効率を向上することができる、フローチャート描画装置、フローチャート描画方法およびプログラムを提供することを目的とする。
本発明に係るフローチャート描画装置は、ノードおよびノード間を接続する接続線であるコネクタの表示位置を示す座標情報、並びに、ノードとコネクタとの接続情報を含むパーツ情報(パーツ情報テーブル)を記憶する記憶部を備える。そして、入力装置からフローチャートに追加されるノードに関する情報の入力を受け付けると、入力されたノードの表示位置と、フローチャートを構成するコネクタの表示位置とが重複するか否かをパーツ情報に基づき判定する。そして、入力されたノードがコネクタと重複すると判定した場合に、重複したコネクタと接続する上位のノードと下位のノードとの間に、入力されたノードを挿入するように、ノード間の接続関係を決定する。そして、フローチャート描画装置は、上位のノードの表示位置を基準として、フローチャートを構成するノードおよびコネクタの表示位置を決定し、表示装置にフローチャートを表示させる。
本発明によれば、フローチャート作成の編集効率を向上する、フローチャート描画装置、フローチャート描画方法およびプログラムを提供することができる。
(処理概要)
まず、本実施形態に係るフローチャート描画装置1の処理概要を説明する。
本実施形態に係るフローチャート描画装置1が処理を行うフローチャートは、例えば、後記する図2や図21等に示すフローチャートである。これらのフローチャートは、処理や分岐等を示すノードで構成され、各ノード間が矢印付きの線(以下、「コネクタ」と呼ぶ。)で結線される。このノードとコネクタとを総称してパーツと呼ぶ。
また、ノードには、以下の種類がある。
(1)開始および終了を示し、楕円形で表示されるノード。以下、開始を示すノードを、「開始ノード」と呼ぶ。
(2)処理を示し、矩形で表示されるノード。以下、「プロセス」と呼ぶ。
(3)分岐を示し、ひし形で表示されるノード。以下、「分岐ノード」と呼ぶ。なお、本実施形態においては、例示していないが、フローにおける処理の合流をひし形の合流ノードとしてフローチャートに表示させてもよい。
まず、本実施形態に係るフローチャート描画装置1の処理概要を説明する。
本実施形態に係るフローチャート描画装置1が処理を行うフローチャートは、例えば、後記する図2や図21等に示すフローチャートである。これらのフローチャートは、処理や分岐等を示すノードで構成され、各ノード間が矢印付きの線(以下、「コネクタ」と呼ぶ。)で結線される。このノードとコネクタとを総称してパーツと呼ぶ。
また、ノードには、以下の種類がある。
(1)開始および終了を示し、楕円形で表示されるノード。以下、開始を示すノードを、「開始ノード」と呼ぶ。
(2)処理を示し、矩形で表示されるノード。以下、「プロセス」と呼ぶ。
(3)分岐を示し、ひし形で表示されるノード。以下、「分岐ノード」と呼ぶ。なお、本実施形態においては、例示していないが、フローにおける処理の合流をひし形の合流ノードとしてフローチャートに表示させてもよい。
本実施形態に係るフローチャート描画装置1は、表示画面上に表示されたフローチャートの既存のパーツに、ユーザが、新たなプロセスを重ねて配置させることで、予め設定された接続関係に基づき、新たなプロセスを追加したフローチャートの配置を決定する。
具体的には、新たなプロセスを追加するユーザの操作に、以下に示す2つの接続関係の処理の実行を設定しておく。
具体的には、新たなプロセスを追加するユーザの操作に、以下に示す2つの接続関係の処理の実行を設定しておく。
まず、図2に示したフローチャートが表示されている場合、図5に示すように、プロセスA003とプロセスB005との間のコネクタ(矢印)004に重なるように、新たなプロセスC006がユーザにより配置される。すると、本実施形態に係るフローチャート描画装置1は、後記する図9に示すように、新たなプロセスC006を、プロセスA003とプロセスB005との間に挿入する処理を行うものと判定し、処理を実行する。なお、このように、フローの上方から下方に向けて接続されたノード間に新たなプロセスを挿入する処理、または、ノード間の接続関係を、以下「順接接続」と呼ぶ。
また、図14(a)に示すように、既存のプロセス(プロセスA003)と重なるように、新たなプロセスC006がユーザにより配置される。すると、本実施形態に係るフローチャート描画装置1は、後記する図21のように、新たなプロセスC006と、既存のプロセスA003とを、並列に接続する処理を行うものと判定し、新たなノードとして分岐ノード(分岐ノード007)を追加した上で、既存のプロセス(プロセスA003)と新たなプロセスC006とを並列に接続する。なお、このように、フローをある条件によって分岐し、その分岐先の一方のプロセスと他方のプロセスを並列に接続させる処理、または、ノード間の接続関係を、以下「並接接続」と呼ぶ。
本実施形態に係るフローチャート描画装置1は、ユーザの操作に対応付けて、フローチャートの接続関係を予め定義しておくことで、新たに入力されるプロセスを、「順接接続」あるいは「並接接続」として設定する処理を実行する。このようにすることで、ユーザは、新たなプロセスの入力を行う場合に、既存のプロセスの配置の変更を自ら行う必要がなく、作業効率を向上させることができる。
また、フローチャート描画装置1は、新たに入力されたプロセスの接続が終了した後、既存のパーツの大きさに合わせて自動で全体の整形を行う。このようにすることで、ユーザは、既存のパーツとのバランスを考えながら、追加したパーツのレイアウトを微調整する必要がなくなる(詳細は後記する)。
また、フローチャート描画装置1は、新たに入力されたプロセスの接続が終了した後、既存のパーツの大きさに合わせて自動で全体の整形を行う。このようにすることで、ユーザは、既存のパーツとのバランスを考えながら、追加したパーツのレイアウトを微調整する必要がなくなる(詳細は後記する)。
(フローチャート描画装置の構成)
図1は、本実施形態に係るフローチャート描画装置1の構成例を示す機能ブロック図である。図1に示すように、フローチャート描画装置1は、CPU(Central Processing Unit)10と、メモリ部20と、記憶部30と、入出力部40とを含んで構成される。
図1は、本実施形態に係るフローチャート描画装置1の構成例を示す機能ブロック図である。図1に示すように、フローチャート描画装置1は、CPU(Central Processing Unit)10と、メモリ部20と、記憶部30と、入出力部40とを含んで構成される。
CPU10は、フローチャート描画装置1全体の制御および演算を行う。
また、入出力部40は、入力インタフェース41と出力インタフェース42とを備える。そして、入出力部40は、入力インタフェース41を介して、マウスやキーボード等の入力装置2からの情報の入力を受け付ける。また、入出力部40は、出力インタフェース42を介して、フローチャート描画装置1の処理結果であるフローチャートを、表示装置3のディスプレイ等に表示させる。
なお、この入力インタフェース41は、図示していない可搬型記憶デバイスと接続することができ、後記するフローチャート描画部200を実行させるプログラムが格納された可搬型記憶デバイスが接続されると、記憶部30に転送したり、メモリ部20へ直接記憶させるようにすることもできる。
また、入出力部40は、入力インタフェース41と出力インタフェース42とを備える。そして、入出力部40は、入力インタフェース41を介して、マウスやキーボード等の入力装置2からの情報の入力を受け付ける。また、入出力部40は、出力インタフェース42を介して、フローチャート描画装置1の処理結果であるフローチャートを、表示装置3のディスプレイ等に表示させる。
なお、この入力インタフェース41は、図示していない可搬型記憶デバイスと接続することができ、後記するフローチャート描画部200を実行させるプログラムが格納された可搬型記憶デバイスが接続されると、記憶部30に転送したり、メモリ部20へ直接記憶させるようにすることもできる。
記憶部30は、フラッシュメモリ、ハードディスク等の記憶手段からなり、パーツ情報テーブル300等を記憶する。
図3は、本実施形態に係るパーツ情報テーブル(パーツ情報)300のデータ構成の一例を示す図である。図3に示すパーツ情報テーブル300のデータは、図2に示すフローチャートの各パーツに関する情報を示すものである。
パーツ情報テーブル300は、ID301、Type302、Name303、接続元パーツ304、接続先パーツ305、位置座標306、寸法307、重心位置308、ノードグループ309、および一時情報310を含んで構成される。なお、接続元パーツ304および接続先パーツ305の情報が、請求項の接続情報に該当する。また、位置座標306、寸法307および重心位置308の情報が、請求項の表示位置を示す座標情報に該当する。
ID301は、対象となるフローチャートの各パーツに一意に付される識別子である。
Type302は、パーツの種類を示し、開始ノード等を示す「Terminal」、コネクタ(矢印)を示す「Connector」、プロセスを示す「Process」、分岐ノードを示す「Branch」(不図示)等が格納される。
Name303は、パーツの名称を表す。なお、パーツの名称が付されていない場合は、「NONAME」が格納される。
ID301は、対象となるフローチャートの各パーツに一意に付される識別子である。
Type302は、パーツの種類を示し、開始ノード等を示す「Terminal」、コネクタ(矢印)を示す「Connector」、プロセスを示す「Process」、分岐ノードを示す「Branch」(不図示)等が格納される。
Name303は、パーツの名称を表す。なお、パーツの名称が付されていない場合は、「NONAME」が格納される。
接続元パーツ304は、From341とFromPort342の情報を含んで構成される。このFrom341には、そのパーツの上位に接続する接続元のパーツのID番号(ID301)が格納される。FromPort342は、そのパーツがプロセスの場合、表示画面上において、矩形の上方(Upper)、下方(Lower)、左方(Left)、右方(Right)のどの位置で接続元のコネクタと接続されているかを示す。例えば、ID301が「003」のプロセスA003の場合は、図2に示すように、プロセスA003を表す矩形の上方(Upper)で、コネクタ002(ID:002)と接続されることを示している。
接続先パーツ305は、To351とToPort352の情報を含んで構成される。このTo351は、そのパーツの下位に接続する接続先のパーツのID番号(ID301)が格納される。ToPort352は、そのパーツがプロセスの場合、表示画面上において、プロセスを示す矩形の上方(Upper)、下方(Lower)、左方(Left)、右方(Right)のどの位置で接続先のコネクタと接続されているかを示す。例えば、ID301が「003」のプロセスA003の場合は、図2に示すように、プロセスA003を表す矩形の下方(Lower)で、コネクタ004(ID:004)と接続されることを示している。なお、パーツの種類が分岐ノード(Branch)の場合は、複数のコネクタが接続先パーツ305に設定される(詳細は後記する)。
位置座標306は、そのパーツがノードの場合は、ノードを囲む最小の矩形の左上端の座標(x値、y値)を表す。例えば、ID301が「001」の開始ノード001の位置座標306は、開始ノード001を表す楕円を囲む最小の矩形の左上端の座標(100、20)を表す(図2参照)。また、そのパーツがコネクタの場合は、接続元のパーツの矢印の始点を表す。例えば、ID301が「004」のコネクタ004の位置座標306は、コネクタ004の矢印の始点である座標(120、100)を表す(図2参照)。
寸法307は、そのパーツの幅(w値)と高さ(h値)とを表す。本実施例においては、プロセス(矩形)の幅(w値)を「60」、高さ(h値)を「20」。コネクタ(矢印)の幅(w値)を「0」、高さ(h値)を「40」。分岐ノード(ひし形)の幅(w値)を「40」、高さ(h値)を「20」、として説明するが、各パーツの基本となる寸法307は任意に設定することができる。
重心位置308は、各パーツの重心のx座標、y座標である(cx値)、(cy値)を表す。
ノードグループ309は、分岐ノード若しくは合流ノードを境にしたパーツの集合を表す。後記するフローチャートの表示位置調整処理(図10、図18参照)は、同じノードグループ309内のパーツについて行う(詳細は後記)。図2に示すフローチャートにおいては、分岐ノード、合流ノードは存在しないので、各パーツは同じノードグループ309である「N1」が設定される。
なお、複数のフローの合流を示す合流ノードを、ひし形のノードとしてフローチャートに図示しない場合(矢印のみでフローの合流を示す)もあるが、その場合であっても、本実施形態におけるパーツ情報テーブル300の接続元パーツ304の項目に、複数の接続元パーツが設定されている場合には、仮想的に合流ノードが存在するものとしてノードグループ309の編成処理を行うようにしてもよい。
なお、複数のフローの合流を示す合流ノードを、ひし形のノードとしてフローチャートに図示しない場合(矢印のみでフローの合流を示す)もあるが、その場合であっても、本実施形態におけるパーツ情報テーブル300の接続元パーツ304の項目に、複数の接続元パーツが設定されている場合には、仮想的に合流ノードが存在するものとしてノードグループ309の編成処理を行うようにしてもよい。
一時情報310は、Add311とTarget312の情報を含んで構成される。Add311は、フローチャートに、追加して入力されたノードを示す一時情報310である。また、Target312は、フローチャートに、追加して入力されたノードと重なったパーツを示す一時情報310である。なお、この一時情報310については、後記する図6、図7において詳細に説明する。
図1に戻り、メモリ部20は、RAM(Random Access Memory)等の一次記憶装置からなり、メモリ部20上には、フローチャート描画部200がプログラムとして読み込まれている。
このフローチャート描画部200は、フローチャート描画装置1全体の制御を行い、データ入力部201と、パーツ情報管理部202と、フロー位置計算部203と、フロー表示部204とを含んで構成される。なお、このフローチャート描画部200は、例えばフローチャート描画装置1の記憶部30に記憶されたプログラムを、CPU10がメモリ部20に展開し実行することで実現される。また、このフローチャート描画部200は、集積回路化するなどしてハードウェアで実現するようにしてもよい。
データ入力部201は、ユーザによる入力装置2の操作により、入出力部40を介して新たに追加されたパーツの入力を受け付ける。そして、データ入力部201は、受け付けたパーツの情報を、パーツ情報管理部202に出力する。
パーツ情報管理部202は、入力されたパーツの情報を、一時情報310として、記憶部30内のパーツ情報テーブル300に記憶する。
また、パーツ情報管理部202は、入力されたパーツがプロセスであり、そのプロセスの配置が、パーツ情報テーブル300に記憶されている既存のパーツであるコネクタまたはプロセスと重複するか否かを判定する。
また、パーツ情報管理部202は、入力されたパーツがプロセスであり、そのプロセスの配置が、パーツ情報テーブル300に記憶されている既存のパーツであるコネクタまたはプロセスと重複するか否かを判定する。
そして、パーツ情報管理部202は、入力されたプロセスが既存のコネクタと重複する場合には、ノード間に入力されたプロセスを挿入する「順接接続」を実行すると判定し、入力されたプロセスとその上位に位置するプロセスとを接続するためのコネクタ、および、入力されたプロセスとその下位に位置するプロセスとを接続するためのコネクタを、パーツ情報テーブル300に新たに設定する。
また、パーツ情報管理部202は、入力されたプロセスが既存のプロセスと重複する場合には、入力されたプロセスと既存の重複したプロセスとを、並列に接続する「並接接続」を実行すると判定する。そして、パーツ情報管理部202は、パーツ情報テーブル300に分岐ノードを設定した上で、重複したプロセスと新たな入力されたプロセスとを並列に接続する。
また、パーツ情報管理部202は、入力されたプロセスが既存のプロセスと重複する場合には、入力されたプロセスと既存の重複したプロセスとを、並列に接続する「並接接続」を実行すると判定する。そして、パーツ情報管理部202は、パーツ情報テーブル300に分岐ノードを設定した上で、重複したプロセスと新たな入力されたプロセスとを並列に接続する。
フロー位置計算部203は、パーツ情報管理部202が、順接接続を実行すると判定した場合に、入力されたプロセスと接続する上位と下位のプロセスを特定し、上位のプロセスの位置座標に基づき、入力されたプロセスのX座標を変更し、各プロセスが等間隔に配置されるようにY座標を変更する。なお、詳細は、図10に示す表示位置調整処理(順接接続)において説明する。
また、フロー位置計算部203は、パーツ情報管理部202が、並接接続を実行すると判定した場合に、分岐ノードを中心として、分岐ノードよりも下位に接続するパーツを左右対称となるように配置する。なお、詳細は、図18に示す表示位置調整処理(並接接続)において説明する。
さらに、フロー位置計算部203は、入力されたプロセスの属するノードグループにおける表示位置調整処理を終えると、ノードグループ整形処理を行う。ノードグループ整形処理において、フロー位置計算部203は、基準となる分岐ノードを支点として、各ノードグループが重ならないように、左右対称に設定する。なお、詳細は、図26に示すノードグループ整形処理において説明する。
フロー表示部204は、パーツ情報管理部202を介して、パーツ情報テーブル300に記憶されたフローチャートの情報を取得し、入出力部40を介して、表示装置3にそのフローチャートの情報を出力し、表示装置3に表示させる。
(フローチャート描画処理)
次に、本実施形態に係るフローチャート描画装置1が行うフローチャート描画処理について説明する。
次に、本実施形態に係るフローチャート描画装置1が行うフローチャート描画処理について説明する。
≪順接接続≫
図4は、本実施形態に係るフローチャート描画装置1が行うフローチャート描画処理(順接接続)の流れを示すフローチャートである。なお、本実施例では、図5に示すように、図2で示したフローチャートのコネクタ(矢印)004に、プロセスC006がユーザにより配置されることにより、フローチャート描画装置1が、順接接続の処理を行うものとして説明する。
図4は、本実施形態に係るフローチャート描画装置1が行うフローチャート描画処理(順接接続)の流れを示すフローチャートである。なお、本実施例では、図5に示すように、図2で示したフローチャートのコネクタ(矢印)004に、プロセスC006がユーザにより配置されることにより、フローチャート描画装置1が、順接接続の処理を行うものとして説明する。
まず、フローチャート描画装置1のパーツ情報管理部202は、パーツ情報テーブル300におけるノードグループ309の編成を行う(ステップS101)。具体的には、パーツ情報管理部202は、パーツ情報テーブル300内のノードグループ309を、分岐・合流ノードを境にして、グループ化を行う。本実施例では、図3のパーツ情報テーブル300に示すように、すべてのパーツが同じノードグループ(N1)に属する。
次に、フローチャート描画装置1のフロー表示部204は、パーツ情報テーブル300の情報を取得し、フローチャートを表示装置3に出力し、描画させる(ステップS102)。ここで表示されるフローチャートは、ユーザによる編集前のフローチャートであり、図2に示すように表示される。
続いて、ユーザによる入力装置2の操作により、入出力部40を介して、データ入力部201が、新たに追加されるパーツの入力を受け付ける(ステップS103)。具体的には、データ入力部201が、プロセスC006の入力を受け付ける(図5参照)。
そして、パーツ情報管理部202は、入力されたパーツの情報、ここでは、プロセスC006の情報を、一時情報310としてパーツ情報テーブル300に記憶する(ステップS104)。具体的には、図6に示すように、プロセスC006がパーツ情報テーブル300に追加される。ここで、パーツ情報管理部202は、プロセスC006がユーザにより追加された表示位置の情報から、ID301(「006」)、Type302(「Process」)、Name303(「C」)を格納し、位置座標306、寸法307、重心位置308の情報を算出し格納する。また、パーツ情報管理部202は、確定していない接続元パーツ304および接続先パーツ305については、接続先、接続元が未確定であることを示す「NEW」という値を設定しておく。そして、パーツ情報管理部202は、入力された情報が、すべてのパーツに対する表示位置の調整を行う前の情報(一時情報)であることを示すものとして、一時情報310のAdd311に「1」を設定する。
次に、パーツ情報管理部202は、ステップS103でユーザにより入力されたパーツが、プロセスであり、既存パーツであるコネクタと重複するか否かを判定する(ステップS105)。ここで、重複とは、新たに追加されたプロセスと、既存のパーツとが、表示装置3のディスプレイ上で重なって表示されていることを意味する。図5に示すように、ユーザにより入力されたプロセスC006が、既存のパーツであるコネクタ004と重なって表示されている。このように、ユーザ操作において新たなプロセスを追加する際に、既存のコネクタに重ねてプロセスと追加することは、そのコネクタに繋がる上位と下位のプロセスの間に、追加したプロセスを挿入することを意味する。
ステップS105において、入力されたパーツがプロセスであり、既存のコネクタと重複する場合には(ステップS105→Yes)、次のステップS106に進む。一方、入力されたパーツがプロセスでない場合や、プロセスであっても既存のコネクタと重複しない場合には(ステップS105→No)、ステップS110へ進む。
次に、ステップS106において、パーツ情報管理部202は、入力されたプロセスに重複するコネクタの接続元および接続先のプロセスを抽出し、接続関係を決定する。ここでは、入力されたプロセスC006と重複するコネクタ004の接続元、接続先の各プロセスを、パーツ情報テーブル300のFrom341およびTo351の項目から抽出し、接続元としてプロセスA003を、接続先としてプロセスB005を得る。
そして、パーツ情報管理部202は、入力されたプロセスの上位にあるプロセス(抽出した接続元のプロセス)、下位にあるプロセス(抽出した接続先のプロセス)それぞれと、入力されたプロセスとを接続するコネクタを設定し、一時情報310としてパーツ情報テーブル300に記憶する(ステップS107)。
ステップS107の処理を、図7に示すパーツ情報テーブル300を用いて具体的に説明する。パーツ情報管理部202は、パーツ情報テーブル300において、ユーザにより入力されたプロセスC006と重複するパーツであるコネクタ004の一時情報310のTarget312に「1」を設定する。次に、パーツ情報管理部202は、新たなコネクタとして、プロセスC006とプロセスA003との間のコネクタ007、プロセスC006とプロセスB005との間のコネクタ008を追加する。そして、コネクタ007およびコネクタ008の一時情報310のAdd311に「1」を設定する。このステップS107の処理を終えた状態のフローチャートを説明のため示すと、図8のようになる。
図4に戻り、次に、フローチャート描画装置1のフロー位置計算部203は、新規に追加したプロセスやコネクタを含め、ノードグループ(N1)内のすべてのパーツの表示位置を調整する(ステップS108)。このステップS108により、フローチャートの位置が調整された結果を図9に示す。なお、このフローチャートの表示位置調整処理(順接接続)の詳細は、図10において説明する。
続いて、フロー位置計算部203は、ノードグループ整形処理を行う(ステップS109)。このノードグループ整形処理は、パーツ情報テーブル300のノードグループ309の項目に複数のノードグループが存在する場合に実行されるものである。ここでは、ノードグループが「N1」の1つしか存在しないため、ノードグループ整形処理は行わないが、ノードグループ整形処理については後記において説明する(図26参照)。
そして、フローチャート描画装置1は、ステップS108およびステップS109により、フローチャートの表示位置を決定すると、パーツ情報管理部202が、パーツ情報テーブル300の一時情報310を確定する(ステップS110)。なお、パーツ情報管理部202による一時情報310の確定は、具体的には、パーツ情報テーブル300の一時情報310のAdd311およびTarget312に設定した値の削除処理を行うことである。そして、フロー表示部204は、確定したフローチャートを、入出力部40を介して、表示装置3のディスプレイに描画する(ステップS111)。
<表示位置調整処理(順接接続)>
次に、図4のステップS108における表示位置調整処理(順接接続)について、図10を用いて説明する。図10は、本実施形態に係るフローチャート描画装置1の表示位置調整処理(順接接続)の流れを示すフローチャートである。
次に、図4のステップS108における表示位置調整処理(順接接続)について、図10を用いて説明する。図10は、本実施形態に係るフローチャート描画装置1の表示位置調整処理(順接接続)の流れを示すフローチャートである。
まず、フローチャート描画装置1のフロー位置計算部203は、入力されたプロセスに接続する上位のプロセスと下位のプロセスとを特定する(ステップS201)。具体的には、まず、フロー位置計算部203は、入力されたプロセスC006と接続関係にある上位のプロセスをパーツ情報テーブル300から探索する。ここで、フロー位置計算部203は、図7のパーツ情報テーブル300において、プロセスC006の接続元パーツ304のFrom341の項目から、上位のパーツがID番号「007」のコネクタ007であると抽出し、さらに、コネクタ007の接続元パーツ304のFrom341の項目から、コネクタ007の上位にあるパーツが、プロセスA003であることを特定する。同様に、フロー位置計算部203は、プロセスC006と接続関係にある下位のプロセスについて、プロセスC006の接続先パーツ305のTo351の項目から、下位のパーツがID番号「008」のコネクタ008であると抽出する。そして、コネクタ008の接続先パーツ305のTo351の項目から、コネクタ008の下位にあるパーツが、プロセスB005であることを特定する。
次に、フロー位置計算部203は、ステップS201で特定した上位のプロセスおよび下位のプロセスの重心位置308のX座標であるcx値と、入力されたプロセスの重心位置308のX座標であるcx値とを比較し、入力されたプロセスの重心位置308のcx値のみが異なるか否かを判定する(ステップS202)。ここでは、上位のプロセスであるプロセスA003のcx値および下位のプロセスであるプロセスB005のcx値と、入力されたプロセスであるプロセスC006のcx値とを比較する。
そして、フロー位置計算部203は、上位のプロセスおよび下位のプロセスのcx値が同じ値であり、入力されたプロセスのcx値のみが異なる場合には(ステップS202→Yes)、次のステップS203に進む。
ステップS203において、フロー位置計算部203は、入力されたプロセスの重心位置308のcx値を、上位のプロセスのcx値と同じ値に変更する(ステップS203)。
本実施例においては、上位のプロセスであるプロセスA003のcx値と下位のプロセスであるプロセスB005のcx値が同じであり、入力されたプロセスであるプロセスC006のcx値のみが異なるため、入力されたプロセスの重心位置308のcx値を、プロセスA003のcx値と同じ値に設定する。このステップS203の処理を終えた時点のパーツ情報テーブル300を図11に示し、この状態のフローチャートを図12に示す。図12に示すように、重心位置308のcx値が各プロセスにおいて同じ値となっている。
本実施例においては、上位のプロセスであるプロセスA003のcx値と下位のプロセスであるプロセスB005のcx値が同じであり、入力されたプロセスであるプロセスC006のcx値のみが異なるため、入力されたプロセスの重心位置308のcx値を、プロセスA003のcx値と同じ値に設定する。このステップS203の処理を終えた時点のパーツ情報テーブル300を図11に示し、この状態のフローチャートを図12に示す。図12に示すように、重心位置308のcx値が各プロセスにおいて同じ値となっている。
一方、図10に戻り、ステップS202において、上位のプロセスおよび下位のプロセスのcx値と、入力されたプロセスのcx値とを比較し、入力されたプロセスの重心位置308のcx値のみが異なる場合以外のとき(ステップS202→No)、つまり、上位のプロセス、下位のプロセス、入力されたプロセス、それぞれのcx値がすべて異なる場合や、上位のプロセスと入力されたプロセスのcx値が同じ値であり、下位のプロセスのみcx値が異なる場合には、ステップS204に進む。
ステップS204において、フロー位置計算部203は、入力されたプロセスの重心位置308のcx値や、下位のプロセスの重心位置308のcx値を、上位のプロセスの重心位置308のcx値と同じ値に変更する。つまり、上位のプロセスであるプロセスA003のcx値に、入力されたプロセスC006および下位のプロセスB005のcx値を揃えるようにする。
次に、ステップS203またはステップS204の処理を終えると、フロー位置計算部203は、各プロセスが等間隔に配置されるように、パーツ毎のcx値、cy値、およびx値、y値を変更する(ステップS205)。
具体的には、フロー位置計算部203は、まず、調整対象となっていないコネクタの高さ(寸法307のh値)を特定する。本実施例の場合、上位のプロセスA003のさらに上位に接続するコネクタ002の高さ(h値)「40」を記憶する。フロー位置計算部203は、このh値「40」を基準にしてY座標を調整する。そして、フロー位置計算部203は、新たに挿入したコネクタの高さ(h値)が「40」になるように、そしてそのコネクタの寸法307の幅(w値)が「0」になるようにして、パーツ全体の表示位置を調整する。また、フロー位置計算部203は、パーツ情報テーブル300の一時情報310のTarget312の項目に「1」を設定したコネクタを削除する。具体的には、フロー位置計算部203は、新たに追加されたプロセスC006と接続するコネクタ007およびコネクタ008を設定することで不要となったコネクタ004を削除する。
図13は、図10のステップS205を実行して、各パーツが等間隔となるように調整されたパーツ情報テーブル300を示している。図13に示すパーツ情報テーブル300では、コネクタ004が削除されている。この図13に示すパーツ情報テーブル300を用いて、フローチャートを示すと、図9に示すように、プロセスA003とプロセスB005との間に、プロセスC006が挿入され、各プロセスは均等な間隔で配置される。
なお、表示位置のレイアウトに関する調整方針は、ユーザの好みやフローチャートを使用する業務によって異なる。したがって、本実施形態で例示したフローチャートの表示位置の調整を、別の調整ロジックに基づき、記憶部30に記憶させ、ユーザが変更できるようにしてもよい。
このようにすることで、本実施形態に係るフローチャート描画装置1によれば、ユーザにより入力されたプロセスの接続関係を、表示画面上の図形の重なりで特定することができ、フローチャートの編集操作を簡便化することができる。また、ユーザは、既存のパーツとのバランスを考えながら、追加したパーツのレイアウトを微調整する必要がなくなる。
≪並接接続≫
次に、本実施形態に係るフローチャート描画装置1が、ユーザにより入力された新たなプロセスが既存のプロセスに重なるように配置された場合のフローチャート描画処理(並接接続)について説明する。
次に、本実施形態に係るフローチャート描画装置1が、ユーザにより入力された新たなプロセスが既存のプロセスに重なるように配置された場合のフローチャート描画処理(並接接続)について説明する。
このフローチャート描画処理(並接接続)では、図14(a)に示すように、既存のプロセス(例えば、プロセスA003)に、新たに入力されたプロセス(例えば、プロセスC006)を重ねた場合に、フローチャート描画装置1において、既存のプロセスと入力されたプロセスとを並列に接続する関係を有するものと規定しておく。そして、フローチャート描画装置1は、図21の処理結果に示すように、分岐ノードを追加し、入力されたプロセスに重ねられた既存のプロセスと、その入力されたプロセスとがある条件によって分岐ノードにより分岐され、一方の条件下で既存のプロセスを、他方の条件下で入力されたプロセスを実行するという、フローを描画する。
なお、以下においては、図14(a)に示すように、既存のプロセス(プロセスA003)に新たなプロセス(プロセスC006)を重ねた場合として説明するが、図14(b)に示すように、フローチャート描画装置1は、既存のプロセス(プロセスA003)と接続する上位のコネクタ(コネクタ002)に新たな分岐ノードを重ねる場合でも同様に並接接続の処理を行うようにすることができる。
フローチャート描画装置1は、プロセスA003と接続する上位のコネクタ002に分岐ノードが重ねられた場合、プロセスA003以降のパーツを分岐ノードの左側に配置し、分岐ノードの右側には新たなプロセスを加える。そして、新たに入力された分岐ノードを後記する図17に示すように、プロセスA003と同じ重心位置308に配置し直すことで、以下に説明する並接接続の処理を行い、図21に示すような処理結果のフローチャートを表示させることができる。
なお、順接接続では、新たに入力されたパーツがプロセスであり、入力されたプロセスが既存のコネクタと重複することで、フローチャート描画装置1が、順接接続の処理を行うと判定する。一方、入力されたパーツが分岐ノードであり既存のコネクタと重複する場合には、フローチャート描画装置1は、並接接続の処理を行うと判定し、ユーザが図14(a)に示す操作をした場合と同様の結果が得られる。
フローチャート描画装置1は、プロセスA003と接続する上位のコネクタ002に分岐ノードが重ねられた場合、プロセスA003以降のパーツを分岐ノードの左側に配置し、分岐ノードの右側には新たなプロセスを加える。そして、新たに入力された分岐ノードを後記する図17に示すように、プロセスA003と同じ重心位置308に配置し直すことで、以下に説明する並接接続の処理を行い、図21に示すような処理結果のフローチャートを表示させることができる。
なお、順接接続では、新たに入力されたパーツがプロセスであり、入力されたプロセスが既存のコネクタと重複することで、フローチャート描画装置1が、順接接続の処理を行うと判定する。一方、入力されたパーツが分岐ノードであり既存のコネクタと重複する場合には、フローチャート描画装置1は、並接接続の処理を行うと判定し、ユーザが図14(a)に示す操作をした場合と同様の結果が得られる。
次に、本実施形態に係るフローチャート描画装置1の並接接続の処理の流れを、図15を用いて説明する。なお、図4に示したフローチャート描画装置1の順接接続の処理の流れと同様の処理については、同一の符号を付し、説明を省略する。また、ここでは、図14(a)に示すように、図2で示したフローチャートに、プロセスC006を追加するものとして説明する。
図15に示すように、まず、図4のステップS101〜S104と同様に、ノードグループ309の編成、フローチャートの描画を行い、表示装置3に既存のフローチャートを表示させる。そして、ユーザにより入力されたパーツの情報を一時情報310としてパーツ情報テーブル300に記憶する。なお、ステップS103において、図4の順接接続では、ユーザが既存のコネクタ(矢印)に重なるように追加のプロセスを配置したが、並接接続の処理を行わせるため、ユーザは、既存のプロセスに重なるように追加するプロセスを配置する。
次に、フローチャート描画装置1のパーツ情報管理部202は、入力されたパーツと既存パーツとが重複する(重なる)か否かを判定する(ステップS301)。そして、入力されたパーツと既存パーツとが重ならない場合には(ステップS301→No)、次のステップS110に進む。一方、入力されたパーツと既存パーツとが重なる場合には(ステップS301→Yes)、次のステップS302へ進む。本実施例では、図14(a)に示すように、入力されたプロセスC006が、既存のプロセスA003に重なるため、ステップS302へ進むものとして説明する。
ステップS302において、パーツ情報管理部202は、ステップS103でユーザにより入力されたパーツがプロセスであり、入力されたパーツと重複する既存パーツが、コネクタまたはプロセスのどちらであるかを判定する。ここで、入力されたプロセスと重複する既存パーツがコネクタである場合には(ステップS302→コネクタ)、図4のステップS106〜S108と同様の処理を行う。
一方、入力されたプロセスと重複する既存パーツがプロセスである場合には(ステップS302→プロセス)、ステップS303〜S305までの並接接続の処理に進む。
次に、パーツ情報管理部202は、重複するプロセスと新たに入力されたプロセスとを並列接続するための分岐ノードをパーツ情報テーブル300に設定する(ステップS303)。本実施例では、重複するプロセスであるプロセスA003と、入力されたプロセスC006とを並接接続するための分岐ノード007を、パーツ情報テーブル300に追加する。
続いて、パーツ情報管理部202は、設定(挿入)した分岐ノードと接続する複数のコネクタを一時情報310としてパーツ情報テーブル300に記憶する(ステップS304)。具体的には、パーツ情報管理部202は、新たに追加した分岐ノード007と重複するプロセス(プロセスA003)との間にコネクタ008を加え、分岐ノード007と新たに入力されたプロセス(プロセスC006)との間にコネクタ009を加えて、接続関係を決定する。また、パーツ情報管理部202は、重複するプロセス(プロセスA003)と開始ノード001との間に接続されていたコネクタ002を、分岐ノード007と開始ノード001との間を接続するコネクタとして変更する。
このステップS304の処理を終えた時点でのパーツ情報テーブル300を図16に示す。図16では、新たに入力されたプロセスC006、分岐ノード007、コネクタ008、およびコネクタ009が新たに設定される。また、コネクタ002の接続先であるTo351のIDが「007」(分岐ノード)に変更されている。そして、重複するプロセスであるプロセスA003の一時情報310のTarget312に「1」が設定される。
ここで、フロー位置計算部203は、新たに設定した分岐ノード007の挿入位置を、重複するプロセスA003と同じ重心位置308になるように配置する。また、新たに設定したコネクタ008およびコネクタ009は、描画する位置座標306、寸法307、重心位置が特定されていないので、「未定」として示す。その他の入力されたプロセスC006、分岐ノード007等のパーツの位置座標306、寸法307、重心位置308は、フロー位置計算部203が、現時点での配置位置に基づいて算出し、パーツ情報テーブル300に格納する。この図16に示すパーツ情報テーブル300を説明のため示すと図17のようになる。図17では、新たに設定した分岐ノード007が、重複するプロセスA003と同じ重心位置308に配置されている。なお、図16のパーツ情報テーブル300では、コネクタ008、コネクタ009の表示位置は「未定」だが、コネクタ008およびコネクタ009の存在を示すために、図17では、分岐ノード007を接続元とし、接続先をプロセスA003、プロセスC006それぞれの「Upper」ポートとして仮に表示している。
図15に戻り、フロー位置計算部203は、新たに入力されたプロセスや、分岐ノード、コネクタを含め、ノードグループ309内のすべてのパーツの表示位置を調整する(ステップS305)。なお、このフローチャートの表示位置調整処理(並接接続)の詳細は、後記する図18において説明する。
続いて、図4のステップS109〜S111と同様に、フローチャート描画装置1は、ノードグループ309の整形処理を行い、確定したフローチャートを、表示装置3のディスプレイに描画する。
<表示位置調整処理(並接接続)>
次に、図15のステップS305における表示位置調整処理(並接接続)について図18を用いて説明する。図18は、本実施形態に係るフローチャート描画装置1の表示位置調整処理(並接接続)の流れを示すフローチャートである。この表示位置調整処理(並接接続)において、フローチャート描画装置1は、分岐ノードを挿入し、その挿入した分岐ノードを中心として、その分岐ノードより下位において接続するパーツを左右対称となるように配置する。以下、具体的に説明する。
次に、図15のステップS305における表示位置調整処理(並接接続)について図18を用いて説明する。図18は、本実施形態に係るフローチャート描画装置1の表示位置調整処理(並接接続)の流れを示すフローチャートである。この表示位置調整処理(並接接続)において、フローチャート描画装置1は、分岐ノードを挿入し、その挿入した分岐ノードを中心として、その分岐ノードより下位において接続するパーツを左右対称となるように配置する。以下、具体的に説明する。
まず、パーツ情報管理部202は、新たに入力されたプロセス、分岐ノード、新たに設定したコネクタを含めたノードグループ309の編成を行う(ステップS401)。本実施例においては、パーツ情報管理部202は、パーツ情報テーブル300内のノードグループ309を、分岐ノード007を境にして、グループ化を行う。そして、図19に示すように、パーツ情報管理部202は、開始ノード001およびコネクタ002について、ノードグループ309を「N1」と設定する。プロセスA003、コネクタ004、プロセスB005およびコネクタ008について、ノードグループ309を「N2」と設定する。また、プロセスC006およびコネクタ009について、ノードグループ309を「N3」と設定する。
次に、フロー位置計算部203は、挿入された分岐ノードと接続するプロセスを特定する(ステップS402)。本実施例では、分岐ノード007にコネクタ008を介して接続するプロセスA003と、コネクタ009を介して接続するプロセスC006とを特定する。
次に、ステップS402で特定した各プロセスが属するノードグループ309に基づき、同じノードグループ309に属するパーツを特定し、調整対象パーツとして抽出する(ステップS403)。本実施例では、プロセスA003の属するノードグループ309は「N2」であり、同じノードグループ309に属する、コネクタ004、プロセスB005およびコネクタ008が調整対象パーツとして特定される。また、プロセスC006が属するノードグループ309は「N3」であり、同じノードグループ309に属するコネクタ009が調整対象パーツとして特定される。
次に、フロー位置計算部203は、フローチャートの水平方向の配置を決定するため、分岐ノードを中心に2つのプロセスを左右均等に配置するように、2つプロセスの重心位置(cx値)を変更する(ステップS404)。本実施例では、フロー位置計算部203は、分岐ノードの幅(w値)とプロセスの幅(w値)とに基づき、分岐ノード007のひし形の左端、右端の位置に合わせてそれぞれプロセスA003、プロセスC006を配置するように、cx値を変更する。
続いて、フロー位置計算部203は、調整対象パーツのcx値を変更する(ステップS405)。具体的には、フロー位置計算部203は、ステップS403で特定した調整対象パーツのうち、ステップS402で特定したプロセスの下位に位置するパーツの重心位置(cx値)を、ステップS404で変更した、その上位に接続するプロセスのcx値と同じ値に変更する。本実施例では、ノードグループ309が「N2」の調整対象パーツのうち、コネクタ004およびプロセスB005のcx値を、上位のプロセス(プロセスA003)のcx値と同じ値に変更する。
ステップS405までの処理を実行した結果を説明のため示すと、図20のフローチャートのようになる。分岐ノード007を中心に、プロセスA003、プロセスC006の重心位置(cx値)は、左右均等に配置するように変更されている。また、プロセスA003とコネクタ004とプロセスB005とが、同じ重心位置(cx値)に配置されている。
図18に戻り、ステップS406において、フロー位置計算部203は、分岐ノードとステップS402で特定した2つのプロセスとの間の縦方向の高さを決定し、2つのプロセスのcy値を変更する。
具体的には、フロー位置計算部203は、まず、開始ノード001とプロセスA003とを接続するコネクタ002の高さ(h値)「40」を記憶する。そして、フロー位置計算部203は、プロセスA003およびプロセスC006の重心位置(cy値)を、分岐ノード007の重心位置(cy値)から、記憶したコネクタの高さ(h値)「40」と自身の寸法307の高さ(h値)の2分の1の値(ここでは「10」)とを加えた分(つまり「50」)下方に位置するように決定する。
具体的には、フロー位置計算部203は、まず、開始ノード001とプロセスA003とを接続するコネクタ002の高さ(h値)「40」を記憶する。そして、フロー位置計算部203は、プロセスA003およびプロセスC006の重心位置(cy値)を、分岐ノード007の重心位置(cy値)から、記憶したコネクタの高さ(h値)「40」と自身の寸法307の高さ(h値)の2分の1の値(ここでは「10」)とを加えた分(つまり「50」)下方に位置するように決定する。
次に、ステップS407において、フロー位置計算部203は、調整対象パーツのcy値を変更する。
具体的には、フロー位置計算部203は、ステップS403で特定した調整対象パーツのうち、ステップS402で特定したプロセスの下位に位置するパーツの重心位置(cy値)を、それぞれ「50」下方に位置するように決定する。
そして、フロー位置計算部203は、ステップS402で特定した2つのプロセスと、分岐ノード007とを接続するコネクタの位置を特定する(ステップS408)。
具体的には、フロー位置計算部203は、ステップS403で特定した調整対象パーツのうち、ステップS402で特定したプロセスの下位に位置するパーツの重心位置(cy値)を、それぞれ「50」下方に位置するように決定する。
そして、フロー位置計算部203は、ステップS402で特定した2つのプロセスと、分岐ノード007とを接続するコネクタの位置を特定する(ステップS408)。
この表示位置調整処理(並接接続)を実行した結果のフローチャートを図21に、そのパーツ情報テーブル300を図22に示す。
なお、図22のパーツ情報テーブル300において、追加された2つのコネクタである、コネクタ008とコネクタ009の重心位置308を、各コネクタの線を直角に曲げた角に位置するように設定している。これは、ユーザにより既存のプロセスの下方に新しいパーツが追加されたとき、フロー位置計算部203が、角の位置から計算することで、左右均等、上下均等の位置計算を容易にするためである。ただし、これは一例にすぎず、本来の重心位置の計算値を設定してもよく、パーツの配置を整理し、左右均等、上下均等の位置計算が可能であればよい。
なお、図22のパーツ情報テーブル300において、追加された2つのコネクタである、コネクタ008とコネクタ009の重心位置308を、各コネクタの線を直角に曲げた角に位置するように設定している。これは、ユーザにより既存のプロセスの下方に新しいパーツが追加されたとき、フロー位置計算部203が、角の位置から計算することで、左右均等、上下均等の位置計算を容易にするためである。ただし、これは一例にすぎず、本来の重心位置の計算値を設定してもよく、パーツの配置を整理し、左右均等、上下均等の位置計算が可能であればよい。
このようにすることで、本実施形態に係るフローチャート描画装置1によれば、ユーザが既存のプロセスに、新たなプロセスを重ねることにより、並接接続の処理を実行でき、各パーツのレイアウトについて微調整等の追加の操作を行うことなく、フローチャートの表示位置を決定し描画させることができる。
≪ノードグループ整形処理≫
次に、図4および図15のステップS109で実行されるノードグループ整形処理について、分岐ノードを含む既存のフローチャートに、並接接続の処理を行う実施例を用いて説明する。本実施例では、図23に示すように、分岐ノード(分岐ノードE003)を含む既存のフローチャートのプロセスA007に、新たにプロセスC012を重ねる並接接続の操作がユーザにより行われるものとして説明する。
次に、図4および図15のステップS109で実行されるノードグループ整形処理について、分岐ノードを含む既存のフローチャートに、並接接続の処理を行う実施例を用いて説明する。本実施例では、図23に示すように、分岐ノード(分岐ノードE003)を含む既存のフローチャートのプロセスA007に、新たにプロセスC012を重ねる並接接続の操作がユーザにより行われるものとして説明する。
まず、図15に示した本実施形態に係るフローチャート描画装置1の処理手順のステップS101において、ノードグループの編成を行う。図23の例においては、分岐ノードE003を境にしたパーツの集合をノードグループ309として破線で示している。このノードグループ309の編成の結果を、図24のパーツ情報テーブル300に示す。このパーツ情報テーブル300は、分岐ノードE003を境に、「N1」「N2」「N3」の3つのノードグループ309に分けられる。
そして、図15のステップS103において、ユーザによる入力装置2の操作により、データ入力部201が、新たに追加されるパーツ(プロセスC012)の入力を受け付ける。続いて、パーツ情報管理部202が、受け付けたプロセスC012の情報を、パーツ情報テーブル300に記憶する。そして、図15のステップS301〜S305の処理を行い、表示位置調整処理(並接接続)を実行する。なお、この並接接続の表示位置調整(ステップS305)は、入力されたパーツ(プロセスC012)と重なる既存パーツ(プロセスA007)が属するノードグループ(N2)内で行う。
次に、図15のステップS109におけるノードグループ整形処理を具体的に説明する。図25は、図15のステップS305までの表示位置調整処理(並接接続)を終えた時点でのフローチャートを仮に表示した図である。図25に示すように、プロセスC012を含むノードグループ「N2」を示す矩形と、ノードグループ「N3」を示す矩形とが、重なったものとなっている。この状態では、ノードグループ「N2」のコネクタ015およびプロセスC012と、ノードグループ「N3」のプロセスB011との距離が近い。よって、今後、プロセスC012やプロセスB011にノードを追加していく場合、それぞれのノードグループ内のパーツが、隣接するノードグループ内のパーツと重なってしまうことが予想させる。そのため、ノードグループ内の表示位置調整処理の後に、ノードグループ整形処理を行う。
図26は、本実施形態に係るノードグループ整形処理の流れを示すフローチャートである。
まず、フローチャート描画装置1のフロー位置計算部203は、ノードグループ毎に、そのノードグループに属するパーツをすべて含む最小の矩形を算出する(ステップS501)。この処理結果は、図25の破線で示す矩形のようになる。
次に、フロー位置計算部203は、算出したそれぞれの矩形が、他のノードグループの矩形と重複しているか否かを判定する(ステップS502)。そして、フロー位置計算部203は、他のノードグループの矩形と重複していない場合には(ステップS502→No)、次にステップS504に進む。
一方、算出した矩形と重複している場合には(ステップS502→Yes)、フロー位置計算部203は、ノードグループを区切っている分岐ノードを基準にして、矩形の移動距離を決定する(ステップS503)。図25に示したように、分岐ノードをはさんで2つのノードグループが重なる場合は、一方のノードグループが、基準となる分岐ノードよりも他方のノードグループ側に配置しないようにすることで、ノードグループの矩形の重複を避ける。例えば、本実施例において、フロー位置計算部203は、左側のノードグループ「N2」を、分岐ノードE003のひし形の左端座標よりも左側に配置するように移動する。また、図25においては、分岐ノード003のひし形の左端に、ノードグループN2の矩形の右端を合わせるため、左側のノードグループ「N2」の距離を「50」左方に移動する。右側のノードグループ「N3」には、重複の可能性はないが、分岐ノード003を支点として左右対称に整形するため、ノードグループ「N2」も右側に移動距離を「50」と設定する。
次に、フロー位置計算部203は、描画領域内に収まるように各ノードグループを含むフローチャートを移動する(ステップS504)。例えば、図25に示すように、ノードグループ「N2」の左端のX座標が「40」であり、ステップS503において設定した移動距離である「50」左方に移動できない場合は、ノードグループのうち、最も左方のノードグループのパーツの位置を基準として他のパーツを移動する。
そして、このノードグループ整形処理を終えた結果を図27に示す。このようにすることで、ユーザが既存のプロセスに、新たなプロセスを重ねるだけで、並接接続の処理と決定でき、追加の操作を行うことなく、ノードグループが重ならない位置座標にフローチャートを移動させ、描画させることができる。
1 フローチャート描画装置
2 入力装置
3 表示装置
10 CPU
20 メモリ部
30 記憶部
40 入出力部
41 入力インタフェース
42 出力インタフェース
200 フローチャート描画部
201 データ入力部
202 パーツ情報管理部
203 フロー位置計算部
204 フロー表示部
300 パーツ情報テーブル(パーツ情報)
2 入力装置
3 表示装置
10 CPU
20 メモリ部
30 記憶部
40 入出力部
41 入力インタフェース
42 出力インタフェース
200 フローチャート描画部
201 データ入力部
202 パーツ情報管理部
203 フロー位置計算部
204 フロー表示部
300 パーツ情報テーブル(パーツ情報)
Claims (5)
- フローチャートを構成する、複数のノードと前記複数のノード間を接続し前記ノードの処理手順を示すコネクタとの表示位置を調整し、表示装置に表示させるフローチャート描画装置であって、
前記ノードおよび前記コネクタの前記表示位置を示す座標情報、並びに、前記ノードと前記コネクタとの接続情報を含むパーツ情報が記憶される記憶部と、
入力装置から前記フローチャートに追加されるノードに関する情報の入力を受け付けるデータ入力部と、
前記入力されたノードの表示位置と、前記フローチャートを構成する前記コネクタの表示位置か、前記フローチャートを構成する前記ノードの表示位置が重複するか否かを前記パーツ情報に基づき判定し、
前記入力されたノードが前記コネクタと重複すると判定した場合に、前記重複したコネクタと接続する上位のノードと下位のノードとの間に、前記入力されたノードを挿入するように、前記ノード間の接続関係を決定し、前記入力されたノードと前記上位のノードとを接続するコネクタ、および前記入力されたノードと前記下位のノードとを接続するコネクタを、前記フローチャートの前記パーツ情報に新たに設定し、
前記入力されたノードが前記ノードと重複すると判定した場合に、処理のフローを分岐させる分岐ノードを、前記フローチャートの前記パーツ情報に新たに設定し、前記新たに設定した分岐ノードの分岐先として、前記入力されたノードおよび前記重複したノードを設定するパーツ情報管理部と、
前記入力されたノードが前記コネクタと重複すると判定した場合に、前記上位のノードの表示位置を基準として、前記入力されたノード、前記下位のノード、前記入力されたノードと前記上位のノードとを接続するコネクタ、および、前記入力されたノードと前記下位のノードとを接続するコネクタの表示位置を決定し、
前記入力されたノードが前記ノードと重複すると判定した場合に、前記設定した分岐ノードを基準として、前記入力されたノードおよび前記重複したノードを均等に配置するように表示位置を決定するフロー位置計算部と、
前記決定した表示位置に基づき、前記フローチャートを前記表示装置に表示させるフロー表示部と、を備えることを特徴とするフローチャート描画装置。 - 前記フロー位置計算部は、前記分岐ノードの分岐先となる、当該分岐ノードの下位に位置する前記ノードおよび前記コネクタの集合それぞれをノードグループとして設定し、
前記ノードグループを構成する各ノードおよび各コネクタの表示位置の前記座標情報を前記パーツ情報から取得し、前記ノードグループを構成する各ノードおよび各コネクタを含む最小の矩形を、前記ノードグループそれぞれについて計算し、
前記計算したノードグループの矩形が他のノードグループの矩形と重複する場合に、前記分岐ノードの表示位置を基準として、前記重複した前記ノードグループの表示位置を変更することを特徴とする請求の範囲第1項に記載のフローチャート描画装置。 - フローチャートを構成する、複数のノードと前記複数のノード間を接続し前記ノードの処理手順を示すコネクタとの表示位置を調整し、表示装置に表示させるフローチャート描画装置のフローチャート描画方法であって、
前記フローチャート描画装置は、前記ノードおよび前記コネクタの前記表示位置を示す座標情報、並びに、前記ノードと前記コネクタとの接続情報を含むパーツ情報が記憶される記憶部を備えており、入力装置から前記フローチャートに追加されるノードに関する情報の入力を受け付けるステップと、
前記入力されたノードの表示位置と、前記フローチャートを構成する前記コネクタの表示位置か、前記フローチャートを構成する前記ノードの表示位置が重複するか否かを前記パーツ情報に基づき判定し、
前記入力されたノードが前記コネクタと重複すると判定した場合に、前記重複したコネクタと接続する上位のノードと下位のノードとの間に、前記入力されたノードを挿入するように、前記ノード間の接続関係を決定するステップと、前記入力されたノードと前記上位のノードとを接続するコネクタ、および前記入力されたノードと前記下位のノードとを接続するコネクタを、前記フローチャートの前記パーツ情報に新たに設定するステップと、
前記入力されたノードが前記ノードと重複すると判定した場合に、処理のフローを分岐させる分岐ノードを、前記フローチャートの前記パーツ情報に新たに設定し、前記新たに設定した分岐ノードの分岐先として、前記入力されたノードおよび前記重複したノードを設定するステップと、
前記入力されたノードが前記コネクタと重複すると判定した場合に、前記上位のノードの表示位置を基準として、前記入力されたノード、前記下位のノード、前記入力されたノードと前記上位のノードとを接続するコネクタ、および、前記入力されたノードと前記下位のノードとを接続するコネクタの表示位置を決定し、
前記入力されたノードが前記ノードと重複すると判定した場合に、前記設定した分岐ノードを基準として、前記入力されたノードおよび前記重複したノードを均等に配置するように表示位置を決定するステップと、
前記決定した表示位置に基づき、前記フローチャートを前記表示装置に表示させるステップと、を実行することを特徴とするフローチャート描画方法。 - 前記分岐ノードの分岐先となる、当該分岐ノードの下位に位置する前記ノードおよび前記コネクタの集合それぞれをノードグループとして設定し、
前記ノードグループを構成する各ノードおよび各コネクタの表示位置の前記座標情報を前記パーツ情報から取得し、
前記ノードグループを構成する各ノードおよび各コネクタを含む最小の矩形を、前記ノードグループそれぞれについて計算し、
前記計算したノードグループの矩形が他のノードグループの矩形と重複する場合に、前記分岐ノードの表示位置を基準として、前記重複した前記ノードグループの表示位置を変更することを特徴とする請求の範囲第3項に記載のフローチャート描画方法。 - 請求の範囲第3項ないし請求の範囲第4項のいずれか1項に記載のフローチャート描画方法をコンピュータに実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012552616A JP5564579B2 (ja) | 2011-01-14 | 2011-02-17 | フローチャート描画装置、フローチャート描画方法およびプログラム |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011005558 | 2011-01-14 | ||
JP2011005558 | 2011-01-14 | ||
JP2012552616A JP5564579B2 (ja) | 2011-01-14 | 2011-02-17 | フローチャート描画装置、フローチャート描画方法およびプログラム |
PCT/JP2011/053396 WO2012096001A1 (ja) | 2011-01-14 | 2011-02-17 | フローチャート描画装置、フローチャート描画方法およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2012096001A1 JPWO2012096001A1 (ja) | 2014-06-09 |
JP5564579B2 true JP5564579B2 (ja) | 2014-07-30 |
Family
ID=46506921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012552616A Expired - Fee Related JP5564579B2 (ja) | 2011-01-14 | 2011-02-17 | フローチャート描画装置、フローチャート描画方法およびプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20130278638A1 (ja) |
JP (1) | JP5564579B2 (ja) |
WO (1) | WO2012096001A1 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015095214A (ja) * | 2013-11-14 | 2015-05-18 | 損害保険ジャパン日本興亜株式会社 | 業務プロセス生成システム、業務プロセス生成方法、情報処理装置、その制御方法と制御プログラム、アプリケーションプログラム、および、プロセスフロー描画プログラム |
JP6291859B2 (ja) * | 2014-01-21 | 2018-03-14 | 富士通株式会社 | 判定プログラム,判定装置,判定方法 |
JP2016115017A (ja) * | 2014-12-12 | 2016-06-23 | 日本電信電話株式会社 | フローチャート作成方法及びプログラム |
US10157484B2 (en) * | 2016-03-11 | 2018-12-18 | International Business Machines Corporation | Schema-driven object alignment |
CN112734353A (zh) * | 2019-10-28 | 2021-04-30 | 北京国双科技有限公司 | 一种可视化流程动态多分支的布局方法和装置 |
US20210303773A1 (en) * | 2020-03-30 | 2021-09-30 | Oracle International Corporation | Automatic layout of elements in a process flow on a 2-d canvas based on representations of flow logic |
US11360463B2 (en) | 2020-06-16 | 2022-06-14 | Saudi Arabian Oil Company | Dynamic online process flow diagraming |
WO2022147780A1 (en) * | 2021-01-08 | 2022-07-14 | Pricewaterhousecoopers Llp | Automated flow chart generation and visualization system |
CN112950744B (zh) * | 2021-01-28 | 2024-02-27 | 深圳市兴海物联科技有限公司 | 可视化拖拽绘制流程图方法、装置、设备及存储介质 |
CN113421316B (zh) * | 2021-06-30 | 2023-03-28 | 亿图软件(湖南)有限公司 | 连接线路径构建方法、装置、计算机设备及可读存储介质 |
CN116167365B (zh) * | 2023-04-18 | 2023-06-30 | 安徽思高智能科技有限公司 | 一种基于表格模板的流程图生成方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11296357A (ja) * | 1998-04-08 | 1999-10-29 | Oki Electric Ind Co Ltd | フローチャート入力装置 |
JP2000276608A (ja) * | 1999-03-29 | 2000-10-06 | Fujitsu Ltd | 図形編集装置、および図形編集方法、並びにそのためのプログラムを格納した記憶媒体 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2675606B1 (fr) * | 1991-04-22 | 1993-07-16 | France Telecom | Procede de decompilation pour la realisation de graphes au moyen d'un ordinateur. |
JP3790679B2 (ja) * | 2001-04-06 | 2006-06-28 | インターナショナル・ビジネス・マシーンズ・コーポレーション | グラフデータ視覚化装置、グラフィックス作成方法、プログラム及び記憶媒体 |
-
2011
- 2011-02-17 US US13/991,300 patent/US20130278638A1/en not_active Abandoned
- 2011-02-17 JP JP2012552616A patent/JP5564579B2/ja not_active Expired - Fee Related
- 2011-02-17 WO PCT/JP2011/053396 patent/WO2012096001A1/ja active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11296357A (ja) * | 1998-04-08 | 1999-10-29 | Oki Electric Ind Co Ltd | フローチャート入力装置 |
JP2000276608A (ja) * | 1999-03-29 | 2000-10-06 | Fujitsu Ltd | 図形編集装置、および図形編集方法、並びにそのためのプログラムを格納した記憶媒体 |
Also Published As
Publication number | Publication date |
---|---|
WO2012096001A1 (ja) | 2012-07-19 |
JPWO2012096001A1 (ja) | 2014-06-09 |
US20130278638A1 (en) | 2013-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5564579B2 (ja) | フローチャート描画装置、フローチャート描画方法およびプログラム | |
US9262863B2 (en) | Creating dynamic sets to automatically arrange dimension annotations | |
EP0640943B1 (en) | Shape modeling apparatus and method | |
US20150294488A1 (en) | Graph generating device, graph generating method and graph generating program | |
US10248751B2 (en) | Alternative hierarchical views of a circuit design | |
US8166443B2 (en) | Method of shield line placement for semiconductor integrated circuit, design apparatus for semiconductor integrated circuit, and design program for semiconductor integrated circuit | |
JP2010257317A (ja) | レイアウト設計支援システム、その制御方法及び制御プログラム | |
KR101373442B1 (ko) | 시퀀스 프로그램 작성 장치 | |
US20060066610A1 (en) | Method, device, and computer program product for displaying 3D grid in designing configuration model | |
CN113010162B (zh) | 一种页面构建方法、装置及设备 | |
US20070266307A1 (en) | Auto-layout of shapes | |
JP2020184267A (ja) | 3次元cad装置、及び3次元cadプログラム | |
JP2011048477A (ja) | フローチャート描画装置、フローチャート描画方法およびフローチャート描画プログラム | |
US11507260B2 (en) | Electronic album apparatus, method for operating electronic album apparatus, and operation program utilizing display cell enlargement | |
JP7339069B2 (ja) | 加工プログラム生成支援装置 | |
JP2012083883A (ja) | 画面データ作成装置 | |
JP2008090766A (ja) | 形状モデル作成装置 | |
JP7253176B1 (ja) | 構造部材設計方法、構造部材設計プログラム | |
CN105096378A (zh) | 一种构建三维物体的方法及计算机辅助设计系统 | |
US11487911B1 (en) | Systems and methods for providing incremental mid-surface for computer simulation | |
US11620417B1 (en) | User interface for interactive skew group analysis | |
US20060076547A1 (en) | Three-dimensional viewing and editing of microcircuit design | |
JP4071546B2 (ja) | 半導体装置の回路設計支援装置およびレイアウト変更方法 | |
KR101245729B1 (ko) | 로봇 작업 데이터 제공 장치 및 방법 | |
CN106909721B (zh) | 一种可编辑断面获取方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20140520 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140616 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5564579 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |