JP6878804B2 - 情報処理装置、情報処理方法、及び、プログラム - Google Patents

情報処理装置、情報処理方法、及び、プログラム Download PDF

Info

Publication number
JP6878804B2
JP6878804B2 JP2016180608A JP2016180608A JP6878804B2 JP 6878804 B2 JP6878804 B2 JP 6878804B2 JP 2016180608 A JP2016180608 A JP 2016180608A JP 2016180608 A JP2016180608 A JP 2016180608A JP 6878804 B2 JP6878804 B2 JP 6878804B2
Authority
JP
Japan
Prior art keywords
data
program
order
information
influence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016180608A
Other languages
English (en)
Other versions
JP2018045508A (ja
Inventor
悠 大島
悠 大島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2016180608A priority Critical patent/JP6878804B2/ja
Publication of JP2018045508A publication Critical patent/JP2018045508A/ja
Application granted granted Critical
Publication of JP6878804B2 publication Critical patent/JP6878804B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、情報の処理に関し、特に、システムに関する情報を処理する情報処理装置、情報処理方法、及び、プログラムに関する。
情報技術(IT(Information Technology))システムにおいて、ハードウェアの老朽化、IT技術及びITインフラの進化、並びに、利用しているソフトウェアライセンスに対するベンダサポートの終了などが発生する。これらの要因に基づいて、ITシステムは、導入からある程度の期間が経過すると、改修又は再構築(以下、まとめて「システムリニューアル」と呼ぶ)が、必要となる。
システムリニューアルに当たり、既存のITシステムを廃止して、新規のITシステムを構築し直すケースがある。しかし、ITシステムの新規構築は、期間及び費用が大きくなる。そのため、ITシステムの新規構築に伴うビジネス的な新たな付加価値又は効果が高くない場合、ITシステムの新規構築は、期間及び開発コストなどを圧縮し、企業経営へのインパクトを小さくするため、既存のITシステムを流用及び再利用する必要がある。
具体的には、プログラムの業務処理ロジック及びアルゴリズムを維持したまま、ITシステムにおけるハードウェア、プログラミング言語、IT技術、又はITインフラなどを、新しいものに移行すること、及び/又は、改造することが行われている。
このように、企業が長期に渡りITシステムを運用及び維持する中で、ITシステムは、企業活動の目的に合わせて拡張及び改造を積み重ねている。その結果、ITシステムには、新旧の様々なソフトウェア、ハードウェア、及び、IT技術が混在し、それらが複雑に絡み合った状態となっている。そのため、ITシステムにおいて、ソフトウェア資産全体の把握が、困難となっている場合がある。つまり、ITシステムにおいて、システムの拡張及び改造が非常に難しいという問題が、発生していた。
一般的に市販されている開発支援ツールとしては、ソースとソースとの間の呼出し関係及びデータベースのテーブル間の関係を分析する開発支援ツールがある。しかし、一般的に市販されている開発支援ツールは、種類の異なる情報(例えば、モデル)にまたがった関係を抽出しない。
特に、大規模なソフトウェアでは、ソフトウェア、ハードウェア、及び、IT技術のレベル及び種類の異なる膨大な資産が存在している。そのため、これらを正確に関連づけて管理することは、非常に困難であった。
そこで、上記の問題点を解決する方法が提案されている(例えば、特許文献1ないし4を参照)。
特許文献1ないし4に記載の発明は、種類間、レベル間、又は、モデル間にまたがった情報を関連付けることができる。
特許文献1に記載の発明は、ソフトウェアの改造において、実体間の依存関係を検出し、検出した依存関係を表示する。
特許文献2に記載の発明は、リポジトリを用いてソフトウェア資産を管理する場合に、キーワードを用いて管理する。
特許文献3に記載の発明は、ソフトウェア資産の管理として、情報ノード間の関係リンクの正当性を検査する。
特許文献4に記載の発明は、ソフトウェア資産の管理として、リンクの重みを用いてノード候補を出力する。
特開平04−131930号公報 特開2015−109016号公報 特開2014−149683号公報 特開2014−146241号公報
しかし、例えば、サブシステム間にまたがるバッチ処理において、データを一元管理せずに、あるサブシステムがあるデータを用い、別のサブシステムがそのデータを複製したデータを利用ことがある。つまり、ITシステムは、依存関係のあるデータを処理する場合がある。
ITシステムのソフトウェア改修時の影響範囲分析では、このように依存関係のあるデータの伝播に基づく影響を考慮する必要がある。
しかし、特許文献1ないし4に記載の発明では、関係(リンク)が張られた情報を全てたどるように動作する。そのため、実際には影響しない関係が、影響を受ける候補として抽出される可能性がある。
この問題点をさらに詳細に説明する。
以下の説明として、「データa」が「プログラムB」に入力され、「プログラムB」が「データb」を出力し、「データb」が「プログラムC」に入力されるという関係において、「データa」に改修が入った場合を想定する。この場合、伝播に関して次の二つの場合が想定される。
(1)データbがデータaに依存するデータの場合、データaの改修の影響は、プログラムCに伝播する。
(2)一方、データbがデータaに依存しないデータの場合、データaの改修の影響は、プログラムCに伝搬しない。
特許文献1ないし4に記載の発明は、データの依存関係を用いていない。そのため、特許文献1ないし4に記載の発明は、(1)だけではなく(2)の場合においても、プログラムCを影響先として抽出する。
このように、特許文献1ないし4に記載の発明は、依存関係のない情報を抽出するとの問題点があった。
さらに、伝播する情報の入出力には、順序関係がある。しかし、情報間の静的な関連を用いて影響範囲を抽出する場合、影響を受けない情報、つまり依存関係がない情報が抽出されるという問題があった。特許文献1ないし4の記載の発明は、このような問題点を解決できない。
本発明の目的は、上記問題点を解決し、依存関係のある情報を抽出する情報処理装置、情報処理方法、及び、プログラムを提供することにある。
本発明の一形態における情報処理装置は、データとデータを処理するプログラムとを含む対象情報におけるデータの生成関係に関する情報である由来を抽出する由来抽出手段と、データとプログラムとの関係であるリンクの順序を抽出する順序抽出手段と、由来と順序とを基に第1のプログラムの影響範囲を特定する影響範囲探査手段とを含む。
本発明の一形態における情報処理方法は、データとデータを処理するプログラムとを含む対象情報におけるデータの生成関係に関する情報である由来を抽出し、データとプログラムとの関係であるリンクの順序を抽出し、由来と順序とを基に第1のプログラムの影響範囲を特定するする。
本発明の一形態におけるプログラムは、データとデータを処理するプログラムとを含む対象情報におけるデータの生成関係に関する情報である由来を抽出する処理と、データとプログラムとの関係であるリンクの順序を抽出する処理と、由来と順序とを基に第1のプログラムの影響範囲を特定する処理とをコンピュータに実行させる。
本発明に基づけば、依存関係のある情報を抽出するとの効果を奏することができる。
図1は、第1の実施形態に係る情報処理装置の構成の一例を示すブロック図である。 図2は、第1の実施形態に係る情報処理装置を含む情報処理システムの構成の一例を示すブロック図である。 図3は、対象情報の一例を示す図である。 図4は、図3の対象情報におけるジョブのフローの一例を示す図である。 図5は、図3の対象情報に関する構成情報の一例を示す図である。 図6は、図5の構成情報におけるリンク情報の一例を示す図である。 図7は、由来情報の一例を示す図である。 図8は、順序情報の一例を示す図である。 図9は、第1の実施形態に係る情報処理装置の動作の一例を示すフローチャートである。 図10は、由来抽出部における動作の一例を示すフローチャートである。 図11は、順序抽出部における動作の一例を示すフローチャートである。 図12は、影響範囲探査部における動作の概要の一例を示すフローチャートである。 図13は、影響範囲探査部における直接影響探査の動作の一例を示すフローチャートである。 図14は、ステップS211の動作の一例を示す図である。 図15は、ステップS212の動作の一例を示す図である。 図16は、ステップS213の動作の一例を示す図である。 図17は、ステップS214の動作の一例を示す図である。 図18は、影響範囲探査部における影響伝播範囲探査の動作の一例を示すフローチャートである。 図19は、ステップS222の動作の一例を示す図である。 図20は、ステップS223の動作の一例を示す図である。 図21は、ステップS224の動作の一例を示す図である。 図22は、第4の順序を特定する動作の一例を示す図である。 図23は、プログラムを特定する動作の一例を示す図である。 図24は、第5の順序を特定する動作の一例を示す図である。 図25は、第1の実施形態に係る情報処理装置の特定結果の一例を示す図である。 図26は、順序及び由来を考慮しない場合の影響範囲を示す図である。 図27は、順序を考慮しない場合の影響範囲を示す図である。 図28は、変形例に係る情報処理装置の構成の一例を示すブロック図である。 図29は、複数のレベルを含む情報の一例を示す図である。 図30は、重みの一例を示す図である。 図31は、図29の情報を基に作成した有効グラフの一例を示す図である。 図32は、図29において、プログラムFの影響範囲を示す図である。
次に、本発明の実施形態について図面を参照して説明する。
なお、各図面は、本発明の実施形態を説明するためのものである。ただし、本発明は、各図面の記載に限られるわけではない。また、各図面の同様の構成には、同じ番号を付し、その繰り返しの説明を、省略する場合がある。また、以下の説明に用いる図面において、本発明の説明に関係しない部分の構成については、記載を省略し、図示しない場合もある。また、図面中の矢印の方向は、一例を示すものであり、ブロック間の信号の向きを限定するものではない。
<第1の実施形態>
以下、図面を参照して、第1の実施形態について説明する。
まず、図面を参照して、情報処理装置3を含む情報処理システム10について説明する。
図2は、第1の実施形態に係る情報処理装置3を含む情報処理システム10の構成の一例を示すブロック図である。図2に示されている情報処理システム10は、第1の実施形態に係る情報処理装置3と、入力装置1と、出力装置2と、記憶装置4とを含む。
入力装置1は、情報処理装置3において処理される情報を情報処理装置3に送信する装置である。入力装置1は、例えば、情報処理装置3の利用者が情報処理装置3に送信する情報を入力する装置である。
なお、情報処理装置3において処理の対象となる情報(以下、「対象情報」とも呼ぶ)は、特に制限されない。例えば、対象情報は、ITシステムにおけるデータと、データを処理するプログラムとの構成の情報でもよい。この場合、情報処理装置3は、例えば、具体的な対象情報として、そのソフトウェアのソースファイルを受け取ってもよい。そこで、以下の説明では、対象情報の一例として、プログラムとデータとを含むソフトウェアを用いて説明する。ただし、情報処理装置3が処理する情報は、上記に限定されない。例えば、対象情報は、より上位である、ITシステムの業務と帳票データとに関する情報でもよい。
出力装置2は、情報処理装置3が特定した結果を出力する場合の出力先となる装置である。後ほど説明するように、情報処理装置3は、対象情報における所定の要素の影響範囲を特定する。例えば、情報処理装置3は、対象情報であるITシステムにおけるプログラムの改修における影響範囲を特定する。この場合、出力装置2は、情報処理装置3が特定した影響範囲を表示する。
記憶装置4は、情報処理装置3が後ほど説明する動作において用いる情報を保持する。そのため、記憶装置4は、「リポジトリ」と呼ばれてもよい。
情報処理装置3は、対象情報における所定の要素の影響範囲を特定する。
そのため、情報処理装置3は、入力装置1から対象情報を受信する。ただし、情報処理装置3は、予め保持している対象情報を用いて動作してもよい。このように、情報処理装置3は、対象情報の提供元を限定されない。
そして、情報処理装置3は、特定した影響範囲を出力装置2に送信する。ただし、情報処理装置3が、特定した影響範囲を保持してもよい。あるいは、情報処理装置3が、影響範囲を表示してもよい。このように、情報処理装置3は、影響範囲の出力先を限定されない。
さらに、情報処理装置3は、処理において、適宜、記憶装置4に情報を保存し、記憶装置4から情報を読み出す。ただし、情報処理装置3は、記憶装置4を含んでもよい。なお、情報処理装置3が記憶装置4に情報を保存する動作及び情報を読み出す動作は、一般的なコンピュータと記憶装置とを含むシステムにおける情報の記録及び読み出し動作と同様である。そのため、以下の説明において、情報処理装置3が記憶装置4に情報を保存する動作、及び、記憶装置4から情報を読み出す動作の説明を省略する。
次に、図面を参照して、情報処理装置3について説明する。
[説明の用いる情報]
まず、以下の説明に用いる情報を説明する。
以下の説明では、影響範囲を特定する要素としてプログラムを用いて説明する。ただし、これは、情報処理装置3における影響範囲を特定する対象をプログラムに限定するものではない。例えば、情報処理装置3は、データの影響範囲を特定してもよい。さらに、例えば、情報処理装置3は、プログラム及びデータの両方に関する影響範囲を特定してもよい。さらに、例えば、情報処理装置3は、一つに限らず複数のプログラム及び/又はデータの影響範囲を特定してもよい。さらに、情報処理装置3は、プログラム及びデータとは異なる要素に対する影響範囲を特定してもよい。
図3は、以下の説明に用いる対象情報の一例を示す図である。図3に示されている対象情報は、プログラムとデータとの関係を示すブロック図である。詳細には、次のとおりである。
プログラムAは、データaを作成又は更新する。この関係は、リンクLである。なお、以下、「作成又は更新する」をまとめて、「作成する」と呼ぶ場合もある。
プログラムBは、データaを更新する。この関係は、リンクLである。
プログラムCは、データaを入力とする。この関係は、リンクLである。
プログラムDは、データaを入力とする。この関係は、リンクLである。
プログラムCは、データaを用いて、データcを作成する。この関係は、リンクLである。
プログラムDは、データaを用いて、データdを作成する。この関係は、リンクLである。
さらに、プログラムDは、データaとは関連しないデータdを作成する。この関係は、リンクLである。
プログラムEは、データcを入力とする。この関係は、リンクLである。
プログラムFは、データdを入力とする。この関係は、リンクLである。
プログラムGは、データdを入力とする。この関係は、リンクL10である。
プログラムEは、データcを用いて、データeを作成する。この関係は、リンクL11である。
プログラムFは、データdとは関連しないデータfを作成する。この関係は、リンクL12である。
さらに、プログラムFは、データdを用いて、データfを作成する。この関係は、リンクL13である。
プログラムGは、データdを用いて動作するが、データを作成及び更新しない。
図3において、リンクに付した「Write」及び「Read」が、リンクの属性である。「Write」属性は、データの作成又は更新に関する属性である。つまり、「Write」属性は、データを変更する属性である。「Read」属性は、データを用いるための読み出しに関する属性である。つまり、「Read」属性は、データを変更しない属性である。
図4は、図3の対象情報におけるジョブのフローの一例を示す図である。なお、プログラムGは、図4に示されているフローとは異なるフローに含まるプログラムとする。そのため、図4は、プログラムGを含まない。
ジョブ1は、業務Aの処理1である。具体的には、ジョブ1は、プログラムAがデータaを作成又は更新する処理である。
ジョブ2は、データaの複製の処理である。具体的には、ジョブ2は、プログラムCがデータaの複製としてデータcを作成する処理である。
ジョブ3は、業務Eの処理である。具体的には、ジョブ3は、プログラムEがデータcを用いて、データeを作成する処理である。
ジョブ4は、業務Aの処理2である。具体的には、ジョブ2は、プログラムBがデータaを更新する処理である。処理1と処理2の区別を容易にするため、図4は、プログラムBが更新した「データa」を「データa’」として示している。
ジョブ5は、データa(図4ではデータa’)の複製の処理と業務Dの処理である。具体的には、ジョブ5は、プログラムDが、プログラムBが更新したデータa(データa’)の複製としてデータdを作成する処理と、プログラムDがデータaとは関連しないデータdを作成する処理である。
ジョブ6は、業務Fの処理である。具体的には、ジョブ6は、プログラムFが、データdを用いてデータfを作成し、さらに、データdとは関連しないデータfを作成する処理である。
情報処理装置3は、対象情報として、例えば、図3及び/又は図4に示されている情報を受信する。ただし、図3及び図4は、対象情報の一例を説明するための図である。情報処理装置3が実際に受信する対象情報は、情報処理装置3が処理可能な形式の情報である。
図5は、図3に示されている対象情報におけるプログラムとデータとの関係を表す情報(以下、「構成情報」と呼ぶ)の一例を示す図である。図5は、テーブル形式を用いて構成情報を示している。ただし、情報処理装置3は、図5とは異なる形式を用いてもよい。図5に示されている構成情報は、一例として、構成の番号(No.)と、構成の名称と、その構成からの「出リンク」と、その構成への「入リンク」と含む。
図5の各行が、図3に示されている各構成(プログラム及びデータ)を示している。例えば、1行目は、構成情報の番号である「I」がプログラムAであること、及び、プログラムAが出力としてリンクLに接続されていることを示す。3行目は、構成情報の番号「I」がデータaであること、及び、データaが入力としてリンクL及びLに、出力としてリンクL及びLに接続されていることを示す。
図6は、図5に示されている構成情報におけるリンクに関する情報をまとめたリンク情報の一例を示す図である。図6は、一例として、テーブル形式を用いてリンク情報を示した図である。ただし、リンク情報の形式は、テーブル形式に限定されない。図6に示されているリンク情報は、一例として、リンクの番号(No.)と、リンクの属性と、リンクの始点となる構成の番号と、リンクの終点となる構成の番号とを含む。
例えば、図6の1行目のリンクLは、始点が「I(プログラムA)」であり、終点が「I(データa)」であり、属性が「Write」である。つまり、リンクLは、プログラムAがデータaを書き込むリンクである。なお、「書き込み」は、「作成又は更新」である。
また、3行目のリンクLは、始点が「I(データa)」であり、終点が「I(プログラムC)」であり、属性が「Read」である。つまり、リンクLは、データa1がプログラムCに入力されるリンクである。
なお、情報処理装置3は、受信する対象情報の内容を制限されない。例えば、情報処理装置3は、対象情報として、図5及び図6に示されている情報を含む対象情報を受信してもよい。あるいは、情報処理装置3は、図3に示されているような対象情報の構成に関する情報と図4に示されているような動作に関する情報とを受信し、受信した情報を基に、構成情報などを作成してもよい。
[構成の説明]
次に、図面を参照して、第1の実施形態に係る情報処理装置3の構成について説明する。
図1は、第1の実施形態に係る情報処理装置3の構成の一例を示すブロック図である。情報処理装置3は、由来抽出部51と、順序抽出部52と、影響範囲探査部71とを含む。
由来抽出部51は、対象情報を基に、データ間の由来に関係する情報(以下、「由来情報」、又は、単に「由来」と呼ぶ)を抽出する。ここで、由来とは、あるデータと、そのデータを生成するためのデータとの関係である。つまり、由来とは、データの生成関係に関する情報である。つまり、由来抽出部51は、対象情報におけるデータの生成関係に関する情報である由来を抽出する。
なお、由来の階層は、特に制限はない。由来は、1階層でもよく、2階層以上でもよい。ただし、以下の説明では、由来として、1階層を用いて説明する。
図7は、由来情報の一例を示す図である。図7は、一例として、テーブル形式を用いて由来情報を示した図である。ただし、由来情報の形式は、テーブル形式に限定されない。図7に示されている由来情報は、一例として、構成(データ)の番号と、その構成の元となった構成(データ)、つまり「由来」の番号とを含む。
例えば、図7の2行目の「I(データc)」は、「I(データa)」から生成されるデータである。また、1行目の「I(データa)」は、由来がない。つまり、1行目の「I(データa)」は、他のデータを参照しないで生成又は更新されるデータである。
なお、図7に示されている名称は、説明の便宜のために付した情報である。つまり、由来情報は、名称を含まなくてもよい。
図1を参照した説明に戻る。
順序抽出部52は、対象情報を基に、データ間の処理の順序に関連する情報(以下、「順序情報」、又は、単に「順序」と呼ぶ)を抽出する。順序とは、データの処理の順序に関する情報である。つまり、順序抽出部52は、データの処理の順序を抽出する。具体的には、順序抽出部52は、例えば、処理におけるリンクの順序を抽出する。
図8は、順序情報の一例を示す図である。図8は、一例として、テーブル形式を用いて順序情報を示した図である。ただし、順序情報の形式は、テーブル形式に限定されない。図8に示されている順序は、一例として、リンクの番号と、グループと、順序とを含む。ここで、グループとは、各フローを識別するための情報である。同じフローに含まれるリンクは、同じグループとなる。
例えば、1行目のリンクLは、グループGに含まれ、1番目に実行される。あるいは、4行目のリンクLは、グループG1に含まれ、7番目に実行される。なお、グループとは、上記のとおり、リンクが含まれるフローを識別するための情報である。後ほど説明する影響範囲探査部71は、グループごとに、影響の範囲を特定する。ただし、影響範囲探査部71は、複数のグループ又は全てのグループにおいて影響範囲を特定してもよい。
なお、リンクがいずれのグループにも含まれない場合、そのリンクの順序及びグループは、「無」とする。図8において、順序「0」は、「順序無」を示し、「G」は、「グループ無」を示す。例えば、10行目のリンクL10は、いずれのフローにも含まれないリンクである。
情報処理装置3は、図5、図6、図7、及び、図8の各情報を、記憶装置4に保持する。ただし、上記のとおり、情報処理装置3が、各情報を保持してもよい。
影響範囲探査部71は、対象情報におけるプログラムの影響範囲を特定する。詳細には、影響範囲探査部71は、由来と順序と基に、プログラムの影響範囲を特定する。
[動作の説明]
次に図面を参照して、第1の実施形態に係る情報処理装置3の動作について説明する。
図9は、第1の実施形態に係る情報処理装置3の動作の一例を示すフローチャートである。なお、以下の説明において、対象情報は、図3及び図4とする。さらに、構成情報及びリンク情報は、図5及び図6とする。
由来抽出部51は、対象情報を取得する。例えば、由来抽出部51は、入力装置1から対象情報を取得してもよい。あるいは、由来抽出部51は、予め記憶装置4に記憶されている対象情報を用いてもよい。そして、由来抽出部51は、対象情報を基に、由来を抽出する(ステップS101)。
由来抽出部51は、抽出した由来を、影響範囲探査部71に送信する。なお、由来抽出部51は、抽出した由来を、記憶装置4に保存してもよい。この場合、影響範囲探査部71は、記憶装置4から、由来を取得する。
図10は、由来抽出部51における動作の一例を示すフローチャートである。
由来抽出部51は、対象情報から、プログラムを一つ選択する(ステップS111)。
そして、由来抽出部51は、選択したプログラムに関連するデータにおいて由来となるデータがあるか否かを判定する(ステップS112)。詳細には、由来抽出部51は、選択したプログラムの入力となっているデータを基に作成される又は更新されるデータがあるか否かを判定する。作成又は更新されるデータは、選択されたプログラムの入力となっているデータを由来とするデータである。なお、入力となっているデータは、由来となるデータである。
例えば、プログラムCの場合について説明する。由来抽出部51は、構成情報とリンク情報とを基に、プログラムCがデータaを入力とすること、及び、出力であるデータcが作成又は更新されることが分かる。
由来とするデータがある場合(ステップS112でYes)、由来抽出部51は、由来として、上記の「由来とするデータ」と、「由来となるデータ」とを抽出する。このデータの組合せが由来となる。つまり、由来抽出部51は、由来を抽出する(ステップS113)。そして、由来抽出部51は、抽出した由来を用いて、由来情報を更新又は作成する。
例えば、上記の場合、データaが、データcの由来となるデータである。また、データcが、データaを由来とするデータです。由来抽出部51は、抽出した結果を基に、図7に示されているような由来情報を作成又は更新する。
由来とするデータがない場合(ステップS112でNo)、由来抽出部51は、次の動作に進む。
由来抽出部51は、上記の作業を、全てのプログラムについて繰り返す。
図9を参照した説明に戻る。
順序抽出部52は、対象情報を取得する。例えば、順序抽出部52は、入力装置1から対象情報を取得してもよい。あるいは、順序抽出部52は、予め記憶装置4に記憶されている対象情報を用いてもよい。そして、順序抽出部52は、対象情報を基に、順序を抽出する(S102)。順序抽出部52は、抽出した順序を、影響範囲探査部71に送信する。なお、順序抽出部52は、抽出した順序を、記憶装置4に保存してもよい。この場合、影響範囲探査部71は、記憶装置4から、順序を取得する。
図11は、順序抽出部52における動作の一例を示すフローチャートである。
順序抽出部52は、対象情報からフローを選択する。そして、順序抽出部52は、選択したフローにおけるリンクの順序を抽出する(ステップS121)。例えば、順序抽出部52は、図4に示されているフローを用いて順序を抽出する。
順序抽出部52は、順序を抽出したフローに関連するグループがあるか否かを判定する(ステップS122)。例えば、順序抽出部52は、対象情報に含まれる情報として、各フローに関連するグループに関する情報を取得する。あるいは、順序抽出部52は、予め、グループに関連する情報を保持してもよい。
グループがある場合(ステップS122でYes)、順序抽出部52は、抽出した順序とグループとを関連付ける(ステップS123)。そして、順序抽出部52は、グループに関連付けたリンクの順序を用いて、順序情報を作成又は更新する。
具体的には、順序抽出部52は、例えば、図8に示されているように、リンクの順序とグループ(例えば、G)とを関連付けた順序情報を作成又は更新する。
グループがない場合(ステップS122でNo)、順序抽出部52は、抽出したリンクの順序及びグループを「無」とする(ステップS124)。例えば、順序抽出部52は、図8の10行目に示されているリンクL10のように、順序「0」とグループ「G」とを設定する。
順序抽出部52は、全てのフローに関して上記動作を繰り返す。
図9を参照した説明に戻る。
なお、情報処理装置3において、由来抽出部51及び順序抽出部52の動作の順番は、制限されない。由来抽出部51及び順序抽出部52は、どちらが先に動作してもよい。あるいは、由来抽出部51及び順序抽出部52は、一部又は全ての動作を並列に実行してもよい。
そして、影響範囲探査部71は、対象情報と、由来と、順序とを基に、プログラムの影響範囲を特定する。
次に、図面を参照して、影響範囲探査部71の動作を詳細に説明する。なお、以下の説明において、動作の理解の助けとして、適宜、図3、図4、図5、図6、図7、及び、図8に示されている情報を参照して説明する。
図12は、影響範囲探査部71における動作の概要の一例を示すフローチャートである。
まず、影響範囲探査部71は、直接的な影響範囲を探査する(ステップS201)。
次に、影響範囲探査部71は、影響が伝播する範囲を探査する(ステップS202)。
図面を参照して、それぞれの動作を詳細に説明する。
まず、図面を参照して、直接的な影響範囲を探査して特定する動作である直接影響探査の動作について説明する。
図13は、影響範囲探査部71における直接影響探査の動作の一例を示すフローチャートである。
影響範囲探査部71は、所定のプログラム(以下、「第1のプログラム」とする)の影響範囲を特定する。そのため、影響範囲探査部71は、まず、第1のプログラムが作成又は更新するデータ(以下、「第1のデータ」と呼ぶ)を特定する(ステップS211)。なお、以下、一例として、第1のプログラムを、図3の「プログラムB」として説明する。
ここで特定されたデータ(第1のデータ)は、第1のプログラムから直接的に影響を受けるデータである。そのため、影響範囲探査部71は、第1のデータを、影響範囲と特定する。
図14は、ステップS211の動作の一例を示す図である。図14に示すように、影響範囲探査部71は、構成情報を用いて、プログラムB(第1のプログラム)の出リンクがリンクLであることを特定する。以下、第1のプログラムの出リンク、つまり、第1のデータの入リンクを「第1のリンク」と呼ぶ。そして、影響範囲探査部71は、構成情報とリンク情報とを用いて、リンクL(第1のリンク)の終点であるI(データa)を、第1のデータと特定する。すなわち、影響範囲探査部71は、第1のプログラムであるプログラムBが作成又は更新する第1のデータとして、データaを特定する。
そして、影響範囲探査部71は、特定した全ての第1のデータに対して、以下で説明する動作を繰り返す。
まず、影響範囲探査部71は、第1のデータから一つを選択し、選択した第1のデータと第1のプログラムとのリンク(第1のリンク)の順序を特定する(ステップS212)。以下、第1のプログラムと第1のデータとのリンク(第1のリンク)の順序を、「第1の順序」と呼ぶ。
図15は、ステップS212の動作の一例を示す図である。図15に示されているように、影響範囲探査部71は、構成情報とリンク情報と順序情報とを用いて、プログラムB(第1のプログラム)とデータa(第1のデータ)とのリンクL(第1のリンク)の順序(第1の順序)として、「6」を特定する。
次に、影響範囲探査部71は、選択した第1のデータを入力とするプログラムを特定する(ステップS213)。より詳細には、影響範囲探査部71は、第1のデータを出リンクとするリンク(以下、「第2のリンク」と呼ぶ)を特定し、特定した第2のリンクを入リンクとするプログラムを特定する。
図16は、ステップS213の動作の一例を示す図である。図16の示されているように、影響範囲探査部71は、構成情報とリンク情報とを用いて、データa(第1のデータ)を入リンクとするリンクとして、リンクL及びL(第2のリンク)を特定する。そして、影響範囲探査部71は、リンクL及びL(第2のリンク)と入リンクとする、つまり、データa(第1のデータ)を入力とするプログラムとして、プログラムC及びプログラムDを特定する。
そして、影響範囲探査部71は、第1のデータを入力とする全てのプログラムに対して、以下で説明する「プログラム判定」の動作を繰り返す。
影響範囲探査部71は、第1のデータを入力とするプログラムから、一つのプログラムを選択する。そして、影響範囲探査部71は、選択したプログラムと第1のデータとのリンク(第2のリンク)の順序(以下、「第2の順序」と呼ぶ)を特定する。そして、影響範囲探査部71は、第2の順序が第1の順序の後ろであるか否かを判定する(ステップS214)。
図17は、ステップS214の動作の一例を示す図である。図17に示されているように、影響範囲探査部71は、構成情報と、リンク情報と、順序情報とを用いて、「リンクLの順序が「2」であること」及び「リンクLの順序が「7」であること」を特定する。
なお、上記のとおり、リンクL(第1のリンク)の順序(第1の順序)は、「6」である。そのため、リンクLの順序(第2の順序)は、第1の順序より前である。一方、リンクLの順序(第2の順序)は、第1の順序より後ろである。
第2の順序が第1の順序より後ろとなるリンクを入リンクとするプログラムは、第1のプログラムから影響を受けるプログラムである。
そこで、第2の順序が第1の順序の後ろの場合(ステップS214でYes)、影響範囲探査部71は、そのプログラム(以下、「第2のプログラム」とする)を、影響範囲として、特定する(ステップS215)。
第2の順序が前の場合(ステップS214でYes)、影響範囲探査部71は、そのプログラムを特定しないで、次の動作に進む。
例えば、図17の場合、プログラムCは、第2の順序が第1の順序の前のため、特定されない。一方、プログラムDは、第2の順序が第1の順序の後のため、影響範囲として特定される。つまり、プログラムDは、第2のプログラムの一例である。
このように、影響範囲探査部71は、ステップS213において特定した全てのプログラムに対して上記のプログラム判定の動作を繰り返し、影響を受けるプログラム(第2のプログラム)を特定する。
さらに、影響範囲探査部71は、ステップS211において特定した全てのデータ(第1のデータ)に対して、上記の動作を繰り返す。
その結果として、影響範囲探査部71は、第1のプログラムから直接的に影響を受ける、第1のデータと、第2のプログラムとを特定する。
このように、影響範囲探査部71は、影響範囲として、第1のデータと第2のプログラムとを特定する。
次に、図面を参照して、影響が伝播する範囲を探査して特定する動作である影響伝播範囲探査の動作について説明する。
図18は、影響範囲探査部71における影響伝播範囲探査の動作の一例を示すフローチャートである。
影響範囲探査部71は、第1のプログラムが作成又は更新する第1のデータを特定する(ステップS221)。ステップS221の動作は、図13のステップS211と同じため、詳細な説明を省略する。なお、影響範囲探査部71は、ステップS211の動作において第1のデータを保持してもよい。この場合、影響範囲探査部71は、ステップS221を省略してもよい。
そして、影響範囲探査部71は、特定された全ての第1のデータに対して、影響伝播範囲探査の動作を繰り返す。
影響範囲探査部71は、第1のデータから一つを選択し、選択した第1のデータを由来とするデータを特定する(ステップS222)。
図19は、ステップS222の動作の一例を示す図である。図19に示されているように、影響範囲探査部71は、構成情報と由来情報とを用いて、データa(第1のデータ)を由来とするデータとして、データc及びデータdを特定する。
さらに、影響範囲探査部71は、第1のプログラムと第1のデータとの第1のリンクの第1の順序を特定する。この動作は、図13のステップS212の同じため、詳細な説明を省略する。上記のとおり、プログラムB(第1のプログラム)とデータa(第1のデータ)とのリンクL(第1のリンク)の順序(第1の順序)は、「6」である。なお、影響範囲探査部71は、ステップS212の動作において第1の順序を保持してもよい。この場合、影響範囲探査部71は、ステップS222を省略してもよい。
影響範囲探査部71は、ステップS222において特定したデータから対象情報におけるプログラムとデータとのリンクを第1のデータの方向にたどり、第1のデータを入力とするプログラムを特定する(ステップS223)。
図20は、ステップS223の動作の一例を示す図である。図20に示されているように、影響範囲探査部71は、構成情報とリンク情報とを基に、データc及びデータdからデータとプログラムとをたどり、第1のデータを入力とするプログラムとして、プログラムC及びプログラムDを特定する。
なお、ステップS223において特定されるプログラムは、ステップS213において特定されたプログラムの中で、第1のデータに由来するデータを出力とするプログラムである。そのため、影響範囲探査部71は、ステップS213において特定したプログラムを保持し、保持したプログラムの中から、第1のデータに由来するデータを出力とするプログラムを選択してもよい。
そして、影響範囲探査部71は、ステップS223において特定した全てのプログラムに対して、「プログラム判定」の動作を繰り返す。
影響範囲探査部71は、ステップS223において特定したプログラムから一つのプログラムを選択する。そして、影響範囲探査部71は、選択したプログラムと第1のデータとのリンク(以下、「第3のリンク」と呼ぶ)の順序(以下、「第3の順序」と呼ぶ)が、第1の順序より後か否かを判定する(ステップS224)。なお、この場合のリンクは、選択したプログラムの入リンクである。
図21は、ステップS224の動作の一例を示す図である。なお、ステップS223において特定されたプログラムは、プログラムC及びプログラムDである。
プログラムCの入リンクL(第3のリンク)の順序(第3の順序)は、「2」である。この順序は、第1の順序「6」より前である。
一方、プログラムDの入リンクL(第3のリンク)の順序(第3の順序)は、「7」である。この順序は、第1の順序「6」より後である。
第3の順序が第1の順序より前の場合(ステップS224でNo)、そのプログラムは、第1のプログラムの影響を受けない。そのため、影響範囲探査部71は、以下で説明する動作を実行せずに、次のプログラムの動作に進む。例えば、影響範囲探査部71は、第3の順序「2」が第1の順序「6」より前であるプログラムCを、影響を受けないプログラムと特定する。
第3の順序が第1の順序の後ろの場合(ステップS224でYes)、そのプログラムは、第1のプログラムの影響を受ける。そのため、影響範囲探査部71は、以下で説明するように、さらにプログラムの影響範囲を特定する。例えば、影響範囲探査部71は、第3の順序「7」が第1の順序「6」より後であるプログラムDを、影響を受けると特定する。そして、影響範囲探査部71は、プログラムDの影響範囲を特定する。
以下、影響を受けると特定されたプログラムを、「第3のプログラム」と呼ぶ。図21の場合、プログラムDが、第3のプログラムの例である。
すなわち、第3のプログラムは、第1のデータを入力とする。さらに、第3のプログラムは、対象情報(例えば、図3のようにプログラムとデータとの構造の情報)において第1のデータを由来とするデータまでたどることができる。つまり、第3のプログラムは、第1のデータを由来とするデータを出力とする。そして、第3のプログラムは、第1のデータの関係(リンク)の順序(第3の順序)が第1の順序の後である。
以下、ステップS223において、第3のプログラムをたどるために用いられたデータで、第3のプログラムの出力となるデータを「第2のデータ」と呼ぶ。
つまり、第2のデータは、第3のプログラムの出力であり、第1のデータを由来とするデータである。
図5において、第3のプログラムの一例が、プログラムDであり、第2のデータの一例が、データdである。
なお、ステップS223で特定されたプログラムは、ステップ215において特定されたプログラムの中で、第1のデータを由来とするデータを出力とするプログラムである。そのため、影響範囲探査部71は、ステップS215の結果となる第2のプログラムを保持し、保持した第2のプログラムの中から第1のデータを由来とするデータを出力とするプログラムを選択してもよい。
つまり、第3のプログラムは、第1のデータを入力として、第1のデータを由来とする第2のデータを出力とし、第1のデータとの第3のリンクの第3の順序が第1の順序より後であるプログラムである。
影響範囲探査部71は、第3のプログラムと、第2のデータとを、影響範囲と特定する。
例えば、上記の場合、影響範囲探査部71は、プログラムD(第3のプログラム)とデータd(第2のデータ)とを、影響範囲と特定する。
このように、影響範囲探査部71は、由来と順序とを基に、第1のプログラムの影響を受ける第3のプログラムと第2のデータとを特定する。
なお、上記のとおり、第3のプログラムは、第2のプログラムの中で、第1のデータを由来とする第2のデータを出力とするプログラムである。そのため、影響範囲探査部71は、第2のプログラムが出力するデータの中で、第1のデータを由来とするデータを、第2のデータと特定してもよい。
さらに、影響範囲探査部71は、第3のプログラムの影響範囲を特定する(ステップS225)。この動作は、影響範囲探査部71が、ここまで説明した第1のプログラムの影響を受ける第3のプログラムを特定する動作と同様である。つまり、影響範囲探査部71は、上記の動作において、第1のプログラムを第3のプログラムに置き換えて、影響を受けるプログラムとデータとを特定すればよい。
以下の説明のため、第3のプログラムと第2のデータとのリンクを「第4のリンク」、第4のリンクの順序を「第4の順序」と呼ぶ。そして、影響範囲探査部71は、第2のデータを入力とし、第2のデータを由来とするデータ(以下、「第3のデータ」と呼ぶ)を出力とするプログラムを特定する。さらに、影響範囲探査部71は、ここで特定したプログラムと第2のデータとのリンク(以下、「第4のリンク」と呼ぶ)の順序(以下、「第4の順序」と呼ぶ)が第3の順序の後であるプログラム(以下、「第4のプログラム」と呼ぶ)と特定する。そして、影響範囲探査部71は、第4のプログラムと第3のデータとを影響範囲と特定する。
さらに、影響範囲探査部71は、第3のプログラムに基づく影響範囲の探査を終了すると、さらなら伝播範囲について影響範囲を特定する。つまり、影響範囲探査部71は、第3のプログラムを用いて特定した影響を受ける範囲に含まれるプログラムを、第1のプログラムと置き換えた動作を実行して、そのプログラムの影響範囲と特定する。影響範囲探査部71は、影響を受けるプログラムがなくなるまで、同様の動作を繰り返す。この動作を基に、影響範囲探査部71は、対象情報の構造及び深さにかかわらずに、影響を受ける範囲を特定することができる。
以下では、具体的なデータを用いて第4のプログラムを特定する動作を説明する。
影響範囲探査部71は、第3のプログラムとして、プログラムDを選択したとする。
この場合、影響範囲探査部71は、選択した第3のプログラム(プログラムD)と第2のデータ(データd)との第4のリンク(L)の第4の順序を特定する。
図22は、第4の順序を特定する動作の一例を示す図である。図22に示されているように、影響範囲探査部71は、構成情報と順序情報とを用いて、プログラムD(第3のプログラム)とデータd(第2のデータ)との関係であるリンクL(第4のリンク)の順序(第4の順序)として、「8」を特定する。
次に、影響範囲探査部71は、データd(第2のデータ)を由来とする第3のデータを特定する。
例えば、影響範囲探査部71は、図7の由来情報を用いてデータd(第2のデータ)を由来とする第3のデータとして、データfを特定する。
そして、影響範囲探査部71は、データf(第3のデータ)からデータとプログラムとをたどり、データd(第2のデータ)を入力とするプログラムを特定する。
図23は、上記のプログラムを特定する動作の一例を示す図である。図23に示されているように、影響範囲探査部71は、構成情報と、リンク情報とを用いて、データf(第3のデータ)からデータとプログラムとをたどり、プログラムF(第4のプログラム)を特定する。
そして、影響範囲探査部71は、特定したプログラムと第2のデータとのリンク(以下、「第5のリンク」と呼ぶ)の順序(以下、「第5の順序」と呼ぶ)を特定する。
図24は、第5の順序を特定する動作の一例を示す図である。図24に示されているように、影響範囲探査部71は、プログラムFとデータd(第2のデータ)とのリンクL(第5のリンク)の順序(第5の順序)として、「10」を特定する。
影響範囲探査部71は、第5の順序が第4の順序の後ろか否かを判定する。
第5の順序が第4の順序の前の場合、そのプログラムとデータの関係は、第3のプログラムの影響を受けない。
しかし、今の場合、第5の順序「10」は、第4の順序「8」の後である。そのため、プログラムFは、第3のプログラム(プログラムD)の影響、つまり第1のプログラム(プログラムB)の影響を受ける。つまり、プログラムFは、第4のプログラムである。
そこで、影響範囲探査部71は、プログラムF(第4のプログラム)とデータf(第3のデータ)とを、影響範囲と特定する。
影響範囲探査部71は、上記と同様の動作を繰り返して、対象情報における影響範囲を特定する。
次に、図面を参照して、第1の実施形態の結果について説明する。以下、図3に示されている対象情報における影響範囲を用いて説明する。
図25は、第1の実施形態に係る情報処理装置3の特定結果の一例を示す図である。図25において、斜線を付した範囲が、情報処理装置3が影響範囲として特定した構成である。図25に示されているように、プログラムBを更新した場合、データaと、プログラムDと、データdと、プログラムFと、データfとが、影響範囲として特定される。情報処理装置3は、プログラムBの動作より前に動作するプログラムCの出力であるデータc、及び、データdに影響されないデータdなどを、影響範囲として、特定しない。
次に、第1に実施形態の情報処理装置3の特定の結果(図25)との比較として、一般的な装置を用いた場合の影響範囲の例を示す。
図26は、順序及び由来を考慮しない場合の影響範囲を示す図である。図26に示されている影響範囲は、プログラムBより前に実行されるプログラムCの出力であるデータc及びデータaの影響を受けないデータdなどを含む。
図27は、順序を考慮しない場合の影響範囲を示す図である。図27に示されている影響範囲は、順序としてデータdより前に処理されるデータcなどを含んでいる。
[効果の説明]
次に、第1の実施形態に係る情報処理装置3の効果について説明する。
情報処理装置3は、依存関係のある情報を抽出するとの効果を奏する。
その理由は、次のとおりである。
由来抽出部51が、データの生成関係に関する情報である由来を抽出する。さらに、順序抽出部52が、データの処理の順序を抽出する。そして、影響範囲探査部71が、由来と、順序とを基に、対象情報における第1のプログラムの影響範囲を特定する。そのため、例えば、影響範囲探査部71は、第1のプログラムの影響を受け、かつ、第1のプログラムの動作後に動作する範囲を影響範囲として特定できる。
例えば、情報処理装置3は、アプリケーション改修時に改修されるアプリケーションが更新するデータの伝播を考慮して、ソフトウェア資産全体における影響範囲を特定できる。つまり、情報処理装置3は、依存関係のあるデータを考慮して、ソフトウェア資産全体の影響範囲の絞り込むことができる。
さらに、影響範囲探査部71は、直接的に影響を受ける範囲に加え、影響が伝播する範囲と特定する。そのため、情報処理装置3は、対象情報の構造にかかわらず、影響範囲を特定できる。
[ハードウェア構成]
以上の説明した情報処理装置3は、次のように構成される。
例えば、情報処理装置3の各構成部は、ハードウェア回路で構成されてもよい。
また、情報処理装置3において、各構成部は、ネットワークを介して接続した複数の装置を用いて、構成されてもよい。
また、情報処理装置3において、複数の構成部は、1つのハードウェアで構成されてもよい。
また、情報処理装置3は、CPU(Central Processing Unit)と、ROM(Read Only Memory)と、RAM(Random Access Memory)とを含むコンピュータ装置として実現されてもよい。情報処理装置3は、上記構成に加え、さらに、入出力接続回路(IOC:Input / Output Circuit)と、ネットワークインターフェース回路(NIC:Network Interface Circuit)とを含むコンピュータ装置として実現されてもよい。
図28は、本変形例に係る情報処理装置600の構成の一例を示すブロック図である。
情報処理装置600は、CPU610と、ROM620と、RAM630と、内部記憶装置640と、IOC650と、NIC680とを含み、コンピュータ装置を構成している。
CPU610は、ROM620からプログラムを読み込む。そして、CPU610は、読み込んだプログラムに基づいて、RAM630と、内部記憶装置640と、IOC650と、NIC680とを制御する。そして、CPU610を含むコンピュータは、これらの構成を制御し、図1に示されている、由来抽出部51と、順序抽出部52と、影響範囲探査部71としての各機能を実現する。
CPU610は、各機能を実現する際に、RAM630又は内部記憶装置640を、プログラムの一時記憶媒体として使用してもよい。
また、CPU610は、コンピュータで読み取り可能にプログラムを記憶した記憶媒体700が含むプログラムを、図示しない記憶媒体読み取り装置を用いて読み込んでもよい。あるいは、CPU610は、NIC680を介して、図示しない外部の装置からプログラムを受け取り、RAM630に保存して、保存したプログラムを基に動作してもよい。
ROM620は、CPU610が実行するプログラム及び固定的なデータを記憶する。ROM620は、例えば、P−ROM(Programmable-ROM)又はフラッシュROMである。
RAM630は、CPU610が実行するプログラム及びデータを一時的に記憶する。RAM630は、例えば、D−RAM(Dynamic-RAM)である。
内部記憶装置640は、情報処理装置600が長期的に保存するデータ及びプログラムを記憶する。内部記憶装置640は、図2に示されている記憶装置4として動作してもよい。つまり、内部記憶装置640は、図5ないし図7に示されている情報の一部又は全てを記憶してもよい。また、内部記憶装置640は、CPU610の一時記憶装置として動作してもよい。内部記憶装置640は、例えば、ハードディスク装置、光磁気ディスク装置、SSD(Solid State Drive)又はディスクアレイ装置である。
ここで、ROM620と内部記憶装置640は、不揮発性(non-transitory)の記憶媒体である。一方、RAM630は、揮発性(transitory)の記憶媒体である。そして、CPU610は、ROM620、内部記憶装置640、又は、RAM630に記憶されているプログラムを基に動作可能である。つまり、CPU610は、不揮発性記憶媒体又は揮発性記憶媒体を用いて動作可能である。
IOC650は、CPU610と、入力機器660及び表示機器670とのデータを仲介する。IOC650は、例えば、IOインターフェースカード又はUSB(Universal Serial Bus)カードである。さらに、IOC650は、USBのような有線に限らず、無線を用いてもよい。
入力機器660は、情報処理装置600の操作者からの入力指示を受け取る機器である。入力機器660は、図2に示されている入力装置1として動作してもよい。入力機器660は、例えば、キーボード、マウス又はタッチパネルである。
表示機器670は、情報処理装置600の操作者に情報を表示する機器である。表示機器670は、図2に示されている出力装置2として動作してもよい。表示機器670は、例えば、液晶ディスプレイである。
NIC680は、ネットワークを介した図示しない外部の装置とのデータのやり取りを中継する。NIC680は、図2に示されている入力装置1、出力装置2、及び/又は、記憶装置4との情報を中継してもよい。NIC680は、例えば、LAN(Local Area Network)カードである。さらに、NIC680は、有線に限らず、無線を用いてもよい。
このように構成された情報処理装置600は、情報処理装置3と同様の効果を得ることができる。
その理由は、情報処理装置600のCPU610が、プログラムに基づいて情報処理装置3と同様の機能を実現できるためである。
<<変形例>>
次に、第1の実施形態の変形例でもある各実施形態を説明する。なお、各実施形態に係る情報処理装置3の構成は、第1の実施形態と同様のため、構成の説明を省略する。また、第1の実施形態の同様の動作の説明を省略する。
<第2の実施形態>
情報処理装置3は、複数の階層(レベル)を含む情報を処理してもよい。つまり、対象情報は、複数のレベルを含む情報でもよい。
例えば、情報処理装置3は、複数のプログラムのレベル、詳細化のレベル、及び/又は具体化のレベルを含む対象情報における影響範囲を特定してもよい。
ここで、プログラムのレベルとは、プログラムの構造における上位と下位とを示す。例えば、ある処理を実行するメインプログラムが、二つのサブルーチンを利用する場合、サブルーチンは、メインプログラムに対して下位のレベルのプログラムである。
具体化のレベルとは、ITシステムにおける具体化の程度(具体度)を示す。例えば、データの仕様は、プログラムにおけるデータより具体化のレベルが低い。なお、具体度の反対が、抽象度である。
詳細化のレベルとは、ITシステムにおける詳細化の程度(詳細度)を示す。例えば、上記の二つのサブルーチンを含むメインプログラムの場合、サブルーチンは、メインプログラムより詳細化のレベルが高い。
図29は、複数のレベルを含む対象情報の一例を示す図である。図29は、図3におけるプログラムFの周りの一部を取り出して示した図である。図29において4つに区分された各領域が、レベルに相当する。
図29の右上の領域が、図3に対応する。図29において、左側が、詳細化の程度が低い。例えば、図29に左上の領域の「マスタdエンティティ」は、右上の領域の「データd」より詳細化の程度が低い。また、図29において、下側が、具体化の程度が低い。例えば、右下の領域の「データ1レイアウト仕様」は、右上の領域の「データd」より具体化の程度が低い。
[効果の説明]
情報処理装置3の影響範囲探査部71は、第1の実施形態と同様の動作を用いてあるレベルの影響範囲を特定し、特定したレベルの影響範囲を用いて、対応する各レベルの影響範囲を特定すればよい。例えば、情報処理装置3は、第1の実施形態の同様の動作を用いて、右上のレベルでの影響範囲を特定する。そして、情報処理装置3は、特定した影響範囲を用いて、その他のレベルにおける影響範囲を特定すればよい。
第2の実施形態は、第1の実施形態の効果に加え、複数のレベルにおける影響範囲を特定するとの効果を奏する。
その理由は、第2の実施形態に係る情報処理装置3が、第1の実施形態と同様の動作に基づいて特定した影響範囲を用いて、関連する他のレベルにおける影響範囲を特定するためである。
このように、第2の実施形態に係る情報処理装置3は、一つのレベルに限らず、複数のレベルを含むソフトウェア資産全体の影響範囲の絞り込むことができる。
<第3の実施形態>
また、情報処理装置3は、影響範囲の特定においてグラフを利用してもよい。さらに、情報処理装置3は、リンクなどに重みを用いてもよい。例えば、情報処理装置3は、レベルの移行に関するリンクに、重みを用いてもよい。
図30は、重みの一例を示す図である。図30は、一例として、テーブル形式を用いて重みを示した図である。ただし、重みの形式は、テーブル形式に限定されない。
図30に示されている重みは、リンクの属性(同格、下位、関連、詳細化、及び具体化)に対して、順方向及び非順方向の重みである。例えば、属性「下位」の順方向は、より下位となる方向のリンクに対する重みである。なお、このような重みは、「距離」と呼ばれる場合もある。
図30に示されている重みは、既に最も詳細度及び具体度が高いレベルの影響範囲が特定されている場合の重みの一例である。つまり、図30の重みは、影響範囲が特定されたレベルから、より詳細化する方向(詳細化の順方向)及びより具体化する方向(具体化の順方向)には移動できない場合の重みである。また、図30は、プログラムのレベルにおける下位には、移動できない場合の重みである。そのため、図30において、下位、詳細化、及び具体化の順方向の重み(距離)は、無限「∞」(距離が無限大)となっている。つまり、図30において無限は、移動できないリンクである。
さらに、図30の重みにおいて、プログラムとデータとの関係を示す「関連」は、移動しないリンクとする。そのため、「関連」の順方向及び非順方向とも、重みが無限となっている。
また、同格は、重みが「0」、つまり、移動距離が「0」である。つまり、同格における移動は、リンクの数にかかわらず、同様に移動できる。
次に、情報処理装置3の動作を説明する。
影響範囲探査部71は、リンクの重みを用いて、処理対象の情報におけるレベルにまたがった関係をグラフ化、つまり、処理対象のグラフを作成する。
図31は、図29の情報を基に作成した有効グラフの一例を示す図である。図31において、重みが無限大となるリンクは、省略している。
影響範囲探査部71は、作成したグラフを用いて、影響範囲を特定する。例えば、プログラムFの影響範囲は、図31において太線及び斜線を付した範囲となる。
なお、影響範囲探査部71は、図31のように有効グラフを用いることで、影響範囲の特定を、最短経路問題に置き換えることができる。そのため、影響範囲探査部71は、影響範囲の特定として、ベルマンフォード法又はワーシャルフロイド法といった一般的な最短経路を求める方式を用いて影響範囲を特定できる。
このように、影響範囲探査部71は、第1の実施形態の同様の動作を用いてあるレベルの影響範囲を特定し、さらに、上記の最短経路を求める方法を用いて、複数のレベルをまたいだ影響範囲を特定できる。
図32は、図29において、プログラムFの影響範囲を示す図である。例えば、プログラムFの影響範囲は、図32において太線及び斜線を付した範囲となる。
[効果の説明]
このように、第3の実施形態に係る情報処理装置3は、第1の実施形態及び第2の実施形態の効果に加え、容易に影響範囲の特定できるとの効果を奏する。
その理由は、第3の実施形態に係る情報処理装置3が、重みを基に、レベルをまたいだグラフを作成し、作成したグラフを用いて、影響範囲を特定するためである。
<その他の実施形態>
由来抽出部51は、対象となる情報におけるデータレイアウト(例えば、属性及びデータ長)を用いて、関連するデータを推定し、推定を基にデータの由来を抽出してもよい。
あるいは、由来抽出部51は、所定の辞書又は自然言語解析を用いて、関連するデータを推定し、推定を基にデータの由来を抽出してもよい。
情報処理装置3は、上記の動作を基に、対象となるデータに欠損が含まれている場合でも、影響範囲を絞り込むことができる。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成及び詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
本発明は、ソフトウェア企画又は開発フェーズにおける設計、製造、及びテスト支援、ソフトウェア運用及び保守フェーズにおける改造支援及び障害分析支援、並びに、上記フェーズを通した影響分析支援及び作業工数の見積り支援に利用可能である。
1 入力装置
2 出力装置
3 情報処理装置
4 記憶装置
10 情報処理システム
51 由来抽出部
52 順序抽出部
71 影響範囲探査部
600 情報処理装置
610 CPU
620 ROM
630 RAM
640 内部記憶装置
650 IOC
660 入力機器
670 表示機器
680 NIC
700 記憶媒体

Claims (7)

  1. データと前記データを処理するプログラムとを含む対象情報において、前記プログラムの入力となっている前記データを基に作成又は更新される前記データがあるか否かを判定し、前記プログラムの入力となっている前記データを基に作成又は更新される前記データがある場合、データの生成関係に関する情報である由来として、前記プログラムの入力となっている前記データと、前記プログラムの入力となっている前記データを基に作成又は更新される前記データとを抽出する由来抽出手段と、
    前記データと前記プログラムとの関係であるリンクの順序を抽出する順序抽出手段と、
    前記由来と前記順序とを基に第1のプログラムの影響範囲を特定する影響範囲探査手段と
    含み、
    前記影響範囲探査手段が、さらに、前記リンクを前記順序に従って結合したフロー間における前記プログラムの実行の順序である前記リンクの前記順序に基づいて、前記第1のプログラムの影響範囲を特定する
    情報処理装置。
  2. 前記影響範囲探査手段は、
    第1のプログラムと前記第1のプログラムが作成又は更新する第1のデータとの第1のリンクの第1の順序と、前記第1のデータを由来とする前記データとを基に前記影響範囲を特定する
    請求項1に記載の情報処理装置。
  3. 前記影響範囲探査手段が、
    前記第1のデータを入力とするプログラムの中で、前記第1のデータとの第2のリンクの第2の順序が前記第1の順序より後ろである第2のプログラムを前記影響範囲と特定する
    請求項2に記載の情報処理装置。
  4. 前記影響範囲探査手段が、
    前記第1のデータを入力とし、前記第1のデータを由来とする第2のデータを出力し、前記第1のデータとの第3のリンクの第3の順序が前記第1の順序の後である第3のプログラムと、前記第2のデータとを、前記影響範囲と特定する
    請求項3に記載の情報処理装置。
  5. 前記影響範囲探査手段が、
    前記第3のプログラムと前記第2のデータとの第4のリンクの第4の順序より、前記第2のデータを入力とし、前記第2のデータを由来とする第3のデータを出力し、前記第2のデータとの第5のリンクの第5の順序が前記第4の順序の後である第4のプログラムと、前記第3のデータとを、前記影響範囲と特定する
    請求項4に記載の情報処理装置。
  6. 情報処理装置が、
    データと前記データを処理するプログラムとを含む対象情報において、前記プログラムの入力となっている前記データを基に作成又は更新される前記データがあるか否かを判定し、前記プログラムの入力となっている前記データを基に作成又は更新される前記データがある場合、データの生成関係に関する情報である由来として、前記プログラムの入力となっている前記データと、前記プログラムの入力となっている前記データを基に作成又は更新される前記データとを抽出し、
    前記データと前記プログラムとの関係であるリンクの順序を抽出し、
    前記由来と前記順序とを基に第1のプログラムの影響範囲を特定し、
    前記第1のプログラムの影響範囲を特定は、前記リンクを前記順序に従って結合したフロー間における前記プログラムの実行の順序である前記リンクの前記順序に基づいて、前記第1のプログラムの影響範囲を特定する
    情報処理方法。
  7. データと前記データを処理するプログラムとを含む対象情報において、前記プログラムの入力となっている前記データを基に作成又は更新される前記データがあるか否かを判定し、前記プログラムの入力となっている前記データを基に作成又は更新される前記データがある場合、データの生成関係に関する情報である由来として、前記プログラムの入力となっている前記データと、前記プログラムの入力となっている前記データを基に作成又は更新される前記データとを抽出する処理と、
    前記データと前記プログラムとの関係であるリンクの順序を抽出する処理と、
    前記由来と前記順序とを基に第1のプログラムの影響範囲を特定する処理と
    をコンピュータに実行させ、
    前記第1のプログラムの影響範囲を特定する処理は、前記リンクを前記順序に従って結合したフロー間における前記プログラムの実行の順序である前記リンクの前記順序に基づいて、前記第1のプログラムの影響範囲を特定する
    プログラム。
JP2016180608A 2016-09-15 2016-09-15 情報処理装置、情報処理方法、及び、プログラム Active JP6878804B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016180608A JP6878804B2 (ja) 2016-09-15 2016-09-15 情報処理装置、情報処理方法、及び、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016180608A JP6878804B2 (ja) 2016-09-15 2016-09-15 情報処理装置、情報処理方法、及び、プログラム

Publications (2)

Publication Number Publication Date
JP2018045508A JP2018045508A (ja) 2018-03-22
JP6878804B2 true JP6878804B2 (ja) 2021-06-02

Family

ID=61694838

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016180608A Active JP6878804B2 (ja) 2016-09-15 2016-09-15 情報処理装置、情報処理方法、及び、プログラム

Country Status (1)

Country Link
JP (1) JP6878804B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG11202005429WA (en) 2017-12-11 2020-07-29 Agc Inc Coating material, cover glass, solar cell module and outer wall material for building
JP7356013B2 (ja) 2019-10-21 2023-10-04 富士通株式会社 情報提示プログラム、情報提示装置、及び情報提示方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007128123A (ja) * 2005-11-01 2007-05-24 Hitachi Ltd 影響範囲抽出システム
US10176234B2 (en) * 2014-11-05 2019-01-08 Ab Initio Technology Llc Impact analysis

Also Published As

Publication number Publication date
JP2018045508A (ja) 2018-03-22

Similar Documents

Publication Publication Date Title
US10803209B2 (en) Tracking the evolution of a design space
US7877737B2 (en) Tree-to-graph folding procedure for systems engineering requirements
JP6635963B2 (ja) モデル駆動手法による自動化されたユーザインターフェース(ui)テストのための方法およびシステム
KR20130135271A (ko) 코드 복제 통지 및 아키텍처 변경 가시화
US11604628B2 (en) Generation and/or recommendation of tools for automating aspects of computer programming
US20200342148A1 (en) Systems and methods for running a simulation
US10572247B2 (en) Prototype management system
JP6878804B2 (ja) 情報処理装置、情報処理方法、及び、プログラム
JPWO2020008991A1 (ja) 検証自動化装置、検証自動化方法、およびプログラム
JP2013045186A (ja) 部品表を展開する装置及び方法
JP2017045080A (ja) 業務フロー仕様再生方法
WO2016073198A1 (en) Systems, methods, and computer medium to optimize the storage of hydrocarbon reservoir simulation data
US8392892B2 (en) Method and apparatus for analyzing application
CN107357691B (zh) 镜像文件的处理方法及装置
US20180196738A1 (en) Test input information search device and method
CN104166541A (zh) 用于更新被测控件库的方法和装置
US20220207381A1 (en) Computer-readable recording medium having stored therein vector estimating program, apparatus for estimating vector, and method for estimating vector
US20080140364A1 (en) Computer Program Product & Computer with Program to Execute a Well-Posed Mathematical Method
JP6737063B2 (ja) ソフトウェア資産管理装置、ソフトウェア資産管理方法、および、ソフトウェア資産管理プログラム
US20220083703A1 (en) Customizable reinforcement learning of column placement in structural design
Hjertberg et al. A tool for obtaining transparency and traceability in heterogeneous design automation environments
US9141734B2 (en) System and method of refining a topological indexed mesh
JP5319643B2 (ja) ソフトウェアプロダクトライン開発支援装置およびその方法
US10754876B2 (en) Cloning of a system
JP6379713B2 (ja) 設計支援プログラム、装置、及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190820

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200817

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200908

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200928

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20201124

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210202

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20210202

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20210212

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20210216

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210412

R150 Certificate of patent or registration of utility model

Ref document number: 6878804

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150