JP3905086B2 - ソフトウェア部品の重要性評価システム - Google Patents

ソフトウェア部品の重要性評価システム Download PDF

Info

Publication number
JP3905086B2
JP3905086B2 JP2003568523A JP2003568523A JP3905086B2 JP 3905086 B2 JP3905086 B2 JP 3905086B2 JP 2003568523 A JP2003568523 A JP 2003568523A JP 2003568523 A JP2003568523 A JP 2003568523A JP 3905086 B2 JP3905086 B2 JP 3905086B2
Authority
JP
Japan
Prior art keywords
component
software
group
parts
importance
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
JP2003568523A
Other languages
English (en)
Other versions
JPWO2003069466A1 (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.)
Japan Science and Technology Agency
National Institute of Japan Science and Technology Agency
Original Assignee
Japan Science and Technology Agency
National Institute of Japan Science and Technology Agency
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 Japan Science and Technology Agency, National Institute of Japan Science and Technology Agency filed Critical Japan Science and Technology Agency
Publication of JPWO2003069466A1 publication Critical patent/JPWO2003069466A1/ja
Application granted granted Critical
Publication of JP3905086B2 publication Critical patent/JP3905086B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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)
  • Other Investigation Or Analysis Of Materials By Electrical Means (AREA)

Description

本発明は、コンピュータ・ソフトウェアの再利用における重要性の評価に関するものである。
ソフトウェアの大規模化と複雑化に伴い、高品質なソフトウェアを一定期間内に効率良く開発することが重要になってきている。これを実現するために、様々なソフトウェア工学技術が提案されてきている。再利用は、それらの中でも最も有効なものの一つである。
再利用は、既存のソフトウェア部品を同一システム内や他のシステムで用いることであると定義されている(例えば、C.Braun:Reuse,in John J.Marciniak,editor,Encyclopedia of Software Engineering,Vol.2,John Wiley & Sons,pp.1055−1069(1994)等参照)。一般に、ソフトウェアの再利用は、生産性と品質を改善し、結果としてコスト削減するといわれている。
個々のソフトウェア部品の再利用性を評価する方法はいろいろ提案されている。Etzkornらは、レガシーソフトウェア中の部品(C++のクラス)に対して、様々なメトリクス値を計算し、それらの値を正規化して足し合わせることで、再利用性とすることを提案した(L.H.Etzkorn,W.E.Huges Jr.,C.G.Davis:”Automated reusability quality analysis of 00 Legacy software”,Information and Software Technology,Vol.43,Issue 5,pp.295−308(2001)参照)。また、山本らは、ソースコードが非開示なソフトウェア部品に対して、インタフェース部分の情報のみを用いて再利用性を評価する方法を提案している(山本,鷲崎,深澤:“再利用特性に基づくコンポーネントメトリクスの提案と検証”,ソフトウェア工学の基礎ワークショップ(FOSE2001),(2001)参照)。これらの方法は全て、部品そのものの持つ静的な特性を計算して再利用性を評価するものとなっている。また、提案された再利用性の評価値の妥当性については、複数の部品に対して得られた再利用性の値の順位と、実際のプログラマによる主観的な再利用性の評価の結果が似ているといった評価が行われている。
しかし、再利用性が高いということは、実際に多くのソフトウェア中に再利用されているという実績が定量的に示されることが必要である。主観的に再利用性が高いと判断されても、実際の再利用実績がなければ意味がないという立場である。現実には、従来手法では再利用性が低いと評価されても、多くのシステムで再利用されているという部品は多く存在すると考えられる。
本発明の目的は、ソフトウェアの再利用性を、客観性のある尺度に基づいて測定するシステムを提供することである。
上記の目的を達成するために、本発明は、ソフトウェア部品の再利用における重要性評価システムであって、ソフトウェア部品間の関係を抽出する関係抽出手段と、
ソフトウェア部品間の類似度を求めて、類似しているソフトウェア部品をまとめて部品群とする類似度分析手段と、前記関係抽出手段からのソフトウェア部品間の関係と、前記類似度分析手段からの部品群とから、部品群間の関係を求める部品群関係抽出手段と、
前記部品群関係抽出手段からの部品群間の関係から、被利用数が多い部品群や被利用数が多い部品群から利用されている部品群の評価値が高くなるように評価する、各部品群に対する相対的重要性を評価する相対的重要性評価手段と、部品群の評価した値を、部品群に属するソフトウェア部品に評価値として移す手段とを備え、ソフトウェア部品の重要性を評価することを特徴とする。
前記相対的重要性評価手段は、ある部品群 の評価値 を、利用している部品群 には高くなるような配分率 ik で、全ての部品群C (1≦j≦m)に配分してもよいし、どの部品群も利用していない部品群C に関しては、全ての部品群C (1≦j≦m)に対して、配分率d lj =(1/m)として、評価値を定めてもよい
また、前記相対的重要性評価手段は、前記部品群C の前記評価値をv ,部品群C から部品群C への前記配分率d ij ,評価値を表わすm次元列ベクトルVをV=(v ,v ,・・・,v ,配分率d ij を要素とするm×m行列Dを
Figure 0003905086
として、Dの転置行列D のλ=1に対する固有ベクトルをVとすることで、評価値を求めることできる。
上述のソフトウェア部品の重要性評価システムをコンピュータ・システムに構築させるコンピュータ・プログラムや、そのコンピュータ・プログラムを記憶した記録媒体も本発明である。
本発明のソフトウェア部品重要性評価システムを用いることにより、従来手法では再利用性が低いと評価されても、現実に多く再利用されているという部品を抽出することができ、実際のソフトウェア開発現場で利用する上で、本当に意味のある再利用性が高い部品を知ることが可能となった。
以下、図面を参照して、本発明の実施形態を説明する。
本発明では、利用実績に基づいて、ソフトウェア部品の再利用における重要性を評価している。本発明における重要性評価についての基本的な考え方は、以下の通りである。
(1)ソフトウェアを構成する部品間には相互に利用関係がある。
(2)一般に、時間が経過し、多くのプロジェクト開発で再利用などが行われるに連れて、部品の利用関係は変化していく。
(3)十分な時間が経過した状態のもとで、被利用数が多い部品は重要である(再利用性が高い)。また、重要な部品から利用されている部品も重要である(再利用性が高い)。
分野は異なるが、よく知られているサーチエンジンgoogleでは、多くのページからリンクされているページは、やはり良質なページであるという再帰的な関係をもとに、あらゆるページの重要度を評価している。
<ソフトウェア部品>
まず、図1を用いて、重要性を評価する対象である「ソフトウェア部品」とその利用関係について説明する。
一般にソフトウェア部品(Software Component)は再利用できるように設計された部品とされ、特に部品の内容を利用者が知る必要のないブラックボックス再利用ができるものを指すこともある。ここではより一般的に、ソースコード・ファイルやバイナリ・ファイル、ドキュメントなどの種類を問わず、開発者が再利用を行なう単位をソフトウェア部品あるいは単に部品と呼ぶ。これらの部品間には、図1に示すように、互いに利用する、利用されるという利用関係が存在する。図1では、部品間の利用関係をグラフ100で表している。図1において、部品102は部品104を利用しており、部品104は部品106,108を利用していることを示している。そして、部品106および部品110は、部品112を利用しており、部品112は部品108を利用している。
<類似部品群>
一般に、部品の集合には、コピーした部品や、コピーして一部変更した部品が多く存在する。そこで、類似した部品をまとめることにより、部品の集合をいくつかの部品群に分類する。以降、類似した部品を集めた部品群を単に部品群と呼ぶ。
図2を例に説明する。図2(a)は部品間の利用関係である。部品cと部品c’、部品cと部品c’はそれぞれ類似した部品である。部品c,c,cには類似性はない。図2(a)に示すように、部品cは部品cを利用し、部品c’,cは部品c’を利用している。また、部品cは部品cを、部品c’は部品cをそれぞれ利用している。
図2(b)では、類似した部品をまとめて部品群としている。部品群に属する部品は、それぞれ、C={c,c’},C={c,c’},C={c},C={c},C={c}である。
ある部品群Cに属する部品が、他の部品群Cに属する部品を利用している場合、その2つの部品群間には利用関係があるとする。
例えば、図2では、部品cと部品c’を利用する関係は、部品群Cを利用する関係としてまとめている。また、部品cと部品c’が利用している関係は、部品群Cが利用している関係としてまとめている。
上述した考えを用いる場合には、2つの部品がどの程度類似しているか(類似度(Similarity))を定量的に評価する必要がある。そのために類似度を評価するメトリクスを利用する。まず、類似度に基づいてクラスタ分析を行ないn個の部品の集合をm(0≦m≦n)個の部品群に分ける。類似度は0以上1以下の範囲に正規化され、値が高いほど部品は良く類似しているとし、類似度1を完全に部品が一致した場合(コピーした部品)とする。
部品群間の類似度は、部品間の類似度に基づいて決まるとする。基準となる類似度の閾値t(0≦t≦1)を与え、部品群間の類似度がtより低く、かつ、部品群内の部品間の類似度はt以上になるように分類する。
<相対的重要性>
個々の部品の再利用性を評価する手法は多く提案されている。Etzkornらは、Modularity,Interface Size,Documentation,Complexityの4つの視点からオブジェクト指向ソフトウェアの再利用性を評価する手法を提案している(L.H.Etzkorn,W.E.Huges Jr.,C.G.Davis:”Automated reusability quality analysis of 00 Legacy software”,Information and Software Technology,Vol.43,Issue 5,pp.295−308(2001)参照)。この手法は、ソースコードから計測される複数のメトリクスを正規化して足し合わせることで再利用性のメトリクスとし、C++のソースコードに対して、実際にプログラマが評価した再利用性とメトリクス値を比較している。
また、山本らはソースコードが非開示な部品に対して、そのインターフェイスから再利用性を評価する手法を提案している。彼らは理解容易性、利用容易性、テスト容易性、可搬性の4つの視点から再利用性メトリクスを定義し、JavaBeansを対象として実際にプログラマがアプリケーションを実装した結果とメトリクス値を比較している(山本,鷲崎,深澤:“再利用特性に基づくコンポーネントメトリクスの提案と検証”,ソフトウェア工学の基礎ワークショップ(FOSE2001),(2001)参照)。
これらの手法は全て、部品の構造やインターフェイスなどの部品そのものの持つ静的な特性を計算して再利用性を評価するものとなっている。
これに対して本発明では、その部品がどの程度利用されているかという実績に基づいた評価を行う。この再利用における重要性は、多数の部品間の静的特性から決まる再利用性とは区別して、「相対的重要性(Relative Significance)」と呼ぶ。
さて、ソフトウェア開発者が過去に開発されたソフトウェア部品を再利用して新しいソフトウェアを開発する場合を想定する。一般に、開発者は過去に開発されたソフトウェア部品の中で、自分が開発しようとしているソフトウェアに対して再利用性が高いと判断したものを再利用する。ここで、開発者が部品を再利用するということは、その部品に対して「再利用性が高い」という支持投票をしたとみなす。再利用によるソフトウェア開発が何度も繰り返されれば、再利用性の高い部品は何度も再利用され、支持投票数が増加していく。逆に再利用性の低い部品はあまり再利用されず、したがって支持投票数は低い値に留まる。このときソフトウェア部品は獲得した票数に応じた再利用性の評価値を持つと考えられるので、以下の式が成り立つ。
[数2]
(部品の評価値)=(部品への投票数)
このとき、単純に獲得票数を数えるだけでなく、どのような部品から再利用されたかによって票に重みづけをする。多くの部品から再利用されるような優秀な部品(優秀な部品の開発者に再利用されている部品)は、再利用における重要性が高いとみなして、同じ一票の支持投票でも、重要性の評価値の高い部品から投票された場合と、評価値の低い部品から投票された場合では、前者の票の方がより大きい重みを持つようにする。
また、ある部品が再利用している部品の数も考慮する。ある部品Aが多数の部品を再利用している場合には、各再利用部品が、Aの機能に占める割合が少なくなるので、重要性の評価は分散してしまうとみなす。つまり、ある部品が複数の部品に投票している時は、票の重みは各再利用部品にある配分率をもって配分され、以下の式が成り立つ。
[数3]
(票の重み)=(投票元の評価値)×(投票先に対する配分率)
このように、部品の集合において部品同士がお互いに重要性を評価し、投票しあうことで決まっていく評価を「相対的重要性(Relative Significance)」と呼び、部品が獲得した票の重みの合計値を「相対的重要性評価値(Value of Relative Significance)」と呼ぶ。
実際に再利用を繰り返してソフトウェア開発を行う場合、新たに開発したソフトウェアが蓄積されていくため、部品の集合の要素数は増加し、再利用関係は変化していく。相対的重要性評価値は部品の集合における再利用関係から求められるため、部品の集合の要素数や再利用関係が変化すると、変化前の評価値と変化後の評価値では比較することができない。そこで、評価値そのものではなく、その評価値による部品の順位に着目する。部品の集合の要素数や再利用関係が変化したときも、その変化前後の部品の順位の変動を見ることで、部品の相対的重要性がどのように変化したのかを理解することができる。
図2で説明したように、実際の部品の集合には多数のコピーや類似品が存在しているため、提案手法では部品群を部品の単位とし、部品群の相対的重要性評価値による順位づけを行うことで評価を行う。この手法を「Relative Significance Ranking法(RSR法)」と呼ぶ。
上述の評価値の配分を、図3で説明する。図3のC,C,Cは部品群を表している。利用関係は利用する部品群から利用される部品群へ矢印で表している。簡単のため、利用していない部品群への配分率は0としている。また、利用している部品には均等に配分する。部品群C,C,Cの評価値をv,v,vとし、評価値の総和が1となるようにしておく。このとき、図3の利用関係から、各部品群の評価値はv=0.4,v=0.2,v=0.4となる。よって、部品群C,Cは、Cよりも、相対的重要性が高いと評価される。
<部品の分類>
評価対象となる部品がn個あるとし、それぞれc,c,…,cとする。部品間には方向性を持つ関係があり、部品cからcへの関係をr(c,c)と表し、
[数4]
r(c,c)=if(cはcを利用している)
then true
else false
とする。
部品間の類似度をs(c,c)と表す。類似度は0≦s(c,c)≦1に正規化されているとする。
評価対象となる部品全体の集合を、C={c,c,・・・,c}と表す。部品間の類似度sに基づいて部品の集合間の類似度が決まるとし、部品の集合CとCとの類似度をS(C,C)と表す。類似度は0≦S(C,C)≦1に正規化されているとする。
定義1 分類の基準となる類似度の閾値をt(0≦t≦1)とするとき、部品の集合Cを次の条件を満たすように分割した部分集合C,C,・・・,Cを類似部品群と呼ぶ。
・Cに属するすべての部品について、類似度sはt以上とする。
[数5]
∀c,c∈C | s(c,c)≧t (1)
・異なる集合間の類似度Sはtより低い。すなわち、すべてのi,j(1≦i,j≦m)について次式が成り立つ。
[数6]
S(C,C)<t (i≠j) (2)
Cをm個の類似部品群に分割し、それぞれC,C,・・・,Cとする。以降、類似部品群を単に部品群と呼ぶ。
定義2 c∈C,c∈Cとするとき、あるc,cについてcからcへの利用関係があれば、CからCへの利用関係があるとみなす。すなわち、
[数7]
R(C,C)=if(∃c,c)|r(c,c
then true
else false
である。
<相対的重要性評価の定義>
部品群は相対的重要性評価値を持つとし、部品群Cの相対的重要性評価値をvと表す。また、CからCへの利用関係の重みをwijと表す。
定義3 部品群Cの相対的重要性評価値は、部品群Cへの利用関係の重みwjiの総和である。
Figure 0003905086
部品群Cから部品群Cへの重みの配分率(Distribution Ratio)をdijと表す。
定義4 部品群CからCへの利用関係の重みwijは、Cの相対的重要性評価値を配分率dijで配分した値である。
[数9]
ij=vij (4)
定義5 部品群Cの相対的重要性評価値は、すべての部品群C(1≦j≦m)に配分される。
Figure 0003905086
定義6 利用している部品群への配分率は、利用していない部品群への配分率より高い。すなわち、
[数11]
R(C,C)=true,R(C,C)=falseのとき、
ij>dik (6)
である。
<補正>
これまでで定義した相対的重要性評価値を、実際のソフトウェア部品にそのまま適用するといくつかの問題が生じるため、若干の補正が必要となる。以下ではその問題点と対策を説明する。
(利用をしていない部品に対する評価)
一般に、ソフトウェア開発においては、他の部品を一つも利用せずに開発した部品も存在する。
ある部品群Cが他のどの部品も利用していない場合、Cはどの部品群に対しても投票を行っていないことになる。したがってどの部品群にも評価値を配分できないと考えてdi0,di1,di2,…,dimをすべて0とすると、定義5を満たさないことになる。そこで、どの部品にも投票しない場合は「重要性が非常に低い」という評価をすべての部品群に対して投票したと解釈する。
補正1 部品群Cがどの部品群も再利用していない場合、すべてのjについて
Figure 0003905086
とする。
(評価が全体に循環しない場合)
この場合を、図4を用いて説明する。図4で、四角は部品群162,164,166,172を、矢印は利用関係を表している。図4(a)では、楕円160中の部品群に入る矢印は存在するが、楕円160から出ていく矢印は存在しない。従って、重要性評価の投票はこの楕円内に蓄積され、全体へ票が循環しないことになる。そこで、部品群を利用していない場合には、図4(b)で薄い線の矢印d’で示すように、非常に低い重みの票を投票すると考える。
補正2 部品群のもつ評価値のうちp(0<p<1)は利用した部品群にのみ配分し、(1−p)はすべての部品群に配分する。もとの配分率をdijとし、修正後の配分率をd’ijとし、以下のように配分率を修正する。
Figure 0003905086
<評価値の計算方法>
ここでは、相対的重要性評価値を求めることが、配分率の行列の固有ベクトルを求めることに帰着されることを示す。
定義3,4より
Figure 0003905086
これをv(i=1,2,…,m)のすべてについて解けば、すべての部品群の評価値を求めることができる。
すなわち、
Figure 0003905086
のm個の連立方程式を解けば良い。
これを行列の記法で表す。
m個の部品群の評価値を表すm次元列ベクトルをVとする。
[数16]
V=(v,v,・・・,v 右肩のtは転置を表す。
また、CからCへの配分率を表すm×m行列をDとする。
Figure 0003905086
このとき連立方程式(10)は
[数18]
V=DV (11)
と表される。
式(11)を満たすようなベクトルVは行列Dの固有値λ=1の固有ベクトルである。
よって配分率の行列の固有ベクトルを求めることで、相対的重要性評価値を決定することができる。
<重要性評価システム>
上述した重要性評価モデルに基づいて、本発明のシステムを、Java(登録商標)ソースコードを対象に相対的重要性評価システムで説明する。上述の手法(RSR法)をJava(T)に適用する際の、モデルとJava(T)の概念との対応を表1に示す。
Figure 0003905086
Java(T)はオブジェクト指向言語であり、クラス単位での再利用が行いやすい。また、原則として1つのソースコード・ファイルには1つのクラスを記述する。そこで、Javaソースコード・ファイルを部品の単位とし、RSR法を適用する。クラスの継承、インターフェースおよび抽象クラスの実装、メソッドの呼びだしを利用関係とみなす。また、部品間の類似度を評価するメトリクスとして、「クローン検出ツールを用いたソフトウェアシステムの類似度調査」(電子情報通信学会技術研究報告vol.101 No.240 2001,7.30)および特願2002−015135号で提案されている類似度を用いる。この類似度は、2つのソースコード・ファイル間で一致する行の割合で類似度を計測する手法である。類似度をソースコード・ファイルから計測するシステム「SMMT(Similarity Metrics Mesuring Tool)」も開発されており(特願2002−015135号参照)、本システムではSMMTを用いて類似度を算出する。
(システムの構成)
相対的重要性評価システムの構成を図5に示す。このシステムでは、N個のJavaソースコード・ファイル230を相対的重要性の評価対象とする。以下に、それぞれの部分を説明する。
・ファイル間の関係抽出(S212):Javaソースコード・ファイル230を解析し、クラス間の継承、インターフェイスと抽象クラスの実装、メソッドの呼びだしを再利用関係として抽出する。Javaソースコードの構文解析には、ここではANTLR(ANTLAR,http://www.antlr.org/参照)を利用している。
・SMMT(S222):Javaソースコード・ファイル間230の類似度を算出する。
・クラスタ分析(S224):SMMT(S222)で得られた類以度をもとにクラスタ分析を行ない、ファイルの集合をM個の部品群に分類する。クラスタ分析においては、分類の基準となる閾値tをパラメータとして与える(上述の定義1参照)。
・部品群間の関係抽出(S214):クラスタ分析(S224)とファイル間の関係抽出(S212)の結果から、部品群間の関係を抽出する。
・相対的重要性計算(S216):部品群間の関係から、RSR法で部品群の相対的重要性評価値による評価を行なう。なお、ここでは行列の固有値計算には、Java(T)で行列演算を行なうパッケージJAMA(JAMA:A Java Matrix Package:http://math.nist.gov./javanumerics/jama/参照)を利用している。
・部品群評価→ファイル(ソフトウェア部品)評価変換(S218):部品群の相対的重要性評価を、ファイル(ソフトウェア部品)の評価に変換する。
実際に、Javaソースコードに、上述の相対的重要性評価システムを適用した場合の適用例を以下に示す。評価対象としてJDK 1.3.0を選んだ。調整パラメータとして、定義1で述べたクラスタ分析における分類の閾値をs=0.80、補正2で述べた票の重みの比率をp=0.85とした。JDKへ適用して得られた結果の一部を図6に示す。図6の表は、JDKのクラスごとのファイルに対する評価値で、ソートした結果を示している。
JDKは、Java(T)の基本パッケージであり、Java(T)でアプリケーションを開発するときにはJDKが必要となる。図6において、相対的重要性の上位10クラスについて見てみると、Object,Class,Throwableなど、Java(T)の言語仕様で利用しなければならないクラスが大半を占めている。Java(T)言語仕様によれば、java.lang.Objectクラスはすべてのクラスのスーパークラスである。したがって、すべてのクラスから再利用されていることになり、相対的重要性が1位となっている。また、java.lang.Classクラスは実行中のクラスおよびインターフェイスを表すクラスで、このクラスを直接継承するようなクラスはないが、実行時のオブジェクト型の情報を取得するために頻繁に呼び出される。java.lang.Throwableクラスはすべてのエラーと例外のスーパークラスであり、したがって、例外やエラーを扱うクラスは、すべてこのクラスを間接的に再利用していることになる。このように、実際に直接的、間接的に利用される回数の多いクラスが上位を占めている。
最下位は1256位で、該当するクラスは622あった。これらのクラスは、どのクラスにも再利用されていない。
このように、相対的重要性評価システムは、実際の再利用における重要性を反映している評価値を算出している。
ソフトウェア部品の利用関係グラフを示す図である。 類似のソフトウェア部品を部品群としてまとめることを説明する図である。 ソフトウェア部品群の評価を説明する図である。 ソフトウェア部品群の評価の際の補正を説明する図である。 本発明実施形態である相対的重要性評価システムの構成を説明する図である。 相対的重要性評価システムによるソフトウェア部品の評価結果を示す図である。

Claims (6)

  1. ソフトウェア部品の再利用における重要性評価システムであって、
    ソフトウェア部品間の関係を抽出する関係抽出手段と、
    ソフトウェア部品間の類似度を求めて、類似しているソフトウェア部品をまとめて部品群とする類似度分析手段と、
    前記関係抽出手段からのソフトウェア部品間の関係と、前記類似度分析手段からの部品群とから、部品群間の関係を求める部品群関係抽出手段と、
    前記部品群関係抽出手段からの部品群間の関係から、被利用数が多い部品群や被利用数が多い部品群から利用されている部品群の評価値が高くなるように評価する、各部品群に対する相対的重要性を評価する相対的重要性評価手段と、
    部品群の評価した値を、部品群に属するソフトウェア部品に評価値として移す手段と
    を備え、ソフトウェア部品の重要性を評価することを特徴とするソフトウェア部品の重要性評価システム。
  2. 請求項に記載のソフトウェア部品の重要性評価システムであって、
    前記相対的重要性評価手段は、ある部品群 の評価値 を、利用している部品群 には高くなるような配分率 ik 全ての部品群C (1≦j≦m)に配分することを特徴とするソフトウェア部品の重要性評価システム。
  3. 請求項に記載のソフトウェア部品の重要性評価システムであって、
    前記相対的重要性評価手段は、どの部品群も利用していない部品群 に関しては、全ての部品群C (1≦j≦m)に対して、配分率d lj =(1/m)として、評価値を定めることを特徴とするソフトウェア部品の重要性評価システム。
  4. 請求項3に記載のソフトウェア部品の重要性評価システムであって、
    前記相対的重要性評価手段は、前記部品群C の前記評価値をv ,部品群C から部品群C への前記配分率d ij ,評価値を表わすm次元列ベクトルVをV=(v ,v ,・・・,v ,配分率d ij を要素とするm×m行列Dを
    Figure 0003905086
    として、Dの転置行列D のλ=1に対する固有ベクトルをVとすることで、評価値を求めることを特徴とするソフトウェア部品の重要性評価システム。
  5. 請求項1〜のいずれかに記載のソフトウェア部品の重要性評価システムをコンピュータ・システムに構築させるコンピュータ・プログラムを記憶した記録媒体。
  6. 請求項1〜のいずれかに記載のソフトウェア部品の重要性評価システムをコンピュータ・システムに構築させるコンピュータ・プログラム。
JP2003568523A 2002-02-18 2002-10-02 ソフトウェア部品の重要性評価システム Expired - Fee Related JP3905086B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2002040728 2002-02-18
JP2002040728 2002-02-18
PCT/JP2002/010274 WO2003069466A1 (fr) 2002-02-18 2002-10-02 Système d'évaluation de l'importance d'un composant logiciel

Publications (2)

Publication Number Publication Date
JPWO2003069466A1 JPWO2003069466A1 (ja) 2005-06-09
JP3905086B2 true JP3905086B2 (ja) 2007-04-18

Family

ID=27678313

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003568523A Expired - Fee Related JP3905086B2 (ja) 2002-02-18 2002-10-02 ソフトウェア部品の重要性評価システム

Country Status (4)

Country Link
US (1) US7627855B2 (ja)
JP (1) JP3905086B2 (ja)
CA (1) CA2476585A1 (ja)
WO (1) WO2003069466A1 (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7802236B2 (en) * 2002-09-09 2010-09-21 The Regents Of The University Of California Method and apparatus for identifying similar regions of a program's execution
JP4554321B2 (ja) * 2004-10-01 2010-09-29 株式会社日立製作所 アプリケーションプログラム開発支援方法及びシステム
JP2006113934A (ja) * 2004-10-18 2006-04-27 Hitachi Ltd プログラム開発支援装置、プログラム開発支援方法およびプログラム
US7624384B2 (en) * 2004-11-30 2009-11-24 Intel Corporation Apparatus, system, and method of dynamic binary translation with translation reuse
WO2006130846A2 (en) * 2005-06-02 2006-12-07 United States Postal Service Methods and systems for evaluating the compliance of software to a quality benchmark
US8572560B2 (en) * 2006-01-10 2013-10-29 International Business Machines Corporation Collaborative software development systems and methods providing automated programming assistance
US8010947B2 (en) 2006-05-23 2011-08-30 International Business Machines Corporation Discovering multi-component software products based on weighted scores
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
GB0623525D0 (en) * 2006-11-25 2007-01-03 Ibm An apparatus and method for determining the reuse value of a service component
US20080270153A1 (en) * 2007-04-30 2008-10-30 International Business Machines Corporation Service oriented architecture (soa) lifecycle model migration
JPWO2009069474A1 (ja) * 2007-11-26 2011-04-14 日本電気株式会社 類似サービス検索システム、方法、及び、プログラム
US8005783B2 (en) * 2008-02-27 2011-08-23 Siemens Aktiengesellschaft Method and system for optimizing reuse of artifacts based on assessment and classification
US20090259998A1 (en) * 2008-04-11 2009-10-15 International Business Machines Corporation Method, system and computer program for identifying and reusing component aggregates
JP5128440B2 (ja) * 2008-11-05 2013-01-23 株式会社日立製作所 ソフトウェア分析装置
US20110055373A1 (en) * 2009-08-30 2011-03-03 International Business Machines Corporation Service identification for resources in a computing environment
US8615477B2 (en) 2010-06-08 2013-12-24 Microsoft Corporation Monitoring relationships between digital items on a computing apparatus
US8515977B2 (en) 2010-09-10 2013-08-20 International Business Machines Corporation Delta language translation
US8670973B2 (en) 2010-09-16 2014-03-11 International Business Machines Corporation Language translation reuse in different systems
US9595202B2 (en) * 2012-12-14 2017-03-14 Neuron Fuel, Inc. Programming learning center
US9595205B2 (en) 2012-12-18 2017-03-14 Neuron Fuel, Inc. Systems and methods for goal-based programming instruction
US10510264B2 (en) 2013-03-21 2019-12-17 Neuron Fuel, Inc. Systems and methods for customized lesson creation and application
US9734040B2 (en) 2013-05-21 2017-08-15 Microsoft Technology Licensing, Llc Animated highlights in a graph representing an application
US8990777B2 (en) 2013-05-21 2015-03-24 Concurix Corporation Interactive graph for navigating and monitoring execution of application code
US9280841B2 (en) 2013-07-24 2016-03-08 Microsoft Technology Licensing, Llc Event chain visualization of performance data
US9292415B2 (en) 2013-09-04 2016-03-22 Microsoft Technology Licensing, Llc Module specific tracing in a shared module environment
EP3069267A4 (en) 2013-11-13 2017-09-27 Microsoft Technology Licensing, LLC Software component recommendation based on multiple trace runs
US10116512B2 (en) * 2014-07-10 2018-10-30 Oracle International Corporation Service discovery and/or effort estimation in networked computing environments
US10949785B2 (en) * 2015-01-28 2021-03-16 Micro Focus Llc Product portfolio rationalization
DE102015210498A1 (de) * 2015-06-09 2016-12-15 Siemens Aktiengesellschaft Verfahren zum rechnergestützten Erzeugen einer graphischen Modellierungssprache
WO2016208073A1 (ja) * 2015-06-26 2016-12-29 株式会社日立製作所 モジュール再利用判定装置、モジュール再利用判定方法、及びモジュール再利用判定プログラム
JP6602820B2 (ja) * 2017-07-04 2019-11-06 株式会社One Act ソースコード売買システム
JP6971501B2 (ja) * 2018-12-10 2021-11-24 株式会社One Act Aiを使用したソースコード売買システム
US11023356B2 (en) * 2019-01-03 2021-06-01 International Business Machines Corporation Utilization of publicly available source code
CN111596897B (zh) * 2020-05-07 2023-04-28 北京百度网讯科技有限公司 代码复用的处理方法、装置及电子设备
JP7519927B2 (ja) 2021-01-25 2024-07-22 三菱電機株式会社 Dx実現用共通基盤システム
JPWO2022264316A1 (ja) 2021-06-16 2022-12-22

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5202996A (en) * 1985-10-11 1993-04-13 Hitachi, Ltd. Software structuring system and method by data table translation
JP2834171B2 (ja) * 1989-02-06 1998-12-09 株式会社日立製作所 コンパイル方法
US5440742A (en) * 1991-05-10 1995-08-08 Siemens Corporate Research, Inc. Two-neighborhood method for computing similarity between two groups of objects
US5404510A (en) * 1992-05-21 1995-04-04 Oracle Corporation Database index design based upon request importance and the reuse and modification of similar existing indexes
JPH0756726A (ja) 1993-08-10 1995-03-03 Fuji Electric Co Ltd 再利用ソフトウェア作成システム
JPH07141166A (ja) 1993-11-19 1995-06-02 Ricoh Co Ltd クラスタ分析を用いたプログラム解析方法
JPH0895764A (ja) 1994-09-26 1996-04-12 Atr Tsushin Syst Kenkyusho:Kk ソフトウェア設計支援装置
JPH09134282A (ja) * 1995-11-08 1997-05-20 Hitachi Ltd プログラム作成方法
JPH09212353A (ja) * 1996-02-07 1997-08-15 Hitachi Ltd 再利用設計支援方法および設計支援装置
JP2001014154A (ja) 1999-06-29 2001-01-19 Hitachi Ltd オブジェクト指向ソフトウェア部品抽出支援および検索装置
EP1224544A1 (en) * 1999-08-16 2002-07-24 Z-Force Corporation System of reusable software parts for implementing concurrency and hardware access, and methods of use
JP2001312419A (ja) 2000-02-22 2001-11-09 Fujitsu Ltd ソフトウェア重複度評価装置およびソフトウェア重複度評価プログラムを記録した記録媒体
JP2002015135A (ja) 2000-06-30 2002-01-18 Koji Noda 有価証券取引用文書閲覧サーバ、有価証券取引装置および方法
US7069545B2 (en) * 2000-12-29 2006-06-27 Intel Corporation Quantization and compression for computation reuse
JP2009086791A (ja) * 2007-09-28 2009-04-23 Hitachi Ltd ソフトウェア製品系列分析装置

Also Published As

Publication number Publication date
US7627855B2 (en) 2009-12-01
WO2003069466A1 (fr) 2003-08-21
JPWO2003069466A1 (ja) 2005-06-09
US20050120333A1 (en) 2005-06-02
CA2476585A1 (en) 2003-08-21

Similar Documents

Publication Publication Date Title
JP3905086B2 (ja) ソフトウェア部品の重要性評価システム
US10198250B1 (en) Partitioning based migration of systems to container and microservice based platforms
Theis et al. Decay replay mining to predict next process events
Munson et al. The dimensionality of program complexity
US6961685B2 (en) Probability model selection using information-theoretic optimization criterion
Chen et al. Coverage prediction for accelerating compiler testing
US20130145347A1 (en) Automatic modularization of source code
CN111639034A (zh) 测试方法、装置、设备及计算机存储介质
Huang et al. Using discriminative feature in software entities for relevance identification of code changes
Westermann et al. Efficient experiment selection in automated software performance evaluations
Klinaku et al. The applicability of palladio for assessing the quality of cloud-based microservice architectures
Chen et al. Silhouette: Efficient cloud configuration exploration for large-scale analytics
Forouzani et al. Method for assessing software quality using source code analysis
Iosup et al. The LDBC Graphalytics Benchmark
Folgieri et al. A revised Web Objects method to estimate Web application development effort
Aktas et al. Implementation of analytical hierarchy process in detecting structural code clones
Sujon et al. Characterization and localization of performance-bugs using Naive Bayes approach
Rabani et al. Software cognitive complexity metrics for OO design: A survey
CN110866605A (zh) 数据模型训练方法、装置、电子设备及可读介质
Rathee et al. Sensitivity analysis of evolutionary algorithm for software reusability
Röck et al. Literature survey of performance benchmarking approaches of BPEL engines
Dhas et al. Modern Metrics (MM): Size Estimation of Modern Software and its Metrics Analysis
Bowring et al. Improving the classification of software behaviors using ensembles of control-flow and data-flow classifiers
Phadke et al. Predicting risky modules in open-source software for high-performance computing
Saini et al. Software Product Line Testing—A Proposal of Distance-Based Approach

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060912

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061108

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: 20070109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070110

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100119

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110119

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees