JP6737063B2 - ソフトウェア資産管理装置、ソフトウェア資産管理方法、および、ソフトウェア資産管理プログラム - Google Patents

ソフトウェア資産管理装置、ソフトウェア資産管理方法、および、ソフトウェア資産管理プログラム Download PDF

Info

Publication number
JP6737063B2
JP6737063B2 JP2016160000A JP2016160000A JP6737063B2 JP 6737063 B2 JP6737063 B2 JP 6737063B2 JP 2016160000 A JP2016160000 A JP 2016160000A JP 2016160000 A JP2016160000 A JP 2016160000A JP 6737063 B2 JP6737063 B2 JP 6737063B2
Authority
JP
Japan
Prior art keywords
module
data
information holding
asset management
software asset
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.)
Active
Application number
JP2016160000A
Other languages
English (en)
Other versions
JP2018028776A (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.)
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 JP2016160000A priority Critical patent/JP6737063B2/ja
Publication of JP2018028776A publication Critical patent/JP2018028776A/ja
Application granted granted Critical
Publication of JP6737063B2 publication Critical patent/JP6737063B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、ソフトウェア資産管理装置、ソフトウェア資産管理方法、および、ソフトウェア資産管理プログラム、特に、ソフトウェアの一部の修正に伴う影響範囲を探索するソフトウェア資産管理装置、ソフトウェア資産管理方法、および、ソフトウェア資産管理プログラムに関する。
ソフトウェアの改造/修正時に影響範囲を特定するには、ノウハウを持つ要員が、修正要件に関係するキーワードを元に、仕様書やソースコードの全検索を行うなど、経験に頼った影響範囲の調査が行われるケースが多い。
(A) しかし、長期間にわたる保守および改修により仕様書が欠損するなど、システム間、機能間で関係がわからなくなっている場合がある。この場合、仕様書からの調査だけでは影響範囲の特定ができないという課題がある。
また、この調査は経験に頼った調査となるため、下記のような問題が発生する。
(B) 修正要件を元に改造/修正するプログラムを特定したとしても、影響範囲として調査されるのは、そのプログラムを構成するソースプログラムに限定される。しかし、修正対象のプログラムと直接的な呼び出し関係が無い他のプログラムでも、共通のデータにアクセスしているプログラムが修正対象となる場合があり、影響の見落としが発生する可能性がある。このため、デグレードや予期しないバグ埋め込みが発生する。
このような問題に対し、特許文献1は、各プログラムとこれをアクセスする業務モジュール内プログラムの関係を記憶し、変更されるデータの名称と内容が入力されると、変更されるデータをアクセスするプログラム名称を取得する。
特開2000−99571号公報
ソフトウェアの改造/修正に伴って影響範囲を特定する場合、共通のデータにアクセスしているプログラム間でも、データへのアクセス方法によっては影響がない場合がある。特許文献1のシステムは、データにアクセスしているかどうかの判断だけで影響範囲を判断しているため、過度に広い範囲を影響範囲として取得してしまう可能性が有る。
本発明は、上記課題を解決し、影響範囲を適切に絞り込むことが可能なソフトウェア資産管理装置、ソフトウェア資産管理方法、および、ソフトウェア資産管理プログラムを提供することを目的とする。
本発明の1実施の形態のソフトウェア資産管理装置は、業務システムを構成するモジュールに関連付けて、前記モジュールがアクセスをするデータの識別子と、前記アクセスが作成、消去、更新、または、参照の何れであるかを示すアクセス種別と、を記憶する情報保持手段に接続され、指定された前記モジュールがアクセスする前記データのうち、作成、消去、または、更新するものを選択し、選択した前記データにアクセスする前記モジュールの識別子を前記情報保持手段から抽出して出力する影響範囲分析手段、を備える。
本発明の1実施の形態のソフトウェア資産管理方法は、業務システムを構成するモジュールに関連付けて、前記モジュールがアクセスをするデータの識別子と、前記アクセスが作成、消去、更新、または、参照の何れであるかを示すアクセス種別と、を記憶する情報保持手段を参照して、指定された前記モジュールがアクセスする前記データのうち、作成、消去、または、更新するものを選択し、選択した前記データにアクセスする前記モジュールの識別子を前記情報保持手段から抽出して出力する。
本発明の1実施の形態のソフトウェア資産管理プログラムは、業務システムを構成するモジュールに関連付けて、前記モジュールがアクセスをするデータの識別子と、前記アクセスが作成、消去、更新、または、参照の何れであるかを示すアクセス種別と、を記憶する情報保持手段に接続されたコンピュータに、指定された前記モジュールがアクセスする前記データのうち、作成、消去、または、更新するものを選択し、選択した前記データにアクセスする前記モジュールの識別子を前記情報保持手段から抽出して出力する影響範囲分析処理を実行させる。
本発明にかかるソフトウェア資産管理装置は、ソフトウェアの改造/修正に伴って影響範囲を特定する際に、適切な範囲に絞りこむことが可能である。
図1は、第1の実施の形態に係るソフトウェア資産管理システム10の構成を示す図である。 図2は、情報保持部8が格納するA)情報保持テーブルとB)リンクテーブルの構造を示す図である。 図3は、図2が示す情報保持テーブルとリンクテーブルが格納している情報項目の集合を示す図である。 図4は、ソフトウェア資産管理装置3の動作説明において、例として取り上げる販売システムの構造を示す図である。 図5は、情報保持テーブル、リンクテーブル、および、アクセス種別テーブルの構造を示す図(その1)である。 図6は、情報保持テーブル、リンクテーブル、および、アクセス種別テーブルの構造を示す図(その2)である。 図7は、情報保持テーブル、リンクテーブル、および、アクセス種別テーブルの構造を示す図(その3)である。 図8は、情報保持テーブル、リンクテーブル、および、アクセス種別テーブルに基づいて、プログラム-データ関係表を作成する過程を示す図(その1)である。 図9は、情報保持テーブル、リンクテーブル、および、アクセス種別テーブルに基づいて、プログラム-データ関係表を作成する過程を示す図(その2)である。 図10は、情報保持テーブル、リンクテーブル、および、アクセス種別テーブルに基づいて、プログラム-データ関係表を作成する過程を示す図(その3)である。 図11は、情報保持テーブル、リンクテーブル、および、アクセス種別テーブルに基づいて、プログラム-データ関係表を作成する過程を示す図(その4)である。 図12は、情報保持テーブル、リンクテーブル、および、アクセス種別テーブルに基づいて、プログラム-データ関係表を作成する過程を示す図(その5)である。 図13は、プログラム-データ関係表の構造を示す図である。 図14は、プログラム-データ関係表に基づいて、影響一覧表を作成する過程を示す(その1)である。 図15は、プログラム-データ関係表に基づいて、影響一覧表を作成する過程を示す(その2)である。 図16は、プログラム-データ関係表に基づいて、影響一覧表を作成する過程を示す(その3)である。 図17は、プログラム-データ関係表に基づいて、影響一覧表を作成する過程を示す(その4)である。 図18は、プログラム-データ関係表に基づいて、影響一覧表を作成する過程を示す(その5)である。 図19は、プログラム-データ関係表に基づいて、影響一覧表を作成する過程を示す(その6)である。 図20は、影響範囲分析部71が、アクセス種別の変更が、他のモジュールに影響を与える可能性が有るかどうかを判断する為の判断マトリクスを示す図である。 図21は、コンピュータ装置600の構成図である。 図22は、第2の実施の形態に係るソフトウェア資産管理装置3の構造を示す図である。
<第1の実施の形態>
<構成>
図1は、第1の実施の形態に係るソフトウェア資産管理システム10の構成を示す図である。ソフトウェア資産管理システム10は、ソフトウェア資産管理装置3と、ソフトウェア資産管理装置3に接続された入力装置1、出力装置2、および、情報保持部8とを包含する。
情報保持部8は、ソフトウェア資産を管理する為の情報を記憶するリポジトリ、あるいは、その一部である。ソフトウェア資産管理装置3は、情報保持部8に対する情報の入力、抽出、分析を行う処理装置である。ソフトウェア資産管理装置3は、利用者が操作する入力装置1から情報を取得して、演算した結果を出力装置2に表示する。
ソフトウェア資産管理装置3は、情報入力部5および情報分析部7を備える。
情報入力部5は、情報保持部8に対して情報を入力する時に様々な検査や加工を行う。情報入力部5は、入力されたプログラムのソースコードから、当該プログラムがアクセスするデータやアクセス種別を抽出して情報保持部8に格納するアクセス種別入力部51を包含する。
情報分析部7は、ソフトウェアを改造/修正する場合に、影響を受ける可能性が有る範囲を分析する。情報分析部7は、データの共有関係に基づいて影響範囲を分析する影響範囲分析部71、および、ソフトウェアの階層構造に基づいて影響範囲を分析する上位下位関係分析部72を包含する。
図2は、情報保持部8が格納するA)情報保持テーブルとB)リンクテーブルの構造を示す図である。
情報保持テーブルは、情報保持部8が格納する情報項目ごとに、番号、情報名称、区分位置、情報実体、出リンク、および、入リンクを格納するテーブルである。情報項目は、例えば、プログラムモジュール、データテーブル、入出力メッセージ、それらのグループや上位概念である。グループや上位概念は階層的である。
番号は、テーブル内での情報項目識別子である。区分位置は、本発明には関係しないので説明を割愛する。情報実体は、例えば、モジュールのソースコード、オブジェクトコード、および、それらの管理情報である。出リンクと入リンクの項目は、その情報項目から出る、または入ってくる関係リンクの番号を示している。
リンクテーブルには、関係リンク一本一本が登録されている。リンクテーブルは、関係リンクごとに、番号(テーブル内の識別子)、後述する属性、および、始点情報/終点情報(当該関係リンクがどの情報項目から出て、どの情報項目に繋がるかの情報)を保持している。関係リンクには、下位構造を示すリンクと関連付けを示すリンクが有り、どちらのリンクであるかは属性から判断できる。
図2が示す情報保持テーブルとリンクテーブルは、具体的には、図3に示す情報項目の集合を格納している場合の例である。
図3は、「業務フロー(システム)」の下位に「販売部門(サブシステム)」があり、「販売部門」の下位に「受注処理(モジュール)」、「在庫処理」、「出庫指示処理」がある情報項目の集合を示している。そして、この集合において、「受注処理」、「在庫処理」、「出庫指示処理」の各々に「注文書」、「製造指示書」、「出庫指示書」が各々関連付けられている。
図2において、例えば、情報保持テーブルの番号1の「業務フロー」の下位に情報保持テーブルの番号2の「販売部門」が有ることは、リンクテーブルの番号1の関係リンクで表現されている。リンクテーブルは、番号1の関係リンクは、情報保持テーブルの番号1の「業務フロー」を始点として、情報保持テーブルの番号2の「販売部門」を終点とする下位構造を示す関係リンクであることを示している。
同様に、「受注処理」に「注文書」が関連付けられていることは、リンクテーブルの番号5の関係リンクで表現されている。リンクテーブルは、番号5の関係リンクは、情報保持テーブルの番号6の「注文書」を始点として、情報保持テーブルの番号3の「受注処理」を終点とする関連付けを示す関係リンクであることを示している。
なお、関連付けを示す関係リンクは、リンクの方向に意味を持っていても、持っていなくても良い。例えば、モジュールからデータに向かう関連付を示す関係リンクは更新を表し、データからモジュールに向かう関連リンクは参照を表しても良い。一方、モジュールとデータ間の関連付を示す関係リンクは、モジュールがデータにアクセスすることを表すだけでも良い。
ここで、情報保持テーブルの出リンクと入リンクの項目は、リンクテーブルを情報保持テーブル番号で検索して得ることが出来る情報であり、構造上は必須な項目ではない。しかし、実際の運用面において、情報保持部8に登録される情報量が膨大に増えて来ると、このリンクテーブルの検索時間が全体性能に大きな影響を及ぼすことが予想される。高速化の手段として、情報保持テーブルに出リンクと入リンクの情報を持つ事が有効となる。
ここで、ソフトウェア資産管理装置3の、情報入力部5と、情報分析部7は、論理回路で構成される。情報保持部8は、磁気記憶装置、または、半導体記憶装置で構成される。
ソフトウェア資産管理装置3は、コンピュータ装置600により実現されても良い。図21は、コンピュータ装置600の構成図である。コンピュータ装置600は、バス640で相互に接続された、プロセッサ610、主記憶部630、および、外部記憶装置620を備える。プロセッサ610は、バス640を経由して、主記憶部630、および、外部記憶装置620に対してデータの読み書きを行う。また、プロセッサ610は、主記憶部630に格納されているプログラム650を実行する。なお、プログラム650は、当初外部記憶装置620に格納されており、コンピュータ装置600の初期設定時に、プロセッサ610が外部記憶装置620から主記憶部630にロードしても良い。
ここで、主記憶部630は半導体メモリ装置である。外部記憶装置620はディスク装置、または、半導体記憶装置等の記憶装置である。
プロセッサ610は、プログラム650を実行することにより、例えば、情報入力部5、および、情報分析部7として機能する。すなわち、プロセッサ610は、プログラム650を実行することにより、例えば、情報入力部5、および、情報分析部7が行う処理を実行する。主記憶部630または、外部記憶装置620は、情報保持部8として機能する。
<動作>
図4は、以降のソフトウェア資産管理装置3の動作説明において、しばしば、例として取り上げる販売システムの構造を示す図である。
販売システムは、受注処理、在庫管理処理、および、出庫処理の3つのサブシステムに分割され、各々、受注処理プログラム、在庫確認プログラム、および、出庫指示プログラムで実現されている。
受注処理プログラムはモジュール1乃至3により構成されている。在庫確認プログラムはモジュール4乃至6により構成されている。出庫指示プログラムはモジュール7乃至9により構成されている。
モジュールはプログラムの、プログラムはサブシステムの、サブシステムは販売システムの下位構造である。この例のようなシステム、プログラム、モジュールは情報項目として、予め、情報保持テーブルに登録され、階層関係はリンクテーブルの下位構造を示す関係リンクとして登録されている。図5のA)の番号1乃至4、B)の番号1乃至3は、受注処理プログラムについての予め登録されている情報の例である。図6のA)の番号1乃至4、B)の番号1乃至3は、在庫確認プログラムについての予め登録されている情報の例である。図7のA)の番号1乃至4、B)の番号1乃至3は、出庫指示プログラムについての予め登録されている情報の例である。
これらは、例えば、情報入力部5が、各モジュールのソースプログラムや販売システムの構造定義情報を読み込んで登録する。ソフトウェア資産管理装置3、あるいは、リポジトリの管理者が、人手でこの情報を登録しても良い。
さらに、図4の販売システムにおいて、モジュール1は顧客マスタを、モジュール3は商品マスタと受注テーブルをデータとしてアクセスしている。モジュール4は受注テーブルを、モジュール5は在庫テーブルをアクセスしている。モジュール7は商品マスタと受注テーブルを、モジュール9は在庫テーブルをアクセスしている。
これらのデータやアクセス関係は、アクセス種別入力部51が、以降に説明する処理により登録する。なお、商品マスタなどのデータは、予め、例えば、情報入力部5が、各データの定義情報を読み込んで、情報項目として、情報保持テーブルに登録していても良い。
<処理フロー1>
アクセス種別入力部51は、例えば、リポジトリに格納されているモジュールのソースプログラムを解析し、アクセスするデータとアクセス種別を情報保持部8に登録する。アクセス種別入力部51は、次の判断条件に従ってアクセスする種別を登録する。
・アクセス種別入力部51は、ファイルのCREATEやレコードのWRITEなど、新規にデータ(ファイル、または、レコード)を作成する処理のソースコードを検出すると、アクセス種別「作成(略称はC)」の関連付けを示す関係リンクを登録する。
・アクセス種別入力部51は、レコードのREADなど、データの読み込みを行う処理のソースコードを検出すると、アクセス種別「参照(略称はR)」の関連付けを示す関係リンクを登録する。
・アクセス種別入力部51は、レコードのUPDATEやREWRITEなど、データを更新する処理のソースコードを検出すると、アクセス種別「更新(略称はU)」の関連付けを示す関係リンクを登録する。REWRITEの場合は、READも行うため、「参照」の関連付けを示す関係リンクも登録される。
・アクセス種別入力部51は、ファイルのELASEやレコードのDELETEなど、データ(ファイル、または、レコード)を削除する処理のソースコードを検出すると、アクセス種別「削除(略称はD)」の関連付けを示す関係リンクを登録する。
・アクセス種別入力部51は、ファイルやレコードの定義のみ行っており、データへのアクセスは行っていない処理のソースコードを検出すると、アクセス種別「定義のみ(略称はX)」の関連付けを示す関係リンクを登録する。
アクセス種別入力部51は、具体的には、ソースプログラムからデータアクセスを検出すると、アクセスごとに、対象データと関連付けを示す関係リンクを情報保持テーブルとリンクテーブルに登録し、アクセス種別を当該関係リンクに関連付けてアクセス種別テーブルに登録する。
例えば、アクセス種別入力部51は、モジュール1のソースコードから顧客マスタへの参照を検出すると、まず、図5の情報保持テーブルに情報項目番号5の顧客マスタを登録する。次いで、アクセス種別入力部51は、図5のリンクテーブルに番号4の関連付けを示す関係リンクを登録する。さらに、アクセス種別入力部51は、図5のリンクテーブルと情報保持テーブルに当該関係リンクが、情報項目番号2のモジュール1と情報項目番号5の顧客マスタ間の関係リンクであることを登録する。最後に、アクセス種別入力部51は、アクセス種別テーブルに、番号4の関係リンクに関連付けてアクセス種別が参照であることを登録する。
さらに、例えば、アクセス種別入力部51は、モジュール5のソースコードから在庫テーブルへの参照を検出すると、まず、図6の情報保持テーブルに情報項目番号6の在庫テーブルを登録する。次いで、アクセス種別入力部51は、図6のリンクテーブルに番号5の関連付けを示す関係リンクを登録する。さらに、アクセス種別入力部51は、図6のリンクテーブルと情報保持テーブルに当該関係リンクが、情報項目番号3のモジュール5と情報項目番号6の在庫テーブル間の関係リンクであることを登録する。最後に、アクセス種別入力部51は、アクセス種別テーブルに、番号5の関係リンクに関連付けてアクセス種別が参照であることを登録する。
このように、アクセス種別入力部51は、図4の販売システムの全てのモジュールからデータアクセスを検出して、データ、関連付けを示す関係リンク、および、アクセス種別を情報保持テーブル、リンクテーブル、および、アクセス種別テーブルに登録する。図5のA)、B)、C)は、受注処理プログラムについてのアクセス種別入力部51の登録後のデータ例である。図6のA)、B)、C)は、在庫確認プログラムについてのアクセス種別入力部51の登録後のデータ例である。図7のA)、B)、C)は、出庫指示プログラムについてのアクセス種別入力部51による登録処理後のデータ例である。なお、図5、図6,および、図7は、いずれも、販売システム全体についてのテーブルの一部を抜き出して示している。
<処理フロー2>
情報分析部7における影響範囲分析部71は、まず、アクセス種別入力部51による登録処理後の情報保持テーブル、リンクテーブル、アクセス種別テーブルを検索し、プログラムとデータとの間の関係情報を解析し、プログラム-データ関係表を作成する。
図13は、プログラム-データ関係表の構造を示す。プログラム-データ関係表は、データ対応に、各モジュールが当該データにアクセスするのか否か、アクセスする場合のアクセス種別は何かを示すマトリックスである。すなわち、影響範囲分析部71は、例えば、図4に示した3つのプログラムについて、図5乃至7のデータから図13のデータを作成する。以下、その手順を説明する。
ステップ1:影響範囲分析部71は、各プログラムの情報保持テーブルより、利用しているモジュールの一覧を横軸に、利用しているデータの一覧を縦軸に抽出してマトリクスを作成する。図8は、図5のA)、図6のA)、図7のA)から抽出したマトリクスの例を示す。
ステップ2:影響範囲分析部71は、マトリクスの一番上に登録されているデータを選択する。図8の例では、影響範囲分析部71は、顧客マスタを選択する。
ステップ3:影響範囲分析部71は、選択したデータに関係する関係リンクと、当該関連リンクが有るモジュールと、を各プログラムの情報保持テーブルとリンクテーブルから抽出する。図9は、図8における「顧客マスタ」に関係する番号4の関係リンクと、当該関係リンクが有る受注処理プログラムのモジュール1を、図5の情報保持テーブルとリンクテーブルから抽出する様子を示している。
ステップ4:影響範囲分析部71は、抽出した関係リンクのアクセス種別をアクセス種別テーブルから取得する。図10は、図9で抽出した番号4の関係リンクのアクセス種別「参照」を図5のアクセス種別テーブルから取得する様子を示している。
ステップ5:影響範囲分析部71は、取り出したアクセス種別を、マトリクスにおける選択したデータと抽出したモジュールとの交点のセルに登録する。図11は、取り出したアクセス種別「参照(R)」を、マトリクスにおける選択したデータ「顧客マスタ」と抽出したモジュール「モジュール1」との交点のセルに登録した後の様子を示している。
この時、複数のアクセス種別を取得した場合は、影響範囲分析部71は、取得したアクセス種別を全て登録する。例えば、「作成」と「参照」を取得した場合は、影響範囲分析部71は、”CR”を登録する。
ステップ6:影響範囲分析部71は、マトリクスに登録されているデータを順次選択し、ステップ3乃至ステップ5を順次繰り返す。図12は、アクセス種別「R」を、マトリクスにおける、選択したデータ「商品マスタ」と抽出したモジュール「モジュール3」との交点、および、選択したデータ「商品マスタ」と抽出したモジュール「モジュール7」との交点の両セルに登録した後の様子を示している。図13は、残りの受注テーブルと在庫テーブルについても、アクセス種別の登録が完了した様子を示している。
上記の手順により、影響範囲分析部71は、プログラム-データ関係表を作成する。
影響範囲分析部71は、プログラム-データ関係表の行を検索することで、特定のデータに関係リンクのあるモジュールを、別のプログラム間でも把握することが可能となる。
なお、ソフトウェア資産管理装置3、あるいは、リポジトリの管理者が、人手で、プログラム-データ関係表を登録しても良い。
<処理フロー3>
影響範囲分析部71は、次に、アクセス種別の変更を伴わない修正による影響範囲を分析したいモジュールに対して、下記の手順で影響一覧表を作成する。
まず、利用者が、影響範囲を分析したいモジュールを指定する。例えば、利用者は、モジュール3をアクセス種別の変更が無い範囲で修正することを指定する。
影響範囲分析部71は、指定されたモジュール(例えば、モジュール3)と関係リンクがあるデータの一覧を、図13のマトリクスの当該モジュールの列を検索することで特定し、関係リンクのないデータの行を削除する。例えば、図13のモジュール3の列から、影響範囲分析部71は、関係リンクが有る商品マスタと受注テーブルを特定し、関係リンクのない顧客マスタと在庫テーブルの行を削除する。
また、「モジュール3」と関係リンクが有る各データとの関係情報を確認し、アクセス種別が参照(R)、または、定義のみ(X)である場合は、当該データ(商品マスタ)の行も削除する。指定されたモジュールが、当該データを参照または定義だけをしているのであれば、アクセス種別を変えない限り当該モジュールの修正の影響が他のモジュールに及ぶことが無いためである。
図14は、この様子を示す。図14において、削除された行は、網掛けされている。
次に影響範囲分析部71は、指定されたモジュール(モジュール3)と関係リンクのあるデータ(受注テーブル)と関係があるモジュール(モジュール4、7)を、当該データの行を検索することで特定する。次いで、影響範囲分析部71は、関係リンクのないモジュールの列を削除する。この時、影響範囲分析部71は、関係情報が「定義のみ(X)」の場合は、「定義のみ(X)」の情報しか存在しないモジュールの列も削除する。このようなモジュールは、データを利用しているモジュールではないためである。図15は、この様子を示す。図15において、削除された列は、網掛けされている。
削除の結果残ったマトリクス(図16)から、「モジュール3」の修正に影響があるモジュール(モジュール4と7)の影響一覧表を作成できる。図17は、影響一覧表を示す。
<処理フロー4>
影響範囲分析部71は、アクセス種別の変更を伴う修正を行う予定のモジュールに対して、下記の手順で影響が発生する可能性のあるモジュールをシミュレーションし、影響一覧表を作成する。
販売システムの受注処理において、受注テーブルのアクセス種別を変更する修正が発生した場合に、影響範囲分析部71が影響のある処理(機能)、および、モジュールを特定する例を説明する。
本処理は、修正を行うモジュールに対して、処理フロー2で作成したプログラム-データ関係表を基に、図20に示す判断を行って、影響一覧表を作成して出力する。
ステップ1:利用者が、修正予定のモジュール、および、修正によりアクセス種別が変更となるデータを指定する。利用者は、例えば、モジュール1を修正し、在庫テーブルへのアクセス種別が変更になる旨の指定を行う。
ステップ2:影響範囲分析部71は、図13のプログラム-データ関係表から指定されたデータ(在庫テーブル)の行を抽出する。図18は、この様子を示す。図18において、抽出されなかった行は、網掛けされている。
次に影響範囲分析部71は、指定されたデータ(在庫テーブル)と関係があるモジュールをマトリクスの指定されたデータの行を探索ことで特定し、関係が無いモジュールの列を削除する。この時、関係情報が「定義のみ(X)」の場合は、当該列のモジュールも削除する。当該モジュールは、データを利用しているモジュールではないためである。さらに、影響範囲分析部71は、修正対象モジュールの列も削除する。図19は、この様子を示す。図19において、削除された列は、網掛けされている。
ステップ3:影響範囲分析部71は、アクセス種別の変更が、他のモジュールに影響を与える可能性が有るかどうかを、図20の判断マトリクスにしたがって判断する。判断マトリクスは、修正前のアクセス種別を行、修正後のアクセス種別を列とするマトリクスで、マトリクスの各セルは、アクセス種別の変更により他のモジュールに影響を与える可能性の有無が記憶されている。
影響範囲分析部71は、判断マトリクスに従って、作成、消去、更新の何れかの追加、または、削除が有れば他のモジュールに影響を与える可能性が有る一方、参照、定義のみの追加、または、削除だけでは、他のモジュールに影響を与える可能性が無いと判断する。指定されたモジュールにデータの参照、定義のみが追加、または、削除されても、他のモジュールは影響されないからである。
指定されたモジュール(モジュール1)の修正が、判断マトリクスの「無」に該当するものであれば、影響範囲分析部71は影響一覧として何も出力しない。一方、指定されたモジュール(モジュール1)の修正が、判断マトリクスの「有」に該当するものであれば、影響範囲分析部71は、図19のテーブルから残っているモジュール(モジュール5と9)を、指定されたモジュール(モジュール1)の修正における影響一覧表として出力する。
<処理フロー5>
情報分析部7における上位下位関係分析部72は、処理フロー3または処理フロー4で出力した影響一覧表に含まれるモジュールの関連リンクの検索を行い、影響のある上位構造を取得する。
上位下位関係分析部72は、影響一覧表に含まれるモジュールから出発して、リンクテーブルの下位構造を示す関係リンクを逆方向に辿ることで、順次、上位構造を取得すれば良い。ここで、下位構造を示す関係リンクを逆方向に辿るとは、リンクテーブルから、下位構造を終点とする下位構造を示す関係リンクを特定し、当該関係リンクの始点となる上位構造に至るという処理を順番に繰り返すことを意味する。なお、業務システムの階層構造は木構造とは限らない。或る下位構造を終点とする関係リンクは複数存在する場合が有り、この場合、上位下位関係分析部72は、その複数の関係リンク系列を探索する。
上位下位関係分析部72は、以下のように本処理を実行しても良い。以下は、具体例として処理フロー3で求めた受注テーブルに関係のあるモジュール7の上位構造を取得する処理を示す。
ステップ1:この処理では、モジュールとデータ間の関係については探査する必要はない。そのため、上位下位関係分析部72は、関連付けを示す関係リンクを検索対象外とする。
ステップ2:モジュール8は、出庫指示プログラムには関係があるが、モジュール7には関係がない。そのため、上位下位関係分析部72は、関係の向きが下位方向の下位構造を示す関係リンクも検索対象外とする。
ステップ3:上記2つを検索対象外として残りすべての関係リンクを辿って、上位下位関係分析部72は、モジュール7に影響のある上位構造(出庫指示プログラム、出庫処理、販売システム)を取得する。
ステップ4:同様に、上位下位関係分析部72は、モジュール3に影響のある上位構造(受注処理プログラム、受注処理、販売システム)、並びに、モジュール4に影響のある上位構造(在庫管理プログラム、在庫管理処理、販売システム)を取得する。
なお、仕様書や階層構造情報の欠損により、販売システムと在庫管理処理、販売システムと出庫処理との関係が辿れない場合であっても、モジュール間のデータ共用関係を基にした本処理フローに基づいて、販売システムと、在庫管理処理と出庫処理との関係を把握することが可能となる。
ここで、上位下位関係分析部72は、ダイクストラ法など一般的に知られる経路探索手法を用いて、上記ステップ3における「残りすべての関係リンクを辿る」処理を実行しても良い。
また、上記例では、上位下位関係分析部72は、機能間までの関係を探索しているが、リポジトリに存在するすべての関係リンクを辿っても良い。これにより、上位下位関係分析部72は、システム間の影響範囲を特定することも可能となる。
<効果>
本実施の形態のソフトウェア資産管理装置3は、ソフトウェアの改造/修正に伴う影響範囲を特定する際に、適切な範囲に絞りこむことが可能である。その理由は、各モジュールのデータアクセスの対象データおよびアクセス種別に基づいて、影響範囲分析部71が或るモジュールの改造/修正の影響を受ける可能性のある他のモジュールを絞り込んで、過剰に広い影響範囲情報を出力しないからである。すなわち、本実施の形態のソフトウェア資産管理装置3は、プログラム間同士に関係を持たない場合でも、データに着目することでプログラム間の影響の有無を判定し、影響範囲を特定する。
さらに、本実施の形態のソフトウェア資産管理装置3は、仕様書が欠損している場合でも、データを介したプログラム間の影響を特定することにより、プログラムとデータとの関係情報からシステム間、機能間の影響の抽出が可能である。その理由は、影響範囲分析部71がデータを介したプログラム間の影響を特定し、その結果を基に、上位下位関係分析部72が、プログラムの上位構成要素を特定するからである。すなわち、本実施の形態のソフトウェア資産管理装置3は、プログラムに対して、上位情報を探索することができ、システム間、機能間の影響の有無の確認が可能である。
さらに、本実施の形態のソフトウェア資産管理装置3は、アクセス種別の変更を伴う修正前後での影響範囲を特定することが可能である。その理由は、影響範囲分析部71がプログラムの修正ケースをシミュレーションするからである。
<変形例>
影響範囲分析部71は、プログラム間の影響の有無をデータへのアクセス種別から解析を行う部分において、アクセス種別に影響度の重みづけを行うことで、影響に強弱をつけても良い。さらに、影響範囲分析部71は、影響の強弱によりデータおよびソースプログラム間の親密度を評価したり、影響度の出力範囲を指定することで影響範囲の絞り込みを行ったりしても良い。
さらに、影響範囲分析部71は、データに対するプログラムとの関係リンクの数を抽出し、データの修正によるリスクを評価しても良い。
<第2の実施形態>
図22は、第2の実施の形態に係るソフトウェア資産管理装置3の構造を示す図である。
本実施の形態に係るソフトウェア資産管理装置3は、情報保持部8に接続されている。情報保持部8は、業務システムを構成するモジュールに関連付けて、モジュールがアクセスをするデータの識別子と、アクセスが作成、消去、更新、または、参照の何れであるかを示すアクセス種別と、を記憶する。
そして、本実施の形態に係るソフトウェア資産管理装置3は、影響範囲分析部71を備える。影響範囲分析部71は、指定されたモジュールがアクセスするデータのうち、作成、消去、または、更新するものを選択し、選択したデータにアクセスするモジュールの識別子を情報保持手段から抽出して出力する。
本実施の形態のソフトウェア資産管理装置3は、ソフトウェアの改造/修正に伴う影響範囲を特定する際に、適切な範囲に絞りこむことが可能である。その理由は、各モジュールのデータアクセスの対象データおよびアクセス種別に基づいて、影響範囲分析部71が或るモジュールの改造/修正の影響を受ける可能性のある他のモジュールを絞り込んで、過剰に広い影響範囲情報を出力しないからである。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
本発明は、フトウェア企画・開発フェーズにおける設計、製造、並びに、ソフトウェア運用・保守フェーズにおける改造支援、障害分析支援に利用できる。さらに、本発明は、上記フェーズを通した、影響分析支援、作業工数の見積支援にも利用できる。
1 入力装置
2 出力装置
3 ソフトウェア資産管理装置
5 情報入力部
7 情報分析部
8 情報保持部
10 ソフトウェア資産管理システム
51 アクセス種別入力部
71 影響範囲分析部
72 上位下位関係分析部
600 コンピュータ装置
610 プロセッサ
620 外部記憶装置
630 主記憶部
640 バス
650 プログラム

