図面 (/)

技術 分析支援方法、分析支援プログラム、および情報処理装置

出願人 富士通株式会社
発明者 矢野啓介松尾昭彦
出願日 2016年6月21日 (5年6ヶ月経過) 出願番号 2016-123075
公開日 2017年12月28日 (4年0ヶ月経過) 公開番号 2017-228048
状態 特許登録済
技術分野 ストアードプログラム
主要キーワード 判定比率 基本指標 ログパターン 設計当初 比較結果情報 設計意図 分析支援プログラム 分析支援システム
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2017年12月28日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題

ソフトウェアにおけるデータの使われ方の実態を把握可能にすること。

解決手段

情報処理装置101は、ソフトウェアSW内のプログラム間依存関係およびプログラム/データ間の依存関係に基づいて、ソフトウェアSW内のプログラムおよび当該プログラムからアクセスされるデータを含む要素群クラスタC1〜Cnに分割する。情報処理装置101は、クラスタCi内のデータが、クラスタCi内外のプログラムからどれだけ読み書きされているかを示す基本指標を算出する。情報処理装置101は、算出したクラスタCi内のデータの基本指標に基づいて、当該データの特徴を表す指標値を算出する。

概要

背景

ソフトウェアを開発・改良・保守するためには、ソフトウェアの現状がどうなっているかを理解することが重要である。このような活動を支援するために、例えば、ソフトウェアを構成するソースファイル(あるいは、クラスや関数など)間の依存関係に基づいてクラスタリング技術を適用し、依存関係の密なかたまり発見して理解に役立てる技術がある。

先行技術としては、例えば、プログラム内部で使用している関数とグローバル変数、およびグローバル変数に格納される全データを抽出し、ソフトウェア部品内部のグローバル変数の使用データ比率を算出し、使用データ比率が予め設定された判定比率以上かどうかを判定して、ソフトウェア部品内部のグローバル変数の用途を判定するものがある。

概要

ソフトウェアにおけるデータの使われ方の実態を把握可能にすること。情報処理装置101は、ソフトウェアSW内のプログラム間の依存関係およびプログラム/データ間の依存関係に基づいて、ソフトウェアSW内のプログラムおよび当該プログラムからアクセスされるデータを含む要素群クラスタC1〜Cnに分割する。情報処理装置101は、クラスタCi内のデータが、クラスタCi内外のプログラムからどれだけ読み書きされているかを示す基本指標を算出する。情報処理装置101は、算出したクラスタCi内のデータの基本指標に基づいて、当該データの特徴を表す指標値を算出する。

目的

本発明は、ソフトウェアにおけるデータの使われ方の実態を把握可能にすることを目的とする

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

コンピュータが、ソフトウェア内のプログラム間依存関係およびプログラム/データ間の依存関係に基づいて、前記ソフトウェア内のプログラムおよび当該プログラムからアクセスされるデータを含む要素群を複数のクラスタに分割し、分割した前記複数のクラスタのいずれかのクラスタ内のデータが、前記クラスタ内のプログラムからアクセスされる回数と、前記クラスタ外のプログラムからアクセスされる回数とに基づいて、前記データの特徴を表す指標値を算出する、処理を実行することを特徴とする分析支援方法

請求項2

前記算出する処理は、前記クラスタ内のデータが、前記クラスタ外のプログラムから読み出される回数と、前記クラスタ外のプログラムから書き込まれる回数とに基づいて、前記ソフトウェア全体から読み書きされるデータである度合いを示す指標値を算出する、ことを特徴とする請求項1に記載の分析支援方法。

請求項3

前記算出する処理は、前記クラスタ内のデータが、前記クラスタ外のプログラムから読み書きされていない場合は、特定の機能に専用のデータであることを示す指標値を算出する、ことを特徴とする請求項1または2に記載の分析支援方法。

請求項4

前記算出する処理は、前記クラスタ内のデータが、前記クラスタ外のプログラムから書き込まれていない場合は、前記クラスタ外のプログラムから読み出される回数に基づいて、複数の機能から読み出され、特定のプログラムのみから書き込まれるデータである度合いを示す指標値を算出する、ことを特徴とする請求項1〜3のいずれか一つに記載の分析支援方法。

請求項5

前記算出する処理は、前記クラスタ内のデータが、前記クラスタ外のプログラムから読み書きされておらず、かつ、前記クラスタ内のプログラムから書き込まれない場合には、前記クラスタ内のプログラムから読み出される回数に基づいて、複数の機能から読み出され、特定のプログラムのみから書き込まれるデータである度合いを示す指標値を算出する、ことを特徴とする請求項1〜4のいずれか一つに記載の分析支援方法。

請求項6

前記算出する処理は、前記クラスタ内のデータが、前記クラスタ内外のプログラムから読み出される回数に対する、前記クラスタ内外のプログラムから書き込まれる回数の割合に基づいて、複数の機能から書き込まれ、特定の機能のみから読み出される、あるいは、全く読み出されないデータである度合いを示す指標値を算出する、ことを特徴とする請求項1〜5のいずれか一つに記載の分析支援方法。

請求項7

前記算出する処理は、前記クラスタ内のデータが、前記クラスタ外のプログラムから読み書きされる回数に対する、前記クラスタ内外のプログラムから読み書きされる回数の割合に基づいて、特定の機能に専用のデータであることから逸脱している度合いを示す指標値を算出する、ことを特徴とする請求項1〜6のいずれか一つに記載の分析支援方法。

請求項8

前記算出する処理は、前記クラスタ内のデータが、前記クラスタ外のプログラムから書き込まれる回数に対する、前記クラスタ外のプログラムから読み書きされる回数の割合に基づいて、複数の機能から読み出され、特定のプログラムのみから書き込まれるデータであることから逸脱している度合いを示す指標値を算出する、ことを特徴とする請求項1〜6のいずれか一つに記載の分析支援方法。

請求項9

前記コンピュータが、前記クラスタ内のデータの識別情報対応付けて、算出した前記指標値を出力する、処理を実行することを特徴とする請求項1〜8のいずれか一つに記載の分析支援方法。

請求項10

前記コンピュータが、算出した前記指標値に基づいて、前記データの分類を決定し、決定した前記データの分類と、前記データの既知の分類とを比較し、前記データの識別情報と対応付けて、比較した比較結果を出力する、処理を実行することを特徴とする請求項1〜9のいずれか一つに記載の分析支援方法。

請求項11

コンピュータに、ソフトウェア内のプログラム間の依存関係およびプログラム/データ間の依存関係に基づいて、前記ソフトウェア内のプログラムおよび当該プログラムからアクセスされるデータを含む要素群を複数のクラスタに分割し、分割した前記複数のクラスタのいずれかのクラスタ内のデータが、前記クラスタ内のプログラムからアクセスされる回数と、前記クラスタ外のプログラムからアクセスされる回数とに基づいて、前記データの特徴を表す指標値を算出する、処理を実行させることを特徴とする分析支援プログラム

請求項12

ソフトウェア内のプログラム間の依存関係およびプログラム/データ間の依存関係に基づいて、前記ソフトウェア内のプログラムおよび当該プログラムからアクセスされるデータを含む要素群を複数のクラスタに分割し、分割した前記複数のクラスタのいずれかのクラスタ内のデータが、前記クラスタ内のプログラムからアクセスされる回数と、前記クラスタ外のプログラムからアクセスされる回数とに基づいて、前記データの特徴を表す指標値を算出する、制御部を有することを特徴とする情報処理装置

技術分野

0001

本発明は、分析支援方法分析支援プログラム、および情報処理装置に関する。

背景技術

0002

ソフトウェアを開発・改良・保守するためには、ソフトウェアの現状がどうなっているかを理解することが重要である。このような活動を支援するために、例えば、ソフトウェアを構成するソースファイル(あるいは、クラスや関数など)間の依存関係に基づいてクラスタリング技術を適用し、依存関係の密なかたまり発見して理解に役立てる技術がある。

0003

先行技術としては、例えば、プログラム内部で使用している関数とグローバル変数、およびグローバル変数に格納される全データを抽出し、ソフトウェア部品内部のグローバル変数の使用データ比率を算出し、使用データ比率が予め設定された判定比率以上かどうかを判定して、ソフトウェア部品内部のグローバル変数の用途を判定するものがある。

先行技術

0004

特開2010−231513号公報

発明が解決しようとする課題

0005

しかしながら、従来技術では、ソフトウェアにおいてデータがどのように使われているかの実態を把握することが難しい。データがどのように使われているかの実態を把握できなければ、ソフトウェアの現状を理解することが困難なものとなる場合がある。

0006

一つの側面では、本発明は、ソフトウェアにおけるデータの使われ方の実態を把握可能にすることを目的とする。

課題を解決するための手段

0007

本発明の一態様によれば、ソフトウェア内のプログラム間の依存関係およびプログラム/データ間の依存関係に基づいて、前記ソフトウェア内のプログラムおよび当該プログラムからアクセスされるデータを含む要素群を複数のクラスタに分割し、分割した前記複数のクラスタのいずれかのクラスタ内のデータが、前記クラスタ内のプログラムからアクセスされる回数と、前記クラスタ外のプログラムからアクセスされる回数とに基づいて、前記データの特徴を表す指標値を算出する分析支援方法、分析支援プログラム、および情報処理装置が提案される。

発明の効果

0008

本発明の一側面によれば、ソフトウェアにおけるデータの使われ方の実態を把握可能にすることができる。

図面の簡単な説明

0009

