(57)【要約】【課題】ソフトウエア保守作業において、変更箇所を特定する場合に、まずソフトウエア全体の構造を把握する必要があるが、対象とするソフトウエアが大規模である場合、モジュールが多数であって、かつ、それらの間の関係が複雑であるため、全体を把握するのが困難である。【解決手段】１つ以上のモジュールを有するソフトウエアから、変更したモジュールの情報と、ソフトウエアに含まれる全てのモジュール情報を取得して保持する変更履歴取得手段と、変更履歴取得手段により取得した検出されたモジュールをカウントし、回数を重要度として設定する重要度設定手段と、重要度設定手段により設定された重要度を参照して、重要度の高いモジュール構造図を作成するモジュール情報作成手段と、を備える。【選択図】図１
2010205162.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上のモジュールを有するソフトウエアから、変更したモジュールの情報と、前記ソフトウエアに含まれる全てのモジュール情報を取得して保持する変更履歴取得手段と、
前記変更履歴取得手段により取得した検出されたモジュールをカウントし、前記回数を重要度として設定する重要度設定手段と、
前記重要度設定手段により設定された重要度を参照して、重要度の高いモジュール構造図を作成するモジュール情報作成手段と、を備えることを特徴とするモジュール情報作成装置。
【請求項２】
前記モジュール情報作成手段は、全体のモジュール構造図を作成後、前記重要度を参照して簡略化して前記重要度の高いモジュール構造図を作成することを特徴とする請求項１記載のモジュール情報作成装置。
【請求項３】
前記モジュール情報作成手段は、指定された閾値以上の重要度を有するモジュールに関するモジュール構造図を作成することを特徴とする請求項１又は２記載のモジュール情報作成装置。
【請求項４】
前記変更履歴取得手段は、版管理ツールを用いて、変更情報を取得することを特徴とする請求項１から３のいずれか１項に記載のモジュール情報作成装置。
【請求項５】
前記変更履歴取得手段は、新旧ソフトウエアの差分を検出することにより、変更情報を取得することを特徴とする請求項１から３のいずれか１項に記載のモジュール情報作成装置。
【請求項６】
１つ以上のモジュールを有するソフトウエアから、変更したモジュールの情報と、前記ソフトウエアに含まれる全てのモジュール情報を取得して保持する変更履歴取得ステップと、
前記変更履歴取得ステップにより取得した検出されたモジュールをカウントし、前記回数を重要度として設定する重要度設定ステップと、
前記重要度設定ステップにより設定された重要度を参照して、重要度の高いモジュール構造図を作成するモジュール情報作成ステップと、を備えることを特徴とするモジュール情報作成装置のモジュール情報作成方法。
【請求項７】
１つ以上のモジュールを有するソフトウエアから、変更したモジュールの情報と、前記ソフトウエアに含まれる全てのモジュール情報を取得して保持する変更履歴取得処理と、
前記変更履歴取得処理により取得した検出されたモジュールをカウントし、前記回数を重要度として設定する重要度設定処理と、
前記重要度設定処理により設定された重要度を参照して、重要度の高いモジュール構造図を作成するモジュール情報作成処理と、をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大規模なソフトウエアに対する保守作業を実施する場合にソフトウエアの全体を把握しやすくするモジュール情報を作成するモジュール情報作成装置、モジュール情報作成装置のモジュール情報作成方法及びプログラムに関する。
【背景技術】
【０００２】
ソフトウエアの構造や振る舞いをわかりやすくする手段として、ＵＭＬ図等のように図面化する方法が広く知られている。
【０００３】
しかし、近年、ソフトウエアの規模が増加傾向にあることから、このような図面自体も複雑化・大規模化している。これに対し、開発者の理解を容易にするために、図面上に現れる要素に対してなんらかの基準で優先度等を設定し、この優先度にしたがって図面を簡略表示する技術として以下のものがある。
【０００４】
例えば、特許文献１に記載の技術では、図１０に示すように、図面上の所望箇所に優先度を設定する設定手段と、優先度に基づいて限定した要素のみを表示する表示手段とを備えており、設定した優先度に応じて簡略表示をすることができるようになっている。これにより、利用者が複雑な図面の全体を把握しやすくしている。
【０００５】
また、特許文献２に記載の技術は、図１１に示すように、図面の各要素に対する表示上の優先度を記憶する優先度テーブル記憶部と、図面を分割した分割領域の複雑度である領域複雑度を計算する領域複雑度計算部と、表示の縮尺と領域複雑度から、表示上の複雑度である表示複雑度を計算する表示複雑度計算部と、表示複雑度から、表示の有無を判断する閾値を計算する閾値計算部と、閾値より低い優先度を持つ図面要素を除いて簡略表示する簡略図面作成部とを備えており、あらかじめ設定した要素毎の優先度と、表示する図面の複雑度と表示上の縮尺とに基づいて、優先度の高い要素のみを表示するようになっている。これにより、利用者が縮小表示した図面の内容を判読しやすくし、図面の検索を効率化している。
【０００６】
一方、ソフトウエア規模の増加に伴い、ソフトウエア保守作業の作業量も増加している。ソフトウエア保守作業とは、すでに製品やシステムとして動作しているソフトウエアに対して、新規機能の追加、既存機能の改良、不具合の修正等を行うものであり、保守要求に対して適切な変更を行う必要がある。
【０００７】
ここで、対象とするソフトウエアが大規模である場合、手間を要する。これに対して、過去の変更履歴を利用して、今回の新規の変更に参考となる情報を作成し、保守実施者に提示することで、保守作業を効率化する技術が特許文献３に記載されている。
【０００８】
特許文献３では、図１２に示すように、複数のＵＭＬ図変更時に、各図における変更と変更間の依存関係を蓄積しておき、新たな変更が発生した際に、蓄積された過去の変更の中から今回の変更と類似した変更を検索し、その類似した変更と関連した他の過去の変更を追跡し、その結果を元に将来発生する可能性のある変更候補を提示するようになっている。このように、過去の変更履歴を利用することにより、ある変更に合わせて変更が必要な変更箇所を参考として示すことで、変更漏れによる不整合の発生を防止するようになっている。
【０００９】
また、特許文献４では、ソースコードを比較して差分（変更）があるかを判定して差分情報を作成し、モジュールごとの変更の累積回数から修正を行うための優先度付けをする技術について開示されている。
【００１０】
また、特許文献５では、入力した図式上の所望の部分に所望の優先度を設定し、優先度に基づいて図式を表示する技術について開示されている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平８−１０６５４０号公報
【特許文献２】特開２００７−０８０１８８号公報
【特許文献３】特開２００６−２３５８９９号公報
【特許文献４】特開２００８−０２１２４４号公報
【特許文献５】特開平８−１０６５４０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、ソフトウエア保守作業として変更を実施する際、まずは、変更箇所を特定するが、このために、まずソフトウエア全体の構造を把握し、その中から、今回の変更にもっとも関連すると思われるモジュールを選択し、そのモジュールを起点として現状の動作を分析して理解する必要がある。ここで、ソフトウエア保守作業の対象となるソフトウエアが大規模である場合、以下の問題が生じる。
【００１３】
問題点は、大規模なソフトウエアでは、モジュールが多数であって、かつ、それらの間の関係が複雑であるため、全体を把握するのが困難なことである。特に、該ソフトウエアのモジュール構造に対する知識を持たない開発者に取っては、どのモジュールに注目してよいかがわからず、把握することが不可能である。
【００１４】
また、ある程度ソフトウエアのモジュール構造に対する知識を持つ開発者であっても、モジュールの個数が多数あることから、把握に時間を要したり、重要なモジュールを見逃す等のミスをしたりしてしまう可能性がある。
【００１５】
なお、特許文献１及び２では、複雑な図面を簡略化する既存技術について述べており、特許文献１では、優先度を利用者が設定し、特許文献２では、ソフトウエアの複雑度に基づいて計算するようになっている。
【００１６】
ところが、全体を把握するためにどのモジュールに注目するかという観点で重要度を設定する場合、特許文献１では、モジュール構造を十分に理解していない利用者が重要度を判断することは困難である。
【００１７】
また、特許文献２のソフトウエアの複雑度は、通常、全体把握のための注目度とは直接関係がないため、特許文献２による重要度の設定では上記課題に対応することができない。
【００１８】
また、特許文献４では、検出した差分からモジュールごとの変更の累積回数を計算して優先度を設定しているが、ソフトウエア全体を想定した場合には、変更の回数が少なくとも重要性の高いモジュールが出てくるために対応できない。
【００１９】
そこで本発明は、上記問題点に鑑みてなされたもので、ソフトウエアの全体を把握する作業を効率化できるモジュール情報作成装置を提供することを目的とする。
【課題を解決するための手段】
【００２０】
上記課題を解決するため、本発明におけるモジュール情報作成装置は、１つ以上のモジュールを有するソフトウエアから、変更したモジュールの情報と、ソフトウエアに含まれる全てのモジュール情報を取得して保持する変更履歴取得手段と、変更履歴取得手段により取得した検出されたモジュールをカウントし、回数を重要度として設定する重要度設定手段と、重要度設定手段により設定された重要度を参照して、重要度の高いモジュール構造図を作成するモジュール情報作成手段と、を備えることを特徴とする。
【００２１】
また、本発明におけるモジュール情報作成装置のモジュール情報作成方法は、１つ以上のモジュールを有するソフトウエアから、変更したモジュールの情報と、ソフトウエアに含まれる全てのモジュール情報を取得して保持する変更履歴取得ステップと、変更履歴取得ステップにより取得した検出されたモジュールをカウントし、回数を重要度として設定する重要度設定ステップと、重要度設定ステップにより設定された重要度を参照して、重要度の高いモジュール構造図を作成するモジュール情報作成ステップと、を備えることを特徴とする。
【００２２】
また、本発明におけるプログラムは、１つ以上のモジュールを有するソフトウエアから、変更したモジュールの情報と、ソフトウエアに含まれる全てのモジュール情報を取得して保持する変更履歴取得処理と、変更履歴取得処理により取得した検出されたモジュールをカウントし、回数を重要度として設定する重要度設定処理と、重要度設定処理により設定された重要度を参照して、重要度の高いモジュール構造図を作成するモジュール情報作成処理と、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００２３】
本発明により、過去の変更を利用することで多数のモジュールの中から注目すべきモジュールを提示することにより、ソフトウエアの全体を把握する作業を効率化できる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施形態に係るモジュール情報作成装置の構成図である。
【図２】変更情報の履歴における一例を示す図である。
【図３】変更に関連する設計図の履歴における一例を示す図である。
【図４】図３の設計図の一例を示す図である。
【図５】検出モジュール一覧における一例を示す図である。
【図６】モジュール重要度一覧における一例を示す図である。
【図７】モジュール構造図における一例を示す図（その１）である。
【図８】モジュール構造図における一例を示す図（その２）である。
【図９】簡略化前のモジュール構造図の例を示す図である。
【図１０】特許文献１の説明図である。
【図１１】特許文献２の説明図である。
【図１２】特許文献３の説明図である。
【発明を実施するための形態】
【００２５】
次に、発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００２６】
図１は、本発明の実施形態におけるモジュール情報作成装置の構成図である。本モジュール情報作成装置は、モジュール検出手段１と、重要度設定手段２と、モジュール情報作成手段３と、を有して構成される。
【００２７】
モジュール検出手段１は、履歴取得手段１１を有する。履歴取得手段１１は、ソフトウエアのソースコードや設計図より過去のソフトウエアの変更の情報と、該変更に関係するソフトウエアの設計図情報と、を取得し、変更履歴として保持する。
【００２８】
モジュール検出手段１は、複数のモジュールで構成されるソフトウエアに対し、履歴取得手段１１にて取得した過去のソフトウエアの変更の情報と該変更に関係するソフトウエアの設計図との履歴から、前記変更に伴い変更されるモジュールと設計図情報に含まれるモジュールを検出する。
【００２９】
すなわち、モジュール検出手段１は、対象とするソフトウエアの過去の変更情報とそれらの変更に関係する設計図との履歴を参照して、変更に係る設計図を取得し、前記設計図に含まれているモジュールの一覧を検出して検出モジュール一覧を作成する。
【００３０】
具体的には、過去の変更履歴と変更に関係する設計図の履歴とを入力として、検出モジュール一覧を出力する。ここで、ソフトウエアとしては特に特定のプログラミング言語を想定していない。
【００３１】
モジュールとしては、例えば、Ｊａｖａ（登録商標）言語により記述されたソフトウエアであれば、パッケージ、クラス、インタフェース等が相当し、Ｃ言語により記述されたソフトウエアであれば、ファイル、関数等が相当している。
【００３２】
重要度設定手段２は、各モジュールが検出された回数に応じて、該モジュールの注目すべき度合いを表す重要度を、該モジュールに設定する。
【００３３】
モジュール情報作成手段３は、前記重要度の情報と共に前記モジュールの情報を提示するための提示情報を作成する。提示情報の作成は、公知の技術などを用いて、対象とするソフトウエアを解析して全体のモジュール構造図を作成した後、全体のモジュール構造図から重要度が高いもののみを表示するように図面を簡略化して図面を作成する。
【００３４】
図２に変更情報の履歴の一例を示す。ここでは、各行がそれぞれ１回分の変更に対応しており、個々の変更に対して、変更を識別するためのＩＤ、変更の内容を説明する変更内容、具体的に変更されたモジュール名を項目として含んでいる。
【００３５】
また、図３に変更に関係する設計図の履歴の一例を示す。ここでも、各行がそれぞれ１回分の変更に対応しており、個々の変更に対して、変更を識別するためのＩＤ、変更に関係する設計図ファイル名を項目として含んでいる。
【００３６】
図４に、図３に示す設計図である「クラス図２」の例を示す。図２に示す変更情報履歴に示すように、ＵＭＬＥｄｉｔｏｒとＳａｖｅＡｃｔｉｏｎは、追加修正が行われている。
【００３７】
通常、ソフトウエアのソースコードや設計図は、ＣＶＳやＳｕｂｖｅｒｓｉｏｎ等の版管理ツールにより管理され、過去にどのファイルにどのような変更があったかの情報を取得することができるとともに、各変更に関係しているファイルも取り出すことが可能である。したがって、このような版管理ツールの機能を利用することにより、図２や図３に示した履歴を作成することが可能である。また例えば、以前のソフトウエアと現在のソフトウエアとの差分検出を行い、変更情報を取得し、履歴を作成すればよい。
【００３８】
図５に検出モジュール一覧の一例を示す。ここでは、各行がそれぞれ１回分の変更に対応しており、個々の変更に対して、変更を識別するためのＩＤ、変更に関係するモジュール名を項目として含んでいる。
【００３９】
モジュール検出手段１では、図２に示すモジュールが変更された設計図を参照して、各変更の情報を付き合わせるとともに、実際に設計図のファイルを取得し、そこに含まれているモジュールを抽出することで、検出モジュール一覧を作成する。
【００４０】
重要度設定手段２では、各モジュールが検出された回数に応じて、該モジュールの注目すべき度合いを表す重要度を該モジュールに設定する。具体的には、検出モジュール一覧を入力として、モジュール重要度一覧を出力する。
【００４１】
図６にモジュール重要度一覧の一例を示す。ここでは、各行が、検出モジュール一覧に出現する各モジュールに対応しており、モジュール名、重要度を項目として含んでいる。
【００４２】
重要度設定手段２では、検出モジュール一覧を参照し、出現するすべてのモジュールを取り出した後、各モジュールの出現回数を重要度として設定することで、モジュール重要度一覧を作成する。
【００４３】
図６の例では、例えば、ＵＭＬＥｄｉｔｏｒは、図５に示す検出モジュール一覧にて５回出現しているため、重要度が５に、ＦｉｌｅＡｃｔｉｏｎは、２回出現しているため、重要度が２に設定されている。
【００４４】
モジュール情報作成手段３は、前記重要度の情報と共に前記モジュールの情報を提示するための提示情報を作成する。具体的には、モジュール重要度一覧を入力として、重要度を反映させたモジュール構造図を出力する。
【００４５】
モジュール構造図の一例を、図７と図８に示す。図７は重要度の閾値を５、図８は重要度の閾値を２とした場合で、それぞれ、設定された重要度が閾値以上であるモジュールとそれらの間の関係のみが表示される。モジュール構造図は以下のようにして作成することができる。
【００４６】
まず、対象とするソフトウエアを解析して全体のモジュール構造図を作成する。このような機能は、市販のツールで多く実現されている。図９にこのようなモジュール構造図の例を示す。
【００４７】
次に、特許文献１や特許文献２に記載される技術などを用いて、図面の簡略化をすることにより、全体のモジュール構造図から重要度が高いもののみを表示する図面を作成する。
【００４８】
ソフトウエア保守作業におけるソフトウエア変更が発生する場合、変更内容の妥当性をレビュー等により判断するためや、変更内容を記録して移行の保守作業で参照するためにソフトウエア変更に対する設計図を作成する必要があり、該設計図は、主に、ソフトウエアのすべてのモジュールの中から、今回の変更対象となるモジュール、および、それと関連するモジュールを抜き出してそれらの間の関係を示すことにより、今回の変更でどのモジュールをどのように変更したか、および、その変更を理解するために必要な情報について説明を行う。
【００４９】
このようなソフトウエアの変更が度重なった場合、各変更での変更対象となるモジュール、および、変更と関係する設計図に含まれるモジュールのうち、より多くの変更時に出現するモジュールは、以下の理由から、ソフトウエア全体において重要な役割を果たすと考えることができる。
【００５０】
第１に、そのモジュールが頻繁に変更対象となっている場合、対象ソフトウエアにおいて、重要な役割を果たしているモジュールである可能性が高い。例えば、他の多くのモジュールを呼び出す処理が記述されているようなモジュール等がこれにあたる。
【００５１】
第２に、そのモジュールが必ずしも変更対象となっていないとしても、変更を理解するために必要なモジュールである可能性が高い。例えば、他のモジュールからよく利用されるモジュール等がこれにあたる。
【００５２】
したがって、重要度設定手段２で、モジュール検出手段１によって得られた検出モジュール一覧を参照し、各モジュールの出現頻度を参照することで、注目すべきかどうかを判断し、これを重要度として各モジュールに付加することで、モジュール重要度一覧を作成することができる。
【００５３】
次に、このモジュール重要度一覧を参照して、所定の重要度よりも高いモジュールのみを表示するためのモジュール表示情報をモジュール情報作成手段３で作成し、モジュール構造図として表示することができれば、対象とするソフトウエアのモジュールを単純に表示する場合と比べて、注目すべきモジュールとそれらの間の関係のみが表示されるため、ソフトウエアが大規模であっても全体を容易に把握することができるようになる。
【００５４】
以上、実施の形態を説明したが、特許請求の範囲に定義された本発明の広範囲な趣旨および範囲から逸脱することなく、これら実施の形態や具体例に様々な修正および変更が可能である。
【符号の説明】
【００５５】
１    モジュール検出手段
２    重要度設定手段
３    モジュール情報作成手段
１１    履歴取得手段
【図１】
2010205162.tif 000003
【図２】
2010205162.tif 000004
【図３】
2010205162.tif 000005
【図４】
2010205162.tif 000006
【図５】
2010205162.tif 000007
【図６】
2010205162.tif 000008
【図７】
2010205162.tif 000009
【図８】
2010205162.tif 000010
【図９】
2010205162.tif 000011
【図１０】
2010205162.tif 000012
【図１１】
2010205162.tif 000013
【図１２】
2010205162.tif 000014