JP2010205162A - モジュール情報作成装置、モジュール情報作成装置のモジュール情報作成方法及びプログラム - Google Patents

モジュール情報作成装置、モジュール情報作成装置のモジュール情報作成方法及びプログラム Download PDF

Info

Publication number
JP2010205162A
JP2010205162A JP2009052482A JP2009052482A JP2010205162A JP 2010205162 A JP2010205162 A JP 2010205162A JP 2009052482 A JP2009052482 A JP 2009052482A JP 2009052482 A JP2009052482 A JP 2009052482A JP 2010205162 A JP2010205162 A JP 2010205162A
Authority
JP
Japan
Prior art keywords
module
importance
software
modules
module information
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.)
Withdrawn
Application number
JP2009052482A
Other languages
English (en)
Inventor
Tomohiro Kudo
智広 工藤
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2009052482A priority Critical patent/JP2010205162A/ja
Publication of JP2010205162A publication Critical patent/JP2010205162A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】ソフトウエア保守作業において、変更箇所を特定する場合に、まずソフトウエア全体の構造を把握する必要があるが、対象とするソフトウエアが大規模である場合、モジュールが多数であって、かつ、それらの間の関係が複雑であるため、全体を把握するのが困難である。
【解決手段】1つ以上のモジュールを有するソフトウエアから、変更したモジュールの情報と、ソフトウエアに含まれる全てのモジュール情報を取得して保持する変更履歴取得手段と、変更履歴取得手段により取得した検出されたモジュールをカウントし、回数を重要度として設定する重要度設定手段と、重要度設定手段により設定された重要度を参照して、重要度の高いモジュール構造図を作成するモジュール情報作成手段と、を備える。
【選択図】図1

Description

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

Claims (7)

  1. 1つ以上のモジュールを有するソフトウエアから、変更したモジュールの情報と、前記ソフトウエアに含まれる全てのモジュール情報を取得して保持する変更履歴取得手段と、
    前記変更履歴取得手段により取得した検出されたモジュールをカウントし、前記回数を重要度として設定する重要度設定手段と、
    前記重要度設定手段により設定された重要度を参照して、重要度の高いモジュール構造図を作成するモジュール情報作成手段と、を備えることを特徴とするモジュール情報作成装置。
  2. 前記モジュール情報作成手段は、全体のモジュール構造図を作成後、前記重要度を参照して簡略化して前記重要度の高いモジュール構造図を作成することを特徴とする請求項1記載のモジュール情報作成装置。
  3. 前記モジュール情報作成手段は、指定された閾値以上の重要度を有するモジュールに関するモジュール構造図を作成することを特徴とする請求項1又は2記載のモジュール情報作成装置。
  4. 前記変更履歴取得手段は、版管理ツールを用いて、変更情報を取得することを特徴とする請求項1から3のいずれか1項に記載のモジュール情報作成装置。
  5. 前記変更履歴取得手段は、新旧ソフトウエアの差分を検出することにより、変更情報を取得することを特徴とする請求項1から3のいずれか1項に記載のモジュール情報作成装置。
  6. 1つ以上のモジュールを有するソフトウエアから、変更したモジュールの情報と、前記ソフトウエアに含まれる全てのモジュール情報を取得して保持する変更履歴取得ステップと、
    前記変更履歴取得ステップにより取得した検出されたモジュールをカウントし、前記回数を重要度として設定する重要度設定ステップと、
    前記重要度設定ステップにより設定された重要度を参照して、重要度の高いモジュール構造図を作成するモジュール情報作成ステップと、を備えることを特徴とするモジュール情報作成装置のモジュール情報作成方法。
  7. 1つ以上のモジュールを有するソフトウエアから、変更したモジュールの情報と、前記ソフトウエアに含まれる全てのモジュール情報を取得して保持する変更履歴取得処理と、
    前記変更履歴取得処理により取得した検出されたモジュールをカウントし、前記回数を重要度として設定する重要度設定処理と、
    前記重要度設定処理により設定された重要度を参照して、重要度の高いモジュール構造図を作成するモジュール情報作成処理と、をコンピュータに実行させるプログラム。
JP2009052482A 2009-03-05 2009-03-05 モジュール情報作成装置、モジュール情報作成装置のモジュール情報作成方法及びプログラム Withdrawn JP2010205162A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009052482A JP2010205162A (ja) 2009-03-05 2009-03-05 モジュール情報作成装置、モジュール情報作成装置のモジュール情報作成方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009052482A JP2010205162A (ja) 2009-03-05 2009-03-05 モジュール情報作成装置、モジュール情報作成装置のモジュール情報作成方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2010205162A true JP2010205162A (ja) 2010-09-16

Family

ID=42966546

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009052482A Withdrawn JP2010205162A (ja) 2009-03-05 2009-03-05 モジュール情報作成装置、モジュール情報作成装置のモジュール情報作成方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2010205162A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020046797A (ja) * 2018-09-18 2020-03-26 株式会社日立製作所 着目経路作成装置、着目経路作成方法、及び着目経路作成プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020046797A (ja) * 2018-09-18 2020-03-26 株式会社日立製作所 着目経路作成装置、着目経路作成方法、及び着目経路作成プログラム
JP7013349B2 (ja) 2018-09-18 2022-01-31 株式会社日立製作所 着目経路作成装置、着目経路作成方法、及び着目経路作成プログラム

Similar Documents

Publication Publication Date Title
CN110928772B (zh) 一种测试方法及装置
US9904517B2 (en) System and method for automatic modeling of an application
US20140075371A1 (en) System and method for model based session management
US9208059B2 (en) ETL debugger
JP2015043198A (ja) 解析システム、解析方法および解析プログラム
US10990359B2 (en) Use and advancements of assistive technology in automation for the visually-impaired workforce
US20130290215A1 (en) Generation of wbs model data
JP6542612B2 (ja) テストシナリオ生成支援装置およびテストシナリオ生成支援方法
JP4978432B2 (ja) 業務仕様理解支援システム及び方法
JP2019219848A (ja) ソースコード解析方法およびソースコード解析装置
US9292296B2 (en) Code optimization based on information of readably converted executed instruction groups represented in address file
JP2011145996A (ja) レビューワ評価装置、レビューワ評価方法、及びプログラム
JP2010244338A (ja) プロジェクト進捗管理装置およびプロジェクト進捗管理方法
WO2016190869A1 (en) Determining potential test actions
JP2016014944A (ja) 相関ルール分析装置および相関ルール分析方法
JP2018181020A (ja) 計算装置、影響出力システム
JP2009230420A (ja) ソースコード品質管理装置
JP5702265B2 (ja) プログラム自動生成装置およびプログラム自動生成方法
JP2010205162A (ja) モジュール情報作成装置、モジュール情報作成装置のモジュール情報作成方法及びプログラム
JP5615245B2 (ja) バグ対策優先度表示システム
CN114385155A (zh) vue项目可视化工具生成方法、装置、设备及存储介质
JP6036089B2 (ja) データ遷移トレース装置、データ遷移トレース方法、及び、データ遷移トレースプログラム
JP6336922B2 (ja) 業務バリエーションに基づく業務影響箇所抽出方法および業務影響箇所抽出装置
Fernández-Ropero et al. Repairing business process models as retrieved from source code
JP2017151594A (ja) 支援装置、支援方法及びプログラム

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20120605