図1は、実施の形態1にかかる分析支援システム100のシステム構成例を示す説明図である。
図2は、情報処理装置101のハードウェア構成例を示すブロック図である。
図3は、ソフトウェアSWのクラスタリング結果の一例を地図形式で示す説明図(その1)である。
図4は、依存関係情報の具体例を示す説明図である。
図5は、クラスタ情報の具体例を示す説明図である。
図6は、実施の形態1にかかる情報処理装置101の機能的構成例を示すブロック図である。
図7は、関連テーブル700の記憶内容の一例を示す説明図である。
図8は、基本指標テーブル800の記憶内容の一例を示す説明図(その1)である。
図9は、応用指標テーブル900の記憶内容の一例を示す説明図(その1)である。
図10は、実施の形態1にかかる情報処理装置101の分析支援処理手順の一例を示すフローチャートである。
図11は、関連テーブル作成処理の具体的処理手順の一例を示すフローチャートである。
図12は、基本指標算出処理の具体的処理手順の一例を示すフローチャートである。
図13は、応用指標算出処理の具体的処理手順の一例を示すフローチャートである。
図14は、ソフトウェアSWのクラスタリング結果の一例を地図形式で示す説明図(その2)である。
図15は、基本指標テーブル800の記憶内容の一例を示す説明図(その2)である。
図16は、応用指標テーブル900の記憶内容の一例を示す説明図(その2)である。
図17は、実施の形態2にかかる情報処理装置101の機能的構成例を示すブロック図である。
図18は、分類比較結果1800の具体例を示す説明図である。
図19は、実施の形態2にかかる情報処理装置101の分析支援処理手順の一例を示すフローチャートである。
図20は、分類比較処理の具体的処理手順の一例を示すフローチャートである。

実施例

0010

以下に図面を参照して、本発明にかかる分析支援方法、分析支援プログラム、および情報処理装置の実施の形態を詳細に説明する。

0011

(実施の形態1)
図1は、実施の形態1にかかる分析支援システム100のシステム構成例を示す説明図である。図1において、分析支援システム100は、情報処理装置101と、クライアント装置102と、を含む。分析支援システム100において、情報処理装置101およびクライアント装置102は、有線または無線ネットワーク110を介して接続される。ネットワーク110は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。

0012

ここで、情報処理装置101は、ソースコードDB(DataBase)120を有し、ソフトウェアSWの分析を支援するコンピュータである。情報処理装置101は、例えば、サーバである。ソースコードDB120は、ソフトウェアSWのソースコードを記憶する。

0013

ソフトウェアSWは、分析対象となるコンピュータプログラムであり、コンピュータを動作させる命令、手順などを記述したものである。ソフトウェアSWは、複数の要素を含む。要素は、例えば、コンポーネントモジュール、ソースコード、クラス、関数、データベースファイルなどである。

0014

以下の説明では、コンポーネント、モジュール、ソースコード、クラス、関数などを総称して「プログラム」と表記する場合がある。

0015

クライアント装置102は、分析支援システム100のユーザが使用するコンピュータである。分析支援システム100のユーザは、例えば、ソフトウェアSWの開発者分析者である。クライアント装置102は、例えば、PC(Personal Computer)、タブレットPCなどである。

0016

ここで、ソフトウェアSWの理解を支援する技術として、ソフトウェアSWを小規模部分集合(いわゆる、クラスタ)に分割する技術がある。具体的には、例えば、ソフトウェアSWに含まれるプログラム同士の依存関係に基づくクラスタリングを行って、互いに関係し合っているプログラムのかたまりをクラスタとして分割するものがある。

0017

なお、既存のクラスタリング技術については、例えば、特開2013−148987号公報を参照することができる。

0018

一方、ソフトウェアSWにおいては、プログラムだけでなく、そこで使用されるデータも重要である。データとは、データベースやファイル等に記録される、業務上のデータ、プログラムの作業ファイル生成物、動作に必要な設定情報などである。したがって、プログラム同士の関係だけでなく、プログラムとデータとの間の関係も分析することが、ソフトウェアSWの理解のために有用である。

0019

このため、ソフトウェアSWに含まれるプログラムだけでなく、ソフトウェアSWにおいて用いられるデータも含めてクラスタリングを行うことが考えられる。しかし、クラスタリング技術は、各データがどのクラスタに所属しているかによって、そのデータがどの機能において使われているかを示すことはできても、そのデータの使われ方の特徴(性質)までは明らかにしない。

0020

また、プログラムとデータの読み書き関係を表形式にまとめたものとして、CRUD表と呼ばれるものがある。CRUD表は、データベースのテーブルの読み書きの操作、すなわち、どのソースファイルがCreate、Read、Update、Deleteを行っているかを行列形式に表したものである。CRUD表を見ることで、データの使われ方の特徴(性質)を判断することが考えられる。

0021

ところが、一口にデータといっても様々な特徴のものが存在する。例えば、商品や顧客等の情報を格納して随時参照されるマスターデータや、注文や請求といった業務の進行のたびに記録されるトランザクションデータがある。また、プログラムの動作を障害対処等のために記録するログデータ、プログラムの処理途中のデータを記録しておく一時ファイル、システムの動作に必要な情報を指定する設定ファイルなどがある。

0022

こうしたデータの特徴は、CRUD表を見るだけでは見出しがたい。また、元々の設計意図ではなく、実態として現在どのように使われているかが問題である。長らくプログラムの修正拡張が行われるうちに、実際のデータの使われ方と元々の設計意図との間に乖離が生じることがある。

0023

例えば、マスターデータのはずなのについでにトランザクションデータを一部持たせてしまっている、あるいは、ある業務機能のためのデータとして設計したのに他の機能から参照されるようになっている場合がある。このような場合、設計当初に比べてデータ変更時の影響範囲が拡大して、システム保守上の困難の原因となることが起こり得る。

0024

そこで、本実施の形態では、情報処理装置101は、ソフトウェアSW内のプログラムからデータへのアクセスを依存関係として用いて、プログラム同士の依存関係とともにクラスタリングを適用する。そして、情報処理装置101は、クラスタリングにより得られるクラスタ内のデータについて、クラスタ内外のプログラムからのアクセス状況から当該データの使われ方の特徴を解析する。

0025

(情報処理装置101のハードウェア構成例)
図2は、情報処理装置101のハードウェア構成例を示すブロック図である。図2において、情報処理装置101は、CPU(Central Processing Unit)201と、メモリ202と、I/F(Interface)203と、ディスクドライブ204と、ディスク205と、を有する。また、各構成部は、バス200によってそれぞれ接続される。

0026

ここで、CPU201は、情報処理装置101の全体の制御を司る。メモリ202は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU201のワークエリアとして使用される。メモリ202に記憶されるプログラムは、CPU201にロードされることで、コーディングされている処理をCPU201に実行させる。

0027

I/F203は、通信回線を通じてネットワーク110に接続され、ネットワーク110を介して外部のコンピュータ(例えば、図1に示したクライアント装置102)に接続される。そして、I/F203は、ネットワーク110と装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。I/F203には、例えば、モデムLANアダプタなどを採用することができる。

0028

ディスクドライブ204は、CPU201の制御に従ってディスク205に対するデータのリードライトを制御する。ディスク205は、ディスクドライブ204の制御で書き込まれたデータを記憶する。ディスク205としては、例えば、磁気ディスク光ディスクなどが挙げられる。

0029

なお、情報処理装置101は、上述した構成部のほかに、例えば、SSD(Solid State Drive)、入力装置ディスプレイ等を有することにしてもよい。また、図1に示したクライアント装置102についても、情報処理装置101と同様のハードウェア構成により実現することができる。ただし、クライアント装置102は、上述した構成部のほかに、例えば、入力装置、ディスプレイ等を有する。

0030

(ソフトウェアSWのクラスタリング結果)
つぎに、実施の形態1において例題として用いるソフトウェアSWのクラスタリング結果について説明する。

0031

図3は、ソフトウェアSWのクラスタリング結果の一例を地図形式で示す説明図(その1)である。図3において、プログラムp1〜p45を含むソフトウェアSWのクラスタリング結果が地図形式で示されている。図3中、各々の建物(p1〜p45,d1,d2)が1つのプログラムまたはデータを表し、複数の建物の入っている区画がクラスタを表す。建物の間にひかれている曲線は依存関係を表す。ただし、図3では、注目しているデータとプログラムとの間の依存関係のみを描画している。

0032

ここでは、クラスタリングによって、ソフトウェアSW全体が5つのクラスタC1〜C5に分割されている。各クラスタC1〜C5は、9つのプログラムを含み、同じクラスタ内の全てのプログラム間に依存関係が存在する。また、クラスタ間つなぐプログラム間で依存関係が存在するものもある。各クラスタC1〜C5は何らかの機能を実装するものと想定される。

0033

クラスタC1〜C5のうちのクラスタC4は、2つのデータd1,d2を含む。データd1は、クラスタC4とは異なる他のクラスタ内のそれぞれ1つのプログラムから読み出され、かつ、同じクラスタC4内のあるプログラムから読み書きされている。一方、データd2は、同じクラスタC4内のプログラムp30から読み書き両方されているだけで、他のプログラムからのアクセスはない。

0034

なお、データd1は、マスターデータを想定しており、これを読み書き両方しているクラスタC4内のプログラムp29は、マスターメンテナンス用のプログラムであることを想定している。また、データd2は、1つのプログラムが自分だけで用いる一時ファイルであることを想定している。

0035

(依存関係情報の具体例)
つぎに、情報処理装置101が用いる依存関係情報について説明する。依存関係情報は、ソフトウェアSWのプログラム間の依存関係およびプログラム/データ間の依存関係を示す情報である。

