(57)【要約】【課題】データ群からのルールの抽出を可能とすること。【解決手段】分析プログラムは、複数の項目を有する複数のデータを、前記複数の項目のうちの第１の項目における値に基づいてソートするソート手順と、ソート結果において、前記第１の項目の値の配列状態と、他の項目の値の配列状態とに基づいて、前記データに関するルールを抽出する抽出手順と、をコンピュータに実行させる。【選択図】図３
2019086896.tif 000002
【特許請求の範囲】
【請求項１】
複数の項目を有する複数のデータを、前記複数の項目のうちの第１の項目における値に基づいてソートするソート手順と、
ソート結果において、前記第１の項目の値の配列状態と、他の項目の値の配列状態とに基づいて、前記データに関するルールを抽出する抽出手順と、
をコンピュータに実行させることを特徴とする分析プログラム。
【請求項２】
前記抽出手順は、前記第１の項目について同一の値を有するデータの集合と、他の項目について同一の値を有するデータの集合との共通性又は包含関係の有無に基づいて、前記データに関するルールを抽出する、
ことを特徴とする請求項１記載の分析プログラム。
【請求項３】
前記抽出手順は、前記第１の項目について第１の値を有するデータの集合が、第２の項目について第２の値を有するデータの集合の部分集合である場合、前記第１の項目が前記第１の値である場合に、前記第２の項目は前記第２の値であるというルールを抽出する、
ことを特徴とする請求項１又は２記載の分析プログラム。
【請求項４】
前記抽出手順は、前記第１の項目について第３の値を有するデータの集合と第４の値を有すデータの集合が、第２の項目について第５の値を有するデータの集合の部分集合である場合、前記第１の項目が前記第３の値又は前記第４の値である場合に、前記第２の項目は前記第５の値であるというルールを抽出する、
ことを特徴とする請求項１乃至３いずれか一項記載の分析プログラム。
【請求項５】
前記項目ごとに値の種別数を特定し、前記データの数に対する前記種別数の割合が閾値以上である項目について、全ての前記データに同じ値を付与する付与手順を前記コンピュータに実行させ、
全ての前記データに同じ値が付与された項目については、前記付与手順において付与された値に基づいて、前記ソート手順及び前記抽出手順を前記コンピュータに実行させる、
ことを特徴とする請求項１乃至４いずれか一項記載の分析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分析プログラムに関する。
【背景技術】
【０００２】
現行システムのＤＢ（データベース）ストアデータをデータテーブル単位で入力して分析し、データテーブル内のカラム間のデータ値の組合せによって実際に起こるパタンが保有するルール（規則性）を自動的に検出することを考える。ここでいうルールとは主にビジネスルールを指し、例えば、遊園地のチケット管理システムが保有するビジネスルールとしては、「チケット価格は大人は２６００円、子供は１３００円」などである。
【０００３】
従来、現行システムを使用する業務に関するビジネスルールの検出は、人が現行システムに関するドキュメント類を読み、理解してそこから抽出する方法や関係者からヒアリングを実施して聞き出す方法があった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１５４６５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、ドキュメントを理解する方法では、ドキュメントが常に最新化されていなければ正しいルールが抽出できない問題や自動抽出できず大きな稼動がかかるという問題が有る。また、ヒアリングによる方法でも、ヒアリング対象者が忘れているルールや知らないルールは検出できない問題があり、自動抽出できないという稼動問題も有る。
【０００６】
一方で、現行システムのプログラムを解析する方法も有る。この方法では、条件分岐等を追跡等することによって、どのような規則性があるかを知ることができるが、分析するために大きな稼動がかかり、分析結果は、プログラムに記述されたルールしか抽出できない、という課題が有る。例えば、プログラムに記述されていないルールとして、「システムの利用は月曜日以外の全ての曜日で実施されている」というルールがあってもプログラム解析によってこのルールを抽出することは困難である。
【０００７】
また、一般的に概念データモデルから論理モデルを作成し、更に論理モデルから物理モデルを作成していく方法によってシステムのデータベースを作成するといった方法が有る（例えば、特許文献１参照）。そのため、この方法の逆の方法をたどれば、つまり、物理モデルをインプットとすればそこから論理モデルを生成し、論理モデルから概念データモデルを生成することも可能である。すなわち、現行システムの仕様を概念として抽出することは可能である。ここで抽出できる現行システムの仕様とは、データベースがどのような意味（エンティティ）のデータテーブルを持ち、データテーブル内にはどのような属性（データ項目）を持ち、各テーブル間の関係はどうなっているか、などである。
【０００８】
しかし、このような方法でも、各データテーブル内にある規則性、特にビジネスルールに相当する規則性を抽出することは困難である。
【０００９】
本発明は、上記の点に鑑みてなされたものであって、データ群からのルールの抽出を可能とすることを目的とする。
【課題を解決するための手段】
【００１０】
そこで上記課題を解決するため、分析プログラムは、複数の項目を有する複数のデータを、前記複数の項目のうちの第１の項目における値に基づいてソートするソート手順と、ソート結果において、前記第１の項目の値の配列状態と、他の項目の値の配列状態とに基づいて、前記データに関するルールを抽出する抽出手順と、をコンピュータに実行させる。
【発明の効果】
【００１１】
データ群からのルールの抽出を可能とすることができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態における分析装置１０のハードウェア構成例を示す図である。
【図２】本発明の実施の形態における分析装置１０の機能構成例を示す図である。
【図３】分析装置１０が実行する処理手順の一例を説明するためのフローチャートである。
【図４】入力データ群の一例を示す図である。
【図５】或る項目のラベルに基づくデータ群のソート結果の一例を示す図である。
【図６】本実施の形態において導出可能なルールの一例を説明するための図である。
【発明を実施するための形態】
【００１３】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における分析装置１０のハードウェア構成例を示す図である。図１の分析装置１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、及びインタフェース装置１０５等を有する。
【００１４】
分析装置１０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記憶した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００１５】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って分析装置１０に係る機能を実行する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。
【００１６】
図２は、本発明の実施の形態における分析装置１０の機能構成例を示す図である。図２において、分析装置１０は、データ入力部１１、ラベル付与部１２、ソート部１３、ルール抽出部１４及びルール出力部１５等を有する。これら各部は、分析装置１０にインストールされた１以上のプログラムが、ＣＰＵ１０４に実行させる処理により実現される。
【００１７】
データ入力部１１は、分析対象の複数のデータを入力する。各データは、共通の複数の項目（カラム）を有する。したがって、当該複数のデータは、テーブルデータ（表形データ）に整形されて入力されてもよい。この場合、１つの行が１つのデータに相当する。依存関係の有る複数のテーブルデータが入力される場合、データ入力部１１は、主キーと外部キーとの関係に基づいて依存関係を導出して、１つのテーブルデータに統合してもよい。なお、各項目の値は、数値、記号、文字等のいずれであってもよい。
【００１８】
ラベル付与部１２は、各データについて、項目ごとに、当該項目における値の種別ごとのラベルを付与する。したがって、或るデータと他のデータとについて、同じ項目の同じ値は、同じラベルが付与される。
【００１９】
ソート部１３は、項目ごとに、当該項目について同じラベルが連続するようにデータ群を並べ替える（ソートする）。
【００２０】
ルール抽出部１４は、ソート部１３による並べ替えの結果（ソート結果）に基づいて、入力されたデータ群に関する規則性を示すルール（例えば、ビジネスルール）を抽出する。当該ルールとは、例えば、入力されたデータ群の生成の元となった業務又はビジネスに関するルールをいう。
【００２１】
ルール出力部１５は、ルール抽出部１４によって抽出されたルールを出力する。
【００２２】
以下、分析装置１０が実行する処理手順について説明する。図３は、分析装置１０が実行する処理手順の一例を説明するためのフローチャートである。
【００２３】
ステップＳ１０１において、データ入力部１１は、データ群（以下「入力データ群」という。）を入力する。
【００２４】
図４は、入力データ群の一例を示す図である。図４において、各データ（各レコード又は各行）は、特定の商品Ａ（例えば、或る遊園地ａのチケット）の購買履歴を示し、性別、年齢層、会員フラグ、価格及び住所等の各項目の値を含む。性別は、商品の購買者の性別である。年齢層は、年齢の１０の位の異同によって購買者を区別する概念である。会員フラグは、商品Ａに関する会員であるか否かを示す情報である。価格は、購買者が商品Ａの購入に支払った金額である。なお、商品Ａの価格は、全ての購買者に対して均一ではなく、購買者の属性等に応じて変化する。住所は、購買者の住所である。
【００２５】
続いて、ラベル付与部１２は、入力データ群の項目数Ｃをカウントする（Ｓ１０２）。本実施の形態において、各データは同じ項目を有するため、１つのデータの項目数がカウントされればよい。データ群がテーブルデータとして入力された場合には、テーブルの項目数がカウントされればよい。
【００２６】
続いて、ラベル付与部１２は、変数ｎに１を代入する（Ｓ１０３）。変数ｎは、処理対象とする項目の順番を示す変数である。
【００２７】
続いて、ラベル付与部１２は、入力データ群における、ｎ番目の項目（以下、「項目ｎ」という。）の値の種別数Ｓをカウントする（Ｓ１０４）。例えば、ｎ番目の項目が、性別を示す項目であれば、値の種別数Ｓは基本的には「男」及び「女」の２になる。但し、ｎ番目の項目が空欄であるデータが有る場合、値の種別数Ｓは３になる。すなわち、空欄（値が無い状態）も、１つの種別としてカウントされる。
【００２８】
続いて、ラベル付与部１２は、種別数Ｓがデータ数（テーブルデータの場合であれば行数）と同じであるか否かを判定する（Ｓ１０５）。種別数Ｓがデータ数と同じである場合（すなわち、項目ｎについて全てのデータの値が異なる場合）（Ｓ１０５でＹＥＳ）、ラベル付与部１２は、全データの項目ｎに共通のラベル「Ｌａｂｅｌｎ−１」を付与する（Ｓ１０６）。すなわち、全データに対して同じラベルが付与される。
【００２９】
一方、種別数Ｓがデータ数と異なる場合（Ｓ１０５でＮＯ）、ラベル付与部１２は、各データの項目ｎに、当該データの項目ｎの値の種別に応じたラベル（Ｌａｂｅｌｎ−１〜Ｌａｂｅｌｎ−Ｓ）を付与する（Ｓ１０７）。すなわち、項目ｎの値が同じデータに対しては、項目ｎに関して同じラベルが付与される。
【００３０】
なお、ステップＳ１０５の趣旨は、項目ｎの値が、有限の候補の中からの選択的なものであるか否（不特定多数でないか否か）かを判定することにある。したがって、例えば、仮に「氏名」といった項目が有る場合、当該項目については、ステップＳ１０５においてＹＥＳと判定されることが期待される。しかし、「氏名」については同姓同名の可能性が有り、同姓同名が含まれている場合、ステップＳ１０５における判定はＮＯとなってしまう。そこで、ステップＳ１０５では、データ数に対する種別数Ｓの割合又は比率（すなわち、種別数Ｓ／データ数）が、閾値以上であるか否かが判定されるようにしてもよい。当該割合又は比率が閾値以上であればステップＳ１０６が実行され、そうでなければ、ステップＳ１０７が実行されるようにしてもよい。
【００３１】
続いて、ラベル付与部１２は、変数ｎの値が項目数Ｃ以上であるか否かを判定する（Ｓ１０８）。変数ｎの値が項目数Ｃ未満である場合（Ｓ１０８でＮＯ）、ラベル付与部１２は、変数ｎに１を加算して（Ｓ１０９）、ステップＳ１０４以降を繰り返す。すなわち、全ての項目についてステップＳ１０４以降が実行される。その結果、全データの全ての項目に対してラベルが付与される。
【００３２】
変数ｎの値が項目数Ｃ以上になると（Ｓ１０８でＹＥＳ）、ソート部１３は、変数ｎに１を代入する（Ｓ１１０）。続いて、ソート部１３は、項目ｎのラベルに基づいて、入力データ群をソートする（Ｓ１１１）。すなわち、ソート部１３は、項目ｎについて同じラベルが連続するように入力データ群を並べ替える。
【００３３】
図５は、或る項目のラベルに基づくデータ群のソート結果の一例を示す図である。図５において、水平方向は、項目の並びに対応し、垂直方向は、データ数（データの並び）に対応する。すなわち、＃１〜＃７は、それぞれ、項目の識別子である。また、項目＃１において、「Ｌａｂｅｌ１−１」の高さは、項目＃１に「Ｌａｂｅｌ１−１」が付与されたデータ数に対応する。
【００３４】
ここでは、項目ごとに、同じラベルが付与されたデータの集合を「グループ」という。図５では、項目＃１のラベルに基づくソート結果を示す。したがって、項目＃１については、グループが明確に区別されている。一方、他の項目は、項目＃１に従って並べられているため（すなわち、各データの項目間の関係は維持されているため）、例えば、項目＃３のように、１つのグループが複数に分割されて分布している。なお、図５は、説明の便宜上、図４に対して正確には整合していない。
【００３５】
続いて、ルール抽出部１４は、ソート結果における、項目ｎのラベルの配列状態と他の項目のラベルの配列情報とに基づいて、項目ｎが、他のいずれかの項目といずれかの包含関係パタンを有するか否かを判定する（Ｓ１１２）。
【００３６】
ここで、包含関係パタンとは、以下の（１）〜（６）のような関係をいい、例えば、項目間の相関関係の高さを区別する概念である。本実施の形態では、一例として、以下のパタン１〜パタン７までの６つの包含関係パタンが定義される。
（１）パタン１：複数グループ同士で完全同期（すなわち、一方の項目と他方の項目との間でグループ数が同じであり、各グループに属するデータの集合が一致する。）
（２）パタン２：一部のグループ同士で同期（すなわち、一部のグループに属するデータの集合が一致する。）
（３）パタン３：双方の項目に複数個のグループが有り、全体的な包含関係（一方の各グループは、他方のいずれかのグループに包含され、当該他方のグループの各グループは、当該一方のグループを１以上包含する）が成立
（４）パタン４：一方の複数のグループの組み合わせが他方のグループに同期（すなわち、一方の複数のグループに属するデータの集合が、他方の一つのグループに属するデータの集合に一致する。）
（５）パタン５：一方の項目の複数のグループが、他方の項目の１つのグループに包含される（すなわち、一婦の項目の複数のグループに属すデータの集合が、他方の項目の１つのグループの真部分集合である。）
（６）パタン６：一部のグループに包含関係が成立（一方のいずれかのグループに属するデータの集合が、他方のいずれかのグループに属するデータの集合の真部分集合である。）
（７）パタン７：一方の項目が単一グループであるために包含関係が成立
このように、ソート結果において、項目ｎについて同一の値を有するデータの集合と、他の項目について同一の値を有するデータの集合との共通性又は包含関係の有無に基づいて、項目ｎと他の項目との包含関係パタン（相関の高さ）が判定される。なお、相関関係の高さは、パタン１＞パタン２＞パタン３＞パタン４＞パタン５＞パタン６＞パタン７の関係に有る。
【００３７】
例えば、項目＃１の各グループに属するデータの集合と、項目＃２の各グループに属するデータの集合とは完全に一致する。としたがって、項目＃１は、項目＃２との間で、パタン１の包含関係パタンを有する。
【００３８】
また、項目＃１の「Ｌａｂｅｌ１−１」のグループに属するデータの集合と、項目＃４の「Ｌａｂｅｌ４−１」のグループに属するデータの集合とは完全に一致（同期）しているが、他のグループ間では同期が認められない。したがって、項目＃１は、項目＃２との間でパタン２の包含関係パタンを有する
また、項目＃１及び項目＃７の双方は、複数のグループを有し、双方の各グループの全ては、他方のいずれかのグループに包含される。具体的には、項目＃１の「Ｌａｂｅｌ１−１」のグループに属するデータ集合と「Ｌａｂｅｌ１−２」のグループに属するデータ集合とが構成するデータ集合は、項目＃７の「Ｌａｂｅｌ７−１」のグループに属するデータ集合に一致する。また、項目＃１の「Ｌａｂｅｌ１−３」のグループに属するデータ集合と「Ｌａｂｅｌ１−４」のグループに属するデータ集合とが構成するデータ集合は、項目＃７の「Ｌａｂｅｌ７−２」のグループに属するデータ集合に一致する。したがって、項目＃１は、項目＃７との間でパタン３の包含関係パタンを有する。なお、包含関係の有無については、項目ｎのいずれかのグループが他の項目のいずれかの項目のグループを含むか、及び、項目ｎのいずれかのグループが他の項目のいずれかの項目のグループに含まれるかのいずれか一方のみが判定されてもよい。他方については、他の項目が、項目ｎとなった際に判定可能だからである。
【００３９】
また、項目＃１のＬａｂｅｌ１−１」のグループに属するデータ集合と「Ｌａｂｅｌ１−２」のグループに属するデータ集合とは、項目＃８の「Ｌａｂｅｌ８−１」のグループに属するデータ集合の真部分集合である。したがって、項目＃１は、項目＃８との間でパタン４の包含関係パタンを有する。
【００４０】
また、項目＃１の「Ｌａｂｅｌ１−１」のグループに属するデータ集合と「Ｌａｂｅｌ１−２」のグループに属するデータ集合とが構成するデータ集合は、項目＃６の「Ｌａｂｅｌ６−１」のグループに属するデータ集合に一致するが、他のグループに関して包含関係は認められない。したがって、項目＃１は、項目＃６との間でパタン５の包含関係パタンを有する。
【００４１】
また、項目＃５のグループは一つである。したがって、項目＃１の全てのグループは、項目＃５の単一のグループに包含される。よって、項目＃１は、項目＃５との間でパタン７の包含関係パタンを有する。
【００４２】
なお、項目＃１と項目＃３とは、いずれのグループについても同期又は包含関係が認められない。したがって、項目＃１は、項目＃３との間において、包含関係パタンを有さない。
【００４３】
また、項目＃１については、パタン６の包含関係パタンを有する他の項目は存在しないが、例えば、項目＃４は、項目＃６との間には、パタン６の包含関係パタンが存在する。すなわち、項目＃４の「Ｌａｂｅｌ４−１」のグループに属するデータ群は、項目＃６の「Ｌａｂｅｌ６−１」のグループに属するデータ群の真部分集合である。
【００４４】
項目ｎが、全ての項目との間で包含関係パタンを有さない場合（Ｓ１１２でＮＯ）、ステップＳ１１４に進む。一方、項目ｎが、他のいずれかの項目との間で少なくとも１つの包含関係パタンを有する場合（Ｓ１１２でＹＥＳ）、ルール抽出部１４は、項目ｎが有する包含関係パタンに基づいて、ルールを抽出する（Ｓ１１３）。
【００４５】
図５の例に従えば、以下のようなルールが抽出される。
【００４６】
パタン１に基づいて、項目＃１が「Ｌａｂｅｌ１−１」ならば項目＃２は「Ｌａｂｅｌ２−１」であり（逆方向のルールも成立）、項目＃１の「Ｌａｂｅｌ１−２」〜「Ｌａｂｅｌ１−４」と項目＃２の「Ｌａｂｅｌ２−２」〜「Ｌａｂｅｌ２−４」との間についても同様のルールが成立するといったルールＲ１が抽出される。
【００４７】
パタン２に基づいて、項目＃１が「Ｌａｂｅｌ１−１」ならば項目＃４は「Ｌａｂｅｌ４−１」である（逆方向のルールも成立）といったルールＲ２が抽出される。
【００４８】
パタン３に基づいて、項目＃１が「Ｌａｂｅｌ１−１」又は「Ｌａｂｅｌ１−２」ならば、項目＃７は「Ｌａｂｅｌ７−１」であり、項目＃１が「Ｌａｂｅｌ１−３」または「Ｌａｂｅｌ１−４」ならば、項目＃７は「Ｌａｂｅｌ７−２」である（逆方向のルールも成立）といったルールＲ３が抽出される。すなわち、包含されるグループは、選択的な条件とされる。
【００４９】
パタン４に基づいて、項目＃１が「Ｌａｂｅｌ１−１」又は「Ｌａｂｅｌ１−２」ならば、項目＃６はＬａｂｅｌ６−１である（逆方向のルールも成立）といったルールＲ４が抽出される。
【００５０】
パタン５に基づいて、項目１がＬａｂｅｌ１−１」又は「Ｌａｂｅｌ１−２」ならば、項目＃８は「Ｌａｂｅｌ８−１」である（逆方向のルールは成立しない）といったルールＲ５が抽出される。
【００５１】
パタン７に基づいて、項目＃１の値に関わらず項目＃５は「Ｌａｂｅｌ５−１」である（逆方向のルールも成立）といったルールＲ７が抽出される。
【００５２】
なお、項目＃４が、項目ｎである場合、例えば、パタン６に基づいて、項目＃４が「Ｌａｂｅｌ４−１」ならば、項目＃６は、「Ｌａｂｅｌ６−１」である（逆方向のルールは成立しない）といったルールＲ６が抽出される。
【００５３】
ステップＳ１１３に続いてステップＳ１１４に進む。ステップＳ１１４において、ソート部１３は、変数ｎの値が項目数Ｃ以上であるか否かを判定する。変数ｎの値が項目数Ｃ未満である場合（Ｓ１１４でＮＯ）、ソート部１３は、変数ｎに１を加算して（Ｓ１１５）、ステップＳ１１１以降を繰り返す。すなわち、全ての項目についてステップＳ１１１以降が実行される。この際、ステップＳ１１２では、項目ｎ−１以前の項目についても、項目ｎとの間での包含関係パタンの有無が判定されてよい。上述したように、包含関係について、一方向のみ（包含する又は包含される）が判定される場合、他方向の包含関係を抽出可能とするためである。
【００５４】
変数ｎの値が項目数Ｃ以上になると（Ｓ１１４でＹＥＳ）、ルール出力部１５は、各項目に関してステップＳ１１２において抽出されたルールを出力する（Ｓ１１６）。例えば、各ルールが表示装置に表示されてもよいし、補助記憶装置１０２等に記憶されてもよい。なお、出力されるルールが膨大な場合、例えば、ルールＲ１＞ルールＲ２＞ルールＲ３＞ルールＲ４＞ルールＲ５＞ルールＲ６＞ルールＲ７の優先度の関係に基づいて、出力されるルールの絞り込みや、出力されるルールの重要性の違いの表現等が行われてもよい。
【００５５】
ユーザは、出力されたルールを組み合わせることで、例えば、次のようなルールを導出することができる。
【００５６】
図６は、本実施の形態において導出可能なルールの一例を説明するための図である。図６は、便宜上、図５に完全には整合しない。また、項目＃１について「Ｎｕｌｌ」は、空欄を示す。
【００５７】
例えば、図６のデータ群ｄ１に注目すれば、「男性、かつ、４０歳代、かつ、会員である購買者について、価格は２００円である」というルール（ビジネスルール）を導出することができる。
【００５８】
上述したように、本実施の形態によれば、データ群からのルールの抽出を可能とすることができる。当該ルールの抽出は、各項目の値の種別に基づくソート結果における各項目の値の配列状態（すなわち、同一の値を有するデータの集合と、他の項目について同一の値を有するデータの集合との共通性又は包含関係の有無）に基づいて行うことができるため、少ない計算量でのルールの抽出を可能とすることができる。
【００５９】
また、データごとに値が異なる項目（又は、データ数に対する種別数Ｓの割合が閾値以上である項目）については、一つの値（ラベル）が付与されることで、当該項目の特定の値（例えば、特定の住所等）が、ビジネスルールに含まれてしまうこと（すなわち、ビジネスルールに寄与しないルールがビジネスルールに含まれてしまうこと）を回避することができる。
【００６０】
また、例えば、或る業務（ビジネス）を行なうためのシステム（サーバ・クライアントシステム）において、サーバにはシステム利用者が実施した業務（ビジネス）の痕跡を表すＤＢストアデータが蓄積されている。このシステムを利用する業務のビジネスルール（業務ルール）が不明なケースがあり、その場合、現行システムを改善して新システムに作り変える更改開発をする際の妨げとなる。このような場合に、現行システムを用いた業務に関する業務ルールを推定するために本実施の形態を活用することができる。
【００６１】
例えば、ＤＢストアデータはテーブルデータ形式で蓄積されている場合が多く、その場合に、１テーブルデータ内の各データレコード（行単位）が持つルールを推定する。この際、推定したいルールは、テーブル内の各項目（列）が保有する値の種別（例えばラベル付けされたデータグループ）の組合せによって構成されているため、これらデータグループの組合せパタンを自動的に検出することによってルールを自動推定できる。その結果、実態に沿ったビジネスルール（事実ベースのビジネスルール）を抽出することができる。そのため、仮に、システム仕様書やユーザマニュアル等の既存ドキュメントにビジネスルールが記載されていて、それが正しく維持管理されず最新化されたビジネスルールとなっていない場合でも、システムのＤＢストアデータから抽出したビジネスルールが正しいルールであるとしてシステム更改に活用することができる。
【００６２】
また、システムを構成するプログラムに記載されていないルールが存在していたとしても、ＤＢストアデータから抽出することもできる。
【００６３】
以上、本発明の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００６４】
１０          分析装置
１１          データ入力部
１２          ラベル付与部
１３          ソート部
１４          ルール抽出部
１５          ルール出力部
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
Ｂ            バス
【図１】
2019086896.tif 000003
【図２】
2019086896.tif 000004
【図３】
2019086896.tif 000005
【図４】
2019086896.tif 000006
【図５】
2019086896.tif 000007
【図６】
2019086896.tif 000008