(57)【要約】【課題】開発対象の制御ソフトウェアの作成において既存のソフトウェア部品の利用を支援する。【解決手段】既存の機器の制御ソフトウェアに用いられているソフトウェア部品のバージョン毎に、既存の機器の仕様の各々の頻度の分布を表す尤度を演算し、既存の機器の制御ソフトウェアに用いられているソフトウェア部品毎に、バージョンの各々の利用頻度の分布を表す事前確率を演算する。尤度と事前確率を用いて、開発対象の機器の仕様毎に、既存のソフトウェア部品の各バージョンの再利用可能性を表す事後確率を演算する。【選択図】図１
2010250739.tif 000002
【特許請求の範囲】
【請求項１】
既存の機器の仕様が格納されている仕様データベースと、既存の機器の制御ソフトウェアに用いられているソフトウェア部品と該ソフトウェア部品のバージョンが格納されているソフトウェア部品データベースと、入力装置と、演算装置と、を用いて、開発対象の制御ソフトウェアの作成において既存のソフトウェア部品の利用を支援するソフトウェア部品再利用支援方法において、
前記演算装置によって、前記仕様データベースに格納された前記機器の仕様と前記ソフトソフトウェア部品データベースに格納された前記ソフト部品及び前記ソフトウェア部品のバージョンとを用いて、前記ソフトウェア部品のバージョン毎に、前記仕様の各々の頻度の分布を表す尤度を演算する尤度分析ステップと、
前記演算装置によって、前記仕様データベースに格納された前記機器の仕様と前記ソフトソフトウェア部品データベースに格納された前記ソフト部品及び前記ソフトウェア部品のバージョンとを用いて、前記ソフトウェア部品毎に、前記バージョンの各々の利用頻度の分布を表す事前確率を演算する事前確率分析ステップと、
前記入力装置を介して、開発対象の機器の仕様を入力する仕様入力ステップと、
前記演算装置によって、前記開発対象の機器の仕様と前記尤度と前記事前確率を用いて、前記開発対象の機器の仕様毎に、前記既存のソフトウェア部品の各バージョンの再利用可能性を表す事後確率を演算する事後確率分析ステップと、
前記演算装置によって、前記事後確率が高いソフト部品のバージョンを前記開発対象の機器の制御ソフトウェアに再利用可能なソフト部品として選択するソフト部品選択ステップと、
を有するソフトウェア部品再利用支援方法。
【請求項２】
請求項１記載のソフトウェア部品再利用支援方法において、
前記事後確率演算ステップは、
前記尤度をＰ（Ａ｜Ｂ）、前記事前確率をＰ（Ｂ）、前記事後確率をＰ（Ｂ｜Ａ）とし、前記既存の全機器において前記開発対象の機器の仕様が選択された確率をＰ（Ａ）とするとき、式Ｐ（Ｂ｜Ａ）＝Ｐ（Ａ｜Ｂ）Ｐ（Ｂ）／Ｐ（Ａ）によって前記事後確率を演算することを特徴とするソフトウェア部品再利用支援方法。
【請求項３】
請求項１記載のソフトウェア部品再利用支援方法において、
前記ソフト部品選択ステップでは、前記事後確率分析ステップにて演算した前記事後確率を所定の閾値と比較し、該閾値より大きい事後確率を有するソフト部品のバージョンを再利用可能なソフト部品として選択することを特徴とするソフトウェア部品再利用支援方法。
【請求項４】
請求項１記載のソフトウェア部品再利用支援方法において、
前記ソフトウェア部品の間における選択を拘束する論理関係を設定するステップと、
を有し、
前記ソフト部品選択ステップでは、前記事後確率が高いソフト部品のバージョンのうち前記論理関係を満たすものを、再利用可能なソフト部品として選択することを特徴とするソフトウェア部品再利用支援方法。
【請求項５】
請求項４記載のソフトウェア部品再利用支援方法において、
前記論理関係は、２つのソフト部品のバージョンのうち一方のソフト部品のバージョンを選択すると他方のソフト部品のバージョンを選択できない関係である排他関係と、複数のソフト部品のバージョンのうち１つのソフト部品のバージョンを選択すると他の特定のソフト部品のバージョンを選択しなければならない関係である依存関係の少なくとも１つを含むことを特徴とするソフトウェア部品再利用支援方法。
【請求項６】
請求項１記載のソフトウェア部品再利用支援方法において、
前記機器はエンジン制御装置であり、前記機器の仕様はエンジン制御装置の仕様であり、前記制御ソフトウェアはエンジン制御ソフトウェアであることを特徴とするソフトウェア部品再利用支援方法。
【請求項７】
既存の機器の仕様が格納されている仕様データベースと、既存の機器の制御ソフトウェアに用いられているソフトウェア部品と該ソフトウェア部品のバージョンが格納されているソフトウェア部品データベースと、コンピュータとを用いて、開発対象の制御ソフトウェアの作成において既存のソフトウェア部品の利用を支援するソフトウェア部品再利用支援方法において、
前記仕様データベースに格納された前記機器の仕様と前記ソフトソフトウェア部品データベースに格納された前記ソフト部品及び前記ソフトウェア部品のバージョンとを用いて、前記ソフトウェア部品のバージョン毎に、前記仕様の各々の頻度の分布を表す尤度を演算する尤度分析ステップと、
前記仕様データベースに格納された前記機器の仕様と前記ソフトソフトウェア部品データベースに格納された前記ソフト部品及び前記ソフトウェア部品のバージョンとを用いて、前記ソフトウェア部品毎に、前記バージョンの各々の利用頻度の分布を表す事前確率を演算する事前確率分析ステップと、
開発対象の機器の仕様を入力する仕様入力ステップと、
前記開発対象の機器の仕様毎に、前記既存のソフトウェア部品の各バージョンの再利用可能性を表す事後確率を演算する事後確率分析ステップと、
を有し、
前記事後確率分析ステップでは、前記尤度をＰ（Ａ｜Ｂ）、前記事前確率をＰ（Ｂ）、前記事後確率をＰ（Ｂ｜Ａ）とし、前記既存の全機器において前記開発対象の機器の仕様が選択された確率をＰ（Ａ）とするとき、式Ｐ（Ｂ｜Ａ）＝Ｐ（Ａ｜Ｂ）Ｐ（Ｂ）／Ｐ（Ａ）によって前記事後確率を演算することを特徴とするソフトウェア部品再利用支援方法。
【請求項８】
請求項７記載のソフトウェア部品再利用支援方法において、
前記ソフトウェア部品の間における選択を拘束する論理関係を設定するステップと、
を有し、
前記ソフト部品選択ステップでは、前記事後確率が高いソフト部品のバージョンのうち前記論理関係を満たすものを、再利用可能なソフト部品として選択することを特徴とするソフトウェア部品再利用支援方法。
【請求項９】
請求項８記載のソフトウェア部品再利用支援方法において、
前記論理関係は、２つのソフト部品のバージョンのうち一方のソフト部品のバージョンを選択すると他方のソフト部品のバージョンを選択できない関係である排他関係と、複数のソフト部品のバージョンのうち１つのソフト部品のバージョンを選択すると他の特定のソフト部品のバージョンを選択しなければならない関係である依存関係の少なくとも１つを含むことを特徴とするソフトウェア部品再利用支援方法。
【請求項１０】
請求項７記載のソフトウェア部品再利用支援方法において、
前記機器はエンジン制御装置であり、前記機器の仕様はエンジン制御装置の仕様であり、前記制御ソフトウェアはエンジン制御ソフトウェアであることを特徴とするソフトウェア部品再利用支援方法。
【請求項１１】
既存の機器の仕様が格納されている仕様データベースと、既存の機器の制御ソフトウェアに用いられているソフトウェア部品と該ソフトウェア部品のバージョンが格納されているソフトウェア部品データベースと、入力装置と、前記入力装置を介して入力された開発対象の機器の仕様に基づいて前記ソフトウェア部品データベースから再利用可能なソフトウェア部品を探索する再利用ソフトウェア部品探索装置と、とを有し、開発対象の制御ソフトウェアの作成において既存のソフトウェア部品の利用を支援するソフトウェア部品再利用支援装置において、
前記再利用ソフトウェア部品探索装置は、
前記仕様データベースに格納された前記機器の仕様と前記ソフトソフトウェア部品データベースに格納された前記ソフト部品及び前記ソフトウェア部品のバージョンとを用いて、前記ソフトウェア部品のバージョン毎に、前記仕様の各々の頻度の分布を表す尤度を演算し、前記仕様データベースに格納された前記機器の仕様と前記ソフトソフトウェア部品データベースに格納された前記ソフト部品及び前記ソフトウェア部品のバージョンとを用いて、前記ソフトウェア部品毎に、前記バージョンの各々の利用頻度の分布を表す事前確率を演算する尤度分析部と、
前記入力部から入力した開発対象の機器の仕様と、前記尤度と、前記事前確率とを用いて、前記開発対象の機器の仕様毎に、前記既存のソフトウェア部品の各バージョンの再利用可能性を表す事後確率を演算する事後確率分析部と、
を有することを特徴とするソフトウェア部品再利用支援装置。
【請求項１２】
請求項１１記載のソフトウェア部品再利用支援装置において、
前記事後確率分析部は、
前記尤度をＰ（Ａ｜Ｂ）、前記事前確率をＰ（Ｂ）、前記事後確率をＰ（Ｂ｜Ａ）とし、前記既存の全機器において前記開発対象の機器の仕様が選択された確率をＰ（Ａ）とするとき、式Ｐ（Ｂ｜Ａ）＝Ｐ（Ａ｜Ｂ）Ｐ（Ｂ）／Ｐ（Ａ）によって前記事後確率を演算することを特徴とするソフトウェア部品再利用支援装置。
【請求項１３】
請求項１１記載のソフトウェア部品再利用支援装置において、
前記再利用ソフトウェア部品探索装置は、
２つのソフト部品のバージョンのうち一方のソフト部品のバージョンを選択すると他方のソフト部品のバージョンを選択できない関係である排他関係と、複数のソフト部品のバージョンのうち１つのソフト部品のバージョンを選択すると他の特定のソフト部品のバージョンを選択しなければならない関係である依存関係の少なくとも１つを含む論理関係を格納する論理関係データベースと、
前記論理関係データベースに格納された論理関係を満たすソフトウェア部品のうち、所定の閾値より大きい事後確率を有するソフトウェア部品のバージョンを、前記開発対象の機器の制御ソフトウェアにおける再利用可能なソフトウェア部品であると判定する再利用性判定部と、を有するソフトウェア部品再利用支援装置。
【請求項１４】
請求項１１記載のソフトウェア部品再利用支援装置において、
前記機器はエンジン制御装置であり、前記機器の仕様はエンジン制御装置の仕様であり、前記制御ソフトウェアはエンジン制御ソフトウェアであることを特徴とするソフトウェア部品再利用支援装置。
【請求項１５】
既存のエンジン制御装置の仕様が格納されている仕様データベースと、既存のエンジン制御装置の制御ソフトウェアに用いられているソフトウェア部品と該ソフトウェア部品のバージョンが格納されているソフトウェア部品データベースと、入力装置と、表示装置と、前記入力装置を介して入力された開発対象のエンジン制御装置の仕様に基づいて前記ソフトウェア部品データベースから再利用可能なソフトウェア部品を探索する再利用ソフトウェア部品探索装置と、を有し、開発対象のエンジン制御ソフトウェアの作成において既存のソフトウェア部品の利用を支援するソフトウェア部品再利用支援装置において、
前記再利用ソフトウェア部品探索装置は、
前記仕様データベースに格納された前記エンジン制御装置の仕様と前記ソフトソフトウェア部品データベースに格納された前記ソフト部品及び前記ソフトウェア部品のバージョンとを用いて、前記ソフトウェア部品のバージョン毎に、前記仕様の各々の頻度の分布を表す尤度を演算し、前記仕様データベースに格納された前記エンジン制御装置の仕様と前記ソフトソフトウェア部品データベースに格納された前記ソフト部品及び前記ソフトウェア部品のバージョンとを用いて、前記ソフトウェア部品毎に、前記バージョンの各々の利用頻度の分布を表す事前確率を演算する尤度分析部と、
前記入力部から入力した開発対象のエンジン制御装置の仕様と、前記尤度と、前記事前確率とを用いて、前記開発対象のエンジン制御装置の仕様毎に、前記既存のソフトウェア部品の各バージョンの再利用可能性を表す事後確率を演算する事後確率分析部と、
を有し、
前記事後確率分析部は、前記尤度をＰ（Ａ｜Ｂ）、前記事前確率をＰ（Ｂ）、前記事後確率をＰ（Ｂ｜Ａ）とし、前記既存の全エンジン制御装置において前記開発対象のエンジン制御装置の仕様が選択された確率をＰ（Ａ）とするとき、式Ｐ（Ｂ｜Ａ）＝Ｐ（Ａ｜Ｂ）Ｐ（Ｂ）／Ｐ（Ａ）によって前記事後確率を演算することを特徴とするソフトウェア部品再利用支援装置。
【請求項１６】
請求項１５記載のソフトウェア部品再利用支援装置において、前記再利用ソフトウェア部品探索装置はコンピュータによって構成されていることを特徴とするソフトウェア部品再利用支援装置。
【請求項１７】
請求項１５記載のソフトウェア部品再利用支援装置において、
前記再利用ソフトウェア部品探索装置は、
２つのソフト部品のバージョンのうち一方のソフト部品のバージョンを選択すると他方のソフト部品のバージョンを選択できない関係である排他関係と、複数のソフト部品のバージョンのうち１つのソフト部品のバージョンを選択すると他の特定のソフト部品のバージョンを選択しなければならない関係である依存関係の少なくとも１つを含む論理関係を格納する論理関係データベースと、
前記論理関係データベースに格納された論理関係を満たすソフトウェア部品のバージョンのうち、所定の閾値より大きい事後確率を有するソフトウェア部品のバージョンを、前記開発対象のエンジン制御装置の制御ソフトウェアにおける再利用可能なソフトウェア部品であると判定する再利用性判定部と、を有するソフトウェア部品再利用支援装置。
【請求項１８】
請求項１５記載のソフトウェア部品再利用支援装置において、
前記表示装置には、ユーザが操作可能な操作画面であるソフト部品選択画面が表示され、該ソフト部品選択画面には、前記ソフト部品毎にバージョン番号が表示され、各バージョン毎に前記事後確率が表示されることを特徴とするソフトウェア部品再利用支援装置。
【請求項１９】
請求項１５記載のソフトウェア部品再利用支援装置において、
前記表示装置には、ユーザが操作可能な操作画面である仕様選択画面が表示され、該仕様選択画面には、前記仕様毎に選択肢が表示され、ユーザが前記選択肢を変更することができるように構成されていることを特徴とするソフトウェア部品再利用支援装置。
【請求項２０】
請求項１９記載のソフトウェア部品再利用支援装置において、
前記仕様選択画面において、ユーザが前記選択肢を変更したとき、前記事後確率が再度演算され、再演算後の事後確率が所定の閾値より小さくなったときには警告が表示されることを特徴とするソフトウェア部品再利用支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、新規のソフトウェアを作成する場合に、既存のソフトウェアの再利用を支援するソフトウェア再利用支援技術に関する。
【背景技術】
【０００２】
自動車、携帯電話等の技術分野では、いわゆる組込みソフトウェアによって制御対象を制御する。組込みソフトウェアは、従来の機械的機構や電気回路による方式に比べて柔軟かつ高度な制御が実現できること、ソフトウェアの部分的な変更によって多くの派生製品を開発できることが利点として挙げられる。
【０００３】
近年、組込みソフトウェアの適用範囲の拡大に伴い、派生製品数およびソフトウェアの規模が増大している。そのため、開発効率の大幅な向上と共に、派生製品開発における再利用型開発の効率化が求められている。
【０００４】
自動車用エンジンシステムに用いられる組込みソフトウェアを例に挙げる。エンジンには、気筒数、排気量、燃料噴射方式、吸気制御方式等の機能的要件ばかりでなく、仕向地、排気規制等の非機能的要件が必要である。これらの多数の要件は仕様として設定される。更に、それぞれの仕様について多くの選択肢がある。例えば気筒数に関しては４気筒、６気筒、８気筒等である。既存の組込みソフトウェアは、これら仕様の特定の組み合わせに対応するように開発されている。
【０００５】
従って、新規の組込みソフトウェア製品の開発には、既存の組込みソフトウェアをそのまま流用することはできない。一方で、開発効率化の観点から、既存のソフトウェアをなるべく再利用したいという要望がある。そこで、既存のソフトウェアの再利用を支援するソフトウェア再利用支援装置が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平８−１４７１５２号公報
【特許文献２】特開平１０−６３４９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１には、過去に作成したソフトウェアの再利用のためのソフトウェア再利用支援装置の例が記載されている。このソフトウェア再利用支援装置では、過去の部品仕様間の関係や作成履歴に基づいて、再利用する仕様を決定する為の探索経路を生成してユーザに提示する。
【０００８】
また、特許文献２には、既存のソフトウェア部品の再利用可能性を検索するプログラム部品利用支援システムが記載されている。この支援システムでは、既存のソフトウェア部品毎の利用実績を測定し、利用実績の高いソフトウェア部品を再利用可能性が高い候補とする。
【０００９】
しかしながら、これらの文献に記載された技術が対象としているのは業務用ソフトウェアであり組込みソフトウェアではない。組込みソフトウェアは自動車、携帯電話等の機器に組み込まれるという特徴を有する。そのため、ソフトウェアそのものの仕様に加えて組込み対象機器の仕様を考慮しなければならないという課題がある。
【００１０】
本発明の目的は、開発対象の制御ソフトウェアの作成において既存のソフトウェア部品の利用を支援する。
【課題を解決するための手段】
【００１１】
本発明によると、既存の機器の仕様が格納されている仕様データベースと、既存の機器の制御ソフトウェアに用いられているソフトウェア部品と該ソフトウェア部品のバージョンが格納されているソフトウェア部品データベースと、を用いる。
【００１２】
本発明によると、仕様データベースに格納された既存の機器の仕様とソフトソフトウェア部品データベースに格納された既存のソフト部品及びソフトウェア部品のバージョンとを用いて、ソフトウェア部品のバージョン毎に、仕様の各々の頻度の分布を表す尤度を演算する。更に、ソフトウェア部品毎に、バージョンの各々の利用頻度の分布を表す事前確率を演算する。更に、尤度と事前確率と開発対象の機器の仕様とを用いて、開発対象の機器の仕様毎に、既存のソフトウェア部品の各バージョンの再利用可能性を表す事後確率を演算する。
【発明の効果】
【００１３】
本発明によれば、開発対象の制御ソフトウェアの作成において既存のソフトウェア部品の利用を支援する。
【図面の簡単な説明】
【００１４】
【図１】本発明のソフトウェア再利用支援装置の構成例を示す図である。
【図２】エンジン制御用ソフトウェアの構成例を示す図である。
【図３】本発明のソフトウェア再利用支援装置の仕様データベースに格納される仕様データの例を示す図である。
【図４】本発明のソフトウェア再利用支援装置のソフトウェア部品データベースに格納されるソフトウェア部品データの例を示す図である。
【図５】本発明のソフトウェア再利用支援装置の再利用ソフトウェア部品探索装置の尤度分析部の構成例を示す図である。
【図６】本発明のソフトウェア再利用支援装置の尤度分析部の尤度分析処理部の処理の流れの例を示すフローチャート図である。
【図７】本発明のソフトウェア再利用支援装置の尤度分析部の尤度分析処理部における尤度の分析結果の例を示す図である。
【図８】本発明のソフトウェア再利用支援装置の尤度分析部の事前確率分析部の処理の流れの例を示すフローチャート図である。
【図９】本発明のソフトウェア再利用支援装置の尤度分析部の事前確率分析部における事前確率の分析結果の例を示す図である。
【図１０】本発明のソフトウェア再利用支援装置の尤度分析部のデータベース更新確認部の処理の流れの例を示すフローチャート図である。
【図１１】本発明のソフトウェア再利用支援装置の再利用ソフトウェア部品探索装置の事後確率分析部の構成例を示す図である。
【図１２】本発明のソフトウェア再利用支援装置の事後確率分析部の事後確率分析処理部における演算に用いる基本式を示す図である。
【図１３】本発明のソフトウェア再利用支援装置の事後確率分析部の事後確率分析処理部の分析処理の例を示す図である。
【図１４】本発明のソフトウェア再利用支援装置の事後確率分析部の再利用ソフトウェア部品絞込み部の構成例を示す図である。
【図１５】本発明のソフトウェア再利用支援装置の事後確率分析部の再利用ソフトウェア部品絞込み部の事後確率閾値設定部による設定画面の例を示す図である。
【図１６】本発明のソフトウェア再利用支援装置の事後確率分析部の再利用ソフトウェア部品絞込み部の論理関係データベースの構成例を示す図である。
【図１７】本発明のソフトウェア再利用支援装置の事後確率分析部の再利用ソフトウェア部品絞込み部の再利用性判定部の処理の流れの例を示すフローチャート図である。
【図１８】本発明のソフトウェア再利用支援装置の仕様入力部における仕様選択画面の例を示す図である。
【図１９】本発明のソフトウェア再利用支援装置の再利用ソフトウェア部品出力部におけるソフト部品選択画面の例を示す図である。
【図２０】本発明のソフトウェア再利用支援装置の仕様入力部における仕様変更警告処理の流れの例を示すフローチャート図である。
【図２１】本発明のソフトウェア再利用支援装置の仕様入力部における仕様選択画面において仕様変更警告表示が行われた例を示す図である。
【発明を実施するための形態】
【００１５】
以下に本発明の一実施の形態によるソフトウェア再利用支援装置について図面を参照しつつ説明を行う。図１は、本発明の一実施の形態によるソフトウェア再利用支援装置のシステム構成例の概要を示す図である。図１に示すように、本実施の形態によるソフトウェア再利用支援装置は、仕様データベース４と、ソフトウェア部品データベース５と、ソフトウェア部品データベース５に蓄積されているソフトウェア部品から再利用可能なソフトウェア部品を探索する再利用ソフトウェア部品探索装置１と、新規に開発又は改良する機器の仕様を入力するための仕様入力部２と、既存のソフトウェア部品の再利用可能性を提示する再利用ソフトウェア部品表示部３とを有する。
【００１６】
仕様データベース４には、既存の機器の仕様が蓄積されている。ソフトウェア部品データベース５には、既存の機器の制御ソフトウェアに用いられているソフトウェア部品とそのバージョンが蓄積されている。
【００１７】
再利用ソフトウェア部品探索装置１は、尤度分析部１１と事後確率分析部１２とを有する。尤度分析部１１は、仕様データベース４から既存の機器の仕様を入力し、ソフトウェア部品データベース５から既存の機器の制御ソフトウェアに用いられているソフトウェア部品のバージョン情報を入力し、既存のソフトウェア部品毎に、仕様の尤度とバージョンの事前確率を演算する。
【００１８】
仕様の尤度は、過去の制御ソフトウェアにおいて、所定のソフトウェア部品のバージョン毎に計算した、各仕様の頻度分布を表す。即ち、尤度は、仕様毎に計算したソフト部品の各バージョンの利用頻度の分布を表す。事前確率は、過去の制御ソフトウェアにおいて、ソフト部品毎に計算した各バージョンの利用頻度の分布を表す。
【００１９】
事後確率分析部１２は、仕様入力部２から新規に開発又は改良する機器の仕様を入力し、尤度分析部１１から既存のソフトウェア部品毎の仕様の尤度とバージョンの事前確率を入力し、新規に開発又は改良する機器の制御ソフトウェアにおける既存のソフトウェア部品の事後確率を演算する。事後確率は、新規に開発又は改良する機器の制御ソフトウェアにおいて、既存のソフトウェア部品のバージョン毎の再利用可能性を表す。この分析結果は、再利用ソフトウェア部品表示部３にて表示される。
【００２０】
本例のソフトウェア再利用支援装置によると、既存の制御ソフトウェアにおいて、新規に開発又は改良する機器の仕様の利用実績を表す尤度と、既存のソフトウェア部品のバージョンの利用実績を表す事前確率とに基づいて、この機器のために新規に開発する制御ソフトウェアにおいて、既存のソフトウェア部品が再利用可能かどうかを定量的に評価することができる。
【００２１】
本発明のソフトウェア再利用支援装置のハードウエアは特に示されていないが、通常のコンピュータによって構成してよい。即ち、再利用ソフトウェア部品探索装置１は、コンピュータ本体、又は、演算装置によって構成し、仕様入力部２及び再利用ソフトウェア部品表示部３は、コンピュータによって提供されるユーザインターフェースであり、具体的には、コンピュータに接続されたキーボード等の入力装置とディスプレイ装置によって実現される。仕様データベース４及びソフトウェア部品データベース５は、コンピュータに接続された外部記憶装置によって構成してよい。尚、以下に、ソフトウェアを単にソフトと称する。
【００２２】
図２は、本実施の形態によるソフトウェア再利用支援装置１に適用可能な自動車用エンジン制御ソフト６の具体的な例を示す図である。エンジン制御ソフト６は、制御アプリケーションソフト６１と、基本ソフト６２と、アプリケーションプログラムインタフェース（ＡＰＩ）６３とを有する。制御アプリケーションソフト６１は、燃料制御ソフト部品６１１と、点火制御ソフト部品６１２と、故障診断ソフト部品６１３と、変速機制御ソフト部品６１４とを有する。基本ソフト６２は、マイコン（マイクロコンピュータ）用ソフト部品６２１と、通信用ソフト部品６２２と、入出力用ソフト部品６２３と、クランクセンサ用ソフト部品６２４とを有する。
【００２３】
ここで、既存のエンジン制御装置とは異なる仕様を有するエンジン制御装置用の制御ソフトを開発する場合を考える。新たに開発するエンジン制御ソフトは、図２のエンジン制御ソフト６の構造と同様な構造を有するものとする。既存の燃料制御ソフト部品６１１には、そのバリエーションとして燃料制御ソフト部品Ver1.0  ６１１１と、燃料制御ソフト部品Ver2.0  ６１１２と、燃料制御ソフト部品Ver3.0  ６１１３とが存在する。新たに開発するエンジン制御ソフトにおいて、３つの燃料制御ソフト部品６１１１、６１１２、６１１３のいずれの制御ソフト部品を再利用可能であるかを以下に分析する。
【００２４】
図３は、本実施例における仕様データベース４に格納される既存のエンジン制御装置の仕様データ４１を示す図である。横軸は機器名を示し、縦軸は仕様項目を示す。横軸の機器名と縦軸の仕様項目が交差する欄には、その機器にて選択されている仕様が示されている。例えば、エンジン制御装置Ａにおいては、「仕様項目：仕向地」として「ＪＰ（日本）」が選択され、「仕様項目：気筒数」として「４気筒」が選択されている。
【００２５】
ここで、エンジン制御装置の仕様は、気筒数、燃料噴射方式、変速機等の機械的構造に関する条件と、仕向地、排ガス規制等の非機械的条件を含む。例えば、機械的構造が同一であっても、仕向地が異なる場合には、エンジン制御装置の仕様は異なる。エンジン制御ソフトは、仕様に依存する。従って、以下に、機器の仕様、又は、エンジン制御装置の仕様は、制御ソフトの仕様と称する場合もある。
【００２６】
図４は、本実施例におけるソフトウェア部品データベース５に格納される既存の制御ソフトに用いられているソフトウェア部品データ５１を示す図である。横軸は機器名を示し、縦軸はソフトウェア部品名を示す。横軸の機器名と縦軸のソフトウェア部品名が交差する欄には、その機器の制御ソフトにて用いられているソフトウェア部品のバリエーションが示されている。例えば、エンジン制御装置Ｂの制御ソフトにおいては、「ソフト部品：ＳＷＣ１」として「Ver2.0」が選択され、「ソフト部品：ＳＷＣ２」として「Ver1.0」が選択されている。
【００２７】
図５は、本実施例における尤度分析部１１の構成例を示す図である。尤度分析部１１は、ソフトウェア部品の尤度を分析処理する尤度分析処理部１１１と、ソフトウェア部品の事前確率を分析する事前確率分析部１１２と、尤度分析処理部１１１と事前確率分析部１１２の分析結果を格納する尤度データベース１１３と、尤度データベース１１３の更新が必要か否かを確認し、必要なら更新を行うデータベース更新確認部１１４とを有する。尤度分析処理部１１１における処理は、図６を参照して説明し、尤度分析処理の結果は図７に示す。事前確率分析部１１２における処理は、図８を参照して説明し、事前確率分析処理の結果は図９に示す。尤度データベース１１３の例は、図１３を参照して説明する。データベース更新確認部１１４における処理は、図１０を参照して説明する。
【００２８】
図６は、本実施例による尤度分析部１１の尤度分析処理部１１１において、所定のソフトウェア部品の尤度を分析する処理の流れを示すフローチャートである。ステップＳ１１１０１から処理が開始される。ステップＳ１１１０２において、ソフトウェア部品のバージョンのＩＤ（識別番号）を初期化する。ステップＳ１１１０３において、仕様のＩＤ（識別番号）を初期化する。ステップＳ１１１０４において、機器のＩＤ（識別番号）を初期化する。ステップＳ１１１０５において、現在のバージョンが、現在の機器及び現在の仕様において用いられているか否かを確認し、用いられていることが確認された場合には利用実績値を加算する。ステップＳ１１１０６において、全機器について判定が完了したか否かを判定する。全機器について判定が完了していればステップＳ１１１０８へ進み、判定が完了していなければステップＳ１１１０７へ進む。ステップＳ１１１０７では機器のＩＤを加算し、ステップＳ１１１０５へと進む。ステップＳ１１１０８において、全仕様について判定を完了したか否かを判定する。全仕様について判定を完了していればステップＳ１１１１０へと進み、判定が完了していなければステップＳ１１１０９へと進む。ステップＳ１１１０９において、仕様のＩＤを加算し、ステップＳ１１１０４へと進む。ステップＳ１１１１０において、全バージョンについて判定が完了したか否かを判定する。全バージョンについて判定が完了していればステップＳ１１１１２へと進み、判定が完了していなければステップＳ１１１１１へと進む。ステップＳ１１１１１において、バージョンのＩＤを加算し、ステップＳ１１１０３へと進む。ステップＳ１１１１２にて処理を終了する。
【００２９】
図７は、尤度分析部１１の尤度分析処理部１１１によって分析された、ソフトウェア部品ＳＷＣ１の仕様「気筒数」に対する尤度表１１３１である。横軸は仕様の項目すなわち気筒数を、縦軸はソフトウェア部品ＳＷＣ１のバージョン番号を示す。また、横軸と縦軸が交差した欄には、そのバージョンがその仕様で用いられた頻度を示す。上段は、利用実績、下段は尤度である。例えば、バージョン2.0の利用実績は、気筒数４では０回、気筒数６では６回、気筒数８では４回、である。また、バージョン2.0の尤度は、気筒数４では０％、気筒数６では６０％、気筒数８では４０％である。このように、尤度は、バージョン毎に計算した、各気筒数の頻度分布を表す。言い換えれば、尤度は、気筒数毎に計算したソフト部品の各バージョンの利用頻度の分布を表す。
【００３０】
図８は、尤度分析部１１の事前確率分析部１１２において、所定のソフトウェア部品の事前確率を分析する処理の流れを示すフローチャートである。ステップＳ１１２０１から処理を開始する。ステップＳ１１２０２において、ソフトウェア部品のバージョンのＩＤ（識別番号）を初期化する。ステップＳ１１２０３において、機器のＩＤ（識別番号）を初期化する。ステップＳ１１２０４において、現在のバージョンが、現在の機器において用いられているか否かを確認し、用いられていることが確認された場合には利用実績値を加算する。ステップＳ１１２０５において、全機器について判定が完了したか否かを判定する。全機器について判定が完了していればステップＳ１１２０７に進み、完了していなければステップＳ１１２０６へ進む。ステップＳ１１２０６において、機器のＩＤを加算し、ステップＳ１１２０４へ進む。ステップＳ１１２０７において、全バージョンについて判定が完了したか否かを判定する。全バージョンについて判定が完了していればステップＳ１１２０９へ進み、完了していなければステップＳ１１２０８へと進む。ステップＳ１１２０８において、バージョンのＩＤを加算し、ステップＳ１１２０３へ進む。ステップＳ１１２０９にて、処理を終了する。図８の事前確率を分析する処理と、図６尤度を分析する処理を比較すると、図８の事前確率を分析する処理では、仕様のＩＤ番号を計数する処理が除去されている点が異なる。
【００３１】
図９は、尤度分析部１１の事前確率分析部１１２によって分析された、ソフトウェア部品ＳＷＣ１の事前確率表１１３２である。左側の列はソフトウェア部品ＳＷＣ１のバージョン番号を示す。右側の列は、各バージョン番号の利用頻度を示し、上段は、利用実績、下段は事前確率である。
【００３２】
例えば、ソフトウェア部品ＳＷＣ１のバリエーションの中で、Ver1.0は３０回利用され、Ver2.0は１０回利用され、Ver3.0は９回利用されている。Ver1.0の事前確率は６１％、Ver2.0の事前確率は２０％、Ver3.0の事前確率は１８％である。このように、事前確率は、ソフト部品毎に計算した各バージョンの利用頻度の分布を表す。
【００３３】
以上の構成を取ることによって、既存のソフトウェア部品の利用実績に基づいて、既存のソフトウェア部品が再利用可能かどうかを定量的に評価することできる。
【００３４】
図１０は、尤度分析部１１のデータベース更新確認部１１４の処理の例を示すフローチャートである。ステップＳ１１４０１から処理を開始する。ステップＳ１１４０２において、仕様データベース４に変更があるか否かを判定する。変更がある場合にはステップＳ１１４０４に進み、変更がない場合にはステップＳ１１４０３に進む。ステップＳ１１４０３において、ソフトウェア部品データベース５に変更があるか否かを判定する。変更がある場合にはステップステップＳ１１４０４に進み、変更がない場合にはステップＳ１１４０５に進む。ステップＳ１１４０４において、尤度分析処理部１１１および事前確率分析部１１２における処理を実行し、尤度データベース１１３を更新する。ステップＳ１１４０５にて処理を完了する。
【００３５】
以上の構成を取ることによって、例えば既存の制御ソフトが数百、ソフトウェア部品数が数千に及ぶような多品種・大規模のソフトウェアにおいて、尤度分析を毎回実行する必要が無くなる。そのため、再利用ソフトウェア探索処理を高速に実行することが可能になる。
【００３６】
図１１は事後確率分析部１２の構成例を示す図である。事後確率分析部１２は、事後確率分析処理部１２１と再利用ソフトウェア部品絞込み部１２２とを有する。事後確率分析処理部１２１については、以下に図１２及び図１３を参照して説明する。再利用ソフトウェア部品絞込み部１２２については、以下に図１４〜図１７を参照して説明する。
【００３７】
図１２は事後確率分析処理部１２１の処理の概要を示す図である。事後確率分析処理部１２１は、尤度分析部１１の尤度データベース１１３から尤度データを入力し、仕様入力部２から新規に開発又は改良する機器の仕様２１を入力する。尤度データベース１１３は、図１３を参照して説明する。事後確率分析処理部１２１は、式１２１０１によって事後確率１２１０２を演算する。式１２１０１は、事後確率分析の基本式であり、確率論の一つであるベイズの定理に基づいている。
【００３８】
式１２１０１において、Ｐ（Ａ）は事象Ａの確率、Ｐ（Ｂ）は事象Ｂの確率、Ｐ（Ａ｜Ｂ）は事象Ｂが起きた後での事象Ａの確率、Ｐ（Ｂ｜Ａ）は事象Ａが起きた後での事象Ｂの事後確率である。ここで、事象Ａを過去の全機器において仕様２１が選択された事象、事象Ｂを過去の全制御ソフトにおいてソフト部品の所定のバージョンを使用した事象とする。すると、Ｐ（Ａ）は過去の全機器において仕様２１が選択された確率となり、Ｐ（Ｂ）は過去の全制御ソフトにおいてソフト部品の所定のバージョンが使用された確率、すなわち事前確率１１３２（図９）となる。また、Ｐ（Ａ｜Ｂ）は、過去のソフト部品の所定のバージョンを使用した制御ソフトに対応した機器の仕様が仕様２１であった確率、すなわち仕様２１の尤度１１３１（図７）となる。さらに、Ｐ（Ｂ｜Ａ）は、新たに開発する仕様２１の機器の制御ソフトにおいて、ソフト部品の所定のバージョンの再利用可能性の確率となる。ここで、Ｐ（Ａ）、Ｐ（Ｂ）、Ｐ（Ａ｜Ｂ）は既知または計算可能なため、Ｐ（Ｂ｜Ａ）も計算可能である。従って、ソフト部品の所定のバージョンの再利用可能性を定量的に計算することを可能となる。
【００３９】
なお、ここで説明の簡単のためにＰ（Ｂ）は事前確率１１３２としたが、仕様２１以外の他の仕様を決定した上で推定した事後確率を入力としてもよい。また、そうすることによって複数の仕様の影響を考慮した上でより精度の高い再利用性評価を行うことが可能になる。
【００４０】
図１３は、事後確率分析部１２の事後確率分析処理部１２１による事後確率の計算例を示す図である。尤度データベース１１３には、尤度データ１１３３が格納されている。尤度データ１１３３は、先に計算した事前確率表１１３２（図９）と尤度表１１３１（図７）を合成したものである。ここで、仕様２２として“気筒数”＝４が入力されているため、仕様“４気筒”確定後の事後確率が計算される。式１２１０２はVer1.0の事後確率を、式１２１０３はVer2.0の事後確率を、式１２１０４はVer3.0の事後確率を、それぞれ演算する式である。代表例として、式１２１０２に基づいてVer1.0の事後確率の計算式を説明する。
【００４１】
式１２１０２において、求める値は仕様“４気筒”が確定した上でのソフト部品ＳＷＣ１“Ver1.0”が再利用可能な事後確率Ｐ（ｖ1.0｜４気筒）である。式１２１０２の分子は、既存の制御ソフトにおいてソフト部品のVer1.0を用いた際に仕様が４気筒であった確率Ｐ（４気筒｜ver1.0）と、既存の制御ソフトにおいてソフト部品のVer1.0が選択された確率Ｐ（ver1.0）の積である。確率Ｐ（４気筒｜ver1.0）は１００％であり、確率Ｐ（ver1.0）は６１％である。従って、式１２１０２の分子は、1.0×0.6となる。
【００４２】
式１２１０２の分母は、既存の全機器の中で仕様が４気筒であった割合である。これは、各バージョンの事前確率と、各バージョンの４気筒の尤度との積の総和で求められる。
【００４３】
これらの結果をまとめると、Ver1.0の事後確率１２１０５は、Ｐ（Ver1.0｜４気筒）＝９１％となる。また同様に、Ver2.0の事後確率１２１０６は、Ｐ（Ver2.0｜４気筒）＝０％となる。Ver3.0の事後確率１２１０７は、Ｐ（Ver3.0｜４気筒）＝９％となる。
【００４４】
図１４は事後確率分析部１２の再利用ソフトウェア部品絞込み部１２２の構成例を示す図である。再利用ソフトウェア部品絞込み部１２２は、既存のソフトウェア部品の再利用を自動的に判断する為の閾値を設定する事後確率閾値設定部１２２１と、既存のソフトウェア部品間の論理関係を格納する論理関係データベース１２２２と、閾値と論理関係に基づいて再利用性を判定する再利用性判定部１２２３とを有する。
【００４５】
図１５は事後確率分析部１２の再利用ソフトウェア部品絞込み部１２２の事後確率閾値設定部１２２１の設定画面１２２１１を示す図である。設定画面１２２１１において、ユーザは、閾値を設定する。図１３にて示したように、事後確率分析部１２１で分析された事後確率には高い値もあるが低い値もある。そこで、事後確率が高いバージョンは再利用可能であるが、事後確率が低いバージョンは再利用可能ではない、と判断してよい。本例では、事後確率がこの閾値以上になった場合には、自動的にそのソフトウェア部品を再利用する。図１５の例では、閾値として９０％が設定されている。
【００４６】
本構成を取ることによって、ソフトウェア部品数が数千を越えるようなシステムにおいても、事後確率を閾値と比較することによって、ソフト部品の再利用可否の判断を自動化することが可能となる。そのため、既存のソフトウェア部品を利用して新規ソフトウェア開発を効率化することができる。
【００４７】
図１６は、事後確率分析部１２の再利用ソフトウェア部品絞込み部１２２の論理関係データベース１２２２に格納されたソフトウェア部品間の論理関係１２２２１の例を示す図である。論理関係１２２２１として、選択的関係、排他関係、及び、依存関係が格納されている。選択的関係とは、少なくとも３つ要素からなる集合において、任意の要素を選択することができる関係をいう。排他関係とは、２つの要素からなる集合において、一方の要素を選択すると他方の要素は選択できない関係をいう。依存関係とは、複数の要素からなる集合において、１つの要素を選択すると、他の特定の要素を選択しなければならない関係をいう。図１６には、選択的関係、排他関係、依存関係の例が示されている。これらの関係は、ユーザが自由に決める。
【００４８】
排他関係を例に取ると、既存のソフト部品ＳＷＣ１のVer2.0と既存のソフト部品ＳＷＣ２のVer2.0のいずれか一方を選択した場合には、他方が自動的に選択対象から外れる。本構成を取ることによって、ソフトウェア部品数が数千を越えるようなシステムにおいて、ソフト部品間の論理関係に基づいて再利用可否の判断を自動化することが可能となる。そのため、既存のソフトウェア部品を利用した新規ソフトウェア開発を効率化することができる。
【００４９】
図１７は、事後確率分析部１２の再利用ソフトウェア部品絞込み部１２２の再利用性判定部１２２３の処理の流れを示すフローチャート図である。ステップＳ１２２３１から処理を開始する。ステップＳ１２２３２において、論理関係データベース１２２２を確認する。論理関係データベース１２２２の例は図１６に示した。ステップＳ１２２３３において、論理関係データベース１２２２にて設定された論理関係を満足するソフトウェア部品を選択する。こうして論理関係を満足するソフトウェア部品が判定対象となる。ステップＳ１２２３４において、判定対象の事後確率が、図１５の閾値よりも大きいか否かを判定し、大きい場合にはステップＳ１２２３５に進み、そうでない場合にはステップＳ１２２３６へ進む。ステップＳ１２２３５において、判定対象のソフトウェア部品を再利用部品として確定する。ステップＳ１２２３６で処理を終了する。尚、再利用可能と判定されたソフトウェア部品の数が多い場合には、図１５の閾値を変更すればよい。
【００５０】
図１８は仕様入力部２のユーザによる操作画面である仕様選択画面２３１の例を示す。ユーザはポインタ２３１１を操作することにより、新規に開発又は改良する機器の仕様を対話的に選択する。仕様選択画面２３１では、仕向地として日本（ＪＰ）が、気筒数として６気筒が、燃料噴射方式としてＭＰＩ（マルチポートインジェクション）が選択され、変速機は選択されていない。
【００５１】
図１９は再利用ソフトウェア出力部３のユーザによる操作画面であるソフト部品選択画面３１の例を示す。ユーザはポインタ３１１を操作することにより、再利用するソフトウェア部品のバージョンを決定する。本例のソフト部品選択画面３１では、事後確率１２１０５が閾値１２２１１（図１５）を超えたバージョンが自動的に選択されている。ソフト部品ＳＷＣ１では、Ver1.0が選択されている。ソフト部品ＳＷＣ２についてはユーザによる選択を待っている状態である。
【００５２】
また、図１８の仕様選択画面２３１と図１９のソフト部品選択画面３１は同一画面上に表示するようにしてもよい。同一画面上に表示にすることによって、仕様選択によるソフト部品の事後確率の変化を対話的に確認することが可能となる。
【００５３】
図２０は、仕様入力部２における仕様変更警告処理の流れを示すフローチャート図である。所定の仕様項目に関する警告表示判定処理を、ステップＳ２４０１から処理を開始する。ステップＳ２４０２において、ソフトウェア部品（ＳＷＣ）のＩＤ（識別番号）を初期化する。ステップＳ２４０３において、ソフト部品選択画面３１（図１９）において既にバージョン番号を選択済みか否かを確認する。選択済みの場合はステップＳ２４０４に進み、そうでなければステップＳ２４０７に進む。ステップＳ２４０４において、現在選択されている仕様を変更した場合の事後確率を演算する。ステップＳ２４０５において、ステップＳ２４０４で演算した事後確率が閾値１２２１１（図１５）より大きいか否かを判定する。大きい場合にはステップＳ２４０７に進み、そうでない場合にはステップＳ２４０６へ進む。ステップＳ２４０６において、仕様選択画面２３１（図１８）にて警告表示を行う。ステップＳ２４０７において、全ソフトウェア部品について判定が完了したか否かを確認し、完了した場合にはステップＳ２４０９に進み、そうでない場合にはステップＳ２４０８に進む。ステップＳ２４０８において、ソフトウェア部品のＩＤを加算し、ステップＳ２４０３に進む。ステップＳ２４０９で処理を終了する。
【００５４】
図２１は仕様変更警告表示が行われた仕様選択画面２５の例を示す。本例の仕様選択画面２５は、図１８に示した仕様選択画面２３１と同様な構成であるが、気筒数の項目に警告マーク２５１が表示されている点が異なる。気筒数の仕様を変更した場合には、再利用判断済みのソフト部品の事後確率が閾値を下回ることを示している。
【００５５】
本構成を取ることによって、決定済みの仕様を変更することによって、再利用可否を判断済みのソフト部品について再び判断を行わなければならない仕様を明らかにすることができる、仕様変更に伴う開発手戻りの恐れをユーザに警告することが可能になる。
【００５６】
以上本発明の例を説明したが本発明は上述の例に限定されるものではなく、特許請求の範囲に記載された発明の範囲にて様々な変更が可能であることは、当業者によって容易に理解されよう。
【産業上の利用可能性】
【００５７】
本発明は、複数の既存の制御ソフトを有するソフトウェア制御ソフトに適用できる。
【符号の説明】
【００５８】
１…再利用ソフトウェア部品探索装置、２…仕様入力部、３…再利用ソフトウェア部品表示部、４…仕様データベース、５…ソフトウェア部品データベース、１１…尤度分析部、１２…事後確率分析部。
【図１】
2010250739.tif 000003
【図２】
2010250739.tif 000004
【図３】
2010250739.tif 000005
【図４】
2010250739.tif 000006
【図５】
2010250739.tif 000007
【図６】
2010250739.tif 000008
【図７】
2010250739.tif 000009
【図８】
2010250739.tif 000010
【図９】
2010250739.tif 000011
【図１０】
2010250739.tif 000012
【図１１】
2010250739.tif 000013
【図１２】
2010250739.tif 000014
【図１３】
2010250739.tif 000015
【図１４】
2010250739.tif 000016
【図１５】
2010250739.tif 000017
【図１６】
2010250739.tif 000018
【図１７】
2010250739.tif 000019
【図１８】
2010250739.tif 000020
【図１９】
2010250739.tif 000021
【図２０】
2010250739.tif 000022
【図２１】
2010250739.tif 000023