フローチャート描画装置、フローチャート描画方法およびフローチャート描画プログラム
【課題】簡易な操作でユーザの意図したフローチャートを描画すること。
【解決手段】フローチャート描画装置100は、フローチャートを表示画面250に描画する。表示部210は、フローチャートの開始記号、フローチャートの終了記号、および開始記号と終了記号とを接続する接続記号を表示画面250に表示する。入力部220は、フローチャート内において接続記号によって接続されたフローチャート記号間に、あらたなフローチャート記号の挿入を指示する指示入力を受け付ける。描画部230は、入力部220に指示入力があった場合、フローチャート記号間にあらたなフローチャート記号を描画するとともに、フローチャート記号とあらたなフローチャート記号とを接続するあらたな接続記号をそれぞれのフローチャート記号ごとに描画する。
【解決手段】フローチャート描画装置100は、フローチャートを表示画面250に描画する。表示部210は、フローチャートの開始記号、フローチャートの終了記号、および開始記号と終了記号とを接続する接続記号を表示画面250に表示する。入力部220は、フローチャート内において接続記号によって接続されたフローチャート記号間に、あらたなフローチャート記号の挿入を指示する指示入力を受け付ける。描画部230は、入力部220に指示入力があった場合、フローチャート記号間にあらたなフローチャート記号を描画するとともに、フローチャート記号とあらたなフローチャート記号とを接続するあらたな接続記号をそれぞれのフローチャート記号ごとに描画する。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ユーザの操作に基づいて表示画面などにフローチャートを描画するフローチャート描画装置、フローチャート描画方法およびフローチャート描画プログラムに関する。
【背景技術】
【0002】
従来、ユーザの操作に基づいて表示画面上などにフローチャートを描画する際には、画像描画ソフトウェア(ドローツール)を用いるのが一般的である。図14〜図17は、既存のドローツールを用いたフローチャートの描画方法の一例を模式的に示した説明図である。ユーザがドローツールを起動して、フローチャートの作成を指示すると、図14に示すように、フローチャートの開始記号、終了記号、およびこれらをつなぐ矢印が表示される。つぎに、図15に示すように、ユーザは矢印を消去して、開始記号と終了記号との間に処理記号を挿入する。つづいて、図16に示すように開始記号から処理記号に向かう矢印と、処理記号から終了記号に向かう矢印とを描画する。最後に、図17に示すように記号間の間隔が等間隔になるように記号の位置や矢印の長さを調整する。
【0003】
このように、ドローツールを用いてフローチャートを描画する場合、フローチャート内の記号をユーザが所望の順番に並べ、それらの記号間を矢印でつなぎ、それぞれの記号や矢印の位置や大きさ、長さなどを調整する、という手順を取るのが一般的である。また、たとえば、フローチャート作画システムにおいて、結線元ボックス(処理記号)と結線ボックスの間を操作者の望む自由な経路で結線することにより、操作者に見やすく、また、ボックス間に図や文字を自由に配置することができる結線装置および結線方法が知られている(たとえば、下記特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2000−163258号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記の従来技術では、ユーザの操作でフローチャートのレイアウトを整える必要があるため、フローチャートの作成に多くの時間や労力を費やさなくてはならないという問題点がある。特に、複雑なフローチャートを描く場合には、記号および矢印の数が多くなるため、これらの位置関係を調整するのが困難となり、さらに多くの労力を必要とする。また、完成したフローチャートを修正する場合には、記号や矢印の追加、削除、変更などをおこなった後、再度レイアウトを調整する必要がある。
【0006】
また、上記の従来技術では、各記号を単なる図形として扱うため、ユーザの意図にそぐわない、または、フローチャート作成上のルールを逸脱するフローチャートを作成してしまう可能性があるという問題点がある。具体的には、たとえば、判断記号から1つの矢印だけしか出ていない、矢印の向きが逆、ループ端の片方がない、というようなフローチャートが作成される可能性がある。
【0007】
この発明は、上述した従来技術による問題点を解決するため、簡易な操作でユーザの意図したフローチャートを描画することができるフローチャート描画装置、フローチャート描画方法およびフローチャート描画プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上述した課題を解決し、目的を達成するため、請求項1の発明にかかるフローチャート描画装置は、フローチャートを表示画面に描画するフローチャート描画装置であって、前記フローチャートの開始記号、前記フローチャートの終了記号、および前記開始記号と前記終了記号とを接続する接続記号を前記表示画面に表示する表示手段と、前記フローチャート内において接続記号によって接続されたフローチャート記号間に、あらたなフローチャート記号の挿入を指示する指示入力を受け付ける入力手段と、前記入力手段に前記指示入力があった場合、前記フローチャート記号間に前記あらたなフローチャート記号を描画するとともに、前記フローチャート記号と前記あらたなフローチャート記号とを接続するあらたな接続記号をそれぞれの前記フローチャート記号ごとに描画する描画手段と、を備えることを特徴とする。
【0009】
この請求項1に記載の発明によれば、フローチャート記号間にあらたなフローチャート記号の挿入が指示された場合、そのフローチャート記号間にあらたなフローチャート記号およびあらたな接続記号を描画する。これにより、複雑な構造のフローチャートであっても簡易な操作で描画することができる。また、請求項1に記載の発明によれば、あらたなフローチャート記号を挿入できる位置が特定されているため、フローチャート作成上のルールを逸脱することなくフローチャートの作成をおこなうことができる。
【0010】
また、請求項2の発明にかかるフローチャート描画装置は、請求項1に記載の発明において、前記入力手段は、前記表示画面上に表示された前記接続記号に対する所定の操作入力を、前記あらたなフローチャート記号の挿入を指示する指示入力とすることを特徴とする。
【0011】
この請求項2に記載の発明によれば、ユーザは接続記号に対する所定の操作入力によって、あらたなフローチャート記号の挿入を指示することができる。これにより、あらたなフローチャート記号を挿入する位置を特定しやすくなり、より簡易な操作でフローチャートを描画することができる。
【0012】
また、請求項3の発明にかかるフローチャート描画装置は、請求項1または2に記載の発明において、前記入力手段は、前記指示入力とともに前記あらたなフローチャート記号の種類の指定を受け付けることを特徴とする。
【0013】
この請求項3に記載の発明によれば、ユーザは挿入するフローチャート記号の種類をあらかじめ指定することができる。これにより、フローチャートの描画を効率的におこなうことができる。
【0014】
また、請求項4の発明にかかるフローチャート描画装置は、請求項3に記載の発明において、前記描画手段は、前記あらたなフローチャート記号の種類に基づいて前記フローチャート内の前記フローチャート記号および接続記号を描画する位置を決定することを特徴とする。
【0015】
この請求項4に記載の発明によれば、あらたなフローチャート記号の種類に基づいてフローチャート内のレイアウトを決定する。これにより、あらたなフローチャート記号を挿入された後のフローチャートのレイアウトを適切に調整することができる。
【0016】
また、請求項5の発明にかかるフローチャート描画装置は、請求項3または4に記載の発明において、前記入力手段で選択可能な前記フローチャート記号の種類は、処理記号、判断記号、ループ記号であることを特徴とする。
【0017】
この請求項5に記載の発明によれば、一般的なフローチャートの作成に必要なフローチャート記号のみを選択可能としている。これにより、選択操作のインターフェースを簡素化することができる。
【0018】
また、請求項6の発明にかかるフローチャート描画装置は、請求項1〜5のいずれか一つに記載の発明において、前記フローチャートの構造を、前記フローチャート記号を含む矩形の入れ子構造として解析する解析手段と、前記入れ子構造の内側にある前記矩形から順番に、それぞれの前記矩形の大きさを決定する大きさ決定手段と、前記入れ子構造の外側にある前記矩形から順番に、それぞれの前記矩形の前記描画位置を決定する矩形位置決定手段と、前記矩形内における前記フローチャート記号の描画位置を決定する記号位置決定手段と、を備え、前記大きさ決定手段は、それぞれの前記矩形の大きさを、当該矩形に含まれるフローチャート記号の種類および前記入れ子構造において当該矩形の内側にある前記矩形の大きさに基づいて決定し、前記矩形位置決定手段は、それぞれの前記矩形の前記描画位置を、当該矩形に含まれるフローチャート記号の種類および前記入れ子構造において当該矩形の内側にある前記矩形の大きさに基づいて決定し、前記記号位置決定手段は、前記フローチャート記号の種類に基づいて、当該フローチャート記号の描画位置を決定することを特徴とする。
【0019】
この請求項6に記載の発明によれば、フローチャートの構造をフローチャート記号の入れ子構造として捉え、入れ子構造の内側にあるフローチャート記号から順番に大きさを決定した後、入れ子構造の外側にあるフローチャート記号から順番に描画位置を決定する。これにより、フローチャート内のフローチャート記号の位置を適切に調整することができ、複雑なフローチャートであっても簡易な操作で描画することができる。
【0020】
また、請求項7の発明にかかるフローチャート描画方法は、フローチャートを表示画面に描画するフローチャート描画方法であって、前記フローチャートの開始記号、前記フローチャートの終了記号、および前記開始記号と前記終了記号とを接続する接続記号を前記表示画面に表示する表示工程と、前記フローチャート内において接続記号によって接続されたフローチャート記号間に、あらたなフローチャート記号の挿入を指示する指示入力を受け付ける入力工程と、前記入力手段に前記指示入力があった場合、前記フローチャート記号間に前記あらたなフローチャート記号を描画するとともに、前記フローチャート記号と前記あらたなフローチャート記号とを接続するあらたな接続記号をそれぞれの前記フローチャート記号ごとに描画する描画工程と、を含んだことを特徴とする。
【0021】
この請求項7に記載の発明によれば、フローチャート記号間にあらたなフローチャート記号の挿入が指示された場合、そのフローチャート記号間にあらたなフローチャート記号およびあらたな接続記号を描画する。これにより、複雑な構造のフローチャートであっても簡易な操作で描画することができる。また、請求項7に記載の発明によれば、あらたなフローチャート記号を挿入できる位置が特定されているため、フローチャート作成上のルールを逸脱することなくフローチャートの作成をおこなうことができる。
【0022】
また、請求項8の発明にかかるフローチャート描画プログラムは、請求項7に記載のフローチャート描画方法をコンピュータに実行させることを特徴とする。
【0023】
この請求項8に記載の発明によれば、請求項7に記載のフローチャート描画方法をコンピュータに実行させることができる。
【発明の効果】
【0024】
以上説明したように、本発明によれば、簡易な操作でユーザの意図したフローチャートを描画することができる。
【図面の簡単な説明】
【0025】
【図1】フローチャート描画装置のハードウェア構成を示すブロック図である。
【図2】フローチャート描画装置の機能的構成を示すブロック図である。
【図3】フローチャート描画装置によるフローチャート描画処理の手順を示すフローチャートである。
【図4】フローチャート描画装置が表示する初期画面の一例を示す説明図である。
【図5】記号の挿入操作がおこなわれた際の表示画面の一例を示す説明図である。
【図6】記号挿入後の表示画面の一例を示す説明図である。
【図7】完成したフローチャートの一例を示す説明図である。
【図8】論理矩形の構造を説明するための説明図である。
【図9】論理矩形を用いた入れ子構造を説明するための説明図である。
【図10】フローチャート描画装置によるレイアウト算出方法の手順を示すフローチャートである。
【図11】レイアウト算出処理の疑似プログラムコードの一例を示す説明図である。
【図12】レイアウト算出処理の疑似プログラムコードを示す説明図である。
【図13】レイアウト算出処理の疑似プログラムコードを示す説明図である。
【図14】既存のドローツールを用いたフローチャートの描画方法の一例を模式的に示した説明図である。
【図15】既存のドローツールを用いたフローチャートの描画方法の一例を模式的に示した説明図である。
【図16】既存のドローツールを用いたフローチャートの描画方法の一例を模式的に示した説明図である。
【図17】既存のドローツールを用いたフローチャートの描画方法の一例を模式的に示した説明図である。
【発明を実施するための形態】
【0026】
以下に添付図面を参照して、この発明に係るフローチャート描画装置、フローチャート描画方法およびフローチャート描画プログラムの好適な実施の形態を詳細に説明する。
【0027】
(実施の形態)
まず、実施の形態にかかるフローチャート描画装置100のハードウェア構成について説明する。図1は、フローチャート描画装置のハードウェア構成を示すブロック図である。図1のように、フローチャート描画装置100は、CPU101と、ROM102と、RAM103と、HDD(ハードディスクドライブ)104と、HD(ハードディスク)105と、FDD(フレキシブルディスクドライブ)106と、FD(フレキシブルディスク)107と、CD−RWD(CD−RWドライブ)108と、CD−RW109と、ディスプレイ110と、入力デバイス111と、ネットワークI/F112とを含んで構成されている。なお、上記の各構成101〜112は、それぞれバス120に接続されている。また、ネットワークI/F(インターフェース)112には、NET(ネットワーク)に接続するための通信ケーブル113が備えられている。
【0028】
上述のような構成のフローチャート描画装置100において、CPU101は、フローチャート描画装置100全体を制御する。また、ROM102は、本発明にかかるフローチャート描画プログラムを記憶している。ROM102に記憶されたフローチャート描画プログラムは、CPU101からの制御に応じて読み出され実行される。また、RAM103は、CPU101のワークエリアとして使用される。
【0029】
HDD104は、CPU101の制御にしたがってHD105に対するデータのリード/ライトを制御する。HD105は、HDD104の制御にしたがって書き込まれたデータを記憶する記憶媒体である。また、HD105に記憶されたデータは、HDD104の制御に応じて適宜読み出される。
【0030】
FDD106は、CPU101の制御にしたがってFD107に対するデータのリード/ライトを制御する。FD107は、FDD106の制御にしたがって書き込まれたデータを記憶する着脱自在の記憶媒体である。また、FD107に記憶されたデータは、FDD106の制御に応じて適宜読み出される。
【0031】
CD−RWD108は、CPU101の制御にしたがってCD−RW109に対するデータのリード/ライトを制御する。CD−RW109は、CD−RWD108の制御にしたがって書き込まれたデータを記憶する着脱自在な記憶媒体である。また、CD−RW109に記憶されたデータは、CD−RWD108の制御に応じて適宜読み出される。
【0032】
ディスプレイ110は、CPU101の制御によって、カーソル、メニュー、ウィンドウ、あるいは文字や画像などの各種データを表示する。また、入力デバイス111は、文字、数値、各種指示などの入力のための複数のキーを備えたリモコン、キーボード、タッチパネルなどである。入力デバイス111は、リモコン、キーボード、タッチパネルのうちいずれか1つの形態によって実現されてもよいが、複数の形態によって実現することも可能である。
【0033】
ネットワークI/F112は、通信ケーブル113を介してLANやWANなどのネットワークに接続され、当該ネットワークとCPU101とのインターフェースとして機能する。
【0034】
本実施の形態にかかるフローチャート描画装置100は、上述したようなハードウェアを備えており、CPU101の制御によりROM102に記憶されたフローチャート描画プログラムを実行することにより、フローチャートの描画をおこなうことができる。
【0035】
(フローチャート描画装置の機能的構成)
つぎに、フローチャート描画装置100の機能的構成について説明する。図2は、フローチャート描画装置の機能的構成を示すブロック図である。フローチャート描画装置100は、表示部210、入力部220、描画部230によって構成される。描画部230は、さらに解析部231、大きさ決定部232、矩形位置決定部233、記号位置決定部234によって構成される。フローチャート描画装置100は、ユーザの操作に基づいて表示画面250にフローチャートを描画する。表示画面250は、たとえばディスプレイ110である。
また、フローチャート描画装置100の描画対象は、データ流れ図やプログラム流れ図など情報処理分野における一連の流れを示す流れ図(フローチャート)に限らず、たとえばワークフローと呼ばれる作業プロセスを示すグラフなどを含む。すなわち、フローチャート描画装置100は、描画ルールが詳細に規定されたフローチャートのみならず、処理の流れを説明するための図全般を描画対象としている。
【0036】
表示部210は、フローチャートの開始記号、フローチャートの終了記号、および開始記号と終了記号とを接続する接続記号を表示画面250に表示する。表示部210は、たとえばフローチャート描画装置100においてフローチャート描画プログラムが起動され、フローチャートの描画開始が指示された際に、表示画面250にフローチャートの開始記号、終了記号、および接続記号を表示する。表示部210は、開始記号をフローチャートの上流側に、終了記号をフローチャートの下流側に表示する。
【0037】
入力部220は、フローチャート内において接続記号によって接続されたフローチャート記号間に、あらたなフローチャート記号の挿入を指示する指示入力を受け付ける。接続記号によって接続されたフローチャート記号間とは、たとえば、表示部210によって開始記号および終了記号の表示がおこなわれた直後においては、開始記号と終了記号との間である。また、フローチャート中に開始記号および終了記号以外のフローチャート記号がある場合には、接続記号に接続された任意のフローチャート記号間にあらたなフローチャート記号を挿入することができる。なお、本明細書において、フローチャート記号とは、フローチャートに用いられる記号のうち、接続記号(線記号)を除く記号を示す。
【0038】
入力部220は、たとえば表示画面250上に表示された接続記号(あらたなフローチャート記号を挿入する位置にある接続記号)に対する所定の操作入力を、あらたなフローチャート記号の挿入を指示する指示入力とする。また、入力部220は、あらたなフローチャート記号の指示入力とともにあらたなフローチャート記号の種類の指定を受け付ける。入力部220で選択可能なフローチャート記号の種類は、たとえば処理記号、判断記号、ループ記号とする。この3種類の記号を使用すれば、一般的な処理を表すフローチャートを描画することができる。なお、処理記号および判断記号の形状をさらに指定できるようにしてもよい。
【0039】
描画部230は、入力部220に指示入力があった場合、フローチャート記号間にあらたなフローチャート記号を描画するとともに、フローチャート記号とあらたなフローチャート記号とを接続するあらたな接続記号をそれぞれのフローチャート記号ごとに描画する。具体的には、たとえば、開始記号と終了記号との間にあらたなフローチャート記号の挿入指示があった場合、描画部230は、開始記号と終了記号との間にあらたなフローチャート記号を描画するとともに、開始記号とあらたなフローチャート記号とを接続する接続記号およびあらたなフローチャート記号と終了記号とを接続する接続記号を描画する。
【0040】
あらたなフローチャート記号を描画する際、描画部230は、フローチャート全体で均整のとれたレイアウトになるようにフローチャート内のすべての記号の位置を再計算して描画する。このため、描画部230は、さらに解析部231、大きさ決定部232、矩形位置決定部233、記号位置決定部234によって構成される。
【0041】
解析部231は、フローチャートの構造を、フローチャート記号を含む矩形の入れ子構造として解析する。解析部231は、たとえば、フローチャート記号がタスク記号の場合は、そのタスク記号およびその下流にあるフローチャート記号を囲む矩形を1つの入れ子とし、タスク記号の下流にある記号群をさらに囲む矩形を内側の入れ子とする。条件分岐記号の場合は、条件分岐記号から分岐の合流点、および合流点の下流にあるフローチャート記号を囲む矩形を1つの入れ子とし、合流点の下流に位置する記号群をさらに囲む矩形および分岐内にある記号群をさらに囲む矩形をそれぞれ内側の入れ子とする。ループ記号の場合は、ループの開始記号から終了記号、および終了記号の下流にあるフローチャート記号を囲む矩形を1つの入れ子とし、終了記号の下流にある記号群をさらに囲む矩形およびループ内にある記号群をさらに囲む矩形をそれぞれ内側の入れ子とする。
【0042】
大きさ決定部232は、入れ子構造の内側にある矩形から順番に、それぞれの矩形の大きさを決定する。大きさ決定部232は、それぞれの矩形の大きさを、当該矩形に含まれるフローチャート記号の種類および入れ子構造において当該矩形の内側にある矩形の大きさに基づいて決定する。
【0043】
矩形位置決定部233は、入れ子構造の外側にある矩形から順番に、それぞれの矩形の描画位置を決定する。矩形位置決定部233は、それぞれの矩形の描画位置を、当該矩形に含まれるフローチャート記号の種類および入れ子構造において当該矩形の内側にある矩形の大きさに基づいて決定する。
【0044】
記号位置決定部234は、それぞれの矩形内におけるフローチャート記号の描画位置を決定する。記号位置決定部234は、フローチャート記号の種類に基づいて、当該フローチャート記号の描画位置を決定する。
【0045】
(フローチャート描画処理の詳細)
つづいて、フローチャート描画装置100によるフローチャート描画処理について説明する。図3は、フローチャート描画装置によるフローチャート描画処理の手順を示すフローチャートである。フローチャート描画装置100は、フローチャートの作成開始が指示されるまで待機する(ステップS301:Noのループ)。フローチャートの作成開始指示は、たとえば、フローチャート描画装置100においてフローチャート描画プログラムを起動し、「新規作成」などのボタンを押下することによっておこなう。
【0046】
フローチャートの作成開始が指示されると(ステップS301:Yes)、フローチャート描画装置100は、ディスプレイ110にフローチャートの初期画面を表示する(ステップS302)。図4は、フローチャート描画装置が表示する初期画面の一例を示す説明図である。図4には、フローチャート描画プログラムのインターフェース400が示されている。インターフェース400は、編集中のフローチャートが表示される編集領域410、フローチャート中に挿入する記号の種類を選択する記号選択領域420、プログラム中のコマンド(「編集」「終了」など)が表示されるツールバー430などを含んでいる。
【0047】
図4において、編集領域410には、初期画面として、フローチャートの開始記号401、終了記号402、および開始記号401から終了記号402に向かう矢印403が表示されている。初期画面に開始記号401および終了記号402が表示されるのは、完結したフローチャートには必ず開始記号401および終了記号402が存在するからである。また、矢印403は、記号間をつなぐ接続記号の1つである。
【0048】
接続記号(たとえば矢印403)は、初期画面およびその後の編集画面において、あらたな記号の挿入点となる。ユーザは、接続記号(すなわち記号と記号との間)にあらたな記号を挿入していくことによって、フローチャートの編集を進める。図4では、矢印403上に円上のアイコン404を表示して、記号の挿入位置をユーザが認識しやすいようにしている。
【0049】
図3の説明に戻り、フローチャート描画装置100は、ユーザによってフローチャートの編集操作がおこなわれるまで待機する(ステップS303:Noのループ)。フローチャートの編集には、たとえば、記号の挿入、削除、コピー、切り取り、貼り付け、記号の種類の変更、記号内の文字の編集などの操作がある。このうち、記号の挿入は、記号を挿入したい位置の矢印403(またはアイコン404)に対する操作によっておこなう。
【0050】
図5は、記号の挿入操作がおこなわれた際の表示画面の一例を示す説明図である。ユーザがアイコン404の位置にポインタ501を合わせてマウスを右クリックすると、アイコン404の近傍に編集メニュー502が表示される。編集メニュー502には、たとえば、「タスクを追加」、「条件分岐を追加」、「ループを追加」、「貼り付け」などのメニューが表示されている。タスク、条件分岐、ループは、それぞれフローチャート記号の種類を表す。タスク記号は、直前のステップとの接続記号(矢印)や直後のステップとの接続記号(矢印)が1つずつある記号を示す。これに対して、条件分岐記号やループ記号は、直前のステップとの接続記号(矢印)や直後のステップとの接続記号(矢印)が複数ある。
【0051】
図5では、タスク記号として7つの種類の記号が示されている。タスク記号を挿入する場合、ユーザは、記号選択領域420のタスク選択領域520aに示された7つのタスク記号から挿入したいタスク記号を選択する。具体的には、選択したいタスク記号のラジオボタンをオンにする。その状態で編集メニュー502の「タスクを追加」を実行すると、所望のタスク記号がフローチャート内に挿入される。
【0052】
また、図5では、ループとして2つの種類の記号が示されている。ループ記号を挿入する場合、タスク記号を挿入する場合と同様に、ユーザは、記号選択領域420のループ選択領域520bに示された2つの記号から挿入したいループ記号を選択し、編集メニュー502の「ループを追加」を実行する。一方、条件分岐の記号は1つの種類しかないため、記号選択領域420における選択はおこなわず、編集メニュー502の「条件分岐を追加」を実行する。なお、図5に示した記号の種類は一例であり、他のフローチャート記号を選択可能としてもよい。
【0053】
フローチャートの編集操作があると(ステップS303:Yes)、フローチャート描画装置100は、編集後のフローチャートのレイアウトを算出する(ステップS304)。レイアウトの算出方法については、後ほど詳細に説明する。そして、ステップS304で算出したレイアウトのフローチャートをディスプレイ110に表示する(ステップS305)。
【0054】
図6は、記号挿入後の表示画面の一例を示す説明図である。図6では、開始記号401と終了記号402との間に、処理を示すタスク記号601が挿入されている。開始記号401とタスク記号601との間には、開始記号401からタスク記号601に向かうあらたな矢印602およびアイコン603が表示されている。また、タスク記号601と終了記号402との間には、タスク記号601から終了記号402に向かうあらたな矢印604およびアイコン605が表示されている。ユーザは、矢印602(またはアイコン603)や矢印604(またはアイコン605)に操作をおこなうことによって、フローチャート内に記号を挿入していく。
【0055】
フローチャートの編集終了が指示されるまで(ステップS306:No)、フローチャート描画装置100は、ステップS303に戻り、以降の処理を継続する。ユーザは、編集操作の末、所望のフローチャートが完成するとフローチャートの編集を終了する。フローチャートの編集終了が指示されると(ステップS306:Yes)、フローチャート描画装置100は、作成したフローチャートをデータとして保存して(ステップS307)、本フローチャートによる処理を終了する。保存したデータは、フローチャート描画プログラムを用いて再度編集することができる。
【0056】
図7は、完成したフローチャートの一例を示す説明図である。図7のフローチャートは、開始記号711、終了記号712、ループの始点記号713および終点記号714、第1の条件分岐記号715および分岐の合流点716、第2の条件分岐記号717および分岐の合流点718、第1のタスク記号719、第2のタスク記号720、第3のタスク記号721、第4のタスク記号722、およびこれらをつなぐ接続記号によって構成される。図3のフローチャートで説明したように、任意の記号間にあらたに記号を挿入していくことによって、図7のような複雑なフローチャートも容易に描画することができる。
【0057】
図7のフローチャートを描画する際の具体的な手順の一例を以下に示す。まず、初期画面では開始記号711、終了記号712、およびこれらをつなぐ矢印が表示されている。ユーザは、まず開始記号711と終了記号712との間にループ記号を挿入する操作をおこない、ループの始点記号713および終点記号714を挿入する(第1の操作)。つぎに、ユーザはループの始点記号713と終点記号714との間に条件分岐記号を挿入する操作をおこない、第1の条件分岐記号715および分岐の合流点716を挿入する(第2の操作)。
【0058】
つづいて、第1の条件分岐記号715のYes分岐側にタスク記号を挿入する操作をおこない、第1のタスク記号719を挿入する(第3の操作)。また、第1の条件分岐記号715のNo分岐側に条件分岐記号を挿入する操作をおこない、第2の条件分岐記号717および分岐の合流点718を挿入する(第4の操作)。さらに、第2の条件分岐記号717のYes分岐側にタスク記号を挿入する操作をおこない、第2のタスク記号720を挿入する(第5の操作)。また、第2の条件分岐記号717のNo分岐側にタスク記号を挿入する操作をおこない、第3のタスク記号721を挿入する(第6の操作)。そして、第3のタスク記号721と合流点718との間にタスク記号を挿入する操作をおこない、第4のタスク記号722を挿入する(第7の操作)。このように、フローチャート描画装置100によれば、図7のような複雑なフローチャートを7回の操作で描画することができる。
【0059】
つづいて、フローチャートのレイアウト算出方法(図3のステップS304参照)について説明する。フローチャート描画装置100では、フローチャートのレイアウトを論理矩形を用いて算出する。論理矩形とは、フローチャート内の各要素の位置を決めるための概念上の矩形である。論理矩形はディスプレイ上には描画されない。論理矩形には、開始終了矩形、タスク順列矩形、条件順列矩形、ループ順列矩形、空矩形の5種類がある。
【0060】
図8は、論理矩形の構造を説明するための説明図である。開始終了矩形801は、開始記号、終了記号、および開始記号と終了記号との間にある入れ子論理矩形を含む。通常、フローチャートの最も上流には開始記号が位置し、最も下流には終了記号が位置する。このため、開始終了矩形は、フローチャート内で最も外側の論理矩形となる。入れ子論理矩形は、タスク順列矩形、条件順列矩形、ループ順列矩形、空矩形のいずれかとなる。開始終了矩形の高さは、開始記号の上端から終了記号の下端までとなる。また、開始終了矩形の幅は、開始記号、終了記号、入れ子論理矩形のうち最も幅が大きいものと同じとなる。なお、図8においては、図を見やすくするため、矩形内の記号と矩形との間に隙間が示されているが、実際は各矩形の上下左右の辺が矩形内の記号の上下左右の辺と一致している。
【0061】
タスク順列矩形802は、タスク記号およびタスク記号の下に位置する次位論理矩形を含む。次位論理矩形は、タスク順列矩形、条件順列矩形、ループ順列矩形、空矩形のいずれかとなる。タスク順列矩形の高さは、タスク記号の上端から次位論理矩形の下端までとなる。また、タスク順列矩形の幅は、タスク記号または次位論理矩形のうち幅がより大きいものと同じとなる。
【0062】
条件順列矩形803は、条件分岐記号、条件分岐記号の下に位置する次位論理矩形、および各分岐内にある入れ子論理矩形を含む。条件順列矩形803の高さは、条件分岐記号の上端から次位論理矩形の下端までとなる。また、条件順列矩形803の幅は、条件分岐記号、次位論理矩形、入れ子論理矩形のうち最も左側に位置するものの左辺から、これらのうち最も右側に位置するものの右辺までの距離となる。
【0063】
ループ順列矩形804は、ループ記号、ループ記号の下に位置する次位論理矩形、およびループ記号間にある入れ子論理矩形を含む。ループ順列矩形の高さは、ループ記号の上端から次位論理矩形の下端までとなる。また、ループ論理矩形の幅は、ループ記号、ループ記号間を結ぶ接続記号、次位論理矩形、入れ子論理矩形のうち最も左側に位置するものの左辺から、これらのうち最も右側に位置するものの右辺までの距離となる。
【0064】
空矩形は、要素を持たない矩形である。空矩形は、高さや幅を持たないため図示を省略する。上述した次位論理矩形や入れ子論理矩形が空矩形の場合、その位置には要素がない。
【0065】
図9は、論理矩形を用いた入れ子構造を説明するための説明図である。図9のフローチャートは、図7に示したフローチャートと同一のフローチャートなので、対応する記号には図7と同一の符号を付している。一番外側の入れ子となっている矩形は、開始記号711から終了記号712までを含む開始終了矩形Aである。開始終了矩形Aの入れ子矩形はループ順列矩形Bである。
【0066】
ループ順列矩形Bは、ループの始点記号713から終点記号714までを含む。ループ順列矩形Bの次位論理矩形は空矩形なので、ループの終点記号714がループ順列矩形Bの下端となっている。また、ループ順列矩形Bの入れ子矩形は、条件順列矩形Cである。
【0067】
条件順列矩形Cは、第1の条件分岐記号715から分岐の合流点716までを含む。条件順列矩形Cの次位論理矩形は空矩形なので、合流点716が条件順列矩形Cの下端となっている。条件順列矩形CのYes分岐側の入れ子矩形はタスク順列矩形Dである。また、条件順列矩形CのNo分岐側の入れ子矩形は、条件順列矩形Eである。
【0068】
タスク順列矩形Dは、第1のタスク記号719を含む。タスク順列矩形Dの次位論理矩形は空矩形なので、第1のタスク記号719の下に要素はない。すなわち、タスク順列矩形Dの大きさは第1のタスク記号719の大きさそのものとなる。
【0069】
条件順列矩形Eは、第2の条件分岐記号717から分岐の合流点718までを含む。条件順列矩形Eの次位論理矩形は空矩形なので、合流点718が条件順列矩形Eの下端となっている。条件順列矩形EのYes分岐側の入れ子矩形は、タスク順列矩形Fである。また、条件順列矩形EのNo分岐側の入れ子矩形は、タスク順列矩形Gである。
【0070】
タスク順列矩形Fは、第2のタスク記号720を含む。タスク順列矩形Fの次位論理矩形は空矩形なので、第2のタスク記号720の下に要素はない。すなわち、タスク順列矩形Fの大きさは第2のタスク記号720の大きさそのものとなる。
【0071】
タスク順列矩形Gは、第3のタスク記号721を含む。タスク順列矩形Gの次位論理矩形は、タスク順列矩形Hである。このため、タスク順列矩形Gの下端はタスク順列矩形Hの下端となる。タスク順列矩形Hは、第4のタスク記号722を含む。タスク順列矩形Hの次位論理矩形は空矩形なので、第4のタスク記号722の下に要素はない。すなわち、タスク順列矩形Hの大きさは第4のタスク記号722の大きさそのものとなる。
【0072】
フローチャート描画装置100は、フローチャート内の各論理矩形を適当な位置に配置することによって、フローチャートのレイアウトを調整する。図10は、フローチャート描画装置によるレイアウト算出方法の手順を示すフローチャートである。図10のフローチャートは、編集中のフローチャートに対して何らかの編集操作(たとえば、記号の挿入など)がおこなわれた際に、フローチャートのレイアウトを調整する処理である。
【0073】
図10のフローチャートにおいて、フローチャート描画装置100は、編集中のフローチャートに対して編集操作がおこなわれるまで待機する(ステップS1001:Noのループ)。編集操作がおこなわれると(ステップS1001:Yes)、フローチャート描画装置100は、入れ子構造の一番内側に位置する論理矩形を特定し(ステップS1002)、その論理矩形の大きさを決定する(ステップS1003)。図9の例では、入れ子構造の一番内側の論理矩形はタスク順列矩形Hである。このため、フローチャート描画装置100は、はじめにタスク順列矩形Hの大きさを決定する。
【0074】
つぎに、フローチャート描画装置100は、ステップS1003で大きさを決定した論理矩形の外側に論理矩形があるか否かを判断する(ステップS1004)。外側に論理矩形がある場合には(ステップS1004:Yes)、ステップS1003に戻り、外側の論理矩形の大きさを決定する。図9の例では、タスク順列矩形Hの外側にはタスク順列矩形Gがあるので、タスク順列矩形Hにつづいてタスク順列矩形Gの大きさを決定する。また、タスク順列矩形Gの外側には条件順列矩形Eがあるので、タスク順列矩形Gにつづいて条件順列矩形Eの大きさを決定する。
【0075】
なお、外側の論理矩形内に、ステップS1003で大きさを決定した論理矩形以外の他の論理矩形が含まれている場合は、外側の論理矩形の大きさを決定する前に、他の論理矩形の大きさを決定する。たとえば、タスク順列矩形Gの外側には条件順列矩形Eがあるが、条件順列矩形E内には、タスク順列矩形Gの他、タスク順列矩形Fが含まれている。この場合、条件順列矩形Eの大きさを決定する前にタスク順列矩形Fの大きさを決定する。また、フローチャート描画装置100は、各論理矩形の大きさを決定した際、各論理矩形の左側の幅の値(左幅値)および右側の幅の値(右幅値)を記憶しておく。
【0076】
ステップS1004において、外側に論理矩形がなくなると(ステップS1004:No)、すなわち、すべての論理矩形の大きさを決定すると、フローチャート描画装置100は、最も外側の論理矩形から順番にそれぞれの論理矩形の位置および論理矩形内の記号の位置を決定する(ステップS1005)。論理矩形の位置は、たとえば論理矩形の左上の頂点の座標を定めることによって決定する。
【0077】
すべての論理矩形および記号の位置を決定するまで(ステップS1006:No)、フローチャート描画装置100は、ステップS1005に戻り、位置の決定をおこなう。そして、すべての論理矩形および記号の位置を決定すると(ステップS1006:Yes)、フローチャート内の記号を結ぶ接続記号の位置を決定し(ステップS1007)、本フローチャートによる処理を終了する。
【0078】
図10のフローチャートに示した処理を、図9に示したフローチャートの条件順列矩形E内の要素を例にしてより具体的に説明する。まず、各論理矩形の大きさを決定する(図10ステップS1003参照)。条件順列矩形E内には入れ子の論理矩形(タスク順列矩形F、タスク順列矩形G、タスク順列矩形H)があるので、入れ子となった論理矩形の大きさを先に決定する。Yes分岐側にあるタスク順列矩形F内には入れ子がないので、第2のタスク記号720の幅および高さをタスク順列矩形Fの幅および高さとする。また、タスク順列矩形Fの左幅値および右幅値を、それぞれ第2のタスク記号720の幅の1/2とする。
【0079】
No分岐側にあるタスク順列矩形Gにはタスク順列矩形Hが入れ子になっているので、タスク順列矩形Hの大きさを先に決める。タスク順列矩形Hには入れ子がないので、第3のタスク記号720の幅および高さをタスク順列矩形Hの幅および高さとする。また、タスク順列矩形Hの左幅値および右幅値を、それぞれ第4のタスク記号722の幅の1/2とする。
【0080】
タスク順列矩形Gの大きさは、第3のタスク記号721と第4のタスク記号722に基づいて決める。タスク順列矩形Gの幅は、第3のタスク記号721の幅と第4のタスク記号722の幅とのうち大きい方の値とする。図9においては、第2のタスク記号721の幅と第4のタスク記号722の幅とは同じなので、第3のタスク記号721の幅とする。また、タスク順列矩形Gの高さは、第3のタスク記号721の高さ+第4のタスク記号722の高さ+第3のタスク記号721と第4のタスク記号722との間の縦方向のマージンVMとする。また、タスク順列矩形Gの左幅値および右幅値は、第3のタスク記号721の幅と第4のタスク記号722の幅とのうち大きい方の1/2とする。図9においては、第3のタスク記号721の幅と第4のタスク記号722の幅とは同じなので、タスク順列矩形Gの左幅値および右幅値は、第3のタスク記号721の幅の1/2とする。
【0081】
つづいて、条件順列矩形Eの大きさを決定する。条件順列矩形Eの幅は、以下の3つの値のうち最も大きい値とする。図9の場合、値Aが最も大きい値なので値Aを条件順列矩形Eの幅とする。
値A)タスク順列矩形Fの幅+タスク順列矩形Gの幅+タスク順列矩形Fとタスク順列矩形Gとの間の横方向のマージンHM
値B)第2の条件分岐記号717の幅
値C)合流点718の幅
【0082】
条件順列矩形Eの高さは、条件順列矩形E内に入れ子になっているタスク順列矩形Fの高さとタスク順列矩形Gの高さとのうち値が大きい方(図9ではタスク順列矩形Gの高さ)+第2の条件分岐記号717の高さ+合流点718の高さ+縦方向のマージンVMの2倍(第2の条件分岐記号717と第2のタスク記号719との間隔VMおよび第3のタスク記号720と合流点718との間隔VM)とする。また、条件順列矩形Eの左幅はタスク矩形Fの幅+横方向のマージンHMの1/2とし、右幅値はタスク順列矩形Gの幅+横方向のマージンHMの1/2とする。
【0083】
つぎに、各論理矩形および記号の位置を決定する。以下の説明において、フローチャートの横方向をx座標、縦方向をy座標とする。x座標、y座標は、たとえば最も外側の論理矩形Aの左上の点を原点O(0,0)として、この点からのx方向、y方向の距離をそれぞれ表す。論理矩形および記号の位置を決定する際には、まず論理矩形の位置を決め、つぎに論理矩形内の記号の位置を決める。
【0084】
まず、一番外側にある条件順列矩形Eの左上の角の位置を点P(x,y)とする。点Pの位置(座標)は、条件順列矩形Eの外側にある矩形などの位置によって決めるが、詳細な説明は省略する。つぎに、第2の条件分岐記号717の位置を決める。第2の条件分岐記号717の位置は、第2の条件分岐記号717と同じ高さおよび幅を有する矩形717’の座標として決定する。矩形717’の左上の点Qのx座標は、点Pのx座標+条件順列矩形Eの左幅−第2の条件分岐記号717の幅の1/2とする。また、点Qのy座標は、点Pのy座標と同じにする。
【0085】
つづいて、合流点718の位置を決める。合流点718の位置は、合流点718と同じ高さおよび幅を有する矩形718’の座標として決定する。矩形718’の左上の点Rのx座標は、条件順列矩形Eの左幅値から合流点718の幅値の1/2を引いた値を、点Pのx座標に加えたものとする。また、点Rのy座標は、点Pのy座標に矩形Eの高さを加えた値から合流点718の高さを引いた値とする。
【0086】
つぎに、タスク順列矩形Fの位置を決める。タスク順列矩形Fの左上の点Tのx座標は、点Pのx座標と同じにする。点Tのy座標は、第2の条件分岐記号717の高さとタスク順列矩形Gの高さの1/2と間隔VMとを点Pのy座標に加えた値からタスク順列矩形Fの高さの1/2を引いた値とする。これにより、タスク順列矩形Fの縦方向の位置は、第2の条件分岐記号717の下端と合流点718の上端との中間となる。タスク順列矩形F内の要素である第2のタスク記号720の左上の点の座標は、タスク順列矩形Fの左上の点Tと同じにする。
【0087】
つづいて、タスク順列矩形Gの位置を決める。タスク順列矩形Gの左上の点Uのx座標は、条件順列矩形Eの左幅値と横方向のマージンHMの1/2とを点Pのx座標に加えた値とする。これにより、タスク順列矩形Gの右辺は条件順列矩形Eの右辺と同じ位置になる。点Uのy座標は、第2の条件分岐記号717の高さと縦方向のマージンVMとを点Pのy座標に加えた値とする。これにより、タスク順列矩形Gの縦方向の位置は、第2の条件分岐記号717の下端と合流点718の上端との中間となる。タスク順列矩形G内の要素である第3のタスク記号721の左上の点の座標は、タスク順列矩形Gの左上の点Uと同じにする。
【0088】
つぎに、タスク順列矩形Hの位置を決める。タスク順列矩形Hの左上の点Vのx座標は、タスク順列矩形Gの左上の点Uと一致させる。これは、タスク順列矩形Hの幅とタスク順列矩形Gの幅とが同じであるためである。点Vのy座標は、第4のタスク記号722の高さと縦方向のマージンVMとを点Uのy座標に加えた値とする。タスク順列矩形H内の要素である第4のタスク記号722の左上の点の座標は、タスク順列矩形Hの左上の点Vと同じにする。
【0089】
以上のようにフローチャート内の記号の位置を定めると、フローチャート全体で均整のとれたレイアウトを実現することができる。この後、フローチャート描画装置100は、各記号間を接続する接続記号を描画し、図9に示すようなフローチャートの描画が完了する。
【0090】
上述したレイアウト算出処理を、疑似プログラムコードを用いてさらに詳細に説明する。図11〜図13は、レイアウト算出処理の疑似プログラムコードの一例を示す説明図である。図11〜図13の疑似プログラムコードにおいて、「HM」は横方向のマージンを、「VM」は縦方向のマージンを表す。また、「EMPTY」は空矩形、すなわちその順列矩形が1つも要素を持たないことを表す。「SEQUENCE」はその論理矩形が1つ以上の要素を持つことを表す。「TASK」はタスク順列矩形を表す。「CONDITION」は条件順列矩形を表す。「LOOP」はループ順列矩形を表す。「STARTEND」は開始終了矩形を表す。「Box」は最も外側の矩形領域を指し示す。
【0091】
1行目から4行目は、一連の手続きの定義である。一連の手続きでは、まず、すべての論理矩形の大きさ(Size)を決定し、つぎに論理矩形に配置する要素の座標(Position)を決定する。5行目から55行目は、論理矩形の大きさを計算する処理である。6行目から10行目は、論理矩形が空矩形であれば、その大きさを0とすることを示す。11行目から12行目は、論理矩形内に次位論理矩形(nextBox)があれば、次位論理矩形の大きさを先に求めることを示す。13行目から15行目は、次位論理矩形が空矩形の場合は縦方向のマージンを0とし、次位論理矩形が空矩形ではない場合は縦方向のマージンVMをとることを示す。
【0092】
18行目から55行目では、論理矩形内の要素の種類に応じて各論理矩形の高さ(height)、幅(width)、左右の片寄り(leftWidth,rightWidth)を求める処理を示す。論理矩形がタスク順列矩形の場合は(19行目)、20行目から23行目に示すように論理矩形の高さ、幅、左右の片寄りを求める。なお、「max(A,B,・・)」(A,Bは要素名)とは、()内の要素のうち最も大きいものを示す。論理矩形が条件順列矩形の場合は(25行目)、26行目から35行目に示すように論理矩形の高さ、幅、左右の片寄りを求める。なお、条件順列矩形において「startNode」とは条件分岐記号を、「endNode」とは合流点を示す。
【0093】
論理矩形がループ順列矩形の場合は(37行目)、まず、38行目に示すように、論理矩形内に入れ子論理矩形(innerBox)があれば先に大きさを求める。そして、39行目から46行目に示すように論理矩形の高さ、幅、左右の片寄りを求める。なお、ループ論理矩形において、「startNode」とはループの開始記号を、「endNode」とはループの終了記号を示す。論理矩形が開始終了矩形の場合は(49行目)、まず、50行目に示すように、論理矩形内に入れ子論理矩形があれば先に大きさを求める。そして、51行目から54行目に示すように論理矩形の高さ、幅、左右の片寄りを求める。これにより、各論理矩形の大きさが決まる。
【0094】
57行目から91行目では、各要素を配置する座標を決定する。論理矩形が空矩形の場合は(58行目)、座標を決定すべき要素はないためそのまま処理を終了する。一方、論理矩形内に要素がある場合は(61行目)、各要素の種類に応じて位置を決定していく。タスク順列矩形の場合は(63行目)、64行目および65行目に示すようにタスク記号の座標を決める。条件順列矩形の場合は(67行目)、まず68行目から71行目に示すように条件分岐記号および合流点の位置を決める。そして、71行目から75行目に示すように、分岐の左右それぞれにある入れ子論理矩形の座標を求める。
【0095】
ループ順列矩形の場合は(77行目)、78行目から81行目に示すようにループの開始記号および終了記号の位置を求める。そして、入れ子論理矩形がある場合は、開始記号および終了記号の位置を基点として82行目に示すようにその位置を求める。また、開始終了矩形の場合は(86行目)、87行目から90行目に示すように開始記号および終了記号の位置を求める。そして、入れ子論理矩形がある場合は、開始記号および終了記号の位置を基点として91行目に示すようにその位置を求める。
【0096】
以上説明したように、実施の形態にかかるフローチャート描画装置100は、表示されているフローチャート記号間にあらたなフローチャート記号を挿入していくことにより、フローチャートの編集処理をおこなうことができる。これにより、複雑な構造のフローチャートであっても簡易な操作で描画することができる。また、フローチャート描画装置100では、あらたなフローチャート記号を挿入できる位置が特定されているため、フローチャート作成上のルールを逸脱することなくフローチャートの作成をおこなうことができる。
【0097】
また、フローチャート描画装置100は、接続記号に対する所定の操作入力によって、あらたなフローチャート記号の挿入を指示することができる。これにより、あらたなフローチャート記号を挿入する位置を特定しやすくなり、より簡易な操作でフローチャートを描画することができる。また、フローチャート描画装置100では、挿入するフローチャート記号の種類をあらかじめ指定することができる。これにより、フローチャートの描画を効率的におこなうことができる。このとき、一般的なフローチャートの作成に必要なフローチャート記号のみを選択可能としているので、選択操作のインターフェースを簡素化することができる。
【0098】
また、フローチャート描画装置100は、フローチャートの構造をフローチャート記号の入れ子構造として捉え、入れ子構造の内側にあるフローチャート記号から順番に大きさを決定した後、入れ子構造の外側にあるフローチャート記号から順番に描画位置を決定する。これにより、フローチャート内のフローチャート記号の位置を適切に調整することができ、複雑なフローチャートであっても簡易な操作で描画することができる。
【0099】
なお、本実施の形態で説明したフローチャート描画方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
【産業上の利用可能性】
【0100】
以上のように、本発明にかかるフローチャート描画装置、フローチャート描画方法およびフローチャート描画プログラムは、表示画面上においてフローチャートを描画、編集する場合に適しており、特に、コンピュータ装置などにおいてフローチャートを描画するフローチャート描画アプリケーションや各種図形を描画する画像描画ソフトウェア(ドローツール)への適用に適している。
【符号の説明】
【0101】
100 フローチャート描画装置
210 表示部
220 入力部
230 描画部
231 解析部
232 大きさ決定部
233 矩形位置決定部
234 記号位置決定部
250 表示画面
【技術分野】
【0001】
この発明は、ユーザの操作に基づいて表示画面などにフローチャートを描画するフローチャート描画装置、フローチャート描画方法およびフローチャート描画プログラムに関する。
【背景技術】
【0002】
従来、ユーザの操作に基づいて表示画面上などにフローチャートを描画する際には、画像描画ソフトウェア(ドローツール)を用いるのが一般的である。図14〜図17は、既存のドローツールを用いたフローチャートの描画方法の一例を模式的に示した説明図である。ユーザがドローツールを起動して、フローチャートの作成を指示すると、図14に示すように、フローチャートの開始記号、終了記号、およびこれらをつなぐ矢印が表示される。つぎに、図15に示すように、ユーザは矢印を消去して、開始記号と終了記号との間に処理記号を挿入する。つづいて、図16に示すように開始記号から処理記号に向かう矢印と、処理記号から終了記号に向かう矢印とを描画する。最後に、図17に示すように記号間の間隔が等間隔になるように記号の位置や矢印の長さを調整する。
【0003】
このように、ドローツールを用いてフローチャートを描画する場合、フローチャート内の記号をユーザが所望の順番に並べ、それらの記号間を矢印でつなぎ、それぞれの記号や矢印の位置や大きさ、長さなどを調整する、という手順を取るのが一般的である。また、たとえば、フローチャート作画システムにおいて、結線元ボックス(処理記号)と結線ボックスの間を操作者の望む自由な経路で結線することにより、操作者に見やすく、また、ボックス間に図や文字を自由に配置することができる結線装置および結線方法が知られている(たとえば、下記特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2000−163258号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記の従来技術では、ユーザの操作でフローチャートのレイアウトを整える必要があるため、フローチャートの作成に多くの時間や労力を費やさなくてはならないという問題点がある。特に、複雑なフローチャートを描く場合には、記号および矢印の数が多くなるため、これらの位置関係を調整するのが困難となり、さらに多くの労力を必要とする。また、完成したフローチャートを修正する場合には、記号や矢印の追加、削除、変更などをおこなった後、再度レイアウトを調整する必要がある。
【0006】
また、上記の従来技術では、各記号を単なる図形として扱うため、ユーザの意図にそぐわない、または、フローチャート作成上のルールを逸脱するフローチャートを作成してしまう可能性があるという問題点がある。具体的には、たとえば、判断記号から1つの矢印だけしか出ていない、矢印の向きが逆、ループ端の片方がない、というようなフローチャートが作成される可能性がある。
【0007】
この発明は、上述した従来技術による問題点を解決するため、簡易な操作でユーザの意図したフローチャートを描画することができるフローチャート描画装置、フローチャート描画方法およびフローチャート描画プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上述した課題を解決し、目的を達成するため、請求項1の発明にかかるフローチャート描画装置は、フローチャートを表示画面に描画するフローチャート描画装置であって、前記フローチャートの開始記号、前記フローチャートの終了記号、および前記開始記号と前記終了記号とを接続する接続記号を前記表示画面に表示する表示手段と、前記フローチャート内において接続記号によって接続されたフローチャート記号間に、あらたなフローチャート記号の挿入を指示する指示入力を受け付ける入力手段と、前記入力手段に前記指示入力があった場合、前記フローチャート記号間に前記あらたなフローチャート記号を描画するとともに、前記フローチャート記号と前記あらたなフローチャート記号とを接続するあらたな接続記号をそれぞれの前記フローチャート記号ごとに描画する描画手段と、を備えることを特徴とする。
【0009】
この請求項1に記載の発明によれば、フローチャート記号間にあらたなフローチャート記号の挿入が指示された場合、そのフローチャート記号間にあらたなフローチャート記号およびあらたな接続記号を描画する。これにより、複雑な構造のフローチャートであっても簡易な操作で描画することができる。また、請求項1に記載の発明によれば、あらたなフローチャート記号を挿入できる位置が特定されているため、フローチャート作成上のルールを逸脱することなくフローチャートの作成をおこなうことができる。
【0010】
また、請求項2の発明にかかるフローチャート描画装置は、請求項1に記載の発明において、前記入力手段は、前記表示画面上に表示された前記接続記号に対する所定の操作入力を、前記あらたなフローチャート記号の挿入を指示する指示入力とすることを特徴とする。
【0011】
この請求項2に記載の発明によれば、ユーザは接続記号に対する所定の操作入力によって、あらたなフローチャート記号の挿入を指示することができる。これにより、あらたなフローチャート記号を挿入する位置を特定しやすくなり、より簡易な操作でフローチャートを描画することができる。
【0012】
また、請求項3の発明にかかるフローチャート描画装置は、請求項1または2に記載の発明において、前記入力手段は、前記指示入力とともに前記あらたなフローチャート記号の種類の指定を受け付けることを特徴とする。
【0013】
この請求項3に記載の発明によれば、ユーザは挿入するフローチャート記号の種類をあらかじめ指定することができる。これにより、フローチャートの描画を効率的におこなうことができる。
【0014】
また、請求項4の発明にかかるフローチャート描画装置は、請求項3に記載の発明において、前記描画手段は、前記あらたなフローチャート記号の種類に基づいて前記フローチャート内の前記フローチャート記号および接続記号を描画する位置を決定することを特徴とする。
【0015】
この請求項4に記載の発明によれば、あらたなフローチャート記号の種類に基づいてフローチャート内のレイアウトを決定する。これにより、あらたなフローチャート記号を挿入された後のフローチャートのレイアウトを適切に調整することができる。
【0016】
また、請求項5の発明にかかるフローチャート描画装置は、請求項3または4に記載の発明において、前記入力手段で選択可能な前記フローチャート記号の種類は、処理記号、判断記号、ループ記号であることを特徴とする。
【0017】
この請求項5に記載の発明によれば、一般的なフローチャートの作成に必要なフローチャート記号のみを選択可能としている。これにより、選択操作のインターフェースを簡素化することができる。
【0018】
また、請求項6の発明にかかるフローチャート描画装置は、請求項1〜5のいずれか一つに記載の発明において、前記フローチャートの構造を、前記フローチャート記号を含む矩形の入れ子構造として解析する解析手段と、前記入れ子構造の内側にある前記矩形から順番に、それぞれの前記矩形の大きさを決定する大きさ決定手段と、前記入れ子構造の外側にある前記矩形から順番に、それぞれの前記矩形の前記描画位置を決定する矩形位置決定手段と、前記矩形内における前記フローチャート記号の描画位置を決定する記号位置決定手段と、を備え、前記大きさ決定手段は、それぞれの前記矩形の大きさを、当該矩形に含まれるフローチャート記号の種類および前記入れ子構造において当該矩形の内側にある前記矩形の大きさに基づいて決定し、前記矩形位置決定手段は、それぞれの前記矩形の前記描画位置を、当該矩形に含まれるフローチャート記号の種類および前記入れ子構造において当該矩形の内側にある前記矩形の大きさに基づいて決定し、前記記号位置決定手段は、前記フローチャート記号の種類に基づいて、当該フローチャート記号の描画位置を決定することを特徴とする。
【0019】
この請求項6に記載の発明によれば、フローチャートの構造をフローチャート記号の入れ子構造として捉え、入れ子構造の内側にあるフローチャート記号から順番に大きさを決定した後、入れ子構造の外側にあるフローチャート記号から順番に描画位置を決定する。これにより、フローチャート内のフローチャート記号の位置を適切に調整することができ、複雑なフローチャートであっても簡易な操作で描画することができる。
【0020】
また、請求項7の発明にかかるフローチャート描画方法は、フローチャートを表示画面に描画するフローチャート描画方法であって、前記フローチャートの開始記号、前記フローチャートの終了記号、および前記開始記号と前記終了記号とを接続する接続記号を前記表示画面に表示する表示工程と、前記フローチャート内において接続記号によって接続されたフローチャート記号間に、あらたなフローチャート記号の挿入を指示する指示入力を受け付ける入力工程と、前記入力手段に前記指示入力があった場合、前記フローチャート記号間に前記あらたなフローチャート記号を描画するとともに、前記フローチャート記号と前記あらたなフローチャート記号とを接続するあらたな接続記号をそれぞれの前記フローチャート記号ごとに描画する描画工程と、を含んだことを特徴とする。
【0021】
この請求項7に記載の発明によれば、フローチャート記号間にあらたなフローチャート記号の挿入が指示された場合、そのフローチャート記号間にあらたなフローチャート記号およびあらたな接続記号を描画する。これにより、複雑な構造のフローチャートであっても簡易な操作で描画することができる。また、請求項7に記載の発明によれば、あらたなフローチャート記号を挿入できる位置が特定されているため、フローチャート作成上のルールを逸脱することなくフローチャートの作成をおこなうことができる。
【0022】
また、請求項8の発明にかかるフローチャート描画プログラムは、請求項7に記載のフローチャート描画方法をコンピュータに実行させることを特徴とする。
【0023】
この請求項8に記載の発明によれば、請求項7に記載のフローチャート描画方法をコンピュータに実行させることができる。
【発明の効果】
【0024】
以上説明したように、本発明によれば、簡易な操作でユーザの意図したフローチャートを描画することができる。
【図面の簡単な説明】
【0025】
【図1】フローチャート描画装置のハードウェア構成を示すブロック図である。
【図2】フローチャート描画装置の機能的構成を示すブロック図である。
【図3】フローチャート描画装置によるフローチャート描画処理の手順を示すフローチャートである。
【図4】フローチャート描画装置が表示する初期画面の一例を示す説明図である。
【図5】記号の挿入操作がおこなわれた際の表示画面の一例を示す説明図である。
【図6】記号挿入後の表示画面の一例を示す説明図である。
【図7】完成したフローチャートの一例を示す説明図である。
【図8】論理矩形の構造を説明するための説明図である。
【図9】論理矩形を用いた入れ子構造を説明するための説明図である。
【図10】フローチャート描画装置によるレイアウト算出方法の手順を示すフローチャートである。
【図11】レイアウト算出処理の疑似プログラムコードの一例を示す説明図である。
【図12】レイアウト算出処理の疑似プログラムコードを示す説明図である。
【図13】レイアウト算出処理の疑似プログラムコードを示す説明図である。
【図14】既存のドローツールを用いたフローチャートの描画方法の一例を模式的に示した説明図である。
【図15】既存のドローツールを用いたフローチャートの描画方法の一例を模式的に示した説明図である。
【図16】既存のドローツールを用いたフローチャートの描画方法の一例を模式的に示した説明図である。
【図17】既存のドローツールを用いたフローチャートの描画方法の一例を模式的に示した説明図である。
【発明を実施するための形態】
【0026】
以下に添付図面を参照して、この発明に係るフローチャート描画装置、フローチャート描画方法およびフローチャート描画プログラムの好適な実施の形態を詳細に説明する。
【0027】
(実施の形態)
まず、実施の形態にかかるフローチャート描画装置100のハードウェア構成について説明する。図1は、フローチャート描画装置のハードウェア構成を示すブロック図である。図1のように、フローチャート描画装置100は、CPU101と、ROM102と、RAM103と、HDD(ハードディスクドライブ)104と、HD(ハードディスク)105と、FDD(フレキシブルディスクドライブ)106と、FD(フレキシブルディスク)107と、CD−RWD(CD−RWドライブ)108と、CD−RW109と、ディスプレイ110と、入力デバイス111と、ネットワークI/F112とを含んで構成されている。なお、上記の各構成101〜112は、それぞれバス120に接続されている。また、ネットワークI/F(インターフェース)112には、NET(ネットワーク)に接続するための通信ケーブル113が備えられている。
【0028】
上述のような構成のフローチャート描画装置100において、CPU101は、フローチャート描画装置100全体を制御する。また、ROM102は、本発明にかかるフローチャート描画プログラムを記憶している。ROM102に記憶されたフローチャート描画プログラムは、CPU101からの制御に応じて読み出され実行される。また、RAM103は、CPU101のワークエリアとして使用される。
【0029】
HDD104は、CPU101の制御にしたがってHD105に対するデータのリード/ライトを制御する。HD105は、HDD104の制御にしたがって書き込まれたデータを記憶する記憶媒体である。また、HD105に記憶されたデータは、HDD104の制御に応じて適宜読み出される。
【0030】
FDD106は、CPU101の制御にしたがってFD107に対するデータのリード/ライトを制御する。FD107は、FDD106の制御にしたがって書き込まれたデータを記憶する着脱自在の記憶媒体である。また、FD107に記憶されたデータは、FDD106の制御に応じて適宜読み出される。
【0031】
CD−RWD108は、CPU101の制御にしたがってCD−RW109に対するデータのリード/ライトを制御する。CD−RW109は、CD−RWD108の制御にしたがって書き込まれたデータを記憶する着脱自在な記憶媒体である。また、CD−RW109に記憶されたデータは、CD−RWD108の制御に応じて適宜読み出される。
【0032】
ディスプレイ110は、CPU101の制御によって、カーソル、メニュー、ウィンドウ、あるいは文字や画像などの各種データを表示する。また、入力デバイス111は、文字、数値、各種指示などの入力のための複数のキーを備えたリモコン、キーボード、タッチパネルなどである。入力デバイス111は、リモコン、キーボード、タッチパネルのうちいずれか1つの形態によって実現されてもよいが、複数の形態によって実現することも可能である。
【0033】
ネットワークI/F112は、通信ケーブル113を介してLANやWANなどのネットワークに接続され、当該ネットワークとCPU101とのインターフェースとして機能する。
【0034】
本実施の形態にかかるフローチャート描画装置100は、上述したようなハードウェアを備えており、CPU101の制御によりROM102に記憶されたフローチャート描画プログラムを実行することにより、フローチャートの描画をおこなうことができる。
【0035】
(フローチャート描画装置の機能的構成)
つぎに、フローチャート描画装置100の機能的構成について説明する。図2は、フローチャート描画装置の機能的構成を示すブロック図である。フローチャート描画装置100は、表示部210、入力部220、描画部230によって構成される。描画部230は、さらに解析部231、大きさ決定部232、矩形位置決定部233、記号位置決定部234によって構成される。フローチャート描画装置100は、ユーザの操作に基づいて表示画面250にフローチャートを描画する。表示画面250は、たとえばディスプレイ110である。
また、フローチャート描画装置100の描画対象は、データ流れ図やプログラム流れ図など情報処理分野における一連の流れを示す流れ図(フローチャート)に限らず、たとえばワークフローと呼ばれる作業プロセスを示すグラフなどを含む。すなわち、フローチャート描画装置100は、描画ルールが詳細に規定されたフローチャートのみならず、処理の流れを説明するための図全般を描画対象としている。
【0036】
表示部210は、フローチャートの開始記号、フローチャートの終了記号、および開始記号と終了記号とを接続する接続記号を表示画面250に表示する。表示部210は、たとえばフローチャート描画装置100においてフローチャート描画プログラムが起動され、フローチャートの描画開始が指示された際に、表示画面250にフローチャートの開始記号、終了記号、および接続記号を表示する。表示部210は、開始記号をフローチャートの上流側に、終了記号をフローチャートの下流側に表示する。
【0037】
入力部220は、フローチャート内において接続記号によって接続されたフローチャート記号間に、あらたなフローチャート記号の挿入を指示する指示入力を受け付ける。接続記号によって接続されたフローチャート記号間とは、たとえば、表示部210によって開始記号および終了記号の表示がおこなわれた直後においては、開始記号と終了記号との間である。また、フローチャート中に開始記号および終了記号以外のフローチャート記号がある場合には、接続記号に接続された任意のフローチャート記号間にあらたなフローチャート記号を挿入することができる。なお、本明細書において、フローチャート記号とは、フローチャートに用いられる記号のうち、接続記号(線記号)を除く記号を示す。
【0038】
入力部220は、たとえば表示画面250上に表示された接続記号(あらたなフローチャート記号を挿入する位置にある接続記号)に対する所定の操作入力を、あらたなフローチャート記号の挿入を指示する指示入力とする。また、入力部220は、あらたなフローチャート記号の指示入力とともにあらたなフローチャート記号の種類の指定を受け付ける。入力部220で選択可能なフローチャート記号の種類は、たとえば処理記号、判断記号、ループ記号とする。この3種類の記号を使用すれば、一般的な処理を表すフローチャートを描画することができる。なお、処理記号および判断記号の形状をさらに指定できるようにしてもよい。
【0039】
描画部230は、入力部220に指示入力があった場合、フローチャート記号間にあらたなフローチャート記号を描画するとともに、フローチャート記号とあらたなフローチャート記号とを接続するあらたな接続記号をそれぞれのフローチャート記号ごとに描画する。具体的には、たとえば、開始記号と終了記号との間にあらたなフローチャート記号の挿入指示があった場合、描画部230は、開始記号と終了記号との間にあらたなフローチャート記号を描画するとともに、開始記号とあらたなフローチャート記号とを接続する接続記号およびあらたなフローチャート記号と終了記号とを接続する接続記号を描画する。
【0040】
あらたなフローチャート記号を描画する際、描画部230は、フローチャート全体で均整のとれたレイアウトになるようにフローチャート内のすべての記号の位置を再計算して描画する。このため、描画部230は、さらに解析部231、大きさ決定部232、矩形位置決定部233、記号位置決定部234によって構成される。
【0041】
解析部231は、フローチャートの構造を、フローチャート記号を含む矩形の入れ子構造として解析する。解析部231は、たとえば、フローチャート記号がタスク記号の場合は、そのタスク記号およびその下流にあるフローチャート記号を囲む矩形を1つの入れ子とし、タスク記号の下流にある記号群をさらに囲む矩形を内側の入れ子とする。条件分岐記号の場合は、条件分岐記号から分岐の合流点、および合流点の下流にあるフローチャート記号を囲む矩形を1つの入れ子とし、合流点の下流に位置する記号群をさらに囲む矩形および分岐内にある記号群をさらに囲む矩形をそれぞれ内側の入れ子とする。ループ記号の場合は、ループの開始記号から終了記号、および終了記号の下流にあるフローチャート記号を囲む矩形を1つの入れ子とし、終了記号の下流にある記号群をさらに囲む矩形およびループ内にある記号群をさらに囲む矩形をそれぞれ内側の入れ子とする。
【0042】
大きさ決定部232は、入れ子構造の内側にある矩形から順番に、それぞれの矩形の大きさを決定する。大きさ決定部232は、それぞれの矩形の大きさを、当該矩形に含まれるフローチャート記号の種類および入れ子構造において当該矩形の内側にある矩形の大きさに基づいて決定する。
【0043】
矩形位置決定部233は、入れ子構造の外側にある矩形から順番に、それぞれの矩形の描画位置を決定する。矩形位置決定部233は、それぞれの矩形の描画位置を、当該矩形に含まれるフローチャート記号の種類および入れ子構造において当該矩形の内側にある矩形の大きさに基づいて決定する。
【0044】
記号位置決定部234は、それぞれの矩形内におけるフローチャート記号の描画位置を決定する。記号位置決定部234は、フローチャート記号の種類に基づいて、当該フローチャート記号の描画位置を決定する。
【0045】
(フローチャート描画処理の詳細)
つづいて、フローチャート描画装置100によるフローチャート描画処理について説明する。図3は、フローチャート描画装置によるフローチャート描画処理の手順を示すフローチャートである。フローチャート描画装置100は、フローチャートの作成開始が指示されるまで待機する(ステップS301:Noのループ)。フローチャートの作成開始指示は、たとえば、フローチャート描画装置100においてフローチャート描画プログラムを起動し、「新規作成」などのボタンを押下することによっておこなう。
【0046】
フローチャートの作成開始が指示されると(ステップS301:Yes)、フローチャート描画装置100は、ディスプレイ110にフローチャートの初期画面を表示する(ステップS302)。図4は、フローチャート描画装置が表示する初期画面の一例を示す説明図である。図4には、フローチャート描画プログラムのインターフェース400が示されている。インターフェース400は、編集中のフローチャートが表示される編集領域410、フローチャート中に挿入する記号の種類を選択する記号選択領域420、プログラム中のコマンド(「編集」「終了」など)が表示されるツールバー430などを含んでいる。
【0047】
図4において、編集領域410には、初期画面として、フローチャートの開始記号401、終了記号402、および開始記号401から終了記号402に向かう矢印403が表示されている。初期画面に開始記号401および終了記号402が表示されるのは、完結したフローチャートには必ず開始記号401および終了記号402が存在するからである。また、矢印403は、記号間をつなぐ接続記号の1つである。
【0048】
接続記号(たとえば矢印403)は、初期画面およびその後の編集画面において、あらたな記号の挿入点となる。ユーザは、接続記号(すなわち記号と記号との間)にあらたな記号を挿入していくことによって、フローチャートの編集を進める。図4では、矢印403上に円上のアイコン404を表示して、記号の挿入位置をユーザが認識しやすいようにしている。
【0049】
図3の説明に戻り、フローチャート描画装置100は、ユーザによってフローチャートの編集操作がおこなわれるまで待機する(ステップS303:Noのループ)。フローチャートの編集には、たとえば、記号の挿入、削除、コピー、切り取り、貼り付け、記号の種類の変更、記号内の文字の編集などの操作がある。このうち、記号の挿入は、記号を挿入したい位置の矢印403(またはアイコン404)に対する操作によっておこなう。
【0050】
図5は、記号の挿入操作がおこなわれた際の表示画面の一例を示す説明図である。ユーザがアイコン404の位置にポインタ501を合わせてマウスを右クリックすると、アイコン404の近傍に編集メニュー502が表示される。編集メニュー502には、たとえば、「タスクを追加」、「条件分岐を追加」、「ループを追加」、「貼り付け」などのメニューが表示されている。タスク、条件分岐、ループは、それぞれフローチャート記号の種類を表す。タスク記号は、直前のステップとの接続記号(矢印)や直後のステップとの接続記号(矢印)が1つずつある記号を示す。これに対して、条件分岐記号やループ記号は、直前のステップとの接続記号(矢印)や直後のステップとの接続記号(矢印)が複数ある。
【0051】
図5では、タスク記号として7つの種類の記号が示されている。タスク記号を挿入する場合、ユーザは、記号選択領域420のタスク選択領域520aに示された7つのタスク記号から挿入したいタスク記号を選択する。具体的には、選択したいタスク記号のラジオボタンをオンにする。その状態で編集メニュー502の「タスクを追加」を実行すると、所望のタスク記号がフローチャート内に挿入される。
【0052】
また、図5では、ループとして2つの種類の記号が示されている。ループ記号を挿入する場合、タスク記号を挿入する場合と同様に、ユーザは、記号選択領域420のループ選択領域520bに示された2つの記号から挿入したいループ記号を選択し、編集メニュー502の「ループを追加」を実行する。一方、条件分岐の記号は1つの種類しかないため、記号選択領域420における選択はおこなわず、編集メニュー502の「条件分岐を追加」を実行する。なお、図5に示した記号の種類は一例であり、他のフローチャート記号を選択可能としてもよい。
【0053】
フローチャートの編集操作があると(ステップS303:Yes)、フローチャート描画装置100は、編集後のフローチャートのレイアウトを算出する(ステップS304)。レイアウトの算出方法については、後ほど詳細に説明する。そして、ステップS304で算出したレイアウトのフローチャートをディスプレイ110に表示する(ステップS305)。
【0054】
図6は、記号挿入後の表示画面の一例を示す説明図である。図6では、開始記号401と終了記号402との間に、処理を示すタスク記号601が挿入されている。開始記号401とタスク記号601との間には、開始記号401からタスク記号601に向かうあらたな矢印602およびアイコン603が表示されている。また、タスク記号601と終了記号402との間には、タスク記号601から終了記号402に向かうあらたな矢印604およびアイコン605が表示されている。ユーザは、矢印602(またはアイコン603)や矢印604(またはアイコン605)に操作をおこなうことによって、フローチャート内に記号を挿入していく。
【0055】
フローチャートの編集終了が指示されるまで(ステップS306:No)、フローチャート描画装置100は、ステップS303に戻り、以降の処理を継続する。ユーザは、編集操作の末、所望のフローチャートが完成するとフローチャートの編集を終了する。フローチャートの編集終了が指示されると(ステップS306:Yes)、フローチャート描画装置100は、作成したフローチャートをデータとして保存して(ステップS307)、本フローチャートによる処理を終了する。保存したデータは、フローチャート描画プログラムを用いて再度編集することができる。
【0056】
図7は、完成したフローチャートの一例を示す説明図である。図7のフローチャートは、開始記号711、終了記号712、ループの始点記号713および終点記号714、第1の条件分岐記号715および分岐の合流点716、第2の条件分岐記号717および分岐の合流点718、第1のタスク記号719、第2のタスク記号720、第3のタスク記号721、第4のタスク記号722、およびこれらをつなぐ接続記号によって構成される。図3のフローチャートで説明したように、任意の記号間にあらたに記号を挿入していくことによって、図7のような複雑なフローチャートも容易に描画することができる。
【0057】
図7のフローチャートを描画する際の具体的な手順の一例を以下に示す。まず、初期画面では開始記号711、終了記号712、およびこれらをつなぐ矢印が表示されている。ユーザは、まず開始記号711と終了記号712との間にループ記号を挿入する操作をおこない、ループの始点記号713および終点記号714を挿入する(第1の操作)。つぎに、ユーザはループの始点記号713と終点記号714との間に条件分岐記号を挿入する操作をおこない、第1の条件分岐記号715および分岐の合流点716を挿入する(第2の操作)。
【0058】
つづいて、第1の条件分岐記号715のYes分岐側にタスク記号を挿入する操作をおこない、第1のタスク記号719を挿入する(第3の操作)。また、第1の条件分岐記号715のNo分岐側に条件分岐記号を挿入する操作をおこない、第2の条件分岐記号717および分岐の合流点718を挿入する(第4の操作)。さらに、第2の条件分岐記号717のYes分岐側にタスク記号を挿入する操作をおこない、第2のタスク記号720を挿入する(第5の操作)。また、第2の条件分岐記号717のNo分岐側にタスク記号を挿入する操作をおこない、第3のタスク記号721を挿入する(第6の操作)。そして、第3のタスク記号721と合流点718との間にタスク記号を挿入する操作をおこない、第4のタスク記号722を挿入する(第7の操作)。このように、フローチャート描画装置100によれば、図7のような複雑なフローチャートを7回の操作で描画することができる。
【0059】
つづいて、フローチャートのレイアウト算出方法(図3のステップS304参照)について説明する。フローチャート描画装置100では、フローチャートのレイアウトを論理矩形を用いて算出する。論理矩形とは、フローチャート内の各要素の位置を決めるための概念上の矩形である。論理矩形はディスプレイ上には描画されない。論理矩形には、開始終了矩形、タスク順列矩形、条件順列矩形、ループ順列矩形、空矩形の5種類がある。
【0060】
図8は、論理矩形の構造を説明するための説明図である。開始終了矩形801は、開始記号、終了記号、および開始記号と終了記号との間にある入れ子論理矩形を含む。通常、フローチャートの最も上流には開始記号が位置し、最も下流には終了記号が位置する。このため、開始終了矩形は、フローチャート内で最も外側の論理矩形となる。入れ子論理矩形は、タスク順列矩形、条件順列矩形、ループ順列矩形、空矩形のいずれかとなる。開始終了矩形の高さは、開始記号の上端から終了記号の下端までとなる。また、開始終了矩形の幅は、開始記号、終了記号、入れ子論理矩形のうち最も幅が大きいものと同じとなる。なお、図8においては、図を見やすくするため、矩形内の記号と矩形との間に隙間が示されているが、実際は各矩形の上下左右の辺が矩形内の記号の上下左右の辺と一致している。
【0061】
タスク順列矩形802は、タスク記号およびタスク記号の下に位置する次位論理矩形を含む。次位論理矩形は、タスク順列矩形、条件順列矩形、ループ順列矩形、空矩形のいずれかとなる。タスク順列矩形の高さは、タスク記号の上端から次位論理矩形の下端までとなる。また、タスク順列矩形の幅は、タスク記号または次位論理矩形のうち幅がより大きいものと同じとなる。
【0062】
条件順列矩形803は、条件分岐記号、条件分岐記号の下に位置する次位論理矩形、および各分岐内にある入れ子論理矩形を含む。条件順列矩形803の高さは、条件分岐記号の上端から次位論理矩形の下端までとなる。また、条件順列矩形803の幅は、条件分岐記号、次位論理矩形、入れ子論理矩形のうち最も左側に位置するものの左辺から、これらのうち最も右側に位置するものの右辺までの距離となる。
【0063】
ループ順列矩形804は、ループ記号、ループ記号の下に位置する次位論理矩形、およびループ記号間にある入れ子論理矩形を含む。ループ順列矩形の高さは、ループ記号の上端から次位論理矩形の下端までとなる。また、ループ論理矩形の幅は、ループ記号、ループ記号間を結ぶ接続記号、次位論理矩形、入れ子論理矩形のうち最も左側に位置するものの左辺から、これらのうち最も右側に位置するものの右辺までの距離となる。
【0064】
空矩形は、要素を持たない矩形である。空矩形は、高さや幅を持たないため図示を省略する。上述した次位論理矩形や入れ子論理矩形が空矩形の場合、その位置には要素がない。
【0065】
図9は、論理矩形を用いた入れ子構造を説明するための説明図である。図9のフローチャートは、図7に示したフローチャートと同一のフローチャートなので、対応する記号には図7と同一の符号を付している。一番外側の入れ子となっている矩形は、開始記号711から終了記号712までを含む開始終了矩形Aである。開始終了矩形Aの入れ子矩形はループ順列矩形Bである。
【0066】
ループ順列矩形Bは、ループの始点記号713から終点記号714までを含む。ループ順列矩形Bの次位論理矩形は空矩形なので、ループの終点記号714がループ順列矩形Bの下端となっている。また、ループ順列矩形Bの入れ子矩形は、条件順列矩形Cである。
【0067】
条件順列矩形Cは、第1の条件分岐記号715から分岐の合流点716までを含む。条件順列矩形Cの次位論理矩形は空矩形なので、合流点716が条件順列矩形Cの下端となっている。条件順列矩形CのYes分岐側の入れ子矩形はタスク順列矩形Dである。また、条件順列矩形CのNo分岐側の入れ子矩形は、条件順列矩形Eである。
【0068】
タスク順列矩形Dは、第1のタスク記号719を含む。タスク順列矩形Dの次位論理矩形は空矩形なので、第1のタスク記号719の下に要素はない。すなわち、タスク順列矩形Dの大きさは第1のタスク記号719の大きさそのものとなる。
【0069】
条件順列矩形Eは、第2の条件分岐記号717から分岐の合流点718までを含む。条件順列矩形Eの次位論理矩形は空矩形なので、合流点718が条件順列矩形Eの下端となっている。条件順列矩形EのYes分岐側の入れ子矩形は、タスク順列矩形Fである。また、条件順列矩形EのNo分岐側の入れ子矩形は、タスク順列矩形Gである。
【0070】
タスク順列矩形Fは、第2のタスク記号720を含む。タスク順列矩形Fの次位論理矩形は空矩形なので、第2のタスク記号720の下に要素はない。すなわち、タスク順列矩形Fの大きさは第2のタスク記号720の大きさそのものとなる。
【0071】
タスク順列矩形Gは、第3のタスク記号721を含む。タスク順列矩形Gの次位論理矩形は、タスク順列矩形Hである。このため、タスク順列矩形Gの下端はタスク順列矩形Hの下端となる。タスク順列矩形Hは、第4のタスク記号722を含む。タスク順列矩形Hの次位論理矩形は空矩形なので、第4のタスク記号722の下に要素はない。すなわち、タスク順列矩形Hの大きさは第4のタスク記号722の大きさそのものとなる。
【0072】
フローチャート描画装置100は、フローチャート内の各論理矩形を適当な位置に配置することによって、フローチャートのレイアウトを調整する。図10は、フローチャート描画装置によるレイアウト算出方法の手順を示すフローチャートである。図10のフローチャートは、編集中のフローチャートに対して何らかの編集操作(たとえば、記号の挿入など)がおこなわれた際に、フローチャートのレイアウトを調整する処理である。
【0073】
図10のフローチャートにおいて、フローチャート描画装置100は、編集中のフローチャートに対して編集操作がおこなわれるまで待機する(ステップS1001:Noのループ)。編集操作がおこなわれると(ステップS1001:Yes)、フローチャート描画装置100は、入れ子構造の一番内側に位置する論理矩形を特定し(ステップS1002)、その論理矩形の大きさを決定する(ステップS1003)。図9の例では、入れ子構造の一番内側の論理矩形はタスク順列矩形Hである。このため、フローチャート描画装置100は、はじめにタスク順列矩形Hの大きさを決定する。
【0074】
つぎに、フローチャート描画装置100は、ステップS1003で大きさを決定した論理矩形の外側に論理矩形があるか否かを判断する(ステップS1004)。外側に論理矩形がある場合には(ステップS1004:Yes)、ステップS1003に戻り、外側の論理矩形の大きさを決定する。図9の例では、タスク順列矩形Hの外側にはタスク順列矩形Gがあるので、タスク順列矩形Hにつづいてタスク順列矩形Gの大きさを決定する。また、タスク順列矩形Gの外側には条件順列矩形Eがあるので、タスク順列矩形Gにつづいて条件順列矩形Eの大きさを決定する。
【0075】
なお、外側の論理矩形内に、ステップS1003で大きさを決定した論理矩形以外の他の論理矩形が含まれている場合は、外側の論理矩形の大きさを決定する前に、他の論理矩形の大きさを決定する。たとえば、タスク順列矩形Gの外側には条件順列矩形Eがあるが、条件順列矩形E内には、タスク順列矩形Gの他、タスク順列矩形Fが含まれている。この場合、条件順列矩形Eの大きさを決定する前にタスク順列矩形Fの大きさを決定する。また、フローチャート描画装置100は、各論理矩形の大きさを決定した際、各論理矩形の左側の幅の値(左幅値)および右側の幅の値(右幅値)を記憶しておく。
【0076】
ステップS1004において、外側に論理矩形がなくなると(ステップS1004:No)、すなわち、すべての論理矩形の大きさを決定すると、フローチャート描画装置100は、最も外側の論理矩形から順番にそれぞれの論理矩形の位置および論理矩形内の記号の位置を決定する(ステップS1005)。論理矩形の位置は、たとえば論理矩形の左上の頂点の座標を定めることによって決定する。
【0077】
すべての論理矩形および記号の位置を決定するまで(ステップS1006:No)、フローチャート描画装置100は、ステップS1005に戻り、位置の決定をおこなう。そして、すべての論理矩形および記号の位置を決定すると(ステップS1006:Yes)、フローチャート内の記号を結ぶ接続記号の位置を決定し(ステップS1007)、本フローチャートによる処理を終了する。
【0078】
図10のフローチャートに示した処理を、図9に示したフローチャートの条件順列矩形E内の要素を例にしてより具体的に説明する。まず、各論理矩形の大きさを決定する(図10ステップS1003参照)。条件順列矩形E内には入れ子の論理矩形(タスク順列矩形F、タスク順列矩形G、タスク順列矩形H)があるので、入れ子となった論理矩形の大きさを先に決定する。Yes分岐側にあるタスク順列矩形F内には入れ子がないので、第2のタスク記号720の幅および高さをタスク順列矩形Fの幅および高さとする。また、タスク順列矩形Fの左幅値および右幅値を、それぞれ第2のタスク記号720の幅の1/2とする。
【0079】
No分岐側にあるタスク順列矩形Gにはタスク順列矩形Hが入れ子になっているので、タスク順列矩形Hの大きさを先に決める。タスク順列矩形Hには入れ子がないので、第3のタスク記号720の幅および高さをタスク順列矩形Hの幅および高さとする。また、タスク順列矩形Hの左幅値および右幅値を、それぞれ第4のタスク記号722の幅の1/2とする。
【0080】
タスク順列矩形Gの大きさは、第3のタスク記号721と第4のタスク記号722に基づいて決める。タスク順列矩形Gの幅は、第3のタスク記号721の幅と第4のタスク記号722の幅とのうち大きい方の値とする。図9においては、第2のタスク記号721の幅と第4のタスク記号722の幅とは同じなので、第3のタスク記号721の幅とする。また、タスク順列矩形Gの高さは、第3のタスク記号721の高さ+第4のタスク記号722の高さ+第3のタスク記号721と第4のタスク記号722との間の縦方向のマージンVMとする。また、タスク順列矩形Gの左幅値および右幅値は、第3のタスク記号721の幅と第4のタスク記号722の幅とのうち大きい方の1/2とする。図9においては、第3のタスク記号721の幅と第4のタスク記号722の幅とは同じなので、タスク順列矩形Gの左幅値および右幅値は、第3のタスク記号721の幅の1/2とする。
【0081】
つづいて、条件順列矩形Eの大きさを決定する。条件順列矩形Eの幅は、以下の3つの値のうち最も大きい値とする。図9の場合、値Aが最も大きい値なので値Aを条件順列矩形Eの幅とする。
値A)タスク順列矩形Fの幅+タスク順列矩形Gの幅+タスク順列矩形Fとタスク順列矩形Gとの間の横方向のマージンHM
値B)第2の条件分岐記号717の幅
値C)合流点718の幅
【0082】
条件順列矩形Eの高さは、条件順列矩形E内に入れ子になっているタスク順列矩形Fの高さとタスク順列矩形Gの高さとのうち値が大きい方(図9ではタスク順列矩形Gの高さ)+第2の条件分岐記号717の高さ+合流点718の高さ+縦方向のマージンVMの2倍(第2の条件分岐記号717と第2のタスク記号719との間隔VMおよび第3のタスク記号720と合流点718との間隔VM)とする。また、条件順列矩形Eの左幅はタスク矩形Fの幅+横方向のマージンHMの1/2とし、右幅値はタスク順列矩形Gの幅+横方向のマージンHMの1/2とする。
【0083】
つぎに、各論理矩形および記号の位置を決定する。以下の説明において、フローチャートの横方向をx座標、縦方向をy座標とする。x座標、y座標は、たとえば最も外側の論理矩形Aの左上の点を原点O(0,0)として、この点からのx方向、y方向の距離をそれぞれ表す。論理矩形および記号の位置を決定する際には、まず論理矩形の位置を決め、つぎに論理矩形内の記号の位置を決める。
【0084】
まず、一番外側にある条件順列矩形Eの左上の角の位置を点P(x,y)とする。点Pの位置(座標)は、条件順列矩形Eの外側にある矩形などの位置によって決めるが、詳細な説明は省略する。つぎに、第2の条件分岐記号717の位置を決める。第2の条件分岐記号717の位置は、第2の条件分岐記号717と同じ高さおよび幅を有する矩形717’の座標として決定する。矩形717’の左上の点Qのx座標は、点Pのx座標+条件順列矩形Eの左幅−第2の条件分岐記号717の幅の1/2とする。また、点Qのy座標は、点Pのy座標と同じにする。
【0085】
つづいて、合流点718の位置を決める。合流点718の位置は、合流点718と同じ高さおよび幅を有する矩形718’の座標として決定する。矩形718’の左上の点Rのx座標は、条件順列矩形Eの左幅値から合流点718の幅値の1/2を引いた値を、点Pのx座標に加えたものとする。また、点Rのy座標は、点Pのy座標に矩形Eの高さを加えた値から合流点718の高さを引いた値とする。
【0086】
つぎに、タスク順列矩形Fの位置を決める。タスク順列矩形Fの左上の点Tのx座標は、点Pのx座標と同じにする。点Tのy座標は、第2の条件分岐記号717の高さとタスク順列矩形Gの高さの1/2と間隔VMとを点Pのy座標に加えた値からタスク順列矩形Fの高さの1/2を引いた値とする。これにより、タスク順列矩形Fの縦方向の位置は、第2の条件分岐記号717の下端と合流点718の上端との中間となる。タスク順列矩形F内の要素である第2のタスク記号720の左上の点の座標は、タスク順列矩形Fの左上の点Tと同じにする。
【0087】
つづいて、タスク順列矩形Gの位置を決める。タスク順列矩形Gの左上の点Uのx座標は、条件順列矩形Eの左幅値と横方向のマージンHMの1/2とを点Pのx座標に加えた値とする。これにより、タスク順列矩形Gの右辺は条件順列矩形Eの右辺と同じ位置になる。点Uのy座標は、第2の条件分岐記号717の高さと縦方向のマージンVMとを点Pのy座標に加えた値とする。これにより、タスク順列矩形Gの縦方向の位置は、第2の条件分岐記号717の下端と合流点718の上端との中間となる。タスク順列矩形G内の要素である第3のタスク記号721の左上の点の座標は、タスク順列矩形Gの左上の点Uと同じにする。
【0088】
つぎに、タスク順列矩形Hの位置を決める。タスク順列矩形Hの左上の点Vのx座標は、タスク順列矩形Gの左上の点Uと一致させる。これは、タスク順列矩形Hの幅とタスク順列矩形Gの幅とが同じであるためである。点Vのy座標は、第4のタスク記号722の高さと縦方向のマージンVMとを点Uのy座標に加えた値とする。タスク順列矩形H内の要素である第4のタスク記号722の左上の点の座標は、タスク順列矩形Hの左上の点Vと同じにする。
【0089】
以上のようにフローチャート内の記号の位置を定めると、フローチャート全体で均整のとれたレイアウトを実現することができる。この後、フローチャート描画装置100は、各記号間を接続する接続記号を描画し、図9に示すようなフローチャートの描画が完了する。
【0090】
上述したレイアウト算出処理を、疑似プログラムコードを用いてさらに詳細に説明する。図11〜図13は、レイアウト算出処理の疑似プログラムコードの一例を示す説明図である。図11〜図13の疑似プログラムコードにおいて、「HM」は横方向のマージンを、「VM」は縦方向のマージンを表す。また、「EMPTY」は空矩形、すなわちその順列矩形が1つも要素を持たないことを表す。「SEQUENCE」はその論理矩形が1つ以上の要素を持つことを表す。「TASK」はタスク順列矩形を表す。「CONDITION」は条件順列矩形を表す。「LOOP」はループ順列矩形を表す。「STARTEND」は開始終了矩形を表す。「Box」は最も外側の矩形領域を指し示す。
【0091】
1行目から4行目は、一連の手続きの定義である。一連の手続きでは、まず、すべての論理矩形の大きさ(Size)を決定し、つぎに論理矩形に配置する要素の座標(Position)を決定する。5行目から55行目は、論理矩形の大きさを計算する処理である。6行目から10行目は、論理矩形が空矩形であれば、その大きさを0とすることを示す。11行目から12行目は、論理矩形内に次位論理矩形(nextBox)があれば、次位論理矩形の大きさを先に求めることを示す。13行目から15行目は、次位論理矩形が空矩形の場合は縦方向のマージンを0とし、次位論理矩形が空矩形ではない場合は縦方向のマージンVMをとることを示す。
【0092】
18行目から55行目では、論理矩形内の要素の種類に応じて各論理矩形の高さ(height)、幅(width)、左右の片寄り(leftWidth,rightWidth)を求める処理を示す。論理矩形がタスク順列矩形の場合は(19行目)、20行目から23行目に示すように論理矩形の高さ、幅、左右の片寄りを求める。なお、「max(A,B,・・)」(A,Bは要素名)とは、()内の要素のうち最も大きいものを示す。論理矩形が条件順列矩形の場合は(25行目)、26行目から35行目に示すように論理矩形の高さ、幅、左右の片寄りを求める。なお、条件順列矩形において「startNode」とは条件分岐記号を、「endNode」とは合流点を示す。
【0093】
論理矩形がループ順列矩形の場合は(37行目)、まず、38行目に示すように、論理矩形内に入れ子論理矩形(innerBox)があれば先に大きさを求める。そして、39行目から46行目に示すように論理矩形の高さ、幅、左右の片寄りを求める。なお、ループ論理矩形において、「startNode」とはループの開始記号を、「endNode」とはループの終了記号を示す。論理矩形が開始終了矩形の場合は(49行目)、まず、50行目に示すように、論理矩形内に入れ子論理矩形があれば先に大きさを求める。そして、51行目から54行目に示すように論理矩形の高さ、幅、左右の片寄りを求める。これにより、各論理矩形の大きさが決まる。
【0094】
57行目から91行目では、各要素を配置する座標を決定する。論理矩形が空矩形の場合は(58行目)、座標を決定すべき要素はないためそのまま処理を終了する。一方、論理矩形内に要素がある場合は(61行目)、各要素の種類に応じて位置を決定していく。タスク順列矩形の場合は(63行目)、64行目および65行目に示すようにタスク記号の座標を決める。条件順列矩形の場合は(67行目)、まず68行目から71行目に示すように条件分岐記号および合流点の位置を決める。そして、71行目から75行目に示すように、分岐の左右それぞれにある入れ子論理矩形の座標を求める。
【0095】
ループ順列矩形の場合は(77行目)、78行目から81行目に示すようにループの開始記号および終了記号の位置を求める。そして、入れ子論理矩形がある場合は、開始記号および終了記号の位置を基点として82行目に示すようにその位置を求める。また、開始終了矩形の場合は(86行目)、87行目から90行目に示すように開始記号および終了記号の位置を求める。そして、入れ子論理矩形がある場合は、開始記号および終了記号の位置を基点として91行目に示すようにその位置を求める。
【0096】
以上説明したように、実施の形態にかかるフローチャート描画装置100は、表示されているフローチャート記号間にあらたなフローチャート記号を挿入していくことにより、フローチャートの編集処理をおこなうことができる。これにより、複雑な構造のフローチャートであっても簡易な操作で描画することができる。また、フローチャート描画装置100では、あらたなフローチャート記号を挿入できる位置が特定されているため、フローチャート作成上のルールを逸脱することなくフローチャートの作成をおこなうことができる。
【0097】
また、フローチャート描画装置100は、接続記号に対する所定の操作入力によって、あらたなフローチャート記号の挿入を指示することができる。これにより、あらたなフローチャート記号を挿入する位置を特定しやすくなり、より簡易な操作でフローチャートを描画することができる。また、フローチャート描画装置100では、挿入するフローチャート記号の種類をあらかじめ指定することができる。これにより、フローチャートの描画を効率的におこなうことができる。このとき、一般的なフローチャートの作成に必要なフローチャート記号のみを選択可能としているので、選択操作のインターフェースを簡素化することができる。
【0098】
また、フローチャート描画装置100は、フローチャートの構造をフローチャート記号の入れ子構造として捉え、入れ子構造の内側にあるフローチャート記号から順番に大きさを決定した後、入れ子構造の外側にあるフローチャート記号から順番に描画位置を決定する。これにより、フローチャート内のフローチャート記号の位置を適切に調整することができ、複雑なフローチャートであっても簡易な操作で描画することができる。
【0099】
なお、本実施の形態で説明したフローチャート描画方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
【産業上の利用可能性】
【0100】
以上のように、本発明にかかるフローチャート描画装置、フローチャート描画方法およびフローチャート描画プログラムは、表示画面上においてフローチャートを描画、編集する場合に適しており、特に、コンピュータ装置などにおいてフローチャートを描画するフローチャート描画アプリケーションや各種図形を描画する画像描画ソフトウェア(ドローツール)への適用に適している。
【符号の説明】
【0101】
100 フローチャート描画装置
210 表示部
220 入力部
230 描画部
231 解析部
232 大きさ決定部
233 矩形位置決定部
234 記号位置決定部
250 表示画面
【特許請求の範囲】
【請求項1】
フローチャートを表示画面に描画するフローチャート描画装置であって、
前記フローチャートの開始記号、前記フローチャートの終了記号、および前記開始記号と前記終了記号とを接続する接続記号を前記表示画面に表示する表示手段と、
前記フローチャート内において接続記号によって接続されたフローチャート記号間に、あらたなフローチャート記号の挿入を指示する指示入力を受け付ける入力手段と、
前記入力手段に前記指示入力があった場合、前記フローチャート記号間に前記あらたなフローチャート記号を描画するとともに、前記フローチャート記号と前記あらたなフローチャート記号とを接続するあらたな接続記号をそれぞれの前記フローチャート記号ごとに描画する描画手段と、
を備えることを特徴とするフローチャート描画装置。
【請求項2】
前記入力手段は、前記表示画面上に表示された前記接続記号に対する所定の操作入力を、前記あらたなフローチャート記号の挿入を指示する指示入力とすることを特徴とする請求項1に記載のフローチャート描画装置。
【請求項3】
前記入力手段は、前記指示入力とともに前記あらたなフローチャート記号の種類の指定を受け付けることを特徴とする請求項1または2に記載のフローチャート描画装置。
【請求項4】
前記描画手段は、前記あらたなフローチャート記号の種類に基づいて前記フローチャート内の前記フローチャート記号および接続記号を描画する位置を決定することを特徴とする請求項3に記載のフローチャート描画装置。
【請求項5】
前記入力手段で選択可能な前記フローチャート記号の種類は、処理記号、判断記号、ループ記号であることを特徴とする請求項3または4に記載のフローチャート描画装置。
【請求項6】
前記描画手段は、
前記フローチャートの構造を、前記フローチャート記号を含む矩形の入れ子構造として解析する解析手段と、
前記入れ子構造の内側にある前記矩形から順番に、それぞれの前記矩形の大きさを決定する大きさ決定手段と、
前記入れ子構造の外側にある前記矩形から順番に、それぞれの前記矩形の前記描画位置を決定する矩形位置決定手段と、
前記矩形内における前記フローチャート記号の描画位置を決定する記号位置決定手段と、を備え、
前記大きさ決定手段は、それぞれの前記矩形の大きさを、当該矩形に含まれるフローチャート記号の種類および前記入れ子構造において当該矩形の内側にある前記矩形の大きさに基づいて決定し、
前記矩形位置決定手段は、それぞれの前記矩形の前記描画位置を、当該矩形に含まれるフローチャート記号の種類および前記入れ子構造において当該矩形の内側にある前記矩形の大きさに基づいて決定し、
前記記号位置決定手段は、前記フローチャート記号の種類に基づいて、当該フローチャート記号の描画位置を決定することを特徴とする請求項1〜5のいずれか一つに記載のフローチャート描画装置。
【請求項7】
フローチャートを表示画面に描画するフローチャート描画方法であって、
前記フローチャートの開始記号、前記フローチャートの終了記号、および前記開始記号と前記終了記号とを接続する接続記号を前記表示画面に表示する表示工程と、
前記フローチャート内において接続記号によって接続されたフローチャート記号間に、あらたなフローチャート記号の挿入を指示する指示入力を受け付ける入力工程と、
前記入力手段に前記指示入力があった場合、前記フローチャート記号間に前記あらたなフローチャート記号を描画するとともに、前記フローチャート記号と前記あらたなフローチャート記号とを接続するあらたな接続記号をそれぞれの前記フローチャート記号ごとに描画する描画工程と、
を含んだことを特徴とするフローチャート描画方法。
【請求項8】
請求項7に記載のフローチャート描画方法をコンピュータに実行させることを特徴とするフローチャート描画プログラム。
【請求項1】
フローチャートを表示画面に描画するフローチャート描画装置であって、
前記フローチャートの開始記号、前記フローチャートの終了記号、および前記開始記号と前記終了記号とを接続する接続記号を前記表示画面に表示する表示手段と、
前記フローチャート内において接続記号によって接続されたフローチャート記号間に、あらたなフローチャート記号の挿入を指示する指示入力を受け付ける入力手段と、
前記入力手段に前記指示入力があった場合、前記フローチャート記号間に前記あらたなフローチャート記号を描画するとともに、前記フローチャート記号と前記あらたなフローチャート記号とを接続するあらたな接続記号をそれぞれの前記フローチャート記号ごとに描画する描画手段と、
を備えることを特徴とするフローチャート描画装置。
【請求項2】
前記入力手段は、前記表示画面上に表示された前記接続記号に対する所定の操作入力を、前記あらたなフローチャート記号の挿入を指示する指示入力とすることを特徴とする請求項1に記載のフローチャート描画装置。
【請求項3】
前記入力手段は、前記指示入力とともに前記あらたなフローチャート記号の種類の指定を受け付けることを特徴とする請求項1または2に記載のフローチャート描画装置。
【請求項4】
前記描画手段は、前記あらたなフローチャート記号の種類に基づいて前記フローチャート内の前記フローチャート記号および接続記号を描画する位置を決定することを特徴とする請求項3に記載のフローチャート描画装置。
【請求項5】
前記入力手段で選択可能な前記フローチャート記号の種類は、処理記号、判断記号、ループ記号であることを特徴とする請求項3または4に記載のフローチャート描画装置。
【請求項6】
前記描画手段は、
前記フローチャートの構造を、前記フローチャート記号を含む矩形の入れ子構造として解析する解析手段と、
前記入れ子構造の内側にある前記矩形から順番に、それぞれの前記矩形の大きさを決定する大きさ決定手段と、
前記入れ子構造の外側にある前記矩形から順番に、それぞれの前記矩形の前記描画位置を決定する矩形位置決定手段と、
前記矩形内における前記フローチャート記号の描画位置を決定する記号位置決定手段と、を備え、
前記大きさ決定手段は、それぞれの前記矩形の大きさを、当該矩形に含まれるフローチャート記号の種類および前記入れ子構造において当該矩形の内側にある前記矩形の大きさに基づいて決定し、
前記矩形位置決定手段は、それぞれの前記矩形の前記描画位置を、当該矩形に含まれるフローチャート記号の種類および前記入れ子構造において当該矩形の内側にある前記矩形の大きさに基づいて決定し、
前記記号位置決定手段は、前記フローチャート記号の種類に基づいて、当該フローチャート記号の描画位置を決定することを特徴とする請求項1〜5のいずれか一つに記載のフローチャート描画装置。
【請求項7】
フローチャートを表示画面に描画するフローチャート描画方法であって、
前記フローチャートの開始記号、前記フローチャートの終了記号、および前記開始記号と前記終了記号とを接続する接続記号を前記表示画面に表示する表示工程と、
前記フローチャート内において接続記号によって接続されたフローチャート記号間に、あらたなフローチャート記号の挿入を指示する指示入力を受け付ける入力工程と、
前記入力手段に前記指示入力があった場合、前記フローチャート記号間に前記あらたなフローチャート記号を描画するとともに、前記フローチャート記号と前記あらたなフローチャート記号とを接続するあらたな接続記号をそれぞれの前記フローチャート記号ごとに描画する描画工程と、
を含んだことを特徴とするフローチャート描画方法。
【請求項8】
請求項7に記載のフローチャート描画方法をコンピュータに実行させることを特徴とするフローチャート描画プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公開番号】特開2011−48477(P2011−48477A)
【公開日】平成23年3月10日(2011.3.10)
【国際特許分類】
【出願番号】特願2009−194571(P2009−194571)
【出願日】平成21年8月25日(2009.8.25)
【出願人】(390024350)株式会社ジャストシステム (123)
【Fターム(参考)】
【公開日】平成23年3月10日(2011.3.10)
【国際特許分類】
【出願日】平成21年8月25日(2009.8.25)
【出願人】(390024350)株式会社ジャストシステム (123)
【Fターム(参考)】
[ Back to top ]