説明

保守度測定装置

【課題】ソフトウェアの保守作業の工数をより正確に評価可能なように、ソフトウェアモジュールの変更確率を考慮した保守度が得られる保守度測定装置を提供する。
【解決手段】モジュール名、モジュールの規模、各モジュール間の依存関係を含む設計情報を入力する設計情報入力部と、設計情報に基づいて、あるモジュールが変更されたときに、そのモジュール自身の規模と当該変更の影響が波及するモジュールの規模の総和を意味する影響度を、対象となるモジュールについて算出する影響度算出部と、モジュールの変更されやすさを示す変更確率を取得する変更確率取得部と、モジュールの影響度にそのモジュールの変更確率を掛け合わせたものをモジュールの保守度として算出する保守度決定部を備える保守度測定装置。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、ソフトウェアモジュールの変更確率を考慮した保守度測定装置に関する。
【背景技術】
【0002】
ソフトウェア開発において保守作業(改定作業)の工数は無視できないものとなってきている。そのため、保守作業に必要な努力の度合いである保守性が高いことが望まれる。ソフトウェアの保守作業では、変更されたモジュールだけでなく、影響が波及するモジュールも保守作業対象となる。影響が波及する範囲が広くなれば、保守工数が増大する。影響が波及する範囲を測定することで、保守工数を評価できる。モジュールの影響が波及する範囲を表す影響度という指標が考案されている。「ソフトウェア全体の影響度」が低くなるようにモジュールを構成することで、保守作業時にかかる工数が低いモジュール構成を選択できる。
【0003】
モジュールの変更確率が考慮されていないため、実際に発生しうる保守作業工数と、影響度による評価結果との間に乖離が発生する。発生しない保守作業の工数が低くなるようにモジュール構成の見直し作業を実施してしまう。頻繁に発生する保守作業は、作業工数が低くなるようなモジュール構成を選択する必要があるが、誤ったモジュール構成を選択してしまう。保守作業工数と、乖離が少ない影響度にはモジュールの変更確率を考慮する必要がある。
【0004】
ソフトウェアの修正の影響に関しては、ソフトウェアの修正仕様と修正によって影響を受けるコンポーネントの影響パターンから、修正によって影響を受けるソフトウェアの機能を特定し、当該機能数に影響機能あたりの単価を乗じて、カスタマイズ工数を算出することが提案されている(例えば、特許文献1参照。)。
【0005】
また、プログラムのモジュール毎に、プログラムの他の部分に与える影響度を示すメトリクス情報とプログラムで発生した不良の過去の修正情報から算出した不良修正困難度の2種の数値を掛け合わせたものを重要度とする提案がなされている(例えば、特許文献2参照。)。
【0006】
しかしながら、既存の影響度では、ソフトウェアの全モジュールの「モジュールの影響度」を低くしなければ、「ソフトウェア全体の影響度」が低くならず、発生しない保守作業に備えて、モジュール構成を再考するのは無駄である。
【0007】
さらに、モジュールの変更確率が高いモジュールの「モジュールの影響度」は、特に低く保つ必要があるが、正しく判断できない場合がある。
すなわち、実際に発生しうる保守作業工数と影響度による評価結果との間には乖離が生じ、発生しない保守作業の工数を低くなるようにモジュール構成の見直し作業を実施してしまう、あるいは、頻繁に発生する保守作業は作業工数が低くなるようなモジュール構成を選択する必要があるが、誤ったモジュール構成を選択してしまう、という問題があった。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2006−134225号公報
【特許文献2】特開2006−113934号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
本発明が解決しようとする課題は、ソフトウェアの保守作業の工数をより正確に評価可能なように、ソフトウェアモジュールの変更確率を考慮した保守度測定装置を提供することである。
【課題を解決するための手段】
【0010】
実施形態の保守度測定装置は、モジュール名、モジュールの規模、各モジュール間の依存関係を含む設計情報を入力する設計情報入力部と、前記設計情報に基づいて、あるモジュールが変更されたときに、そのモジュール自身の規模と当該変更の影響が波及するモジュールの規模の総和を意味する影響度を、対象となるモジュールについて算出する影響度算出部と、モジュールの変更されやすさを示す変更確率を取得する変更確率取得部と、前記モジュールの影響度にそのモジュールの前記変更確率を掛け合わせたものをモジュールの保守度として算出する保守度決定部を備える。
【図面の簡単な説明】
【0011】
【図1】本実施形態に係る保守度測定装置の構成例を示す図である。
【図2】各モジュールの規模と依存関係の一例を示す図である。
【図3】設計情報表と依存情報表の一例を示す図である。
【図4】影響度記録表の一例を示す図である。
【図5】モジュールの規模から算出した場合の変更確率を示す変更確率情報表の一例である。
【図6】図2に示すモジュール構成例において、モジュールの規模から算出した場合の変更確率の例を示す図である。
【図7】モジュールの更新回数から算出した場合の変更確率の例を示す図である。
【図8】保守度表の一例を示す図である。
【発明を実施するための形態】
【0012】
以下、本発明の一実施の形態について、図面を参照して説明する。尚、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。
【0013】
まず、本実施形態で用いる主要な用語について説明する。
【0014】
「モジュール」とは、関数や変数などのソフトウェアの構成部品のうち、所定の関係があるものをまとめたものをいう。
【0015】
「モジュールの規模」とは、あるモジュールを構成する関数、変数を記述したソースコードの行数をいう。ステップ数でもモジュールの規模を表すことができる。
【0016】
「モジュールの影響度」とは、あるモジュールが変更されたときに、そのモジュール自身の規模と影響が波及するモジュールの規模の総和である。
【0017】
「影響が波及するモジュール」には、あるモジュールが変更された場合、そのモジュールを利用しているモジュール及び影響が波及するモジュールを利用しているモジュールが該当する。
【0018】
「ソフトウェア全体の影響度」とは、あるソフトウェアに含まれる全てのモジュールの影響度の総和をいう。
【0019】
「モジュールの変更確率」とは、モジュールの変更されやすさを示す指標である。ソフトウェア内では、数値演算などの基本演算を行うライブラリは変更されにくく、デバイスドライバやGUIなどの外部やユーザからの入力を受け取るモジュールは変更されやすい。無作為にモジュールに更新が行われるとすると、モジュールの規模が大きいモジュールは更新される可能性が高いということができる。
【0020】
本実施形態に係るソフトウェアモジュールの変更確率を考慮した保守度測定装置は、モジュールの影響度にそのモジュールの変更確率を掛け合わせたものをモジュールの保守度として算出し、モジュールの保守度の総合計をソフトウェア全体の保守度として算出するものである。
【0021】
図1は、本実施形態に係る保守度測定装置の構成例を示す図である。
【0022】
影響度測定装置100は、設計情報入力部10、設計情報記憶部20、影響度算出部30、影響度記憶部40、変更確率取得部50、変更確率記憶部60、保守度決定部70から構成されている。
【0023】
まず、各部を簡潔に説明する。設計情報入力部10は、設計情報を入力するものである。設計情報には、例えば、モジュール名、モジュールの規模、依存先モジュール名、依存元モジュール名がある。
【0024】
図2は、各モジュールの規模と依存関係の一例を示す図である。図2に示す例では、モジュールAはソースコードで100行、モジュールBはソースコードで150行、モジュールCはソースコードで150行、モジュールDはソースコードで200行、モジュールEはソースコードで100行、モジュールFはソースコードで300行の規模となっている。また、モジュールBはモジュールAに依存し、モジュールCはモジュールAに依存し、モジュールDはモジュールCに依存し、モジュールFはモジュールEに依存している。以降の説明では、図2に示す例を題材として説明する。
【0025】
設計情報記憶部20は、入力された設計情報のうち、モジュール名、モジュールの規模を設計情報表に記憶する。さらに、依存先モジュール名、依存元モジュール名を依存情報表に記憶する。図3は、設計情報表と依存情報表の一例を示している。
【0026】
影響度算出部30は、設計情報記憶部20に記憶されている設計情報表と依存情報表に基づいて、対象となるモジュールの影響度を以下の手順で算出するものである。
【0027】
Step 1: 計測対象となるモジュールを選択する。
【0028】
Step 2: 計測対象モジュールに、直接および間接に依存するモジュール群を依存情報表から抽出する。依存情報表には、直接的な依存関係だけが記載されている。そこで、間接的な依存関係は、依存情報表に記された直接的な依存を繰り返し辿ることによって得られる。
【0029】
Step 3: 計測対象モジュール、および、Step 2 で得られた依存するモジュール群の規模の総和を算出する。
【0030】
Step 4: 得られた値を「計測対象モジュールの影響度」として影響度記録表に記録する。
【0031】
ここで、図2に示すモジュール構成例において、モジュールDの影響度算出を説明する。
【0032】
Step 1: モジュールDを選択する。
【0033】
Step 2: モジュールDに直接依存しているのはモジュールCである。 さらにモジュールCに直接依存しているのはモジュールAである。よって、モジュールDに依存しているモジュール群は、モジュールAおよびモジュールCである。
【0034】
Step 3: モジュールD自身、及びモジュールDに依存するモジュールA及びモジュールCの規模の合計を算出する。したがって、200+100+150=450となる。
【0035】
Step 4: 450 をモジュールDの影響度として影響度記録表に記録する。
【0036】
図4は、影響度記録表の一例を示す図である。
【0037】
影響度算出部30で算出された影響度は、影響度記録表の形式で、影響度記憶部40に各モジュール別に記憶される。
【0038】
変更確率取得部50は、各モジュールの変更確率を取得するものである。変更確率の取得は、例えば、(1)モジュールの規模から算出、(2)変更履歴管理システムのログから算出、(3)ベテラン技術者による経験値の採用、がある。
【0039】
図5は、モジュールの規模から算出した場合の変更確率を示す変更確率情報表の一例である。モジュールの規模に基づいて変更確率する場合には、モジュールの規模が大きいほど変更が発生しやすいと考え、下式にしたがって、各モジュールの変更確率を算出する。
【数1】

