JP2018028776A - Software asset management device, software asset management method, and software asset management program - Google Patents
Software asset management device, software asset management method, and software asset management program Download PDFInfo
- Publication number
- JP2018028776A JP2018028776A JP2016160000A JP2016160000A JP2018028776A JP 2018028776 A JP2018028776 A JP 2018028776A JP 2016160000 A JP2016160000 A JP 2016160000A JP 2016160000 A JP2016160000 A JP 2016160000A JP 2018028776 A JP2018028776 A JP 2018028776A
- Authority
- JP
- Japan
- Prior art keywords
- module
- data
- information holding
- asset management
- access
- 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.)
- Granted
Links
Images
Abstract
Description
本発明は、ソフトウェア資産管理装置、ソフトウェア資産管理方法、および、ソフトウェア資産管理プログラム、特に、ソフトウェアの一部の修正に伴う影響範囲を探索するソフトウェア資産管理装置、ソフトウェア資産管理方法、および、ソフトウェア資産管理プログラムに関する。 The present invention relates to a software asset management device, a software asset management method, and a software asset management program, and in particular, a software asset management device, a software asset management method, and a software asset that search an influence range associated with modification of a part of software. Regarding management programs.
ソフトウェアの改造/修正時に影響範囲を特定するには、ノウハウを持つ要員が、修正要件に関係するキーワードを元に、仕様書やソースコードの全検索を行うなど、経験に頼った影響範囲の調査が行われるケースが多い。 In order to identify the scope of impact when modifying / modifying software, a staff with know-how conducts a full-scale search of specifications and source code based on keywords related to the modification requirements and investigates the scope of impact based on experience. Is often performed.
(A) しかし、長期間にわたる保守および改修により仕様書が欠損するなど、システム間、機能間で関係がわからなくなっている場合がある。この場合、仕様書からの調査だけでは影響範囲の特定ができないという課題がある。 (A) However, there are cases in which the relationship between systems and functions is lost due to the loss of specifications due to long-term maintenance and modification. In this case, there is a problem that the influence range cannot be specified only by the investigation from the specification.
また、この調査は経験に頼った調査となるため、下記のような問題が発生する。 In addition, since this survey depends on experience, the following problems occur.
(B) 修正要件を元に改造/修正するプログラムを特定したとしても、影響範囲として調査されるのは、そのプログラムを構成するソースプログラムに限定される。しかし、修正対象のプログラムと直接的な呼び出し関係が無い他のプログラムでも、共通のデータにアクセスしているプログラムが修正対象となる場合があり、影響の見落としが発生する可能性がある。このため、デグレードや予期しないバグ埋め込みが発生する。 (B) Even if a program to be modified / modified is specified based on the correction requirements, the scope of the influence is limited to the source program that constitutes the program. However, even in other programs that do not have a direct calling relationship with the program to be corrected, a program that accesses common data may be the target of correction, and an oversight of the effect may occur. For this reason, degradation and unexpected bug embedding occur.
このような問題に対し、特許文献1は、各プログラムとこれをアクセスする業務モジュール内プログラムの関係を記憶し、変更されるデータの名称と内容が入力されると、変更されるデータをアクセスするプログラム名称を取得する。
For such a problem,
ソフトウェアの改造/修正に伴って影響範囲を特定する場合、共通のデータにアクセスしているプログラム間でも、データへのアクセス方法によっては影響がない場合がある。特許文献1のシステムは、データにアクセスしているかどうかの判断だけで影響範囲を判断しているため、過度に広い範囲を影響範囲として取得してしまう可能性が有る。
When the scope of influence is specified as a result of software modification / modification, there is a case where there is no influence depending on the data access method even between programs accessing common data. Since the system of
本発明は、上記課題を解決し、影響範囲を適切に絞り込むことが可能なソフトウェア資産管理装置、ソフトウェア資産管理方法、および、ソフトウェア資産管理プログラムを提供することを目的とする。 An object of the present invention is to provide a software asset management device, a software asset management method, and a software asset management program that can solve the above-described problems and can appropriately narrow down the influence range.
本発明の1実施の形態のソフトウェア資産管理装置は、業務システムを構成するモジュールに関連付けて、前記モジュールがアクセスをするデータの識別子と、前記アクセスが作成、消去、更新、または、参照の何れであるかを示すアクセス種別と、を記憶する情報保持手段に接続され、指定された前記モジュールがアクセスする前記データのうち、作成、消去、または、更新するものを選択し、選択した前記データにアクセスする前記モジュールの識別子を前記情報保持手段から抽出して出力する影響範囲分析手段、を備える。 The software asset management apparatus according to one embodiment of the present invention relates to an identifier of data accessed by the module in association with a module constituting a business system, and the access is created, deleted, updated, or referenced. Connected to an information holding means for storing an access type indicating whether or not, the data to be created, deleted or updated is selected from the data accessed by the designated module, and the selected data is accessed An influence range analyzing unit that extracts and outputs an identifier of the module to be extracted from the information holding unit.
本発明の1実施の形態のソフトウェア資産管理方法は、業務システムを構成するモジュールに関連付けて、前記モジュールがアクセスをするデータの識別子と、前記アクセスが作成、消去、更新、または、参照の何れであるかを示すアクセス種別と、を記憶する情報保持手段を参照して、指定された前記モジュールがアクセスする前記データのうち、作成、消去、または、更新するものを選択し、選択した前記データにアクセスする前記モジュールの識別子を前記情報保持手段から抽出して出力する。 The software asset management method according to an embodiment of the present invention relates to an identifier of data accessed by a module in association with a module constituting a business system, and whether the access is created, deleted, updated, or referenced. With reference to the information holding means for storing the access type indicating whether or not there is selected the data to be created, deleted or updated among the data accessed by the specified module, and the selected data is The identifier of the module to be accessed is extracted from the information holding means and output.
本発明の1実施の形態のソフトウェア資産管理プログラムは、業務システムを構成するモジュールに関連付けて、前記モジュールがアクセスをするデータの識別子と、前記アクセスが作成、消去、更新、または、参照の何れであるかを示すアクセス種別と、を記憶する情報保持手段に接続されたコンピュータに、指定された前記モジュールがアクセスする前記データのうち、作成、消去、または、更新するものを選択し、選択した前記データにアクセスする前記モジュールの識別子を前記情報保持手段から抽出して出力する影響範囲分析処理を実行させる。 A software asset management program according to an embodiment of the present invention relates to an identifier of data accessed by a module in association with a module constituting a business system, and the access is created, deleted, updated, or referenced. Select the data to be created, erased, or updated among the data accessed by the specified module to the computer connected to the information holding means for storing the access type indicating whether or not the selected An influence range analysis process for extracting and outputting an identifier of the module accessing the data from the information holding unit is executed.
本発明にかかるソフトウェア資産管理装置は、ソフトウェアの改造/修正に伴って影響範囲を特定する際に、適切な範囲に絞りこむことが可能である。 The software asset management apparatus according to the present invention can be narrowed down to an appropriate range when the affected range is specified along with the modification / correction of software.
<第1の実施の形態>
<構成>
図1は、第1の実施の形態に係るソフトウェア資産管理システム10の構成を示す図である。ソフトウェア資産管理システム10は、ソフトウェア資産管理装置3と、ソフトウェア資産管理装置3に接続された入力装置1、出力装置2、および、情報保持部8とを包含する。
<First Embodiment>
<Configuration>
FIG. 1 is a diagram showing a configuration of a software
情報保持部8は、ソフトウェア資産を管理する為の情報を記憶するリポジトリ、あるいは、その一部である。ソフトウェア資産管理装置3は、情報保持部8に対する情報の入力、抽出、分析を行う処理装置である。ソフトウェア資産管理装置3は、利用者が操作する入力装置1から情報を取得して、演算した結果を出力装置2に表示する。
The
ソフトウェア資産管理装置3は、情報入力部5および情報分析部7を備える。
The software
情報入力部5は、情報保持部8に対して情報を入力する時に様々な検査や加工を行う。情報入力部5は、入力されたプログラムのソースコードから、当該プログラムがアクセスするデータやアクセス種別を抽出して情報保持部8に格納するアクセス種別入力部51を包含する。
The
情報分析部7は、ソフトウェアを改造/修正する場合に、影響を受ける可能性が有る範囲を分析する。情報分析部7は、データの共有関係に基づいて影響範囲を分析する影響範囲分析部71、および、ソフトウェアの階層構造に基づいて影響範囲を分析する上位下位関係分析部72を包含する。
The
図2は、情報保持部8が格納するA)情報保持テーブルとB)リンクテーブルの構造を示す図である。
FIG. 2 is a diagram illustrating the structures of the A) information holding table and the B) link table stored in the
情報保持テーブルは、情報保持部8が格納する情報項目ごとに、番号、情報名称、区分位置、情報実体、出リンク、および、入リンクを格納するテーブルである。情報項目は、例えば、プログラムモジュール、データテーブル、入出力メッセージ、それらのグループや上位概念である。グループや上位概念は階層的である。
The information holding table is a table that stores a number, an information name, a division position, an information entity, an outgoing link, and an incoming link for each information item stored in the
番号は、テーブル内での情報項目識別子である。区分位置は、本発明には関係しないので説明を割愛する。情報実体は、例えば、モジュールのソースコード、オブジェクトコード、および、それらの管理情報である。出リンクと入リンクの項目は、その情報項目から出る、または入ってくる関係リンクの番号を示している。 The number is an information item identifier in the table. Since the division position is not related to the present invention, the description is omitted. The information entity is, for example, a module source code, an object code, and management information thereof. The items of the outgoing link and incoming link indicate the number of the related link that comes out of or enters the information item.
リンクテーブルには、関係リンク一本一本が登録されている。リンクテーブルは、関係リンクごとに、番号(テーブル内の識別子)、後述する属性、および、始点情報/終点情報(当該関係リンクがどの情報項目から出て、どの情報項目に繋がるかの情報)を保持している。関係リンクには、下位構造を示すリンクと関連付けを示すリンクが有り、どちらのリンクであるかは属性から判断できる。 Each link is registered in the link table. The link table includes, for each related link, a number (identifier in the table), an attribute to be described later, and start point information / end point information (information on which information item the related link is output from and which information item is connected). keeping. The relationship link includes a link indicating a lower structure and a link indicating association, and it can be determined from the attribute which link is the link.
図2が示す情報保持テーブルとリンクテーブルは、具体的には、図3に示す情報項目の集合を格納している場合の例である。 Specifically, the information holding table and the link table shown in FIG. 2 are examples in the case where the set of information items shown in FIG. 3 is stored.
図3は、「業務フロー(システム)」の下位に「販売部門(サブシステム)」があり、「販売部門」の下位に「受注処理(モジュール)」、「在庫処理」、「出庫指示処理」がある情報項目の集合を示している。そして、この集合において、「受注処理」、「在庫処理」、「出庫指示処理」の各々に「注文書」、「製造指示書」、「出庫指示書」が各々関連付けられている。 In FIG. 3, “sales department (subsystem)” is subordinate to “business flow (system)”, and “order processing (module)”, “inventory processing”, and “shipping instruction processing” are subordinate to “sales department”. Indicates a set of information items. In this set, “order form”, “manufacturing instruction sheet”, and “issue instruction sheet” are associated with “order process”, “inventory process”, and “issue instruction process”, respectively.
図2において、例えば、情報保持テーブルの番号1の「業務フロー」の下位に情報保持テーブルの番号2の「販売部門」が有ることは、リンクテーブルの番号1の関係リンクで表現されている。リンクテーブルは、番号1の関係リンクは、情報保持テーブルの番号1の「業務フロー」を始点として、情報保持テーブルの番号2の「販売部門」を終点とする下位構造を示す関係リンクであることを示している。
In FIG. 2, for example, the fact that the “sales department” with the
同様に、「受注処理」に「注文書」が関連付けられていることは、リンクテーブルの番号5の関係リンクで表現されている。リンクテーブルは、番号5の関係リンクは、情報保持テーブルの番号6の「注文書」を始点として、情報保持テーブルの番号3の「受注処理」を終点とする関連付けを示す関係リンクであることを示している。
Similarly, the fact that “order form” is associated with “order processing” is expressed by a relational link of
なお、関連付けを示す関係リンクは、リンクの方向に意味を持っていても、持っていなくても良い。例えば、モジュールからデータに向かう関連付を示す関係リンクは更新を表し、データからモジュールに向かう関連リンクは参照を表しても良い。一方、モジュールとデータ間の関連付を示す関係リンクは、モジュールがデータにアクセスすることを表すだけでも良い。 The relational link indicating the association may or may not have meaning in the direction of the link. For example, a relationship link indicating an association from the module to the data may represent an update, and a relationship link from the data to the module may represent a reference. On the other hand, the relational link indicating the association between the module and the data may only indicate that the module accesses the data.
ここで、情報保持テーブルの出リンクと入リンクの項目は、リンクテーブルを情報保持テーブル番号で検索して得ることが出来る情報であり、構造上は必須な項目ではない。しかし、実際の運用面において、情報保持部8に登録される情報量が膨大に増えて来ると、このリンクテーブルの検索時間が全体性能に大きな影響を及ぼすことが予想される。高速化の手段として、情報保持テーブルに出リンクと入リンクの情報を持つ事が有効となる。
Here, the items of the outgoing link and incoming link of the information holding table are information that can be obtained by searching the link table by the information holding table number, and are not essential items in structure. However, in actual operation, if the amount of information registered in the
ここで、ソフトウェア資産管理装置3の、情報入力部5と、情報分析部7は、論理回路で構成される。情報保持部8は、磁気記憶装置、または、半導体記憶装置で構成される。
Here, the
ソフトウェア資産管理装置3は、コンピュータ装置600により実現されても良い。図21は、コンピュータ装置600の構成図である。コンピュータ装置600は、バス640で相互に接続された、プロセッサ610、主記憶部630、および、外部記憶装置620を備える。プロセッサ610は、バス640を経由して、主記憶部630、および、外部記憶装置620に対してデータの読み書きを行う。また、プロセッサ610は、主記憶部630に格納されているプログラム650を実行する。なお、プログラム650は、当初外部記憶装置620に格納されており、コンピュータ装置600の初期設定時に、プロセッサ610が外部記憶装置620から主記憶部630にロードしても良い。
The software
ここで、主記憶部630は半導体メモリ装置である。外部記憶装置620はディスク装置、または、半導体記憶装置等の記憶装置である。
Here, the
プロセッサ610は、プログラム650を実行することにより、例えば、情報入力部5、および、情報分析部7として機能する。すなわち、プロセッサ610は、プログラム650を実行することにより、例えば、情報入力部5、および、情報分析部7が行う処理を実行する。主記憶部630または、外部記憶装置620は、情報保持部8として機能する。
The
<動作>
図4は、以降のソフトウェア資産管理装置3の動作説明において、しばしば、例として取り上げる販売システムの構造を示す図である。
<Operation>
FIG. 4 is a diagram showing the structure of a sales system often taken as an example in the following description of the operation of the software
販売システムは、受注処理、在庫管理処理、および、出庫処理の3つのサブシステムに分割され、各々、受注処理プログラム、在庫確認プログラム、および、出庫指示プログラムで実現されている。 The sales system is divided into three subsystems of order processing, inventory management processing, and delivery processing, and each is realized by an order processing program, an inventory confirmation program, and a delivery instruction program.
受注処理プログラムはモジュール1乃至3により構成されている。在庫確認プログラムはモジュール4乃至6により構成されている。出庫指示プログラムはモジュール7乃至9により構成されている。
The order processing program is composed of
モジュールはプログラムの、プログラムはサブシステムの、サブシステムは販売システムの下位構造である。この例のようなシステム、プログラム、モジュールは情報項目として、予め、情報保持テーブルに登録され、階層関係はリンクテーブルの下位構造を示す関係リンクとして登録されている。図5のA)の番号1乃至4、B)の番号1乃至3は、受注処理プログラムについての予め登録されている情報の例である。図6のA)の番号1乃至4、B)の番号1乃至3は、在庫確認プログラムについての予め登録されている情報の例である。図7のA)の番号1乃至4、B)の番号1乃至3は、出庫指示プログラムについての予め登録されている情報の例である。
Modules are programs, programs are subsystems, and subsystems are substructures of sales systems. The system, program, and module as in this example are registered in advance in the information holding table as information items, and the hierarchical relationship is registered as a relation link indicating the subordinate structure of the link table.
これらは、例えば、情報入力部5が、各モジュールのソースプログラムや販売システムの構造定義情報を読み込んで登録する。ソフトウェア資産管理装置3、あるいは、リポジトリの管理者が、人手でこの情報を登録しても良い。
For example, the
さらに、図4の販売システムにおいて、モジュール1は顧客マスタを、モジュール3は商品マスタと受注テーブルをデータとしてアクセスしている。モジュール4は受注テーブルを、モジュール5は在庫テーブルをアクセスしている。モジュール7は商品マスタと受注テーブルを、モジュール9は在庫テーブルをアクセスしている。
Further, in the sales system of FIG. 4,
これらのデータやアクセス関係は、アクセス種別入力部51が、以降に説明する処理により登録する。なお、商品マスタなどのデータは、予め、例えば、情報入力部5が、各データの定義情報を読み込んで、情報項目として、情報保持テーブルに登録していても良い。
These data and access relationships are registered by the access
<処理フロー1>
アクセス種別入力部51は、例えば、リポジトリに格納されているモジュールのソースプログラムを解析し、アクセスするデータとアクセス種別を情報保持部8に登録する。アクセス種別入力部51は、次の判断条件に従ってアクセスする種別を登録する。
・アクセス種別入力部51は、ファイルのCREATEやレコードのWRITEなど、新規にデータ(ファイル、または、レコード)を作成する処理のソースコードを検出すると、アクセス種別「作成(略称はC)」の関連付けを示す関係リンクを登録する。
・アクセス種別入力部51は、レコードのREADなど、データの読み込みを行う処理のソースコードを検出すると、アクセス種別「参照(略称はR)」の関連付けを示す関係リンクを登録する。
・アクセス種別入力部51は、レコードのUPDATEやREWRITEなど、データを更新する処理のソースコードを検出すると、アクセス種別「更新(略称はU)」の関連付けを示す関係リンクを登録する。REWRITEの場合は、READも行うため、「参照」の関連付けを示す関係リンクも登録される。
・アクセス種別入力部51は、ファイルのELASEやレコードのDELETEなど、データ(ファイル、または、レコード)を削除する処理のソースコードを検出すると、アクセス種別「削除(略称はD)」の関連付けを示す関係リンクを登録する。
・アクセス種別入力部51は、ファイルやレコードの定義のみ行っており、データへのアクセスは行っていない処理のソースコードを検出すると、アクセス種別「定義のみ(略称はX)」の関連付けを示す関係リンクを登録する。
<
The access
When the access
When the access
When the access
When the access
The access
アクセス種別入力部51は、具体的には、ソースプログラムからデータアクセスを検出すると、アクセスごとに、対象データと関連付けを示す関係リンクを情報保持テーブルとリンクテーブルに登録し、アクセス種別を当該関係リンクに関連付けてアクセス種別テーブルに登録する。
Specifically, when the access
例えば、アクセス種別入力部51は、モジュール1のソースコードから顧客マスタへの参照を検出すると、まず、図5の情報保持テーブルに情報項目番号5の顧客マスタを登録する。次いで、アクセス種別入力部51は、図5のリンクテーブルに番号4の関連付けを示す関係リンクを登録する。さらに、アクセス種別入力部51は、図5のリンクテーブルと情報保持テーブルに当該関係リンクが、情報項目番号2のモジュール1と情報項目番号5の顧客マスタ間の関係リンクであることを登録する。最後に、アクセス種別入力部51は、アクセス種別テーブルに、番号4の関係リンクに関連付けてアクセス種別が参照であることを登録する。
For example, when the access
さらに、例えば、アクセス種別入力部51は、モジュール5のソースコードから在庫テーブルへの参照を検出すると、まず、図6の情報保持テーブルに情報項目番号6の在庫テーブルを登録する。次いで、アクセス種別入力部51は、図6のリンクテーブルに番号5の関連付けを示す関係リンクを登録する。さらに、アクセス種別入力部51は、図6のリンクテーブルと情報保持テーブルに当該関係リンクが、情報項目番号3のモジュール5と情報項目番号6の在庫テーブル間の関係リンクであることを登録する。最後に、アクセス種別入力部51は、アクセス種別テーブルに、番号5の関係リンクに関連付けてアクセス種別が参照であることを登録する。
Further, for example, when the access
このように、アクセス種別入力部51は、図4の販売システムの全てのモジュールからデータアクセスを検出して、データ、関連付けを示す関係リンク、および、アクセス種別を情報保持テーブル、リンクテーブル、および、アクセス種別テーブルに登録する。図5のA)、B)、C)は、受注処理プログラムについてのアクセス種別入力部51の登録後のデータ例である。図6のA)、B)、C)は、在庫確認プログラムについてのアクセス種別入力部51の登録後のデータ例である。図7のA)、B)、C)は、出庫指示プログラムについてのアクセス種別入力部51による登録処理後のデータ例である。なお、図5、図6,および、図7は、いずれも、販売システム全体についてのテーブルの一部を抜き出して示している。
As described above, the access
<処理フロー2>
情報分析部7における影響範囲分析部71は、まず、アクセス種別入力部51による登録処理後の情報保持テーブル、リンクテーブル、アクセス種別テーブルを検索し、プログラムとデータとの間の関係情報を解析し、プログラム-データ関係表を作成する。
<
The influence
図13は、プログラム-データ関係表の構造を示す。プログラム-データ関係表は、データ対応に、各モジュールが当該データにアクセスするのか否か、アクセスする場合のアクセス種別は何かを示すマトリックスである。すなわち、影響範囲分析部71は、例えば、図4に示した3つのプログラムについて、図5乃至7のデータから図13のデータを作成する。以下、その手順を説明する。
FIG. 13 shows the structure of the program-data relationship table. The program-data relationship table is a matrix indicating whether each module accesses the data in correspondence with the data, and what kind of access is used when accessing the data. That is, for example, the influence
ステップ1:影響範囲分析部71は、各プログラムの情報保持テーブルより、利用しているモジュールの一覧を横軸に、利用しているデータの一覧を縦軸に抽出してマトリクスを作成する。図8は、図5のA)、図6のA)、図7のA)から抽出したマトリクスの例を示す。
Step 1: The scope of
ステップ2:影響範囲分析部71は、マトリクスの一番上に登録されているデータを選択する。図8の例では、影響範囲分析部71は、顧客マスタを選択する。
Step 2: The influence
ステップ3:影響範囲分析部71は、選択したデータに関係する関係リンクと、当該関連リンクが有るモジュールと、を各プログラムの情報保持テーブルとリンクテーブルから抽出する。図9は、図8における「顧客マスタ」に関係する番号4の関係リンクと、当該関係リンクが有る受注処理プログラムのモジュール1を、図5の情報保持テーブルとリンクテーブルから抽出する様子を示している。
Step 3: The influence
ステップ4:影響範囲分析部71は、抽出した関係リンクのアクセス種別をアクセス種別テーブルから取得する。図10は、図9で抽出した番号4の関係リンクのアクセス種別「参照」を図5のアクセス種別テーブルから取得する様子を示している。
Step 4: The influence
ステップ5:影響範囲分析部71は、取り出したアクセス種別を、マトリクスにおける選択したデータと抽出したモジュールとの交点のセルに登録する。図11は、取り出したアクセス種別「参照(R)」を、マトリクスにおける選択したデータ「顧客マスタ」と抽出したモジュール「モジュール1」との交点のセルに登録した後の様子を示している。
この時、複数のアクセス種別を取得した場合は、影響範囲分析部71は、取得したアクセス種別を全て登録する。例えば、「作成」と「参照」を取得した場合は、影響範囲分析部71は、”CR”を登録する。
Step 5: The influence
At this time, when a plurality of access types are acquired, the influence
ステップ6:影響範囲分析部71は、マトリクスに登録されているデータを順次選択し、ステップ3乃至ステップ5を順次繰り返す。図12は、アクセス種別「R」を、マトリクスにおける、選択したデータ「商品マスタ」と抽出したモジュール「モジュール3」との交点、および、選択したデータ「商品マスタ」と抽出したモジュール「モジュール7」との交点の両セルに登録した後の様子を示している。図13は、残りの受注テーブルと在庫テーブルについても、アクセス種別の登録が完了した様子を示している。
Step 6: The influence
上記の手順により、影響範囲分析部71は、プログラム-データ関係表を作成する。
According to the above procedure, the influence
影響範囲分析部71は、プログラム-データ関係表の行を検索することで、特定のデータに関係リンクのあるモジュールを、別のプログラム間でも把握することが可能となる。
The range-of-
なお、ソフトウェア資産管理装置3、あるいは、リポジトリの管理者が、人手で、プログラム-データ関係表を登録しても良い。
The software
<処理フロー3>
影響範囲分析部71は、次に、アクセス種別の変更を伴わない修正による影響範囲を分析したいモジュールに対して、下記の手順で影響一覧表を作成する。
<
Next, the influence
まず、利用者が、影響範囲を分析したいモジュールを指定する。例えば、利用者は、モジュール3をアクセス種別の変更が無い範囲で修正することを指定する。
First, the user designates a module for which the influence range is to be analyzed. For example, the user specifies that the
影響範囲分析部71は、指定されたモジュール(例えば、モジュール3)と関係リンクがあるデータの一覧を、図13のマトリクスの当該モジュールの列を検索することで特定し、関係リンクのないデータの行を削除する。例えば、図13のモジュール3の列から、影響範囲分析部71は、関係リンクが有る商品マスタと受注テーブルを特定し、関係リンクのない顧客マスタと在庫テーブルの行を削除する。
The influence
また、「モジュール3」と関係リンクが有る各データとの関係情報を確認し、アクセス種別が参照(R)、または、定義のみ(X)である場合は、当該データ(商品マスタ)の行も削除する。指定されたモジュールが、当該データを参照または定義だけをしているのであれば、アクセス種別を変えない限り当該モジュールの修正の影響が他のモジュールに及ぶことが無いためである。
In addition, the relation information between “
図14は、この様子を示す。図14において、削除された行は、網掛けされている。 FIG. 14 shows this state. In FIG. 14, the deleted line is shaded.
次に影響範囲分析部71は、指定されたモジュール(モジュール3)と関係リンクのあるデータ(受注テーブル)と関係があるモジュール(モジュール4、7)を、当該データの行を検索することで特定する。次いで、影響範囲分析部71は、関係リンクのないモジュールの列を削除する。この時、影響範囲分析部71は、関係情報が「定義のみ(X)」の場合は、「定義のみ(X)」の情報しか存在しないモジュールの列も削除する。このようなモジュールは、データを利用しているモジュールではないためである。図15は、この様子を示す。図15において、削除された列は、網掛けされている。
Next, the influence
削除の結果残ったマトリクス(図16)から、「モジュール3」の修正に影響があるモジュール(モジュール4と7)の影響一覧表を作成できる。図17は、影響一覧表を示す。
From the matrix left after the deletion (FIG. 16), it is possible to create an influence list of modules (
<処理フロー4>
影響範囲分析部71は、アクセス種別の変更を伴う修正を行う予定のモジュールに対して、下記の手順で影響が発生する可能性のあるモジュールをシミュレーションし、影響一覧表を作成する。
<
The influence
販売システムの受注処理において、受注テーブルのアクセス種別を変更する修正が発生した場合に、影響範囲分析部71が影響のある処理(機能)、および、モジュールを特定する例を説明する。
In the order processing of the sales system, an example will be described in which the influence
本処理は、修正を行うモジュールに対して、処理フロー2で作成したプログラム-データ関係表を基に、図20に示す判断を行って、影響一覧表を作成して出力する。
In this process, the module shown in FIG. 20 is subjected to the determination shown in FIG. 20 based on the program-data relation table created in the
ステップ1:利用者が、修正予定のモジュール、および、修正によりアクセス種別が変更となるデータを指定する。利用者は、例えば、モジュール1を修正し、在庫テーブルへのアクセス種別が変更になる旨の指定を行う。
Step 1: A user designates a module to be modified and data whose access type is changed by the modification. For example, the user corrects the
ステップ2:影響範囲分析部71は、図13のプログラム-データ関係表から指定されたデータ(在庫テーブル)の行を抽出する。図18は、この様子を示す。図18において、抽出されなかった行は、網掛けされている。
Step 2: The influence
次に影響範囲分析部71は、指定されたデータ(在庫テーブル)と関係があるモジュールをマトリクスの指定されたデータの行を探索ことで特定し、関係が無いモジュールの列を削除する。この時、関係情報が「定義のみ(X)」の場合は、当該列のモジュールも削除する。当該モジュールは、データを利用しているモジュールではないためである。さらに、影響範囲分析部71は、修正対象モジュールの列も削除する。図19は、この様子を示す。図19において、削除された列は、網掛けされている。
Next, the influence
ステップ3:影響範囲分析部71は、アクセス種別の変更が、他のモジュールに影響を与える可能性が有るかどうかを、図20の判断マトリクスにしたがって判断する。判断マトリクスは、修正前のアクセス種別を行、修正後のアクセス種別を列とするマトリクスで、マトリクスの各セルは、アクセス種別の変更により他のモジュールに影響を与える可能性の有無が記憶されている。
Step 3: The influence
影響範囲分析部71は、判断マトリクスに従って、作成、消去、更新の何れかの追加、または、削除が有れば他のモジュールに影響を与える可能性が有る一方、参照、定義のみの追加、または、削除だけでは、他のモジュールに影響を与える可能性が無いと判断する。指定されたモジュールにデータの参照、定義のみが追加、または、削除されても、他のモジュールは影響されないからである。
According to the decision matrix, the influence
指定されたモジュール(モジュール1)の修正が、判断マトリクスの「無」に該当するものであれば、影響範囲分析部71は影響一覧として何も出力しない。一方、指定されたモジュール(モジュール1)の修正が、判断マトリクスの「有」に該当するものであれば、影響範囲分析部71は、図19のテーブルから残っているモジュール(モジュール5と9)を、指定されたモジュール(モジュール1)の修正における影響一覧表として出力する。
If the modification of the specified module (module 1) corresponds to “none” in the determination matrix, the influence
<処理フロー5>
情報分析部7における上位下位関係分析部72は、処理フロー3または処理フロー4で出力した影響一覧表に含まれるモジュールの関連リンクの検索を行い、影響のある上位構造を取得する。
<
The higher-order / lower-order
上位下位関係分析部72は、影響一覧表に含まれるモジュールから出発して、リンクテーブルの下位構造を示す関係リンクを逆方向に辿ることで、順次、上位構造を取得すれば良い。ここで、下位構造を示す関係リンクを逆方向に辿るとは、リンクテーブルから、下位構造を終点とする下位構造を示す関係リンクを特定し、当該関係リンクの始点となる上位構造に至るという処理を順番に繰り返すことを意味する。なお、業務システムの階層構造は木構造とは限らない。或る下位構造を終点とする関係リンクは複数存在する場合が有り、この場合、上位下位関係分析部72は、その複数の関係リンク系列を探索する。
The upper / lower
上位下位関係分析部72は、以下のように本処理を実行しても良い。以下は、具体例として処理フロー3で求めた受注テーブルに関係のあるモジュール7の上位構造を取得する処理を示す。
The upper / lower
ステップ1:この処理では、モジュールとデータ間の関係については探査する必要はない。そのため、上位下位関係分析部72は、関連付けを示す関係リンクを検索対象外とする。
Step 1: In this process, there is no need to explore the relationship between modules and data. Therefore, the upper / lower
ステップ2:モジュール8は、出庫指示プログラムには関係があるが、モジュール7には関係がない。そのため、上位下位関係分析部72は、関係の向きが下位方向の下位構造を示す関係リンクも検索対象外とする。
Step 2:
ステップ3:上記2つを検索対象外として残りすべての関係リンクを辿って、上位下位関係分析部72は、モジュール7に影響のある上位構造(出庫指示プログラム、出庫処理、販売システム)を取得する。
Step 3: The above-mentioned two are excluded from the search target and all the remaining relation links are traced, and the upper-lower
ステップ4:同様に、上位下位関係分析部72は、モジュール3に影響のある上位構造(受注処理プログラム、受注処理、販売システム)、並びに、モジュール4に影響のある上位構造(在庫管理プログラム、在庫管理処理、販売システム)を取得する。
Step 4: Similarly, the upper / lower
なお、仕様書や階層構造情報の欠損により、販売システムと在庫管理処理、販売システムと出庫処理との関係が辿れない場合であっても、モジュール間のデータ共用関係を基にした本処理フローに基づいて、販売システムと、在庫管理処理と出庫処理との関係を把握することが可能となる。 Even if the relationship between the sales system and the inventory management process, or the sales system and the issue process cannot be traced due to missing specifications or hierarchical structure information, this processing flow based on the data sharing relationship between modules Based on this, it becomes possible to grasp the relationship between the sales system and the inventory management process and the delivery process.
ここで、上位下位関係分析部72は、ダイクストラ法など一般的に知られる経路探索手法を用いて、上記ステップ3における「残りすべての関係リンクを辿る」処理を実行しても良い。
Here, the upper / lower
また、上記例では、上位下位関係分析部72は、機能間までの関係を探索しているが、リポジトリに存在するすべての関係リンクを辿っても良い。これにより、上位下位関係分析部72は、システム間の影響範囲を特定することも可能となる。
In the above example, the upper / lower
<効果>
本実施の形態のソフトウェア資産管理装置3は、ソフトウェアの改造/修正に伴う影響範囲を特定する際に、適切な範囲に絞りこむことが可能である。その理由は、各モジュールのデータアクセスの対象データおよびアクセス種別に基づいて、影響範囲分析部71が或るモジュールの改造/修正の影響を受ける可能性のある他のモジュールを絞り込んで、過剰に広い影響範囲情報を出力しないからである。すなわち、本実施の形態のソフトウェア資産管理装置3は、プログラム間同士に関係を持たない場合でも、データに着目することでプログラム間の影響の有無を判定し、影響範囲を特定する。
<Effect>
The software
さらに、本実施の形態のソフトウェア資産管理装置3は、仕様書が欠損している場合でも、データを介したプログラム間の影響を特定することにより、プログラムとデータとの関係情報からシステム間、機能間の影響の抽出が可能である。その理由は、影響範囲分析部71がデータを介したプログラム間の影響を特定し、その結果を基に、上位下位関係分析部72が、プログラムの上位構成要素を特定するからである。すなわち、本実施の形態のソフトウェア資産管理装置3は、プログラムに対して、上位情報を探索することができ、システム間、機能間の影響の有無の確認が可能である。
Furthermore, the software
さらに、本実施の形態のソフトウェア資産管理装置3は、アクセス種別の変更を伴う修正前後での影響範囲を特定することが可能である。その理由は、影響範囲分析部71がプログラムの修正ケースをシミュレーションするからである。
Furthermore, the software
<変形例>
影響範囲分析部71は、プログラム間の影響の有無をデータへのアクセス種別から解析を行う部分において、アクセス種別に影響度の重みづけを行うことで、影響に強弱をつけても良い。さらに、影響範囲分析部71は、影響の強弱によりデータおよびソースプログラム間の親密度を評価したり、影響度の出力範囲を指定することで影響範囲の絞り込みを行ったりしても良い。
<Modification>
The influence
さらに、影響範囲分析部71は、データに対するプログラムとの関係リンクの数を抽出し、データの修正によるリスクを評価しても良い。
Further, the influence
<第2の実施形態>
図22は、第2の実施の形態に係るソフトウェア資産管理装置3の構造を示す図である。
<Second Embodiment>
FIG. 22 is a diagram illustrating the structure of the software
本実施の形態に係るソフトウェア資産管理装置3は、情報保持部8に接続されている。情報保持部8は、業務システムを構成するモジュールに関連付けて、モジュールがアクセスをするデータの識別子と、アクセスが作成、消去、更新、または、参照の何れであるかを示すアクセス種別と、を記憶する。
The software
そして、本実施の形態に係るソフトウェア資産管理装置3は、影響範囲分析部71を備える。影響範囲分析部71は、指定されたモジュールがアクセスするデータのうち、作成、消去、または、更新するものを選択し、選択したデータにアクセスするモジュールの識別子を情報保持手段から抽出して出力する。
The software
本実施の形態のソフトウェア資産管理装置3は、ソフトウェアの改造/修正に伴う影響範囲を特定する際に、適切な範囲に絞りこむことが可能である。その理由は、各モジュールのデータアクセスの対象データおよびアクセス種別に基づいて、影響範囲分析部71が或るモジュールの改造/修正の影響を受ける可能性のある他のモジュールを絞り込んで、過剰に広い影響範囲情報を出力しないからである。
The software
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。 While the present invention has been described with reference to the embodiments, the present invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.
本発明は、フトウェア企画・開発フェーズにおける設計、製造、並びに、ソフトウェア運用・保守フェーズにおける改造支援、障害分析支援に利用できる。さらに、本発明は、上記フェーズを通した、影響分析支援、作業工数の見積支援にも利用できる。 The present invention can be used for design and manufacturing in the software planning / development phase, remodeling support and failure analysis support in the software operation / maintenance phase. Furthermore, the present invention can also be used for impact analysis support and work man-hour estimation support through the above phases.
1 入力装置
2 出力装置
3 ソフトウェア資産管理装置
5 情報入力部
7 情報分析部
8 情報保持部
10 ソフトウェア資産管理システム
51 アクセス種別入力部
71 影響範囲分析部
72 上位下位関係分析部
600 コンピュータ装置
610 プロセッサ
620 外部記憶装置
630 主記憶部
640 バス
650 プログラム
DESCRIPTION OF
Claims (10)
指定された前記モジュールがアクセスする前記データのうち、作成、消去、または、更新するものを選択し、選択した前記データにアクセスする前記モジュールの識別子を前記情報保持手段から抽出して出力する影響範囲分析手段、を備えるソフトウェア資産管理装置。 Information holding means for storing an identifier of data accessed by the module and an access type indicating whether the access is created, deleted, updated, or referenced in association with a module constituting a business system Connected to
The range of influence in which the data to be created, deleted, or updated is selected from the data accessed by the specified module, and the identifier of the module that accesses the selected data is extracted from the information holding means and output. A software asset management device comprising an analysis means.
前記階層関係情報から、前記響範囲分析手段が抽出した前記モジュールの前記階層構造における上位の前記構成要素を抽出して出力する上位下位関係分析手段を、さらに備える請求項1乃至請求項2の何れか1項のソフトウェア資産管理装置。 The information holding means further stores hierarchical relationship information indicating a hierarchical structure of components from the business system to the module,
3. The high-order / low-order relationship analysis means for extracting and outputting the high-order component in the hierarchical structure of the module extracted by the sound range analysis means from the hierarchy relation information. 2. The software asset management device according to item 1.
請求項1乃至請求項4の何れか1項のソフトウェア資産管理装置と、を包含するソフトウェア資産管理システム The information holding means;
A software asset management system comprising the software asset management device according to any one of claims 1 to 4.
指定された前記モジュールがアクセスする前記データのうち、作成、消去、または、更新するものを選択し、選択した前記データにアクセスする前記モジュールの識別子を前記情報保持手段から抽出して出力するソフトウェア資産管理方法。 Information holding means for storing an identifier of data accessed by the module and an access type indicating whether the access is created, deleted, updated, or referenced in association with a module constituting a business system See
Software assets for selecting the data to be created, deleted or updated from the data accessed by the specified module, and extracting and outputting the identifier of the module accessing the selected data from the information holding means Management method.
前記階層関係情報から、前記響範囲分析手段が抽出した前記モジュールの前記階層構造における上位の前記構成要素を抽出して出力する請求項6乃至請求項7の何れか1項のソフトウェア資産管理方法。 The information holding means further stores hierarchical relationship information indicating a hierarchical structure of components from the business system to the module,
The software asset management method according to any one of claims 6 to 7, wherein the higher-order component in the hierarchical structure of the module extracted by the sound range analysis means is extracted from the hierarchical relationship information and output.
指定された前記モジュールがアクセスする前記データのうち、作成、消去、または、更新するものを選択し、選択した前記データにアクセスする前記モジュールの識別子を前記情報保持手段から抽出して出力する影響範囲分析処理を実行させる、ソフトウェア資産管理プログラム。 Information holding means for storing an identifier of data accessed by the module and an access type indicating whether the access is created, deleted, updated, or referenced in association with a module constituting a business system On a computer connected to
The range of influence in which the data to be created, deleted, or updated is selected from the data accessed by the specified module, and the identifier of the module that accesses the selected data is extracted from the information holding means and output. Software asset management program that executes analysis processing.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016160000A JP6737063B2 (en) | 2016-08-17 | 2016-08-17 | Software asset management device, software asset management method, and software asset management program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016160000A JP6737063B2 (en) | 2016-08-17 | 2016-08-17 | Software asset management device, software asset management method, and software asset management program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018028776A true JP2018028776A (en) | 2018-02-22 |
JP6737063B2 JP6737063B2 (en) | 2020-08-05 |
Family
ID=61249126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016160000A Active JP6737063B2 (en) | 2016-08-17 | 2016-08-17 | Software asset management device, software asset management method, and software asset management program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6737063B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019215686A (en) * | 2018-06-12 | 2019-12-19 | 株式会社富士通アドバンストエンジニアリング | Generation program, generation method and information processing device |
JP7356013B2 (en) | 2019-10-21 | 2023-10-04 | 富士通株式会社 | Information presentation program, information presentation device, and information presentation method |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04260925A (en) * | 1990-10-17 | 1992-09-16 | Hitachi Ltd | Design information extraction system based upon data center approach |
JPH10340188A (en) * | 1997-06-06 | 1998-12-22 | Nec Corp | Automatic preparing device of file updated item related graphic |
US20060053414A1 (en) * | 2004-09-09 | 2006-03-09 | International Business Machines Corporation | Generating sequence diagrams using call trees |
JP2016076080A (en) * | 2014-10-06 | 2016-05-12 | 三菱電機株式会社 | Source code analyzing apparatus, source code analyzing method, and program |
-
2016
- 2016-08-17 JP JP2016160000A patent/JP6737063B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04260925A (en) * | 1990-10-17 | 1992-09-16 | Hitachi Ltd | Design information extraction system based upon data center approach |
JPH10340188A (en) * | 1997-06-06 | 1998-12-22 | Nec Corp | Automatic preparing device of file updated item related graphic |
US20060053414A1 (en) * | 2004-09-09 | 2006-03-09 | International Business Machines Corporation | Generating sequence diagrams using call trees |
JP2016076080A (en) * | 2014-10-06 | 2016-05-12 | 三菱電機株式会社 | Source code analyzing apparatus, source code analyzing method, and program |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019215686A (en) * | 2018-06-12 | 2019-12-19 | 株式会社富士通アドバンストエンジニアリング | Generation program, generation method and information processing device |
JP7155636B2 (en) | 2018-06-12 | 2022-10-19 | 富士通株式会社 | Generation program, generation method and information processing device |
JP7356013B2 (en) | 2019-10-21 | 2023-10-04 | 富士通株式会社 | Information presentation program, information presentation device, and information presentation method |
Also Published As
Publication number | Publication date |
---|---|
JP6737063B2 (en) | 2020-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11163731B1 (en) | Autobuild log anomaly detection methods and systems | |
US7886028B2 (en) | Method and system for system migration | |
US20240069967A1 (en) | Pipeline task verification for a data processing platform | |
US20130185086A1 (en) | Generation of sales leads using customer problem reports | |
US8965797B2 (en) | Explosions of bill-of-materials lists | |
WO2016063502A1 (en) | Knowledge management device, knowledge management method, and program recording medium | |
JP6048957B2 (en) | Information processing apparatus, program, and information processing method | |
US10241899B2 (en) | Test input information search device and method | |
US20190220549A1 (en) | Analysis model preparing system, programming apparatus, and analysis model preparing method | |
JP6737063B2 (en) | Software asset management device, software asset management method, and software asset management program | |
JP2005122560A (en) | Program for detecting deadlock beforehand | |
US8392892B2 (en) | Method and apparatus for analyzing application | |
US11029923B2 (en) | Technical building block | |
CN110019182B (en) | Data tracing method and device | |
US8892951B2 (en) | Fault localization for data-centric programs | |
US20220374340A1 (en) | Techniques for decoupled management of software test execution planning and corresponding software test execution runs | |
US20220374341A1 (en) | Techniques for decoupled management of software test execution planning and corresponding software test execution runs | |
US20220374342A1 (en) | Techniques for decoupled management of software test execution planning and corresponding software test execution runs | |
JP6336919B2 (en) | Source code review method and system | |
JP6695847B2 (en) | Software parts management system, computer | |
JP2020038482A (en) | Program verification program, program verification method and program verification device | |
JP5970882B2 (en) | Configuration information management device, configuration information management program | |
US20240104462A1 (en) | Supply chain management system and supply chain management method | |
US20230143297A1 (en) | Production knowledge management system, production knowledge management method, and production knowledge management program | |
CN106293897A (en) | Assembly automatic dispatching system |
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 |