0036

図4は、依存関係情報の具体例を示す説明図である。図4において、依存関係情報400は、依存元依存先種別とを対応付けて示す情報である。ここで、依存元は、依存元のエンティティ(エンティティ名)を示す。エンティティは、ソフトウェアSW内のプログラム、または、当該プログラムからアクセスされるデータをまとめた総称である。依存先は、依存先のエンティティ(エンティティ名)を示す。

0037

種別は、エンティティ間の依存関係の種別を示す。種別としては、例えば、「CALL」、「READ」、「CREATE」、「UPDATE」、「DELETE」などがある。種別「CALL」は、依存元のプログラムが依存先のプログラムを呼び出すという、プログラム間の依存関係を示す。

0038

また、種別「READ」は、依存元のプログラムが依存先のデータを読み出すという、プログラム/データ間の依存関係を示す。種別「CREATE」は、依存元のプログラムが依存先のデータを生成するという、プログラム/データ間の依存関係を示す。種別「UPDATE」は、依存元のプログラムが依存先のデータを更新するという、プログラム/データ間の依存関係を示す。種別「DELETE」は、依存元のプログラムが依存先のデータを削除するという、プログラム/データ間の依存関係を示す。

0039

(クラスタ情報の具体例)
つぎに、情報処理装置101が用いるクラスタ情報について説明する。クラスタ情報は、ソフトウェアSWのクラスタリング結果を示す情報である。

0040

図5は、クラスタ情報の具体例を示す説明図である。図5において、クラスタ情報500は、エンティティ名とクラスタIDとを対応付けて示す情報である。ここで、エンティティ名は、エンティティ(プログラムまたはデータ)の名称である。クラスタIDは、クラスタを一意識別する識別子である。

0041

クラスタ情報500によれば、ソフトウェアSW内のプログラムおよび当該プログラムからアクセスされるデータを含む要素群を分割して得られた各クラスタに属するエンティティを特定することができる。なお、図3の例題は、クラスタ情報500が示すクラスタリング結果に対応する。

0042

(情報処理装置101の機能的構成例)
図6は、実施の形態1にかかる情報処理装置101の機能的構成例を示すブロック図である。図6において、情報処理装置101は、取得部601と、分割部602と、第1の算出部603と、第2の算出部604と、出力部605と、を含む構成である。取得部601〜出力部605は制御部となる機能であり、具体的には、例えば、図2に示したメモリ202、ディスク205などの記憶装置に記憶されたプログラムをCPU201に実行させることにより、または、I/F203により、その機能を実現する。各機能部の処理結果は、例えば、メモリ202、ディスク205などの記憶装置に記憶される。

0043

取得部601は、分析対象となるソフトウェアSWを取得する。具体的には、例えば、取得部601は、図1に示したネットワーク110を介して、外部のコンピュータ(例えば、図1に示したクライアント装置102)からソフトウェアSWのソースコードを取得することにしてもよい。

0044

また、取得部601は、例えば、不図示の入力装置を用いたユーザの操作入力により、ソフトウェアSWのソースコードを取得することにしてもよい。取得されたソフトウェアSWは、例えば、図1に示したソースコードDB120に記憶される。なお、ソースコードDB120は、例えば、メモリ202、ディスク205などの記憶装置により実現される。

0045

分割部602は、ソフトウェアSWをクラスタリングする。ここで、クラスタリングとは、例えば、ソフトウェアSWをグラフ表現し、当該グラフをクラスタに分割することである。クラスタは、ソフトウェアSWのグラフを部分グラフに分割したときの、部分グラフまたは部分グラフに属する要素の集合のことである。

0046

具体的には、例えば、分割部602は、ソースコードDB120に記憶されたソフトウェアSWのソースコードを解析して、ソフトウェアSW内のプログラム間の依存関係およびプログラム/データ間の依存関係を示す依存関係情報を生成する。ここで、プログラム間の依存関係は、例えば、コンポーネント、モジュール、ソースコード、クラス、関数などの呼び出し関係継承関係包含関係などの関係である。また、プログラム/データ間の依存関係は、プログラムからデータへのアクセス(読み出し、書き込み)の関係である。

0047

より詳細に説明すると、分割部602は、例えば、既存の構文解析技術および静的解析技術により、ソフトウェアSWのソースコードを解析し、ソフトウェアSW内のプログラム間の依存関係およびプログラム/データ間の依存関係を抽出する。これにより、例えば、図4に示したような依存関係情報400を生成することができる。

0048

そして、分割部602は、生成した依存関係情報に基づいて、ソフトウェアSW内のプログラムおよび当該プログラムからアクセスされるデータを含む要素群を複数のクラスタに分割する。これにより、例えば、図5に示したようなクラスタ情報500が分割結果として出力される。

0049

すなわち、分割部602は、プログラムとデータとの間の読み書きの依存関係を、プログラム間の依存関係と同様に考慮して、クラスタリングを行う。したがって、ここで得られるクラスタの単位は、開発者が設計したモジュールやパッケージ等のソフトウェア部品ではなく、プログラム間あるいはプログラムとデータとがどのように依存しているかの実態に即して発見されるものとなる。

0050

以下の説明では、ソフトウェアSW内のプログラムおよび当該プログラムからアクセスされるデータを含む要素群を分割して得られる複数のクラスタを「クラスタC1〜Cn」と表記する場合がある(n:2以上の自然数)。また、クラスタC1〜Cnのうちの任意のクラスタを「クラスタCi」と表記する場合がある(i=1,2,…,n)。

0051

第1の算出部603は、クラスタCi内のデータの基本指標を算出する。ここで、基本指標とは、クラスタCi内のデータが、クラスタCi内外のプログラムからどれだけ読み書きされているかを示す指標である。基本指標は、例えば、RO、WO、RIおよびWIの4種類の指標を含む。

0052

RO(Read/Out)は、クラスタCi内のデータが、クラスタCi外のプログラムから読み出される回数を示す。WO(Write/Out)は、クラスタCi内のデータが、クラスタCi外のプログラムから書き込まれる回数を示す。RI(Read/In)は、クラスタCi内のデータが、クラスタCi内のプログラムから読み出される回数を示す。WI(Write/In)は、クラスタCi内のデータが、クラスタCi内のプログラムから書き込まれる回数を示す。なお、クラスタCi外のプログラムとは、クラスタCiとは異なる他のクラスタ内のプログラムである。

0053

具体的には、例えば、第1の算出部603は、依存関係情報400を参照して、プログラム/データ間の依存関係の関連種別を特定する。プログラム/データ間の依存関係の関連種別は、「READ」または「WRITE」のいずれかである。関連種別「READ」は、プログラムがデータを読み出すという依存関係を示す。関連種別「WRITE」は、プログラムがデータを書き込むという依存関係を示す。

0054

例えば、上述したエンティティ間の依存関係の種別「READ」は、関連種別「READ」に相当する。また、上述したエンティティ間の依存関係の種別「CREATE」、「UPDATE」および「DELETE」は、プログラムがデータを書き込むという依存関係をそれぞれ示しており、関連種別「WRITE」に相当する。

0055

特定されたプログラム/データ間の依存関係の関連種別は、例えば、図7に示すような関連テーブル700に記憶される。ここで、関連テーブル700の記憶内容について説明する。なお、関連テーブル700は、例えば、メモリ202、ディスク205などの記憶装置により実現される。

0056

図7は、関連テーブル700の記憶内容の一例を示す説明図である。図7において、関連テーブル700は、データ名、プログラム名および関連種別のフィールドを有し、各フィールドに情報を設定することで、関連情報(例えば、関連情報700−1〜700−3)をレコードとして記憶する。

0057

ここで、データ名は、ソフトウェアSWで用いられるデータの名称である。プログラム名は、ソフトウェアSWに含まれるプログラムの名称である。関連種別は、プログラム/データ間の依存関係の種別を示す。関連種別「READ」は、プログラムがデータを読み出すという依存関係を示す。関連種別「WRITE」は、プログラムがデータを書き込むという依存関係を示す。

0058

例えば、関連情報700−1は、プログラム名「pkg1.Cls1」のプログラムがデータ名「DATA」のデータを読み出すという依存関係を示す。

0059

そして、第1の算出部603は、例えば、関連テーブル700を参照して、クラスタCi内のデータが、クラスタCi内外のプログラムからどれだけ読み書きされているかを計数することにより、基本指標(RO、WO、RI、WI)を算出する。

0060

算出されたクラスタCi内のデータの基本指標(RO、WO、RI、WI)は、例えば、図8に示すような基本指標テーブル800に記憶される。ここで、基本指標テーブル800の記憶内容について説明する。なお、基本指標テーブル800は、例えば、メモリ202、ディスク205などの記憶装置により実現される。

0061

図8は、基本指標テーブル800の記憶内容の一例を示す説明図(その1)である。図8において、基本指標テーブル800は、データ名、RO、WO、RIおよびWIのフィールドを有し、各フィールドに情報を設定することで、基本指標情報800−1,800−2をレコードとして記憶する。

0062

基本指標情報800−1は、データ名「DATA」のデータのRO「4」、WO「0」、RI「1」およびWI「1」を示す。基本指標情報800−2は、データ名「DATA0」のデータのRO「0」、WO「0」、RI「1」およびWI「1」を示す。

0063

図6の説明に戻り、第2の算出部604は、算出されたクラスタCi内のデータの基本指標に基づいて、当該データの特徴を表す指標値を算出する。具体的には、例えば、第2の算出部604は、図8に示した基本指標テーブル800を参照して、クラスタCi内のデータの応用指標を算出する。

