(57)【要約】      （修正有）【課題】プログラム及びプログラムが利用する資産のバージョンの不整合を発見できるソフトウェア開発支援装置、方法及びプログラムを提供する。【解決手段】ソフトウェア開発支援装置は、ファイル、項目、項目のバージョンを定義したファイル仕様を、そのバージョンとともに出力する（１０１）。プログラムの処理内容、使用する項目、項目のバージョン、を定義したプログラム仕様を、そのバージョンとともに出力する（１０６）。ファイル仕様に従って、ファイル入出力部品を生成し、そのバージョンと使用する項目のバージョンとを保持させて出力する（１１２）。プログラム仕様に従って、プログラムを生成し、そのバージョンと使用する項目のバージョンとを保持させて出力する（１１６）。ファイル仕様、プログラム仕様、ファイル入出力部品、プログラムのバージョン、これらが含み又は使用する項目のバージョンを比較して整合性を検査する（１３２）。【選択図】図１
2015097029.tif 000002
【特許請求の範囲】
【請求項１】
プログラムによるデータの入出力の対象となるファイルであって、１以上の項目を含む前記ファイルについて、前記項目と、前記項目のバージョンと、を定義してファイル仕様とし、前記ファイル仕様のバージョンとともに出力するファイル定義手段と、
前記プログラムの処理内容と、前記プログラムが使用する前記項目と、前記項目の前記バージョンと、を定義してプログラム仕様とし、前記プログラム仕様のバージョンとともに出力するプログラム定義手段と、
前記ファイル仕様に従って、前記ファイルから前記項目を入出力するためのファイル入出力部品のソースコードまたは実行形式ファイルを生成し、前記ファイル入出力部品のバージョンと、前記ファイル入出力部品が使用する前記項目の前記バージョンと、保持させて出力するファイル入出力部品生成手段と、
前記プログラム仕様に従って、前記プログラムのソースコードまたは実行形式ファイルを生成し、前記プログラムのバージョンと、前記プログラムが使用する前記項目の前記バージョンと、を保持させて出力するプログラム生成手段と、
前記ファイル仕様、前記プログラム仕様、前記ファイル入出力部品、前記プログラムについて、これらのバージョン及びこれらがそれぞれ含み又は使用する前記項目の前記バージョンのうちいずれか２以上を比較することにより、整合性を検査する検査手段と、を含む
ソフトウェア開発支援装置。
【請求項２】
前記検査手段は、前記プログラム仕様の前記バージョン、前記プログラムの前記ソースコードの前記バージョン、前記プログラムの前記実行形式ファイルの前記バージョン、及び実際の運用環境に配置されている前記プログラムの前記実行形式ファイルのバージョン、のいずれか２以上を比較する
請求項１記載のソフトウェア開発支援装置。
【請求項３】
前記検査手段は、前記プログラム仕様が使用する前記項目の前記バージョン、前記ファイル入出力部品の前記ソースコードが使用する前記項目の前記バージョン、前記ファイル入出力部品の前記実行形式ファイルが使用する前記項目の前記バージョン、及び実際の運用環境に配置されている前記ファイル入出力部品の前記実行形式ファイルの前記バージョン、のいずれか２以上を比較することにより、
請求項１又は２記載のソフトウェア開発支援装置。
【請求項４】
前記検査手段は、前記ファイル仕様の前記バージョン、前記前記ファイル入出力部品の前記ソースコードの前記バージョン、前記ファイル入出力部品の前記実行形式ファイルの前記バージョン、実際の運用環境に配置されている前記ファイル入出力部品の前記実行形式ファイルの前記バージョン、及び前記運用環境に配置されている前記ファイルのバージョン、のいずれか２以上を比較することにより、
請求項１乃至３いずれか１項記載のソフトウェア開発支援装置。
【請求項５】
前記検査手段は、前記ファイル仕様の前記項目の前記バージョン、前記前記ファイル入出力部品の前記ソースコードの前記項目の前記バージョン、前記ファイル入出力部品の前記実行形式ファイルの前記項目の前記バージョン、実際の運用環境に配置されている前記ファイル入出力部品の前記実行形式ファイルの前記項目の前記バージョン、及び前記運用環境に配置されている前記ファイルの前記項目のバージョン、のいずれか２以上を比較することにより、
請求項１乃至４いずれか１項記載のソフトウェア開発支援装置。
【請求項６】
関係表を保持するリポジトリをさらに有し、
前記ファイル定義手段は、前記ファイル仕様の前記バージョンと、前記項目の前記バージョンと、を前記関係表に保持させ、
前記プログラム定義手段は、前記プログラム仕様の前記バージョンと、前記項目の前記バージョンと、を前記関係表に保持させ、
前記ファイル入出力部品生成手段は、前記ファイル入出力部品の前記ソースコードまたは前記実行形式ファイルの少なくともいずれか一方の前記バージョンと、前記項目の前記バージョンと、を前記関係表に保持させ、
前記プログラム生成手段は、前記プログラムの前記ソースコードまたは前記実行形式ファイルの少なくともいずれか一方の前記バージョンと、前記項目の前記バージョンと、を前記関係表に保持させる
請求項１乃至５いずれか１項記載のソフトウェア開発支援装置。
【請求項７】
前記ファイル入出力部品生成手段は、前記ファイル入出力部品の前記ソースコードまたは前記実行形式ファイルの少なくともいずれか一方に、前記ソースコードまたは前記実行形式ファイルの前記バージョンと、前記項目の前記バージョンと、を外部から参照可能な値として保持させ、
前記プログラム生成手段は、前記プログラムの前記ソースコードまたは前記実行形式ファイルの少なくともいずれか一方に、前記ソースコードまたは前記実行形式ファイルの前記バージョンと、前記項目の前記バージョンと、を外部から参照可能な値として保持させる
請求項１乃至６いずれか１項記載のソフトウェア開発支援装置。
【請求項８】
プログラムによるデータの入出力の対象となるファイルであって、１以上の項目を含む前記ファイルについて、前記項目と、前記項目のバージョンと、を定義してファイル仕様とし、前記ファイル仕様のバージョンとともに出力するファイル定義ステップと、
前記プログラムの処理内容と、前記プログラムが使用する前記項目と、前記項目の前記バージョンと、を定義してプログラム仕様とし、前記プログラム仕様のバージョンとともに出力するプログラム定義ステップと、
前記ファイル仕様に従って、前記ファイルから前記項目を入出力するためのファイル入出力部品のソースコードまたは実行形式ファイルを生成し、前記ファイル入出力部品のバージョンと、前記ファイル入出力部品が使用する前記項目の前記バージョンと、保持させて出力するファイル入出力部品生成ステップと、
前記プログラム仕様に従って、前記プログラムのソースコードまたは実行形式ファイルを生成し、前記プログラムのバージョンと、前記プログラムが使用する前記項目の前記バージョンと、を保持させて出力するプログラム生成ステップと、
前記ファイル仕様、前記プログラム仕様、前記ファイル入出力部品、前記プログラムについて、これらのバージョン及びこれらがそれぞれ含み又は使用する前記項目の前記バージョンのうちいずれか２以上を比較することにより、整合性を検査する検査ステップと、を含む
ソフトウェア開発支援方法。
【請求項９】
前記検査ステップは、前記プログラム仕様の前記バージョン、前記プログラムの前記ソースコードの前記バージョン、前記プログラムの前記実行形式ファイルの前記バージョン、及び実際の運用環境に配置されている前記プログラムの前記実行形式ファイルのバージョン、のいずれか２以上を比較する
請求項８記載のソフトウェア開発支援方法。
【請求項１０】
請求項８又は９記載の方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はソフトウェア開発支援装置、ソフトウェア開発支援方法及びプログラムに関し、特にプログラム及びプログラムが利用する資産にかかるバージョン管理を行い、これらのうちいずれかを変更したことに伴うバージョンの不整合を発見する技術に関する。
【背景技術】
【０００２】
プログラム自動生成システム（特許文献１及び特許文献２）や、Ｉｎｔｅｇｒａｔｅｄ  Ｄｅｖｅｌｏｐｍｅｎｔ  Ｅｎｖｉｒｏｎｍｅｎｔ（ＩＤＥ）と呼ばれるプログラム統合開発ツールが広く利用されている。これらのシステム及びツールは、主にプログラムのソースコードを効率的に開発することを目的として提供されている。その一方、プログラムから参照される共通の資産、例えば種々の項目のデータを含むファイルが変更された際に、そのファイルの変更の影響を受けるであろうプログラム側においても、相応の変更がなされたかどうかを確認するような、いわばファイルとプログラムとの整合性を検査する機能を備えたものは提供されていない。
【０００３】
この点、特許文献３乃至特許文献６は、プログラムのメタ情報である設計情報及びコーディング情報をリポジトリで一元管理するシステムを開示している。しかし、これらのシステムにおいても、設計情報やコーディング情報を利用して、ファイルとプログラムとが相応しく変更されたかどうか、整合性を確認するところまで踏み込んでいるものはない。
【０００４】
また、特許文献７乃至特許文献１１は、プログラムコードや設計情報等に変更が生じた場合に、その変更による影響範囲を確認できるようにするシステムを開示している。しかし、これらのシステムのいずれも、設計情報やコーディング情報を利用して、ファイルとプログラムとの双方が相応しく変更されたかどうか、整合性を確認するものではない。
【０００５】
さらには、上記文献記載の技術はいずれも、ファイルの変更を反映したプログラムが、きちんと運用環境に配置したかどうかについて確認するものでない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平０１−１４７６２１号公報
【特許文献２】特許第３８７１８３２号公報
【特許文献３】特開２００６−０７９２１２号公報
【特許文献４】特開２００６−１０６８９３号公報
【特許文献５】特開２００７−０８７１２７号公報
【特許文献６】特開２００９−２９４９４０号公報
【特許文献７】特開２０１０−０１５４５８号公報
【特許文献８】特開２００９−１２２７５４号公報
【特許文献９】特開２００７−１７２２２３号公報
【特許文献１０】特開２００７−０１８３３４号公報
【特許文献１１】特開平０５−０６１６５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
したがって、現状においては、ファイルを変更した際、その変更の影響を受けるプログラムを変更したかどうか、また変更したプログラムを運用環境に配置したかどうかを確認する作業は、全て目視によって行われている。システムの規模が、目視確認が行き届く程度に小さい場合は、この手法でも支障はない。しかし、システムが大規模になればなるほど、プログラムの本数が増え、各プログラムとファイルとの依存関係も複雑になるため、上述のような変更確認にかかる工数や難易度は増大し、確認漏れ等のリスクも高まる。また、ファイルやプログラムの数、及びプログラムにおいてファイルを参照する箇所が多くなればなるほど、変更確認はより困難となり、見落としのリスクは増大する。ファイルやプログラムの変更は、システムが運用フェーズに入ってから実施されるケースも多いが、かかるケースにおいて確認漏れ等が発生すると、たとえそれが小さなミスであっても影響が甚大になる場合も少なくない。特に本番稼働時の変更漏れは重大なトラブルに繋がるケースが多かった。それゆえ、システムが運用フェーズに入った後のファイルやプログラムの変更確認作業は、開発者に過酷な負担を強いるものであった。
【０００８】
これらの問題を解決するためには、ファイルやプログラムの仕様が変更された際に、関係する他の全ての資産、すなわちプログラムやファイルも相応しく変更されていることを確認する仕組みが重要となる。
【０００９】
本発明は、このような問題点を解決するためになされたものであり、プログラム及びプログラムが利用する資産にかかるバージョン管理を行い、これらのうちいずれかを変更したことに伴うバージョンの不整合を発見できるソフトウェア開発支援装置、ソフトウェア開発支援方法及びプログラムを提供することを目的とする。
【００１０】
その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本発明に係るソフトウェア開発支援装置は、プログラムによるデータの入出力の対象となるファイルであって、１以上の項目を含む前記ファイルについて、前記項目と、前記項目のバージョンと、を定義してファイル仕様とし、前記ファイル仕様のバージョンとともに出力するファイル定義手段と、前記プログラムの処理内容と、前記プログラムが使用する前記項目と、前記項目の前記バージョンと、を定義してプログラム仕様とし、前記プログラム仕様のバージョンとともに出力するプログラム定義手段と、前記ファイル仕様に従って、前記ファイルから前記項目を入出力するためのファイル入出力部品のソースコードまたは実行形式ファイルを生成し、前記ファイル入出力部品のバージョンと、前記ファイル入出力部品が使用する前記項目の前記バージョンと、保持させて出力するファイル入出力部品生成手段と、前記プログラム仕様に従って、前記プログラムのソースコードまたは実行形式ファイルを生成し、前記プログラムのバージョンと、前記プログラムが使用する前記項目の前記バージョンと、を保持させて出力するプログラム生成手段と、前記ファイル仕様、前記プログラム仕様、前記ファイル入出力部品、前記プログラムについて、これらのバージョン及びこれらがそれぞれ含み又は使用する前記項目の前記バージョンのうちいずれか２以上を比較することにより、整合性を検査する検査手段と、を含むものである。
【００１２】
本発明に係るソフトウェア開発支援方法は、プログラムによるデータの入出力の対象となるファイルであって、１以上の項目を含む前記ファイルについて、前記項目と、前記項目のバージョンと、を定義してファイル仕様とし、前記ファイル仕様のバージョンとともに出力するファイル定義ステップと、前記プログラムの処理内容と、前記プログラムが使用する前記項目と、前記項目の前記バージョンと、を定義してプログラム仕様とし、前記プログラム仕様のバージョンとともに出力するプログラム定義ステップと、前記ファイル仕様に従って、前記ファイルから前記項目を入出力するためのファイル入出力部品のソースコードまたは実行形式ファイルを生成し、前記ファイル入出力部品のバージョンと、前記ファイル入出力部品が使用する前記項目の前記バージョンと、保持させて出力するファイル入出力部品生成ステップと、前記プログラム仕様に従って、前記プログラムのソースコードまたは実行形式ファイルを生成し、前記プログラムのバージョンと、前記プログラムが使用する前記項目の前記バージョンと、を保持させて出力するプログラム生成ステップと、前記ファイル仕様、前記プログラム仕様、前記ファイル入出力部品、前記プログラムについて、これらのバージョン及びこれらがそれぞれ含み又は使用する前記項目の前記バージョンのうちいずれか２以上を比較することにより、整合性を検査する検査ステップと、を含むものである。
【００１３】
本発明に係るプログラムは、上記方法をコンピュータに実行させるためのプログラムである。
【発明の効果】
【００１４】
本発明により、プログラム及びプログラムが利用する資産にかかるバージョン管理を行い、これらのうちいずれかを変更したことに伴うバージョンの不整合を発見できるソフトウェア開発支援装置、ソフトウェア開発支援方法及びプログラムを提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態の構成を示す図である。
【図２】本発明の実施の形態のプログラム生成処理を示す図である。
【図３】本発明の実施の形態のファイル定義画面の例を示す図である。
【図４】本発明の実施の形態のファイル仕様の例を示す図である。
【図５】本発明の実施の形態の関係表（ファイル関係情報）の例を示す図である。
【図６】本発明の実施の形態のプログラム定義画面の例を示す図である。
【図７】本発明の実施の形態のファイル仕様参照画面の例を示す図である。
【図８】本発明の実施の形態のプログラム仕様の例を示す図である。
【図９】本発明の実施の形態の関係表（プログラム関係情報）の例を示す図である。
【図１０】本発明の実施の形態のファイルバージョン情報の例を示す図である。
【図１１】本発明の実施の形態のファイルバージョン情報の例を示す図である。
【図１２】本発明の実施の形態の関係表（ファイル入出力部品関係情報）の例を示す図である。
【図１３】本発明の実施の形態のプログラムバージョン情報の例を示す図である。
【図１４】本発明の実施の形態の関係表（プログラム関係情報）の例を示す図である。
【図１５】本発明の実施の形態のダミー構造体の例を示す図である。
【図１６】本発明の実施の形態の整合性検査処理の例を示す図である。
【図１７】本発明の実施の形態の整合性検査処理の例を示す図である。
【図１８】本発明の実施の形態の整合性検査処理の例を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【００１７】
まず、図１を用いて、本発明の実施の形態にかかるソフトウェア開発支援装置１００の構成について説明する。
【００１８】
ソフトウェア開発支援装置１００は、ファイル定義手段１０１、プログラム定義手段１０６、ファイル入出力部品生成手段１１２、プログラム生成手段１１６、リポジトリ１２０、バージョン整合検査手段１３０、バージョン取得手段１３１、運用環境１４０を備える。
【００１９】
以下、これら各手段の構成及び動作について、図２乃至図１８を用いて説明する。
【００２０】
＜ファイル定義＞
ファイル定義手段１０１は、ユーザの入力に応じてファイルの仕様を定義する。また、ファイル定義手段１０１は、ファイル自体のバージョン情報を生成、管理することはもちろん、さらに、ファイルを構成している項目ごとのバージョン情報を生成、管理する。これらの機能を実現するため、ファイル定義手段１０１は、バージョン情報作成手段１０３、ファイル仕様出力手段１０４、関係表出力手段１０５を有する。
【００２１】
バージョン情報作成手段１０３は、ファイル仕様を定義するためのユーザ入力を受け付け、ファイル及び項目のバージョン情報を自動生成する。バージョン情報作成手段１０３は、ファイル仕様を定義するためのグラフィカルユーザインターフェースとして、例えば、図３に示す入力画面をユーザに提供する。この入力画面はモニタに表示される。この入力画面をファイル定義画面１０２と称することとする。
【００２２】
ファイル定義画面１０２は、複数のセルに区切られている。このうち、「ファイル名」「ファイルバージョン」「項目名」「属性」「項目バージョン」なる文字列が表示されている各セルは、バージョン情報作成手段１０３が固定文字列を表示しているセルである。
【００２３】
ファイルバージョンを表示するセル、すなわち「ファイルバージョン」の右列のセル（「３」が表示されている）、及び項目バージョンを表示するセル、すなわち「項目バージョン」の下に複数行にわたって連なるセル（「１」「２」「２」・・が表示されている）は、いずれもバージョン情報作成手段１０３が自動的に生成したバージョン情報を表示するセルである。
【００２４】
その他のセルは、いずれも所定の入力規則に従ってユーザが値を入力すべきセルである。すなわち、「ファイル名」の右列のセル（「ＦＩＬＥ＿Ａ」が表示されている）は、ファイル名を入力するセルである。また、「項目名」の下に複数行にわたって連なるセル（「項目Ａ」「項目Ｂ」「項目Ｃ」・・が入力されている）、「属性」の下に複数行にわたって連なるセル（「ｃｈａｒ［５］」「ｌｏｎｇ」「ｃｈａｒ［２０］」・・が入力されている）は、上記ファイルを構成する１以上の項目それぞれについて、項目名及び属性（データ型）を入力するセルである。
【００２５】
ユーザがファイル名を新規に入力すると、バージョン情報作成手段１０３は、ファイルバージョンを「１」に設定する。そして、ユーザがファイル名を変更したり、項目の新規入力、変更あるいは削除を行い、ファイル仕様の出力を行う（後述）と、バージョン情報作成手段１０３は、ファイルのバージョンをインクリメント（＋１）する。図３では、ファイルバージョンは「３」になっている。
【００２６】
ファイルを構成する各項目についても同様である。すなわち、ユーザが項目（項目名と属性）を新規に入力すると、バージョン情報作成手段１０３は、項目に対してバージョン「１」を割り当てる。そして、ユーザがある項目の項目名または属性を変更し、ファイル仕様を出力すると、バージョン情報作成手段１０３は、当該項目のバージョンをインクリメント（＋１）する。
【００２７】
なお、当然のことであるが、ファイル仕様を出力する前に、項目の定義内容を何度変更してもバージョンは最大で＋１しかされず、新規にファイル定義を作成した場合は１のままである。また、ある項目が削除されると、当該項目のバージョンも含めて削除される。
【００２８】
ユーザは、ファイル定義画面１０２で必要な情報を入力し終えると、ファイル定義を登録する、換言すればファイル仕様を出力する指示を出す。例えば、ユーザは登録ボタンを押す（クリックする）。
【００２９】
これに応じ、ファイル仕様出力手段１０４と関係表出力手段１０５とは、リポジトリ１２０内のファイル仕様１２１と関係表１２３とに、更新された情報を登録する。
【００３０】
図４に、ファイル仕様出力手段１０４がファイル仕様１２１に登録するファイル仕様情報の例を示す。ファイル仕様情報は、ファイル名、ファイルバージョン（ファイル定義全体のバージョン）、項目名、項目の属性、及び項目のバージョンを含む。
【００３１】
図５に、関係表出力手段１０５が関係表１２３に登録するファイル関係情報の例を示す。ファイル関係情報は、ファイル名、項目名、ファイルバージョン（ファイル定義全体のバージョン）および項目バージョンを含む。
【００３２】
なお、関係表１２３にファイル名が同一の行が既に存在する場合、関係表出力手段１０５は、既に存在するその行を一旦削除した後、上述のファイル関係情報の出力を行う。
【００３３】
＜プログラム定義＞
プログラム定義手段１０６は、ユーザの入力に応じてプログラムの仕様を定義する。また、プログラム定義手段１０６は、プログラムのバージョンを生成、管理する。さらに、プログラム定義手段１０６は、プログラムのバージョンと、プログラムがデータの入出力先とする上記ファイル内の１以上の項目それぞれのバージョンと、を関連付けて管理する。これらの機能を実現するため、プログラム定義手段１０６は、バージョン情報作成手段１０９、プログラム仕様出力手段１１０、関係表出力手段１１１を有する。
【００３４】
バージョン情報作成手段１０９は、プログラム仕様を定義するためのユーザ入力を受け付け、プログラムのバージョン情報を自動生成する。バージョン情報作成手段１０９は、プログラム仕様を定義するためのグラフィカルユーザインターフェースとして、例えば、図６に示す入力画面をユーザに提供する。この入力画面はモニタに表示される。この入力画面をプログラム定義画面１０７と称することとする。
【００３５】
プログラム定義画面１０７は、プログラムフロー図画面、入力処理定義画面、出力処理定義画面、および、フリー記述画面を有する。
【００３６】
まず、ユーザは、プログラムフロー図画面でプログラム構造を定義していく。ユーザは、プログラムを構成する処理単位を表すノードを、ツリー型に組み合せることにより、プログラム全体の構造を定義する。プログラム定義画面１０７は、ノードを画面空間上の任意の位置に配置し、配置されたノード間の従属関係を定義するためのグラフィカルユーザインターフェイスを提供する。かかるインターフェイスの詳細については、本発明が解決しようとする課題のスコープから外れるため、説明を省略するが、種々の既存技術を利用可能であることは言うまでもない。
【００３７】
このツリー型に定義されたプログラム構造において、１つのノードは、１つの処理単位に相当する。これらのノードには、３つのタイプが予め用意される。すなわち、入力処理ノード、出力処理ノードおよびフリー記述ノードである。ユーザは、記述したい処理の内容（入力処理か、出力処理か、あるいはそれ以外の処理か）に従って、適切な種類のノードを選択し、ツリー内に配置する。ここで、例えばＡ処理ノードに従属させてＢ処理ノードを配すると、それはＡ処理はＢ処理を含む一連の処理により構成されるということを意味する。
【００３８】
プログラムフロー図画面への入力が完了したならば、ユーザは、各ノードの具体的な処理内容を、図６に示す入力処理定義画面、出力処理定義画面、あるいはフリー記述画面を用いて定義する。バージョン情報作成手段１０９は、例えば、ユーザがプログラムフロー図中のあるノードを選択（クリック）したことに応じて、そのノードのタイプに対応する定義画面をモニタに表示させることができる。すなわち、入力処理ノードが選択されたなら入力処理定義画面を、出力処理ノードが選択されたなら出力処理定義画面を、フリー記述ノードが選択されたならフリー記述画面を表示する。
【００３９】
入力処理、出力処理の定義画面には、ファイル仕様参照ボタンが設けられる。ユーザがファイル仕様参照ボタンを押下すると、ファイル仕様参照手段１０８が、図７に示すファイル仕様参照画面をモニタに表示させる。ファイル仕様参照画面は、ユーザに、その入力処理又は出力処理においてプログラムが入出力対象とすべきファイル、及びファイル中の項目を指定させるものである。
【００４０】
ファイル仕様参照手段１０８は、リポジトリ１２０のファイル仕様１２１を参照し、ファイル仕様情報を取得する。そして、ファイル仕様参照手段１０８は、ファイル仕様参照画面に、ファイル仕様情報に定義されているファイル名、ファイルバージョン、項目名、属性、項目バージョンを表示する。
【００４１】
ユーザは、ファイルの項目の一覧から、選択した処理単位においてプログラムが使用する項目を選択する。項目が選択されると、バージョン情報作成手段１０９は、選択された項目が含まれていたファイル名、選択された項目名および項目バージョンを組にした、ファイルバージョン情報を作成する。
【００４２】
バージョン情報作成手段１０９は、入力処理画面または出力処理画面の使用項目名（バージョン）の位置に、ファイルバージョン情報にかかる項目名と項目バージョンとを表示する。
【００４３】
なお、ファイル仕様参照画面でファイル項目の選択が解除された場合は、バージョン情報作成手段１０９は、そのファイルバージョン情報を削除し、入力処理画面または出力処理画面に表示されている項目名（バージョン）から、当該項目の項目名および項目バージョンを消去する。
【００４４】
なお、ファイル仕様参照画面で選択されなかった項目を入力処理、出力処理またはフリー記述の画面でユーザが使用すると、プログラムの生成時にエラーとなり、そのようなプログラムの生成ができないよう制約される（後述）。
【００４５】
バージョン情報作成手段１０９は、プログラム定義が新規に作成された場合、すなわちプログラムフロー図における１以上のノードからなるプログラム構造の定義、及び入力処理定義画面、出力処理定義画面、あるいはフリー記述画面における各ノードの処理内容の定義を含む一連の処理が新規になされ、これらが完了した場合は、プログラムバージョン（プログラム定義全体のバージョン）に「１」を割り当てる。また、バージョン情報作成手段１０９は、プログラムの構造や各ノードの処理内容の定義が変更された場合は、プログラムバージョンをインクリメント（＋１）する。
【００４６】
なお、当然のことであるが、プログラム仕様を出力する前に何度、プログラムの構造やノードの内容を変更しても、プログラムバージョンは最大で＋１しかされず、新規に作成した場合は１のままである。
【００４７】
ユーザは、プログラム定義画面１０７で必要な情報を入力し終わると、プログラム定義を登録する指示を出す。例えば、登録ボタンを押す。
【００４８】
これに応じ、プログラム仕様出力手段１１０と関係表出力手段１１１とは、リポジトリ１２０内のプログラム仕様１２２と関係表１２３とに、更新された情報を登録する。
【００４９】
図８に、プログラム仕様出力手段１１０がプログラム仕様１２２に登録するプログラム仕様情報の例を示す。プログラム仕様情報は、プログラム名、プログラムバージョン（プログラム定義全体のバージョン）、ノード名、ノードタイプ、処理情報（抽出条件）および使用ファイル項目バージョン情報を含む。使用ファイル項目バージョン情報は、ファイル名、項目名および項目バージョンを含む。
【００５０】
図９に、関係表出力手段１１５が関係表１２３に登録するプログラム関係情報の例を示す。プログラム関係情報は、プログラム名と、プログラムバージョン（プログラム定義全体のバージョン）と、の組を含む。さらに、プログラム関係情報は、プログラム名と、ファイルバージョン情報（使用ファイル名、使用項目名および使用項目のバージョンの組）と、の組を含む。
【００５１】
＜ファイル入出力部品生成＞
ファイル入出力部品生成手段１１２は、ファイル仕様に基づいて、プログラムがファイルに対しデータを入出力するためのファイル入出力部品を自動生成する。ファイル入出力部品生成手段１１２は、生成手段１１３、バージョン組込み手段１１４、関係表出力手段１１５を有する。
【００５２】
生成手段１１３は、リポジトリ１２０のファイル仕様１２１からファイル仕様を読み出し、ファイル仕様を利用してファイル入出力部品のソースを生成する。ここで、ファイル入出力部品とは、プログラムにファイルに対するデータの入出力処理を実装するためのソフトウェア部品である。ファイル入出力部品は、プログラム側から項目名を指定することで、項目単位でデータの入出力を行うことが可能なインタフェースを有する。なお、ファイル入出力部品のソースの具体的な生成方法は、本発明が解決しようとする課題のスコープから外れるため、詳細な説明を省略するが、既知の種々の手法を用いて実現できることは言うまでもない。
【００５３】
生成手段１１３は、生成したファイル入出力部品のソースを、リポジトリ１２０の入出力部品ソース１２４に保存する。さらに、生成手段１１３は、生成したファイル入出力部品のソースをコンパイル、リンクして入出力部品（ライブラリ）１２５に保存する。
【００５４】
バージョン組込み手段１１４は、生成手段１１３にてファイル入出力部品のソースが生成される際、そのソースに、ファイル入出力部品が入出力の対象とするファイルのファイルバージョンと、入出力の対象とする項目毎の項目バージョンの情報を組み込む。つまり、バージョン組込み手段１１４は、ファイル仕様１２１を参照し、ファイル入出力部品のソースに、図１０に示すようなファイルバージョン情報を組み込む。なお、ファイルバージョン情報の組み込みは、スタティック変数として、公知のｗｈａｔコマンド等で参照できる形式で実施することができる。
【００５５】
すなわち、ファイルバージョン情報は、文字列のスタティック変数ＳｃｃｓＩＤに格納しうる。具体的には、ファイルバージョン情報は、「＠（＃）」の後に、ファイル名、ファイルバージョン、項目名、その項目のバージョンを含み、以後、項目名とその項目のバージョンを項目が定義されている分だけ繰り返される。
【００５６】
さらに、バージョン組込み手段１１４は、ファイル出力処理が行われる際に上記ファイルバージョン情報が出力されるような処理を、ファイル入出力部品に自動的に組み込む。図１１に、出力すべきファイルバージョン情報の例を示す。ファイルバージョン情報は、ファイル名、ファイルバージョン、項目名、その項目のバージョンを含み、以後、項目名とその項目のバージョンを項目が定義されている分だけ繰り返される。このファイルバージョン情報は、出力ファイルのファイル名に「＿Ｖｅｒｓｉｏｎ」を付加したファイル名のファイル内に出力される。バージョン組込み手段１１４は、ファイル入出力部品のファイル出力処理がオープンされた後に、上述の出力処理が自動的に実行されるような処理を、ファイル入出力部品内に自動生成する。
【００５７】
関係表出力手段１１５は、生成手段１１３が生成したファイル入出力部品のソースファイル名、そのファイル入出力部品が入出力の対象とするファイルのファイルバージョン、及び入出力の対象とする項目毎の項目バージョンの情報、を関連付けた情報を、関係表１２３に出力する。また、生成手段１１３が生成したファイル入出力部品の実行ファイル名、そのファイル入出力部品が入出力の対象とするファイルのファイルバージョン、及び入出力の対象とする項目毎の項目バージョンの情報、を関連付けた情報を、関係表１２３に出力する。これらの情報をファイル入出力部品関係情報と称することとする。
【００５８】
図１２に、関係表出力手段１１５が出力するファイル入出力部品関係情報の例を示す。ファイル入出力部品関係情報は、図１２（Ａ）に示すように、ファイル入出力部品関係情報は、生成された入出力部品のソースファイル名、使用するファイルのファイルバージョン、ファイル中の使用する項目名、その項目のバージョン、の組を含む。また、ファイル部品関係情報は、図１２（Ｂ）に示すように、生成された実行ファイル名、使用するファイルのファイルバージョン、ファイル中の使用する項目名、その項目のバージョン、の組を含む。
【００５９】
なお、関係表１２３にソースファイル名又は実行ファイル名が同一の行が既に存在する場合、関係表出力手段１１５は、既に存在するそれらの行を一旦削除した後、上述のファイル入出力部品関係情報の出力を行う。
【００６０】
＜プログラム生成＞
プログラム生成手段１１６は、プログラム仕様に基づいて、プログラムのソースコードおよび実行ファイルを自動生成する。ここで生成されるプログラムのソースコードは、ユーザがファイル定義画面１０２及びプログラム定義画面１０７で入力した定義内容を反映したものとなる（図２）。プログラム生成手段１１６は、生成手段１１７、バージョン組込み手段１１８、関係表出力手段１１９を有する。
【００６１】
生成手段１１７は、リポジトリ１２０のプログラム仕様１２２を読み出す。そして、生成手段１１７はプログラムのソースを生成する。なお、プログラムのソースの具体的な生成方法は、本発明が解決しようとする課題のスコープから外れるため、詳細な説明を省略するが、例えば、入力処理及び出力処理については、ファイル入出力部品生成手段１１２が生成したファイル入出力部品を呼び出すコードを含めることができる。また、フリー記述処理については、ユーザがフリー記述画面に記入したコードを含めることができる。
【００６２】
また、生成手段１１７は、ファイル仕様参照画面で選択されていないファイル項目が各ノードの処理内で使用されている場合、プログラム生成をエラーで終了するようにすると良い。これにより、バージョン情報が組み込まれていないファイル項目が使用されないようにすることができる。
【００６３】
例えば、図１５に示すように、生成手段１１７は、使用しない項目の項目名（ここでは例えば項目Ｂ）を、ダミー構造体のメンバ名として使用して実装しておく。こうすることにより、ユーザが項目Ｂを使用するとコンパイルエラーが発生するように構成できる。
【００６４】
ここで、バージョン組込み手段１１８は、生成手段１１７にてプログラムのソースが生成される際に、前記プログラムソースにプログラムバージョン情報を組み込む。つまり、バージョン組込み手段１１８は、プログラム仕様１２２を参照し、プログラムソースに図１３に示すようなプログラムバージョン情報を組み込む。なお、ファイルバージョン情報の組み込みは、スタティック変数として、公知のｗｈａｔコマンド等で参照できる形式で実施することができる。
【００６５】
すなわち、プログラムバージョン情報は、文字列のスタティック変数ＳｃｃｓＩＤに格納し得る。具体的には、プログラムバージョン情報は、「＠（＃）」の後に、プログラム名、プログラムバージョン（プログラム定義全体のバージョン）、使用ファイル名、使用項目名、その項目のバージョンを含み、以後、使用ファイル名、使用項目名、その項目のバージョンの組が、使用する項目分だけ繰り返される。
【００６６】
生成手段１１７は、生成したプログラムのソースをリポジトリ１２０のプログラムソース１２６に保存する。さらに、プログラム生成部は、プログラムのソースをコンパイル、リンクし、実行形式プログラムを生成して、プログラム（実行形式）１２７に保存する。
【００６７】
関係表出力手段１１９は、生成手段１１７が生成したプログラムのソースファイル名、プログラムのバージョン（プログラム定義全体のバージョン）、を組にして、また、プログラムのソースファイル名、使用ファイル名、使用項目名、その項目のバージョン、を組にして、関係表１２３に出力する。さらに、関係表出力手段１１９は、生成手段１１７が生成したプログラムの実行ファイル名、プログラム定義全体のバージョン、を組にして、また、プログラムの実行ファイル名、使用ファイル名、使用項目名、その項目のバージョン、を組にして、関係表１２３に出力する。これらの情報をプログラム関係情報と称することとする。
【００６８】
図１４に、関係表出力手段１１９が出力するプログラム関係情報の例を示す。プログラム関係情報は、図１４（Ａ）に示すように、生成されたプログラムのソースファイル名とプログラム定義全体のバージョンとの組を含む。さらに、図１４（Ａ）のプログラム関係情報は、生成されたプログラムのソースファイル名と、使用ファイル名と、使用項目名と、その項目のバージョンと、の組を含む。また、プログラム関係情報は、図１４（Ｂ）に示すように、生成された実行ファイル名と、プログラム定義全体のバージョンと、の組を含む。さらに、図１４（Ｂ）のプログラム関係情報は、生成された実行ファイル名と、使用ファイル名と、使用項目名と、その項目のバージョンと、の組を含む。
【００６９】
なお、関係表１２３にプログラムのソースファイル名又は実行ファイル名が同一の行が既に存在する場合、関係表出力手段１１５は、既に存在するそれらの行を一旦削除した後、上述のプログラム関係情報の出力を行う。
【００７０】
ここまでの工程によって、リポジトリ１２０には、ファイル仕様１２１、プログラム仕様１２２、入出力部品ソース１２４、入出力部品（ライブラリ）１２５、プログラムソース１２６およびプログラム（実行形式）１２７が蓄積されている。
【００７１】
そして、生成されたプログラムの実行形式ファイル、入出力部品のライブラリ、およびファイルは、運用環境１４０内に配置されることにより（図１の１４１乃至１４３参照）、実運用に供される。
【００７２】
＜整合性検査＞
検査手段１３２は、プログラムが実際に使用しようとしているファイルもしくはファイル項目のバージョンが、プログラム作成時に意図したものであるかどうかを検査する整合性検査を行う。
【００７３】
例えば、プログラムを生成した後に、ファイルもしくはファイル項目のみを更新すると、プログラムが想定するファイルもしくはファイル項目と、実際のファイルもしくはファイル項目と、に齟齬が生じることが有り得る。それで、ファイルもしくはファイル項目が更新された場合は、本来、プログラム側も更新を行うべきである。従来は、どのプログラムを更新しなければならないかはすぐにはわからなかったが、本実施形態では、これまで説明してきたように、ファイルもしくはファイル項目、およびプログラムにそれぞれバージョン情報を付与し、それらのあるべき対応関係を関係表１２３に記録している。したがって、これらの情報を利用することにより、ファイルもしくはファイル項目と、プログラムと、の整合性を容易に検査することができる。
【００７４】
検査手段１３２は、バージョン取得手段１３１、バージョン整合検査手段１３０を有する。
【００７５】
（バージョン情報の取得）
まず、バージョン取得手段１３１が、整合性の検査対象となるプログラムや入出力部品やファイルのバージョンを収集する。
【００７６】
Ｓ１０１：バージョン取得手段１３１は、整合性検査の対象とすべきプログラムを１つ選択する。本実施の形態では、検査対象プログラムとしてＰＲＧ＿Ａを選択し、ＰＲＧ＿Ａに関して整合性検査を行うものとする。
【００７７】
Ｓ１０２：バージョン取得手段１３１は、プログラムの名前（本実施の形態の例では「ＰＲＧ＿Ａ」）をキーにして、関係表１２３から、そのプログラムのバージョンを取得する。
【００７８】
いま、関係表１２３には、関係表出力手段１０５が出力したテーブル（図５）、関係表出力手段１１１が出力したテーブル（図９）、関係表出力手段１１５が出力したテーブル（図１２）、および関係表出力手段１１９が出力したテーブル（図１４）が格納されているものとする。バージョン取得手段１３１は、図９のテーブルから、プログラム名をキーとして、プログラムのバージョンを得る。
【００７９】
Ｓ１０３：バージョン取得手段１３１は、プログラムのソースファイル名（典型的には、プログラム名に「．ｃ」を付加して得られる）をキーとして、図１４（Ａ）に示す関係表１２３のテーブルから、プログラムのソースのバージョンを取得する。
【００８０】
Ｓ１０４：バージョン取得手段１３１は、プログラムの実行ファイル名（典型的には、プログラム名に「．ＥＸＥ」を付加して得られる）をキーとして、図１４（Ｂ）に示す関係表１２３のテーブルから、プログラムの実行ファイルのバージョンを取得する。
【００８１】
Ｓ１０５：バージョン取得手段１３１は、運用環境１４０において実運用に供されているプログラムの実行形式ファイル１４１（典型的には、プログラム名に「．ＥＸＥ」を付加して得られる）に対し、ｗｈａｔコマンドを実行する。ここで、ｗｈａｔコマンドとは、プログラム内に埋め込まれたスタティック変数ＳｃｃｓＩＤの値を取得するコマンドである。本実施の形態では、プログラムのＳｃｃｓＩＤには、図１３に示すようなプログラムバージョン情報（「＠（＃）」、プログラム名、プログラムバージョン、使用ファイル名、使用項目名、その項目のバージョンからなる）が格納されている。
【００８２】
Ｓ１０６：バージョン取得手段１３１は、ステップＳ１０２で取得したプログラム名をキーとして、図９に示す関係表１２３のテーブルから、使用ファイル名を取得する。さらに、この使用ファイル名（図５のテーブルのファイル名に相当）をキーとして、図５に示す関係表１２３のテーブルから、項目のバージョンを取得する。
【００８３】
Ｓ１０７：バージョン取得手段１３１は、ファイル入出力部品のソースファイル名（典型的には、ステップＳ１０６で取得した使用ファイル名に「．ｃ」を付加して得られる）をキーとして、図１２（Ａ）に示す関係表１２３のテーブルから、項目のバージョンを取得する。
【００８４】
Ｓ１０８：バージョン取得手段１３１は、ファイル入出力部品の実行ファイル名（典型的には、ステップＳ１０６で取得した使用ファイル名に「．ＤＬＬ」を付加して得られる）をキーとして、図１２（Ｂ）に示す関係表１２３のテーブルから、項目のバージョンを取得する。
【００８５】
Ｓ１０９：バージョン取得手段１３１は、運用環境１４０において実運用に供されているファイル入出力部品のライブラリ１４２（典型的には、ステップＳ１０６で取得した使用ファイル名に「．ＤＬＬ」を付加して得られる）に対し、ｗｈａｔコマンドを実行する。ここで、ｗｈａｔコマンドとは、プログラム内に埋め込まれたスタティック変数ＳｃｃｓＩＤの値を取得するコマンドである。本実施の形態では、プログラムのＳｃｃｓＩＤには、図１０に示すようなファイルバージョン情報（「＠（＃）」、ファイル名、ファイルバージョン、項目名、項目バージョンからなる）が格納されている。
【００８６】
Ｓ１１０：バージョン取得手段１３１は、運用環境１４０において実運用に供されているファイル１４３にかかるファイルバージョン情報が記述されているファイル（ファイル１４３のファイル名に「＿Ｖｅｒｓｉｏｎ」を付加したファイル名のフィル）を取得し、その内容であるファイルバージョン情報を読み出す。
【００８７】
ここまでの処理の結果、バージョン取得手段１３１が関係表１２３から取得した情報の一覧を、図１６及び図１７に示す。
【００８８】
（整合性検査）
つぎに、バージョン整合検査手段１３０は、Ｓ１０１乃至Ｓ１１０においてバージョン取得手段１３１が取得した、プログラムや入出力部品やファイルのバージョンが、互いに整合しているか否を検査する。
【００８９】
Ｓ２０１：ここでは、プログラム仕様を更新した後に、プログラム生成手段により、プロラムソース、プロブラム（実行形式）が生成されているか、また、生成したプログラム（実行形式）と同一のプログラムが、運用環境に複写されているかを、それぞれのバージョンの値を比較することで確認する。バージョンの値が全て一致していれば、更新漏れがなく、整合していると判断できる。
【００９０】
バージョン整合検査手段１３０は、Ｓ１０２で取得したプログラムバージョン（プログラム定義全体のバージョン）を基準として、Ｓ１０３で取得したプログラムソースのバージョン、Ｓ１０４で取得した実行形式のプログラムのバージョン、およびＳ１０５で取得した運用環境に置かれた実行形式プログラムのバージョン、をそれぞれ比較する。具体的には、図１６でａとして示されているバージョンの値を比較する。
【００９１】
ここで、これらのバージョンが全て一致している場合は、整合がとれている。すなわち、更新漏れがないことになる。
【００９２】
一方、これらのバージョンが一致していない場合は、プログラムバージョン（プログラム定義全体のバージョン）と一致しなかったバージョンを有するソースファイル名、実行ファイル名、または運用環境の実行ファイル名と、それらのバージョンと、比較の基準としたプログラム名と、を図示しないメモリに蓄積する。
【００９３】
Ｓ２０２：ここでは、プログラムが使用する項目が、プログラム仕様を更新した後、あるは、プログラムを生成した後、あるいは、そのプログラムを運用環境に複写した後に更新されていないかを、プログラムが使用する項目のバージョンの値、及び、ファイル仕様を作成した際の項目のバージョンの値、入出力部品の項目のバージョンの値、ファイルを作成した際の項目のバージョンの値を比較することで確認する。バージョンの値が全て一致していれば、更新漏れがなく、整合していると判断できる。
【００９４】
バージョン整合検査手段１３０は、Ｓ１０６で取得したプログラム定義が使用する項目のバージョンを基準として、Ｓ１０７で取得した入出力部品のソースが使用する項目のバージョン、Ｓ１０８で取得した実行形式の入出力部品が使用する項目のバージョン、Ｓ１０９で取得した運用環境の入出力部品が使用する項目のバージョン、および運用環境の「＿Ｖｅｒｓｉｏｎ」が冠されたファイルから取得した項目のバージョン、をそれぞれ比較する。具体的には、図１６および図１７でｂ１またはｂ２として示されているバージョンの値を比較する。
【００９５】
ここで、これらのバージョンが全て一致している場合は、整合がとれている。すなわち、更新漏れがないことになる。
【００９６】
一方、これらのバージョンが一致していない場合は、プログラム定義が使用する項目のバージョンと一致しなかった項目を使用するソースファイル名、実行ファイル名、運用環境の実行ファイル名、または「＿Ｖｅｒｓｉｏｎ」が冠されたファイル名と、比較の基準としたプログラム定義の使用ファイル名と、項目名と、それらのバージョンと、を図示しないメモリに蓄積する。
【００９７】
Ｓ２０３：ここでは、ファイル仕様を更新した後に、ファイル入出力部品生成手段により、入出力部品ソース、入出力部品（ライブラリ）生成されているか、また、生成した入出力部品（ライブラリ）と同一の部品が、運用環境に複写されているかを、それぞれのバージョンの値を比較することで確認する。バージョンの値が全て一致していれば、更新漏れがなく、整合していると判断できる。
【００９８】
バージョン整合検査手段１３０は、図５に示すファイル定義のバージョンを基準として、図１２（Ａ）に示すファイル入出力部品のソースのバージョン、図１２（Ｂ）に示す実行形式のファイル入出力部品のバージョン、および運用環境１４０の入出力部品の実行形式ファイル１４２のバージョン、運用環境１４９の「＿Ｖｅｒｓｉｏｎ」が冠されたファイルのバージョン、をそれぞれ比較する。具体的には、図１７でｃとして示されているバージョンの値を比較する。
【００９９】
ここで、これらのバージョンが全て一致している場合は、整合がとれている。すなわち、更新漏れがないことになる。
【０１００】
一方、これらのバージョンが一致していない場合は、ファイル定義のバージョンと一致しなかったバージョンを有するソースファイル名、実行ファイル名、運用環境の実行ファイル名、または「＿Ｖｅｒｓｉｏｎ」が冠されたファイル名と、それらのバージョンと、比較の基準としたファイル定義のファイル名と、を図示しないメモリに蓄積する。
【０１０１】
なお、ファイル定義が複数存在する場合、バージョン整合検査手段１３０は、すべてのファイル定義について同様の処理を行う。
【０１０２】
Ｓ３０１：バージョン整合検査手段１３０は、Ｓ１０１乃至Ｓ１１０、Ｓ２０１乃至Ｓ２０３にかかる一連の処理を、関係表１２３に記録されている全てのプログラムについて実施する。
【０１０３】
Ｓ３０２：最後に、バージョン整合検査手段１３０は、メモリに蓄積された、バージョンが一致しなかったファイルにかかる情報を、利用者に提示する。ここで、情報の重複がある場合には重複を排除することが好ましい。なお、既存の技術を利用することにより、予め情報の重複の無駄を省くこともできる。
【０１０４】
これにより、ユーザは、バージョンの整合がとれていないファイルがどれであるかを知ることができる。
【０１０５】
図１８に、利用者に対する情報提示方法の一例を示す。この例では、プログラム定義では、項目Ｃのバージョンが「１」である（図１６の○印のついている項目を参照）。一方、ファイル定義、ファイル入出力部品のソースファイル、同実行ファイル、運用環境における「＿Ｖｅｒｓｉｏｎ」が冠されたファイルのそれぞれにおいては、項目Ｃのバージョンが「２」である。
【０１０６】
これにより、ユーザは、プログラム定義における項目Ｃのバージョンが最も小さいことから、更新漏れが存在するのは、プログラム定義ＰＲＧ＿ＡのファイルＦＩＬＥ＿Ａの項目Ｃを使用している部分であることを知ることができる。
【０１０７】
なお、Ｓ１０１乃至Ｓ１１０の各ステップの実行順序は一例にすぎず、任意の順序で実行しうる。同様に、Ｓ２０１乃至Ｓ２０３の各ステップの実行順序は一例にすぎず、任意の順序で実行しうる。
【０１０８】
本実施の形態によれば、検査手段１３２が、プログラムから使用するファイルの項目のバージョンの整合性検査を行い、ユーザはその結果を確認できる。これにより、従来、プログラムやファイルの開発資産が多くなればなるほど多くの工数を要していた整合性検査を、比較的短時間でできるようになる。システムが大規模になればなるほど有効性は増大する。
【０１０９】
また、本実施の形態によれば、開発資産（リポジトリ１２０内に蓄積されている資産）だけでなく、運用環境１４０に配置されている資産についても、最新の、すなわち整合性のとれたプログラム、部品（ライブラリ）が配置され、ファイルが作成されていることを容易に確認できる。そのため、配置漏れ等の運用ミスの発生を抑制できる。
【０１１０】
さらに、本実施の形態によれば、プログラムが参照するファイルを項目レベルで把握できる。また、項目単位のインタフェースをもつファイル入出力部品を使用することで、プログラムで使用していない項目に変更が生じても、プログラムは影響を受けず、修正するプログラム数を最小化できる。
【０１１１】
また、本実施の形態によれば、あるファイル仕様を変更後に整合性検証を実施すれば、そのファイルを使用している、すなわち変更が必要なプログラムが表示される。これにより、変更しなければならないプログラムを漏れなく把握できる。
【０１１２】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述の実施の形態では、本発明を主にハードウェアの構成として説明したが、これに限定されるものではなく、任意の処理を、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【０１１３】
本発明は、例えば以下のように表し得る。
（付記１）
プログラムによるデータの入出力の対象となるファイルであって、１以上の項目を含む前記ファイルについて、前記項目と、前記項目のバージョンと、を定義してファイル仕様とし、前記ファイル仕様のバージョンとともに出力するファイル定義手段と、
前記プログラムの処理内容と、前記プログラムが使用する前記項目と、前記項目の前記バージョンと、を定義してプログラム仕様とし、前記プログラム仕様のバージョンとともに出力するプログラム定義手段と、
前記ファイル仕様に従って、前記ファイルから前記項目を入出力するためのファイル入出力部品のソースコードまたは実行形式ファイルを生成し、前記ファイル入出力部品のバージョンと、前記ファイル入出力部品が使用する前記項目の前記バージョンと、保持させて出力するファイル入出力部品生成手段と、
前記プログラム仕様に従って、前記プログラムのソースコードまたは実行形式ファイルを生成し、前記プログラムのバージョンと、前記プログラムが使用する前記項目の前記バージョンと、を保持させて出力するプログラム生成手段と、
前記ファイル仕様、前記プログラム仕様、前記ファイル入出力部品、前記プログラムについて、これらのバージョン及びこれらがそれぞれ含み又は使用する前記項目の前記バージョンのうちいずれか２以上を比較することにより、整合性を検査する検査手段と、を含む
ソフトウェア開発支援装置。
（付記２）
前記検査手段は、前記プログラム仕様の前記バージョン、前記プログラムの前記ソースコードの前記バージョン、前記プログラムの前記実行形式ファイルの前記バージョン、及び実際の運用環境に配置されている前記プログラムの前記実行形式ファイルのバージョン、のいずれか２以上を比較する
付記１記載のソフトウェア開発支援装置。
（付記３）
前記検査手段は、前記プログラム仕様が使用する前記項目の前記バージョン、前記ファイル入出力部品の前記ソースコードが使用する前記項目の前記バージョン、前記ファイル入出力部品の前記実行形式ファイルが使用する前記項目の前記バージョン、及び実際の運用環境に配置されている前記ファイル入出力部品の前記実行形式ファイルの前記バージョン、のいずれか２以上を比較することにより、
付記１又は２記載のソフトウェア開発支援装置。
（付記４）
前記検査手段は、前記ファイル仕様の前記バージョン、前記前記ファイル入出力部品の前記ソースコードの前記バージョン、前記ファイル入出力部品の前記実行形式ファイルの前記バージョン、実際の運用環境に配置されている前記ファイル入出力部品の前記実行形式ファイルの前記バージョン、及び前記運用環境に配置されている前記ファイルのバージョン、のいずれか２以上を比較することにより、
付記１乃至３いずれか１項記載のソフトウェア開発支援装置。
（付記５）
前記検査手段は、前記ファイル仕様の前記項目の前記バージョン、前記前記ファイル入出力部品の前記ソースコードの前記項目の前記バージョン、前記ファイル入出力部品の前記実行形式ファイルの前記項目の前記バージョン、実際の運用環境に配置されている前記ファイル入出力部品の前記実行形式ファイルの前記項目の前記バージョン、及び前記運用環境に配置されている前記ファイルの前記項目のバージョン、のいずれか２以上を比較することにより、
付記１乃至４いずれか１項記載のソフトウェア開発支援装置。
（付記６）
関係表を保持するリポジトリをさらに有し、
前記ファイル定義手段は、前記ファイル仕様の前記バージョンと、前記項目の前記バージョンと、を前記関係表に保持させ、
前記プログラム定義手段は、前記プログラム仕様の前記バージョンと、前記項目の前記バージョンと、を前記関係表に保持させ、
前記ファイル入出力部品生成手段は、前記ファイル入出力部品の前記ソースコードまたは前記実行形式ファイルの少なくともいずれか一方の前記バージョンと、前記項目の前記バージョンと、を前記関係表に保持させ、
前記プログラム生成手段は、前記プログラムの前記ソースコードまたは前記実行形式ファイルの少なくともいずれか一方の前記バージョンと、前記項目の前記バージョンと、を前記関係表に保持させる
付記１乃至５いずれか１項記載のソフトウェア開発支援装置。
（付記７）
前記ファイル入出力部品生成手段は、前記ファイル入出力部品の前記ソースコードまたは前記実行形式ファイルの少なくともいずれか一方に、前記ソースコードまたは前記実行形式ファイルの前記バージョンと、前記項目の前記バージョンと、を外部から参照可能な値として保持させ、
前記プログラム生成手段は、前記プログラムの前記ソースコードまたは前記実行形式ファイルの少なくともいずれか一方に、前記ソースコードまたは前記実行形式ファイルの前記バージョンと、前記項目の前記バージョンと、を外部から参照可能な値として保持させる
付記１乃至６いずれか１項記載のソフトウェア開発支援装置。
（付記８）
プログラムによるデータの入出力の対象となるファイルであって、１以上の項目を含む前記ファイルについて、前記項目と、前記項目のバージョンと、を定義してファイル仕様とし、前記ファイル仕様のバージョンとともに出力するファイル定義ステップと、
前記プログラムの処理内容と、前記プログラムが使用する前記項目と、前記項目の前記バージョンと、を定義してプログラム仕様とし、前記プログラム仕様のバージョンとともに出力するプログラム定義ステップと、
前記ファイル仕様に従って、前記ファイルから前記項目を入出力するためのファイル入出力部品のソースコードまたは実行形式ファイルを生成し、前記ファイル入出力部品のバージョンと、前記ファイル入出力部品が使用する前記項目の前記バージョンと、保持させて出力するファイル入出力部品生成ステップと、
前記プログラム仕様に従って、前記プログラムのソースコードまたは実行形式ファイルを生成し、前記プログラムのバージョンと、前記プログラムが使用する前記項目の前記バージョンと、を保持させて出力するプログラム生成ステップと、
前記ファイル仕様、前記プログラム仕様、前記ファイル入出力部品、前記プログラムについて、これらのバージョン及びこれらがそれぞれ含み又は使用する前記項目の前記バージョンのうちいずれか２以上を比較することにより、整合性を検査する検査ステップと、を含む
ソフトウェア開発支援方法。
（付記９）
前記検査ステップは、前記プログラム仕様の前記バージョン、前記プログラムの前記ソースコードの前記バージョン、前記プログラムの前記実行形式ファイルの前記バージョン、及び実際の運用環境に配置されている前記プログラムの前記実行形式ファイルのバージョン、のいずれか２以上を比較する
付記８記載のソフトウェア開発支援方法。
（付記１０）
前記検査ステップは、前記プログラム仕様が使用する前記項目の前記バージョン、前記ファイル入出力部品の前記ソースコードが使用する前記項目の前記バージョン、前記ファイル入出力部品の前記実行形式ファイルが使用する前記項目の前記バージョン、及び実際の運用環境に配置されている前記ファイル入出力部品の前記実行形式ファイルの前記バージョン、のいずれか２以上を比較することにより、
付記８又は９記載のソフトウェア開発支援方法。
（付記１１）
前記検査ステップは、前記ファイル仕様の前記バージョン、前記前記ファイル入出力部品の前記ソースコードの前記バージョン、前記ファイル入出力部品の前記実行形式ファイルの前記バージョン、実際の運用環境に配置されている前記ファイル入出力部品の前記実行形式ファイルの前記バージョン、及び前記運用環境に配置されている前記ファイルのバージョン、のいずれか２以上を比較することにより、
付記８乃至１０いずれか１項記載のソフトウェア開発支援方法。
（付記１２）
前記検査ステップは、前記ファイル仕様の前記項目の前記バージョン、前記前記ファイル入出力部品の前記ソースコードの前記項目の前記バージョン、前記ファイル入出力部品の前記実行形式ファイルの前記項目の前記バージョン、実際の運用環境に配置されている前記ファイル入出力部品の前記実行形式ファイルの前記項目の前記バージョン、及び前記運用環境に配置されている前記ファイルの前記項目のバージョン、のいずれか２以上を比較することにより、
付記８乃至１１いずれか１項記載のソフトウェア開発支援方法。
（付記１３）
前記ファイル定義ステップは、前記ファイル仕様の前記バージョンと、前記項目の前記バージョンと、をリポジトリ内の関係表に保持させ、
前記プログラム定義ステップは、前記プログラム仕様の前記バージョンと、前記項目の前記バージョンと、を前記関係表に保持させ、
前記ファイル入出力部品生成ステップは、前記ファイル入出力部品の前記ソースコードまたは前記実行形式ファイルの少なくともいずれか一方の前記バージョンと、前記項目の前記バージョンと、を前記関係表に保持させ、
前記プログラム生成ステップは、前記プログラムの前記ソースコードまたは前記実行形式ファイルの少なくともいずれか一方の前記バージョンと、前記項目の前記バージョンと、を前記関係表に保持させる
付記８乃至１２いずれか１項記載のソフトウェア開発支援方法。
（付記１４）
前記ファイル入出力部品生成ステップは、前記ファイル入出力部品の前記ソースコードまたは前記実行形式ファイルの少なくともいずれか一方に、前記ソースコードまたは前記実行形式ファイルの前記バージョンと、前記項目の前記バージョンと、を外部から参照可能な値として保持させ、
前記プログラム生成ステップは、前記プログラムの前記ソースコードまたは前記実行形式ファイルの少なくともいずれか一方に、前記ソースコードまたは前記実行形式ファイルの前記バージョンと、前記項目の前記バージョンと、を外部から参照可能な値として保持させる
付記８乃至１３いずれか１項記載のソフトウェア開発支援方法。
（付記１５）
付記８乃至１４記載いずれか１項の方法をコンピュータに実行させるためのプログラム。
【符号の説明】
【０１１４】
１００  ソフトウェア開発支援装置
１０１  ファイル定義手段
１０２  ファイル定義画面
１０３  バージョン情報作成手段
１０４  ファイル仕様出力手段
１０５  関係表出力手段
１０６  プログラム定義手段
１０７  プログラム定義画面
１０８  ファイル仕様参照手段
１０９  バージョン情報作成手段
１１０  プログラム仕様出力手段
１１１  関係表出力手段
１１２  ファイル入出力部品生成手段
１１３  生成手段
１１４  バージョン組込み手段
１１５  関係表出力手段
１１６  プログラム生成手段
１１７  生成手段
１１８  バージョン組込み手段
１１９  関係表出力手段
１２０  リポジトリ
１２１  ファイル仕様
１２２  プログラム仕様
１２３  関係表
１２４  入出力部品ソース
１２５  入出力部品（ライブラリ）
１２６  プログラムソース
１２７  プログラム（実行形式）
１３０  バージョン整合検査手段
１３１  バージョン取得手段
１３２  検査手段
１４０  運用環境
１４１  プログラム（実行形式）
１４２  入出力部品（ライブラリ）
１４３  ファイル
【図１】
2015097029.tif 000003
【図２】
2015097029.tif 000004
【図３】
2015097029.tif 000005
【図４】
2015097029.tif 000006
【図５】
2015097029.tif 000007
【図６】
2015097029.tif 000008
【図７】
2015097029.tif 000009
【図８】
2015097029.tif 000010
【図９】
2015097029.tif 000011
【図１０】
2015097029.tif 000012
【図１１】
2015097029.tif 000013
【図１２】
2015097029.tif 000014
【図１３】
2015097029.tif 000015
【図１４】
2015097029.tif 000016
【図１５】
2015097029.tif 000017
【図１６】
2015097029.tif 000018
【図１７】
2015097029.tif 000019
【図１８】
2015097029.tif 000020