JP5128440B2 - ソフトウェア分析装置 - Google Patents

ソフトウェア分析装置 Download PDF

Info

Publication number
JP5128440B2
JP5128440B2 JP2008284137A JP2008284137A JP5128440B2 JP 5128440 B2 JP5128440 B2 JP 5128440B2 JP 2008284137 A JP2008284137 A JP 2008284137A JP 2008284137 A JP2008284137 A JP 2008284137A JP 5128440 B2 JP5128440 B2 JP 5128440B2
Authority
JP
Japan
Prior art keywords
software
product
software component
component
distance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008284137A
Other languages
English (en)
Other versions
JP2010113449A (ja
Inventor
健太郎 吉村
文雄 成沢
雄一朗 守田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008284137A priority Critical patent/JP5128440B2/ja
Priority to US12/612,371 priority patent/US8495569B2/en
Publication of JP2010113449A publication Critical patent/JP2010113449A/ja
Application granted granted Critical
Publication of JP5128440B2 publication Critical patent/JP5128440B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

本発明は、開発済みのソフトウェアを分析するソフトウェア分析装置に関する。
新しいソフトウェアを開発する場合や、既存のソフトウェアのバージョンを更新する場合等の開発実体では、開発済みのソフトウェアからソフト部品を集めて再利用するソフト ウェア分析技術が知られている。
本ソフトウェア分析技術の適用対象として、自動車、携帯電話等の機器に組み込んで対象を制御する、いわゆる組み込みソフトウェアがある。このような組込みソフトウェアによる制御は、従来の機械的機構や電気回路による方式に比べて柔軟かつ高度な制御が実現できること、ソフトウェアの部分的な変更によって多くの派生製品を開発できることが利点として挙げられる。
従来は対象製品ごとにソフトウェアを開発したり、類似の製品に基づいて差分を開発したりしていた。しかし、組込みソフトウェアの適用範囲拡大に伴い、派生製品数およびソフトウェアの規模が増大したため、開発効率の大幅な向上が要求されている。特に、派生製品開発における再利用型開発および差分変更型開発の効率化が求められている。
これを実現するための技術として、たとえば特許文献1では、複数のパーツからなる設計情報を構築するための部品の構成を階層構造とし、各部品に内容の説明情報等の関係情報を付帯させ、部品単位でシミュレートする技術が開示されている。
また、特許文献2では、ソフトウェア分析装置として、ソースコードからソフト部品のインタフェースを分析して、ソフト部品間の依存関係を分析する技術が開示されている。
特許文献2参照)。
特開平8−286901号公報 特開平9−134282号公報
しかしながら、特許文献1は、各ソフト部品単位での再利用では、ソフト部品数が数千を超えるような大規模ソフトウェアには十分ではない。
一般的に、ソフトウェアの部品化は、開発工程の並行化や再利用性の向上と言う効果がある一方で、ソフト部品の組み合わせ数が指数関数的に増加すると言う問題がある。例えば、20個のソフト部品で構成されるソフトウェア製品の場合、それぞれのソフト部品を利用するか否かと言う選択だけでも、組み合わせ数は100万通りを超える。車両制御ソフトウェアのように大規模化が進んでいるソフトウェアの場合、ソフト部品数が1000個を超えることもあり、その組み合わせ数は膨大なものとなる。そのため、派生製品開発時にソフト部品の全ての組み合わせを求めることは不可能である。
また、特許文献2では、インタフェース依存関係は無いが、同時に利用または変更しなければならないというソフト部品の関連性は分析出来ない。
例えば自動車制御ソフトウェアは制御アプリケーション、ミドルウェア、基本ソフトウェアと言うように何段階にも階層化されている。そのため、CAN(Control Area Network)通信システムを用いる制御アプリケーションソフト部品は一旦ミドルウェアソフト部品を経由してCAN通信ソフト部品と接続される。この場合、制御アプリケーションソフト部品とCAN通信ソフト部品との間に直接のインタフェース依存関係は無いが、制御アプリケーションソフト部品を再利用する場合にはCAN通信ソフト部品もあわせて再利用する必要がある。
本発明は、このような状況に鑑みてなされたものであり、過去のソフトウェア製品の開発実績および変更実績に基づいて、派生製品開発時に同時に再利用または変更すべきソフト部品を効率的に選択できるよう支援するソフトウェア分析装置を提供するものである。
上記課題を解決するために、本発明は、既存製品の構成情報に基づいて、ソフト部品の同時利用関係および同時変更関係を分析し、複数のソフト部品間の関連性を定量的に評価すると共に、派生製品開発時に同時に利用または変更される可能性が高いソフト部品を自動でグループ化する。
すなわち、本発明のソフトウェア分析装置は、ソフトウェア既存製品に含まれる複数のソフト部品および前記複数のソフト部品間の関連性を分析するソフトウェア分析装置であって、前記ソフトウェア既存製品ごとに前記複数のソフト部品に関する情報および前記複数のソフト部品間に関する情報を有する既存製品構成情報から前記ソフトウェア既存製品に含まれる複数のソフト部品の組み合わせを数値的に表す製品系列構成情報を作成する製品系列分析手段と、前記製品系列構成情報に基づいてソフト部品間の関連性を数値的に定量化したソフト部品間距離を演算する部品間距離分析手段と、前記ソフト部品間距離に基づいて前記ソフト部品をグループ化する部品クラスタ分析手段と、前記製品系列分析手段と前記部品間距離分析手段と部品クラスタ分析手段による結果を出力する出力部と、を備える。
この場合において、さらに、前記複数のソフト部品から該ソフト部品に関する情報および前記ソフト部品のバージョン情報を取得してソフト部品候補とするソフト部品選択手段と、前記出力部によって表示される前記ソフト部品候補のうちユーザが選択したソフト部品を格納する利用ソフト部品格納部と、前記ソフト部品間距離に基づき、前記ユーザが選択した前記ソフト部品に付随して利用される蓋然性が高いソフト部品を推薦ソフト部品として検索するソフト部品検索手段と、前記推薦ソフト部品を格納する推薦ソフト部品格納部と、を有し、前記出力部はさらに前記ソフト部品選択手段と前記利用ソフト部品格納部と前記推薦ソフト部品格納部の結果を出力してもよい。
本発明によれば、過去のソフトウェア製品の開発実績および変更実績に基づいて、派生製品開発時に同時に再利用または変更すべきソフト部品を効率的に選択することが出来る。
また、ソフト部品の組み合わせ数を削減することができる。
本発明は、既存製品の構成情報に基づいて、ソフト部品の同時利用関係および同時変更関係を分析し、複数のソフト部品間の関連性を定量的に評価すると共に、派生製品開発時に同時に利用または変更される可能性が高いソフト部品を自動でグループ化するソフトウェア分析装置に関するものである。
以下、添付図面を参照して本発明の実施形態について説明する。ただし、本実施形態は、本発明を実現するための一例にすぎず、本発明の技術的範囲を限定するものではないことに留意すべきである。また、各図において共通の構成については同一の参照番号が付されている。
<ソフトウェア分析装置の構成及び動作概略>
本発明の実施形態に係るソフトウェア分析装置の概略構成を図1に示す。本実施の形態によるソフトウェア分析装置は、ソフトウェア分析部1、表示装置4、および入力装置5を備える。このうち、ソフトウェア分析部1は、ソフト部品分析手段2、および再利用支援手段3を備える。また、ソフト部品分析手段2は、製品履歴格納部21、ソフト部品格納部22、ソフト部品関連度分析手段23、そして部品クラスタ格納部24を備える。再利用支援手段3は、ソフト部品選択手段31、利用ソフト部品格納部32、ソフト部品検索手段33、および推薦ソフト部品格納部34を備える。
次に、図1に示すソフトウェア分析装置を構成する各手段の動作について、説明する。
ソフト部品分析手段2は、既存ソフト部品間の関連性を分析する。再利用支援手段3は、ユーザ7に対して同時に再利用および同時に変更する蓋然性が高いソフト部品を推薦する。
製品履歴格納部21は、既にリリース済みの既存ソフトウェア製品の構成情報を格納する。ソフト部品格納部22は、開発済みの既存ソフト部品を格納する。ソフト部品関連度分析手段23は、製品履歴格納部21に格納された既存ソフトウェア製品の構成情報、およびソフト部品格納部22に格納された既存ソフト部品に基づいて、既存ソフトウェア製品の開発履歴におけるソフト部品間の関連度に変換する。部品クラスタ格納部24は、ソフト部品関連度分析手段23が変換したソフト部品間の関連度を格納する。
ソフト部品選択手段31は、ソフト部品格納部22を用いて、新規派生製品開発時に、再利用および変更するソフト部品を選択する手段を、表示装置4と入力装置5を通じてユーザ7に提供する。利用ソフト部品格納部32は、ソフト部品選択手段31でユーザ7が選択した再利用ソフト部品および変更ソフト部品を格納する。ソフト部品検索手段33は、利用ソフト部品格納部32に格納された再利用ソフト部品および変更ソフト部品を用い、部品クラスタ格納部24に格納されたソフト部品間関連度に基づいて、同時に再利用および変更されたことの多いソフト部品を検索し、推薦ソフト部品として抽出する。推薦ソフト部品格納部34は、ソフト部品検索手段33が抽出した推薦ソフト部品を格納する。
<ソフト部品分析手段>
本発明のソフトウェア分析部1の構成要素である、ソフト部品分析手段2について説明する。
本ソフト部品分析手段が必要となる背景については、既存製品であるソフトウェアを再利用する際に、その構成ソフト部品相互間には依存関係を有することがあり、必ずしも個々独立して利用されるとは限らないという経験則があることに基づく。そのような依存関係について、図2を用いて説明する。
本発明の実施形態に係るソフトウェア分析部1が適用される具体例として、自動車用エンジン制御ソフト6を図2に示す。エンジン制御ソフト6は、制御アプリケーションソフト61、基本ソフト62、およびアプリケーションプログラムインタフェース(API)63を備える。制御アプリケーションソフト61は、燃料制御ソフト部品611、点火制御ソフト部品612、故障診断ソフト部品613、および変速機制御ソフト部品614を備える。基本ソフト62は、マイコン用ソフト部品621、通信用ソフト部品622、入出力用ソフト部品623、およびクランクセンサ用ソフト部品624を備える。
ここで、エンジン制御ソフト6に基づいて派生製品を開発する場合を考える。例えば、4気筒用エンジン制御ソフトから3気筒用に変更する場合には、気筒数によって処理が変わる点火制御ソフト部品612、および入出力用ソフト部品623の両方を同時に変更しなければならない。また、自動変速機を備える車両向けには変速機制御ソフト部品614が必要だが、手動変速機を備える車両向けには変速機制御ソフト部品614が不要である。
このように、既存ソフトウェアを再利用する時、複数のソフト部品を同時に変更したり、ソフト部品の利用の有無を決定したりしなければならないことがある。
また、図2では、1つの既存製品から派生する1の製品の例を説明したが、実際の開発実体においては、開発ベースとなるソフトウェアの原製品から複数の派生製品が生まれたり、当該派生製品がさらに更新されたりというような、複雑化した再利用の分岐が生じている。そのような開発製品の関係の一例を表したものが図3である。図3は、本発明の実施形態に係るソフトウェア分析部1が適用されるソフトウェアの開発ツリー211を示す図である。A、B、C、Dは製品リリースを示しており、製品リリース間をつなぐ矢印は開発の流れを示している。例えば、製品Bは製品Aをベースとして開発されていることを示している。また、エンジン制御システムのような組込み制御ソフトウェアにおいては、異なるハードウェア構成を持つ機器向けの開発が並行することがある。そのため、製品Cおよび製品Dは両方とも製品Bをベース製品として開発されている。
以上から、既存製品の再利用を繰り返すことで新たな製品を開発する開発実体においては、既存製品ごとに利用するソフト部品の有無、および変更情報を記録し、ソフト部品相互間での関連性や重複ソフト部品を把握しておくことが、次製品開発時の効率化へつながると予想される。
そこで、上記開発状況を踏まえ、新製品開発または既存製品の発展を行う際に効率化を図るため、既存製品における部品構成およびバージョン情報をまとめた既存製品構成情報が必要となる。本発明の実施形態に係る既存製品構成情報212を図4に示す。列方向は既存製品A、B、C、Dを示し、行方向は各製品を構成するソフト部品を示している。この例では、ソフト部品は、a、b、c、d、e、fの6種類である。また、製品名とソフト部品名が交差している箇所はソフト部品名のバージョン番号を示している。例えば、製品Bにおけるソフト部品cはバージョン2.0である。なお、製品Cにおけるソフト部品bのように、ソフト部品が用いられていない場合には「―」で示す。この既存製品構成情報は、製品履歴格納部21に格納される。図4からも明らかなように、複数のソフト部品を有する既存製品から派生製品を製造する場合、各既存製品のソフト部品利用状況、ソフト部品バージョン情報、ソフト部品変更状況、を分析し、同時利用可能性の高いソフト部品や同時変更の可能性の高いソフト部品等を認識しておくことが、効率化への手がかりとなる。
以上の様に既存製品構成情報を作成することによって、多品種同時開発が行われたソフトウェア製品の構成情報を管理することが可能になる。
以下、上記既存製品構成情報に記された過去の既存製品の開発実績および変更実績から、新製品開発時において同時に再利用または変更すべきソフト部品を、自動的に検出し、グループ化するまでの、ソフト部品分析手段2が行う処理の詳細について説明する。
<ソフト部品分析手段の構成及び具体的処理内容>
本発明の実施形態に係るソフト部品分析手段2の詳細な構成を図5に示す。
ソフト部品分析手段2は製品系列格納部21、ソフト部品格納部22、ソフト部品関連度分析手段23、および部品クラスタ格納部24を備える。
ソフト部品関連度分析手段23は、製品系列の構成情報を数値化する製品系列分析手段231、前記製品系列分析手段が数値化した構成情報を格納する製品系列格納部232、前記数値化した製品系列構成情報に基づいてソフト部品間距離を分析する部品間距離分析手段233、前記ソフト部品間距離を格納する部品間距離格納部234、および前記ソフト部品間距離に基づいてソフト部品をグループ化する部品クラスタ分析手段235を備える。
(製品系列分析手段の処理)
上述したソフト部品分析手段2を構成する要素のうち、製品系列分析手段231が行う処理について説明する。本発明の実施形態に係る製品系列分析手段231が行う製品系列分析処理を示すフローチャートを図6に示す。ここでは、上記製品履歴格納部21に格納された既存製品構成情報と、ソフト部品格納部22に格納された既存製品のソフト部品に関する情報に基づき、既存製品を構成するソフト部品の“利用の有無”および“変更の有無”について、既存製品構成情報に含まれるデータの数値化を行い、製品系列構成情報を作成する。ここで作成された製品系列構成情報は、次処理となる数値計算による関連性分析を行う際に用いられる。
ステップS23101から処理が開始される。ステップS23102では、分析対象となる既存製品の製品番号の初期化処理を行って初期値を入力する。ステップS23103では、分析対象となるソフト部品(SWC)の番号の初期化処理を行って初期値を入力する。ステップS23104では、既存製品履歴を数値化するのであるが、ソフト部品の利用状況を用いるか、変更状況を用いるか、によって処理が異なる。詳しくは後述する。ステップS23105では、全てのソフト部品の判定が完了したかどうかを確認し、完了していなければステップS23106に進み、完了していればステップS23107に進む。ステップS23106では、ソフト部品の番号を加算し、ステップS23104の処理に進む。ステップS230107では、全ての製品の判定が完了したかどうかを確認し、完了していなければステップS23108に進み、完了していればステップS23109へ進む。ステップS23108では、製品番号を加算し、ステップS23103に進む。ステップS23109では、処理を完了する。こうして作成された製品系列構成情報は、製品系列格納部232へ格納される。なお、作成された製品系列構成情報は、次処理となる数値計算による関連性分析を行う際に用いられる。
ここで、ソフト部品格納部22に格納されたソフト部品のうち、各派生製品に利用されているソフト部品の利用の有無を数値化する場合について説明する。上述したステップS23104の製品履歴数値化処理において、ソフト部品の利用状況を用いて数値化する場合の処理を示すフローチャートを図7に示す。ステップS231041から処理が開始される。ステップS231042では、分析対象となる既存製品が各ソフト部品を利用しているか否かを確認し、利用していればステップS231043に進み、利用していなければステップS231044に進む。ステップS231043では、既存製品構成情報を“1”に数値化する。ステップS231044では、既存製品構成情報を“0”に数値化する。ステップS231045で処理を完了する。
以上、製品系列分析処理およびソフト部品の利用状況を用いた製品履歴数値化処理によって作成された製品系列構成情報2321を図8に示す。例えば、製品Bにおけるソフト部品Cの欄は、ソフト部品を利用しているので“1”となる。
また、ソフト部品格納部22に格納されたソフト部品のうち、各派生製品に利用されているソフト部品の変更の有無を数値化する場合について説明する。上述したステップS23104の製品履歴数値化処理において、ソフト部品の変更状況を用いて数値化する場合の処理を示すフローチャートを図9に示す。ステップS231045から処理が開始される。ステップS231046では、既存製品から派生製品が開発される際に各ソフト部品が変更されているか否かを確認し、変更していればステップS231047に進み、変更していなければステップS231048に進む。ステップS231047では、既存製品構成情報を“1”に数値化する。ステップS231048では、既存製品構成情報を“0”に数値化する。ステップS231049では、処理を完了する。
以上、製品系列分析処理およびソフト部品の変更状況を用いた製品履歴数値化処理によって作成された製品系列構成情報2322を図10に示す。原製品から派生製品を開発するにあたり、使用していた(していなかった)ソフト部品を使用しなくなった(することになった)もの、および使用していたソフト部品をバージョン更新して引き続き使用するものは、変更とされる。例えば、製品Aをベースとして開発された製品B(図中AB欄)におけるソフト部品cの欄は、ソフト部品を変更しているので“1”となる。
以上のように、各既存製品を構成する各ソフト部品の利用状況および変更状況に基づき、製品系列構成情報を作成することで、異なるソフト部品の組み合わせで構成されている既存製品を一元的かつ数値的に扱うことができる。
(部品間距離分析手段の処理)
次に、上述したソフト部品分析手段2を構成する要素のうち、部品間距離分析手段233が行う処理について説明する。本発明の実施形態に係る部品間距離分析手段233の処理を示すフローチャートを図11に示す。ここでは、上記製品系列格納部232に格納された製品系列構成情報に基づき、既存製品を構成するソフト部品相互間の部品間距離を演算する。ここで作成された部品間距離は、次処理となるソフト部品のグループ化を行う際に用いられる。
ステップS23301から処理が開始される。なお、本処理では2つのソフト部品間の距離を順次分析していくので、それぞれソフト部品(1)、ソフト部品(2)として処理中で扱う。ステップS23302では、ソフト部品(1)の番号を初期化する。ステップS23303では、ソフト部品(2)の番号を初期化する。ステップS23304では、ソフト部品(1)とソフト部品(2)の距離を演算するのであるが、ユークリッド距離を用いるか、角度を用いるか、によって処理が異なる。詳しくは後述する。ステップS23305では、ソフト部品(2)として全てのソフト部品を分析したか否かを判定する。分析していなければステップS23306に進み、分析が完了していればステップS23307に進む。ステップS23306では、ソフト部品(1)の番号を加算し、ステップS23304に進む。ステップS23307では、ソフト部品(1)として全てのソフト部品を分析したか否かを判定する。分析していなければステップS23308に進み、分析が完了していればステップS23309に進む。ステップS23308ではソフト部品(1)の番号を加算し、ステップS23303に進む。ステップS23309では、処理を完了する。こうして演算された部品間距離は、部品間距離格納部234へ格納される。なお、作成された部品間距離は、次処理となるソフト部品のグループ化を行う際に用いられる。
ここで、ソフト部品格納部22に格納されたソフト部品のうち、各派生製品に利用されているソフト部品相互間の距離を“ユークリッド距離”によって演算する場合について説明する。上述したステップS23304においてユークリッド距離によって部品間距離を演算する場合のフローチャートを図12に示す。ステップS233041から処理が開始される。ステップS231042では、部品間距離としてユークリッド距離によって関連度を求める。その場合の計算式を(式1)に示す。ステップS233043では、処理を終了する。なお、ユークリッドの距離の代わりにマンハッタン距離を用いるようにしても良い。その場合の計算式を(式2)に示す。なお、式中の、SWC1およびSWC2はソフト部品1およびソフト部品2を、Dist(SWC1, SWC2)はソフト部品1とソフト部品2との距離を、swc1iおよびswc2iはソフト部品1およびソフト部品2における製品iでの数値化された既存製品構成情報(0または1)を表す。
Figure 0005128440
Figure 0005128440
また、ソフト部品格納部22に格納されたソフト部品のうち、各派生製品に利用されているソフト部品相互間の距離を“角度”によって演算する場合について説明する。上述したステップS23304において角度によって部品間距離を演算する場合のフローチャートを図13に示す。ステップS233044から処理が開始される。ステップS231045では部品間距離として角度によって関連度を求める。その場合の計算式を(式3)に示す。なお、式中の「・」はベクトルの内積を表す。ステップS233046では、処理を終了する。
Figure 0005128440
上述したステップS23304において、各既存製品を構成する各ソフト部品の利用状況を用いた製品系列構成情報2321を基に、ソフト部品相互間の距離をユークリッド距離によって演算した結果を図14に示す。図14に示すように、製品系列構成情報2321を用いてソフト部品間距離分析手段233が距離を演算し、ソフト部品間距離2341を決定する。式2331は、ソフト部品eとソフト部品fの間の距離演算式である。図14のソフト部品間距離2341に示すように、全く同じ選択パターンを持つソフト部品との距離は0であり、一製品のみ異なる場合は距離1となる。また、100製品分異なる場合には距離10となる。
同様に、各既存製品を構成する各ソフト部品の変更状況を用いた製品系列構成情報2322を基に、ソフト部品相互間の距離を演算することも可能である。また、ユークリッド距離ではなく、マンハッタン距離あるいは角度によってソフト部品相互間の距離を演算することも可能である。
以上のように、ソフト部品間の関連性を数値化し、距離の概念を用いることによって、ソフト部品間の関連性を数値的に定量化することが可能になる。
(部品クラスタ分析手段の処理)
次に、上述したソフト部品分析手段2を構成する要素のうち、部品クラスタ分析手段235が行う処理について説明する。本発明の実施形態に係る部品クラスタ分析手段235の処理を図15に示す。ここでは、上記部品間距離格納部234へ格納されたソフト部品間距離2341に基づき、ソフト部品グループ241を決定する。こうして決定されたソフト部品グループ241は、部品クラスタ格納部24へ格納される。ここで作成されたソフト部品グループ241は、次処理としてソフト部品を再利用する際の支援のため、ユーザへ提示される。
具体的には、異なるソフト部品間での距離が近いソフト部品同士をクラスタ化することによってグループ化を行う。クラスタ化の手法は、例えば、最短距離法、最長距離法、メディアン法、重心法、群平均法、可変法、ウォード法などを用いる。図15のソフト部品グループ241では、ソフト部品aとソフト部品cの距離が0のため、距離0のグループを形成する。また、ソフト部品aおよびc、ソフト部品b、ソフト部品eの距離は1であり、距離1のグループを形成する。また、ソフト部品d、ソフト部品fの距離は1であり、距離1のグループを形成する。加えて、上記で得られたソフト部品グループ241を樹形図で表現したものを図16に示す。
以上のように、ソフト部品利用状況を用いた既存製品構成情報2321から得られたソフト部品間距離2341に基づき、複数のソフト部品をグループ化することで、各既存製品の同時利用状況を反映したソフト部品のグループ241を形成することが可能になる。
同様に、ソフト部品変更状況を用いた既存製品構成情報2322から得られたソフト部品間距離に基づき、複数のソフト部品をグループ化する場合には、各既存製品の同時変更状況を反映したソフト部品のグループ(図示しない)を形成することも可能になる。
<再利用支援手段>
本発明のソフトウェア分析部1の構成要素である、再利用支援手段3について説明する。
(ソフト部品選択手段)
まず、上記再利用支援手段3を構成する要素のうち、ソフト部品選択手段31が行う処理について説明する。本発明の実施形態に係るソフト部品選択手段31の処理を図17に示す。ソフト部品選択手段31は、ソフト部品格納部22から既存ソフト部品とそのバージョン情報を取得し、表示装置4に、ソフト部品選択手段31の操作画面となるソフト部品選択画面311を表示する。ユーザ7は、新規製品開発時において、表示されたソフト部品選択画面311から新規製品で利用するソフト部品とそのバージョンを選択する。図17の例では、ユーザ7は、ソフト部品a、bはバージョン3.0を選択し、ソフト部品cは選択せず、ソフト部品d、e、fはバージョン1.0を選択している。ユーザにより選択された利用ソフト部品321は、利用ソフト部品格納部32に格納される。
(ソフト部品検索手段)
次に、上述した再利用支援手段3を構成する要素のうち、ソフト部品検索手段33が行う処理について説明する。本発明の実施形態に係るソフト部品検索手段33の処理を図18に示す。ソフト部品検索手段33は、利用ソフト部品格納部32に格納された利用ソフト部品321に登録された利用ソフト部品について、部品クラスタ格納部24に格納された「各既存製品の同時利用状況を反映したソフト部品のグループ241」を分析し、部品間距離が所定の値以下のものを抽出する。本実施形態では、部品間距離0を閾値とする。利用ソフト部品321ではソフト部品aが登録され、ソフト部品グループ241ではソフト部品aとソフト部品cとが距離0のグループとして登録されているため、ソフト部品cが同時利用ソフト部品候補341として抽出される。
同様に、利用ソフト部品格納部32に格納された利用ソフト部品321に登録された利用ソフト部品について、部品クラスタ格納部24に格納された「各既存製品の同時変更状況を反映したソフト部品のグループ(図示しない)」を分析し、同時利用ソフト部品候補が抽出される。
以上のように、新規製品開発時に、既存製品において同時利用および同時変更され得るソフト部品間距離を参照することで、ユーザが選択した利用ソフト部品321について、同時利用する蓋然性が高いソフト部品をユーザに提示することが出来、ソフト部品選択作業を効率化することが出来る。
<まとめ>
本発明は、複数のソフトウェア部品で構成されたソフトウェア製品に適用することができる。本発明をソフトウェア製品に適用することで、既存製品の構成情報に基づいたソフト部品の同時利用関係および同時変更関係が分析され、複数のソフト部品間の関連性が定量的に評価される。加えて、派生製品開発時に同時に利用または変更される可能性が高いソフト部品が自動でグループ化されることで、過去のソフトウェア製品の開発実績および変更実績に基づいて派生製品開発時に同時に再利用または変更すべきソフト部品を、ユーザが効率的に選択することが出来る。
また、ソフト部品の組み合わせ数が指数関数的に増加すると言う問題に関しても、本発明の実施形態に係るソフトウェア分析装置では、まず既存製品の開発履歴に基づいてソフト部品間の関連性を評価したうえで、個々バラバラであったソフト部品を同時利用または同時変更される可能性の高いソフト部品のグループとする。したがって、当該グループ同士を組み合わせることで、当初よりも組み合わせ数を削減することができる。
さらに、本発明は、車両制御用ソフトウェアに含まれるソフト部品についても応用可能である。車両制御ソフトウェアとは具体的には、エンジンやモータを制御するパワートレイン制御ソフトウェア、ステアリングやブレーキを制御するシャシ制御ソフトウェア、ドアロック、パワーウィンドウや照明などを制御するボディ制御ソフトウェアを指す。
例えばパワートレイン制御ソフトウェアは、マイクロプロセッサやLSIで構成される電子制御装置に搭載されており、エンジン等に設置されたセンサ(例:回転数センサ)を入力とし、エンジンの運転状態を推定するとともに、運転者の操作に基づいてエンジンの目標状態を決定して、目標状態を実現する為に必要なアクチュエータ(例:スロットル)操作を行う。エンジン制御システムは、同一のエンジン型式でも搭載される車種によって目標状態が異なったり、生産時期によって使用するセンサやアクチュエータが変更されたりすることがある。このような車両制御ソフトウェアに対して本発明のソフトウェア分析装置を適用することにより、派生製品開発時に同時に再利用または変更されるソフト部品をグループ化して組み合わせ数を削減するとともに、ユーザがソフト部品を効率的に選択することが出来る。
なお、本発明は、実施形態の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フロッピィ(登録商標)ディスク、CD−ROM、DVD−ROM、ハードディスク、光ディスク、光磁気ディスク、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータ上のメモリに書きこまれた後、そのプログラムコードの指示に基づき、コンピュータのCPUなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。
また、実施の形態の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することにより、それをシステム又は装置のハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、使用時にそのシステム又は装置のコンピュータ(又はCPUやMPU)が当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしても良い。
本発明の一実施形態によるソフトウェア分析装置の構成例を示す図である。 エンジン制御用ソフトウェアの構成を示す図である。 ソフトウェア製品の開発ツリーを示す図である。 製品履歴格納部に格納される既存製品構成情報を示す図である。 ソフト部品分析手段の構成を示す図である。 製品系列分析手段の処理を示すフローチャートである。 ソフト部品利用状況を用いた製品履歴数値化処理を示すフローチャートである。 ソフト部品利用状況を用いた製品系列構成情報を示す図である。 ソフト部品変更状況を用いた製品履歴数値化処理を示すフローチャートである。 ソフト部品変更状況を用いた製品系列構成情報を示す図である。 部品間距離分析手段の処理を示すフローチャートである。 ユークリッド距離を用いた部品間距離分析手段の処理を示すフローチャート図である。 角度を用いた部品間距離分析手段の処理を示すフローチャート図である。 製品系列構成情報を用いた部品間距離演算処理を示す図である。 部品クラスタ分析手段の処理を示す図である。 部品クラスタ分析結果の樹形図による表示図である。 ソフト部品分析手段を示す図である。 ソフト部品検索手段を示す図である。
符号の説明
1…ソフトウェア分析部、2…ソフト部品分析手段、3…再利用支援手段、4…表示装置、5…入力装置、6…エンジン制御ソフトウェア、7…ユーザ、21…製品履歴格納部、22…ソフト部品格納部、23…ソフト部品関連度分析手段、24…部品クラスタ格納部、31…ソフト部品選択手段、32…利用ソフト部品格納部、33…ソフト部品検索手段、34…推薦ソフト部品格納部、231…製品系列分析手段、232…製品系列格納部、233…部品間距離分析手段、234…部品間距離格納部、235…部品クラスタ分析手段。