0064

ここで、応用指標は、クラスタCi内のデータの特徴を表す指標であり、分類指標逸脱指標を含む。分類指標は、データの特徴・性質を分類するための指標である。分類指標は、例えば、グローバルデータパターン指標、内部専用パターン指標、マスターデータパターン指標、ログパターン指標を含む。

0065

グローバルデータパターン指標は、プログラムにおけるグローバル変数のように、ソフトウェアSW全体から読み書きされるデータである度合いを示す指標である。グローバルデータパターン指標が高いと、ソフトウェアSWの様々な部分が当該データに依存していることを意味しており、データの形式や意味を変更する際の影響が大きいことになる。

0066

例えば、第2の算出部604は、クラスタCi内のデータが、クラスタCi外のプログラムから読み出される回数(RO)と、クラスタCi外のプログラムから書き込まれる回数(WO)とに基づいて、グローバルデータパターン指標を算出する。

0067

より具体的には、例えば、第2の算出部604は、下記式(1)を用いて、クラスタCi内のデータのグローバルデータパターン指標を算出することができる。ただし、Iaは、グローバルデータパターン指標である。ROは、クラスタCi内のデータが、クラスタCi外のプログラムから読み出される回数である。WOは、クラスタCi内のデータが、クラスタCi外のプログラムから書き込まれる回数である。

0068

Ia=RO×WO ・・・(1)

0069

内部専用パターン指標は、クラスタCi内のデータが、特定の機能に専用のデータである、すなわち、特定の機能に閉じて使用されるデータであることを示す指標である。データが特定の機能に専用であるときは、ソフトウェアSWの他の部分からの依存が存在しないので、データ形式の変更が他の部分に直接影響を及ぼさず、保守性が良好であるといえる。

0070

内部専用パターン指標は、0または1の2値で表される。内部専用パターン指標「1」は、特定の機能に専用のデータであることを示す。内部専用パターン指標「0」は、特定の機能に専用のデータではないことを示す。

0071

例えば、第2の算出部604は、クラスタCi内のデータが、クラスタCi外のプログラムから読み書きされていない場合は、内部専用パターン指標「1」を算出する。一方、第2の算出部604は、クラスタCi内のデータが、クラスタCi外のプログラムから読み出しまたは書き込みされている場合は、内部専用パターン指標「0」を算出する。

0072

より具体的には、例えば、第2の算出部604は、下記式(2)および(3)を用いて、クラスタCi内のデータの内部専用パターン指標を算出することができる。ただし、Ibは、内部専用パターン指標である。条件1は、「WO=0」かつ「RO=0」である。条件2は、条件1以外である。

0073

条件1のとき ⇒ Ib=1 ・・・(2)
条件2のとき ⇒ Ib=0 ・・・(3)

0074

マスターデータパターン指標は、マスターデータのように、ソフトウェアSWの複数の機能から読み出され、特定のプログラムのみから書き込まれるデータである度合いを示す指標である。特定のプログラムは、例えば、1あるいは少数のマスターメンテナンス用のプログラムである。

0075

すなわち、マスターデータパターン指標は、業務システムにおける商品マスタ顧客マスタのように、ソフトウェアSWの様々な機能から参照されるが、書き込むのはマスターメンテナンス用のプログラムのみであるような使われ方をしている場合に高くなる。

0076

例えば、第2の算出部604は、クラスタCi内のデータが、クラスタCi外のプログラムから書き込まれていない場合は、クラスタCi外のプログラムから読み出される回数(RO)に基づいて、マスターデータパターン指標を算出する。また、第2の算出部604は、クラスタCi内のデータが、クラスタCi外のプログラムから読み書きされておらず、かつ、クラスタCi内のプログラムから書き込まれない場合には、クラスタCi内のプログラムから読み出される回数(Ri)に基づいて、マスターデータパターン指標を算出する。

0077

より具体的には、例えば、第2の算出部604は、下記式(4)〜(6)を用いて、クラスタCi内のデータのマスターデータパターン指標を算出することができる。ただし、Icは、マスターデータパターン指標である。条件1は、「WO=0」かつ「RO>0」である。条件2は、「WO=0」かつ「RO=0」かつ「RI>0」かつ「WI=0」である。条件3は、条件1,2以外である。

0078

条件1のとき ⇒ Ic=RO ・・・(4)
条件2のとき ⇒ Ic=RI・・・(5)
条件3のとき ⇒ Ic=0 ・・・(6)

0079

ログパターン指標は、ログデータのように、ソフトウェアSWの複数の機能から書き込まれるが、特定の機能のみから読み出される、あるいは、全く読み出されないデータである度合いを示す指標である。例えば、第2の算出部604は、クラスタCi内のデータが、クラスタCi内外のプログラムから読み出される回数(RI,RO)に対する、クラスタCi内外のプログラムから書き込まれる回数(WI,WO)の割合に基づいて、ログパターン指標を算出する。

0080

より具体的には、例えば、第2の算出部604は、下記式(7)を用いて、クラスタCi内のデータのログパターン指標を算出することができる。ただし、Idは、ログパターン指標である。Wは、「WO+WI」である。Rは、「RO+RI」である。RIは、クラスタCi内のデータが、クラスタCi内のプログラムから読み出される回数である。WIは、クラスタCi内のデータが、クラスタCi内のプログラムから書き込まれる回数である。

0081

Id=W/R ・・・(7)
ただし、「R=0」のときは「R=1」とする。

0082

また、逸脱指標は、分類指標によって分類されるデータに近い特徴・性質を持つが、一部に例外的なアクセスを持つ場合に高くなる指標である。逸脱指標は、例えば、内部専用パターン逸脱指標およびマスターデータパターン逸脱指標を含む。

0083

内部専用パターン逸脱指標は、特定の機能に専用のデータであることから逸脱している度合いを示す指標である。内部専用パターン逸脱指標は、特定の機能に専用のデータに近い特徴(性質)を持つが一部に例外的なアクセスが存在する、すなわち、アクセスの多くはクラスタCi内からであるが、クラスタCi外のプログラムからの少数のアクセスを持つような場合に高くなる。

0084

例えば、第2の算出部604は、クラスタCi内のデータが、クラスタCi外のプログラムから読み書きされる回数に対する、クラスタCi内外のプログラムから読み書きされる回数の割合に基づいて、内部専用パターン逸脱指標を算出する。

0085

より具体的には、例えば、第2の算出部604は、下記式(8)および(9)を用いて、クラスタCi内のデータの内部専用パターン逸脱指標を算出することができる。ただし、Ib’は、内部専用パターン逸脱指標である。条件1は、「WO=0」かつ「RO=0」である。条件2は、条件1以外である。

0086

条件1のとき ⇒ Ib’=0 ・・・(8)
条件2のとき ⇒ Ib’=(RI+WI+RO+WO)/(RO+WO)…(9)

0087

マスターデータパターン逸脱指標は、マスターデータのようなデータであることから逸脱している度合いを示す指標である。マスターデータパターン逸脱指標は、マスターデータに近い特徴を持つが一部に例外的なアクセスが存在する、すなわち、クラスタCi外のプログラムからの読み出しが多数あるが、クラスタCi外のプログラムからの書き込みも少数存在する場合に高くなる。

0088

例えば、第2の算出部604は、クラスタCi内のデータが、クラスタCi外のプログラムから書き込まれる回数に対する、クラスタCi外のプログラムから読み書きされる回数の割合に基づいて、マスターデータパターン逸脱指標を算出する。

0089

より具体的には、例えば、第2の算出部604は、下記式(10)および(11)を用いて、クラスタCi内のデータのマスターデータパターン逸脱指標を算出することができる。ただし、Ic’は、マスターデータパターン逸脱指標である。条件1は、「WO=0」である。条件2は、条件1以外である。

0090

条件1のとき ⇒ Ic’=0 ・・・(10)
条件2のとき ⇒ Ic’=(RO+WO)/WO ・・・(11)

0091

算出されたクラスタCi内のデータの応用指標(分類指標、逸脱指標)は、例えば、図9に示すような応用指標テーブル900に記憶される。ここで、応用指標テーブル900の記憶内容について説明する。なお、応用指標テーブル900は、例えば、メモリ202、ディスク205などの記憶装置により実現される。

0092

図9は、応用指標テーブル900の記憶内容の一例を示す説明図(その1)である。図9において、応用指標テーブル900は、データ名、グローバルデータパターン指標、内部専用パターン指標、内部専用パターン逸脱指標、マスターデータパターン指標、マスターデータパターン逸脱指標およびログパターン指標のフィールドを有する。各フィールドに情報を設定することで、応用指標情報900−1,900−2がレコードとして記憶される。

0093

応用指標情報900−1は、データ名「DATA」のデータのグローバルデータパターン指標「0」、内部専用パターン指標「0」、内部専用パターン逸脱指標「1.5」、マスターデータパターン指標「4」、マスターデータパターン逸脱指標「0」およびログパターン指標「0.2」を示す。

0094

また、応用指標情報900−2は、データ名「DATA0」のデータのグローバルデータパターン指標「0」、内部専用パターン指標「1」、内部専用パターン逸脱指標「0」、マスターデータパターン指標「0」、マスターデータパターン逸脱指標「0」およびログパターン指標「1」を示す。

0095

なお、応用指標情報900−1,900−2には、例えば、データ名「DATA」、「DATA0」の各データが、読み出し専用のデータであるか否かの情報や、書き込み専用のデータであるか否かの情報が含まれていてもよい。

0096