【0040】
図6は、図2に示すモジュール構成例において、モジュールの規模から算出した場合の変更確率の例を示す。
【0041】
次に、変更履歴管理システムのログに基づいて変更確率を取得する場合について説明する。この場合、変更履歴管理システムのログから、各モジュールを構成するファイルの更新回数を取得し、その総和を当該モジュールの更新回数とする。その更新回数を元に、下式にしたがって、各モジュールの変更確率を算出する。
【数2】

【0042】
図7は、モジュールの更新回数から算出した場合の変更確率の例を示す。尚、図7における更新回数の数値は、仮のものである。
【0043】
保守度決定部70では、各モジュールの保守度を算出する。ここで、保守度は、(モジュールの影響度)×(モジュールの変更確率)=保守度として表わされる。全てのモジュールの保守度の総和が、ソフトウェア全体の保守度として得られる。
【0044】
図8は、保守度表の一例を示す図である。例えば、モジュールCの影響度は250、変更確率は0.15であるから保守度は37.5であり、ソフトウェア全体の保守度は305となっている。各モジュール毎の保守度及びソフトウェア全体の保守度を利用することにより、モジュールの改変に伴って保守度が過度に高まることのないように、保守作業へ影響を的確に判断することが可能となる。
【0045】
本実施形態によれば、ソフトウェアの保守度を評価するに際し、モジュールの変更確率を導入したので、実際に保守作業が発生した際の保守工数をより正確に評価することができる。保守度を基準にモジュール構成を決定することで、モジュールの変更確率が高いモジュールの「モジュールの影響度」が低いモジュール構成とすることにより、保守工数が低いモジュール構成となる。
【0046】
ソフトウェア全体の影響度が低いモジュール構成でも、モジュールの変更確率が高いモジュールの「モジュールの影響度」が高いモジュール構成のものを保守度を基準にすることで回避することができる。
【0047】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0048】
100・・・影響度測定装置、
10・・・設計情報入力部、
20・・・設計情報記憶部、
30・・・影響度算出部、
40・・・影響度記憶部、
50・・・変更確率取得部、
60・・・変更確率記憶部、
70・・・保守度決定部。