Claims (9)

  1. ソフトウェア既存製品に含まれる複数のソフト部品および前記複数のソフト部品間の関連性を分析するソフトウェア分析装置であって、
    前記ソフトウェア既存製品ごとに前記複数のソフト部品に関する情報および前記複数のソフト部品間に関する情報を有する既存製品構成情報から前記ソフトウェア既存製品に含まれる複数のソフト部品の組み合わせを数値的に表す製品系列構成情報を作成する製品系列分析手段と、
    前記製品系列構成情報に基づいてソフト部品間の関連性を数値的に定量化したソフト部品間距離を演算する部品間距離分析手段と、
    前記ソフト部品間距離に基づいて前記ソフト部品をグループ化する部品クラスタ分析手段と、
    前記製品系列分析手段と前記部品間距離分析手段と部品クラスタ分析手段による結果を出力する出力部と、
    を備えたことを特徴とするソフトウェア分析装置。
  2. 前記既存製品構成情報は、前記複数のソフト部品のうち前記ソフトウェア既存製品が利用するものを抽出したソフト部品利用情報、該ソフト部品利用情報に含まれるソフト部品のバージョン情報、前記ソフトウェア既存製品の開発ベースとなった原製品情報および該原製品情報に含まれるソフト部品情報、のうち少なくともいずれか1つを有することを特徴とする請求項1に記載のソフトウェア分析装置。
  3. 前記製品系列分析手段は、前記既存製品構成情報に基づき、前記ソフト部品利用情報を数値化することで前記製品系列構成情報を作成し、該製品系列構成情報を製品系列格納部へ出力することを特徴とする請求項2に記載のソフトウェア分析装置。
  4. 前記製品系列分析手段は、前記既存製品構成情報に基づき、前記原製品情報および該原製品情報に含まれるソフト部品情報から変更されたソフト部品情報を数値化することで前記製品系列構成情報を作成し、該製品系列構成情報を製品系列格納部に出力することを特徴とする請求項2に記載のソフトウェア分析装置。
  5. 前記部品間距離分析手段は、前記製品系列構成情報に基づき、ユークリッド距離、マンハッタン距離、角度、のうち少なくともいずれか1つを求めることで前記ソフト部品間距離を作成し、該ソフト部品間距離を部品間距離格納部に出力することを特徴とする請求項1に記載のソフトウェア分析装置。
  6. 前記部品クラスタ分析手段は、前記ソフト部品間距離に基づき、該ソフト部品間距離が所定の値以下のソフト部品同士を前記ソフト部品グループとして作成し、部品クラスタ格納部に出力することを特徴とする請求項1に記載のソフトウェア分析装置。
  7. 前記部品クラスタ分析手段は、前記ソフト部品間距離を樹形図へと変換し、
    前記出力部は、前記樹形図を表示することを特徴とする請求項1に記載のソフトウェア分析装置。
  8. さらに、
    前記複数のソフト部品から該ソフト部品に関する情報および前記ソフト部品のバージョン情報を取得してソフト部品候補とするソフト部品選択手段と、
    前記出力部によって表示される前記ソフト部品候補のうちユーザが選択したソフト部品を格納する利用ソフト部品格納部と、
    前記ソフト部品間距離に基づき、前記ユーザが選択した前記ソフト部品に付随して利用される蓋然性が高いソフト部品を推薦ソフト部品として検索するソフト部品検索手段と、
    前記推薦ソフト部品を格納する推薦ソフト部品格納部と、
    を有し、
    前記出力部はさらに前記ソフト部品選択手段と前記利用ソフト部品格納部と前記推薦ソフト部品格納部の結果を出力することを特徴とする請求項1に記載のソフトウェア分析装置。
  9. コンピュータを請求項1に記載のソフトウェア分析装置として機能させるためのプログラム。
JP2008284137A 2008-11-05 2008-11-05 ソフトウェア分析装置 Expired - Fee Related JP5128440B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008284137A JP5128440B2 (ja) 2008-11-05 2008-11-05 ソフトウェア分析装置
US12/612,371 US8495569B2 (en) 2008-11-05 2009-11-04 Software analyzing apparatus for analyzing software components and correlations between software components

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008284137A JP5128440B2 (ja) 2008-11-05 2008-11-05 ソフトウェア分析装置

Publications (2)

Publication Number Publication Date
JP2010113449A JP2010113449A (ja) 2010-05-20
JP5128440B2 true JP5128440B2 (ja) 2013-01-23

Family

ID=42133043

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008284137A Expired - Fee Related JP5128440B2 (ja) 2008-11-05 2008-11-05 ソフトウェア分析装置

Country Status (2)

Country Link
US (1) US8495569B2 (ja)
JP (1) JP5128440B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8479159B2 (en) * 2006-10-20 2013-07-02 International Business Machines Corporation System and method for automatically determining relationships between software artifacts using multiple evidence sources
JP5236564B2 (ja) * 2009-04-20 2013-07-17 株式会社日立製作所 ソフトウェア再利用支援方法及び装置
WO2012055072A1 (en) * 2010-10-29 2012-05-03 Hewlett - Packard Development Company, L.P. Software application recognition
JP2013003664A (ja) * 2011-06-13 2013-01-07 Sony Corp 情報処理装置および方法
EP2608024A1 (en) * 2011-12-22 2013-06-26 Tata Consultancy Services Limited Computing reusability index of software assets
JP6007920B2 (ja) * 2012-01-23 2016-10-19 日本電気株式会社 検証装置、検証方法、及び、コンピュータプログラム
JP6199160B2 (ja) * 2013-11-06 2017-09-20 株式会社日立製作所 ソフトウェア開発管理装置およびその方法
WO2016122481A1 (en) * 2015-01-28 2016-08-04 Hewlett Packard Enterprise Development Lp Product portfolio rationalization
WO2016151865A1 (ja) * 2015-03-26 2016-09-29 株式会社日立製作所 ソフトウェア選択システム及びその方法
US9875095B2 (en) 2015-09-30 2018-01-23 International Business Machines Corporation Software bundle detection
US10949470B2 (en) * 2019-02-13 2021-03-16 International Business Machines Corporation Topic clustering to generate formulations

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4864569A (en) * 1987-11-25 1989-09-05 Westinghouse Electric Corp. Software verification and validation configuration management system
US5361355A (en) * 1991-02-08 1994-11-01 Fujitsu Limited Software asset systemizer
JP3625084B2 (ja) 1995-04-14 2005-03-02 株式会社山武 ソフトウエア部品の再利用システム
JPH09134282A (ja) 1995-11-08 1997-05-20 Hitachi Ltd プログラム作成方法
JPH09292986A (ja) * 1996-04-26 1997-11-11 Hitachi Ltd 部品抽出方法
US20030089753A1 (en) * 2001-09-10 2003-05-15 Joseph Hang Glass edging method and tool therefor
JP2003216425A (ja) * 2002-01-24 2003-07-31 Japan Science & Technology Corp 類似度計測システム
CA2476585A1 (en) * 2002-02-18 2003-08-21 Japan Science And Technology Agency Software component importance evaluation system
JP2009086791A (ja) 2007-09-28 2009-04-23 Hitachi Ltd ソフトウェア製品系列分析装置

