(57)【特許請求の範囲】
【請求項１】
プログラム仕様を表現するために作成されたブロック線図を階層化するとともに、各階層ごとのブロック線図に対してプログラム仕様書への掲載対象とするか否かの識別情報を予め付加して登録するブロック線図登録手段と、前記プログラム仕様書を作成する場合には、前記ブロック線図登録手段に登録されているブロック線図の内から識別情報が付加された各階層のブロック線図のみを抽出する掲載対象ブロック線図抽出手段と、この掲載対象ブロック線図抽出手段で抽出されたブロック線図をプログラム仕様書に掲載すべきブロック線図掲載ページとして作成するブロック線図掲載ページ作成手段と、を備えることを特徴とするプログラム仕様書自動生成システム。
【請求項２】
前記ブロック線図で用いられるデータの属性を示すデータラベルを抽出するデータラベル抽出手段と、この手段で抽出されたデータラベルの種類ごとにデータ一覧を作成し、このデータ一覧をプログラム仕様書に添付するデータ一覧リストページとして作成するデータ一覧リストページ作成手段と、を備えることを特徴とする請求項１記載のプログラム仕様書自動生成システム。
【請求項３】
前記ブロック線図掲載ページ作成手段は、前記ブロック線図を掲載する用紙サイズを規定する複数のテンプレートの内から、元のブロック線図の縦横比および縦横の各実寸法に応じて、ブロック線図を掲載するのに最適のテンプレートを選択する最適テンプレート選択手段を備えることを特徴とする請求項１または請求項２に記載のプログラム仕様書自動生成システム。
【請求項４】
前記最適テンプレート選択手段で選択されたテンプレートにブロック線図を貼り付ける場合に、貼り付け先のテンプレートの用紙サイズに適応するようにブロック線図の拡大縮小倍率を設定するブロック線図拡大縮小手段を備えることを特徴とする請求項３記載のプログラム仕様書自動生成システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラム仕様書を自動生成するプログラム仕様書自動生成システムに関する。
【０００２】
【従来の技術】
一般に、コンピュータを用いた制御装置は、制御プログラムに基づいて動作するが、このような制御プログラムをメーカ側で作成した後にユーザ側に提供する場合には、その制御プログラムがどのような内容のものであるかをプログラム仕様書によって提示することが必要となる。
【０００３】
ここで、プログラム仕様書が制御プログラムを記述する高級言語（たとえばＣ言語など）や、これらをコンパイルした機械語などでそのまま記述されている場合には、ユーザが直接見ても理解し難い。したがって、これらのプログラム仕様書をユーザに提示する場合には、制御プログラムの内容をでき得る限り図示的に表現して理解を促すようにすることが好ましい。
【０００４】
ところが、従来のプログラム仕様書は、このような図示的な表現ではなく、高級言語や機械語を文字で表現したものをそのまま掲載しているために、制御プログラムの内容の理解をユーザに促すことが不十分であった。また、このようなプログラム仕様書を作成する場合、従来は、手作業にてデータ一覧リストを編集する必要があり、このような手作業による編集過程では、取り扱うデータ量が多いので、固有情報の取り違えや転記ミス、あるいは抜け等の不具合が発生する。また、このような人為的なミスを無くすためには多大の労力を要する。
【０００５】
そこで、従来、たとえば特開平１１−１１０２０３号公報においては、プログラム仕様書において、制御プログラムの内容を図示的に表現することでユーザの理解を促すようにした技術が提示されている。
【０００６】
すなわち、この従来公報に開示されている技術では、ＣＡＤシステムで作画した制御設計仕様書内のブロック線図に記載されている制御論理を構成する絵記号を、プログラム仕様書で使用されるブロック線図を表すための絵記号に自動的に変換できるようにしている。これにより、制御設計仕様書からプログラム仕様書を作成する場合の省力化や人為ミスの低減を図っている。
【０００７】
【発明が解決しようとする課題】
しかしながら、上記の従来公報では、制御設計仕様を表現するブロック線図から、プログラム仕様書に掲載するブロック線図への絵記号の変換技術が提示されているだけであって、ブロック線図を含むプログラム仕様書をユーザができるだけ理解し易く、かつ見やすい形式でもって自動的に作成するかといった具体的な技術までは開示されていない。
【０００８】
したがって、従来は、プログラム仕様書において制御プログラムの内容がブロック線図などを用いて図示的に表現されている場合であっても、各々のブロック線図がうまく整理された状態で掲載されている訳ではないので、ユーザーにとっては依然としてプログラム仕様書に掲載されている制御プログラムの内容を把握するのが難しかった。
【０００９】
また、各々のブロック線図がうまく整理された状態で掲載されているプログラム仕様書を作成するためには、依然として手間がかかり、作業効率を低下させていた。
【００１０】
本発明は、上記の課題を解決するためになされたもので、ブロック線図を含むプログラム仕様書をユーザが極力理解し易く、かつ見やすい形式でもって自動的に作成することができるようにして、ユーザーに対して制御プログラムの内容の理解を促すことができ、しかも、プログラム仕様書を作成する際の作業効率を向上させたプログラム仕様書自動生成システムを提供することを課題とする。
【００１１】
【課題を解決するための手段】
本発明は、上記の目的を達成するために、次のようにしている。
【００１２】
すなわち、請求項１記載の発明に係るプログラム仕様書自動生成システムは、プログラム仕様を表現するために作成されたブロック線図を階層化するとともに、各階層ごとのブロック線図に対してプログラム仕様書への掲載対象とするか否かの識別情報を予め付加して登録するブロック線図登録手段と、プログラム仕様書を作成する場合には、前記ブロック線図登録手段に登録されているブロック線図の内から識別情報が付加された各階層のブロック線図のみを抽出する掲載対象ブロック線図抽出手段と、この掲載対象ブロック線図抽出手段で抽出されたブロック線図をプログラム仕様書に掲載すべきブロック線図掲載ページとして作成するブロック線図掲載ページ作成手段と、を備えることを特徴としている。
【００１３】
請求項２記載の発明に係るプログラム仕様書自動生成システムは、請求項１記載の発明の構成において、前記ブロック線図で用いられるデータの属性を示すデータラベルを抽出するデータラベル抽出手段と、このデータラベル抽出手段で抽出されたデータラベルの種類ごとにデータ一覧を作成し、このデータ一覧をプログラム仕様書に添付するデータ一覧リストページを作成するデータ一覧リスト作成手段と、を備えることを特徴としている。
【００１４】
請求項３記載の発明に係るプログラム仕様書自動生成システムは、請求項１または請求項２記載の発明の構成において、前記ブロック線図掲載ページ作成手段は、前記ブロック線図を掲載する用紙サイズを規定する複数のテンプレートの内から、元のブロック線図の縦横比および縦横の各実寸法に応じて、ブロック線図を掲載するのに最適のテンプレートを選択する最適テンプレート選択手段を備えることを特徴としている。
【００１５】
請求項４記載の発明に係るプログラム仕様書自動生成システムは、請求項３記載の発明の構成において、前記最適テンプレート選択手段で選択されたテンプレートにブロック線図を貼り付ける場合に、貼り付け先のテンプレートの用紙サイズに適応するようにブロック線図の拡大縮小倍率を設定するブロック線図拡大縮小手段を備えることを特徴としている。
【００１６】
【発明の実施の形態】
実施の形態１．
図１は本発明の実施の形態に係るプログラム仕様書自動生成システムを搭載したプログラム開発支援装置の構成を示すブロック図である。
【００１７】
この実施の形態において、プログラム仕様書自動生成システムを搭載したプログラム開発支援装置１は、ＣＰＵ２、キーボード３、メモリ４、通信回路５、ディスプレイ６、マウスなどのポインティングデバイス７、およびハードディスク８を主体に構成されている。
【００１８】
なお、本発明のプログラム仕様書自動生成システムは、プログラム開発支援装置１に対して、プログラム仕様書自動作成機能を備えた所定のソフトウェアをインストールすることにより、図４に示すような機能構成として構築される。また、図４におけるブロック線図登録手段４１は、上記のＣＰＵ２およびハードディスク８に相当する。
【００１９】
ここでは、まず、プログラム開発支援装置１により、プログラム仕様書に掲載するブロック線図を予め作成する手順について説明する。
プログラム開発を行うプログラム開発担当者（以下、単に開発担当者という）は、プログラム開発支援装置１上でブロック線図作成機能を利用して、制御プログラムの処理内容を記述した、たとえば図２に示すようなブロック線図を作成する。
【００２０】
このようなブロック線図を作成する場合、画面上に準備された図３に示すような各種の基本ブロック１２を選択し、これらの各基本ブロック１２を単純に組み合わせる場合だけでなく、基本ブロック１２の組み合わせのみで構成される最下層のブロック線図を一つのブラックボックスとして簡略化し、このようにブラックボックス化したブロック（以下、これをサブシステムブロックと称する）に対して入出力信号の条件を追加したり、新たに基本ブロック１２あるいは別のサブシステムブロックを追加したり組み合わせることによって、階層が一つ上のブロック線図を作成することができる。このように、ブロック線図を上層へ積み重ねて作成することでプログラム全体を構成することができる。
【００２１】
図２に示した多層構造のブロック線図は、この例では最上位階層Ａ内に、２つのサブシステムブロックＢ，Ｃが存在する構成となっている。したがって、各階層を示すツリー図は、図５に示すようになる。そして、このようにして作成されたブロック線図は、ＣＰＵ２により電子ファイルとしてハードディスク８に格納される。
【００２２】
なお、図２に示したようなブロック線図の作成画面において、ポインティングデバイス７を用いてサブシステムブロックＢ，Ｃ上にカーソルを合わせてダブルクリックするとディスプレイ６上に下層のブロック線図が現れ、この下層のブロック線図を選択中にエスケープキーを押すと、一つ上層のブロック線図Ａがディスプレイ６上に表示される。
【００２３】
ところで、図５に示したようにブロック線図が多層構造で構成されているとき、プログラム仕様書には全ての階層におけるブロック線図を全て掲載するよりも、サブシステムブロックとしてそのまま残して掲載する方がユーザにとって制御プログラムの理解を促す上で有利となる場合がある。
【００２４】
たとえば、図２に示した例において、開発担当者は、上位階層Ａのブロック線図と下位階層Ｂのブロック線図とはプログラム仕様書に掲載する必要があるが、下位階層Ｃのブロック線図はプログラム仕様書に掲載する必要がないと判断することがある。このような場合、開発担当者は、これらの各階層Ａ，Ｂ，Ｃに存在するブロック線図の内からプログラム仕様書への掲載対象となるブロック線図を選択する必要がある。
【００２５】
このため、図２に示したようなブロック線図の作成画面には、各階層Ａ，Ｂ，Ｃのブロック線図をプログラム仕様書への掲載対象とするか否かの識別情報を予め登録するための特別なブロック（以下、このブロックを情報ブロックと称する）１４が確保されている。この情報ブロック１４はプログラム論理記述には直接関与せず、ソースコードで言うところのコメント文的な存在である。
【００２６】
開発担当者は、ブロック線図の作成時、あるいはプログラム仕様書自動生成システムを稼動する前に、情報ブロック１４を用いて各階層Ａ，Ｂ，Ｃのブロック線図をプログラム仕様書への掲載対象とするか否かの識別情報を次のようにして設定する。
【００２７】
まず、あるブロック線図の作成画面に表示されている情報ブロック１４をポインティングデバイス７でダブルクリックすると、図６（ａ）に示すようなチェックボックス７１を含むウィンドウ（図示せず）がディスプレイ６上に表示される。このチェックボックス７１内へのチェックの有無により当該階層のブロック線図をプログラム仕様書へ掲載するか否かの情報とする。
【００２８】
すなわち、図６（ｂ）に示すように、チェックボックス７１内にチェックマーク７２がある場合には、当該階層のブロック線図はプログラム仕様書への掲載対象として扱われ、図６（ａ）に示すようにチェックボックス７１内にチェックマークがない場合には、当該階層のブロック線図はプログラム仕様書への掲載対象としては扱われない。
【００２９】
プログラム開発支援装置１は、各階層のブロック線図についてプログラム仕様書への掲載対象とするか否かの情報が入力されるたびにツリー図を構築する。したがって、開発担当者が、プログラム仕様書自動生成システムを稼動する前に、このツリー図を確認したい場合、ディスプレイ６には、たとえば図７に示すようなツリー図を示すウィンドウ９１を表示させることができる。
【００３０】
このツリー図においても、各ブロック線図の階層Ａ，Ｂ，Ｃの左にチェックボックス９２が表示され、このチェックボックス９２にチェックマーク９３が入ったものがプログラム仕様書の掲載対象として選択されていることを示している。図７では、ツリー図の上位階層Ａと下位階層Ｂのチェックボックス９２にチェックマーク９３が入っているのでこれらのブロック線図は仕様書掲載対象として選択されており、下位階層Ｃのチェックボックス９２は空なのでこのブロック線図は仕様書掲載対象から外されている。
【００３１】
このように、図７に示すようなツリー図を示すウィンドウ９１が表示されている時点でも、ブロック線図ごとにプログラム仕様書への掲載の指定、あるいは掲載の解除を行うことができる。たとえば、階層Ｂのチェックボックス９２をポインティングデバイス７でクリックしてチェックマーク９３を消去すると、階層Ｂのブロック線図の仕様書掲載指定が解除される。また、階層Ｃの空のチェックボックス９２をポインティングデバイス７でクリックしてチェックマーク９３を入れると、階層Ｃのブロック線図が仕様書掲載対象として指定される。
【００３２】
また、図７に示すウィンドウ９１内の下端部には、「全選択」ボタン９５、「全解除」ボタン９６、および「初期化」ボタン９７がそれぞれ設けられている。そして、「全選択」ボタン９５をクリックすると、全階層のブロック線図がプログラム仕様書への掲載対象として一括指定される。また、「全解除」ボタン９６をクリックすると、プログラム仕様書への掲載対象として指定されているブロック線図が一括して解除される。また、「初期化」ボタン９７をクリックすると、図７に示すウィンドウ９１を表示した時点での元の状態に戻される。これらのボタン９５〜９７を活用することで、プログラム仕様書へのブロック線図の掲載対象を指定する際に柔軟性を持たせることができる。
【００３３】
このようにして、開発担当者は、プログラム開発支援装置１により、ブロック線図を作成して制御プログラムのシミュレーションを繰り返し行い、作成した制御プログラムの論理的妥当性を検証してプログラム開発を完了させるとともに、上記のようにプログラム仕様書へ掲載すべきブロック線図を予め選択してこれらのデータをブロック線図登録手段４１を構成するハードディスク８に登録する。そして、上記の手順が終わると、開発担当者は、プログラム仕様書自動生成システムによりプログラム仕様書の作成に着手する。
【００３４】
次に、本発明のプログラム仕様書自動生成システム（以下、単に本システムという）について、プログラム仕様書を自動生成する場合の処理手順を、本システムの構成とともに説明する。
【００３５】
プログラム仕様書を自動生成するには、概略、次の処理が行われる。
▲１▼  プログラム仕様書自動生成システムの起動
▲２▼  プログラム仕様書に掲載する各階層のブロック線図の抽出
▲３▼  プログラム仕様書へブロック線図を掲載する用紙の向きの選択、用紙サイズの選択、およびブロック線図の拡大縮小
▲４▼  データラベルの一覧リストの作成
▲５▼  ページ統合および仕様書生成
【００３６】
ここで、本システムでは、上記の各処理▲１▼〜▲５▼を実行するための操作用の画面が個別に確保されているが、これらの各画面はディスプレイ６に一括して表示されるのではなく、上記の▲１▼〜▲５▼の各処理を１ステップずつ進めるごとに各処理に対応した操作用の画面が順次ディスプレイ６上に表示されるようになっている。
【００３７】
つまり、開発担当者が各画面上で必要な設定をキーボード３、またはポインティングデバイス７を用いて入力した後、画面上に設けられたボタン「次へ」（図示しない）をポインティングデバイス７でクリックする。すると、仕様書自動生成ステップを一つ前に進めて、現在の表示画面が消去された後、次の操作用の画面が表示される。このように対話形式によるメニューを用いることで、操作を誤ることなく確実かつ最小限の手順で上記の▲１▼〜▲５▼の各処理を実行すことができる。
【００３８】
以下、上記の▲１▼〜▲５▼の各処理について説明する。
▲１▼  プログラム仕様書自動生成システムの起動
開発担当者は、プログラム開発支援装置に搭載されている本システムを起動する。すると、ディスプレイ６上には、本システムの画面（図示しない）が現れる。そこで、開発担当者は、必要な値を各項目に入力して画面上に設けられたボタン「次へ」（図示しない）をキーボード３、またはポインティングデバイス７を用いてクリックする。
【００３９】
▲２▼  プログラム仕様書に掲載する各階層のブロック線図の抽出
上記のようにして画面上の「次へ」ボタンがクリックされると、図４に示す掲載対象ブロック線図抽出手段４２は、ブロック線図登録手段４１に予め登録されている全階層のブロック線図の内から、図６（ｂ）に示したように、チェックボックス７１内にチェックマーク７２が入った各階層のブロック線図のみを検索してこれを抽出する。
【００４０】
▲３▼  プログラム仕様書へブロック線図を掲載する用紙の向きの選択、用紙サイズの選択、およびブロック線図の拡大縮小
【００４１】
＜テンプレート方向「縦」「横」の選択＞
本システムでは、仕様書記述台帳として図８に示すようなテンプレートを具備している。テンプレートは一種類でなく、たとえば、Ａ４縦、Ａ４横、Ａ３縦、Ａ３横などの各サイズのものがある。これらのテンプレート群５０の実体は電子ファイルである。
【００４２】
最適テンプレート選択手段５１は、まず、掲載対象ブロック線図抽出手段４２で抽出されるプログラム仕様書の掲載対象となる各ブロック線図について、その縦寸法および横寸法を勘案して、上記の各テンプレート群５０（Ａ４縦、Ａ４横、Ａ３縦、Ａ３横等）の内からテンプレート用紙の方向（「縦」か「横」か）を決定する。
【００４３】
たとえば、いま図２に示すようなブロック線図がプログラム仕様書の掲載対象となっているとしたとき、このブロック線図の縦方向の実寸法をＢＬ［ｃｍ］、横方向の実寸法をＢＷ［ｃｍ］とする。
【００４４】
このとき、ブロック線図の縦横比率が一定値αを上回るとき、すなわち（ＢＬ／ＢＷ）＞αのときには、最適テンプレート選択手段５１は、用紙方向が「縦」のテンプレートを選択する。具体的にはＡ４縦またはＡ３縦の２つのテンプレートを選択する。通常はα＝１に設定されるが、開発担当者が値を変更することも可能である。
【００４５】
逆に、ブロック線図の縦横比率が一定値α以下のとき、すなわち（ＢＬ／ＢＷ）≦αのときには、用紙方向が「横」のテンプレートを選択する。具体的にはＡ４横またはＡ３横の２つのテンプレートを選択する。
【００４６】
＜テンプレート用紙サイズの選択＞
こうして、最適テンプレート選択手段５１によりテンプレート方向が「縦」か「横」のいずれかが選択されると、引き続いて、最適テンプレート選択手段５１は、テンプレートの用紙サイズを選択する。
【００４７】
すなわち、たとえば「縦」方向のテンプレート（ここでは、Ａ４縦あるいはＡ３縦のテンプレート）が既に選択されているとする。このとき、図８に示すように、Ａ４縦テンプレートの図形貼付け可能領域における縦方向の実寸法をＡ４Ｌ［ｃｍ］、横方向の実寸法をＡ４Ｗ［ｃｍ］とする。また、Ａ３縦テンプレートの図形貼付け可能領域における縦方向の実寸法をＡ３Ｌ［ｃｍ］、横方向の実寸法をＡ３Ｗ［ｃｍ］とする。
【００４８】
掲載対象となるブロック線図は、一例として図２に示すものとすると、最適テンプレート選択手段５１は、Ａ４縦テンプレートの縦方向の実寸法（Ａ４Ｌ）［ｃｍ］と、ブロック線図の縦方向の実寸法ＢＬ［ｃｍ］の比（Ａ４Ｌ）／（ＢＬ）、およびＡ３縦テンプレートの縦方向の実寸法Ａ３Ｌ［ｃｍ］と、掲載対象ブロック線図の縦方向の実寸法ＢＬ［ｃｍ］の比（Ａ３Ｌ）／（ＢＬ）をそれぞれ求める。
【００４９】
そして、比（Ａ４Ｌ）／（ＢＬ）と比（Ａ３Ｌ）／（ＢＬ）との内の何れの値が１に近いかを比較する。１を基準としたのは、ブロック線図を仕様書に掲載する際、これらの比に基づいて元のブロック線図を拡大または縮小してテンプレートに掲載するが、元のブロック線図実寸法になるべく近い寸法で掲載するためである。
【００５０】
最適テンプレート選択手段５１は、上記の比較の結果、たとえば比（Ａ４Ｌ）／（ＢＬ）が比（Ａ３Ｌ）／（ＢＬ）に比べより１に近いと判定すれば、Ａ４縦テンプレートをブロック線図の貼付先テンプレートとして選定する。また、逆に比（Ａ３Ｌ）／（ＢＬ）が比（Ａ４Ｌ）／（ＢＬ）に比べより１に近いと判定すれば、Ａ３縦テンプレートをブロック線図貼付先のテンプレートとして選定する。
【００５１】
＜ブロック線図貼付時の拡大縮小倍率の設定＞
上記のようにして、最適テンプレート選択手段５１によってブロック線図貼付先の最適なテンプレートの方向とサイズとが選択されると、この情報がブロック線図掲載ページ作成手段５２に送られる。ブロック線図掲載ページ作成手段５２のブロック線図拡大縮小手段５３は、選択されたテンプレートにブロック線図を貼り付ける際の、拡大縮小倍率を求める。
【００５２】
すなわち、いま、ブロック線図の貼付先テンプレートとして、たとえば図８に示すようなＡ４縦テンプレートが選択されているとする。ブロック線図拡大縮小手段５３は、このＡ４縦テンプレートの図形掲載可能領域の縦方向の実寸法（Ａ４Ｌ）［ｃｍ］と、図２に示した掲載対象となるブロック線図の縦方向の実寸法ＢＬ［ｃｍ］との比（Ａ４Ｌ）／（ＢＬ）、およびＡ４縦テンプレートの図形掲載可能領域の横方向の実寸法Ａ４Ｗ［ｃｍ］と図２のブロック線図の横方向の実寸法ＢＷ［ｃｍ］との比（Ａ４Ｗ）／（ＢＷ）をそれぞれ計算する。
【００５３】
そして、これらの各比（Ａ４Ｌ）／（ＢＬ），および（Ａ４Ｗ）／（ＢＷ）の内、何れの値が１に近いかを比較する。１を基準としたのは、元のブロック線図を実寸法になるべく近い寸法で仕様書に掲載するためである。
【００５４】
この比較の結果、縦方向の比（Ａ４Ｌ）／（ＢＬ）が横方向の比（Ａ４Ｗ）／（ＢＷ）に比べより１に近いと判定すれば、ブロック線図拡大縮小手段５３は、縦方向の比（Ａ４Ｌ）／（ＢＬ）をブロック線図貼付け時の倍率として採用し、ブロック線図の縦方向、横方向を共に（Ａ４Ｌ）／（ＢＬ）倍する。次に、ブロック線図貼付手段５４は、選択されたＡ４縦テンプレートに拡大あるいは縮小後のブロック線図を貼り付ける。
【００５５】
逆に、横方向の比（Ａ４Ｗ）／（ＢＷ）が縦方向の比（Ａ４Ｌ）／（ＢＬ）に比べより１に近いと判定すれば、ブロック線図拡大縮小手段５７は、横方向の比（Ａ４Ｗ）／（ＢＷ）をブロック線図貼付け時の倍率として採用し、ブロック線図の縦方向、横方向を共に（Ａ４Ｗ）／（ＢＷ）倍する。次に、ブロック線図貼付手段５４は、Ａ４縦テンプレートに拡大または縮小後のブロック線図を貼り付ける。
【００５６】
上記いずれの場合もブロック線図の縦横比は保たれたままであるから、貼り付けられたブロック線図が元のブロック線図に比べて縦方向、あるいは横方向に間延びしているといった印象を与えることはない。
【００５７】
＜貼付けブロック線図拡大倍率の上限設定＞
ブロック線図拡大縮小手段５３は、上記のようにしてブロック線図をテンプレートに貼付ける際に拡大縮小倍率を設定するが、掲載対象となるブロック線図の縦方向あるいは横方向の各実寸法ＢＬ，ＢＷ［ｃｍ］がテンプレートの図形貼付け可能領域の縦方向または横方向の実寸法に比べて小さ過ぎる場合には、過剰に拡大されたブロック線図がテンプレート上に掲載されることになる。
【００５８】
これを回避するため、ブロック線図拡大縮小手段５３は、テンプレートに貼付けるブロック線図の拡大倍率の許容上限値βを予め設定しておき、選択されたテンプレートの図形掲載可能領域の縦横の各実寸法と、掲載するブロック線図の縦横の各実寸法の比率が許容上限値βを上回るときは、ブロック線図の拡大倍率を許容上限値βに設定する。
【００５９】
たとえば、貼付け先テンプレートとして図８に示すＡ４縦テンプレートが選択されているとした場合、（Ａ４Ｌ）／（ＢＬ）＞βかつ（Ａ４Ｗ）／（ＢＷ）＞βが成立しているときは、ブロック線図拡大縮小手段５３は、ブロック線図の拡大倍率を許容上限値βに設定してＡ４縦テンプレートに貼り付ける。
【００６０】
なお、拡大倍率の許容上限値βは、本システムの開発担当者が任意に設定することができる。また、ここではテンプレートに貼り付けるブロック線図の拡大倍率の許容上限値βを設定する場合について説明したが、ブロック線図縮小倍率の下限は特に設定しない。
【００６１】
このようにして、テンプレートに拡大または縮小後のブロック線図を選択されたテンプレートに貼り付けることにより、プログラム仕様書を構成するブロック線図掲載ページ５５が作成される。
【００６２】
▲４▼  データラベルの一覧リスト作成
上記のブロック線図掲載ページ５５の作成と平行して、データラベル抽出手段４３は、プログラム仕様書の掲載対象となっているブロック線図内を検索して各ブロック線図で使用されているデータの属性を示すデータラベルを抽出する。
【００６３】
すなわち、データラベルには、ブロック線図中で用いられる変数、定数、補間マップ等の各データの属性を示す固有の情報（たとえば、各データの型、単位、説明テキストなど）や、固定小数点データを使用しているならば各データのＬＳＢ（１ｂｉｔ当りの物理量）、オフセット量等の情報がある。そこで、データラベル抽出部４３は、これらのデータラベルをブロック線図から抽出する。
【００６４】
次に、データ一覧リストページ作成手段４５は、上記のデータラベル抽出手段４３で抽出されたデータラベル名をキーとして、各データが有する固有の情報を検索エンジン（図示しない）を用いて、データ固有情報データベース４６内から検索する。この検索エンジンは、本システム固有の機能ではなく、本システムを含む上位の環境、すなわちプログラム開発支援環境内で共用できるようになっている。
【００６５】
この検索の結果、データ固有情報データベース４６内に該当するラベルが見つかった場合は、データラベルの種類ごとに区分されたデータ一覧リスト掲載ページ４７を作成する。この場合のデータ一覧リスト掲載ページ４７の一例を図９に示す。データ一覧リストは、変数、定数、補間マップ等の各データの種類ごとに区分されて型、単位、説明テキスト、さらに固定小数点データならばＬＳＢ（１ｂｉｔ当たりの物理量）、オフセット量などが記述される。
【００６６】
また、検索の結果、データ固有情報データベース４６内に該当するラベルが見当たらなかった場合は、データラベル種類数分のリスト枠は作成するものの、各欄内にはその旨を示すマークとしてたとえば「！！！」を記述し、該当データラベルがデータ固有情報データベース４６内に存在しなかったことを示す。
【００６７】
このようにして、データラベル抽出手段４３およびデータ一覧リストページ作成手段４５により、プログラム仕様書の掲載対象となる各階層のブロック線図内で使用されているデータの一覧リスト掲載ページ４７が作成される。
【００６８】
なお、プログラム仕様を記述したブロック線図が大規模となる場合、ブロック線図中で使用されるデータラベル数も膨大になる。したがって、その際には、本システムのデータラベル索引ページ作成手段４８は、どのデータラベルがどのブロック線図内で使用されているかの検索を用意にするため、データラベルをキーとする索引ページ４９を作成する。
【００６９】
▲５▼  ページ統合および仕様書生成
本システムのページ統合手段５８は、上記のようにして作成されたブロック線図掲載ページ５５およびデータ一覧リスト掲載ページ４７、さらには必要に応じて作成されるデータラベル索引ページ４９（これらは全て電子文書ファイルである）を統合する。なお、データ一覧リスト掲載ページ４７は関係するブロック線図掲載ページの直後に挿入する。
【００７０】
さらに、ページ統合手段５８は、上記の各ページ４７，４９，５２に対して、さらに開発担当者が予め用意する仕様書カバーページ５６、プログラム仕様を日本語等の自然言語テキストで解説したページ５７を加えて最終的なプログラム仕様書５９として完成させる。この場合、自動生成されるプログラム仕様書５９の実体は電子文書ファイルであるが、必要に応じて紙に出力することも可能である。
【００７１】
【発明の効果】
（１）  請求項１記載の発明に係るプログラム仕様書自動生成システムによれば、ブロック線図を含むプログラム仕様書がユーザにとって極力理解し易く、かつ見やすい形式でもって自動的に生成されるため、ユーザーに対して制御プログラムの内容の理解を容易に促すことができる。しかも、複数のブロック線図の内からプログラム仕様書への掲載対象とするブロック線図のみを識別情報にもとづいて選別抽出することができるため、プログラム仕様書を作成する際の作業効率を向上させることができる。
【００７２】
（２）  請求項２記載の発明に係るプログラム仕様書自動生成システムによれば、請求項１記載の発明の効果に加えて、プログラム仕様書に掲載するブロック線図内で使用される変数、定数等のデータラベル名を抽出してデータ種別毎にデータ一覧リストとして自動的に作成されるので、それらのデータラベルを使用しているブロック線図との視覚的対比を行い易くなる。
【００７３】
（３）  請求項３記載の発明に係るプログラム仕様書自動生成システムによれば、請求項１または請求項２記載の発明の効果に加えて、ブロック線図を複数の定型サイズのテンプレートへの貼り付けるのに際し、元のブロック線図の縦横比、縦横実寸法に応じて最適のテンプレートが自動的に選択される。したがって、各ブロック線図を用紙に収める最適のテンプレートを容易に決定することができる。
【００７４】
（４）  請求項４記載の発明に係るプログラム仕様書自動生成システムによれば、請求項３記載の発明の効果に加えて、ブロック線図のテンプレートへの貼付けに際し、貼付け先テンプレートのサイズを勘案してブロック線図の最適な拡大、縮小倍率を自動的に決定するので、各々のブロック線図がうまく整理された状態で各テンプレート内に掲載されるようになる。このため、プログラム仕様書に掲載されるブロック線図が見易いものとなる。
【図面の簡単な説明】
【図１】  本発明の実施の形態に係るプログラム仕様書自動生成システムを搭載したプログラム開発支援装置の構成を示すブロック図である。
【図２】  プログラム仕様書の掲載対象となるブロック線図の一例を示す説明図である。
【図３】  ブロック線図に使用する各種の基本ブロックを画面表示した状態の一例を示す図である。
【図４】  本発明の実施の形態に係るプログラム仕様書自動生成システムの構成を処理手順に沿って示す説明図である。
【図５】  ブロック線図の階層構造の一例を示す説明図である。
【図６】  階層構造の多数のブロック線図について、プログラム仕様書への掲載対象とするか否かの識別情報を設定する場合のチェックボックスを示す図である。
【図７】  ブロック線図の階層構造であるツリー図を画面に表示させた場合の一例を示す図である。
【図８】  ブロック線図を貼付けるテンプレートの一例を示す図である。
【図９】  プログラム仕様書のブロック線図掲載ページに付加されるデータ一覧リスト掲載ページの一例を示す図である。
【符号の説明】
１  プログラム開発支援装置、４１  ブロック線図登録手段、４２  掲載対象ブロック線図抽出手段、４３  データラベル抽出手段、４５  データ一覧リストページ作成手段、５１  最適テンプレート選択手段、５２  ブロック線図掲載ページ作成手段、５３  ブロック線図拡大縮小手段。
【図１】
0003754655.tif 000002
【図２】
0003754655.tif 000003
【図３】
0003754655.tif 000004
【図４】
0003754655.tif 000005
【図５】
0003754655.tif 000006
【図６】
0003754655.tif 000007
【図７】
0003754655.tif 000008
【図８】
0003754655.tif 000009
【図９】
0003754655.tif 000010