Claims (10)

  1. 業務システムを構成するモジュールに関連付けて、前記モジュールがアクセスをするデータの識別子と、前記アクセスが作成、消去、更新、または、参照の何れであるかを示すアクセス種別と、を記憶する情報保持手段に接続され、
    指定された前記モジュールがアクセスする前記データのうち、作成、消去、または、更新するものを選択し、選択した前記データにアクセスする前記モジュールの識別子を前記情報保持手段から抽出して出力する影響範囲分析手段、を備えるソフトウェア資産管理装置。
  2. 前記影響範囲分析手段は、指定された前記モジュールの修正により、当該モジュールによる、指定された前記データに対する作成、消去または更新の前記アクセスの追加または削除の通知を受けた場合に、指定された前記データに前記アクセスをする前記モジュールを前記情報保持手段から抽出して出力する一方、指定された前記データに対する参照の前記アクセスの追加または削除のみの修正である通知を受けた場合は、前記情報保持手段からの抽出を行わない、請求項1のソフトウェア資産管理装置。
  3. 前記情報保持手段は、さらに、前記業務システムから前記モジュールに至る構成要素の階層構造を示す階層関係情報を記憶し、
    前記階層関係情報から、前記響範囲分析手段が抽出した前記モジュールの前記階層構造における上位の前記構成要素を抽出して出力する上位下位関係分析手段を、さらに備える請求項1乃至請求項2の何れか1項のソフトウェア資産管理装置。
  4. 前記業務システムを構成する前記モジュールのソースソースプログラムから、当該モジュールが前記アクセスをする前記データの前記識別子と、前記アクセス種別を抽出して、前記情報保持手段に格納する、アクセス種別入力手段を、さらに備える請求項1乃至請求項3の何れか1項のソフトウェア資産管理装置。
  5. 前記情報保持手段と、
    請求項1乃至請求項4の何れか1項のソフトウェア資産管理装置と、を包含するソフトウェア資産管理システム
  6. 業務システムを構成するモジュールに関連付けて、前記モジュールがアクセスをするデータの識別子と、前記アクセスが作成、消去、更新、または、参照の何れであるかを示すアクセス種別と、を記憶する情報保持手段を参照して、
    指定された前記モジュールがアクセスする前記データのうち、作成、消去、または、更新するものを選択し、選択した前記データにアクセスする前記モジュールの識別子を前記情報保持手段から抽出して出力するソフトウェア資産管理方法。
  7. 指定された前記モジュールの修正により、当該モジュールによる、指定された前記データに対する作成、消去または更新の前記アクセスの追加または削除の通知を受けた場合に、指定された前記データに前記アクセスをする前記モジュールを前記情報保持手段から抽出して出力する一方、指定された前記データに対する参照の前記アクセスの追加または削除のみの修正である通知を受けた場合は、前記情報保持手段からの抽出を行わない、請求項6のソフトウェア資産管理方法。
  8. 前記情報保持手段は、さらに、前記業務システムから前記モジュールに至る構成要素の階層構造を示す階層関係情報を記憶し、
    前記階層関係情報から、前記響範囲分析手段が抽出した前記モジュールの前記階層構造における上位の前記構成要素を抽出して出力する請求項6乃至請求項7の何れか1項のソフトウェア資産管理方法。
  9. 前記業務システムを構成する前記モジュールのソースソースプログラムから、当該モジュールが前記アクセスをする前記データの前記識別子と、前記アクセス種別を抽出して、前記情報保持手段に格納する、請求項6乃至請求項8の何れか1項のソフトウェア資産管理方法。
  10. 業務システムを構成するモジュールに関連付けて、前記モジュールがアクセスをするデータの識別子と、前記アクセスが作成、消去、更新、または、参照の何れであるかを示すアクセス種別と、を記憶する情報保持手段に接続されたコンピュータに、
    指定された前記モジュールがアクセスする前記データのうち、作成、消去、または、更新するものを選択し、選択した前記データにアクセスする前記モジュールの識別子を前記情報保持手段から抽出して出力する影響範囲分析処理を実行させる、ソフトウェア資産管理プログラム。