Also Published As

Publication number Publication date
US8495569B2 (en) 2013-07-23
JP2010113449A (ja) 2010-05-20
US20100115492A1 (en) 2010-05-06

Similar Documents

Publication Publication Date Title
JP5128440B2 (ja) ソフトウェア分析装置
US8826224B2 (en) Apparatus and method for supporting model-driven development
CN109408528B (zh) 一种数据库脚本生成方法、装置、计算装置和存储介质
CN1619546A (zh) 文本的标号系统-翻译和在运行时间的多语言支持以及设计
EP2008232A1 (en) System and method for knowledge extraction and abstraction
US20090307654A1 (en) System, method and computer program for generating sequence diagram
US8898649B2 (en) Application program analysis method, analysis system and recording medium for identifying a contributing factor for an invalid operation of an application program
JP2009169828A (ja) テストケース生成装置及びテストケース生成プログラム
JP2000242672A (ja) 形式的論理検証装置および形式的論理検証方法
US9182960B2 (en) Loop distribution detection program and loop distribution detection method
JP2010061403A (ja) 文字列認識装置及び方法、並びにプログラム
JP6579095B2 (ja) プログラム書き込み方法、装置の制御方法、プログラム書き込みのためのプログラム、および装置の制御プログラム
JP6372350B2 (ja) 定義ファイル生成プログラム、定義ファイル生成方法、および情報処理装置
JP2018173699A (ja) テンプレート生成装置、テンプレート生成方法およびプログラム
JP4311327B2 (ja) ソースコード自動生成装置、ソースコード自動生成方法、プログラムおよび記録媒体
JP2000305933A (ja) 情報検索装置、情報検索方法、及び記憶媒体
CN113031952A (zh) 深度学习模型的执行代码的确定方法、装置及存储介质
JP7110385B2 (ja) モデル比較装置
JP2007018313A (ja) 回路設計プログラム、回路設計装置、回路設計方法
JP2013080386A (ja) 情報処理装置、アドレス管理方法
JP4061931B2 (ja) 実行履歴記録装置、ブレーク命令設定装置、及びプログラム
JP4494892B2 (ja) データ処理装置及びプログラム
JP2006127397A (ja) アーキテクチャ構築と連動した要求仕様抽出方式
CN114296792A (zh) 一种代码注释生成方法及装置
CN111273956A (zh) 一种程序模块加载方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120704

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120710

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120910

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121002

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121031

R151 Written notification of patent or utility model registration

Ref document number: 5128440

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151109

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees