(57)【要約】【課題】設備を制御する制御ソフトウェアを既存のソフトウェア部品組合せによって開発するソフトウェア開発において、ソフトウェア部品間の依存関係を満たした最適なソフトウェア部品の組合せを提示する【解決手段】ソフトウェア部品組合せ支援装置は、制御ソフトウェアの処理の流れを示す処理フロー情報、処理がアクセスする設備間の連動関係を示す連動関係情報および処理間の否定関係を示す処理否定関係情報を用いて、直接的・間接的同時選択関係（ＸＮＯＲ）および直接的・間接的排他選択関係（ＸＯＲ）をソフトウェア部品間の依存関係として抽出し、抽出した依存関係と新しく開発する製品の連動関係情報を満たしたソフトウェア部品組合せパターンをユーザに提示する。【選択図】  図１
2013069086.tif 000002
【特許請求の範囲】
【請求項１】
設備制御用ソフトウェアを構成する複数のソフトウェア部品のうち関連性のあるソフトウェア部品の組み合わせを抽出するソフトウェア部品組合せ抽出支援装置における方法であって、
前記ソフトウェア部品組合せ抽出支援装置は、
製品設計情報データベースと、直接的関係抽出部を有し、
前記製品設計情報データベースは、
前記設備制御用ソフトウェアによって実行される一以上の処理各々について、当該処理と、当該処理を実行するソフトウェア部品と、当該ソフトウェア部品が作用する設備と、を対応付けて登録した処理フロー情報、
を有し、
前記直接的関係抽出部が、
前記処理フロー情報を取得するステップと、
前記処理フロー情報に基づき、前記処理フロー情報で指定される複数のソフトウェア部品から同じ設備に作用するソフトウェア部品の組み合わせを直接的同時選択の関係にあるソフトウェア部品の組み合わせとして抽出するステップと、
を実行することを特徴とする方法。
【請求項２】
請求項１に係る方法であって、
前記ソフトウェア部品組合せ抽出支援装置は、さらに間接的関係抽出部を有し、
前記製品設計情報データベースはさらに、一方の設備が動作すると他方の設備も動作する連動関係にある設備を対応付けて登録した連動関係情報を有し、
前記間接的関係抽出部が、
前記処理フロー情報と前記連動関係情報を取得するステップと、
前記連動関係情報に基づき、前記連動関係にある設備に作用するソフトウェア部品の組み合わせを間接的同時選択の関係にあるソフトウェア部品として抽出するステップと、
を実行することを特徴とする方法。
【請求項３】
設備制御用ソフトウェアを構成する複数のソフトウェア部品から関連あるソフトウェア部品の組み合わせを抽出するソフトウェア部品組合せ抽出支援装置における方法であって、
前記ソフトウェア部品組合せ抽出支援装置は、
製品設計情報データベースと、直接的関係抽出部を有し、
前記製品設計情報データベースは、複数の設備制御用ソフトウェア各々について、
当該設備制御用ソフトウェアによって実行される複数の処理フローの処理各々について、当該処理を実行するソフトウェア部品と、当該ソフトウェア部品が作用する設備と、を対応付けて登録した処理フロー情報と、
当該設備制御用ソフトウェアによって実行される複数の処理フローについて、処理の結果として現れる設備の状態が正反対である処理を対応付けて登録した否定関係情報と、
を有し、
前記直接的関係抽出部は、
前記複数の設備制御用ソフトウェアのうちの一の設備制御用ソフトウェアの処理フロー情報から、当該一の設備制御用ソフトウェアを構成するソフトウェア部品群を抽出して第一のソフトウェア部品群とするステップと、
前記複数の設備制御用ソフトウェアのうち前記一の設備制御用ソフトウェア以外の設備制御用ソフトウェアを構成するソフトウェア部品であって、
前記第一のソフトウェア部品群に含まれないソフトウェア部品を抽出して第二のソフトウェア部品群とするステップと、
前記第一のソフトウェア部品群と前記第二のソフトウェア部品群の各々からソフトウェア部品を選択して組とするステップと、
前記処理フロー情報に基づき、前記組を構成するソフトウェア部品が同じ設備に作用するソフトウェア部品か判断するステップと、
前記組を構成するソフトウェア部品が同じ設備に作用する場合、前記否定関係情報に基づき、前記組を構成するソフトウェア部品による処理の結果現れる設備の状態が正反対の関係にあるものを直接的排他選択の関係にあるソフトウェア部品として抽出するステップと、
を実行することを特徴とする方法。
【請求項４】
請求項３に係る方法であって、
前記ソフトウェア部品組合せ抽出支援装置は、さらに間接的関係抽出部を有し、
前記製品設計情報データベースはさらに、一方の設備が動作すると他方の設備も動作する連動関係にある設備を対応付けて登録した連動関係情報を有し、
前記間接的関係抽出部は、
前記連動関係情報に基づき、前記抽出した組を構成するソフトウェア部品が前記連動関係にある設備に作用するソフトウェア部品である場合に間接的排他選択の関係にあるソフトウェア部品として当該ソフトウェア部品を抽出するステップと、
を実行することを特徴とする方法。
【請求項５】
請求項２及び請求項４に係る方法であって、
前記ソフトウェア部品組合せ抽出支援装置は、さらに依存関係結合部を有し、
前記依存関係結合部は、
前記直接的同時選択の関係、前記間接的同時選択の関係、前記直接的排他選択の関係、前記間接的排他選択の関係の同一又は異なる二つ以上の関係を介して生じるソフトウェア部品の暗黙的関係を抽出する手段と、
を有することを特徴とするソフトウェア部品組合せ抽出支援装置。。
【請求項６】
請求項５に係る方法であって、
前記ソフトウェア部品組合せ抽出支援装置は、さらに組合せ表示部を有し、
前記組合せ表示部は、
新たに生成される設備制御用ソフトウェアが制御対象とする設備の情報を受け付けて前記製品設計情報データベースへ登録するステップと、
前記直接的同時選択の関係または前記間接的同時選択の関係または前記直接的排他選択の関係または前記間接的排他選択の関係のいずれかを満たすソフトウェア部品の組合せのうち、前記新たな設備制御用ソフトウェアにおいて制御する設備と関連する前記ソフトウェア部品の組合せを、前記新たに生成される設備制御用ソフトウェアを構成するソフトウェア部品の候補として出力するステップと、
を実行することを特徴とする方法。
【請求項７】
請求項６に係る方法であって、
前記ソフトウェア部品組合せ抽出支援装置は、さらに部品フィードバック部を有し、
前記部品フィードバック部は、
前記直接的同時選択の関係にあるソフトウェア部品の組み合わせを一つのソフトウェア部品とみなし、前記処理フロー情報を更新するステップ
を実行することを特徴とする方法。
【請求項８】
請求項７に係る方法であって、
前記ソフトウェア部品組合せ抽出支援装置は、さらに製品処理フロー登録部を有し、
前記製品処理フロー登録部は、
前記設備制御用ソフトウェアの実行中に、実行されたソフトウェア部品と、当該ソフトウェア部品が作用した設備を識別する情報を有する実行ログ情報を蓄積するステップと、
前記実行ログ情報に基づいて前記処理フロー情報を生成するステップと、
を実行することを特徴とする方法。
【請求項９】
設備制御用ソフトウェアを構成する複数のソフトウェア部品のうち関連性のあるソフトウェア部品の組み合わせを抽出するソフトウェア部品組合せ抽出支援装置であって、
前記ソフトウェア部品組合せ抽出支援装置は、
製品設計情報データベースと、直接的関係抽出部を有し、
前記製品設計情報データベースは、
前記設備制御用ソフトウェアによって実行される一以上の処理各々について、当該処理と、当該処理を実行するソフトウェア部品と、当該ソフトウェア部品が作用する設備と、を対応付けて登録した処理フロー情報、
を有し、
前記直接的関係抽出部は、
前記処理フロー情報を取得する手段と、
前記処理フロー情報に基づき、前記処理フロー情報で指定される複数のソフトウェア部品から同じ設備に作用するソフトウェア部品の組み合わせを直接的同時選択の関係にあるソフトウェア部品の組み合わせとして抽出する手段と、
を実行することを特徴とするソフトウェア部品組合せ抽出支援装置。
【請求項１０】
請求項９に係るソフトウェア部品組合せ抽出支援装置であって、
前記ソフトウェア部品組合せ抽出支援装置は、さらに間接的関係抽出部を有し、
前記製品設計情報データベースはさらに、一方の設備が動作すると他方の設備も動作する連動関係にある設備を対応付けて登録した連動関係情報を有し、
前記間接的関係抽出部は、
前記処理フロー情報と前記連動関係情報を取得する手段と、
前記連動関係情報に基づき、前記連動関係にある設備に作用するソフトウェア部品の組み合わせを間接的同時選択の関係にあるソフトウェア部品として抽出する手段と、
を実行することを特徴とするソフトウェア部品組合せ抽出支援装置。
【請求項１１】
設備制御用ソフトウェアを構成する複数のソフトウェア部品から関連あるソフトウェア部品の組み合わせを抽出するソフトウェア部品組合せ抽出支援装置であって、
前記ソフトウェア部品組合せ抽出支援装置は、
製品設計情報データベースと、直接的関係抽出部を有し、
前記製品設計情報データベースは、複数の設備制御用ソフトウェア各々について、
当該設備制御用ソフトウェアによって実行される複数の処理フローの処理各々について、当該処理を実行するソフトウェア部品と、当該ソフトウェア部品が作用する設備と、を対応付けて登録した処理フロー情報と、
当該設備制御用ソフトウェアによって実行される複数の処理フローについて、処理の結果として現れる設備の状態が正反対である処理を対応付けて登録した否定関係情報と、
を有し、
前記直接的関係抽出部は、
前記複数の設備制御用ソフトウェアのうちの一の設備制御用ソフトウェアの処理フロー情報から、当該一の設備制御用ソフトウェアを構成するソフトウェア部品群を抽出して第一のソフトウェア部品群とする手段と、
前記複数の設備制御用ソフトウェアのうち前記一の設備制御用ソフトウェア以外の設備制御用ソフトウェアを構成するソフトウェア部品であって、
前記第一のソフトウェア部品群に含まれないソフトウェア部品を抽出して第二のソフトウェア部品群とする手段と、
前記第一のソフトウェア部品群と前記第二のソフトウェア部品群の各々からソフトウェア部品を選択して組とする手段と、
前記処理フロー情報に基づき、前記組を構成するソフトウェア部品が同じ設備に作用するソフトウェア部品か判断する手段と、
前記組を構成するソフトウェア部品が同じ設備に作用する場合、前記否定関係情報に基づき、前記組を構成するソフトウェア部品による処理の結果現れる設備の状態が正反対の関係にあるものを直接的排他選択の関係にあるソフトウェア部品として抽出する手段と、
を実行有することを特徴とするソフトウェア部品組合せ抽出支援装置。
【請求項１２】
請求項１１に係るソフトウェア部品組合せ抽出支援装置であって、
前記ソフトウェア部品組合せ抽出支援装置は、さらに間接的関係抽出部を有し、
前記製品設計情報データベースはさらに、一方の設備が動作すると他方の設備も動作する連動関係にある設備を対応付けて登録した連動関係情報を有し、
前記間接的関係抽出部は、
前記連動関係情報に基づき、前記抽出した組を構成するソフトウェア部品が前記連動関係にある設備に作用するソフトウェア部品である場合に間接的排他選択の関係にあるソフトウェア部品として当該ソフトウェア部品を抽出する手段と、
を実行することを特徴とするソフトウェア部品組合せ抽出支援装置。
【請求項１３】
請求項１０及び請求項１２に係るソフトウェア部品組合せ抽出支援装置であって、
前記ソフトウェア部品組合せ抽出支援装置は、さらに依存関係結合部を有し、
前記依存関係結合部は、
前記直接的同時選択の関係、前記間接的同時選択の関係、前記直接的排他選択の関係、前記間接的排他選択の関係の同一又は異なる二つ以上の関係を介して生じるソフトウェア部品の暗黙的関係を抽出する手段と、
を有することを特徴とするソフトウェア部品組合せ抽出支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
設備を制御する制御ソフトウェアを既存のソフトウェア部品組合せによって開発するソフトウェア開発において、ソフトウェア部品の最適な組合せパターンを提示するソフトウェア部品組合せ支援装置に関する。
【背景技術】
【０００２】
近年、多様なユーザニーズ対応のための少量多品種製品の開発を可能にする製品系列開発技術が注目を浴びている。
【０００３】
製品系列開発技術は、製品のロードマップから製品共通の部分、製品毎に可変の部分を可変性分析により明確にし、共通の部分のフレームワーク化、可変の部分のソフトウェア部品化を可能にする技術である。この技術を用いた結果、可変部分のソフトウェア部品組合せのみでソフトウェア製品を開発できるようになる  ソフトウェア部品間には暗黙の依存関係があるため、開発時にそれを無視してソフトウェア部品を組み合わせると予期せぬ不具合が発生することがある。
この問題を解決する手段として、最適だと思われるソフトウェア部品の組合せを提示する装置がある。
【０００４】
特許文献１には、各ソフトウェア部品を数値化して座標平面上に配置し、座標平面上の距離でソフトウェア部品をグループ化し、同じグループのソフトウェア部品を同時に使用する組合せパターンを優先的に提示する装置が開示されている。この装置により、過去のソフトウェア部品の利用実績という統計情報をもちいて少なくとも過去の実績の中では最適なソフトウェア部品組合せパターンを提示することが可能になる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平11-053191号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１に記載の技術では、ソフトウェア部品の組合せ方を過去の統計から導出するため、精度を高めるためには数多くの開発実績を集める必要があり、適用できるようになるまでに時間がかかる。
【０００７】
また、特許文献１に記載の技術では、過去の実績上必然的に一緒に使用されたソフトウェア部品と偶然一緒に使用されたソフトウェア部品を区別できないため、必要のない組合せまたは不具合を起こす組合せを許容してしまうことになる。
【０００８】
そこで、数少ない開発実績でも確実にソフトウェア部品間の関係を抽出し、関連あるソフトウェア部品による組合せパターンの提示が可能なソフトウェア部品組合せ支援技術が求められている。
【課題を解決するための手段】
【０００９】
本発明は上記課題を解決するために、設備制御用ソフトウェアを構成する複数のソフトウェア部品のうち関連性のあるソフトウェア部品の組み合わせを抽出するソフトウェア部品組合せ抽出支援装置における方法であって、前記ソフトウェア部品組合せ抽出支援装置は、製品設計情報データベースと、直接的関係抽出部を有し、前記製品設計情報データベースは、前記設備制御用ソフトウェアによって実行される一以上の処理各々について、当該処理と、当該処理を実行するソフトウェア部品と、当該ソフトウェア部品が作用する設備と、を対応付けて登録した処理フロー情報、を有し、前記直接的関係抽出部が、前記処理フロー情報を取得するステップと、前記処理フロー情報に基づき、前記処理フロー情報で指定される複数のソフトウェア部品から同じ設備に作用するソフトウェア部品の組み合わせを直接的同時選択の関係にあるソフトウェア部品の組み合わせとして抽出するステップと、を備える。
【発明の効果】
【００１０】
本発明によれば、数少ない開発実績でもソフトウェア部品の関係を抽出することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に係るソフトウェア部品組合せ支援装置のソフトウェア構成例を示すブロック図である。
【図２】本発明の一実施形態に係るソフトウェア部品組合せ支援装置のハードウェア構成例を示す図である。
【図３】全製品設計情報ＤＢに保持される処理フローの一例を示す図である。
【図４】処理フローを自動生成するために使用する実行ログの一例を示す図である。
【図５】全製品設計情報ＤＢに保持される連動関係情報の一例を示す図である。
【図６】全製品設計情報ＤＢに保持される処理否定関係情報の一例を示す図である。
【図７】部品間依存関係ＤＢに保持される部品間依存関係情報の一例を示す図である。
【図８】部品フィードバック部により部品の粒度を更新した後の処理フローの一例を示す図である。
【図９】ソフトウェア部品間依存関係として同時選択関係（ＸＮＯＲ）を抽出するフローの一例を示す図である。
【図１０】ソフトウェア部品間依存関係として排他選択関係（ＸＯＲ）を抽出するフローの一例を示す図である。
【発明を実施するための形態】
【００１２】
図２は、本発明の一実施形態に係るソフトウェア部品組合せ支援装置のハードウェア構成例を示す図である。
【００１３】
ソフトウェア部品組合せ支援装置２００は、ＣＰＵ２０１、表示装置２０２、入力装置２０３、メモリ２０４、外部記憶装置２０５から構成される。ＣＰＵ２０１は、外部記憶装置２０５に保持されるプログラムおよびデータをメモリ２０４上に読込み、ソフトウェア部品の組合せ支援に関する処理を実行し、最適なソフトウェア部品組合せを出力する。表示装置２０２は、ＣＰＵ２０１の出力結果をユーザに表示する。入力装置２０３は、ユーザからの製品情報入力を受け付ける。メモリ２０４は、主記憶装置であり、ＣＰＵ２０１が実行するためのプログラムおよびデータを読み込む。外部記憶装置２０５は、補助記憶装置であり、実行に必要なプログラムおよびデータを保持する。
【００１４】
図１は、本発明の一実施形態に係るソフトウェア部品組合せ支援装置のソフトウェア構成例を示すブロック図である。
【００１５】
ソフトウェア部品組合せ支援装置２００は、製品処理フロー情報登録部１０１、製品連動関係情報登録部１０２、製品処理否定関係情報登録部１０３、直接的依存関係抽出部１０５、間接的依存関係抽出部１０６、依存関係結合部１０８、組合せパターンソート表示部１０９、部品フィードバック部１１０のプログラムおよび全製品設計情報ＤＢ１０４、部品間依存関係ＤＢ１０７のデータから構成される。これらプログラムおよびデータは、前記外部記憶装置２０５に保持される。製品処理フロー情報登録部１０１は、製品開発毎にユーザの入力により得られる処理フロー情報を全製品設計情報ＤＢ１０４に格納する。また、オプションとして製品実行ログから処理フロー情報を自動生成することも可能である。製品連動関係情報登録部１０２は、製品開発毎にユーザの入力により得られる連動関係情報を全製品設計情報ＤＢ１０４に格納する。製品処理否定関係情報登録部１０３は、製品開発毎にユーザの入力により得られる処理否定関係情報を全製品設計情報ＤＢ１０４に格納する。
【００１６】
直接的依存関係抽出部１０５は、全製品設計情報ＤＢ１０４に格納されている処理フロー情報を用いて（直接的な）ソフトウェア部品間の依存関係を抽出する。間接的依存関係抽出部１０６は、全製品設計情報ＤＢ１０４に保持される処理フロー情報および連動関係情報を用いて（間接的な）ソフトウェア部品間の依存関係を抽出し、（直接的な）ソフトウェア部品間の依存関係と合わせて部品間依存関係ＤＢ１０７に格納する。ソフトウェア部品間の依存関係として、例えば、製品開発時にソフトウェア部品を両方とも使用するまたは両方とも使用しない同時選択関係（ＸＮＯＲ）や、どちらか一方のみ使用する排他選択関係（ＸＯＲ）などを抽出できる。なお、同時選択関係の「同時」とは、時間的な同時を意味するものではない。
【００１７】
依存関係結合部１０８は、部品間依存関係ＤＢ１０７に格納されている部品間依存関係情報を取得して結合することで、暗黙的に存在する依存関係を抽出する。例えば、部品Ａ、部品Ｂ、部品Ｃ、部品Ｄの４つのソフトウェア部品があり、部品Ａと部品Ｂ、部品Ｃと部品Ｄの間にそれぞれ排他選択関係（ＸＯＲ）が存在し、部品Ｂと部品Ｃの間に同時選択関係（ＸＮＯＲ）が存在する場合に、これらを結合することで、部品Ａと部品Ｄ間の関係として暗黙の同時選択関係（ＸＮＯＲ）を抽出することができる。また別の例として，部品Ａ，部品Ｂ，部品Ｃの３つのソフトウェア部品があり，部品Ａと部品Ｂ，部品Ｂと部品Ｃの間にそれぞれ同時選択関係（ＸＮＯＲ）が存在する場合に，部品Ａと部品Ｃの間の関係として暗黙の同時選択関係（ＸＮＯＲ）を抽出することができる。さらに別の例として，部品Ａ，部品Ｂ，部品Ｃ，部品Ｄの４つのソフトウェア部品があり，部品Ａと部品Ｂ，部品Ｂと部品Ｃ，部品Ｃと部品Ｄの間にそれぞれ排他選択関係（ＸＯＲ）が存在する場合，部品Ａと部品Ｃおよび部品Ｂと部品Ｄの間の関係として暗黙の同時選択関係（ＸＮＯＲ）をそれぞれ抽出することができる。
【００１８】
組合せパターンソート表示部１０９は、依存関係結合部１０８で結合した依存関係を用いて依存関係を満たす全ての組合せパターンを作成し、新しく開発する製品の連動関係情報を用いて、全ての組合せパターンから新製品における連動関係情報を満たす最適なソフトウェア部品の組合せパターンを選択し、ユーザに表示する。例えば，設備１，設備２，設備３の３つの設備とそれらの設備にアクセスする３つのソフトウェア部品として部品Ａ，部品Ｂ，部品Ｃがある場合について説明する。前提として，部品Ａは設備１，部品Ｂは設備２，部品Ｃは設備３にのみアクセスし，新しく開発する製品の連動関係情報として設備１と設備２の間の連動関係が定義されているものとする。ここで，各部品を利用するor利用しないの選択ができるので，部品の全組合せは，２ｘ２ｘ２＝８パターンある。８パターンのうち，設備１と設備２の間の連動関係を満たすパターン，すなわちそれらの設備にアクセスする部品Ａと部品Ｂを同時に利用するパターンである（部品Ａ，部品Ｂ），（部品Ａ，部品Ｂ，部品Ｃ）の２パターンが最適なソフトウェア部品の組合せパターンとして抽出される。複数候補が抽出された場合には，最終的に人手で選択することになるが，連動関係の数が多い程候補数は限られることになる。
【００１９】
部品フィードバック部１１０は、前記依存関係結合部１０８で結合した依存関係を用いて、ソフトウェア部品の粒度を見直し、全製品設計情報ＤＢ１０４の処理フロー情報を更新する。例えば、直接的同時選択関係（ＸＮＯＲ）および間接的同時選択関係（ＸＮＯＲ）にあるソフトウェア部品群は、必ず同じ製品で使用されるため管理上１つのソフトウェア部品とみなすことができる。そのため、１つのソフトウェア部品として登録しなおすことで部品選択の手間を減らすことができる。
【００２０】
図３は、全製品設計情報ＤＢに保持される処理フローの一例を示す図である。処理フロー情報３００は、処理名称３０１、設備種別３０２、設備ＩＤ３０３、ソフトウェア部品名称３０４から構成され、１処理１行として複数の処理の順番を記載することができる。例えば、制御ソフトウェアでは、設備を参照または更新する単位を１処理とすることができる。処理名称３０１には、実行する処理の名称を実行順に記載する。設備種別３０２には、処理名称３０１の各行で記載した処理が実行中にアクセスする設備の種別を記載する。設備ＩＤ３０３には、対象の設備を一意に特定する識別情報を記載する。ソフトウェア部品名称３０４には、処理名称３０１が実装されるソフトウェア部品の名称を記載する。例えば、列車の運行管理において、信号機やてこの状態を監視して、列車の在線状況や駅の状態を判断し、問題がなければ信号機やてこの状態を制御し、列車の進行を促す一連の流れを、複数処理として処理フロー情報内に記述することができる。一般的に設備の制御に関係するシステムは、設備監視、状況判断、設備制御の有限の処理フローを１セットとして、複数セットの処理フローから構成される。そのため、有限個数の処理が記載された複数の処理フロー情報を用いてこれらのシステムを表現することが可能である。ソフトウェア部品名称３０４は、初期値は１処理につき１ソフトウェア部品ということで設定するが、後記部品フィードバック部によりこの粒度は適宜更新することができる。
【００２１】
図４は、製品処理フロー情報入力部で使用する処理フロー情報を自動生成する場合に使用する実行ログの一例を示す図である。実行ログ４００は、例えば処理を実行した時刻、処理名称、処理がアクセスした設備の設備名称および設備番号から構成される。処理を実行した時刻を記載することで処理の実行順序と実行ログの記載順序の違いを直すことが可能になる。また、設備名称としてＮＵＬＬ値を設定することで、設備にアクセスする本質的な処理とは関係のない補足的な処理の除外が可能になる。
【００２２】
図５は、全製品設計情報ＤＢに格納される連動関係情報の一例を示す図である。連動関係情報５００は、例えば対象設備５０１に対する設備名称、設備番号と、対象設備５０１と連動する関係にある連動設備５０２に対する設備名称、設備番号から構成される。連動関係情報５００には、１つの連動関係を１行として複数行記載する。例えば、列車運行管理に関する設備として、駅の場内への入場を許可する場内信号機が動作すると、それと同時に線路の方向を決める転てつ器が動作するがその連動関係を１つの連動関係として連動関係情報に1行に記述することが可能である。
【００２３】
図６は、全製品設計情報ＤＢに格納される処理否定関係情報の一例を示す図である。処理否定関係情報６００は、例えば処理名称６０１と、対象となる処理の処理名称６０１と否定関係にある処理の処理名称６０２から構成される。処理否定関係情報６００には、処理間の関係が否定関係にあるものを記載する。ここで、否定関係とは、処理結果として現れる設備の状態が正反対であることを指す。例えば、列車運行管理において、設備がとりうる状態値がＯＮ/ＯＦＦの２値であることが多く、設備の状態をＯＮにする処理と設備の状態をＯＦＦにする処理の間の関係を否定関係として定義することができる。この否定関係にある処理は同時に使用されることはなく、これを否定関係処理情報６００として記載しておくことで、排他選択関係を抽出する際に活用することができる。
【００２４】
図７は、部品間依存関係ＤＢに保持される部品間依存関係情報の一例を示す図である。部品間依存関係情報７００は、例えば依存関係の種別を表す依存関係種別７０１と依存関係にあるソフトウェア部品集合を個別に定義する部品名称７０２、７０３、７０４から構成される。部品間依存関係情報７００には、１依存関係１行として複数行ソフトウェア部品間の依存関係を記載する。例えば、部品１と部品８が同時選択関係（ＸＮＯＲ）にある場合に、その依存関係を１行として部品間依存関係情報に記載することができる。
【００２５】
図８は、部品フィードバック部によりソフトウェア部品の粒度を更新した後の処理フロー情報の一例を示す図である。処理フロー情報８００は、前記処理フロー情報３００と構成は同じである。処理フロー情報３００では、１ソフトウェア部品あたり１処理としてソフトウェア部品項目を設定していた。処理フロー情報８００に示す例は、図７に示す依存関係がある場合に、図７の１行目および２行目に記載するＸＮＯＲ関係のうち、同一設備を制御するソフトウェア部品をそれぞれ１つの部品とみなして、処理フロー情報３００の部品粒度を見直したものである。例えば、部品１と部品８が同時選択関係（ＸＮＯＲ）にある場合に、部品１と部品８は１つの部品とみなすことができるので、処理フロー情報３００の部品８を部品１と設定しなおす。このように処理フロー情報のソフトウェア部品項目を可変とすることにより、ソフトウェア部品粒度の最適化が可能となる。
【００２６】
図９は、ソフトウェア部品間依存関係として同時選択関係（ＸＮＯＲ）を抽出するフローの一例を示す図である。
【００２７】
直接的依存関係抽出部で実行開始（ステップ９０１）した後、全製品設計情報ＤＢから連動関係情報の取得（ステップ９０２）と処理フロー情報の取得（ステップ９０３）を行う。取得した処理フロー情報内の処理のうち、同じ設備にアクセスする処理群を選択し、選択した各処理に対応するソフトウェア部品をそれぞれ抽出し、これらの部品を直接的同時選択関係としてグループ化する（ステップ９０４）。
【００２８】
続いて間接的依存関係抽出部で、取得済みの連動関係情報を参照し、前記直接的同時選択関係を抽出する上でキーとなった設備と連動関係にある設備を取得する。そして、連動関係にある設備をアクセスするソフトウェア部品群を間接的同時選択関係としてグループ化する（ステップ９０５）。以降ステップ９０４およびステップ９０５を処理フロー情報に含まれる全設備に対して行う。上記処理を行った後、前記直接的同時選択関係および間接的同時選択関係のグループをまとめてＸＮＯＲ依存関係として全製品設計情報ＤＢに格納する（ステップ９０６）。以降ステップ９０３からステップ９０６を製品の処理フロー情報の数だけ実行する。
【００２９】
図１０は、ソフトウェア部品間依存関係として排他選択関係（ＸＯＲ）を抽出するフローの一例を示す図である。
【００３０】
直接的依存関係抽出部で実行開始（ステップ１００１）した後、全製品設計情報ＤＢから連動関係情報と処理否定関係情報を取得し（ステップ１００２）、合わせて１製品分の処理フロー情報を取得する（ステップ１００３）。１製品分の処理フロー情報からその製品で使用したソフトウェア部品である適用済ソフトウェア部品群を抽出する（ステップ１００４）。続いて、全設計情報ＤＢから前記製品で使用していないソフトウェア部品である未適用ソフトウェア部品群を抽出する（ステップ１００５）。前記適用済ソフトウェア部品群と未適用ソフトウェア部品群から任意のソフトウェア部品を選んでソフトウェア部品のペアを作成する（ステップ１００６）。前記ソフトウェア部品のペアのうち、それぞれのソフトウェア部品が同じ設備にアクセスするペアを直接的排他選択関係候補として設定する（ステップ１００７）。そして、取得済みの処理否定関係情報を参照し、直接的排他選択関係候補のペアであるソフトウェア部品それぞれに紐づく処理が否定関係にあるものをＸＯＲ依存関係として設定する（ステップ１００８）。
【００３１】
続いて間接的依存関係抽出部で、取得済み連動関係情報を参照し、前記ステップ１００６で作成したペアのうち、ステップ１００８で直接的排他選択関係として設定されなかったソフトウェア部品のペアのうち、それぞれのソフトウェア部品がアクセスする設備が連動関係にあるペアを間接的排他選択関係として設定する（ステップ１００９）。
【符号の説明】
【００３２】
２００  …ソフトウェア部品組合せ支援装置、
１０１  …製品処理フロー情報登録部、
１０２  …製品連動関係情報登録部、
１０３  …製品処理否定関係情報登録部、
１０４  …全製品設計情報ＤＢ、
１０５  …直接的依存関係抽出部、
１０６  …間接的依存関係抽出部、
１０７  …部品間依存関係ＤＢ
１０８  …依存関係結合部
１０９  …組合せパターンソート表示部
１１０  …部品フィードバック部
【図１】
2013069086.tif 000003
【図２】
2013069086.tif 000004
【図３】
2013069086.tif 000005
【図４】
2013069086.tif 000006
【図５】
2013069086.tif 000007
【図６】
2013069086.tif 000008
【図７】
2013069086.tif 000009
【図８】
2013069086.tif 000010
【図９】
2013069086.tif 000011
【図１０】
2013069086.tif 000012