出力部605は、クラスタCiのデータの識別情報と対応付けて、算出された当該データの特徴を表す指標値を出力する。データの識別情報は、例えば、データ名である。出力部605の出力形式としては、例えば、I/F203による外部のコンピュータへの送信、メモリ202、ディスク205などの記憶装置への記憶、不図示のディスプレイへの表示、不図示のプリンタへの印刷出力などがある。

0097

具体的には、例えば、出力部605は、分析対象であるソフトウェアSWの識別情報と対応付けて、応用指標テーブル900内の応用指標情報900−1,900−2をクライアント装置102に送信することにしてもよい。この結果、クライアント装置102において、例えば、不図示のディスプレイに応用指標情報900−1,900−2が表示される。

0098

これにより、ユーザ(例えば、ソフトウェアSWの開発者や分析者)は、ソフトウェアSWにおいて用いられる各データの応用指標(分類指標、逸脱指標)を参照して、各データがどのような使われ方をしているかを判断することができる。

0099

例えば、応用指標情報900−1,900−2によれば、マスターデータパターン指標について、データ名「DATA」のデータが「4」、データ名「DATA0」のデータが「0」である。したがって、ユーザは、データ名「DATA」のデータのほうがデータ名「DATA0」のデータよりもマスターデータらしいこと、そしてデータ名「DATA0」のデータは全くマスターデータらしくないことがわかる。

0100

また、内部専用パターン指標について、データ名「DATA」のデータが「0」、データ名「DATA0」のデータが「1」である。したがって、ユーザは、データ名「DATA」のデータは内部専用(特定の機能に専用)ではなく、データ名「DATA0」のデータは内部専用であることがわかる。

0101

また、マスターデータパターン逸脱指標について、データ名「DATA」のデータが「0」、データ名「DATA0」のデータが「0」である。したがって、ユーザは、どちらのデータについても、「マスターデータらしいのに一部にふさわしくないアクセスが存在する」とは認められないことがわかる。

0102

また、内部専用パターン逸脱指標について、データ名「DATA」のデータが「1.5」、データ名「DATA0」のデータが「0」である。データ名「DATA0」のデータは、上述したように内部専用であり逸脱したアクセスは存在しないので「0」という値は妥当である。一方、データ名「DATA」のデータは、クラスタ内外の両方からアクセスされているので「0」より高い値になっているが、クラスタ外からのアクセスが比較的多くクラスタ内からのアクセスが多いわけではない。このため、「内部専用なのに一部例外的なアクセスがある」わけではなく、比較的低い値にとどまっている。

0103

これらのことから、応用指標情報900−1,900−2によれば、ユーザは、データ名「DATA」のデータがマスターデータらしいこと、データ名「DATA0」のデータが特定の機能に専用のデータらしいことを把握することができる。

0104

(情報処理装置101の分析支援処理手順)
つぎに、図10図13を用いて、実施の形態1にかかる情報処理装置101の分析支援処理手順について説明する。

0105

図10は、実施の形態1にかかる情報処理装置101の分析支援処理手順の一例を示すフローチャートである。図10のフローチャートにおいて、まず、情報処理装置101は、ソースコードDB120から分析対象となるソフトウェアSWのソースコードを読み込む(ステップS1001)。

0106

つぎに、情報処理装置101は、ソフトウェアSWのソースコードを解析して、ソフトウェアSW内のプログラム間の依存関係およびプログラム/データ間の依存関係を抽出する(ステップS1002)。これにより、ソフトウェアSW内のプログラム間の依存関係およびプログラム/データ間の依存関係を示す依存関係情報が生成される。

0107

そして、情報処理装置101は、抽出したプログラム間の依存関係およびプログラム/データ間の依存関係に基づいて、ソフトウェアSWをクラスタリングする(ステップS1003)。クラスタリングとは、ソフトウェアSW内のプログラムおよび当該プログラムからアクセスされるデータを含む要素群を複数のクラスタに分割して、クラスタ情報(例えば、クラスタ情報500)を分割結果として出力することである。

0108

つぎに、情報処理装置101は、関連テーブル作成処理を実行する(ステップS1004)。関連テーブル作成処理は、例えば、図7に示したような関連テーブル700を作成する処理である。なお、関連テーブル作成処理の具体的な処理手順は、図11を用いて後述する。

0109

つぎに、情報処理装置101は、ソフトウェアSWをクラスタリングした分割結果であるクラスタ情報から、未選択のデータ名を選択する(ステップS1005)。なお、各エンティティがプログラムまたはデータのいずれであるかは、例えば、クラスタ情報のエンティティ名から判別される。

0110

つぎに、情報処理装置101は、選択したデータ名に対応する基本指標、応用指標(分類指標、逸脱指標)を初期化する(ステップS1006)。そして、情報処理装置101は、作成した関連テーブル700から、選択したデータ名に対応する関連情報の集合を抽出する(ステップS1007)。

0111

つぎに、情報処理装置101は、抽出した関連情報の集合に基づいて、選択したデータ名のデータについての基本指標を算出する基本指標算出処理を実行する(ステップS1008)。基本指標算出処理の具体的な処理手順については、図12を用いて後述する。

0112

つぎに、情報処理装置101は、算出した基本指標に基づいて、選択したデータ名のデータについての応用指標(分類指標、逸脱指標)を算出する応用指標算出処理を実行する(ステップS1009)。応用指標算出処理の具体的な処理手順については、図13を用いて後述する。

0113

そして、情報処理装置101は、クラスタ情報から選択していない未選択のデータ名があるか否かを判断する(ステップS1010)。ここで、未選択のデータ名がある場合(ステップS1010:Yes)、情報処理装置101は、ステップS1005に戻る。

0114

一方、未選択のデータ名がない場合(ステップS1010:No)、情報処理装置101は、算出した各データについての応用指標(分類指標、逸脱指標)を出力して(ステップS1011)、本フローチャートによる一連の処理を終了する。

0115

これにより、例えば、ソフトウェアSWの開発者や分析者に対して、ソフトウェアSWにおいて用いられる各データがどのような使われ方をしているのかの実態を把握可能な応用指標(分類指標、逸脱指標)を提示することができる。

0116

<関連テーブル作成処理の具体的処理手順>
つぎに、図10に示したステップS1004の関連テーブル作成処理の具体的な処理手順について説明する。

0117

図11は、関連テーブル作成処理の具体的処理手順の一例を示すフローチャートである。図11のフローチャートにおいて、まず、情報処理装置101は、依存関係情報を参照して、ソフトウェアSW内のプログラム間の依存関係およびプログラム/データ間の依存関係のうちの未選択の依存関係を選択する(ステップS1101)。

0118

つぎに、情報処理装置101は、選択した依存関係が、プログラムからデータへのアクセスを示す依存関係であるか否かを判断する(ステップS1102)。ここで、プログラムからデータへのアクセスを示す依存関係ではない場合(ステップS1102:No)、情報処理装置101は、ステップS1106に移行する。

0119

一方、プログラムからデータへのアクセスを示す依存関係である場合(ステップS1102:Yes)、情報処理装置101は、選択した依存関係の種別がCREATE,UPDATE,DELETEのいずれかであるか否かを判断する(ステップS1103)。

0120

ここで、CREATE,UPDATE,DELETEのいずれでもない場合(ステップS1103:No)、情報処理装置101は、ステップS1105に移行する。一方、CREATE,UPDATE,DELETEのいずれかである場合(ステップS1103:Yes)、情報処理装置101は、選択した依存関係の種別をWRITEに置き換える(ステップS1104)。

0121

そして、情報処理装置101は、選択した依存関係の依存元(プログラム名)、依存先(データ名)、種別(関連種別)を示す関連情報を関連テーブルに登録する(ステップS1105)。つぎに、情報処理装置101は、依存関係情報を参照して、未選択の依存関係があるか否かを判断する(ステップS1106)。

0122

ここで、未選択の依存関係がある場合(ステップS1106:Yes)、情報処理装置101は、ステップS1101に戻る。一方、未選択の依存関係がない場合(ステップS1106:No)、情報処理装置101は、関連テーブル作成処理を呼び出したステップに戻る。

0123

これにより、ソフトウェアSWのプログラム/データ間の依存関係の依存元のプログラム名、依存先のデータ名および関連種別(READまたはWRITE)を示す関連情報を関連テーブルに登録することができる。

0124

<基本指標算出処理の具体的処理手順>
つぎに、図10に示したステップS1008の基本指標算出処理の具体的な処理手順について説明する。

0125

図12は、基本指標算出処理の具体的処理手順の一例を示すフローチャートである。図12のフローチャートにおいて、まず、情報処理装置101は、図10に示したステップS1007において抽出した関連情報の集合から未選択の関連情報を選択する(ステップS1201)。

0126

そして、情報処理装置101は、クラスタ情報を参照して、選択した関連情報が示すデータとプログラムとが同一クラスタに属しているか否かを判断する(ステップS1202)。ここで、同一クラスタに属していない場合(ステップS1202:No)、情報処理装置101は、選択した関連情報の関連種別がREADであるか否かを判断する(ステップS1203)。

0127

ここで、関連種別がREADである場合(ステップS1203:Yes)、情報処理装置101は、選択した関連情報のデータ名のデータについての基本指標ROをインクリメントして(ステップS1204)、ステップS1209に移行する。

0128

一方、関連種別がWRITEである場合(ステップS1203:No)、情報処理装置101は、選択した関連情報のデータ名のデータについての基本指標WOをインクリメントして(ステップS1205)、ステップS1209に移行する。

0129

また、ステップS1202において、同一クラスタに属している場合(ステップS1202:Yes)、情報処理装置101は、選択した関連情報の関連種別がREADであるか否かを判断する(ステップS1206)。

0130

ここで、関連種別がREADである場合(ステップS1206:Yes)、情報処理装置101は、選択した関連情報のデータ名のデータについての基本指標RIをインクリメントして(ステップS1207)、ステップS1209に移行する。

0131

一方、関連種別がWRITEである場合(ステップS1206:No)、情報処理装置101は、選択した関連情報のデータ名のデータについての基本指標WIをインクリメントする(ステップS1208)。そして、情報処理装置101は、関連情報の集合から選択されていない未選択の関連情報があるか否かを判断する(ステップS1209)。

0132

ここで、未選択の関連情報がある場合(ステップS1209:Yes)、情報処理装置101は、ステップS1201に戻る。一方、未選択の関連情報がない場合(ステップS1209:No)、情報処理装置101は、基本指標算出処理を呼び出したステップに戻る。

0133

これにより、ソフトウェアSWにおいて用いられる各データについての基本指標RO,WO,RI,WIを算出することができる。なお、算出された各データについての基本指標RO,WO,RI,WIは、例えば、図8に示したような基本指標テーブル800に記憶される。

0134

<応用指標算出処理の具体的処理手順>
つぎに、図10に示したステップS1009の応用指標算出処理の具体的な処理手順について説明する。

0135

図13は、応用指標算出処理の具体的処理手順の一例を示すフローチャートである。図13のフローチャートにおいて、まず、情報処理装置101は、基本指標テーブル800を参照して、図10に示したステップS1005において選択したデータ名のデータについてのグローバルデータパターン指標を算出する(ステップS1301)。

0136

つぎに、情報処理装置101は、基本指標テーブル800を参照して、選択したデータ名のデータについての内部専用パターン指標を算出する(ステップS1302)。つぎに、情報処理装置101は、基本指標テーブル800を参照して、選択したデータ名のデータについてのマスターデータパターン指標を算出する(ステップS1303)。

0137

つぎに、情報処理装置101は、基本指標テーブル800を参照して、選択したデータ名のデータについてのログパターン指標を算出する(ステップS1304)。つぎに、情報処理装置101は、基本指標テーブル800を参照して、選択したデータ名のデータについての内部専用パターン逸脱指標を算出する(ステップS1305)。

0138

そして、情報処理装置101は、基本指標テーブル800を参照して、選択したデータ名のデータについてのマスターデータパターン逸脱指標を算出して(ステップS1306)、応用指標算出処理を呼び出したステップに戻る。

0139

これにより、ソフトウェアSWにおいて用いられる各データについての応用指標(分類指標、逸脱指標)を算出することができる。なお、算出された各データについての応用指標(分類指標、逸脱指標)は、例えば、図9に示したような応用指標テーブル900に記憶される。

0140

以上説明したように、実施の形態1にかかる情報処理装置101によれば、ソフトウェアSW内のプログラム間の依存関係およびプログラム/データ間の依存関係に基づいて、ソフトウェアSW内のプログラムおよび当該プログラムからアクセスされるデータを含む要素群をクラスタC1〜Cnに分割することができる。分割したクラスタC1〜CnのいずれかのクラスタCi内のデータが、クラスタCi内のプログラムからアクセスされる回数(基本指標RI,WI)と、クラスタCi外のプログラムからアクセスされる回数(基本指標RO,WO)とに基づいて、当該データの特徴を表す指標値(応用指標)を算出することができる。

0141

これにより、ソフトウェアSWにおいて用いられる各データがどのような使われ方をしているのかの実態を把握可能な応用指標(分類指標、逸脱指標)を求めることができる。

0142

また、情報処理装置101によれば、クラスタCi内のデータの識別情報と対応付けて、算出した当該データの特徴を表す指標値を出力することができる。これにより、ソフトウェアSWの開発者や分析者等に対して、ソフトウェアSWにおいて用いられる各データがどのような使われ方をしているのかの実態を把握可能な応用指標(分類指標、逸脱指標)を提示することができる。

0143

また、情報処理装置101によれば、クラスタCi内のデータが、クラスタCi外のプログラムから読み出される回数(RO)と、クラスタCi外のプログラムから書き込まれる回数(WO)とに基づいて、グローバルデータパターン指標を算出することができる。

0144

これにより、プログラムにおけるグローバル変数のように、ソフトウェアSW全体から読み書きされるデータである度合いを示す指標を求めることができる。したがって、ユーザは、グローバルデータパターン指標が高いデータについて、ソフトウェアSWの様々な部分が当該データに依存しており、データの形式や意味を変更する際の影響が大きいことを把握することができる。

0145

また、情報処理装置101によれば、クラスタCi内のデータが、クラスタCi外のプログラムから読み書きされていない場合は、特定の機能に専用のデータであることを示す内部専用パターン指標「1」を算出することができる。

0146

これにより、クラスタCi内のデータが、特定の機能に専用のデータである、すなわち、特定の機能に閉じて使用されるデータであることを示す指標を求めることができる。したがって、ユーザは、内部専用パターン指標が「1」のデータについて、ソフトウェアSWの他の部分からの依存が存在しないため、データ形式の変更が他の部分に直接影響を及ぼさず、保守性が良好であることを把握することができる。

0147

また、情報処理装置101によれば、クラスタCi内のデータが、クラスタCi外のプログラムから書き込まれていない場合は、クラスタCi外のプログラムから読み出される回数(RO)に基づいて、マスターデータパターン指標を算出することができる。また、情報処理装置101によれば、クラスタCi内のデータが、クラスタCi外のプログラムから読み書きされておらず、かつ、クラスタCi内のプログラムから書き込まれない場合には、クラスタCi内のプログラムから読み出される回数(RI)に基づいて、マスターデータパターン指標を算出することができる。

0148

これにより、マスターデータのように、ソフトウェアSWの複数の機能から読み出され、特定のプログラムのみから書き込まれるデータである度合いを示す指標を求めることができる。したがって、ユーザは、マスターデータパターン指標が高いデータについて、ソフトウェアSWの様々な機能から参照されるが、書き込むのは1つあるいは少数のマスターメンテナンス用のプログラムであるような使われ方をしていることを把握することができる。

0149

また、情報処理装置101によれば、クラスタCi内のデータが、クラスタCi内外のプログラムから読み出される回数(RI,RO)に対する、クラスタCi内外のプログラムから書き込まれる回数(WI,WO)の割合に基づいて、ログパターン指標を算出することができる。

0150

これにより、ログデータのように、ソフトウェアSWの複数の機能から書き込まれるが、特定の機能のみから読み出される、あるいは、全く読み出されないデータである度合いを示す指標を求めることができる。

0151

また、情報処理装置101によれば、クラスタCi内のデータが、クラスタCi外のプログラムから読み書きされる回数に対する、クラスタCi内外のプログラムから読み書きされる回数の割合に基づいて、内部専用パターン逸脱指標を算出することができる。

0152

これにより、特定の機能に専用のデータであることから逸脱している度合いを示す指標を求めることができる。したがって、ユーザは、内部専用パターン逸脱指標が高いデータについて、特定の機能に専用のデータに近い特徴(性質)を持つが一部に例外的なアクセスが存在するデータであることを把握することができる。

0153

また、情報処理装置101によれば、クラスタCi内のデータが、クラスタCi外のプログラムから書き込まれる回数に対する、クラスタCi外のプログラムから読み書きされる回数の割合に基づいて、マスターデータパターン逸脱指標を算出することができる。

0154

これにより、マスターデータのようなデータであることから逸脱している度合いを示す指標を求めることができる。したがって、ユーザは、マスターデータパターン逸脱指標が高いデータについて、マスターデータに近い特徴(性質)を持つが一部に例外的なアクセスが存在するデータであることを把握することができる。

0155

これらのことから、実施の形態1にかかる情報処理装置101によれば、ソフトウェアシステムにおけるデータの使われ方の実態を把握することができる。例えば、ユーザは、あるデータが、マスターデータとして使われているか、あるいはログデータのように使われているかといったことを把握することができる。このため、ユーザは、当初の設計時にどういう意図のデータであったかではなく、現にどのように使われているデータであるかを把握することができる。

0156

そして、ユーザは、データがどのような使われ方をしているかということを、ソフトウェアSWの修正や再設計、あるいは、新たなプラットフォームへの移行のための情報として役立てることができる。例えば、ユーザは、依存関係の広範なデータや、特定の機能に専用として設計されたのに他の機能からも使われているデータが認識でき、扱いに注意すべきデータがどれであるかを判別することができる。

0157

(実施の形態2)
つぎに、実施の形態2にかかる情報処理装置101について説明する。実施の形態2では、ソフトウェアSWにおいて用いられるデータについて、既知の分類が存在する場合に、データの特徴を表す指標値(応用指標)から決定される分類と既知の分類とを突き合わせて比較した結果を出力する分析支援方法について説明する。なお、実施の形態1で説明した箇所と同様の箇所については、同一符号を付して図示および説明を省略する。

0158

(ソフトウェアSWのクラスタリング結果)
まず、実施の形態2において例題として用いるソフトウェアSWのクラスタリング結果について説明する。

0159

図14は、ソフトウェアSWのクラスタリング結果の一例を地図形式で示す説明図(その2)である。図14において、プログラムp1〜p45を含むソフトウェアSWのクラスタリング結果が地図形式で示されている。図14中、各々の建物(p1〜p45,d1)が1つのプログラムまたはデータを表し、複数の建物の入っている区画がクラスタを表す。建物の間にひかれている曲線は依存関係を表す。ただし、図14では、注目しているデータとプログラムとの間の依存関係のみを描画している。

0160

ここでは、クラスタリングによって、ソフトウェアSW全体が5つのクラスタC1〜C5に分割されている。各クラスタC1〜C5は、9つのプログラムを含み、同じクラスタ内の全てのプログラム間に依存関係が存在する。また、クラスタ間をつなぐプログラム間で依存関係が存在するものもある。各クラスタC1〜C5は何らかの機能を実装するものと想定される。

0161

クラスタC1〜C5のうちのクラスタC4は、1つのデータd1を含む。データd1は、各クラスタC1〜C5内のプログラムから読み書き両方のアクセスがされている。データd1は、設計時に設定された名称が「GDS_MASTER」であり、商品のマスターデータとして設けられたデータであることが既知であるとする。

0162

この場合、このデータ名「GDS_MASTER」のデータについて、実施の形態1と同様に、基本指標RO,WO,RI,WIを求めると、図15に示すようになる。

0163

図15は、基本指標テーブル800の記憶内容の一例を示す説明図(その2)である。図15において、基本指標テーブル800には、基本指標情報1500−1が記憶されている。基本指標情報1500−1は、データ名「GDS_MASTER」のデータのRO「4」、WO「4」、RI「1」およびWI「1」を示す。

0164

また、このデータ名「GDS_MASTER」のデータについて、実施の形態1と同様に、図15に示した基本指標RO,WO,RI,WIから応用指標(分類指標、逸脱指標)を求めると、図16に示すようになる。

0165

図16は、応用指標テーブル900の記憶内容の一例を示す説明図(その2)である。図16において、応用指標テーブル900には、応用指標情報1600−1が記憶されている。応用指標情報1600−1は、データ名「GDS_MASTER」のデータのグローバルデータパターン指標「16」、内部専用パターン指標「0」、内部専用パターン逸脱指標「1.25」、マスターデータパターン指標「0」、マスターデータパターン逸脱指標「2」およびログパターン指標「1」を示す。

0166

(情報処理装置101の機能的構成例)
つぎに、実施の形態2にかかる情報処理装置101の機能的構成例について説明する。

0167

図17は、実施の形態2にかかる情報処理装置101の機能的構成例を示すブロック図である。図17において、情報処理装置101は、取得部601と、分割部602と、第1の算出部603と、第2の算出部604と、出力部605と、決定部1701と、比較部1702と、を含む構成である。取得部601〜出力部605、決定部1701および比較部1702は制御部となる機能であり、具体的には、例えば、図2に示したメモリ202、ディスク205などの記憶装置に記憶されたプログラムをCPU201に実行させることにより、または、I/F203により、その機能を実現する。各機能部の処理結果は、例えば、メモリ202、ディスク205などの記憶装置に記憶される。

0168

以下、実施の形態1にかかる情報処理装置101の機能部とは異なる機能部について説明する。

0169

決定部1701は、第2の算出部604によって算出されたクラスタCi内のデータの特徴を表す指標値に基づいて、当該データの分類を決定する。具体的には、例えば、決定部1701は、応用指標テーブル900(例えば、図16参照)を参照して、複数の応用指標のうちの値が最大となる応用指標に基づいて、データの分類を決定することにしてもよい。

0170

より詳細に説明すると、例えば、グローバルデータパターン指標の値が最大となる場合、決定部1701は、データの分類を「グローバルデータ」に決定する。また、例えば、マスターデータパターン指標の値が最大となる場合、決定部1701は、データの分類を「マスターデータ」に決定する。例えば、ログパターン指標の値が最大となる場合、決定部1701は、データの分類を「ログデータ」に決定する。

0171

また、例えば、内部専用パターン逸脱指標の値が最大となる場合、決定部1701は、データの分類を「内部専用逸脱」に決定することにしてもよい。「内部専用逸脱」は、特定の機能に専用のデータに近い特徴(性質)を持つが、一部に例外的なアクセスが存在するデータであることを示す分類である。

0172

また、例えば、マスターデータパターン逸脱指標の値が最大となる場合、決定部1701は、データの分類を「マスターデータ逸脱」に決定することにしてもよい。「マスターデータ逸脱」は、マスターデータに近い特徴(性質)を持つが、一部に例外的なアクセスが存在するデータであることを示す分類である。

0173

また、決定部1701は、例えば、内部専用パターン指標が「1」の場合には、他の応用指標の値にかかわらず、データの分類を「内部専用」に決定することにしてもよい。ここで、「内部専用」は、特定の機能に専用のデータであることを示す分類である。

0174

図16に示した応用指標情報1600−1の例では、グローバルデータパターン指標の値が最大となる。この場合、決定部1701は、データ名「GDS_MASTER」のデータの分類を「グローバルデータ」に決定することにしてもよい。

0175

なお、内部専用パターン指標以外の各応用指標に閾値を設けることにしてもよい。そして、複数の応用指標のうちの値が最大となる応用指標の値が閾値未満の場合には、決定部1701は、データの分類を「分類なし」に決定することにしてもよい。これにより、顕著な特徴があらわれていないデータを「分類なし」として判別可能にすることができる。

0176

比較部1702は、決定部1701によって決定されたデータの分類と、当該データの既知の分類とを比較する。ここで、データの既知の分類(以下、「既知分類」という)は、ソフトウェアSWの設計当初のデータの分類である。例えば、データの既知分類は、設計時にどのような用途のデータであるかが既知である場合に設定される。

0177

具体的には、例えば、まず、比較部1702は、命名規約に基づいて、データのデータ名から当該データの既知分類を特定することにしてもよい。一例を挙げると、データ名に「MASTER」が含まれる場合に、決定部1701は、データの既知分類を「マスターデータ」として特定する。そして、比較部1702は、決定されたデータの分類と、特定した当該データの既知分類とを比較する。

0178

また、比較部1702は、例えば、設計情報を参照して、データの既知分類を特定することにしてもよい。ここで、設計情報は、ソフトウェアSWの設計時に用途が既知であるデータの既知分類を示す情報である。設計情報は、例えば、外部のコンピュータ(例えば、クライアント装置102)、または、不図示の入力装置を用いたユーザの操作入力により取得される。

0179

出力部605は、クラスタCi内のデータの識別情報と対応付けて、比較された比較結果を出力する。具体的には、例えば、出力部605は、決定されたデータの分類と既知分類とが不一致の場合に、当該データが元々の設計とは異なる使われ方がされていることを示す警告情報を出力することにしてもよい。

0180

より具体的には、例えば、出力部605は、図18に示すような分類比較結果1800をクライアント装置102に送信することにしてもよい。この結果、クライアント装置102において、例えば、不図示のディスプレイに分類比較結果1800が表示される。ここで、分類比較結果1800の具体例について説明する。

0181

図18は、分類比較結果1800の具体例を示す説明図である。図18において、分類比較結果1800は、データ名と、指標計算による分類と、既知分類と、結果とを対応付けて示す比較結果情報(例えば、比較結果情報1800−1〜1800−3)を含む情報である。

0182

分類比較結果1800によれば、ユーザは、ソフトウェアSWにおいて、各データが元々の設計と異なる使われ方をされているか否かを把握することができる。例えば、比較結果情報1800−1によれば、設計当初はマスターデータとして設計されたデータ名「GDS_MASTER」のデータが、プログラムの修正を重ねるうちに本来の用途と合わない使用がされるようになっていることがわかる。また、例えば、比較結果情報1800−3によれば、特定の機能に専用のデータとして設計されたデータ名「INV_TEMP」のデータが、元々の設計通り特定の機能に専用のデータとして使用されていることがわかる。

0183

(情報処理装置101の分析支援処理手順)
つぎに、図19および図20を用いて、実施の形態2にかかる情報処理装置101の分析支援処理手順について説明する。

0184

図19は、実施の形態2にかかる情報処理装置101の分析支援処理手順の一例を示すフローチャートである。図19のフローチャートにおいて、まず、情報処理装置101は、ソースコードDB120から分析対象となるソフトウェアSWのソースコードを読み込む(ステップS1901)。

0185

つぎに、情報処理装置101は、ソフトウェアSWのソースコードを解析して、ソフトウェアSW内のプログラム間の依存関係およびプログラム/データ間の依存関係を抽出する(ステップS1902)。そして、情報処理装置101は、抽出したプログラム間の依存関係およびプログラム/データ間の依存関係に基づいて、ソフトウェアSWをクラスタリングする(ステップS1903)。

0186

つぎに、情報処理装置101は、関連テーブル作成処理を実行する(ステップS1904)。なお、関連テーブル作成処理の具体的な処理手順は、図11に示した処理手順と同様のため、ここでは図示および説明を省略する。

0187

つぎに、情報処理装置101は、ソフトウェアSWをクラスタリングした分割結果であるクラスタ情報から、未選択のデータ名を選択する(ステップS1905)。つぎに、情報処理装置101は、選択したデータ名に対応する基本指標、応用指標(分類指標、逸脱指標)を初期化する(ステップS1906)。そして、情報処理装置101は、作成した関連テーブル700から、選択したデータ名に対応する関連情報の集合を抽出する(ステップS1907)。

0188

つぎに、情報処理装置101は、抽出した関連情報の集合に基づいて、選択したデータ名のデータについての基本指標を算出する基本指標算出処理を実行する(ステップS1908)。なお、基本指標算出処理の具体的な処理手順については、図12に示した処理手順と同様のため、ここでは図示および説明を省略する。

0189

つぎに、情報処理装置101は、算出した基本指標に基づいて、選択したデータ名のデータについての応用指標(分類指標、逸脱指標)を算出する応用指標算出処理を実行する(ステップS1909)。なお、応用指標算出処理の具体的な処理手順については、図13に示した処理手順と同様のため、ここでは図示および説明を省略する。

