(57)【特許請求の範囲】
【請求項１】
プロセスとテーブルとの関係を表す情報を含むシステムフロー図を作成する、システムフロー図作成装置であって、
前記プロセスは、画面またはバッチプログラムであることができ、
前記システムフロー図は、前記プロセスの実行順序を表す情報を含み、
前記プロセスのうち少なくとも１つは、第１のテーブルに対して処理を行い、かつ、第２のテーブルに対して読出、更新または削除を行う、順序制約付きプロセスである
システムフロー図作成装置において、
前記テーブルに対する前記プロセスの処理の内容を表す情報を含むＣＲＵＤマトリックス表を取得する機能と、
前記順序制約付きプロセスについて、前記第１のテーブルまたは前記第２のテーブルに対して作成を行う作成プロセスが存在する場合、その順序制約付きプロセスの実行順序を、その作成プロセスよりも後とする機能と、
同一のテーブルに対して、読出または更新を行う画面と、読出または更新を行うバッチプログラムとの双方が存在する場合には、その画面の実行順序をそのバッチプログラムよりも先とする機能と
を備える、システムフロー図作成装置。
【請求項２】
プロセスとテーブルとの関係を表す情報を含むシステムフロー図を作成する、システムフロー図作成装置であって、
前記プロセスは、画面またはバッチプログラムであることができ、
前記システムフロー図は、前記プロセスの実行順序を表す情報を含み、
前記プロセスのうち少なくとも１つは、第１のテーブルに対して処理を行い、かつ、第２のテーブルに対して読出、更新または削除を行う、順序制約付きプロセスである
システムフロー図作成装置において、
前記テーブルに対する前記プロセスの処理の内容を表す情報を含むＣＲＵＤマトリックス表を取得する機能と、
前記順序制約付きプロセスについて、前記第１のテーブルまたは前記第２のテーブルに対して作成を行う作成プロセスが存在する場合、その順序制約付きプロセスの実行順序を、その作成プロセスよりも後とする機能と、
バッチプログラムが、いずれかのテーブルに対して作成、更新または削除を行っており、かつ、いずれのテーブルに対しても読出を行わない場合に、そのバッチプログラムが、外部からデータを取得することを表す情報を、前記システムフロー図に追加する機能と、
バッチプログラムが、いずれかのテーブルに対して読出を行っている場合に、そのバッチプログラムが外部へデータを提供することを表す情報を、前記システムフロー図に追加する機能と
を備える、システムフロー図作成装置。
【請求項３】
前記システムフロー図は、
外部から取得される前記データおよび外部へ提供される前記データを表す情報と、
前記プロセスと、外部から取得される前記データとの関連を表す情報と、
前記プロセスと、外部へ提供される前記データとの関連を表す情報と、
をさらに含む、請求項２に記載のシステムフロー図作成装置。
【請求項４】
前記システムフロー図作成装置は、画面の実行順序を表す情報を含む画面遷移図に基づいて、実行順序を決定する機能を備える、請求項１〜３のいずれか一項に記載のシステムフロー図作成装置。
【請求項５】
前記システムフロー図作成装置は、バッチプログラムの実行時刻を定義するバッチスケジュールに基づいて、実行順序を決定する機能を備える、請求項１〜４のいずれか一項に記載のシステムフロー図作成装置。
【請求項６】
コンピュータを、請求項１〜５のいずれか一項に記載のシステムフロー図作成装置として動作させる、システムフロー図作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムフロー図作成装置およびシステムフロー図作成プログラムに関する。
【背景技術】
【０００２】
ＩＴシステムの新規開発でなく、既存ＩＴシステムの移行作業を行う場合には、現行システムの分析が重要である。現行システムの分析は、データベースとプロセス（オンライン処理やバッチ処理）との関係を表すシステムフロー図に基づいて行われる。システムフロー図（または類似する図）を利用する方法の例は、特許文献１に記載される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平７−２４９０２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、システムフロー図を作成する際に、各プロセスの実行順序を正確に特定することが困難であるという問題があった。たとえば特許文献１の方法ではＣＲＵＤマトリックス表（業務分析表）から業務フローを作成しているが、業務の実行順序を特定することができない。
【０００５】
この発明は、このような問題点を解決するためになされたものであり、システムフローに表される各プロセスの実行順序をより正確に特定できるシステムフロー図作成装置およびシステムフロー図作成プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述の問題点を解決するため、この発明に係るシステムフロー図作成装置は、
プロセスとテーブルとの関係を表す情報を含むシステムフロー図を作成する、システムフロー図作成装置であって、
前記プロセスは、画面またはバッチプログラムであることができ、
前記システムフロー図は、前記プロセスの実行順序を表す情報を含み、
前記プロセスのうち少なくとも１つは、第１のテーブルに対して処理を行い、かつ、第２のテーブルに対して読出、更新または削除を行う、順序制約付きプロセスである
システムフロー図作成装置において、
前記テーブルに対する前記プロセスの処理の内容を表す情報を含むＣＲＵＤマトリックス表を取得する機能と、
前記順序制約付きプロセスについて、前記第１のテーブルまたは前記第２のテーブルに対して作成を行う作成プロセスが存在する場合、その順序制約付きプロセスの実行順序を、その作成プロセスよりも後とする機能と、
同一のテーブルに対して、読出または更新を行う画面と、読出または更新を行うバッチプログラムとの双方が存在する場合には、その画面の実行順序をそのバッチプログラムよりも先とする機能と
を備える。
また、この発明に係るシステムフロー図作成装置は、
プロセスとテーブルとの関係を表す情報を含むシステムフロー図を作成する、システムフロー図作成装置であって、
前記プロセスは、画面またはバッチプログラムであることができ、
前記システムフロー図は、前記プロセスの実行順序を表す情報を含み、
前記プロセスのうち少なくとも１つは、第１のテーブルに対して処理を行い、かつ、第２のテーブルに対して読出、更新または削除を行う、順序制約付きプロセスである
システムフロー図作成装置において、
前記テーブルに対する前記プロセスの処理の内容を表す情報を含むＣＲＵＤマトリックス表を取得する機能と、
前記順序制約付きプロセスについて、前記第１のテーブルまたは前記第２のテーブルに対して作成を行う作成プロセスが存在する場合、その順序制約付きプロセスの実行順序を、その作成プロセスよりも後とする機能と、
バッチプログラムが、いずれかのテーブルに対して作成、更新または削除を行っており、かつ、いずれのテーブルに対しても読出を行わない場合に、そのバッチプログラムが、外部からデータを取得することを表す情報を、前記システムフロー図に追加する機能と、
バッチプログラムが、いずれかのテーブルに対して読出を行っている場合に、そのバッチプログラムが外部へデータを提供することを表す情報を、前記システムフロー図に追加する機能と
を備える。
【０００７】
前記システムフロー図作成装置は、画面の実行順序を表す情報を含む画面遷移図に基づいて、実行順序を決定する機能を備えてもよい。
前記システムフロー図作成装置は、バッチプログラムの実行時刻を定義するバッチスケジュールに基づいて、実行順序を決定する機能を備えてもよい。
前記システムフロー図は、
外部から取得される前記データおよび外部へ提供される前記データを表す情報と、
前記プロセスと、外部から取得される前記データとの関連を表す情報と、
前記プロセスと、外部へ提供される前記データとの関連を表す情報と、
をさらに含んでもよい。
【０００８】
また、この発明に係るシステムフロー図作成プログラムは、コンピュータを上述のシステムフロー図作成装置として動作させる。
【発明の効果】
【０００９】
この発明に係るシステムフロー図作成装置およびシステムフロー図作成プログラムによれば、複数のテーブルに対する処理内容に基づいて順序制約付きプロセスを特定し、順序制約付きプロセスと他のプロセスとの間の順序関係を決定するので、各プロセスの実行順序をより正確に特定することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態１に係る作成装置の構成を示す図である。
【図２】システムフロー図の例である。
【図３】画面遷移図の例である。
【図４】画面単位のＣＲＵＤマトリックス表の例である。
【図５】バッチプログラム単位のＣＲＵＤマトリックス表の例である。
【図６】バッチスケジュールの例である。
【図７】機能分類表の例である。
【図８】ＣＲＵＤマトリックスのまとめ表の例である。
【図９】作成装置の処理の流れを表すフローチャートの一部である。
【図１０】作成装置の処理の流れを表すフローチャートの一部である。
【図１１】作成装置によって決定された実行順序の例である。
【図１２】各プロセスに関連する外部データの例である。
【発明を実施するための形態】
【００１１】
以下、この発明の実施の形態を添付図面に基づいて説明する。
実施の形態１．
図１に、本発明の実施の形態１に係る作成装置１０の構成を示す。作成装置１０は、ＣＲＵＤマトリックス表に基づいてシステムフロー図を作成する、システムフロー図作成装置である。
【００１２】
作成装置１０は周知のコンピュータとしての構成を含み、演算を行う演算手段２０と、情報を格納する記憶手段３０とを備える。演算手段２０はＣＰＵ（中央処理装置）を含み、記憶手段３０は半導体メモリおよびＨＤＤ（ハードディスクドライブ）等の記憶媒体を含む。
【００１３】
また、とくに図示しないが、作成装置１０は、入力手段、出力手段およびネットワークインタフェースを備える。入力手段は、使用者が情報を入力するために用いる手段であり、たとえばマウスやキーボード等である。出力手段は、使用者に対して情報を出力する手段であり、たとえば液晶ディスプレイ等の表示装置であるが、プリンタ等の印刷装置であってもよい。
【００１４】
記憶手段３０は、システムフロー図Ｄ１、画面遷移図Ｄ２、画面単位ＣＲＵＤ表Ｄ３、バッチ単位ＣＲＵＤ表Ｄ４、バッチスケジュールＤ５、および機能分類表Ｄ６を格納することができる。また、記憶手段３０は、図示しないシステムフロー図作成プログラムを格納しており、コンピュータ（とくに演算手段）は、このシステムフロー図作成プログラムを実行することにより、本発明に係る作成装置１０として機能する。
【００１５】
図２に、作成装置１０が作成するシステムフロー図Ｄ１の例を示す。システムフロー図Ｄ１は、データを表す記号と、プロセスを表す記号とを含む。また、これらの記号には、データまたはプロセスを表す名称が関連付けられる。
【００１６】
データは、システムフロー内で作成または読み出されるデータであって表形式で表されるテーブルと、テーブル以外のデータ（外部データ）とを含む。外部データは、外部から取得されるデータと、外部に提供されるデータと含む。データマークＦ１およびテーブルマークＦ３はデータを表す記号の例であり、とくにデータマークＦ１は外部データを表し、テーブルマークＦ３はテーブルを表す。
【００１７】
プロセスとは、たとえばデータの処理（たとえば入出力）を行うためにコンピュータが実現可能な機能またはそのような機能をコンピュータに実行させるプログラムを意味する。プロセスは画面およびバッチプログラムを含む。ここで、「画面」とは、データの処理を行うためのインタフェースとして機能する画面を含む。たとえばオンラインプログラムのインタフェース画面がこれに該当する。したがって、本明細書の「画面」は、「オンラインプログラム」に置き換えることも可能である。なお、１つの画面に関連して複数のオンラインプログラムが実行されてもよい（その場合、オンラインプログラムのうち一部のみが個別の画面との対応関係を有するものであってもよい）。
【００１８】
バッチマークＦ２および画面マークＦ４はプロセスを表す記号の例である。とくに、バッチマークＦ２はバッチプログラムを表す記号の例であり、画面マークＦ４は画面を表す記号の例である。これら以外の種類のプロセスを表す記号を含んでもよい。
【００１９】
システムフロー図Ｄ１は、プロセスとデータとの関係を表す記号を含む。この関係は、あるプロセスによってあるデータの処理が実行されるという関係を含む。入出力マークＦ５は、プロセスとデータとの関係を表す記号の例（この例では実線の矢印）である。図２の例では、「マスタデータ取込み」プロセスが「マスタデータ」という外部データを読み込み、「マスタテーブル」というテーブルを書き出す（たとえばレコードの作成または更新を行う）ことが表されている。
【００２０】
システムフロー図Ｄ１は、複数のプロセス間の関係を表す記号を含む。この関係は、プロセス間でデータが引き継がれるという関係を含む。この関係は、たとえば「呼び出し」関係と呼ばれる。呼び出しマークＦ６は、複数のプロセス間の関係を表す記号の例（この例では破線の矢印）である。図２の例では、「発注データ更新」画面が「発注一覧表示」画面から呼び出されることが示されており、これは、「発注一覧表示」画面において扱われたデータ（たとえば表示された発注レコードの一覧のうち１つ）が、「発注データ更新」画面に引き継がれることを意味する。
【００２１】
また、複数のプロセス間の関係は、各プロセスの実行順序を含む。実行順序マークＦ７は実行順序を表す記号の例であり、本実施形態では各プロセスについて１つ定義される。
たとえば、実行順序マークＦ７が「２」である「発注データ取込み」バッチプログラムは、実行順序マークＦ７が「１」である「マスタデータ取込み」バッチプログラムの後、かつ実行順序マークＦ７が「３」である「発注一覧表示」画面の前に実行される。
【００２２】
このように、システムフロー図Ｄ１は、画面を表す情報（図形）と、バッチプログラムを表す情報（図形）と、テーブルを表す情報（図形）と、外部データを表す情報（図形）と、外部データおよびバッチプログラムの関連を表す情報（矢印）と、バッチプログラムおよびテーブルの関連を表す情報（矢印）と、テーブルおよび画面の関連を表す情報（矢印）とを含む。
なお、システムフロー図Ｄ１における各記号は、作成装置１０の記憶手段３０中では記号そのものではなく、記号の種類を表す情報（数値等）として表されてもよい。
【００２３】
図３に、画面遷移図Ｄ２の構成の例を示す。画面遷移図Ｄ２は、作成装置１０の使用者があらかじめ準備し、記憶手段３０に格納しておくことができる。画面遷移図Ｄ２は、使用者自身が作成してもよいし、公知の分析ツール等を用いてオンラインプログラムのソースファイルに基づき作成装置１０または他のコンピュータが作成してもよい。
【００２４】
画面遷移図Ｄ２は、画面間の関係を表す情報を含む。画面間の関係は、階層的関係を含む。図３の例では、ＴＯＰ階層（０階層目）、１階層目および２階層目が定義されており、上位階層の画面と、これに対応する下位階層の画面とが関連付けられている。
【００２５】
この画面間の関係は、「呼び出し」関係である。すなわち、「発注データ更新」画面および「発注データ削除」画面は、「発注一覧表示」画面から呼び出されることが示されている。たとえば、「発注一覧表示」画面において扱われたデータが、「発注データ更新」画面に引き継がれて更新され、また、「発注一覧表示」画面において扱われたデータが、「発注データ削除」画面に引き継がれて削除される。
また、次の画面へのデータの引き継ぎは、データ全部を引き継ぐ、データのキーだけ引き継ぐ（この場合次の画面で改めて、データのキーに基づき、必要なデータを取得する）等、任意の方法が選択できる。
【００２６】
この画面遷移図は、複数の画面間での相対的な実行順序を表す情報を含む。たとえば、上下の階層の画面間に「呼び出し」関係がある場合、上位階層の画面は下位階層の画面よりも先に実行される。図３の例では、「発注一覧表示」画面は、「発注データ更新」画面および「発注データ削除」よりも先に実行される。画面遷移図は、たとえばオペレータによる画面操作の手順に沿った画面の遷移パターンを表すものと解釈することができる。
【００２７】
図４および図５に、画面単位ＣＲＵＤ表Ｄ３およびバッチ単位ＣＲＵＤ表Ｄ４の構成の例を示す。これらは、プロセスとテーブルとの関係を表す情報を含むＣＲＵＤマトリックス表である。本実施形態では、画面単位ＣＲＵＤ表Ｄ３が画面に対応し、バッチ単位ＣＲＵＤ表Ｄ４がバッチプログラムに対応する。
【００２８】
画面単位ＣＲＵＤ表Ｄ３およびバッチ単位ＣＲＵＤ表Ｄ４は、作成装置１０の使用者があらかじめ準備し、記憶手段３０に格納しておくことができる。画面単位ＣＲＵＤ表Ｄ３およびバッチ単位ＣＲＵＤ表Ｄ４は、使用者自身が作成してもよいし、公知の分析ツール等を用いてオンラインプログラムおよびバッチプログラムのソースファイルに基づき作成装置１０または他のコンピュータが作成してもよい。
【００２９】
ＣＲＵＤマトリックス表は、公知の方法で定義可能である。図４および図５の例では、データの作成を「Ｃ」で、データの読み出し（以下、「読出」と言う）を「Ｒ」で、データの更新を「Ｕ」で、データの削除を「Ｄ」で、それぞれ表す。たとえば、図４の「発注データ削除」画面は、「発注テーブル」に対して削除を行う機能と、「請求テーブル」に対して読出を行う機能とを備える。なお、「作成」とは、テーブルの新規作成のみならず、既存のテーブルに対するデータの追加（たとえば新規レコードの作成）を含む。また、「削除」とは、テーブル全体の削除のみならず、一部のデータのみの削除（たとえばレコード単位の削除）を含む。
【００３０】
プロセスのうち少なくとも１つは、あるテーブル（第１のテーブル）に対して何らかの処理（たとえば、作成、読出、更新または削除）を行い、かつ、別のテーブル（第２のテーブル）に対して読出、更新または削除を行うプロセスであってもよい。このようなプロセスは、複数のテーブルに関連するプロセス間の処理順序を制約する。このようなプロセスを、本明細書では「順序制約付きプロセス」と呼ぶ。
【００３１】
図４の例では、「発注一覧表示」画面、「発注データ削除」画面、および「請求データ修正」画面がこれに相当する。たとえば、「発注データ削除」画面は、「発注テーブル」に対して処理（この例では削除）を行い、かつ「請求テーブル」に対して読出を行うので、その実行順序は、「発注テーブル」に対して作成を行うプロセスや、「請求テーブル」に対して作成を行うプロセスよりも後とする必要がある。
なお「削除」処理は、データを直接削除する場合とデータの削除フラグを付与する（削除処理は、別途行う）場合とがある。
【００３２】
図６に、バッチスケジュールＤ５の構成の例を示す。バッチスケジュールＤ５は、各プロセスが実行される順序（たとえばバッチプログラム間での相対的な実行順序）を表す情報を含む。図６の例では、各バッチプログラムの実行時刻を定義することにより、各バッチプログラムの順序を表している。バッチスケジュールＤ５は、作成装置１０の使用者があらかじめ準備し、記憶手段３０に格納しておくことができる。
またバッチスケジュールＤ５には、実行時刻を定義せずに実行順序を定義するように構成してもよい。その場合、バッチスケジュールＤ５は、起動する順番を記述した「ジョブネット」に類した構成となる。
【００３３】
図７に、機能分類表Ｄ６の構成の例を示す。機能分類表Ｄ６は、プロセスを機能ごとに分類した表であり、１つ以上の機能分類について、それぞれ１つ以上のプロセスが関連付けられている。機能分類表Ｄ６は、作成装置１０の使用者があらかじめ準備し、記憶手段３０に格納しておくことができる。
なお機能分類表Ｄ６は、レコード（行）の先頭から実行順序を定めるように作成ルールを有する。図７の例示では、レコードの先頭から機能分類「マスタ管理」、「発注」、「発注確認」、「出荷」、「請求」の順番で実行順序１〜５が定められている。
【００３４】
図１には示さないが、作成装置１０は各表をまとめたデータを作成または記憶してもよい。
図８に、このようなまとめ表Ｄ７の構成の例を示す。まとめ表Ｄ７は、画面単位ＣＲＵＤ表Ｄ３、バッチ単位ＣＲＵＤ表Ｄ４、バッチスケジュールＤ５および機能分類表Ｄ６の情報をまとめたものである。各機能分類について実行順序が決定されプロセスが分類されるとともに、分類された各プロセスについてプロセスの種類（画面またはバッチ）とＣＲＵＤマトリックスとが示されている。
【００３５】
機能分類の実行順序は、バッチスケジュールＤ５および機能分類表Ｄ６に基づいて決定可能である。たとえば、バッチスケジュールＤ５に基づいて、各機能分類内で最も早く実行されるバッチプログラムを特定し、特定された各バッチプログラムの相対的な実行順序をそのまま各機能分類の実行順序とすることができる。
【００３６】
以上のように構成される作成装置１０の動作を以下に説明する。
図９および図１０に、作成装置１０が各プロセスの実行順序を決定する処理の流れを表すフローチャートの例を示す。このフローチャートは、機能分類ごとに実行される。
【００３７】
以下では、便宜上、まとめ表Ｄ７を参照して説明を行う。ただし、図４〜図７に示す表には、まとめ表Ｄ７と実質的に同内容の情報が含まれているので、まとめ表Ｄ７を実際に作成する必要はない。作成装置１０は、まとめ表Ｄ７のようなデータを、各表に基づいて事前に作成し記憶していてもよいし、必要になる都度各表に基づいて生成してもよいし、作成しなくともよい。いずれにしても、作成装置１０は、各テーブルに対する各プロセスの処理の内容を表す情報を含むＣＲＵＤマトリックス表に相当する情報を取得することができる。
なお、まとめ表Ｄ７の「機能分類の実行順序」は、機能分類表Ｄ６の作成ルールを明示的に示している。
【００３８】
まず作成装置１０は処理対象の機能分類を決定する（ステップＳ１）。たとえば、まとめ表Ｄ７に基づき、未処理の機能分類のうち最も早い実行順序を有するものを選択する。
次に、作成装置１０は、処理中の機能分類内に、いずれかのテーブルに対してデータ作成を行うプロセスがあるか否かを判定する（ステップＳ２）。作成を行うプロセスがない場合、処理は後述のステップＳ１１に進む。
【００３９】
作成を行うプロセスがある場合、作成装置１０は、後続のステップＳ３〜Ｓ７を、該当するプロセスについて実行する。ここで、作成を行うプロセスが複数存在する場合には、ステップＳ３〜Ｓ７は各プロセスについて実行される。また、各プロセスによる作成処理の対象となるテーブルを「第１のテーブル」と呼ぶ。
【００４０】
作成装置１０は、まず、そのプロセスが別のテーブル（「第２のテーブル」と呼ぶ）のデータを読出、更新または削除するか否かを判定する（ステップＳ３）。すなわち、そのプロセスが順序制約付きプロセスであるか否かを判定する。そのプロセスが順序制約付きプロセスである場合、作成装置１０は、第２のテーブルに対してデータの作成を行うプロセス（「作成プロセス」と呼ぶ）の実行順序がすでに決まっているか否かを判定する（ステップＳ４）。なお、１つの順序制約付きプロセスに対して複数の作成プロセスが存在する場合があるが、その場合には、すべての作成プロセスの順序が決まっているか否かを判定する。
【００４１】
ステップＳ３においてそのプロセスが順序制約付きプロセスでない場合や、ステップＳ４において作成プロセスの実行順序がすでに決まっている場合には、作成装置１０は、そのプロセスに、処理中の機能分類内で最先の実行順序を付与する（ステップＳ５）。
【００４２】
同一の機能分類内の複数のプロセスについてステップＳ５が実行される場合、各プロセス間の相対的実行順序は適宜決定可能である。たとえば、プロセスの種類（画面またはバッチプログラム）に基づき、画面の実行順序がバッチプログラムより先となるよう決定してもよい。また、画面遷移図Ｄ２に基づき、上位階層の画面の実行順序が下位階層の画面より先となるよう決定してもよく、同一階層内では図中での出現順序に沿って実行順序を決定してもよい。また、バッチスケジュールＤ５に表される実行順序に沿って決定してもよい。また、画面単位ＣＲＵＤ表Ｄ３、バッチ単位ＣＲＵＤ表Ｄ４および機能分類表Ｄ６に定義される順序に沿って決定してもよい。以下、本明細書の記載のみでは実行順序が一意に確定できない場合であっても、上記のような基準に基づき、各プロセス間の相対的実行順序は適宜決定可能である。
【００４３】
ステップＳ４において作成プロセスの実行順序がまだ決まっていない場合（作成プロセスが複数存在する場合には、決まっていない作成プロセスがまだ残っている場合）には、作成装置１０は、そのプロセスの処理をいったん保留し、図９および図１０の処理全体を、別の未処理の機能分類について再帰的に実行する（ステップＳ６）。この別の機能分類の処理中に、保留していたプロセスに対応する作成プロセスの実行順序が決定された場合、作成装置１０は処理を再開し、保留していたプロセスに、最後の作成プロセスの次となる実行順序を付与する（ステップＳ７）。このように、作成装置１０は、順序制約付きプロセスについて、第２のテーブルに対して作成を行う作成プロセスが存在する場合、その順序制約付きプロセスの実行順序を、対応する作成プロセスよりも後とする。
【００４４】
この作成プロセスに対する実行順序は、たとえば、その作成プロセスを含む機能分類に対するステップＳ５またはＳ７の処理において決定される。したがって、特に図示しないが、ステップＳ５およびＳ７の後に、順序が付与されたプロセスが他の保留中のプロセスに対応する作成プロセスに該当するか否かの判定処理を設けておけば、この判定結果に基づき、保留中のプロセスに関する処理を再開することができる。
【００４５】
以上のようにして、第１のテーブルに対して作成を行うプロセスについての処理は、ステップＳ２、Ｓ５またはＳ７において終了する。次に、作成装置１０は、処理中の機能分類内で、まだ実行順序が決定されていないプロセスのうち、いずれかのテーブル（第１のテーブル）のデータを読出または更新するプロセスがあるか否かを判定する（ステップＳ１１）。テーブルを読出するプロセスも更新するプロセスもない場合、処理は後述のステップＳ２１に進む。
【００４６】
テーブルを読出または更新するプロセスがある場合、作成装置１０は、後続のステップＳ１２〜Ｓ１６を、該当するプロセスについて実行する。ここで、テーブルを読出または更新するプロセスが複数存在する場合には、ステップＳ１２〜Ｓ１６は各プロセスについて実行される。
【００４７】
作成装置１０は、まず、そのプロセスが別のテーブル（第２のテーブル）のデータを読出、更新または削除するか否かを判定する（ステップＳ１２）。すなわち、そのプロセスが順序制約付きプロセスであるか否かを判定する。そのプロセスが順序制約付きプロセスである場合、作成装置１０は、第１のテーブルまたは第２のテーブルに対してデータの作成を行うプロセス（作成プロセス）の実行順序がすでに決まっているか否かを判定する（ステップＳ１３）。なお、上述のステップＳ４と同様に、１つの順序制約付きプロセスに対して複数の作成プロセスが存在する場合があるが、その場合には、すべての作成プロセスの順序が決まっているか否かを判定する。
【００４８】
まとめ表Ｄ７の例では、「発注一覧表示」画面、「発注データ削除」画面、「請求データ修正」画面および「請求確認データ抽出」バッチプログラムが順序制約付きプロセスに該当する。
【００４９】
たとえば「発注データ削除」画面に対しては、「請求テーブル」が第１のテーブルであり、「発注テーブル」が第２のテーブルとなる。また、「請求テーブル」に対して作成を行う「請求データ取込み」バッチプログラムと、「発注テーブル」に対して作成を行う「発注データ取込み」バッチプログラムとが、「発注データ削除」画面に対応する作成プロセスとなる。ここで、順序制約付きプロセスである「発注データ削除」の処理時点では、作成プロセスの１つである「請求データ取込み」の実行順序はまだ決定されておらず、処理はステップＳ１５に分岐することになる。
【００５０】
ステップＳ１２においてそのプロセスが順序制約付きプロセスでない場合や、ステップＳ１３において作成プロセスの実行順序がすでに決まっている場合には、作成装置１０は、そのプロセスに、現在決定されている最後の実行順序の次の実行順序を付与する（ステップＳ１４）。
【００５１】
ここで、同一の機能分類内の複数のプロセスについてステップＳ１４が実行される場合、各プロセス間の相対的実行順序は、上述のステップＳ５と同様に適宜決定可能である。たとえば、プロセスの種類（画面またはバッチプログラム）に基づき、画面の実行順序がバッチプログラムより先となるよう決定してもよい。とくに、同一のテーブルに対して、読出または更新を行う画面と、読出または更新を行うバッチプログラムとの双方が存在する場合には、その画面の実行順序をそのバッチプログラムよりも先としてもよい。
【００５２】
また、画面遷移図Ｄ２に基づき、上位階層の画面の実行順序が下位階層の画面より先となるよう決定してもよく、同一階層内では図中での出現順序に沿って実行順序を決定してもよい。また、バッチスケジュールＤ５に表される実行順序に沿って決定してもよい。また、画面単位ＣＲＵＤ表Ｄ３、バッチ単位ＣＲＵＤ表Ｄ４および機能分類表Ｄ６に定義される順序に沿って決定してもよい。
【００５３】
特に図示しないが、ステップＳ１４およびＳ１６の後に、順序が付与されたプロセスが他の保留中のプロセスに対応する作成プロセスに該当するか否かの判定処理を設け、この判定結果に基づき、保留中のプロセスに関する処理を再開してもよい。
【００５４】
ステップＳ１３において作成プロセスの実行順序がまだ決まっていない場合には、作成装置１０は、そのプロセスの処理をいったん保留し、図９および図１０の処理全体を、別の未処理の機能分類について再帰的に実行する（ステップＳ１５）。この別の機能分類の処理中に、保留していたプロセスに対応する作成プロセスの実行順序が決定された場合、作成装置１０は処理を再開し、保留していたプロセスに、最後の作成プロセスの次となる実行順序を付与する（ステップＳ１６）。このように、作成装置１０は、順序制約付きプロセスについて、第１のテーブルまたは第２のテーブルに対して作成を行う作成プロセスが存在する場合、その順序制約付きプロセスの実行順序を、対応する作成プロセスよりも後とする。
【００５５】
以上のようにして、第１のテーブルを読出または更新するプロセスについての処理は、ステップＳ１１、Ｓ１４またはＳ１６において終了する。次に、作成装置１０は、処理中の機能分類内で、まだ実行順序が決定されていないプロセスのうち、いずれかのテーブルのデータに対して削除を行うプロセスがあるか否かを判定する（ステップＳ２１）。削除を行うプロセスがない場合、作成装置１０は処理を終了し、未処理の他の機能分類があれば新たにその機能分類について図９および図１０の処理を開始する。
【００５６】
テーブルに対して削除を行うプロセスがある場合、作成装置１０は、後続のステップＳ２２〜Ｓ２６を、該当するプロセスについて実行する。ここで、削除を行うプロセスが複数存在する場合には、ステップＳ２２〜Ｓ２６は各プロセスについて実行される。
【００５７】
作成装置１０は、まず、そのプロセスが別のテーブル（第２のテーブル）のデータを読出、更新または削除するか否かを判定する（ステップＳ２２）。すなわち、そのプロセスが順序制約付きプロセスであるか否かを判定する。そのプロセスが順序制約付きプロセスである場合、作成装置１０は、第１のテーブルまたは第２のテーブルに対してデータの作成を行うプロセス（作成プロセス）の実行順序がすでに決まっているか否かを判定する（ステップＳ２３）。なお、上述のステップＳ４と同様に、１つの順序制約付きプロセスに対して複数の作成プロセスが存在する場合があるが、その場合には、すべての作成プロセスの順序が決まっているか否かを判定する。
【００５８】
ステップＳ２２においてそのプロセスが順序制約付きプロセスでない場合や、ステップＳ２３において作成プロセスの実行順序がすでに決まっている場合には、作成装置１０は、そのプロセスに、処理中の機能分類内で最後の実行順序を付与する（ステップＳ２４）。ここで、同一の機能分類内の複数のプロセスについてステップＳ２４が実行される場合、各プロセス間の相対的実行順序は、上述のステップＳ５およびＳ１４と同様に適宜決定可能である。
【００５９】
ステップＳ２３において作成プロセスの実行順序がまだ決まっていない場合には、作成装置１０は、そのプロセスの処理をいったん保留し、図９および図１０の処理全体を、別の未処理の機能分類について再帰的に実行する（ステップＳ２５）。この別の機能分類の処理中に、保留していたプロセスに対応する作成プロセスの実行順序が決定された場合、作成装置１０は処理を再開し、保留していたプロセスに、最後の作成プロセスの次となる実行順序を付与する（ステップＳ２６）。このように、作成装置１０は、順序制約付きプロセスについて、第１のテーブルまたは第２のテーブルに対して作成を行う作成プロセスが存在する場合、その順序制約付きプロセスの実行順序を、対応する作成プロセスよりも後とする。
【００６０】
特に図示しないが、ステップＳ２４およびＳ２６の後に、順序が付与されたプロセスが他の保留中のプロセスに対応する作成プロセスに該当するか否かの判定処理を設け、この判定結果に基づき、保留中のプロセスに関する処理を再開してもよい。
【００６１】
図１１に、各プロセスに対して決定された実行順序を示す。この実行順序は、以下に説明する順に決定される。
まず、機能分類の実行順序が最先である「マスタ管理」機能分類について処理が実行される。「マスタデータ取込み」プロセスは順序制約付きプロセスではないので保留されず、ステップＳ５において最初の実行順序「１」が付与される。
【００６２】
次に、「発注」機能分類について処理が実行される。作成を行うプロセスは「発注データ取込み」のみであり、これは順序制約付きプロセスではないので保留されず、ステップＳ５において機能分類内で最先の実行順序「２」が付与される。読出または更新を行うプロセスのうち、「発注一覧表示」画面および「発注データ削除」画面が順序制約付きプロセスに該当する。「発注一覧表示」画面については、作成プロセスの実行順序がすべて決定されているので保留されないが、「発注データ削除」画面については、作成プロセスの１つである「請求データ取込み」の実行順序が未定なので保留される。読出または更新を行うプロセスのうち、「発注一覧表示」画面を含む保留されない３つのプロセスについて、ステップＳ１４において実行順序「３」「４」「５」が付与される。
【００６３】
次に、「発注確認」機能分類について処理が実行される。「発注確認データ取込み」プロセスは順序制約付きプロセスではないので保留されず、次の実行順序「６」が付与される。
【００６４】
次に、「出荷」機能分類について処理が実行される。「出荷データ取込み」プロセスは順序制約付きプロセスではないので保留されず、次の実行順序「７」が付与される。
【００６５】
次に、「請求」機能分類について処理が実行される。作成を行うプロセスは「請求データ取込み」のみであり、これは順序制約付きプロセスではないので保留されず、次の実行順序「８」が付与される。これによって、それまで保留されていた順序制約付きプロセス「発注データ削除」に対応する作成プロセスの実行順序がすべて決定されたことになるので、「発注データ削除」の処理が再開され、ステップＳ１６において次の実行順序「９」が付与される。「請求」機能分類には、読出または更新を行うプロセスが３つ存在するが、これらのうち、「請求一覧表示」は順序制約付きプロセスではないので保留されず、また、「請求データ修正」および「請求データ確認抽出」は順序制約付きプロセスであるが、すべての作成プロセスの実行順序がすでに決定されているので保留されない。したがって、これら３つのプロセスについて、ステップＳ１４において実行順序「１０」「１１」「１２」が付与される。
【００６６】
以上のようにして、作成装置１０は各プロセスの実行順序を決定する。
各プロセスの実行順序を決定した後、作成装置１０は、システムフロー図に追加すべき外部データに関する情報を決定する。外部データとは、プロセスが入出力を行うデータのうちテーブル以外のものを指す。外部データは、たとえば、システムフロー図外の手段からプロセスが取得するデータと、システムフロー図外の手段に対してプロセスが提供するデータとを含む。外部データは、システムフロー図によって表されるシステムの、外部に対する入出力データであるということができる。
【００６７】
図１２に、各プロセスに関連する外部データの例を示す。図１２は、外部データの存在またはその種類を表す情報を決定するための規則として、次の２点を用いた場合の例である。
‐バッチプログラムが、いずれかのテーブルに対して作成、更新または削除を行っており、かつ、いずれのテーブルに対しても読出を行わない場合に、そのバッチプログラムが外部からデータを取得していることを表す情報を、システムフロー図Ｄ１に追加する。
‐バッチプログラムが、いずれかのテーブルに対して読出を行っている場合に、そのバッチプログラムが外部へデータを提供していることを表す情報を、システムフロー図Ｄ１に追加する。
【００６８】
なお、外部データの存在またはその処理種類を決定するための規則は、上記以外のものを用いてもよい。また、外部データの名称はどのように決定してもよく、たとえばバッチプログラムの名称に基づいて決定してもよい。たとえば図２のように、バッチプログラムの名称から「取込み」「抽出」等の所定のキーワードを削除したものを用いてもよい。
【００６９】
以上のようにして、各プロセスの実行順序および外部データの内容を決定した後、作成装置１０はシステムフロー図Ｄ１を作成する。
図２は作成装置１０によって作成されるシステムフロー図Ｄ１の例である。作成装置１０は、次のような手順でシステムフロー図Ｄ１を作成する。
【００７０】
１．テーブルを配置する。各テーブルは、テーブルマークＦ３によって表される。複数のテーブルが存在する場合には、各テーブルに対して作成処理を行うプロセスの実行順序が先であるものから順に、上（または第１の方向、以下同じ）から下（または第１の方向と反対の方向、以下同じ）に向けて配置する。
【００７１】
２．画面を配置する。各画面は、画面マークＦ４によって表される。各画面には実行順序マークＦ７が関連付けられる。画面は、テーブルの右側（または第１の側、以下同じ）に配置される。複数の画面が存在する場合には、実行順序が先であるものから順に、上から下に向けて配置する。
【００７２】
３．バッチプログラムを配置する。各画面は、バッチマークＦ２によって表される。各バッチプログラムには実行順序マークＦ７が関連付けられる。バッチプログラムは、テーブルの左側（または第１の側と反対の側、以下同じ）に配置される。複数のバッチプログラムが存在する場合には、実行順序が先であるものから順に、上から下に向けて配置する。
【００７３】
４．外部データを配置する。外部データは、それぞれ関連するバッチプログラムの左側に配置される。各外部データは、データマークＦ１によって表される。
【００７４】
５．プロセスとデータ（テーブルおよび外部データ）との関連を表す記号を配置する。これはたとえば入出力マークＦ５によって表される。入出力マークＦ５はたとえば次のように配置される。プロセスが提供する外部データについては、プロセスから外部データに向けて矢印を配置する。プロセスが取得する外部データについては、外部データからプロセスに向けて矢印を配置する。プロセスが作成、更新または削除するテーブルについては、プロセスからテーブルに向けて矢印を配置する。プロセスが読出するテーブル（ただし、作成、更新または削除も行うものについては除く）については、テーブルからプロセスに向けて矢印を配置する。
【００７５】
６．画面間の関係を表す記号を配置する。これはたとえば呼び出しマークＦ６によって表される。呼び出しマークＦ６は、画面遷移図Ｄ２において階層的に関連付けられている上下階層の画面の対について、下位階層の画面から上位階層の画面に向けて矢印を配置する。
【００７６】
すべての要素が配置された後、作成装置１０は各マークの表示位置を調整してもよい。たとえば、入出力マークＦ５や呼び出しマークＦ６の経路を考慮し、なるべく交差せず互いに離れた位置となるよう調整してもよい。このような調整は公知技術に基づいて適宜実施可能である。
【００７７】
作成装置１０は、このようにして作成されたシステムフロー図Ｄ１を、電子データの形式で記憶手段３０に記憶し、または外部の記憶媒体や通信ネットワークに出力することができる。また、作成装置１０は、表示装置や印刷装置によってシステムフロー図Ｄ１を出力することができる。
【００７８】
実施の形態１において、次のような変形を施すことができる。
外部データに関する処理を行わないものであってもよい。たとえば、システムフロー図Ｄ１においてデータマークＦ１（およびデータマークＦ１に関連付けられた入出力マークＦ５）を表示しないものであってもよい。
【００７９】
各プロセスの実行順序は、一意に特定する必要はない。順序制約付きプロセスと作成プロセスとの間の先後関係さえ特定できていれば、他のプロセスとの先後関係は特定しないものであってもよい。たとえば、同一の機能分類内の複数のプロセスについてステップＳ１４が実行される場合、各プロセス間の相対的実行順序を決定しないものとしてもよい。この場合、たとえば図１１において、「発注一覧表示」、「発注データ更新」および「発注データ抽出」という３つのプロセスは、実行順序が互いに同一となる。
【００８０】
また、各プロセスの実行順序を表す情報（実行順序マークＦ７）は、数値に限らない。プロセス間の矢印等によって示してもよい。また、数値や矢印等の記号によらず表示してもよい。たとえば実施の形態１ではシステムフロー図中の表示位置によっても実行順序（上から下）を示している。
【００８１】
バッチスケジュールＤ５は、バッチプログラム単位のものでなくともよい。たとえば機能分類単位のスケジュールであってもよい。
【符号の説明】
【００８２】
１０  作成装置（システムフロー図作成装置）、Ｄ１  システムフロー図、Ｄ２  画面遷移図、Ｄ３  画面単位ＣＲＵＤ表（ＣＲＵＤマトリックス表）、Ｄ４  バッチ単位ＣＲＵＤ表（ＣＲＵＤマトリックス表）、Ｄ５  バッチスケジュール、Ｄ６  機能分類表、Ｆ１  データマーク、Ｆ２  バッチマーク、Ｆ３  テーブルマーク、Ｆ４  画面マーク、Ｆ５  入出力マーク、Ｆ６  呼び出しマーク、Ｆ７  実行順序マーク。
【要約】
【課題】システムフローに表される各プロセスの実行順序をより正確に特定できる、システムフロー図作成装置およびシステムフロー図作成プログラムを提供する。
【解決手段】システムフロー図Ｄ１は、プロセス（画面またはバッチプログラム）の実行順序を表す情報を含む。プロセスのうち少なくとも１つは、第１のテーブルに対して処理を行い、かつ、第２のテーブルに対して読出、更新または削除を行う、順序制約付きプロセスである。作成装置１０は、順序制約付きプロセスについて、第１のテーブルまたは第２のテーブルに対して作成を行う作成プロセスが存在する場合、その順序制約付きプロセスの実行順序を、その作成プロセスよりも後とする。
【選択図】図２【図１】
0005603467.tif 000002
【図２】
0005603467.tif 000003
【図３】
0005603467.tif 000004
【図４】
0005603467.tif 000005
【図５】
0005603467.tif 000006
【図６】
0005603467.tif 000007
【図７】
0005603467.tif 000008
【図８】
0005603467.tif 000009
【図９】
0005603467.tif 000010
【図１０】
0005603467.tif 000011
【図１１】
0005603467.tif 000012
【図１２】
0005603467.tif 000013