(57)【要約】【課題】データの分割を処理内容に応じて効率的に行うことができる情報処理装置、情報処理システム、情報処理方法、及びプログラムを提供する。【解決手段】情報処理装置は、ソフトウェアを実現するプログラムの処理定義を示す情報と、前記プログラムがアクセスするデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析結果に基づいて、起点となるプログラムを示す情報、前記起点プログラムから呼び出されるサブプログラムを示す情報、及び前記起点プログラム及び前記サブプログラムからアクセスを行うデータ集合に関する情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理部と、前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合について、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定部と、を備える。【選択図】図４
2020160922.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理部と、
前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定部と、
を備える情報処理装置。
【請求項２】
前記決定部は、前記起点プログラム又は前記サブプログラムが前記共有データ集合に含まれるデータにアクセスを行う場合の、前記アクセスの種類に基づいて、前記帰属処理フローを決定する、
請求項１に記載の情報処理装置。
【請求項３】
前記決定部は、前記アクセスを行う複数の前記処理フローのうち、１つの処理フローからの前記アクセスの種類が前記共有データ集合に含まれるデータの変更であり、残りの前記処理フローからの前記アクセスの種類が前記共有データ集合に含まれるデータの取得である場合に、前記アクセスの種類が前記共有データ集合に含まれるデータの変更である前記処理フローを前記帰属処理フローに決定する、
請求項２に記載の情報処理装置。
【請求項４】
前記決定部は、前記共有データ集合に含まれるデータにアクセスを行う複数の前記処理フローのうち、２つ以上の前記処理フローについて、前記アクセスの種類が、いずれも前記データの変更であるか或いはいずれも前記データの取得であり、かつ、前記アクセスを行うデータが前記共有データ集合に含まれる同一のデータである場合に、当該前記処理フローを１つの統合処理フローにまとめ、前記統合処理フローを前記帰属処理フローに決定する、
請求項２に記載の情報処理装置。
【請求項５】
前記決定部は、前記共有データ集合に含まれるデータにアクセスを行う複数の前記処理フローのうち、２つ以上の前記処理フローについて、前記アクセスの種類がいずれも前記データの変更であるか或いはいずれも前記データの取得であり、かつ、前記アクセスを行うデータが前記共有データ集合に含まれる異なるデータである場合に、前記共有データ集合を、単一の前記処理フローからアクセスが行われるデータの集合ごとに分割し、分割したデータの集合である分割データ集合を、当該分割データ集合に含まれるデータにアクセスを行う前記処理フローを、当該分割データ集合の前記帰属処理フローに決定する、
請求項２に記載の情報処理装置。
【請求項６】
前記決定部は、前記ルート情報、前記解析結果、及び前記データの種別を示す種別情報にも基づいて、前記帰属処理フローを決定する、
請求項１から請求項５のいずれか一項に記載の情報処理装置。
【請求項７】
ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理部と、
前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定部と、
を備える情報処理システム。
【請求項８】
ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理ステップと、
前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定ステップと、
を含む情報処理方法。
【請求項９】
ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理ステップと、
前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定ステップと、
を、コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
古くなった既存システムの刷新を行う場合、費用や期間の兼ね合いから、既存のシステムで動いている業務処理自体は変更せず、動作する基盤などを新しく置き換えることがある。このような刷新の場合、刷新後のアーキテクチャの１つとしてマイクロサービスを組み合わせる構成があげられる。マイクロサービスを用いる場合、システムの機能をメンテナンスのしやすい範囲で小さく分割し、その分割単位でサービス化を行う。また、サービス間はＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）の呼び出しなどで疎結合とする。このようにサービス間を疎結合とすることで、システム改修時の期間とコストを削減し、タイムリーに更新できるようになる。
特許文献１には、関連する技術として、ソフトウェアにおけるデータの使われ方の実態を把握可能な技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−２２８０４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
マイクロサービス化を実現するためには、各サービスを疎結合となるようにデータを分割する必要がある。しかしながら、このようなデータの分割は、これまで業務の有識者がプログラムを解析することで行われることが多かった。そのため、データ分割に多くの手間がかかってしまう場合があった。
【０００５】
本発明は、上記の課題を解決する、情報処理装置、情報処理システム、情報処理方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
本発明の一態様によれば、情報処理装置は、ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理部と、前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定部と、を備えることを特徴とする。
【０００７】
また、本発明の一態様によれば、情報処理システムは、ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理部と、前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定部と、を備えることを特徴とする。
【０００８】
また、本発明の一態様によれば、情報処理方法は、ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理ステップと、前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定ステップと、を含むことを特徴とする。
【０００９】
また、本発明の一態様によれば、プログラムは、ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理ステップと、前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定ステップと、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、データの分割を処理内容に応じて効率的に行うことができる。
【図面の簡単な説明】
【００１１】
【図１】本発明に関する業務システムのマイクロサービス化を説明するための第１図である。
【図２】本発明に関する業務システムのマイクロサービス化を説明するための第２図である。
【図３】本発明に関する業務システムのマイクロサービス化を説明するための第３図である。
【図４】本発明の第１実施形態に係る情報処理装置の構成の一例を示す概要ブロック図である。
【図５】本発明の第１実施形態に係るデータアクセス情報の一例を示す図である。
【図６】本発明の第１実施形態に係るデータアクセス情報の別の一例を示す図である。
【図７】本発明の第１実施形態に係る制御構造情報の一例を示す図である。
【図８】本発明の第１実施形態に係る関係情報の一例を示す図である。
【図９】本発明の第１実施形態に係る関係情報の別の一例を示す図である。
【図１０】本発明の第１実施形態に係るルート情報の一例を示す図である。
【図１１】本発明の第１実施形態に係るルート抽出処理の一例を示すフローチャートである。
【図１２】本発明の第１実施形態に係るデータアクセス分析処理の一例を示すフローチャートである。
【図１３】本発明の第２実施形態に係る情報処理装置の構成の一例を示す概要ブロック図である。
【図１４】本発明の第２実施形態に係る業務情報の一例を示す図である。
【図１５】本発明の第２実施形態に係る解析結果の一例を示す図である。
【図１６】本発明の各実施形態に係る情報処理システムの最小構成の一例を示す概略ブロック図である。
【発明を実施するための形態】
【００１２】
＜マイクロサービスの概要＞
まず、図面を参照して、マイクロサービスについて概要を説明する。
マイクロサービスとは、ソフトウェア開発における技法・考え方の１つである。マイクロサービスにおいては、１つのアプリケーション（業務システム）を、業務機能に沿った複数の小さいサービスに分割する。全体のアプリケーションは、複数のマイクロサービスを疎結合して構成することで実現する。疎結合は例えば、ＡＰＩ呼び出しなどである。アプリケーションを複数のマイクロサービスに分割することによって、マイクロサービスごとに開発を行うことが可能になる。そのため、複数の開発を並列して行うことが可能になる。また、１つ１つのサービスが小さくなるため、開発者の理解、開発、テストがより容易になる。これらの要因によって、全体の業務システムの改修時の期間とコストを削減することが可能になる。
【００１３】
図１〜図３は、本発明に関する業務システムのマイクロサービス化を説明するための図である。
既存の業務システムをマイクロサービスにする場合、マイクロサービスとする範囲を決定する必要がある。１つのマイクロサービスの範囲の捉え方は、複数の方法があるが、そのうちの１つに、業務処理が開始されるプログラムからの一連の処理フローを１つのマイクロサービスと捉える考え方がある。
【００１４】
図１は、既存の業務システムの一例を示す図である。この図に示す一例では、業務システムを実行するためのプログラムがプログラム１〜８で示されている。また、業務システムを実行する際にアクセスされるデータベースがデータベース１で示されている。また、プログラム間の矢印や、プログラムからデータベースへの矢印は、呼び出し又はアクセス関係を示す。この図に示す例では、例えば、プログラム１はプログラム４を呼び出していることを示す。また、例えば、プログラム４は、プログラム１とプログラム２から呼び出されていて、プログラム６、プログラム７を呼び出し、データベース１にアクセスしていることを示す。
この図に示すように、既存の業務システムは、多くのプログラムや複雑に絡み合うだけでなく、多くのプログラムが１つ以上のデータベースにアクセスする状態となっている。そのため、このような業務システムをマイクロサービス化するためには、各プログラムを精査しなければならない。
【００１５】
このようなプログラム群をマイクロサービス化するために、一連の処理フローをマイクロサービスと捉える考え方が挙げられる。まず、一連の処理フローの起点となるプログラムを判定する。図１に示す例では、プログラム１、プログラム２、プログラム３は、どこからも呼び出しを受けていないプログラムである。そのため、これらのプログラムは起点となるプログラムである。従って、図１に示す例では、処理フローが３つ存在することになる。
【００１６】
続いて、全体のプログラムを処理フローごとに分割する。このとき、複数の処理フローで利用されているプログラムが存在する場合には、当該プログラムを利用されている処理フローの分だけ複製する。例えば、図１に示す例の場合、プログラム４は、プログラム１とプログラム２から呼び出されている。プログラム１とプログラム２は別の処理フローであるから、プログラム４は複製され分割される。
このように分割が行われた結果を図２に示す。プログラム４、５、７は、複数の処理フローで呼び出されているので、複製され分割されている。このように処理フローに応じてプログラムを複製、分割することで、プログラムについては、処理フローごとに分割することが可能になる。しかしながら、データベース１は分割されていないため、このままではマイクロサービス化することはできない。
【００１７】
全ての処理フローをマイクロサービス化するためには、図３に示すように、データベースについても処理フローに応じた分割が必要になる。図３に示す例では、データベース１は、データベース１１、データベース１２、データベース１３、及びデータベース１４に分割される。このようにデータベースを分割できれば、処理フローごとにマイクロサービス化することが可能になる。図３に示す例では、プログラム１、プログラム４、プログラム６、及び、データベース１１からなる処理フローを１つのマイクロサービスとすることができる。
【００１８】
図３のようにデータベースを分割するためには、図２におけるデータベース１を参照し、どのデータがどの処理に利用されているかを把握しなければならない。そのためには、データベースを呼び出すプログラム（図２の例では、プログラム４〜プログラム８の５つのプログラム）のそれぞれについて、処理を確認する必要がある。既存の業務システムが図１〜図３に示す例のように把握が容易である場合には処理の確認も容易である。しかしながら、実際には非常に多くの業務があるため、その処理の把握は非常に困難であることが多く、マイクロサービス化には膨大な時間を要することが多い。
【００１９】
＜第１実施形態＞
以下、図面を参照して、本発明の第１実施形態について詳しく説明する。
【００２０】
図１は、本発明の第１実施形態に係る情報処理装置１の構成の一例を示す概略ブロック図である。
情報処理装置１は、例えば、デスクトップパソコン、ノートパソコン、タブレット端末、スマートフォンなどの端末装置や、サーバなどの処理装置である。
情報処理装置１は、例えば、業務システムのプログラムや設定情報などを含む資産情報を解析する。また、情報処理装置１は、解析結果に基づいて、処理フローの起点となるプログラムを決定する。また、情報処理装置１は、起点となるプログラムから呼び出されるプログラムを処理フローごとに分割する。また、情報処理装置１は、一連の処理フローに含まれるプログラムから呼び出されるデータについて、呼び出されるデータと呼び出すプログラムを対応付ける。また、情報処理装置１は、対応付けた情報にもとづいて、データベースを分割する。
【００２１】
これにより、情報処理装置１は、業務の有識者やプログラムの開発者などがプログラムの解析を実施することなく、処理内容に応じてデータの分割を効率的に行うことができる。
【００２２】
情報処理装置１は、記憶部１１及び処理部１２を含んで構成される。
記憶部１１は、例えば、ハードディスクドライブ、メモリなどの記憶装置である。記憶部１１は、ファームウェアやアプリケーションプログラムなど、処理部１２が実行するための各種プログラム、及び、処理部１２が実行した処理の結果などを記憶する。
処理部１２は、中央演算装置（ＣＰＵ）などのプロセッサである。処理部１２は、例えば、記憶部１１に記憶する情報に基づいて、入力情報に対する出力情報を生成する。
【００２３】
具体的には、処理部１２は、記憶部１１に予め記憶された資産情報を読み出し、読み出した情報に基づいて、資産情報の解析を行う。ここで、資産情報とは、解析対象となるシステムを構成するアプリケーションの元となるソースコードや、アプリケーションの定義情報を含む。例えば、メインフレームの場合、ソースコードは、プログラムソースコードや、ジョブの処理を記述したＪＣＬソースコードなど、ユーザ（例えば、システムの開発者）が処理定義を記述したファイルを示す。また、例えば、メインフレームの場合、定義情報は、システムを構成するアプリケーションの各種設定情報を示す。
また、処理部１２は、解析結果に基づいて、システムを構成するプログラムの処理の流れ（以下、「ルート情報」とも称する）を抽出する。また、処理部１２は、抽出したルート情報と、解析結果に含まれるプログラムのデータへのアクセス情報（以下、「データアクセス情報」とも称する）とに基づいて、ルート情報ごとにアクセスするデータを判定すする。処理部１２は、判定結果に応じて、システムが利用しているデータを必要に応じて分割する。
【００２４】
＜情報処理装置の記憶部＞
記憶部１１について、詳細を説明する。記憶部１１は、資産情報記憶部１１１、解析結果記憶部１１２、ルート情報記憶部１１３、及び、分析結果記憶部１１４を含んで構成される。
【００２５】
資産情報記憶部１１１は、資産情報を記憶する。
解析結果記憶部１１２は、解析部１２１が資産情報を解析した解析結果を記憶する。解析結果は、データアクセス情報、制御構造情報、及び、関係情報を含んで構成される。データアクセス情報は、アクセスするデータ（ファイルやテーブルなど）とプログラムとの対応関係を示す情報である。また、制御構造情報は、個々のプログラムの処理フローに従って、当該プログラムに存在する処理、分岐、繰り返し、他のプログラムや関数の呼び出しなどを示す情報である。関係情報は、プログラム間の呼び出し関係や、プログラム内で他の資産情報を引用している場合の引用関係を示す情報である。
【００２６】
解析結果記憶部１１２は、データアクセス情報記憶部１１２１、制御構造情報記憶部１１２２、及び、関係情報記憶部１１２３を含んで構成される。データアクセス情報記憶部１１２１は、データアクセス情報（図５、図６参照）を記憶する。制御構造情報記憶部１１２２は、制御構造情報（図７参照）を記憶する。関係情報記憶部１１２３は、関係情報（図８、図９参照）を記憶する。それぞれの記憶部が記憶する情報の具体例については、後述する。
【００２７】
ルート情報記憶部１１３は、ルート情報（図１０参照）を記憶する。ルート情報記憶部１１３は、ルート抽出部１２２が、解析結果に基づいて抽出したルート情報を記憶する。ルート情報の具体例については、後述する。
【００２８】
分析結果記憶部１１４は、対象となるシステムの解析結果と、ルート情報とに基づいて、システムがアクセスするデータを分析した結果である分析結果を記憶する。分析結果記憶部１１４は、データアクセス分析部１２３が、システムが使用するデータの分析結果を記憶する。また、分析結果は、必要に応じてデータアクセス分析部１２３が行うデータ分割の結果についても分析結果に含めて記憶する。
【００２９】
以下、記憶部１１が記憶するデータアクセス情報、制御構造情報、関係情報、ルート情報の一例について、図５〜図１０を用いて説明する。
【００３０】
図５は、本発明の第１実施形態に係るデータアクセス情報の一例を示す図である。
この図に示す一例では、データアクセス情報は、データを構成するテーブル又はファイルレベルでの、データとプログラムとの対応関係をＣＲＵＤ図で示した情報である。なお、データアクセス情報の表現形式はＣＲＵＤ図に限られない。
ＣＲＵＤ図は、データ（又はデータを構成するテーブル、ファイル）と、当該データがどのプログラムで作成（Ｃｒｅａｔｅ、図中では「Ｃ」で表示）、参照（Ｒｅａｄ、図中では「Ｒ」で表示）、更新（Ｕｐｄａｔｅ、図中では「Ｕ」で表示）、及び、削除（Ｄｅｌｅｔｅ、図中では「Ｄ」で表示）されるかということを対応付けて示した図である。以下では、作成、参照、更新、及び削除のいずれかの処理のことを「アクセス（アクセスする）」とも称する。
【００３１】
この図に示す一例では、データアクセス情報は、Ｎｏ．と、種別と、ＤＢ・ファイル名情報と、複数のプログラムとを対応付けた情報である。Ｎｏ．は、データを構成するテーブル又はファイルを識別するための識別子を示す情報である。種別は、データを構成する構成要素を示す情報である。構成要素は、例えばテーブルやファイルなど、データを含む１つのまとまりである。ＤＢ・ファイル名情報は、データを構成する構成要素を示す名称（ファイル名やデータベース名）を示す情報である。
【００３２】
この図に示す一例では、「Ｎｏ．」が“１”で、「種別」が“テーブル”で、「ＤＢ・ファイル名」が“テーブル１”に対応するテーブルに対して、「プログラム１」と「プログラム２」から参照されている（“Ｒ”の表示）ことを示す。また、「Ｎｏ．」が“２”で、「種別」が“テーブル”で、「ＤＢ・ファイル名」が“テーブル２”に対応するテーブルに対して、「プログラム３」からは作成、参照、更新が行われる（“ＣＲＵ”の表示）ことを示す。
【００３３】
図６は、本発明の第１実施形態に係るデータアクセス情報の別の一例を示す図である。
この図に示す一例では、データアクセス情報は、データを構成するテーブル又はファイル中で定義されるデータ項目レベルでの、データとプログラムとの対応関係をＣＲＵＤ図で示した情報である。なお、図５と同様に、データアクセス情報の表現形式はＣＲＵＤ図に限られない。
【００３４】
この図に示す一例では、データアクセス情報は、Ｎｏ．と、種別と、ＤＢ・ファイル名情報と、データ項目名と、複数のプログラムとを対応付けた情報である。ここで、Ｎｏ．は、データを構成するデータ項目であって、テーブル又はファイルにおいて定義されるデータ項目を識別するための識別子を示す情報である。データ項目名は、データ項目の名称を示す情報である。
この図に示す一例では、「Ｎｏ．」が“１”で、「種別」が“テーブル”で、「ＤＢ・ファイル名」が“テーブル１”で、「データ項目名」が“項目１”に対応するデータに対して、「サブプログラム４」から参照されている（“Ｒ”の表示）ことを示す。
【００３５】
図７は、本発明の第１実施形態に係る制御構造情報の一例を示す図である。
この図に示す一例は、１つのプログラムの制御構造情報をフローチャートで示したものである。この図に示す一例では、プログラムを開始すると、最初にプログラムは“ＰＲＯＧ１”で識別される他のプログラムを呼び出す（“ＣＡＬＬ  ＰＲＯＧ１”）。続いて、プログラムは何らかの条件によって分岐を行う（“ＩＦ”）。１つ目の分岐においては、プログラムは、“ＰＲＯＧ２”で識別される他のプログラムを呼び出す（“ＣＡＬＬ  ＰＲＯＧ２”）。その後プログラムは終了する。一方、もう１つの分岐においては、プログラムは、“ＡＡＡ”というデータを“ＢＢＢ”という変数に代入する（“ＭＯＶＥ  ＡＡＡ  ＴＯ  ＢＢＢ”）。続いて、プログラムは変数“ＢＢＢ”のデータを書き込む（“ＷＲＩＴＥ  ＢＢＢ”）。この時、“ＢＢＢ”を書き込む先のデータが更新される。その後、プログラムは終了する。
【００３６】
図８は、本発明の第１実施形態に係る関係情報の一例を示す図である。
この図に示す一例では、プログラム間の呼び出し関係を示す関係情報の一例を示す。この図に示す一例において、関係情報は、Ｎｏ．と、呼出元プログラムと、呼出先プログラムと、引数とを関連付けた情報である。Ｎｏ．は関係情報を識別するための識別子を示す情報である。呼出元プログラムは、他のプログラムを呼び出すプログラムを示す。呼出先プログラムは、他のプログラムから呼び出されるプログラムを示す。引数は、呼出元プログラムから、呼出先プログラムを呼び出す場合に、呼出先プログラムを実行するために必要な情報をやりとりするための変数を示す情報である。なお、引数は複数あってもよいし、なくてもよい。
【００３７】
この図に示す一例では、「Ｎｏ．」が“１”の関係情報は、「呼出元プログラム」が“プログラム１”であり、「呼出先プログラム」が“プログラム４”であり、「引数」が“ＰＲＡＭ１”であることを示す。
【００３８】
図９は、本発明の第１実施形態に係る関係情報の別の一例を示す図である。
この図に示す一例では、プログラムが他の情報を引用している場合の引用関係を示す関係情報の一例を示す。この図に示す一例において、関係情報は、Ｎｏ．と、引用元資産と、引用先資産と、引用先資産種別とを関連付けた情報である。Ｎｏ．は関係情報を識別するための識別子を示す情報である。引用元資産は、他の情報を引用する資産情報を示す。引用先資産は、引用元資産が他の情報を引用する場合の引用形式を示す情報である。また引用先資産種別は、引用先の資産情報を示す情報である。
【００３９】
この図に示す一例では、「Ｎｏ．」が“１”の関係情報は、「引用先資産」が“プログラムＡ”であり、「引用先資産」が“ＣＯＰＹ１”であり、「引用先資産種別」が“登録集原文”であることを示す。この例では、ＣＯＰＹ構文を用いて、登録集原文に含まれているデータの定義を引用することを示す。また、「Ｎｏ．」が“２”の関係情報は、「引用先資産」が“プログラムＡ”であり、「引用先資産」が“ＭＡＣＲＯ１”であり、「引用先資産種別」が“マクロ”であることを示す。この例では、ＭＡＣＲＯ構文を用いて、マクロに含まれている関数の定義を引用することを示す。
【００４０】
図１０は、本発明の第１実施形態に係るルート情報の一例を示す図である。
この図に示す一例では、Ｎｏ．と、起点プログラムと、関係先種別と関係先名との組み合わせとを対応付けた情報である。ルート情報には複数の上記組み合わせが対応する場合がある。
ここで、Ｎｏ．はルート情報を識別する識別子を示す情報である。起点プログラムとは、他のプログラムから呼び出されないプログラムを示す。関係先種別は、呼び出し先又はアクセス先の種類を示す情報である。関係先種別は、例えば、プログラム、データベース、ファイルなどである。関係先名は、呼び出し先又はアクセス先のプログラム、データベース、ファイルなどの名称を示す情報である。
【００４１】
あるプログラムから呼び出されるプログラムを下位のプログラムとも称する。また、あるプログラムを呼び出すプログラムを上位のプログラムとも称する。この場合、起点プログラムには上位のプログラムが存在しない。また、関係先種別１と関係先名１の組は起点プログラムから直接呼び出されるプログラム、又は直接アクセスされるデータベース、ファイルなどである。関係先種別２と関係先名２の組は、更に下位のプログラム、データベース、ファイルなどであり、関係先種別１と関係先名１の組から呼び出される又はアクセスされる。すなわち、図１０に示す情報は、同じ列を左から右へたどることによって、呼び出し元と、呼び出し先（アクセス先）とが順番に示される。
【００４２】
この図に示す一例では、「Ｎｏ．」が“１”のルート情報は、「起点プログラム」が“プログラムＡ”であり、起点プログラムから呼び出される「関係先種別１」が“プログラム”で、「関係先名」が“サブプログラム１”である。すなわち、“プログラムＡ”の内部で、“サブプログラム１”という名称の下位の“プログラム”が呼び出されることを示す。
また、この図に示す一例では、「Ｎｏ．」が“２”のルート情報は、「起点プログラム」が“プログラムＡ”であり、起点プログラムから呼び出される「関係先種別１」が“プログラム”で、「関係先名」が“サブプログラム２”である。更に、「関係先種別２」が“データベース”で「関係先名」が“テーブル１”である。すなわち、“プログラムＡ”の内部で、“サブプログラム２”という名称の下位の“プログラム”が呼び出されることを示す。また、“サブプログラム２”の内部で、“テーブル１”という名称の下位の“データベース”がアクセスされることを示す。
【００４３】
＜情報処理装置の処理部＞
図４に戻って、処理部１２について、詳細を説明する。処理部１２は、解析部１２１、ルート抽出部１２２、及び、データアクセス分析部１２３を含んで構成される。
【００４４】
解析部１２１は、資産情報記憶部１１１から資産情報を取得し、解析を行う。ここで、解析とは、資産情報に含まれるプログラムで使用されるプログラム言語に基づいて、そのプログラム言語の構文に従った解析を行うことを示す。解析部１２１は、解析結果として、データアクセス情報、制御構造情報、及び、関係情報を、データアクセス情報記憶部１１２１、制御構造情報記憶部１１２２、及び、関係情報記憶部１１２３にそれぞれ記憶させる。
【００４５】
ルート抽出部１２２は、解析結果記憶部１１２から解析結果を取得し、取得した情報に基づいて、プログラムの処理フローを抽出する。処理フローとは、起点プログラムから呼び出される一連のプログラム、又はアクセスされるデータなどを呼び出される順、アクセスされる順に示した場合の、当該順を示す。ルート抽出部１２２は、抽出した処理フローをルート情報として、ルート情報記憶部１１３に記憶させる。ルート抽出部１２２の処理の詳細は後述する。
【００４６】
データアクセス分析部１２３は、データアクセス情報記憶部１１２１及びルート情報記憶部１１３から、データアクセス情報及びルート情報をそれぞれ取得し、取得した情報に基づいて、処理フローに属するデータを判定する。また、データアクセス分析部１２３は、判定結果に基づいてデータベースやファイルを分割する。ここで、処理フローに属するデータとは、処理フローに含まれるプログラムから呼び出されるデータを示す。データアクセス分析部１２３は、判定結果及び分割結果（以下、「分析結果」とも称する）を分析結果記憶部１１４に記憶させる。データアクセス分析部１２３の処理の詳細は後述する。
【００４７】
＜情報処理装置の動作＞
図１１は、本発明の第１実施形態に係るルート抽出部１２２の処理の一例を示すフローチャートである。
【００４８】
まず、ルート抽出部１２２は、関係情報記憶部１１２３から関係情報を取得する。ルート抽出部１２２は、取得した関係情報に基づき、プログラムのうち他のプログラムから呼び出されていないプログラムを抽出する（ステップＳ１００）。具体的には、ルート抽出部１２２は、プログラム間の呼び出し関係を示す関係情報（図８）の呼出元プログラムに含まれ、呼出先プログラムに含まれないプログラムを、他のプログラムから呼び出されないプログラムとして抽出する。ルート抽出部１２２は抽出すると処理をステップＳ１０１に進める。
【００４９】
ルート抽出部１２２は、抽出したプログラムを起点プログラムとし、当該プログラムから呼び出されるプログラムや関数を再帰的に抽出する（ステップＳ１０１）。具体的には、ルート抽出部１２２は、関係情報（図８、図９）を参照し、起点プログラムから呼び出されるプログラムや関数、引用される情報（以下、まとめて「プログラム」とも称する）などを抽出する。ルート抽出部１２２は、抽出したプログラムから更に呼び出されるプログラムを抽出する。このような処理を呼び出されるプログラムがなくなるまで再帰的に繰り返す。ルート抽出部１２２は抽出すると処理をステップＳ１０２に進める。
【００５０】
ルート抽出部１２２は、抽出した各プログラムからアクセスされるデータの情報を抽出する（ステップＳ１０２）。具体的には、ルート抽出部１２２は、データアクセス情報記憶部１１２１から、データアクセス情報を取得し、取得した情報と、抽出したプログラムとに基づいて、各プログラムからアクセスされるデータを抽出する。ルート抽出部１２２は抽出すると処理をステップＳ１０３に進める。
【００５１】
ルート抽出部１２２は、制御構造情報に基づいて、抽出した呼び出し先プログラムの呼び出し順及び、抽出したデータへのアクセス順を処理順に整理する（ステップＳ１０３）。具体的には、ルート抽出部１２２は、制御構造情報記憶部１１２２から制御構造情報を取得し、取得した制御構造情報と、抽出したプログラム、データとに基づいて、処理順を取得する。ルート抽出部１２２は、処理順を取得すると、処理をステップＳ１０４に進める。
【００５２】
ルート抽出部１２２は、取得した処理順に従って、各起点プログラムからの処理フローをルート情報としてルート情報記憶部１１３に記憶させる（ステップＳ１０４）。具体的には、ルート抽出部１２２は、処理順に基づいて、起点プログラムからの処理一覧を処理フローとする。ルート抽出部１２２は、各処理フローをルート情報として、ルート情報記憶部１１３に記憶させる。ルート情報は、例えば、処理フローを表現する構造として、繋がりの情報をもったＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）形式、バイナリ形式などで記述される。ルート抽出部１２２は、以上で、ルート抽出の処理を終了する。
【００５３】
図１２は、本発明の第１実施形態に係るデータアクセス分析部１２３の処理の一例を示すフローチャートである。
【００５４】
まず、データアクセス分析部１２３は、処理フロー間で共有しているデータを抽出する（ステップＳ２００）。具体的には、まずデータアクセス分析部１２３は、ルート情報記憶部１１３からルート情報を取得する。データアクセス分析部１２３は、取得したルート情報に基づいて、複数のルートでアクセスされているデータの情報を抽出する。抽出すると、データアクセス分析部１２３は、処理をステップＳ２０１に進める。
【００５５】
データアクセス分析部１２３は、共有しているデータのアクセスの種類を取得し、アクセスの種類がファイル又はテーブルの粒度で異なるか否かを判定する（ステップＳ２０１）。アクセスの種類は、具体的には作成（Ｃ）、参照（Ｒ）、更新（Ｕ）、削除（Ｄ）である。「ファイル又はテーブルの粒度で異なる」とは、共有しているデータにアクセスしている複数の処理フローに含まれるプログラムについて、以下の２条件の両方を満たす場合である。１つ目の条件は、ある１つの処理フローからのアクセスは、作成、更新、削除（これらをまとめて「更新系」とも称する）を含むことである。この処理フローからのアクセスには、参照を含んでもよい。２つ目の条件は、共有しているデータにアクセスしている処理フローであって、他の全ての処理フローからのアクセスは、参照のみであることである。「ファイル又はテーブルの粒度が異ならない」とは上記以外の場合を示す。
【００５６】
データアクセス分析部１２３は、上記の２条件の両方を満たす場合、ファイル又はテーブルの粒度でデータアクセスが異なると判定し（ステップＳ２０１：ＹＥＳ）、処理をステップＳ２０２に進める。一方、データアクセス分析部１２３は、上記の２条件のどちらかを満たさない場合、ファイル又はテーブルの粒度でデータアクセスが異ならないと判定し（ステップＳ２０１：ＮＯ）、処理をステップＳ２０３に進める。
【００５７】
具体的な例を、図５、図１０を用いて説明する。
図１０におけるＮｏ．“２”とＮｏ．“４”の場合、この２つの処理フローは、起点プログラムがそれぞれ“Ａ”と“Ｂ”である。そのため、この２つの処理フローは、異なる処理フローである。そして、それぞれが、２つ目のアクセス先として、“テーブル３”の“データベース”を参照している。そのため、データアクセス分析部１２３は、“テーブル３”を共有しているデータであると判定する。また、データアクセス分析部１２３は、このデータにアクセスするプログラムを、関係先名１を参照することによって取得する。すなわち、データアクセス分析部１２３は“サブプログラム２”と“サブプログラム３”から共有データである“テーブル３”にアクセスされていることを取得する。
【００５８】
続いて、データアクセス分析部１２３は、図５を参照し、アクセスの種類がテーブルの粒度で異なるか否かを判定する。図５のＮｏ．“３”には、テーブル３にはサブプログラム２からは参照（Ｒ）のみのアクセスが行われ、サブプログラム３からは作成、参照、更新、削除（ＣＲＵＤ）のアクセスが行われることが示されている。データアクセス分析部１２３は、この情報を取得し、プログラムＡを起点プログラムとする処理フローは、参照のみ（更新系でない）であり、プログラムＢを起点プログラムとする処理フローは、更新系であることを取得する。この場合、データアクセス分析部１２３は、ファイル又はテーブルの粒度が異なると判定する。
【００５９】
データアクセス分析部１２３は、ファイル・テーブル粒度でアクセス種類の異なるデータを更新系の処理フローに帰属すると判定する（ステップＳ２０２）。また、この場合、当該データにアクセスするその他の処理フローについては、当該データへのアクセスを、更新系の処理フローへの問い合わせという形とする。マイクロサービス化した場合には、更新系の処理フローからなるマイクロサービスと、他の個々の処理フローからなるマイクロサービスとは当該問い合わせの介する疎結合とされる。データアクセス分析部１２３は、帰属処理を終えると、処理をステップＳ２０６に進める。
上記の図５、図１０の例では、テーブル３は、プログラムＢを起点とする処理フローに帰属する。プログラムＡを起点とする処理フローはこの処理フローへ問い合わせる形となる。
【００６０】
ファイル・テーブル粒度でデータアクセスが異ならない場合は、データ項目の粒度でデータアクセスが異なるか否かを判定する（ステップＳ２０４）。データ項目の場合、「データ項目の粒度でデータアクセスが異なる」とは、共有しているデータにアクセスしている複数の処理フローに含まれるプログラムについて、以下の２条件のどちらかを満たすか場合である。１つ目の条件は、複数の処理フローから同一のデータ項目にアクセスがあって、ある１つの処理フローから当該データ項目へのアクセスは更新系であり、他の全ての処理フローから当該データ項目へのアクセスは参照のみであることである。もう１つの条件は、あるデータ項目へのアクセスが単一の処理フローのみから行われることである。
【００６１】
データアクセス分析部１２３は、上記の２条件のどちらか満たす場合、データ項目の粒度でデータアクセスが異なると判定し（ステップＳ２０３：ＹＥＳ）、処理をステップＳ２０４に進める。一方、データアクセス分析部１２３は、上記の２条件のどちらも満たさない場合、データ項目の粒度でデータアクセスが異ならないと判定し（ステップＳ２０１：ＮＯ）、処理をステップＳ２０５に進める。
【００６２】
具体的な例を、図６、図１０を用いて説明する。
図１０におけるＮｏ．“６”とＮｏ．“７”の場合、この２つの処理フローは、起点プログラムがそれぞれ“Ｄ”と“Ｅ”である。そのため、この２つの処理フローは、異なる処理フローである。そして、それぞれが、２つ目のアクセス先として、“テーブル４”の“データベース”を参照している。そのため、データアクセス分析部１２３は、“テーブル４”を共有しているデータであると判定する。また、データアクセス分析部１２３は、このデータにアクセスするプログラムを、関係先名１を参照することによって取得する。すなわち、データアクセス分析部１２３は“サブプログラム４”と“サブプログラム５”から共有データである“テーブル４”にアクセスされていることを取得する。また、データアクセス分析部１２３は、データを構成するテーブルの粒度でデータアクセスが異ならないと判定したものとする。
【００６３】
続いて、データアクセス分析部１２３は、図６を参照し、アクセスの種類がデータ項目の粒度で異なるか否かを判定する。図６を参照すると、“項目１”及び“項目２”については、サブプログラム４から参照（Ｒ）されているのに対し、サブプログラム５からはアクセスされていない。また、“項目３”、“項目４”、“項目５”については、サブプログラム４からはアクセスされていないのに対し、サブプログラム５からは参照（Ｒ）されている。データアクセス分析部１２３は、上述した情報を取得し、それぞれのデータ項目にはどちらかの処理フローからしかアクセスされていないため、上述した２つ目の条件を満たすと判定する。
【００６４】
データアクセス分析部１２３は、データ項目の粒度でアクセス種類の異なるデータに基づいて、テーブルやファイルを分割する（ステップＳ２０４）。具体的には、データアクセス分析部１２３は、データ項目の粒度でアクセス種類の異なるデータについて、複数の処理フローからアクセスされている場合は、当該データを更新系の処理フローに帰属すると判定する。また、この場合、当該データにアクセスするその他の処理フローについては、当該データへのアクセスを、更新系の処理フローへの問い合わせという形とする。また、データへのアクセスが単独の処理フローのみから行われる場合、データアクセス分析部１２３は、当該データをアクセスされる処理フローに帰属すると判定する。
続いて、データアクセス分析部１２３は、帰属した処理フローに応じて、データが含まれるテーブルやファイルを分割する。データアクセス分析部１２３は、帰属処理及び分割処理を終えると、処理をステップＳ２０６に進める。
【００６５】
上記の図６、図１０の例では、テーブル４のうち、項目１と項目２のデータは、プログラムＤを起点とする処理フローに帰属し、項目３、項目４、項目５のデータは、プログラムＥを起点とする処理フローに帰属する。また、テーブル４は、項目１及び項目２のデータを含むサブテーブル４１と、項目３、項目４、項目５のデータを含むサブテーブル４２とに分割される。
【００６６】
データアクセス分析部１２３は、データ項目の粒度でもアクセス種類が異ならない場合、データを共有するルートをまとめて１つのルートにする（ステップＳ２０５）。この場合、起点となるプログラムは複数となる。データアクセス分析部１２３は、ルートをまとめると、処理をステップＳ２０６に進める。
【００６７】
データアクセス分析部１２３は、共有しているデータがまだあるか否かを判定する（ステップＳ２０６）。データアクセス分析部１２３は、ステップＳ２００で抽出した複数処理フロー間で共有しているデータのうち、上述した処理で共有が解消されていないデータがまだある場合、共有しているデータがまだあると判定し（ステップＳ２０６：ＹＥＳ）、処理をステップＳ２０１に戻す。データアクセス分析部１２３は、上述した処理によって、全てのデータの共有状態が解消された場合、共有しているデータはないと判定し（ステップＳ２０６：ＮＯ）、処理をステップＳ２０７に進める。
【００６８】
データアクセス分析部１２３は、分析結果を分析結果記憶部１１４に出力し、処理を終了する。
【００６９】
以上説明したように、情報処理装置１は、ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報（資産情報）と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合（データベースやファイル）と、に基づく前記プログラムの解析の結果である解析結果（データアクセス情報、制御構造情報、関係情報）に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理部（ルート抽出部１２２）と、前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フロー（帰属先）を決定する決定部（データアクセス分析部１２３）と、を備える。
【００７０】
これにより、情報処理装置１は、ソフトウェア（業務システム）を実現するための複数のプログラムが、データを含むデータベースやファイルに対してアクセスする場合の、アクセス方法に基づいて、起点となるプログラムから呼び出される一連のプログラムを含む複数の処理フローのうち、どの処理フローに帰属させればよいかを判定することができる。そのため、マイクロサービス化する際に、ソフトウェアの有識者（又は業務の有識者）の手を煩わせることなく、処理内容に応じてデータを帰属先ごとに効率的に分割することができる。
【００７１】
また、情報処理装置１の決定部（データアクセス分析部１２３）は、前記起点プログラム又は前記サブプログラムが前記共有データ集合に含まれるデータにアクセスを行う場合の、前記アクセスの種類に基づいて、前記帰属処理フローを決定する。
これにより、同一のデータベース又はファイルに複数の処理フローからアクセスされている場合でも、１つの処理フローに当該データを帰属させ、他の処理フローからは当該処理フローへの問い合わせの形にすることで、より細かい粒度でのマイクロサービス化に向けて、データを処理内容に応じて効率的に分割することができる。
【００７２】
また、情報処理装置１の決定部（データアクセス分析部１２３）は、前記アクセスを行う複数の前記処理フローのうち、１つの処理フローからの前記アクセスの種類が前記共有データ集合に含まれるデータの変更であり、残りの前記処理フローからの前記アクセスの種類が前記共有データ集合に含まれるデータの取得である場合に、前記アクセスの種類が前記共有データ集合に含まれるデータの変更である前記処理フローを前記帰属処理フローに決定する。
これにより、帰属させる処理フローはデータの変更が行われる処理フローにすることで、他の処理フローからの当該データへのアクセスを、変更の処理を含まないものにすることで処理フロー間の結合を疎結合にすることが可能になる。従って、マイクロサービス化に向けて、よりマイクロサービス間の結合が疎結合になるように、処理内容に応じてデータの分割を効率的に行うことができる。
【００７３】
また、情報処理装置１の決定部（データアクセス分析部１２３）は、前記共有データ集合に含まれるデータにアクセスを行う複数の前記処理フローのうち、２つ以上の前記処理フローについて、前記アクセスの種類が、いずれも前記データの変更であるか或いはいずれも前記データの取得であり、かつ、前記アクセスを行うデータが前記共有データ集合に含まれる同一のデータである場合に、当該前記処理フローを１つの統合処理フローにまとめ、前記統合処理フローを前記帰属処理フローに決定する。
これにより、複数の処理フローからデータのアクセスが行われていて、どちらの処理フローにも属することが好ましくない場合には、分割が行えない処理フローをまとめた１つの処理フローとすることで、まとめない場合にはソフトウェアの有識者（又は業務の有識者）を要する解析を行わずに済ませることができる。従って、マイクロサービス化に向けて、データを処理内容に応じて効率的に分割することができる。
【００７４】
また、情報処理装置１の決定部（データアクセス分析部１２３）は、前記共有データ集合に含まれるデータにアクセスを行う複数の前記処理フローのうち、２つ以上の前記処理フローについて、前記アクセスの種類がいずれも前記データの変更であるか或いはいずれも前記データの取得であり、かつ、前記アクセスを行うデータが前記共有データ集合に含まれる異なるデータである場合に、前記共有データ集合を、単一の前記処理フローからアクセスが行われるデータの集合ごとに分割し、分割したデータの集合である分割データ集合を、当該分割データ集合に含まれるデータにアクセスを行う前記処理フローを、当該分割データ集合の前記帰属処理フローに決定する。
これにより、複数の処理フローからアクセスされているデータベースやファイルについて、データベースやファイルに含まれるデータ項目の粒度の観点から見た場合には、複数の処理フローの各々が別々のデータ項目にアクセスしている場合、アクセスしている項目毎にデータベースやファイルを分割することによって、処理フローをより細かい粒度で作成することができる。従って、より細かい粒度でのマイクロサービス化に向けて、データを処理内容に応じて効率的に分割することができる。
【００７５】
＜第２実施形態＞
以下、図面を参照して、本発明の第２実施形態について詳しく説明する。
本実施形態では、データの特徴を示す業務情報を考慮してデータ分割を行う場合の変形例について説明する。以降、第１実施形態と同様の構成には、同一の符号を付与してここでの説明を省略する。
【００７６】
図１３は、本発明の第２実施形態に係る情報処理装置１ａの一例を示す概要ブロック図である。
情報処理装置１ａは、記憶部１１ａ、及び、処理部１２ａを含んで構成される。記憶部１１ａは、第１実施形態の記憶部１１（図４）と比較して、業務情報記憶部１１５ａが追加される点が異なる。以下、業務情報記憶部１１５ａについて説明する。
【００７７】
業務情報記憶部１１５ａは、業務情報を記憶する。業務情報とは、業務システムで用いられるデータの特徴を示す情報である。業務システムで用いられるデータには、２つの種類に大別される。一つは、全業務で共通して用いられるマスタデータである。もう一つは各業務処理に固有のトランザクションデータである。マスタデータは変更頻度の低いデータであり、様々な業務から参照される。トランザクションデータは日々の業務で更新・参照されるデータであり、特定の業務からアクセスされる。業務情報はデータを含むファイル・テーブルがどちらのデータかを示す情報である。
【００７８】
図１４は、本発明の第２実施形態に係る業務情報の一例を示す図である。
この図に示す一例では、業務情報は、Ｎｏ．と、種別と、ＤＢ・ファイル名と、データタイプとを対応付けた情報である。Ｎｏ．は業務情報を識別するための識別子を示す情報である。データタイプは、ＤＢ・ファイル名に含まれるデータが、マスタデータであるか、トランザクションデータであるかを示す情報である。
この図に示す一例では、「Ｎｏ．」が“１”の業務情報は、「種別」が“テーブル”で、「ＤＢ・ファイル名」が“テーブル１”に含まれるデータの「データタイプ」が“マスタ”（マスタデータ）であることを示す。
【００７９】
図１３に戻って、処理部１２ａは、第１実施形態の処理部１２（図４）と比較して、データアクセス分析部１２３ａの機能がデータアクセス分析部１２３と異なる。データアクセス分析部１２３ａの基本的な機能は、データアクセス分析部１２３と同様である。以下、データアクセス分析部１２３ａの機能のうち、データアクセス分析部１２３と異なる機能について説明する。
【００８０】
データアクセス分析部１２３ａは、業務情報にも基づいて、処理フローに属するデータを判定する。また、データアクセス分析部１２３ａは、判定結果に基づいてデータベースやファイルを分割する。
データアクセス分析部１２３ａは、データ項目の粒度でもデータアクセスが異ならない場合（図１２のステップＳ２０３：ＮＯ）、共有されているデータを含むデータベースやファイルについて、業務情報の種類を取得する。具体的には、データアクセス分析部１２３ａは、業務情報記憶部１１５ａから業務情報を取得し、共有されているデータを含むデータベースやファイルがマスタデータであるか否かを判定する。
【００８１】
データアクセス分析部１２３ａは、共有されているデータがマスタデータである場合には、マスタデータへのアクセスを除外する。この場合、データアクセス分析部１２３ａは、分析結果として、当該データへのアクセスについてはアクセス自体のサービス化するなど、マイクロサービス化とは異なる処理が必要であることを示す情報を出力する。また、データアクセス分析部１２３ａは、マスタデータ以外のデータへのアクセスについて、第１実施形態と同様の処理を行う。
【００８２】
また、データアクセス分析部１２３ａは、共有されているデータがトランザクションデータの場合には、データを共有するルートをまとめて１つのルートにする（図１２のステップＳ２０５と同様の処理）。
【００８３】
具体的な例を、図１４、図１５を用いて説明する。
図１５は、本発明の第２実施形態に係る解析結果の一例を示す図である。図１５の上段はデータアクセス情報記憶部１１２１が記憶するデータアクセス情報の一例を示す。また、図１５の下段は、関係情報記憶部１１２３が記憶する関係情報の一例を示す。
【００８４】
データアクセス分析部１２３ａは、図１５を参照して、テーブル１が多くの処理フローに含まれるプログラムからアクセスされていると判定する。図１５に示す例では、テーブル１は、プログラムＡを起点とする処理フローのサブプログラム２、プログラムＢを起点とする処理フローのサブプログラム３、プログラムＢを起点とする処理フローのサブプログラム５、プログラムＣを起点とする処理フローのサブプログラム５及びサブプログラム５１、プログラムＤを起点とする処理フローのサブプログラム６１及びサブプログラム６から呼び出されている。また、いずれのプログラムについても、テーブル１へのアクセスは参照（Ｒ）であり、テーブルの粒度ではデータ分割を行うことができない。また、同様にデータ項目の粒度でもデータ分割できないものとする。
【００８５】
この場合、データアクセス分析部１２３ａは、図１４を参照し、テーブル１のデータタイプを取得する。図１４に示す例では、テーブル１のデータタイプはマスタであり、テーブル１に含まれるデータがマスタデータであることを示す。データアクセス分析部１２３ａは、この情報を取得し、テーブル１はマスタデータなのでマイクロサービス化に向けた処理を行わないと判定する。データアクセス分析部１２３ａは、解析結果記憶部１１２から取得した情報から、テーブル１に含まれる情報を除外し、再度、処理フローに帰属するデータを判定する。また、データアクセス分析部１２３ａは、判定結果に基づいてデータベースやファイルを分割する。
【００８６】
図１５に示す例では、テーブル１を除外すると、テーブル２のみが複数の処理フローからアクセスされている。また、それぞれのアクセスの種類は、一方の処理フロー（プログラムＢを起点プログラムとする処理フローのサブプログラム４）は参照のみ（Ｒ）であり、もう一方（プログラムＣを起点プログラムとする処理フローのサブプログラム５２）は更新系（ＣＲＵＤ）であることから、テーブルの粒度で帰属することができると判定する。
【００８７】
以上説明したように、情報処理装置１ａは、ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理部（ルート抽出部１２２）と、前記ルート情報、前記解析結果、及び前記データの種別を示す種別情報（業務情報）に基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定部（データアクセス分析部１２３ａ）、と、を備える。
これにより、情報処理装置１ａは、システム全体で用いられるマスタデータへのアクセスなどの場合には、マスタデータへのアクセスをマイクロサービス化へ向けた処理から除外することで、処理フローを細かく分けることが可能になる。そのため、より細かい粒度でのマイクロサービス化に向けて、処理内容に応じたデータの分割を効率的に行うことができる。
【００８８】
図１６は、上記の各実施形態に係る情報処理装置１の最小構成の一例を示すブロック図である。
この図に示すように、情報処理装置１は、ルート処理部１０１と、決定部１０２とを備える。
ルート処理部１０１はソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とする。
決定部１０２は、前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する。
【００８９】
なお、上述した第２実施形態において、データアクセス分析部１２３ａは、データ項目の粒度でもデータアクセスが異ならない場合に、業務情報記憶部１１５ａから業務情報を取得する例について説明したが、これには限られない。例えば、予め業務情報を取得し、ファイル・テーブル粒度でデータアクセスが異ならない場合に、データ項目の粒度での判定を行う前に上述した処理を行ってもよい。また、解析部１２１が解析を行う場合に、マスタデータについては、処理を除外するようにしてもよい。この場合、データアクセス情報記憶部１１２１には、トランザクションデータに関するデータアクセス情報のみが含まれる。
【００９０】
また、上述した各実施形態において、記憶部１１（１１ａ）と処理部１２（１２ａ）が同一の処理装置に含まれる例を説明したが、これには限られない。例えば、記憶部１１（１１ａ）を含む記憶装置が、情報処理装置１（１ａ）の外部に備えられてもよい。
【００９１】
また、上述した各実施形態において、処理部１２（１２ａ）の各処理部（解析部１２１、ルート抽出部１２２、データアクセス分析部１２３（１２３ａ））が、それぞれ独立の装置として、情報処理装置１（１ａ）の外部に備えられてもよい。
【００９２】
また、上述した実施形態における情報処理装置１の一部、例えば、処理部１２（１２ａ）などをコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、情報処理装置１に内蔵されたコンピュータシステムであって、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や周辺機器等のハードウェアを含むものとする。
【００９３】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【００９４】
また、上述した実施形態における情報処理装置１の一部、または全部を、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等の集積回路として実現してもよい。情報処理装置１の各機能部は個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はＬＳＩに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりＬＳＩに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
【００９５】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。また、本発明の一態様は、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。また、上記各実施形態や変形例に記載された要素であり、同様の効果を奏する要素同士を置換した構成も含まれる。
【符号の説明】
【００９６】
１・・・情報処理装置、１１、１１ａ・・・記憶部、１２、１２ａ・・・処理部、１１１・・・資産情報記憶部、１１２・・・解析結果記憶部、１１２１・・・データアクセス情報記憶部、１１２２・・・制御構造情報記憶部、１１２３・・・関係情報記憶部、１１３・・・ルート情報記憶部、１１４・・・分析結果記憶部、１１５ａ・・・業務情報記憶部、１２１・・・解析部、１２２・・・ルート抽出部、１２３、１２３ａ・・・データアクセス分析部、１０１・・・ルート処理部、１０２・・・決定部
【図１】
2020160922.tif 000003
【図２】
2020160922.tif 000004
【図３】
2020160922.tif 000005
【図４】
2020160922.tif 000006
【図５】
2020160922.tif 000007
【図６】
2020160922.tif 000008
【図７】
2020160922.tif 000009
【図８】
2020160922.tif 000010
【図９】
2020160922.tif 000011
【図１０】
2020160922.tif 000012
【図１１】
2020160922.tif 000013
【図１２】
2020160922.tif 000014
【図１３】
2020160922.tif 000015
【図１４】
2020160922.tif 000016
【図１５】
2020160922.tif 000017
【図１６】
2020160922.tif 000018
【手続補正書】
【提出日】令和2年5月7日(2020.5.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理部と、
前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定部と、
を備え、
前記決定部は、前記共有データ集合に含まれるデータにアクセスを行う複数の前記処理フローのうち、２つ以上の前記処理フローについて、前記起点プログラム又は前記サブプログラムが前記共有データ集合に含まれるデータにアクセスを行う場合の、前記アクセスの種類が、いずれも前記データの変更であるか或いはいずれも前記データの取得であり、かつ、前記アクセスを行うデータが前記共有データ集合に含まれる同一のデータである場合に、当該前記処理フローを１つの統合処理フローにまとめ、前記統合処理フローを前記帰属処理フローに決定する情報処理装置。
【請求項２】
ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理部と、
前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定部と、
を備え、
前記決定部は、前記共有データ集合に含まれるデータにアクセスを行う複数の前記処理フローのうち、２つ以上の前記処理フローについて、前記起点プログラム又は前記サブプログラムが前記共有データ集合に含まれるデータにアクセスを行う場合の、前記アクセスの種類がいずれも前記データの変更であるか或いはいずれも前記データの取得であり、かつ、前記アクセスを行うデータが前記共有データ集合に含まれる異なるデータである場合に、前記共有データ集合を、単一の前記処理フローからアクセスが行われるデータの集合ごとに分割し、分割したデータの集合である分割データ集合を、当該分割データ集合に含まれるデータにアクセスを行う前記処理フローを、当該分割データ集合の前記帰属処理フローに決定する情報処理装置。
【請求項３】
前記決定部は、前記ルート情報、前記解析結果、及び前記データの種別を示す種別情報にも基づいて、前記帰属処理フローを決定する、
請求項１又は請求項２に記載の情報処理装置。
【請求項４】
ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理部と、
前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定部と、
を備え、
前記決定部は、前記共有データ集合に含まれるデータにアクセスを行う複数の前記処理フローのうち、２つ以上の前記処理フローについて、前記起点プログラム又は前記サブプログラムが前記共有データ集合に含まれるデータにアクセスを行う場合の、前記アクセスの種類が、いずれも前記データの変更であるか或いはいずれも前記データの取得であり、かつ、前記アクセスを行うデータが前記共有データ集合に含まれる同一のデータである場合に、当該前記処理フローを１つの統合処理フローにまとめ、前記統合処理フローを前記帰属処理フローに決定する情報処理システム。
【請求項５】
ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理部と、
前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定部と、
を備え、
前記決定部は、前記共有データ集合に含まれるデータにアクセスを行う複数の前記処理フローのうち、２つ以上の前記処理フローについて、前記起点プログラム又は前記サブプログラムが前記共有データ集合に含まれるデータにアクセスを行う場合の、前記アクセスの種類がいずれも前記データの変更であるか或いはいずれも前記データの取得であり、かつ、前記アクセスを行うデータが前記共有データ集合に含まれる異なるデータである場合に、前記共有データ集合を、単一の前記処理フローからアクセスが行われるデータの集合ごとに分割し、分割したデータの集合である分割データ集合を、当該分割データ集合に含まれるデータにアクセスを行う前記処理フローを、当該分割データ集合の前記帰属処理フローに決定する情報処理システム。
【請求項６】
情報処理装置のルート処理部が、ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理ステップと、
前記情報処理装置の決定部が、前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定ステップと、
を含み、
前記決定部は、前記共有データ集合に含まれるデータにアクセスを行う複数の前記処理フローのうち、２つ以上の前記処理フローについて、前記起点プログラム又は前記サブプログラムが前記共有データ集合に含まれるデータにアクセスを行う場合の、前記アクセスの種類が、いずれも前記データの変更であるか或いはいずれも前記データの取得であり、かつ、前記アクセスを行うデータが前記共有データ集合に含まれる同一のデータである場合に、当該前記処理フローを１つの統合処理フローにまとめ、前記統合処理フローを前記帰属処理フローに決定する情報処理方法。
【請求項７】
情報処理装置のルート処理部が、ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理ステップと、
前記情報処理装置の決定部が、前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定ステップと、
を含み、
前記決定部は、前記共有データ集合に含まれるデータにアクセスを行う複数の前記処理フローのうち、２つ以上の前記処理フローについて、前記起点プログラム又は前記サブプログラムが前記共有データ集合に含まれるデータにアクセスを行う場合の、前記アクセスの種類がいずれも前記データの変更であるか或いはいずれも前記データの取得であり、かつ、前記アクセスを行うデータが前記共有データ集合に含まれる異なるデータである場合に、前記共有データ集合を、単一の前記処理フローからアクセスが行われるデータの集合ごとに分割し、分割したデータの集合である分割データ集合を、当該分割データ集合に含まれるデータにアクセスを行う前記処理フローを、当該分割データ集合の前記帰属処理フローに決定する情報処理方法。
【請求項８】
ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理ステップと、
前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定ステップと、
を、コンピュータに実行させるためのプログラムであり、
前記コンピュータが、
前記決定ステップにおいて、前記共有データ集合に含まれるデータにアクセスを行う複数の前記処理フローのうち、２つ以上の前記処理フローについて、前記起点プログラム又は前記サブプログラムが前記共有データ集合に含まれるデータにアクセスを行う場合の、前記アクセスの種類が、いずれも前記データの変更であるか或いはいずれも前記データの取得であり、かつ、前記アクセスを行うデータが前記共有データ集合に含まれる同一のデータである場合に、当該前記処理フローを１つの統合処理フローにまとめ、前記統合処理フローを前記帰属処理フローに決定するプログラム。
【請求項９】
ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理ステップと、
前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定ステップと、
を、コンピュータに実行させるためのプログラムであり、
前記コンピュータが、
前記決定ステップにおいて、前記共有データ集合に含まれるデータにアクセスを行う複数の前記処理フローのうち、２つ以上の前記処理フローについて、前記起点プログラム又は前記サブプログラムが前記共有データ集合に含まれるデータにアクセスを行う場合の、前記アクセスの種類がいずれも前記データの変更であるか或いはいずれも前記データの取得であり、かつ、前記アクセスを行うデータが前記共有データ集合に含まれる異なるデータである場合に、前記共有データ集合を、単一の前記処理フローからアクセスが行われるデータの集合ごとに分割し、分割したデータの集合である分割データ集合を、当該分割データ集合に含まれるデータにアクセスを行う前記処理フローを、当該分割データ集合の前記帰属処理フローに決定するプログラム。