0190

そして、情報処理装置101は、クラスタ情報から選択していない未選択のデータ名があるか否かを判断する(ステップS1910)。ここで、未選択のデータ名がある場合(ステップS1910:Yes)、情報処理装置101は、ステップS1905に戻る。

0191

一方、未選択のデータ名がない場合(ステップS1910:No)、情報処理装置101は、各データの応用指標に基づく分類と、当該各データの既知分類とを比較する分類比較処理を実行する(ステップS1911)。分類比較処理の具体的な処理手順については、図20を用いて後述する。

0192

そして、情報処理装置101は、比較した各データについての比較結果情報を含む分類比較結果を出力して(ステップS1912)、本フローチャートによる一連の処理を終了する。

0193

これにより、例えば、ソフトウェアSWの開発者や分析者に対して、ソフトウェアSWにおいて各データが元々の設計と異なる使われ方をされているか否かを示す比較結果情報の一覧を提示することができる。

0194

<分類比較処理の具体的処理手順>
つぎに、図19に示したステップS1911の分類比較処理の具体的な処理手順について説明する。

0195

図20は、分類比較処理の具体的処理手順の一例を示すフローチャートである。図20のフローチャートにおいて、まず、情報処理装置101は、応用指標テーブル900から未選択のデータ名を選択する(ステップS2001)。

0196

そして、情報処理装置101は、選択したデータ名のデータの既知分類を特定する(ステップS2002)。つぎに、情報処理装置101は、応用指標テーブル900内の応用指標の値に基づいて、選択したデータ名のデータの分類を決定する(ステップS2003)。

0197

そして、情報処理装置101は、決定したデータの分類が、特定したデータの既知分類と一致するか否かを判断する(ステップS2004)。ここで、既知分類と一致する場合(ステップS2004:Yes)、情報処理装置101は、選択したデータ名、決定したデータの分類、特定したデータの既知分類と対応付けて、結果「問題なし」を分類比較結果に登録して(ステップS2005)、ステップS2007に移行する。

0198

一方、既知分類と不一致の場合(ステップS2004:No)、情報処理装置101は、選択したデータ名、決定したデータの分類、特定したデータの既知分類と対応付けて、結果「警告」を分類比較結果に登録する(ステップS2006)。そして、情報処理装置101は、応用指標テーブル900から選択していない未選択のデータ名があるか否かを判断する(ステップS2007)。

0199

ここで、未選択のデータ名がある場合(ステップS2007:Yes)、情報処理装置101は、ステップS2001に戻る。一方、未選択のデータ名がない場合(ステップS2007:No)、情報処理装置101は、分類比較処理を呼び出したステップに戻る。これにより、ソフトウェアSWにおいて各データが元々の設計と異なる使われ方をされているか否かを示す比較結果情報の一覧を作成することができる。

0200

以上説明したように、実施の形態2にかかる情報処理装置101によれば、算出したデータの特徴を表す指標値(応用指標)に基づいて、当該データの分類を決定することができる。また、情報処理装置101によれば、決定したデータの分類と、データの既知分類とを比較し、データの識別情報と対応付けて、比較した比較結果を出力することができる。これにより、ソフトウェアSWにおいて各データが元々の設計と異なる使われ方をされているか否かを示す情報をユーザに提示することができる。

0201

また、情報処理装置101によれば、決定したデータの分類とデータの既知分類とが不一致の場合に、当該データが元々の設計とは異なる使われ方がされていることを示す警告情報を出力することができる。これにより、元々の設計と異なる使われ方をされており、扱いに注意すべきデータがどれであるかを見つけやすくすることができる。

0202

なお、本実施の形態で説明した分析支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本分析支援プログラムは、ハードディスクフレキシブルディスクCD−ROM、MO(Magneto−Optical disk)、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本分析支援プログラムは、インターネット等のネットワークを介して配布してもよい。

0203

上述した実施の形態に関し、さらに以下の付記を開示する。

0204

(付記1)コンピュータが、
ソフトウェア内のプログラム間の依存関係およびプログラム/データ間の依存関係に基づいて、前記ソフトウェア内のプログラムおよび当該プログラムからアクセスされるデータを含む要素群を複数のクラスタに分割し、
分割した前記複数のクラスタのいずれかのクラスタ内のデータが、前記クラスタ内のプログラムからアクセスされる回数と、前記クラスタ外のプログラムからアクセスされる回数とに基づいて、前記データの特徴を表す指標値を算出する、
処理を実行することを特徴とする分析支援方法。

0205

(付記2)前記算出する処理は、
前記クラスタ内のデータが、前記クラスタ外のプログラムから読み出される回数と、前記クラスタ外のプログラムから書き込まれる回数とに基づいて、前記ソフトウェア全体から読み書きされるデータである度合いを示す指標値を算出する、ことを特徴とする付記1に記載の分析支援方法。

0206

(付記3)前記算出する処理は、
前記クラスタ内のデータが、前記クラスタ外のプログラムから読み書きされていない場合は、特定の機能に専用のデータであることを示す指標値を算出する、ことを特徴とする付記1または2に記載の分析支援方法。

0207

(付記4)前記算出する処理は、
前記クラスタ内のデータが、前記クラスタ外のプログラムから書き込まれていない場合は、前記クラスタ外のプログラムから読み出される回数に基づいて、複数の機能から読み出され、特定のプログラムのみから書き込まれるデータである度合いを示す指標値を算出する、ことを特徴とする付記1〜3のいずれか一つに記載の分析支援方法。

0208

(付記5)前記算出する処理は、
前記クラスタ内のデータが、前記クラスタ外のプログラムから読み書きされておらず、かつ、前記クラスタ内のプログラムから書き込まれない場合には、前記クラスタ内のプログラムから読み出される回数に基づいて、複数の機能から読み出され、特定のプログラムのみから書き込まれるデータである度合いを示す指標値を算出する、ことを特徴とする付記1〜4のいずれか一つに記載の分析支援方法。

0209

(付記6)前記算出する処理は、
前記クラスタ内のデータが、前記クラスタ内外のプログラムから読み出される回数に対する、前記クラスタ内外のプログラムから書き込まれる回数の割合に基づいて、複数の機能から書き込まれ、特定の機能のみから読み出される、あるいは、全く読み出されないデータである度合いを示す指標値を算出する、ことを特徴とする付記1〜5のいずれか一つに記載の分析支援方法。

0210

(付記7)前記算出する処理は、
前記クラスタ内のデータが、前記クラスタ外のプログラムから読み書きされる回数に対する、前記クラスタ内外のプログラムから読み書きされる回数の割合に基づいて、特定の機能に専用のデータであることから逸脱している度合いを示す指標値を算出する、ことを特徴とする付記1〜6のいずれか一つに記載の分析支援方法。

0211

(付記8)前記算出する処理は、
前記クラスタ内のデータが、前記クラスタ外のプログラムから書き込まれる回数に対する、前記クラスタ外のプログラムから読み書きされる回数の割合に基づいて、複数の機能から読み出され、特定のプログラムのみから書き込まれるデータであることから逸脱している度合いを示す指標値を算出する、ことを特徴とする付記1〜6のいずれか一つに記載の分析支援方法。

0212

(付記9)前記コンピュータが、
前記クラスタ内のデータの識別情報と対応付けて、算出した前記指標値を出力する、処理を実行することを特徴とする付記1〜8のいずれか一つに記載の分析支援方法。

0213

(付記10)前記コンピュータが、
算出した前記指標値に基づいて、前記データの分類を決定し、
決定した前記データの分類と、前記データの既知の分類とを比較し、
前記データの識別情報と対応付けて、比較した比較結果を出力する、処理を実行することを特徴とする付記1〜9のいずれか一つに記載の分析支援方法。

0214

(付記11)前記出力する処理は、
前記データの分類と前記データの既知の分類とが不一致の場合、当該データが元々の設計とは異なる使われ方がされていることを示す警告情報を出力する、ことを特徴とする付記10に記載の分析支援方法。

0215

(付記12)コンピュータに、
ソフトウェア内のプログラム間の依存関係およびプログラム/データ間の依存関係に基づいて、前記ソフトウェア内のプログラムおよび当該プログラムからアクセスされるデータを含む要素群を複数のクラスタに分割し、
分割した前記複数のクラスタのいずれかのクラスタ内のデータが、前記クラスタ内のプログラムからアクセスされる回数と、前記クラスタ外のプログラムからアクセスされる回数とに基づいて、前記データの特徴を表す指標値を算出する、
処理を実行させることを特徴とする分析支援プログラム。

0216

(付記13)ソフトウェア内のプログラム間の依存関係およびプログラム/データ間の依存関係に基づいて、前記ソフトウェア内のプログラムおよび当該プログラムからアクセスされるデータを含む要素群を複数のクラスタに分割し、
分割した前記複数のクラスタのいずれかのクラスタ内のデータが、前記クラスタ内のプログラムからアクセスされる回数と、前記クラスタ外のプログラムからアクセスされる回数とに基づいて、前記データの特徴を表す指標値を算出する、
制御部を有することを特徴とする情報処理装置。

0217

100分析支援システム
101情報処理装置
102クライアント装置
110ネットワーク
120ソースコードDB
400依存関係情報
500クラスタ情報
601 取得部
602 分割部
603 第1の算出部
604 第2の算出部
605 出力部
700関連テーブル
800基本指標テーブル
900 応用指標テーブル
1701 決定部
1702比較部
1800分類比較結果

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