【特許請求の範囲】
【請求項1】
モジュール名、モジュールの規模、各モジュール間の依存関係を含む設計情報を入力する設計情報入力部と、
前記設計情報に基づいて、あるモジュールが変更されたときに、そのモジュール自身の規模と当該変更の影響が波及するモジュールの規模の総和を意味する影響度を、対象となるモジュールについて算出する影響度算出部と、
モジュールの変更されやすさを示す変更確率を取得する変更確率取得部と、
前記モジュールの影響度にそのモジュールの前記変更確率を掛け合わせたものをモジュールの保守度として算出する保守度決定部を
備える保守度測定装置。
【請求項2】
前記設計情報を記憶する設計情報記憶部と、
前記影響度を記憶する影響度記憶部と、
前記変更確率を記憶する変更確率記憶部
を備える請求項1記載の保守度測定装置。
【請求項3】
前記設計情報記憶部は、モジュール名、モジュールの規模を設計情報表に記憶し、依存先モジュール名、依存元モジュール名を依存情報表に記憶する請求項2記載の保守度測定装置。
【請求項4】
前記モジュールの規模は、あるモジュールを構成する関数、変数を記述したソースコードの行数である請求項1乃至請求項3のいずれか1項に記載の保守度測定装置。
【請求項5】
前記変更の影響が波及するモジュールの前記依存関係は、直接的な依存関係と直接的な依存を繰り返し辿ることによって得られる間接的な依存関係である請求項1乃至請求項4のいずれか1項に記載の保守度測定装置。
【請求項6】
前記変更確率は、前記モジュールの規模から下式で算出する請求項1乃至請求項5のいずれか1項に記載の保守度測定装置。
【数3】

【請求項7】
前記変更確率は、変更履歴管理システムのログから下式で算出する請求項1乃至請求項6のいずれか1項に記載の保守度測定装置。
【数4】

【請求項8】
前記モジュールの保守度の総合計をソフトウェア全体の保守度として算出する請求項1乃至請求項7のいずれか1項に記載の保守度測定装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2013−45421(P2013−45421A)
【公開日】平成25年3月4日(2013.3.4)
【国際特許分類】
【出願番号】特願2011−185038(P2011−185038)
【出願日】平成23年8月26日(2011.8.26)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】