(57)【要約】【課題】工程順序に逆らって登録された設計情報によって、上流工程の設計情報に影響が及ばないようにする。【解決手段】ソフトウェア開発支援装置において設計情報を管理することによってソフトウェア開発を支援する方法であって、ソフトウェア開発支援装置の記憶部には、上流工程の設計情報と下流工程の設計情報との対応を定義する参照関係スキーマ情報と、設計情報間の対応関係を推定するための代替識別属性情報とが記憶され、ソフトウェア開発支援装置に設計情報が入力されると、参照関係スキーマ情報に基づいて、入力された設計情報に対応する参照元設計情報を特定し、参照元設計情報を特定できない場合には、代替識別属性情報に基づいて、参照元設計情報を推定し、入力された設計情報と、推定された参照元設計情報又は特定された参照元設計情報との整合性を判定し、整合性の判定結果に基づいて、入力された設計情報を登録する。【選択図】図１
2009289129.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア開発支援装置において、ソフトウェアの設計情報を管理し、開発を支援するソフトウェア開発支援方法であって、
前記ソフトウェア開発支援装置は、プロセッサ、及び前記プロセッサに接続される記憶部を備え、
前記記憶部には、上流工程の設計情報と下流工程の設計情報との対応を定義する参照関係スキーマ情報と、前記設計情報間の対応関係を推定するための代替識別属性情報とが記憶され、
前記方法は、
前記設計情報が入力されると、前記参照関係スキーマ情報に基づいて、前記入力された設計情報に対応する参照元設計情報を特定し、
前記参照元設計情報を特定できない場合には、前記代替識別属性情報に基づいて、前記参照元設計情報を推定し、
前記入力された設計情報と、前記推定された参照元設計情報又は前記特定された参照元設計情報との整合性を判定し、
前記整合性の判定結果に基づいて、前記入力された設計情報を登録することを特徴とするソフトウェア開発支援方法。
【請求項２】
前記設計情報は、ソフトウェア開発における各開発工程で生成される情報であって、前記設計情報を構成する項目に対応して保持されることを特徴とする請求項１に記載のソフトウェア開発支援方法。
【請求項３】
前記代替識別属性情報には、前記設計情報の識別子と、前記設計情報の識別子に対応する上流工程の設計情報の識別子を代替可能な代替識別属性とを含み、
前記方法は、
前記入力された設計情報が上流工程の設計情報を利用せずに作成された場合には、前記代替識別属性情報に基づいて、前記代替識別属性を含む設計情報を検索し、
前記検索された設計情報を参照元設計情報と推定することを特徴とする請求項１又は請求項２に記載のソフトウェア開発支援方法。
【請求項４】
前記方法は、
前記参照元設計情報が特定された場合には、前記入力された設計情報のバージョンと前記参照元設計情報のバージョンが一致している場合に整合と判定し、
前記参照元設計情報が推定された場合には、前記入力された設計情報の値が前記参照元設計情報の値と一致している場合に整合と判定することを特徴とする請求項１から請求項３のいずれか一つに記載のソフトウェア開発支援方法。
【請求項５】
前記入力された設計情報を登録する処理は、
前記参照元設計情報と前記入力された設計情報とが整合と判定された場合には、前記入力された設計情報をそのまま登録し、
前記参照元設計情報と前記入力された設計情報とが不整合と判定され、かつ、前記参照元設計情報のバージョンが前記入力された設計情報のバージョンよりも古い場合又は前記参照元設計情報を推定できなかった場合には、前記入力された設計情報が不整合であることを示す情報とともに前記設計情報を強制的に登録し、
前記参照元設計情報と前記入力された設計情報とが不整合と判定され、かつ、前記参照元設計情報のバージョンが前記入力された設計情報のバージョンよりも新しい場合又は前記参照元設計情報が推定されていた場合には、前記入力された設計情報の登録を中止することを特徴とする請求項４に記載のソフトウェア開発支援方法。
【請求項６】
前記方法は、所定のタイミングで、前記強制的に登録された設計情報の整合性を再判定することを特徴とする請求項５に記載のソフトウェア開発支援方法。
【請求項７】
前記所定のタイミングは、
前記参照元設計情報が存在しなかった場合には、前記参照元設計情報が新たに追加されたタイミングであって、
前記参照元設計情報が存在していた場合には、前記参照元設計情報が更新されたタイミングであることを特徴とする請求項６に記載のソフトウェア開発支援方法。
【請求項８】
前記方法は、前記強制的に登録された設計情報の整合性が再判定された結果、前記参照元設計情報と整合すると判定された場合には、前記強制的に登録された設計情報が不整合であることを示す情報を削除することを特徴とする請求項６又は請求項７に記載のソフトウェア開発支援方法。
【請求項９】
前記方法は、
前記参照元設計情報と前記入力された設計情報との整合性の判定結果を提示し、
前記入力された設計情報をそのまま登録する通常登録、前記入力された設計情報が不整合であることを示す情報とともに登録する強制登録、又は前記入力された設計情報の登録を中止することのいずれかの選択を受け付けることを特徴とする請求項１から請求項３のいずれか一つに記載のソフトウェア開発支援方法。
【請求項１０】
前記方法は、
前記設計情報に対応する工程の下流工程で参照される設計情報の識別属性の入力を受け付け、
前記下流工程の設計情報が登録される場合に、前記入力された識別属性に基づいて、前記参照元設計情報が特定されることを特徴とする請求項１から請求項９のいずれか一つに記載のソフトウェア開発支援方法。
【請求項１１】
前記方法は、前記入力された設計情報の登録結果を通知することを特徴とする請求項１から請求項１０のいずれか一つに記載のソフトウェア開発支援方法。
【請求項１２】
前記方法は、前記参照元設計情報と前記入力された設計情報とが不整合である場合には、前記整合性の判定結果に基づいて、不整合が生じている要因を提示することを特徴とする請求項１から請求項１１のいずれか一つに記載のソフトウェア開発支援方法。
【請求項１３】
プロセッサ及び記憶部を備え、ソフトウェア開発における各開発工程で生成される設計情報を管理するソフトウェア開発支援装置であって、
前記記憶部には、上流工程の設計情報と下流工程の設計情報との対応を定義する参照関係スキーマ情報と、前記設計情報間の対応関係を推定するための代替識別属性情報とが記憶され、
前記プロセッサは、
前記設計情報が入力されると、前記参照関係スキーマ情報に基づいて、前記入力された設計情報に対応する参照元設計情報を特定し、
前記参照元設計情報を特定できない場合には、前記代替識別属性情報に基づいて、前記参照元設計情報を推定し、
前記入力された設計情報と、前記推定された参照元設計情報又は前記特定された参照元設計情報との整合性を判定し、
前記整合性の判定結果に基づいて、前記入力された設計情報を登録することを特徴とするソフトウェア開発支援装置。
【請求項１４】
前記代替識別属性情報には、前記設計情報の識別子と、前記設計情報の識別子に対応する上流工程の設計情報の識別子を代替可能な代替識別属性とを含み、
前記プロセッサは、
前記入力された設計情報が上流工程の設計情報を利用せずに作成された場合には、前記代替識別属性情報に基づいて、前記代替識別属性を含む設計情報を検索し、
前記検索された設計情報を参照元設計情報と推定することを特徴とする請求項１３に記載のソフトウェア開発支援装置。
【請求項１５】
前記プロセッサは、
前記参照元設計情報が特定された場合には、前記入力された設計情報のバージョンと前記参照元設計情報のバージョンが一致している場合に整合と判定し、
前記参照元設計情報が推定された場合には、前記入力された設計情報の値が前記参照元設計情報の値と一致している場合に整合と判定することを特徴とする請求項１３又は請求項１４に記載のソフトウェア開発支援装置。
【請求項１６】
前記入力された設計情報を登録する処理は、
前記参照元設計情報と前記入力された設計情報とが整合と判定された場合には、前記入力された設計情報をそのまま登録し、
前記参照元設計情報と前記入力された設計情報とが不整合と判定され、前記参照元設計情報のバージョンが前記入力された設計情報のバージョンよりも古い場合又は前記参照元設計情報を推定できなかった場合には、前記入力された設計情報が不整合であることを示す情報とともに前記設計情報を強制的に登録し、
前記参照元設計情報と前記入力された設計情報とが不整合と判定され、前記参照元設計情報のバージョンが前記入力された設計情報のバージョンよりも新しい場合又は前記参照元設計情報が推定されていた場合には、前記入力された設計情報の登録を中止することを特徴とする請求項１５に記載のソフトウェア開発支援装置。
【請求項１７】
前記プロセッサは、前記参照元設計情報が新たに追加又は更新された場合には、前記強制的に登録された設計情報の整合性を再判定することを特徴とする請求項１６に記載のソフトウェア開発支援装置。
【請求項１８】
前記プロセッサは、前記入力された設計情報の登録結果を通知することを特徴とする請求項１３から請求項１７のいずれか一つに記載のソフトウェア開発支援装置。
【請求項１９】
ソフトウェア開発における各開発工程で生成される設計情報を管理するソフトウェア開発支援システムであって、
前記ソフトウェア開発支援システムは、前記設計情報を管理するソフトウェア開発支援装置を含み、
前記ソフトウェア開発支援装置は、
プログラムを処理することによって業務処理を実行するプロセッサと、前記プロセッサによって処理される業務処理に必要なデータ及びプログラムを記憶する記憶部とを備え、
上流工程の設計情報と下流工程の設計情報との対応を定義する参照関係スキーマ情報と、前記設計情報間の対応関係を推定するための代替識別属性情報とを管理し、
前記設計情報が入力されると、前記参照関係スキーマ情報に基づいて、前記入力された設計情報に対応する参照元設計情報を特定し、
前記参照元設計情報を特定できない場合には、前記代替識別属性情報に基づいて、前記参照元設計情報を推定し、
前記入力された設計情報と、前記推定された参照元設計情報又は前記特定された参照元設計情報との整合性を判定し、
前記整合性の判定結果に基づいて、前記入力された設計情報を登録することを特徴とするソフトウェア開発支援システム。
【請求項２０】
ソフトウェア開発支援装置で実行され、ソフトウェア開発における各開発工程で生成される設計情報を管理するプログラムであって、
前記ソフトウェア開発支援装置には、上流工程の設計情報と下流工程の設計情報との対応を定義する参照関係スキーマ情報と、前記設計情報間の対応関係を推定するための代替識別属性情報とが記憶され、
前記プログラムは、
前記設計情報が入力されると、前記参照関係スキーマ情報に基づいて、前記入力された設計情報に対応する参照元設計情報を特定する手順と、
前記参照元設計情報を特定できない場合には、前記代替識別属性情報に基づいて、前記参照元設計情報を推定する手順と、
前記入力された設計情報と、前記推定された参照元設計情報又は前記特定された参照元設計情報との整合性を判定する手順と、
前記整合性の判定結果に基づいて、前記入力された設計情報を登録する手順と、を含むことを特徴とするソフトウェア開発支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア開発を支援する技術に関し、特に、多くの人員及び工程を必要とする大規模プロジェクトにおけるソフトウェア開発を支援する技術に関する。
【背景技術】
【０００２】
複数の開発者が関わる大規模プロジェクトでは、一般的に、事前に作成された設計書及び仕様変更票などに基づいて開発作業が進められる。各開発者は、互いに独立して作業するため、下流工程の設計情報が上流工程の設計情報よりも先行して生成又は変更される可能性がある。このような場合に対応するために、ある設計情報が生成又は変更された際に、影響が及ぶ上流工程及び下流工程の設計情報との整合性を保証する技術が提案されている。
【０００３】
例えば、特許文献１に開示された技術では、設計情報間の関連情報を取得及び管理し、設計情報に変更があった場合に、関連する他の設計情報にフラグを付けることなどによって開発者に通知し、変更可能性のある設計情報を提供する。
【０００４】
また、特許文献２に開示された技術では、複数の設計情報の共通部分を抽出して一元管理し、設計情報に変更があった場合には、一元管理されている共通部分を変更することによって、自動的に変更を反映し、仕様変更の反映を支援する。
【特許文献１】特開平５−３５４６０号公報
【特許文献２】特開２００６−７９２１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１及び特許文献２に開示された技術は、ある設計情報が生成又は変更された場合に、設計情報と何らかの関連（例えば参照利用関係）を有する上流工程又は下流工程の設計情報を互いに区別せず、両方に影響が及ぶとみなして整合性保証の対象とする。したがって、関連元（参照元）である上流工程の設計情報の値が、関連先（利用先）である下流工程の設計情報の変更によって、変更後の値で（特許文献２の場合は自動的に、特許文献１の場合は作業ミスなどによって）不当に上書きされてしまう可能性がある。
【０００６】
また、工程順序に逆らって登録された設計情報間の整合状態、及び、不整合が発生している場合の不整合要因を認識することができない。
【０００７】
本発明では、工程順序に逆らって設計情報が登録された場合に、整合性を確保する技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一形態では、ソフトウェア開発支援装置において、設計情報を管理するソフトウェア開発支援方法であって、前記ソフトウェア開発支援装置は、プロセッサ、及び前記プロセッサに接続される記憶部を備え、前記記憶部には、上流工程の設計情報と下流工程の設計情報との対応を定義する参照関係スキーマ情報と、前記設計情報間の対応関係を推定するための代替識別属性情報とが記憶され、前記方法は、前記設計情報が入力されると、前記参照関係スキーマ情報に基づいて、前記入力された設計情報に対応する参照元設計情報を特定し、前記参照元設計情報を特定できない場合には、前記代替識別属性情報に基づいて、前記参照元設計情報を推定し、前記入力された設計情報と、前記推定された参照元設計情報又は前記特定された参照元設計情報との整合性を判定し、前記整合性の判定結果に基づいて、前記入力された設計情報を登録する。
【発明の効果】
【０００９】
本発明の代表的な一形態によれば、入力された設計情報と参照元の設計情報との整合性を判定し、整合性の判定結果に基づいて、参照元の設計情報に不適切な影響を与えないように設計情報を登録することができる。
【発明を実施するための最良の形態】
【００１０】
本発明の実施の形態では、ソフトウェア及びシステムの設計、開発及び保守の現場において、上流工程の変更対応が完了する前に下流工程が先行して変更された場合に、下流工程の設計情報及びあらかじめ登録された定義情報に基づいて、関連する上流側の設計情報を抽出又は推定する。その後、関連する上流工程の設計情報が追加又は更新されたか否か、及び、追加又は更新された上流側の設計情報が関連する下流側の設計情報と整合するか否かを判定し、両者が整合した場合に下流工程が正式に変更されたものとみなす。
【００１１】
以下、本発明の実施の形態について図面を用いて説明する。
【００１２】
（第１の実施の形態）
図１は、本発明の第１の実施の形態のソフトウェア開発支援システム１００の構成を示す図である。
【００１３】
本発明の第１の実施の形態のソフトウェア開発支援システム１００は、ＣＰＵ１０１、メモリ１０２、及び外部インターフェイス１０３を備え、それぞれバス１０８を介して相互に接続されている。
【００１４】
ＣＰＵ１０１は、メモリ１０２に記憶されたプログラムを処理することによって、業務処理を実行する。メモリ１０２は、ＣＰＵ１０１によって処理されるプログラム及び当該プログラムを処理する際に使用されるデータを記憶する。
【００１５】
外部インターフェイス１０３は、入出力装置などとＣＰＵ１０１及びメモリ１０２とを接続する。具体的には、外部インターフェイス１０３には、入力装置１０４、出力装置１０５、通信装置１０６、及び外部記憶装置１０７が接続される。
【００１６】
入力装置１０４は、利用者からの入力を受け付ける。出力装置１０５は、利用者から要求された情報、及び利用者によって要求された処理の結果などを出力する。通信装置１０６は、外部の機器と接続する。例えば、ネットワークインタフェースカード（ＮＩＣ）であって、ネットワークを介して他の装置によって接続される。
【００１７】
外部記憶装置１０７は、ソフトウェア開発支援システム１００で使用されるプログラム及び情報が格納される。外部記憶装置１０７は、例えば、不揮発性記憶媒体である。
【００１８】
外部記憶装置１０７に格納されるプログラムは、設計情報登録プログラム１１０、参照元推定プログラム１１１、整合状態確認プログラム１１２、状態情報通知プログラム１１３、強制登録見直しプログラム１１４、及び参照元変更確認プログラム１１５である。前述したように、これらの処理プログラムは実行時にメモリ１０２に読み込まれ、ＣＰＵ１０１によって実行される。
【００１９】
また、外部記憶装置１０７には、設計情報記憶部１２０及び関係情報記憶部１３０が含まれる。設計情報記憶部１２０及び関係情報記憶部１３０は、前述したプログラムとは別の外部記憶装置に格納するようにしてもよい。例えば、大規模なシステム開発の場合には、格納する設計情報が膨大になる可能性があるため、別途ストレージ装置に格納するようにしてもよい。また、データベース管理システムが稼働するデータベースサーバを別途用意し、設計情報記憶部１２０及び関係情報記憶部１３０に格納されるデータを管理してもよい。
【００２０】
設計情報記憶部１２０は、入力装置１０４を介して外部から入力された設計情報が格納される。設計情報は、まず、外部記憶装置１０７の設計情報記憶部１２０の非公開設計情報１２１に書き込まれる。公開設計情報１２２は、整合性が確認された設計情報が格納される。登録状態情報１２３は、登録された設計情報の状態を示す情報が格納される。具体的には、設計情報が上流工程との整合性が保証されている状態で登録された通常登録又は不整合の状態で登録された強制登録である。
【００２１】
関係情報記憶部１３０は、設計情報の参照関係などの関係情報が格納される。具体的には、入力装置１０４を介して外部から参照関係スキーマ定義及び代替識別属性定義が入力され、それぞれ参照関係スキーマ定義情報１３１及び代替識別属性定義情報１３２に書き込まれる。さらに、関係情報記憶部１３０には、参照関係インスタンス情報１３３、整合状態情報１３４及び強制登録見直し対象情報１３５が格納されている。
【００２２】
参照関係インスタンス情報１３３は、実際に参照利用した上流工程の設計情報の識別属性と、利用先の設計情報の識別属性の組合せを保存した情報が格納される。整合状態情報１３４は、参照元の設計情報と利用先の設計情報との整合性を示す情報が格納される。強制登録見直し対象情報１３５は、強制登録されたために整合性が保証されていない設計情報が格納される。
【００２３】
ここで、各処理プログラムによって実行される処理の概要について説明する。
【００２４】
設計情報登録プログラム１１０は、非公開設計情報１２１から読み出された設計情報と、参照関係スキーマ定義情報１３１から読み出された参照関係スキーマ定義情報とに基づいて、参照関係インスタンス情報を生成する。さらに、生成された参照関係インスタンス情報を関係情報記憶部１３０の参照関係インスタンス情報１３３に書き込む。
【００２５】
また、設計情報から生成された参照関係インスタンス情報の参照元の設計情報が不明な場合には、設計情報登録プログラム１１０によって参照元推定プログラム１１１が呼び出される。
【００２６】
参照元推定プログラム１１１は、非公開設計情報１２１から読み出された設計情報と、代替識別属性定義情報１３２から読み出された代替識別属性定義情報とに基づいて、参照関係インスタンス情報の不明な参照元の設計情報を推定し、その結果を推定値フラグとともに参照関係インスタンス情報１３３の参照元の設計情報の値として書き込む。
【００２７】
また、設計情報登録プログラム１１０は、整合状態確認プログラム１１２を実行する。整合状態確認プログラム１１２は、参照関係インスタンス情報１３３から読み出された参照関係インスタンス情報について、参照元と利用先の設計情報のバージョン又は値を比較し、結果を参照関係インスタンス間の整合状態として整合状態情報１３４に書き込む。
【００２８】
また、設計情報登録プログラム１１０は、非公開設計情報１２１、参照関係インスタンス情報１３３、及び整合状態情報１３４から、それぞれ設計情報、参照関係インスタンス情報（設計情報の外部キーを含む）、整合状態情報（設計情報の外部キーを含む）を読み出し、これら３種類の情報を設計情報の外部キーを用いて結合する。
【００２９】
このとき、設計情報登録プログラム１１０によって、通常登録による設計情報の公開又は強制登録による設計情報の公開が実行される。
【００３０】
通常登録による設計情報の公開は、設計情報が「整合状態＝整合」の場合に行われる。具体的には、設計情報記憶部１２０の登録状態情報１２３に利用先の設計情報の識別属性の値とともに「登録状態＝通常登録」と書き込み、利用先の設計情報を設計情報記憶部１２０の公開設計情報１２２にコピーする。
【００３１】
また、強制登録による設計情報の公開は、設計情報の「整合状態＝不整合」、かつ、参照関係インスタンス情報の参照元の設計情報の「推定値フラグ＝ＮＯ」、かつ、設計情報のバージョン関係が「参照元＜利用先」の場合に行われる。具体的には、設計情報記憶部１２０の登録状態情報１２３に利用先の設計情報の識別属性の値とともに「登録状態＝強制登録」と書き込み、関係情報記憶部１３０の強制登録見直し対象情報１３５に強制登録の見直し条件とともに参照関係インスタンス情報を書き込み、利用先の設計情報を設計情報記憶部１２０の公開設計情報１２２にコピーする。なお、参照元の設計情報が未登録のために不整合が発生している場合には「強制登録の見直し条件＝参照元追加時」、参照元の設計情報が登録済であるが不整合が発生している場合には「強制登録の見直し条件＝参照元更新時」とする。
【００３２】
強制登録見直しプログラム１１４は、外部から強制登録見直し要求コマンドが入力された際に、参照元変更確認プログラム１１５を実行する。参照元変更確認プログラム１１５は、強制登録見直し対象情報１３５から強制登録見直し対象情報を読み出す。このとき、「強制登録の見直し条件＝参照元追加時」の場合には、参照元推定プログラム１１１を実行し、最新の設計情報から参照関係インスタンス情報を推定する。参照元の設計情報が追加されていた場合には、さらに強制登録見直しプログラム１１４によって整合状態確認プログラム１１２を実行する。
【００３３】
他方、強制登録見直しプログラム１１４は、「強制登録の見直し条件＝参照元更新時」の場合には、最新の設計情報から参照元の設計情報が更新されたか否かを確認する。参照元の設計情報が更新されていた場合には、さらに強制登録見直しプログラム１１４によって整合状態確認プログラム１１２を実行する。整合状態確認プログラム１１２は、参照関係インスタンス間の整合状態を確認し、「整合状態＝整合」の場合には、参照関係インスタンスの利用先の設計情報に該当する登録状態情報１２３の「登録状態＝通常登録」に更新する。さらに、参照関係インスタンスの利用先の設計情報に該当する強制登録見直し対象情報１３５の強制登録見直し対象情報を削除する。
【００３４】
状態情報通知プログラム１１３は、設計情報の登録完了時、強制登録の見直し完了時、及び外部から状態情報の参照要求コマンドが入力された際に、設計情報の登録結果、強制登録の見直し結果、設計情報の登録状態情報、参照関係インスタンスの整合状態情報、及び強制登録見直し対象情報を、出力装置１０５を介して外部に出力する。
【００３５】
図２は、本発明の第１の実施の形態のソフトウェア開発支援システム１００の全体の処理を示すフローチャートである。
【００３６】
ソフトウェア開発支援システム１００は、設計情報の登録機能、強制登録の見直し機能、及び設計情報のレポーティング機能を有する。
【００３７】
ＣＰＵ１０１は、まず、利用者から要求された処理が設計情報の登録要求であるか否かを判定する（ステップ２００）。利用者から要求された処理が設計情報の登録要求の場合には（ステップ２００の結果が「ＹＥＳ」）、設計情報の登録処理を実行する（ステップ２０１）。ここで、設計情報の登録要求は、例えば、外部のソフトウェア開発者が任意のタイミングで入力可能である。また、登録要求の対象となる一つ以上の設計情報は、一覧指定及び範囲指定など任意の方法で指定可能である。なお、設計情報の登録処理の詳細は、図３にて後述する。
【００３８】
一方、ＣＰＵ１０１は、利用者から要求された処理が設計情報の登録要求でない場合には（ステップ２００の結果が「ＮＯ」）、利用者から要求された処理が強制登録された設計情報の見直し要求であるか否かを判定する（ステップ２０２）。利用者から要求された処理が強制登録の見直し要求の場合には（ステップ２０２の結果が「ＹＥＳ」）、強制登録の見直し処理を実行する（ステップ２０３）。ここで、強制登録の見直し要求は、例えば、外部のソフトウェア開発者又はプロジェクト管理者が、任意のタイミングで入力したり、あらかじめ指定した定期的なタイミングで入力したりすることが可能である。また、強制登録の見直し要求の対象となる一つ以上の設計情報は、一覧指定又は範囲指定など任意の方法で外部から指定可能である。なお、強制登録の見直し処理の詳細は、図４にて後述する。
【００３９】
さらに、ＣＰＵ１０１は、利用者から要求された処理が強制登録の見直し要求でない場合には（ステップ２０２の結果が「ＮＯ」）、状態情報の参照要求であるか否かを判定する（ステップ２０４）。利用者から要求された処理が状態情報の参照要求の場合には（ステップ２０４の結果が「ＹＥＳ」）、状態情報のレポーティングを実行する（ステップ２０５）。ここで、状態情報の参照要求は、例えば外部のソフトウェア開発者又はプロジェクト管理者が、任意のタイミングで入力したり、あらかじめ指定した定期的なタイミングで入力したりすることが可能である。
【００４０】
また、状態情報のレポーティングとは、利用者によって指定された一つ以上の設計情報について、その登録状態情報、当該設計情報が参照元又は利用先となっている参照関係インスタンスの整合状態情報、当該設計情報の識別属性の値を外部キーとして持つ強制登録見直し対象情報などを外部に出力する処理である。また、状態情報のレポーティングでは、各種情報の値をそのまま出力したり、又は各種情報の値が一定の条件を満たす件数を出力したりすることが可能である。
【００４１】
ＣＰＵ１０１は、利用者から要求された処理が状態情報の参照要求でない場合には（ステップ２０４の結果が「ＮＯ」）、利用者からの入力を待機する。設計情報の登録処理（ステップ２０１）、強制登録の見直し処理（ステップ２０３）、又は状態情報のレポーティング（ステップ２０５）の処理が完了すると、利用者からプログラム終了要求コマンドが入力されたか否かの判定する（ステップ２０６）。プログラム終了要求コマンドが入力された場合には（ステップ２０６の結果が「ＹＥＳ」）、本処理を終了する。プログラム終了要求コマンドが入力されていない場合には（ステップ２０６の結果が「ＮＯ」）、利用者からの入力を待機する。
【００４２】
続いて、図３のフローチャートを参照しながら、設計情報を登録する手順について詳しく説明する。
【００４３】
図３は、本発明の第１の実施の形態の設計情報の登録処理の手順を示すフローチャートである。
【００４４】
ＣＰＵ１０１は、設計情報登録プログラム１１０によって、入力装置１０４を介して外部から入力された編集済みの設計情報を非公開設計情報１２１に書き込む（ステップ３００）。なお、外部のソフトウェア開発者が設計作業時にソフトウェア開発支援システム１００に接続し、オンライン上で非公開設計情報１２１に格納された設計情報を編集してもよい。こうすることによって、外部（ソフトウェア開発支援システム１００にとってのクライアント）で使用する記憶領域を削減することができる。
【００４５】
ＣＰＵ１０１は、設計情報登録プログラム１１０によって、非公開設計情報１２１から設計情報を読み出し、さらに、参照関係スキーマ定義情報１３１から参照関係スキーマ定義情報を読み出す。そして、各々の設計情報について該当する参照関係スキーマ定義情報が存在するか否かを判定する（ステップ３０１）。
【００４６】
ここで、参照関係スキーマ定義情報について具体的に説明する。
【００４７】
ソフトウェア開発者が設計作業を行う際に、上流工程の設計情報を参照し、上流工程の設計情報の一部を選択して現工程の設計情報に埋め込むことによって、現工程の設計情報を表現する場合がある。参照関係スキーマ定義情報とは、上流工程と現工程との整合性を確保するために、上流工程の設計情報の一部を選択して現工程の設計情報に埋め込むことが義務付けられている場合に、参照元と利用先の設計情報の識別属性の組合せを定義した情報のことである。
【００４８】
一例として、インターフェイスの開発者が上流工程で生成されたデータ項目辞書を参照してインターフェイス定義を生成する場合について説明する。上流工程の設計情報、現工程の設計情報、及び参照関係スキーマ定義情報の具体例を図５から図７に示す。
【００４９】
図５は、本発明の第１の実施の形態の上流工程の設計情報にあたるデータ項目辞書の一例を示す図である。
【００５０】
データ項目辞書は、データ項目識別子５００、データ項目名５０１、及びバージョン５０２を含む。さらに、データ型、桁数、更新日時などの属性を含む。
【００５１】
データ項目識別子５００は、データ項目を識別する識別子である。データ項目名５０１は、データ項目の名称である。バージョン５０２は、データ項目のバージョンを示す数値であって、データ項目の属性が変更されるたびに加算される。
【００５２】
図６は、本発明の第１の実施の形態の現工程の設計情報にあたるインターフェイス定義の一例を示す図である。
【００５３】
図６に示すインターフェイス定義は、顧客名を入力項目として顧客情報を出力するインターフェイスの定義情報である。インターフェイス定義は、参照関係スキーマ定義情報を生成するために必要な情報として、インターフェイス入力項目名６００、第一参照元データ項目識別子６０１、第一参照元データ項目バージョン６０２、インターフェイス出力項目名６０３、第二参照元データ項目識別子６０４、及び第二参照元データ項目バージョン６０５を含む。さらに、インターフェイスを識別するインターフェイス識別子などを含む。
【００５４】
インターフェイス入力項目名６００は、入力項目の名称である。第一参照元データ項目識別子６０１は、入力項目に対応するデータ項目の識別子である。第一参照元データ項目バージョン６０２は、第一参照元データ項目のバージョンである。インターフェイス出力項目名６０３は、出力項目の名称である。第二参照元データ項目識別子６０４は、出力項目に対応するデータ項目の識別子である。第二参照元データ項目バージョン６０５は、第二参照元データ項目のバージョンである。
【００５５】
図７は、本発明の第１の実施の形態の参照関係スキーマ定義情報１３１の一例を示す図である。
【００５６】
インターフェイス定義は、入力項目及び出力項目に対応するデータ項目を選択することによって作成される。具体的には、図５に示したデータ項目辞書のデータ項目名５０１を参照し、図６に示したインターフェイス定義のインターフェイス入力項目名６００及びインターフェイス出力項目名６０３が定義される。データ項目辞書のデータ項目識別子５００の値が、インターフェイス定義の第一参照元データ項目識別子６０１及び第二参照元データ項目識別子６０４に格納される。
【００５７】
参照関係スキーマ定義情報は、上流工程である参照元の識別属性７００と、下流工程である利用先の識別属性７０１との対応が格納される。前述した例では、参照元の識別属性７００がデータ項目辞書の「データ項目識別子５００」であって、利用先の識別属性７０１がインターフェイス定義の「インターフェイス入力項目識別子」及び「インターフェイス出力項目識別子」となる。
【００５８】
参照関係スキーマ定義情報は、下流工程の設計情報を入力する場合には、すでに作成済みとなっていることを前提とする。例えば、プロジェクト開始時にプロジェクト管理者によって作成される。
【００５９】
また、設計情報に該当する参照関係スキーマ定義が存在するということは、当該設計情報の識別属性が、参照関係スキーマ定義の利用先の設計情報の識別属性と一致している場合のことである。
【００６０】
ここで、図３のフローチャートの説明に戻る。
【００６１】
ＣＰＵ１０１は、非公開設計情報１２１から読み出された設計情報に該当する参照関係スキーマ定義が存在する場合には（ステップ３０１の結果が「Ｙｅｓ」）、設計情報登録プログラム１１０によって、各々の設計情報に該当する参照関係スキーマ定義情報を用いて参照関係インスタンス情報を生成する。さらに、参照関係インスタンス情報の参照元の設計情報の識別属性が明らかとなっているか否かを判定する（ステップ３０２）。
【００６２】
また、ステップ３０２の処理で生成された参照関係インスタンス情報は、関係情報記憶部１３０の参照関係インスタンス情報１３３に書き込まれる。
【００６３】
参照関係インスタンス情報とは、前述したように、ソフトウェア開発者が設計作業を行う際に、実際に参照利用した上流工程の設計情報の識別属性と、利用先の設計情報の識別属性との組合せを保存した情報のことである。参照関係インスタンス情報の具体例を図８に示す。
【００６４】
図８は、本発明の第１の実施の形態の参照関係インスタンス情報１３３の一例を示す図である。
【００６５】
参照関係インスタンス情報１３３は、参照元の設計情報８００及び利用先の設計情報８１０を含む。
【００６６】
参照元の設計情報８００には、識別属性の名前８０１、識別属性の値８０２、及び推定値フラグ８０３が含まれる。例えば、レコード８２０の識別属性の名前８０１及び識別属性の値８０２は、フィールド名に対応する「データ項目識別子」と値に対応する「Ｄ−０００２」が格納されている。推定値フラグ８０３は、参照元の設計情報８００と利用先の設計情報８１０とが参照関係スキーマ定義情報１３１などによって対応付けられた場合には「ＮＯ」、参照元の設計情報８００が推定された値である場合には「ＹＥＳ」が格納される。推定値フラグの初期値は「ＮＯ」に設定される。推定値フラグ８０３は、図３のステップ３０３の処理で設定され、詳細については後述する。
【００６７】
利用先の設計情報８１０には、識別属性の名前８０１及び識別属性の値８０２が含まれる。識別属性の名前８０１及び識別属性の値８０２が含まれる。レコード８２０には、フィールド名に対応する「インターフェイス入力項目識別子」と値に対応する「ＩＦＩＮ−００８７」が格納されている。
【００６８】
ここで、図３のフローチャートの説明に戻る。
【００６９】
ＣＰＵ１０１は、利用先の設計情報において参照元の設計情報が不明の場合、すなわち、ソフトウェア開発者が上流工程の設計情報を参照利用せず、独自に現工程の設計を生成した場合には（ステップ３０２の結果が「Ｎｏ」）、公開設計情報の中から該当する参照元の設計情報が推定可能であるか否かを判定する（ステップ３０３）。
【００７０】
参照元の設計情報は、参照元推定プログラム１１１が実行されることによって、代替識別属性定義情報に基づいて推定される。
【００７１】
具体的に説明すると、まず、利用先の設計情報に基づいて、代替識別属性定義情報１３２から代替識別属性定義情報を取得する。次に、取得された代替識別属性に基づいて、公開設計情報１２２から対応する公開設計情報を取得する。取得された公開設計情報を参照元の設計情報として推定する。代替識別属性定義情報１３２の具体例を図９に示す。
【００７２】
図９は、本発明の第１の実施の形態の代替識別属性定義情報１３２の一例を示す図である。
【００７３】
代替識別属性定義情報１３２は、参照元の開発工程９０１、参照元の識別属性９０２、利用先の開発工程９０３、及び利用先の識別属性９０４を含む。
【００７４】
参照元の設計情報を推定するために代替識別属性定義情報１３２を検索する場合、利用先の設計情報、すわなち、利用先の開発工程９０３及び利用先の識別属性９０４は既知である。したがって、利用先の開発工程９０３及び利用先の識別属性９０４に基づいて、参照元の開発工程９０１及び参照元の識別属性９０２が検索される。そして、公開設計情報から参照元の開発工程９０１が同一であって、かつ、参照元の識別属性９０２が対応する設計情報を参照元の設計情報として推定する。
【００７５】
ここで、図３のフローチャートの説明に戻る。
【００７６】
ＣＰＵ１０１は、参照元の設計情報が推定可能である場合には（ステップ３０３の結果が「Ｙｅｓ」）、推定された参照元の設計情報の識別属性の値を、識別属性の名前及び推定値フラグとともに、参照関係インスタンス情報１３３に参照元の設計情報として書き込む。なお、この場合に設定される推定値フラグの値は常に「ＹＥＳ」である。その後、ステップ３０４の処理を実行する。
【００７７】
ＣＰＵ１０１は、参照元の設計情報が明らかな場合、すなわち、ソフトウェア開発者が上流工程の設計情報を参照利用して現工程の設計情報を生成した場合には（ステップ３０２の結果が「Ｙｅｓ」）、ステップ３０４の処理を実行する。
【００７８】
ＣＰＵ１０１は、整合状態確認プログラム１１２によって、非公開設計情報１２１から設計情報を読み出し、さらに、参照関係インスタンス情報１３３から参照関係インスタンス情報を読み出す。そして、読み出された設計情報及び参照関係インスタンス情報を設計情報の外部キーに基づいて結合する。続いて、参照関係インスタンスの参照元の設計情報と利用先の設計情報のバージョン又は値を比較し、両者の整合性を判定する（ステップ３０４）。さらに、判定結果を参照関係インスタンス間の整合状態として、関係情報記憶部１３０の整合状態情報１３４に書き込む。
【００７９】
ここで、参照関係インスタンスの参照元の設計情報と利用先の設計情報との整合性とは、参照元の設計情報が推定値の場合は、参照元と利用先の設計情報の値の一致をもって整合とみなし、参照元の設計情報が推定値でない場合は、参照元と利用先の設計情報のバージョンの一致をもって整合とみなす。また、整合状態情報とは、参照元と利用先の設計情報の識別情報と整合状態とで構成されるものとする。整合状態情報の具体例を図１０に示す。
【００８０】
図１０は、本発明の第１の実施の形態の設計情報間の整合状態を格納する整合状態情報１３４の一例を示す図である。
【００８１】
整合状態情報１３４は、参照元の設計情報１０１０、利用先の設計情報１０２０、及び整合状態１０３０を含む。参照元の設計情報１０１０及び利用先の設計情報１０２０には、それぞれ識別属性の名前及び識別属性の値が含まれる。整合状態１０３０は、参照元の設計情報１０１０に対応する利用先の設計情報１０２０が整合しているか否かを示す情報で、前述したように、「整合」又は「不整合」が格納される。
【００８２】
ここで、図３のフローチャートの説明に戻る。
【００８３】
ＣＰＵ１０１は、参照関係インスタンスの参照元の設計情報と利用先の設計情報が不整合の場合には（ステップ３０４の結果が「不整合」）、設計情報登録プログラム１１０を実行し、参照関係インスタンス間の参照元と利用先の設計情報のバージョンを比較する（ステップ３０５）。
【００８４】
このとき、参照元の設計情報が推定値でなく（「推定値フラグ＝ＮＯ」）、かつ、設計情報のバージョン関係が「参照元＜利用先」の場合は、「外部で、現工程（利用先）の開発者が上流工程（参照元）の設計情報を参照利用せずに、意図的に独自の設計情報を生成した場合なので、強制的に登録してしまってよい」とみなし、ＣＰＵ１０１は、ステップ３０７の処理を実行する。
【００８５】
他方、設計情報のバージョン関係が「参照元＞利用先」の場合は、「外部で、現工程（利用先）の開発者が知らない間に上流工程（参照元）の設計情報が更新又は削除されているので、いったん登録を中止し、現工程の開発者に影響先の確認又は必要な修正をしてもらわなければならない」とみなし、ＣＰＵ１０１は、ステップ３１１の処理を実行する。
【００８６】
また、設計情報のバージョン関係が「参照元＝推定値」の場合は、「上流工程又は現工程のいずれかの開発者が作業ミスをしているので、いったん登録を中止し、上流工程及び現工程の開発者に影響先の確認又は必要な修正をしてもらわなければならない」とみなし、ＣＰＵ１０１は、ステップ３１１の処理を実行する。
【００８７】
ＣＰＵ１０１は、参照元の設計情報を推定できない場合には（ステップ３０３の結果が「ＮＯ」）、参照関係インスタンスの整合状態を「不整合」として、整合状態情報１３４に書き込む（ステップ３０６）。
【００８８】
ＣＰＵ１０１は、設計情報登録プログラム１１０によって、設計情報の登録状態を「強制登録」として、登録状態情報１２３に書き込む（ステップ３０７）。ここで、登録状態情報とは、設計情報の識別属性と設計情報の登録状態の組合せを保存した情報のことである。登録状態情報１２３の具体例を図１１に示す。
【００８９】
図１１は、本発明の第１の実施の形態の設計情報の登録状態を格納する登録状態情報１２３の一例を示す図である。
【００９０】
登録状態情報１２３は、設計情報識別属性１１０１及び登録状態１１０２を含む。登録状態１１０２には、「通常登録」又は「強制登録」が格納される。「通常登録」は参照元の設計情報と整合している場合に格納される。一方、「強制登録」は参照元の設計情報を見直す必要がある場合に格納される。
【００９１】
ここで、図３のフローチャートの説明に戻る。
【００９２】
ＣＰＵ１０１は、設計情報登録プログラム１１０によって、参照関係インスタンス情報を強制登録見直し対象情報１３５に書き込む（ステップ３０８）。さらに、強制登録の見直し条件も書き込む。強制登録の見直し条件に書き込む内容は、参照関係インスタンスの参照元の設計情報が存在していない場合には強制登録の見直し条件を「参照元追加時」とする。また、参照関係インスタンスの参照元の設計情報が存在している場合には、強制登録の見直し条件を「参照元更新時」とする。また、書き込み時に、同じ参照元と利用先の設計情報の識別属性が既に存在している場合には上書きする。強制登録見直し対象情報の具体例を図１２に示す。
【００９３】
図１２は、本発明の第１の実施の形態の強制登録見直し対象情報１３５の一例を示す図である。
【００９４】
強制登録見直し対象情報１３５は、強制登録見直し対象１２１０及び強制登録の見直し条件１２２０を含む。強制登録見直し対象１２１０は、参照元の設計情報と利用先の設計情報とを含む。参照元の設計情報にはバージョンも含まれる。
【００９５】
ここで、図３のフローチャートの説明に戻る。
【００９６】
ＣＰＵ１０１は、非公開設計情報１２１から読み出された設計情報に該当する参照関係スキーマ定義が存在しない場合には（ステップ３０１の結果が「Ｎｏ」）、設計情報登録プログラム１１０によって、読み出された設計情報の登録状態を「通常登録」として登録状態情報１２３に書き込む（ステップ３０９）。
【００９７】
ＣＰＵ１０１は、設計情報登録プログラム１１０によって、非公開設計情報１２１から設計情報を読み出し、公開設計情報１２２に上書きコピーする（ステップ３１０）。
【００９８】
最後に、ＣＰＵ１０１は、状態情報通知プログラム１１３によって、設計情報の登録結果を外部に通知し、プログラムを終了する（ステップ３１１）。ここで、設計情報の登録結果とは、例えば、設計情報の登録状態又は登録を中止した理由などである。また、登録結果の通知先としては、例えば、「参照元か利用先の開発者の作業ミス」の場合には、参照元及び利用先の設計情報の開発者に通知し、それ以外の場合には、利用先の設計情報の開発者のみに通知するなど、あらかじめ定義された通知条件にしたがって、任意に指定可能である。登録結果の通知先、登録時の条件、及び登録処理の結果をまとめた具体例を図１３に示す。
【００９９】
図１３は、本発明の第１の実施の形態の登録時の条件と登録処理の結果との対応の一例を示す図である。
【０１００】
図１３に示す例では、登録時の条件を構成する内容には、参照関係スキーマ１３０１、参照元の値１３０２、代替識別属性を用いた参照元の推定１３０３、参照関係インスタンス間の整合状態１３０４、及び参照関係インスタンス間のバージョン関係１３０５が含まれる。
【０１０１】
一方、登録処理の結果には、参照関係インスタンス間の不整合要因１３１１、登録処理の種類１３１２、登録結果の通知先１３１３、及び強制登録の見直し条件１３１４が含まれる。
【０１０２】
例えば、新たに登録された設計情報について、参照関係スキーマ１３０１に該当する情報が存在しない場合には（ステップ３０１の結果が「ＮＯ」）、参照元の設計情報が存在しないとみなし、不整合が生じることはない。登録処理の結果としては、登録処理の種類１３１２が「通常登録」となり、設計情報を登録した現工程の開発者にその旨通知する。
【０１０３】
別の例を挙げると、参照関係スキーマ１３０１に該当する情報が含まれ（ステップ３０１の結果が「Ｙｅｓ」）、参照元の設計情報の識別属性が明らかな場合に（ステップ３０２の結果が「Ｙｅｓ」）、参照元の設計情報のバージョンが登録された設計情報よりも古い場合、すなわち、参照元の設計情報と不整合が生じている場合には（ステップ３０３の結果が「Ｙｅｓ」）、参照元の設計情報が更新される前に新たに設計情報を登録したことが不整合の要因となっている。この場合には、「強制登録」を実施し、参照元の設計情報が更新されたタイミングで再度整合性を確認する。
【０１０４】
なお、参照元の設計情報又は利用先の設計情報の入力ミスなどによって不整合が生じている場合には（ステップ３０５の結果が「ＮＯ」）、登録を中止する。
【０１０５】
設計情報の登録処理の手順では、ステップ３０３から３０５の処理で、（１）参照元の設計情報を推定可能か否か、（２）参照関係インスタンスの参照元と利用先の設計情報が整合しているか否か、（３）参照関係インスタンスの参照元と利用先の設計情報のバージョンという３種類の条件で、（あ）通常登録、（い）強制登録、（う）登録中止のいずれかの登録処理を決定している。
【０１０６】
第１の実施の形態の変形例として、ステップ３０３から３０５の処理において、（い）強制登録、（う）登録中止のいずれかの登録処理しか選択できないと判定された場合には、状態情報通知プログラム１１３によって、判定結果を外部に通知し、外部からの指示を受け付けて、ステップ３０６、ステップ３０７、又はステップ３１１のいずれかの処理を実行するようにしてもよい。
【０１０７】
こうすることによって、外部から登録を要求された設計情報の特徴及び他の設計情報との関係のみに基づいて機械的に登録処理の種類を決定するだけでなく、プロジェクトの進行とともに変化し得る外部環境（例えばソフトウェア開発者やプロジェクト管理者のスキル、開発の規模や開発スケジュールなど）とあわせて総合的に考慮した上で、より最適な登録処理の種類を決定することが可能となる。
【０１０８】
以上が設計情報の登録の処理手順の詳細な説明である。続いて、強制登録の見直しの処理手順について、図４のフローチャートを参照しながら説明する。
【０１０９】
図４は、本発明の第１の実施の形態の強制登録された設計情報を見直す手順を示すフローチャートである。
【０１１０】
ＣＰＵ１０１は、強制登録見直しプログラム１１４によって、強制登録見直し対象情報１３５から強制登録見直し対象情報を読み出す。図２のステップ２０２の処理で強制登録の見直し要求の対象として外部から指定された設計情報の識別属性と、強制登録見直し対象情報の利用先の設計情報の識別属性とを比較し、設計情報が強制登録見直し対象情報と一致するか否かを判定する（ステップ４００）。一致しない場合には（ステップ４００の結果が「ＮＯ」）、状態情報通知プログラム１１３によって、強制登録の見直しが実行できない旨を外部にエラーを通知し（ステップ４０９）、本処理を終了する。この場合には、外部から入力された強制登録の見直し要求の対象が、現在、何らかの理由により見直しの対象から外れているか、あるいは複数の見直し対象と一致してしまうためである。
【０１１１】
ＣＰＵ１０１は、外部から指定された設計情報の識別属性と強制登録見直し対象情報の利用先の設計情報の識別属性とが一致する場合には（ステップ４００の結果が「Ｙｅｓ」）、強制登録見直しプログラム１１４によって、ステップ４００の処理で一致した強制登録見直し対象情報の見直し条件を取得する。そして、強制登録の見直し条件が「参照元追加時」であるか、強制登録の見直し条件が「参照元更新時」であるかを判定する（ステップ４０１）。
【０１１２】
ＣＰＵ１０１は、強制登録の見直し条件が「参照元追加時」の場合には（ステップ４０１の結果が「参照元追加時」）、参照元推定プログラム１１１によって、ステップ４００で一致した強制登録見直し対象情報について、参照元の設計情報を図３のステップ３０３処理と同様の手順で代替識別属性定義情報に基づいて推定する（ステップ４０２）。
【０１１３】
また、ここで推定された参照元の設計情報の識別属性の値を参照関係インスタンス情報１３３に参照元の設計情報として書き込む。さらに、識別属性の名前と、値を「ＹＥＳ」として推定値フラグを参照関係インスタンス情報１３３に書き込む。また、ステップ４００で一致した強制登録見直し対象情報の見直し条件を「参照元更新時」に更新する。
【０１１４】
ＣＰＵ１０１は、参照元の設計情報が推定できなかった場合には（ステップ４０２の結果が「ＮＯ」）、強制登録の見直しが失敗した旨を通知し（ステップ４０７）、本処理を終了する。
【０１１５】
一方、ＣＰＵ１０１は、強制登録の見直し条件が「参照元更新時」の場合には（ステップ４０１の結果が「参照元更新時」）、参照元の設計情報が更新されているか否かを判定する（ステップ４０８）。具体的には、参照元変更確認プログラム１１５によって、非公開設計情報１２１から設計情報を読み出し、ステップ４００の処理で一致した強制登録見直し対象情報の参照元の設計情報と識別属性の値が一致する設計情報を検索し、両者のバージョンを比較する。強制登録見直し対象情報の参照元の設計情報よりも現在の設計情報のバージョンのほうが古い場合には（ステップ４０８の結果が「ＮＯ」）、参照元の設計情報が更新されていないため、強制登録の見直しが失敗した旨を通知し（ステップ４０７）、本処理を終了する。
【０１１６】
ＣＰＵ１０１は、参照元の設計情報が推定された場合（ステップ４０２の結果が「ＹＥＳ」）、又は、参照元の設計情報が更新されている場合には（ステップ４０８の結果が「ＹＥＳ」）、整合状態確認プログラム１１２によって、ステップ４００の処理で一致した強制登録見直し対象情報の参照元と利用先の設計情報のバージョン又は値を比較し、ステップ３０４の処理と同様の手順で両者が整合しているか否かを判定する（ステップ４０３）。また、判定結果を参照関係インスタンス間の整合状態とみなし、整合状態情報１３４を更新する。
【０１１７】
ＣＰＵ１０１は、強制登録見直し対象情報の参照元と利用先の設計情報とが整合していない場合には（ステップ４０３の結果が「ＮＯ」）、強制登録の見直しが失敗した旨を通知し（ステップ４０７）、本処理を終了する。
【０１１８】
ＣＰＵ１０１は、強制登録見直し対象情報の参照元と利用先の設計情報とが整合している場合には（ステップ４０３の結果が「ＹＥＳ」）、強制登録見直しプログラム１１４によって、強制登録対象の設計情報の登録状態を「通常登録」として、登録状態情報１２３に書き込む（ステップ４０４）。
【０１１９】
ＣＰＵ１０１は、強制登録見直しプログラム１１４によって、参照関係インスタンス情報１３３に格納された参照関係インスタンス情報のうち、参照元の設計情報の識別属性の値が、ステップ４００の処理で一致した強制登録見直し対象情報の参照元の設計情報の識別属性と等しい参照関係インスタンス情報の推定値フラグを「ＮＯ」に参照関係インスタンス情報１３３を更新する（ステップ４０５）。
【０１２０】
ＣＰＵ１０１は、さらに、強制登録見直しプログラム１１４によって、ステップ４００の処理で一致した強制登録見直し対象情報を強制登録見直し対象情報１３５から削除する（ステップ４０６）。
【０１２１】
ＣＰＵ１０１は、状態情報通知プログラム１１３によって、強制登録の見直し結果を外部に通知し（ステップ４０７）、本処理を終了する。ここで、強制登録の見直し結果とは、例えば、見直し後の設計情報の登録状態である。また、強制登録の見直し結果の通知先としては、あらかじめ任意に定義された通知条件にしたがって、利用先の設計情報の開発者及びプロジェクト管理者が指定されている。
【０１２２】
以上が強制登録の見直しの処理手順の詳細な説明である。
【０１２３】
本発明の第１の実施の形態によれば、整合性が保証されていない設計情報は、強制登録された設計情報として識別することが可能である。したがって、上流工程の変更対応を待たずに、関連する下流工程の設計情報の変更が先行した場合であっても、上流工程に不適切な影響を与えないようにすることが可能となる。
【０１２４】
また、本発明の第１の実施の形態によれば、外部から登録を要求された設計情報の特徴又は他の設計情報との関係のみに基づいて機械的に登録処理の種類を決定するだけでなく、プロジェクトの進行とともに変化し得る外部環境（例えばソフトウェア開発者又はプロジェクト管理者のスキル、開発の規模若しくは開発スケジュールなど）とあわせて総合的に考慮した上で、より最適な登録処理の種類を決定することが可能となる。
【０１２５】
（第２の実施の形態）
第１の実施の形態では、参照関係インスタンス情報の参照元の設計情報の識別属性の値が不明の場合には、参照元の設計情報を推定していたが、第２の実施の形態では、登録中止とする。その代わり、参照元の識別属性のみの先行登録を可能とする。なお、第１の実施の形態と共通する内容については適宜説明を省略する。
【０１２６】
図１４は、本発明の第２の実施の形態の設計情報の登録処理の手順を示すフローチャートである。
【０１２７】
図３に示した第１の実施の形態の登録処理との相違点は、参照関係インスタンス情報の参照元の設計情報の識別属性の値が不明の場合に（ステップ３０２の結果が「ＮＯ」）、参照元の識別情報を先行して登録することが可能な点である。
【０１２８】
第２の実施の形態では、第１の実施の形態と共通する図２のステップ２００の処理において、「通常登録」と「先行登録」を選択して実行可能とする。先行登録とは、下流工程で参照利用される可能性のある設計情報の少なくとも識別属性のみを先行して登録することである。
【０１２９】
ＣＰＵ１０１は、参照関係インスタンス情報の参照元の設計情報の識別属性の値が不明の場合に（ステップ３０２の結果が「ＮＯ」）、本処理が参照元の設計情報の識別情報の先行登録を選択して実行されたか否かを判定する（ステップ１４０１）。先行登録を選択して実行されたのではない場合には（ステップ１４０１の結果が「ＮＯ」）、設計情報の全属性を登録するために本処理が実行されたため、参照元の設計情報の識別情報が存在しないため、設計情報の登録が失敗した旨を通知し（ステップ３１１）、本処理を終了する。
【０１３０】
ＣＰＵ１０１は、本処理が参照元の設計情報の識別情報の先行登録を選択して実行された場合には（ステップ１４０１の結果が「ＹＥＳ」）、下流工程で参照利用される可能性のある設計情報の少なくとも識別属性を先行して登録する（ステップ１４０２）。このように、上流工程の設計情報の識別情報を先行して登録することによって、整合性を保った状態で、下流工程の設計情報を登録することができる。この場合に、上流工程の設計情報をすべて入力する必要がないため、上流工程の開発者の負荷を調整しやすくなる。
【０１３１】
本発明の第２の実施の形態によれば、参照元の設計情報が入力された状態で下流工程（利用先）の設計情報が入力されるため、設計情報の整合性を保証することができる。この場合に、上流工程の設計情報の入力を前述したように、（１）識別属性のみの先行登録と（２）全属性の登録の二段階に分割することによって、上流工程の開発者の負荷を調整しやすくすることによって、上流工程で設計情報が入力されていないために下流工程で設計情報を入力することができないといった事態を防ぐことができる。
【図面の簡単な説明】
【０１３２】
【図１】本発明の第１の実施の形態のソフトウェア開発支援システムの構成を示す図である。
【図２】本発明の第１の実施の形態のソフトウェア開発支援システムの全体の処理を示すフローチャートである。
【図３】本発明の第１の実施の形態の設計情報の登録処理の手順を示すフローチャートである。
【図５】本発明の第１の実施の形態の上流工程の設計情報にあたるデータ項目辞書の一例を示す図である。
【図４】本発明の第１の実施の形態の強制登録された設計情報を見直す手順を示すフローチャートである。
【図６】本発明の第１の実施の形態の現工程の設計情報にあたるインターフェイス定義の一例を示す図である。
【図７】本発明の第１の実施の形態の参照関係スキーマ定義情報の一例を示す図である。
【図８】本発明の第１の実施の形態の参照関係インスタンス情報の一例を示す図である。
【図９】本発明の第１の実施の形態の代替識別属性定義情報の一例を示す図である。
【図１０】本発明の第１の実施の形態の設計情報間の整合状態を格納する整合状態情報の一例を示す図である。
【図１１】本発明の第１の実施の形態の設計情報の登録状態を格納する登録状態情報の一例を示す図である。
【図１２】本発明の第１の実施の形態の強制登録見直し対象情報の一例を示す図である。
【図１３】本発明の第１の実施の形態の登録時の条件と登録処理の結果との対応の一例を示す図である。
【図１４】本発明の第２の実施の形態の設計情報の登録処理の手順を示すフローチャートである。
【符号の説明】
【０１３３】
１００    ソフトウェア開発支援システム
１０１    ＣＰＵ
１０２    メモリ
１０３    外部インターフェイス
１０４    入力装置
１０５    出力装置
１０６    通信装置
１０７    外部記憶装置
１０８    バス
１１０    設計情報登録プログラム
１１１    参照元推定プログラム
１１２    整合状態確認プログラム
１１３    状態情報通知プログラム
１１４    強制登録見直しプログラム
１１５    参照元変更確認プログラム
１２０    設計情報記憶部
１２１    非公開設計情報
１２２    公開設計情報
１２３    登録状態情報
１３０    関係情報記憶部
１３１    参照関係スキーマ定義情報
１３２    代替識別属性定義情報
１３３    参照関係インスタンス情報
１３４    整合状態情報
１３５    強制登録見直し対象情報
【図１】
2009289129.tif 000003
【図２】
2009289129.tif 000004
【図３】
2009289129.tif 000005
【図４】
2009289129.tif 000006
【図５】
2009289129.tif 000007
【図６】
2009289129.tif 000008
【図７】
2009289129.tif 000009
【図８】
2009289129.tif 000010
【図９】
2009289129.tif 000011
【図１０】
2009289129.tif 000012
【図１１】
2009289129.tif 000013
【図１２】
2009289129.tif 000014
【図１３】
2009289129.tif 000015
【図１４】
2009289129.tif 000016