JP2016160000A 2016-08-17 2016-08-17 ソフトウェア資産管理装置、ソフトウェア資産管理方法、および、ソフトウェア資産管理プログラム Active JP6737063B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016160000A JP6737063B2 (ja) 2016-08-17 2016-08-17 ソフトウェア資産管理装置、ソフトウェア資産管理方法、および、ソフトウェア資産管理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016160000A JP6737063B2 (ja) 2016-08-17 2016-08-17 ソフトウェア資産管理装置、ソフトウェア資産管理方法、および、ソフトウェア資産管理プログラム

Publications (2)

Publication Number Publication Date
JP2018028776A JP2018028776A (ja) 2018-02-22
JP6737063B2 true JP6737063B2 (ja) 2020-08-05

Family

ID=61249126

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016160000A Active JP6737063B2 (ja) 2016-08-17 2016-08-17 ソフトウェア資産管理装置、ソフトウェア資産管理方法、および、ソフトウェア資産管理プログラム

Country Status (1)

Country Link
JP (1) JP6737063B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7155636B2 (ja) * 2018-06-12 2022-10-19 富士通株式会社 生成プログラム、生成方法および情報処理装置
JP7356013B2 (ja) * 2019-10-21 2023-10-04 富士通株式会社 情報提示プログラム、情報提示装置、及び情報提示方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3028843B2 (ja) * 1990-10-17 2000-04-04 株式会社日立製作所 設計情報抽出システム
JPH10340188A (ja) * 1997-06-06 1998-12-22 Nec Corp ファイルの更新項目関連図の自動作成装置
US7506320B2 (en) * 2004-09-09 2009-03-17 International Business Machines Corporation Generating sequence diagrams using call trees
JP2016076080A (ja) * 2014-10-06 2016-05-12 三菱電機株式会社 ソースコード解析装置、ソースコード解析方法、及びプログラム

Also Published As

Publication number Publication date
JP2018028776A (ja) 2018-02-22

Similar Documents

Publication Publication Date Title
US7418453B2 (en) Updating a data warehouse schema based on changes in an observation model
US20150082275A1 (en) Expression editor system
US8271520B1 (en) Expression editor tool
US20110112973A1 (en) Automation for Governance, Risk, and Compliance Management
KR20150132858A (ko) 메타데이터 관리를 위한 시스템
KR102602483B1 (ko) 데이터베이스 검색 시스템 및 방법
US8965797B2 (en) Explosions of bill-of-materials lists
CN101046822B (zh) 数据节点的集中管理
JP6737063B2 (ja) ソフトウェア資産管理装置、ソフトウェア資産管理方法、および、ソフトウェア資産管理プログラム
JP6684233B2 (ja) テスト入力情報検索装置及び方法
US11029923B2 (en) Technical building block
US11741255B2 (en) System and method of block chain based protection for customized data integration processes
JP6336919B2 (ja) ソースコードレビュー方法及びそのシステム
JP2019101829A (ja) ソフトウェア部品管理システム、計算機および方法
JP6379713B2 (ja) 設計支援プログラム、装置、及び方法
JP7233177B2 (ja) 予算管理装置、予算管理方法および予算管理プログラム
US20240104462A1 (en) Supply chain management system and supply chain management method
JP2007041915A (ja) 損益管理システムおよび管理方法、ならびにそのプログラム
WO2024076385A1 (en) Machine learning defect detection using metadata-based data processing
KR20240032493A (ko) 목적 데이터 시각화 방법 및 시스템
JP2024019840A (ja) 計算機システム及びシステム更新支援方法
JP2000112800A (ja) ファイル履歴管理システム
WO2023192488A1 (en) Metadata-based data processing
JP2023064865A (ja) 製造管理装置、製造管理方法、および製造管理プログラム
CN117389978A (zh) 接口文件自动导入方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190716

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200604

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200629

R150 Certificate of patent or registration of utility model

Ref document number: 6737063

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150