(57)【要約】【課題】基準となるソースコードから作成された複数のソースコードが適切に更新されているかを判定すること。【解決手段】判定装置１は、基準ソースコード、第１ソースコード及び第２ソースコードに対して、プログラムの関係を示す関係情報を生成する分析部２と、各ソースコードの関係情報に基づいて、第１ソースコード及び第２ソースコードの各々と、基準ソースコードとの差分情報を算出すると共に、差分情報同士の差分を示す適用差分を算出する算出部３と、適用差分に基づいて、第１ソースコードと第２ソースコードとが同一であるかを判定し、第１ソースコードと第２ソースコードとが同一ではない場合、第１ソースコードを基準にした第２ソースコードの差分情報を決定する評価部４と、を備える。【選択図】図１
2020038586.tif 000002
【特許請求の範囲】
【請求項１】
基準ソースコード、前記基準ソースコードから作成された、第１ソースコード及び第２ソースコードに対して、各ソースコードに含まれるプログラムの関係を示す関係情報を生成する分析部と、
各ソースコードの前記関係情報に基づいて、前記第１ソースコード及び前記第２ソースコードの各々と、前記基準ソースコードとの差分情報であって、前記関係情報の差分と、当該差分となる関係情報の変更内容を示す変更種別と、を含む前記差分情報を算出すると共に、前記差分情報同士の差分を示す適用差分を算出する算出部と、
前記適用差分に基づいて、前記第１ソースコードと前記第２ソースコードとが同一であるかを判定すると共に、前記第１ソースコードと前記第２ソースコードとが同一ではない場合、前記第１ソースコードを基準にした前記第２ソースコードの差分情報を決定する評価部と、を備える判定装置。
【請求項２】
前記分析部は、前記基準ソースコードと各ソースコードとの間に生成された中間ソースコードの前記関係情報を生成し、
前記算出部は、各ソースコードの前記関係情報に基づいて、前記基準ソースコードと各中間ソースコードとの第２差分情報、各中間ソースコードと前記第１ソースコード及び前記第２ソースコードの各々との第３差分情報を算出すると共に、前記第２差分情報と前記第３差分情報とに基づいて前記適用差分を算出する、請求項１に記載の判定装置。
【請求項３】
前記算出部は、前記第２差分情報同士の差分を示す第１変更差分と、前記第３差分情報同士の差分を示す第２変更差分とを算出し、前記第１変更差分と前記第２変更差分との差分を前記適用差分として算出する、請求項２に記載の判定装置。
【請求項４】
前記算出部は、各差分情報の算出元の２つのソースコードのうちの一方を、基準とするソースコードとして選択し、前記２つのソースコードの前記関係情報の差分を算出し、当該差分となる関係情報が前記選択されたソースコードに含まれるか否かに基づいて、前記差分となる関係情報の前記変更種別を決定する、請求項１〜３のいずれか１項に記載の判定装置。
【請求項５】
前記評価部の判定結果を出力し、前記第１ソースコードと前記第２ソースコードとが同一ではない場合、前記第１ソースコードを基準にした前記第２ソースコードの差分情報をさらに出力する出力部をさらに備える請求項１〜４のいずれか１項に記載の判定装置。
【請求項６】
基準ソースコード、前記基準ソースコードから作成された、第１ソースコード及び第２ソースコードに対して、各ソースコードに含まれるプログラムの関係を示す関係情報を生成することと、
各ソースコードの前記関係情報に基づいて、前記第１ソースコード及び前記第２ソースコードの各々と、前記基準ソースコードとの差分情報であって、前記関係情報の差分と、当該差分となる関係情報の変更内容を示す変更種別と、を含む前記差分情報を算出すると共に、前記差分情報同士の差分を示す適用差分を算出することと、
前記適用差分に基づいて、前記第１ソースコードと前記第２ソースコードとが同一であるかを判定すると共に、前記第１ソースコードと前記第２ソースコードとが同一ではない場合、前記第１ソースコードを基準にした前記第２ソースコードの差分情報を決定することと、を含む判定方法。
【請求項７】
基準ソースコード、前記基準ソースコードから作成された、第１ソースコード及び第２ソースコードに対して、各ソースコードに含まれるプログラムの関係を示す関係情報を生成することと、
各ソースコードの前記関係情報に基づいて、前記第１ソースコード及び前記第２ソースコードの各々と、前記基準ソースコードとの差分情報であって、前記関係情報の差分と、当該差分となる関係情報の変更内容を示す変更種別と、を含む前記差分情報を算出すると共に、前記差分情報同士の差分を示す適用差分を算出することと、
前記適用差分に基づいて、前記第１ソースコードと前記第２ソースコードとが同一であるかを判定すると共に、前記第１ソースコードと前記第２ソースコードとが同一ではない場合、前記第１ソースコードを基準にした前記第２ソースコードの差分情報を算出することと、をコンピュータに実行させる判定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、判定装置、判定方法及び判定プログラムに関する。
【背景技術】
【０００２】
企業がＩＴシステムを構築する際、構築コストを削減するため、複数の企業で共通に利用される機能を含む「共通ソースコード」を作成すると共に、一部の企業固有の機能を共通ソースコードに追加するカスタマイズ作業を行い、「専用ソースコード」を作成する。
【０００３】
一方で、ある時点の共通ソースコードをカスタマイズして専用ソースコードを作成した後、ＩＴシステムの運用を続けていく中で、共通ソースコードをアップデートした場合、専用ソースコードに対しても同様の更新を実施する必要がある。
【０００４】
専用ソースコードにはカスタマイズによって追加された更新内容が存在しており、機械的に統合を行うと更新内容が適切に反映されず、更新内容の一部が欠損してしまうという危険性がある。そこで、更新内容の一部が欠損してしまうことを防ぐために、共通ソースコードに対するアップデート（更新内容）をソースコードに反映するではなく、文章や設計書等の形式で受け取る。そして、開発者又は運用者が受け取った文章や設計書の内容を、専用ソースコードに手動で適用していくことにより、更新内容の一部が欠損することを防ぐ。
【０００５】
しかしながら、開発者又は運用者が手動で更新内容をソースコードに適用すると、開発コスト又は運用コストが高くなってしまう。また、開発者又は運用者が手動で更新内容をソースコードに適用する場合であっても、更新内容の一部が欠損してしまうことを十分に防ぐことは出来ない。そこで、基準となるソースコードの一部に修正が加えられる場合に、更新内容を差分内容として算出し、算出された差分内容をソースコードに適用する関連技術が存在する（例えば、特許文献１及び２）。
【０００６】
特許文献１には、修正前のソフトウェアの呼び出し関係を示すコールグラフと修正後のソフトウェアの呼び出し関係を示すコールグラフとを比較し、サブルーチンの呼び出し元が変更されたことなどを把握し修正後のソフトウェアに適用する技術が開示されている。
【０００７】
また、特許文献２には、ターゲットモデル０のｎ回目の変更によって得られたターゲットモデルの変更点と、ターゲットモデル１の変更点とをマージして、更新内容を適切に適用したターゲットモデルを作成する技術が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１７−１４２７１２号公報
【特許文献２】特開２００８−２６９１３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１及び２は、基準となるソースコードから異なる更新内容が加えられて作成された複数のソースコードが同一であることを判定することを開示していない。さらに、特許文献１及び２は、上記複数のソースコードに差分があった場合に、差分となる更新内容を把握する技術も開示していない。
【００１０】
本開示の目的は、上述の問題を解決するためになされたものであり、基準となるソースコードから作成された複数のソースコードが適切に更新されているかを判定することが可能な判定装置、判定方法及び判定プログラムを提供することである。
【課題を解決するための手段】
【００１１】
本開示にかかる判定装置は、
基準ソースコード、前記基準ソースコードから作成された、第１ソースコード及び第２ソースコードに対して、各ソースコードに含まれるプログラムの関係を示す関係情報を生成する分析部と、
各ソースコードの前記関係情報に基づいて、前記第１ソースコード及び前記第２ソースコードの各々と、前記基準ソースコードとの差分情報であって、前記関係情報の差分と、当該差分となる関係情報の変更内容を示す変更種別と、を含む前記差分情報を算出すると共に、前記差分情報同士の差分を示す適用差分を算出する算出部と、
前記適用差分に基づいて、前記第１ソースコードと前記第２ソースコードとが同一であるかを判定すると共に、前記第１ソースコードと前記第２ソースコードとが同一ではない場合、前記第１ソースコードを基準にした前記第２ソースコードの差分情報を決定する評価部と、を備える判定装置である。
【００１２】
本開示にかかる判定方法は、
基準ソースコード、前記基準ソースコードから作成された、第１ソースコード及び第２ソースコードに対して、各ソースコードに含まれるプログラムの関係を示す関係情報を生成することと、
各ソースコードの前記関係情報に基づいて、前記第１ソースコード及び前記第２ソースコードの各々と、前記基準ソースコードとの差分情報であって、前記関係情報の差分と、当該差分となる関係情報の変更内容を示す変更種別と、を含む前記差分情報を算出すると共に、前記差分情報同士の差分を示す適用差分を算出することと、
前記適用差分に基づいて、前記第１ソースコードと前記第２ソースコードとが同一であるかを判定すると共に、前記第１ソースコードと前記第２ソースコードとが同一ではない場合、前記第１ソースコードを基準にした前記第２ソースコードの差分情報を決定することと、を含む判定方法である。
【００１３】
本開示にかかる判定プログラムは、
基準ソースコード、前記基準ソースコードから作成された、第１ソースコード及び第２ソースコードに対して、各ソースコードに含まれるプログラムの関係を示す関係情報を生成することと、
各ソースコードの前記関係情報に基づいて、前記第１ソースコード及び前記第２ソースコードの各々と、前記基準ソースコードとの差分情報であって、前記関係情報の差分と、当該差分となる関係情報の変更内容を示す変更種別と、を含む前記差分情報を算出すると共に、前記差分情報同士の差分を示す適用差分を算出することと、
前記適用差分に基づいて、前記第１ソースコードと前記第２ソースコードとが同一であるかを判定すると共に、前記第１ソースコードと前記第２ソースコードとが同一ではない場合、前記第１ソースコードを基準にした前記第２ソースコードの差分情報を決定することと、をコンピュータに実行させる判定プログラムである。
【発明の効果】
【００１４】
本開示によれば、基準となるソースコードから作成された複数のソースコードが適切に更新されているかを判定することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】実施の形態の概要にかかる判定装置の構成例を示す図である。
【図２】実施の形態に関連するソースコードの関係を説明する図である。
【図３】実施の形態にかかる判定装置の構成例を示す図である。
【図４】ソースコード格納部に格納される各ソースコードとプログラムとの関係を示す模式図である。
【図５】各ソースコードに含まれるプログラムの関係を示す概念図である。
【図６】各ソースコードに含まれるプログラムの関係を示す概念図である。
【図７】各ソースコードに含まれるプログラムの関係を示す概念図である。
【図８】各ソースコードに含まれるプログラムの関係を示す概念図である。
【図９】各ソースコードの関係情報の一例を示す図である。
【図１０】差分算出部が行う処理概要を説明する図である。
【図１１】関係情報差分テーブルの一例を示す図である。
【図１２】変更差分テーブルの一例を説明する図である。
【図１３】適用差分算出部及び適用差分評価部の処理を説明する図である。
【図１４】適用差分算出部及び適用差分評価部の処理を説明する図である。
【図１５】実施の形態にかかる判定装置の動作例を説明する図である。
【図１６】実施の形態にかかる判定装置の動作例を説明する図である。
【図１７】実施の形態にかかる判定装置の動作例を説明する図である。
【図１８】実施の形態にかかる判定装置の動作例を説明する図である。
【図１９】実施の形態にかかる判定装置の動作例を説明する図である。
【図２０】実施の形態にかかる判定装置の動作例を説明する図である。
【図２１】本開示の各実施の形態にかかる判定装置のハードウェア構成を例示するブロック図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照して本開示の実施の形態について説明する。なお、以下の記載及び図面は、説明の明確化のため、適宜、省略及び簡略化がなされている。また、以下の各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１７】
（実施の形態の概要）
本開示の実施の形態の説明に先立って、実施の形態の概要について説明する。図１は、実施の形態の概要にかかる判定装置の構成例を示す図である。判定装置１は、基準となるソースコードから作成された複数のソースコードが一致するか否かを判定する。判定装置１は、例えば、サーバ、コンピュータ装置等であってもよい。
【００１８】
判定装置１は、分析部２と、算出部３と、評価部４とを備える。
分析部２は、基準ソースコード、基準ソースコードから作成された、第１ソースコード及び第２ソースコードに対して、各ソースコードに含まれるプログラムの関係を示す関係情報を生成する。
【００１９】
ソースコードは、例えば、ソフトウェア、バッチファイル等であってもよい。もしくは、ソースコードは、実行されるプログラムの集合を示すプログラム群が１つのファイルに設定されたプログラムファイルであってもよい。
【００２０】
プログラムは、例えば、ソースコードに含まれる１又は複数の関数であってもよい。もしくは、プログラムは、例えば、判定装置１に実行させる１又は複数の処理内容であってもよいし、判定装置１に実行させる命令であってもよい。
【００２１】
関係情報は、例えば、呼び出し元のプログラムと呼び出し先のプログラムとの関係を示す情報であってもよい。もしくは、関係情報は、例えば、実行される処理順序の関係を示す情報であってもよい。
【００２２】
算出部３は、各ソースコードの関係情報に基づいて、第１ソースコード及び第２ソースコードの各々と、基準ソースコードとの差分情報であって、関係情報の差分と、当該差分となる関係情報の変更内容を示す変更種別と、を含む差分情報を算出する。算出部３は、差分情報同士の差分を示す適用差分を算出する。
【００２３】
評価部４は、算出部３が算出した適用差分に基づいて、第１ソースコードと第２ソースコードとが同一であるかを判定する。また、評価部４は、第１ソースコードと第２ソースコードとが同一ではない場合、第１ソースコードを基準にした第２ソースコードの差分情報を決定する。
【００２４】
以上説明したように、分析部２が各ソースプログラムに含まれるプログラムの関係を示す関係情報を生成する。算出部３は、各ソースコードの関係情報に基づいて、第１ソースコード及び第２ソースコードの各々に対して、基準ソースコードとの差分情報し、差分情報同士の差分を示す適用差分を算出する。評価部４は、適用差分に基づいて、第１ソースコードと第２ソースコードとが同一であるかを判定する。また、評価部４は、第１ソースコードと第２ソースコードとが同一ではない場合、第１ソースコードを基準にした第２ソースコードの差分情報を決定する。したがって、実施の形態にかかる判定装置１を用いることにより、基準となるソースコードから作成された複数のソースコードが適切に更新されているかを判定することが可能となる。さらに、実施の形態にかかる判定装置１０を用いることにより、基準となるソースコードから作成された複数のソースコードが適切に更新されていない場合であっても差分内容を把握することが可能となる。
【００２５】
（実施の形態）
まず、実施の形態の詳細を説明する前に、課題事項を再度整理する。図２は、実施の形態に関連するソースコードの関係を説明する図である。
【００２６】
図２のうち、網掛けがされていない、白色のブロックは、ソースコードを示している。また、斜線により網掛けされたブロックは、矢印の始点に記載されたソースコードからの更新内容を示しており、当該更新内容に基づいて作成されたソースコードを矢印の終点に記載している。例えば、共通ソースコード２は、共通ソースコード１に対して、共通アップデート１という更新内容が加えられて作成されたソースコードであることを示している。
【００２７】
図２に示したソースコードのうち、複数の企業で共通に使用される機能を盛り込んだソースコードを共通ソースコードと呼び、一部の企業で使用される機能を盛り込んだソースコードを専用ソースコードと呼ぶ。また、共通ソースコードのうち、例えば、全企業に対して共通して使用される機能を盛り込んだソースコードであって、基準となるソースコードを共通ソースコード１とする。共通ソースコード１は、実施の形態の概要における基準ソースコードに対応する。
【００２８】
一般的に、共通ソースコード１から複数のソースコードが作成される。複数のソースコードのうちの１つは、共通ソースコード１を基準として、全企業で共通に使用される機能を更新内容として作成された共通ソースコード２である。当該更新内容を共通アップデート１と称する。共通アップデート１は、全企業で共通に利用されると想定される新機能の追加、及び発覚した問題の修正等が発生した場合、共通ソースコード１を編集する更新内容（更新作業）である。共通アップデート1により作成されるソースコードを共通ソースコード２とする。
【００２９】
その他としては、共通ソースコード１を基準として、一部の企業で使用される機能を更新内容として作成された専用ソースコード１である。当該更新内容をカスタマイズ１と称する。カスタマイズ１は、一部の企業固有の要求が存在する等の理由により、共通ソースコード1のみでは要求を満たせない企業が現れた場合、当該企業固有の要求を実現するための更新内容（更新作業）である。
【００３０】
なお、図２には、共通ソースコード１から２つのソースコードが作成されることとして記載したが、当然ながら３つ以上のソースコードが作成されてもよい。また、図２には、共通ソースコード１と、専用ソースコード２との間には、それぞれ共通ソースコード２及び専用ソースコード１の１つのみが記載されているが、複数のソースコードが存在してもよい。なお、共通ソースコード２及び専用ソースコード１は、共通ソースコード１と、専用ソースコード２との間の中間に存在するソースコードであるので、中間ソースコードと称されてもよい。
【００３１】
上記の様に、共通ソースコード１から２つのソースコードが作成されたとしても、管理するソースコードの数が増加すると、管理が難しくなり、開発コストが高くなることから、基準となるソースコードを共通化しておくことが好ましい。そのため、ソースコードをアップデートするいずれかのタイミングにおいて、ソースコードを共通化する。
【００３２】
図２に示すように、共通ソースコード２から専用ソースコード２を作成し、専用ソースコード１からも専用ソースコード２を作成する。専用ソースコード１に対して、共通アップデート１に相当する変更を施す作業を専用アップデート１とする。共通ソースコード２に対して、カスタマイズ１に相当する変更を施す作業をカスタマイズ２とする。専用ソースコード２は、専用アップデート１又はカスタマイズ２によって作成される、共通ソースコード１に対して共通アップデート１及びカスタマイズ１に相当する変更が加わったソースコードである。換言すると、共通ソースコード２から作成された専用ソースコード２と、専用ソースコード１から作成された専用ソースコード２とは、共通化されたソースコードである。
【００３３】
ここで、共通ソースコード２から作成された専用ソースコード２と、専用ソースコード１から作成された専用ソースコード２とは、共通化されたソースコードであることから、同一のソースコードである必要がある。しかしながら、共通ソースコード１から共通ソースコード２を介して専用ソースコード２を作成する場合と、共通ソースコード１から専用ソースコード１を介して専用ソースコード２を作成する場合とでは、それぞれ対応する更新内容が異なる。したがって、共通ソースコード１から共通ソースコード２を介して作成された専用ソースコード２と、共通ソースコード１から専用ソースコード１を介して作成された専用ソースコード２とが同一のソースコードとはならない可能性が生じる。
【００３４】
異なる専用ソースコード２が作成されてしまうと、異なる専用ソースコード２を基準にさらに更新内容を盛り込んだソースコードが作成されてしまうことになり、ＩＴシステム全体の品質に懸念が残ることになる。また、共通ソースコード１からのアップデートは複数回の行われることが通常であることから、例えば、それに応じたアップデートの度に作成されたソースコードが同一であるかを目視による確認をしているとなると、開発又は運用効率は低くなる。また、例えば、それに応じたアップデートの度に作成されたソースコードが同一であるかを目視による確認をしているとなると、ＩＴシステム全体の品質に懸念が残ることとなる。
【００３５】
そこで、本実施の形態では、基準となる共通ソースコード１から異なる変更内容に基づき作成された専用ソースコード２が同一であるかを判定することを目的とする。さらに、本実施の形態では、仮に異なる専用ソースコード２が作成された場合であっても、どの更新内容が適用されていないかを把握することを目的とする。
【００３６】
以下、図面を参照して、本開示の実施の形態の詳細について説明する。
＜判定装置の構成例＞
図３を用いて、判定装置１０の構成例について説明する。図３は、実施の形態にかかる判定装置の構成例を示す図である。判定装置１０は、実施の形態の概要における判定装置１に対応する。判定装置１０は、基準となる共通ソースコード１から異なる更新内容に基づき作成された専用ソースコード２が同一であるか否かを判定する装置である。判定装置１０は、例えば、コンピュータ装置であってもよいし、サーバであってもよい。
【００３７】
判定装置１０は、関係情報分析部１１と、差分算出部１２と、適用差分評価部１３と、記憶部１４と、出力部１５とを備える。
【００３８】
関係情報分析部１１は、実施の形態の概要における分析部２に対応する。関係情報分析部１１は、記憶部１４のソースコード格納部１４１に格納された各ソースコードに対して、各ソースコードに含まれるプログラム間の関係情報を生成する。関係情報分析部１１は、ソースコードに記述された自身や他のリソースへの関係を分析し、分析対象のソースコード、関係元、関係先の情報を得る。この分析は、静的解析など一般的なプログラム解析技術によって実施できる。
【００３９】
関係情報分析部１１は、関係情報を生成すると、関係情報テーブルＴ１に生成した関係情報を登録する。関係情報テーブルＴ１は、記憶部１４の関係情報格納部１４２に格納される。関係情報テーブルＴ１に関する説明は後述する。
【００４０】
ソースコード格納部１４１には、共通ソースコード１、共通ソースコード２、専用ソースコード１、共通ソースコード２から作成された専用ソースコード２＿１、及び専用ソースコード１から作成された専用ソースコード２＿２が格納されている。つまり、関係情報分析部１１は、共通ソースコード１、共通ソースコード２、専用ソースコード１、共通ソースコード２から作成された専用ソースコード２＿１、及び専用ソースコード１から作成された専用ソースコード２＿２の各々に対して関係情報を生成する。
【００４１】
専用ソースコード２＿１は、基準となる共通ソースコード１から第１の変更内容に基づき作成されたソースコードとも言える。専用ソースコード２＿２は、基準となる共通ソースコード１から第２の変更内容に基づき作成されたソースコードとも言える。共通ソースコード２は、共通ソースコード１から専用ソースコード２＿１までの第１の変更内容のうちの一部の変更内容に基づき作成されたソースコードと言える。専用ソースコード１は、共通ソースコード１から専用ソースコード２＿２までの第２の変更内容のうちの一部の変更内容に基づき作成されたソースコードと言える。換言すると、共通ソースコード２及び専用ソースコード１は、中間ソースコードとも言える。
【００４２】
なお、本実施の形態では、上記の各ソースコードは、ソースコード格納部１４１に予め格納されているとして説明するが、上記の各ソースコードは、図示しない入力部から入力されてもよい。
【００４３】
ソースコードは、例えば、ソフトウェア、バッチファイル等であってもよい。もしくは、ソースコードは、実行されるプログラムの集合を示すプログラム群が１つのファイルに設定したプログラムファイルであってもよい。
【００４４】
プログラムは、例えば、ソースコードに含まれる１又は複数の関数であってもよい。もしくは、プログラムは、例えば、判定装置１に実行させる１又は複数の処理内容であってもよいし、判定装置１に実行させる命令であってもよい。
【００４５】
関係情報は、例えば、呼び出し元のプログラムと呼び出し先のプログラムとの関係を示す情報であってもよい。もしくは、関係情報は、例えば、実行される処理順序の関係を示す情報であってもよい。
【００４６】
ここで、図４を用いて、ソースコード格納部１４１に格納される各ソースコードとプログラムとの関係を説明する。図４は、ソースコード格納部に格納される各ソースコードとプログラムとの関係を示す模式図である。ソースコード格納部１４１は、１つ以上のプログラムと、当該プログラムが属するソースコードの情報を保持する。
【００４７】
図４に示す様に、ソースコード格納部１４１には、専用ソースコード２＿１及び２＿２が一致するか否かを判定するために必要な各ソースコードが格納される。具体的には、ソースコード格納部１４１には、共通ソースコード１ Ｓ１、共通ソースコード２ Ｓ２、専用ソースコード１ Ｓ３、専用ソースコード２＿１ Ｓ４及び専用ソースコード２＿２ Ｓ５がそれぞれ格納される。また各ソースコードには、当該ソースコードに含まれるプログラムがまとまって格納される。例えば、共通ソースコード１ Ｓ１にプログラムＡ〜プログラムＥが含まれるとすると、共通ソースコード１ Ｓ１を１つのフォルダとして、当該フォルダの中にプログラムＡ〜Ｅが格納される。
【００４８】
次に、図５〜図８を用いて、各ソースコードに含まれるプログラムと、各プログラムの関係について説明し、図９を用いて、各ソースコードに対して生成される関係情報について説明する。図５〜図８は、各ソースコードに含まれるプログラムの関係を示す概念図である。図９は、各ソースコードの関係情報の一例を示す図である。
【００４９】
図５は、共通ソースコード１に含まれるプログラムの関係を示している。図５に示すように共通ソースコード１には、プログラムＡ〜Ｅが含まれており、プログラムＡを起点として、プログラムＡと、プログラムＢ及びプログラムＣとが関係する。
【００５０】
プログラムＡと、プログラムＢ及びプログラムＣとの関係は、例えば、プログラムＡがプログラムＢ及びプログラムＣを呼び出すプログラムとなっている場合の関係である。もしくは、プログラムＡと、プログラムＢ及びプログラムＣとの関係は、例えば、プログラムＡが実行された後に、プログラムＢ及びプログラムＣが実行される等の処理順序の関係である。また、プログラムＣは、プログラムＤ及びプログラムＥと関係する。
【００５１】
図６は、共通ソースコード２に含まれるプログラムの関係を示している。図６に示すように共通ソースコード２には、プログラムＡ〜Ｅ及びプログラムＨが含まれている。プログラムＡを起点として、プログラムＡと、プログラムＢ及びプログラムＣとが関係する。プログラムＡと、プログラムＢ及びプログラムＣとの関係は、図５と同様である。また、プログラムＢは、プログラムＨと関係する。プログラムＣは、プログラムＤ及びプログラムＥと関係する。
【００５２】
ここで、図６のうち、縦線により網掛けされたブロックは、共通ソースコード１に対して追加されたプログラムであることを示しており、斜線により網掛けされたブロックは、共通ソースコード１に対して削除されたプログラムであることを示している。つまり、共通ソースコード２は、共通ソースコード１からプログラムＨが追加され、共通ソースコード１からプログラムＥが削除されたソースコードである。
【００５３】
図７は、専用ソースコード１に含まれるプログラムの関係を示している。図７に示すように専用ソースコード１には、プログラムＡ〜Ｅ及びプログラムＸが含まれている。プログラムＡを起点として、プログラムＡと、プログラムＢ及びプログラムＣとが関係する。また、プログラムＢは、プログラムＸと関係する。専用ソースコード１は、共通ソースコード１からプログラムＸが追加されている。プログラムＣは、プログラムＤ及びプログラムＥと関係する。
【００５４】
図８は、専用ソースコード２＿２に含まれるプログラムの関係を示している。つまり、図８は、専用ソースコード１を基準とした場合の専用ソースコード２＿２のプログラムの関係図を示している。図８に示すように、専用ソースコード２＿２には、プログラムＡ〜Ｅ、プログラムＨ及びプログラムＸが含まれている。プログラムＡを起点として、プログラムＡと、プログラムＢ及びプログラムＣとが関係する。プログラムＢは、プログラムＨ及びプログラムＸと関係する。プログラムＣは、プログラムＤ及びプログラムＥと関係する。ただし、プログラムＥは、専用ソースコード１から削除されたプログラムである。なお、専用ソースコード２＿１と専用ソースコード２＿２とが、適切に更新内容が適用された場合は、専用ソースコード２＿２に含まれるプログラムＡ〜Ｄ、プログラムＨ及びプログラムＸは、専用ソースコード２＿１にも含まれることになる。
【００５５】
次に、図９を参照して、各ソースコードの関係情報について説明する。図９は、各ソースコードの関係情報が登録される関係情報テーブルＴ１の一例を説明する図である。関係情報テーブルＴ１は、各ソースコードに含まれるプログラムの関係情報が登録されるテーブルである。関係情報テーブルＴ１には、テーブルの左から順にソースコード名、関係元、及び関係先が設定される。
【００５６】
ソースコード名には、登録された関係情報に関連するソースコードの名称が設定される。
関係元及び関係先は、プログラム間の関係元及び関係先が設定される。例えば、共通ソースコード１に含まれる、プログラムＡとプログラムＢとの関係は、図５に示すように、プログラムＡからプログラムＢに対して矢印が向かれている。そのため、プログラムＡが関係元として設定され、プログラムＢが関係先として設定される。したがって、図９に示すように、ソースコード名に「共通ソースコード１」が設定され、関係元に「プログラムＡ」が設定され、関係先に「プログラムＢ」が設定される。関係情報分析部１１は、各ソースコードに含まれる各プログラムに対して同様に関係元及び関係先となるプログラムを分析して、関係情報テーブルＴ１に関係情報を登録する。
【００５７】
図３に戻り、差分算出部１２について説明する。差分算出部１２は、実施の形態の概要における算出部３に対応する。差分算出部１２は、各ソースコードの関係情報に基づいて、基準となる共通ソースコード１と、共通ソースコード２を介して作成された専用ソースコード２＿１との間の関係情報の差分と、当該差分となる関係情報の変更種別と、を含む差分情報を算出する。また、差分算出部１２は、基準となる共通ソースコード１と、専用ソースコード１を介して作成された専用ソースコード２＿２との間の関係情報の差分と、当該差分となる関係情報の変更種別と、を含む差分情報を算出する。さらに、差分算出部１２は、算出した差分情報の差分を算出する。
【００５８】
まず、図１０を用いて、差分算出部１２が行う処理概要を説明する。図１０は、差分算出部が行う処理概要を説明する図である。図１０のうち、白色のブロックは、図２の各ソースコードに対応しており、各ソースコードの関係情報を示している。
【００５９】
差分算出部１２は、各ソースコードの関係情報を用いて、各ソースコード間の関係情報の差分（関係情報差分）を算出する。算出された関係情報差分は、横線で網掛けされたブロックで示されている。この算出処理は、関係情報差分算出部１２１が行う。
【００６０】
次に、差分算出部１２は、横線で網掛けされたブロックで示した関係情報差分を用いて、共通アップデート１関係情報差分と、カスタマイズ１関係情報差分との間の変更差分を算出する。この算出処理は、変更差分算出部１２２が行う。なお、以降の説明では、この変更差分を既存変更差分として記載する。
【００６１】
また、差分算出部１２は、横線で網掛けされたブロックで示した関係情報差分を用いて、カスタマイズ２関係情報差分と、専用アップデート１関係情報差分と、の間の変更差分を算出する。この算出処理は、変更差分算出部１２２が行う。なお、以降の説明では、この変更差分を新規変更差分として記載する。
【００６２】
つまり、差分算出部１２は、各ソースコードの関係情報に基づいて、基準ソースコードである共通ソースコード１と各中間ソースコードである（共通ソースコード２及び専用ソースコード１）との差分情報を算出する。差分算出部１２は、各中間ソースコード（共通ソースコード２及び専用ソースコード１）と各ソースコード（専用ソースコード２＿１及び専用ソースコード２＿２）との差分情報を算出する。
【００６３】
さらに、差分算出部１２は、既存変更差分と、新規変更差分との差分を算出する。この差分を適用差分と称して記載することがある。
【００６４】
図３に戻り差分算出部１２の詳細を説明する。
差分算出部１２は、関係情報差分算出部１２１と、変更差分算出部１２２と、適用差分算出部１２３とを備える。
【００６５】
関係情報差分算出部１２１は、関係情報分析部１１が生成した各ソースコードの関係情報に基づいて、共通ソースコード１と、共通ソースコード２との間の関係情報の差分情報を算出する。また、関係情報差分算出部１２１は、関係情報分析部１１が生成した各ソースコードの関係情報に基づいて、共通ソースコード２と専用ソースコード２＿１との間の関係情報の差分情報を算出する。
【００６６】
また、関係情報差分算出部１２１は、関係情報分析部１１が生成した各ソースコードの関係情報に基づいて、共通ソースコード１と、専用ソースコード１との間の関係情報の差分情報を算出する。また、関係情報差分算出部１２１は、関係情報分析部１１が生成した各ソースコードの関係情報に基づいて、専用ソースコード１と専用ソースコード２＿２との間の関係情報の差分情報を算出する。
【００６７】
関係情報差分算出部１２１は、差分を算出する対象の２つのソースコードの関係情報のうち、いずれかを基準として、当該２つのソースコードの関係情報（関係元及び関係先）がすべて一致する関係情報を除外する。関係情報差分算出部１２１は、差分を算出する対象の２つのソースコードの関係情報のうち、いずれかを基準として、２つのソースコードの関係情報の差分を算出する。関係情報差分算出部１２１は、当該差分となる関係情報が基準となるソースコードに含まれるか否かに基づいて、差分となる関係情報に当該関係情報の変更内容（変更種別）を示す変更フラグを決定する。
【００６８】
具体的には、関係情報差分算出部１２１は、差分を算出する対象の２つのソースコードのうち、基準とするソースコードにしか存在しない関係情報に、当該関係情報の変更内容を示す「削除」の変更フラグを付与する。また、関係情報差分算出部１２１は、差分を算出する対象の２つのソースコードのうち、基準では無い他方のソースコードにしか存在しない関係情報に、当該関係情報の変更内容を示す「追加」を付与する。なお、本実施の形態では、共通ソースコード２及び専用ソースコード２のいずれかを基準とする。
【００６９】
そして、関係情報差分算出部１２１は、関係情報差分の名称と変更フラグとを関係情報差分テーブルＴ２に登録する。関係情報差分テーブルＴ２は、関係情報差分格納部１４３に格納される。
【００７０】
図９、図１０及び図１１を用いて、関係情報差分テーブルＴ２及び関係情報差分算出部１２１の関係情報差分処理について説明する。図１１は、関係情報差分テーブルの一例を示す図である。
【００７１】
まず、図１１を用いて、関係情報差分テーブルＴ２について説明する。関係情報差分テーブルＴ２は、関係情報差分算出部１２１が算出した関係情報の差分が登録されるテーブルである。関係情報差分情報テーブルＴ２には、関係情報差分、関係元、関係先、及び変更フラグが設定される。
【００７２】
関係情報差分には、どの関係情報の差分であるかを示す情報が設定される。関係情報差分には、図１０の縦線の網掛けのブロックが示す各関係情報差分のいずれかが設定される。例えば、共通ソースコード１の関係情報と、共通ソースコード２の関係情報との差分の場合、関係情報差分には、共通アップデート１関係情報差分が設定される。
【００７３】
関係元及び関係先には、関係情報差分として算出された関係情報の関係元と関係先とが設定される。
変更フラグには、関係情報差分として算出された関係情報の変更種別が設定され、具体的には、「追加」又は「削除」が設定される。上記したように、差分を算出する対象の２つのソースコードのうち、基準とするソースコードにしか存在しない関係情報には「削除」が設定される。一方、基準では無い他方のソースコードにしか存在しない関係情報には「追加」が設定される。
【００７４】
なお、共通アップデート１関係情報差分と、カスタマイズ１関係情報差分とを算出する場合の基準は共通ソースコード１であるとする。また、カスタマイズ２関係情報差分と、専用アップデート１関係情報差分とを算出する場合の基準は、それぞれ共通ソースコード２及び専用ソースコード１であるとする。
【００７５】
次に、図９を用いて、関係情報差分算出部１２１の関係情報差分処理について説明する。図９に示すように、ソースコード名に「共通ソースコード１」が設定されている行は、共通ソースコード１の関係情報が設定された行であることを示している。また、ソースコード名に「共通ソースコード２」が設定されている行は、共通ソースコード２の関係情報が設定された行であることを示している。
【００７６】
関係情報差分算出部１２１は、共通ソースコード１と共通ソースコード２との関係情報の差分を算出する場合、共通ソースコード１を基準として関係情報差分を算出する。まず、関係情報差分算出部１２１は、関係情報（関係元及び関係先）がすべて一致する関係情報を除外する。残る情報は、ソースコード名が「共通ソースコード１」で関係元が「プログラムＣ」で関係先が「プログラムＥ」である行、及びソースコード名が「共通ソースコード２」で関係元が「プログラムＢ」で関係先が「プログラムＨ」である行である。
【００７７】
関係元が「プログラムＣ」で関係先が「プログラムＥ」であるプログラム間の関係は、共通ソースコード２で削除された情報であるので、関係情報差分算出部１２１は、変更フラグとして「削除」を付与する。関係情報差分算出部１２１は、関係情報差分テーブルＴ２に当該情報を、関係情報差分として登録する。
【００７８】
また、関係元が「プログラムＢ」で関係先が「プログラムＨ」であるプログラム間の関係は、共通ソースコード２で追加された情報であるので、関係情報差分算出部１２１は、変更フラグとして「追加」を付与する。関係情報差分算出部１２１は、関係情報差分テーブルＴ２に当該情報を、関係情報差分として登録する。
【００７９】
関係情報差分算出部１２１は、各関係情報に対して、同様の処理を行い、図１０の縦線の網掛けがされた関係情報差分を算出し、関係情報差分テーブルＴ２に登録する。
【００８０】
図３に戻り、変更差分算出部１２２について説明する。変更差分算出部１２２は、関係情報差分算出部１２１が算出した関係情報差分の差分を算出する。変更差分算出部１２２は、関係情報差分テーブルＴ２において、関係元、関係先及び変更フラグが全て一致する関係情報を除外する。変更差分算出部１２２は、関係情報差分テーブルＴ２において、関係情報差分として残った情報のうち、カスタマイズ１又はカスタマイズ２の関係情報差分として残った情報の変更フラグを反転させて、変更差分の名称と共に変更差分テーブルＴ３に登録する。なお、変更フラグを反転させるとは、変更フラグが「追加」である場合、「削除」に変更し、変更フラグが「削除」である場合、「追加」に変更することを言う。変更差分テーブルＴ３は、変更差分格納部１４４に格納される。
【００８１】
図１０、図１１及び図１２を用いて、変更差分テーブルＴ３について説明する。図１２は、変更差分テーブルの一例を説明する図である。変更差分テーブルＴ３は、図１０において斜線で網掛けされた既存変更差分及び新規変更差分が設定されるテーブルである。
【００８２】
図１２に示すように、変更差分テーブルＴ３には、変更情報差分、関係元、関係先、及び変更フラグが設定される。
変更情報差分には、どの変更情報の差分であるかを示す情報が設定される。変更情報差分には、図１０の斜線の網掛けのブロックが示す各変更情報差分のいずれかが設定される。例えば、カスタマイズ１関係情報差分と、共通アップデート１関係情報差分との差分の場合、変更情報差分には、既存変更差分が設定される。
【００８３】
関係元及び関係先には、比較する２つの変更情報の差分として算出された関係情報の関係元と関係先とが設定される。
変更フラグには、変更情報の差分として算出された関係情報の変更種別が設定され、具体的には、「追加」又は「削除」が設定される。上記したように、差分を算出する対象の２つの関係情報差分のうち、カスタマイズ１関係情報差分又はカスタマイズ２関係情報差分に含まれる関係情報の変更フラグを反転させる。これは、例えば、共通アップデート１関係情報差分と、カスタマイズ１関係情報差分とを比較する際に、共通アップデート１関係情報差分からカスタマイズ１関係情報差分を引き算するためである。換言すると、共通アップデート１関係情報差分を基準として、カスタマイズ１関係情報差分にどのような差分が含まれるかを判定するために行われる。
【００８４】
図１１を用いて具体例を説明すると、共通アップデート１関係情報差分と、カスタマイズ１関係情報差分との差分情報を算出すると、変更差分算出部１２２は、関係元、関係先及び変更フラグが全て一致する関係情報を除外する。図１１では、この条件に該当する関係情報は存在しないため、変更差分算出部１２２は、特に何もしない。
【００８５】
次に、変更差分算出部１２２は、カスタマイズ１関係情報差分の関係情報の変更フラグを反転させる。カスタマイズ１関係情報差分の変更フラグは「追加」であるので、変更差分算出部１２２は、変更フラグを「削除」にして、共通アップデート１関係情報差分からカスタマイズ１関係情報差分を引き算する。そして、変更差分算出部１２２は、算出された結果を、変更差分テーブルＴ３に、既存変更差分として設定する。同様に、変更差分算出部１２２は、新規変更差分を算出して、変更差分テーブルＴ３に登録する。
【００８６】
図３に戻り、適用差分算出部１２３について説明する。適用差分算出部１２３は、既存変更差分と、新規変更差分との差分を算出する。適用差分算出部１２３は、既存変更差分と、新規変更差分とに含まれる関係元、関係先及び変更フラグが全て一致する関係情報を除外する。また、適用差分算出部１２３は、既存変更差分に残った情報と、新規変更差分に残った情報の変更フラグを反転させた情報を併せて、適用差分格納部１４５に格納する。
【００８７】
次に、適用差分評価部１３について説明する。適用差分評価部１３は、実施の形態の概要における評価部４に対応する。適用差分評価部１３は、適用差分算出部１２３が算出した適用差分に基づいて、専用ソースコード２＿１と専用ソースコード２＿２とが同一であるか否かを判定する。また、適用差分評価部１３は、専用ソースコード２＿１と専用ソースコード２＿２とが同一でない場合、適用差分に基づいて、専用ソースコード２＿１と専用ソースコード２＿２との間の差分情報を決定する。
【００８８】
適用差分評価部１３は、適用差分の状態から専用ソースコード２＿１と専用ソースコード２＿２との状態を判定し出力部１５に出力する。適用差分評価部１３は、適用差分が存在していなければ、４つの関係情報の状態に齟齬がなく、専用ソースコード２＿１と専用ソースコード２＿２との関係状態は正しい状態にあると判定する。
【００８９】
適用差分評価部１３は、適用差分が存在していれば、４つの関係情報の状態に齟齬があり、専用ソースコード２＿１と専用ソースコード２＿２との関係状態が誤った状態にあると判定する。適用差分評価部１３は、専用ソースコード２＿１及び専用ソースコード２＿２が同一であるか否かの判定を出力部１５に出力すると共に、同一では無い場合は適用差分も出力部１５に出力する。
【００９０】
ここで、図１２〜図１４を用いて、適用差分算出部１２３及び適用差分評価部１３が行う処理の具体例を説明する。図１３及び図１４は、適用差分算出部及び適用差分評価部の処理を説明する図である。
【００９１】
図１２及び図１３は、変更差分算出部１２２により算出された既存変更差分と新規変更差分とが登録された変更差分テーブルＴ３を示している。図１２は、変更差分テーブルＴ３において、既存変更差分と新規変更差分とが一致している場合を示している。図１３は、変更差分テーブルＴ３において、既存変更差分と新規変更差分とが一致していない場合を示している。
【００９２】
変更差分テーブルＴ３が図１２のようになっている場合、適用差分算出部１２３は、既存変更差分と新規変更差分とが一致していることから、適用差分として、何も算出しない。適用差分評価部１３は、適用差分が何も算出されていないため、専用ソースコード２＿１と専用ソースコード２＿２とが同一であると判定する。そして、適用差分評価部１３は、専用ソースコード２＿１と専用ソースコード２＿２とが同一であることを出力部１５に出力する。
【００９３】
例えば、専用アップデート１関係情報において、一部の情報が欠落しており、変更差分テーブルＴ３が図１３のようになっているとすると、適用差分算出部１２３は、既存変更差分と新規変更差分との差分を算出する。適用差分算出部１２３は、関係元が「プログラムＢ」、関係先が「プログラムＨ」、変更フラグが「追加」の行の情報を適用差分として算出する。図１４は、適用差分算出部１２３が算出した適用差分を示している。
【００９４】
適用差分となる情報が算出されると、適用差分評価部１３は、適用差分が算出されているため、専用ソースコード２＿１と専用ソースコード２＿２とが同一ではないと判定する。そして、適用差分評価部１３は、専用ソースコード２＿１と専用ソースコード２＿２とが同一ではないことと、算出された適用差分とを出力部１５に出力する。
【００９５】
図３に戻り、説明を続ける。記憶部１４は、各種情報を記憶する。記憶部１４は、ソースコード格納部１４１、関係情報格納部１４２、関係情報差分格納部１４３、変更差分格納部１４４、及び適用差分格納部１４５を備える。
【００９６】
ソースコード格納部１４１は、共通ソースコード１、共通ソースコード２、専用ソースコード１、共通ソースコード２から作成された専用ソースコード２＿１、及び専用ソースコード１から作成された専用ソースコード２＿２を格納する。また、ソースコード格納部１４１は、各ソースコードに含まれるプログラムも格納する。
【００９７】
関係情報格納部１４２は、関係情報分析部１１が生成した各ソースコードの関係情報が設定された関係情報テーブルＴ１を格納する。
関係情報差分格納部１４３は、関係情報差分算出部１２１が算出した関係情報差分が設定された関係情報差分テーブルＴ２を格納する。
【００９８】
変更差分格納部１４４は、変更差分算出部１２２が算出した変更差分が設定された変更差分テーブルＴ３を格納する。
適用差分格納部１４５は、適用差分算出部１２３が算出した適用差分を格納する。
【００９９】
出力部１５は、適用差分評価部１３が出力した情報をユーザに対して表示する。具体的には、出力部１５は、専用ソースコード２＿１と専用ソースコード２＿２とが同一であるか否かの判定結果を出力する。また、出力部１５は、専用ソースコード２＿１と専用ソースコード２＿２とが同一では無い場合、適用差分評価部１３が出力した適用差分をさらに出力する。
【０１００】
＜判定装置の動作例＞
続いて、図１５〜図２０を用いて、実施の形態にかかる判定装置１０の動作例について説明する。図１５〜図２０は、実施の形態にかかる判定装置の動作例を説明する図である。
【０１０１】
まず、図１５を用いて、判定装置１０の全体動作について説明する。
関係情報分析部１１は、ソースコード格納部１４１に格納されたソースコードの関係情報を生成する（ステップＳ１）。
【０１０２】
次に、関係情報差分算出部１２１は、関係情報格納部１４２に格納されている関係情報から、特定のペアの関係情報の差分を算出する（ステップＳ２）。
次に、変更差分算出部１２２は、関係情報差分格納部１４３に格納されている関係情報差分から、特定のペアの関係情報差分の差分を算出する（ステップＳ３）。
【０１０３】
次に、適用差分算出部１２３は、変更差分格納部１４４に格納されている変更差分の差分を算出する（ステップＳ４）。
最後に、適用差分評価部１３は、適用差分格納部１４５に格納されている適用差分をもとに、専用ソースコード２＿１及び専用ソースコード２＿２に適用されているアップデート（更新内容）の適用状態を評価する（ステップＳ５）。
【０１０４】
次に、図１６について説明する。図１６は、図１５のステップＳ１で実行される動作の詳細を説明する図である。
【０１０５】
関係情報分析部１１は、ソースコード格納部１４１に格納されているソースコードから１つを選択し、そのソースコードの関係情報を分析して、関係情報を生成する（ステップＳ１１）。なお、関係情報分析部１１は、ソースコード格納部１４１に格納されている全ソースコードに対してステップＳ１１の処理を実行する。
【０１０６】
例えば、ソースコードに記載されたプログラムＡの内容に、他のプログラムＢを呼び出す命令が記載されていた場合、プログラムＡからプログラムＢへの関係情報を作成する。他のソースコードについても同様に関係情報を分析する。
【０１０７】
関係情報分析部１１は、全てのソースコードに対してステップＳ１１の処理を実行すると、生成した関係情報（分析した結果）を関係情報テーブルＴ１に登録する（ステップＳ１２）。
【０１０８】
次に、図１７について説明する。図１７は、図１５のステップＳ２で実行される動作の詳細を説明する図である。
【０１０９】
関係情報差分算出部１２１は、関係情報テーブルＴ１から共通ソースコード１の関係情報と共通ソースコード２の関係情報とを取得し、共通ソースコード１を基準にして、共通アップデート１の関係情報差分を算出する（ステップＳ２１）。
【０１１０】
関係情報差分算出部１２１は、関係情報テーブルＴ１から専用ソースコード１の関係情報と専用ソースコード２＿２の関係情報とを取得し、専用ソースコード１を基準にして、専用アップデート１の関係情報差分を算出する（ステップＳ２２）。
【０１１１】
関係情報差分算出部１２１は、関係情報テーブルＴ１から共通ソースコード１の関係情報と専用ソースコード１の関係情報とを取得し、共通ソースコード１を基準にして、カスタマイズ１の関係情報差分を算出する（ステップＳ２３）。
【０１１２】
関係情報差分算出部１２１は、関係情報テーブルＴ１から共通ソースコード２の関係情報と専用ソースコード２＿１の関係情報とを取得し、共通ソースコード２を基準にして、カスタマイズ２の関係情報差分を算出する（ステップＳ２４）。
【０１１３】
関係情報差分算出部１２１は、算出した各関係情報差分を、関係情報差分テーブルＴ２に登録する（ステップＳ２５）。
【０１１４】
次に、図１８について説明する。図１８は、図１５のステップＳ３で実行される動作の詳細を説明する図である。
【０１１５】
変更差分算出部１２２は、関係情報差分テーブルＴ２から共通アップデート１関係情報差分とカスタマイズ１関係情報差分とを取得し、共通アップデート１関係情報差分とカスタマイズ１関係情報差分との差分を既存変更差分として算出する（ステップＳ３１）。
【０１１６】
具体的には、変更差分算出部１２２は、共通アップデート１関係情報差分とカスタマイズ１関係情報差分とにおいて、関係元、関係先及び変更フラグが全て一致する情報を除外する。次に、変更差分算出部１２２は、残った情報のうち、カスタマイズ１関係情報差分の変更フラグを反転させる。そして、変更差分算出部１２２は、共通アップデート１関係情報の関係情報差分と、カスタマイズ１関係情報差分とを統合して既存変更差分を算出する。
【０１１７】
変更差分算出部１２２は、関係情報差分テーブルＴ２から専用アップデート１関係情報差分とカスタマイズ２関係情報差分とを取得し、専用アップデート１関係情報差分とカスタマイズ２関係情報差分との差分を新規変更差分として算出する（ステップＳ３２）。
【０１１８】
具体的には、変更差分算出部１２２は、専用アップデート１関係情報差分とカスタマイズ２関係情報差分とにおいて、関係元、関係先及び変更フラグが全て一致する情報を除外する。次に、変更差分算出部１２２は、残った情報のうち、カスタマイズ２関係情報差分の変更フラグを反転させる。そして、変更差分算出部１２２は、専用アップデート１関係情報の関係情報差分と、カスタマイズ２関係情報差分とを統合して既存変更差分を算出する。
【０１１９】
変更差分算出部１２２は、ステップＳ３１及びＳ３２において算出した既存変更差分と新規変更差分とを変更差分テーブルＴ３に登録する（ステップＳ３３）。
【０１２０】
次に、図１９について説明する。図１９は、図１５のステップＳ４で実行される動作の詳細を説明する図である。
【０１２１】
適用差分算出部１２３は、変更差分テーブルＴ３から既存変更差分と新規変更差分とを取得し、既存変更差分と新規変更差分との差分を適用差分として算出する（ステップＳ４１）。
【０１２２】
具体的には、適用差分算出部１２３は、既存変更差分として登録されている情報、及び新規変更差分として登録されている情報を比較し、関係元、関係先及び変更フラグが全て一致する情報を除外する。適用差分算出部１２３は、残った情報を適用差分として算出する。
適用差分算出部１２３は、算出した適用差分を適用差分格納部１４５に格納する（ステップＳ４２）。
【０１２３】
次に、図２０について説明する。図２０は、図１５のステップＳ５で実行される動作の詳細を説明する図である。
【０１２４】
適用差分評価部１３は、適用差分格納部１４５に格納されている適用差分が存在するかを確認する（ステップＳ５１）。換言すると、適用差分評価部１３は、既存変更差分と新規変更差分とに差があったかを確認する。
【０１２５】
適用差分が存在しない場合（ステップＳ５１のＮＯ）、適用差分評価部１３は、専用ソースコード２＿１及び専用ソースコード２＿２は同一であると判定する。したがって、適用差分算出部１２３は専用ソースコード２＿１及び専用ソースコード２＿２は同一であることを出力部１５に出力し、出力部１５はユーザに専用ソースコード２＿１及び専用ソースコード２＿２は同一であることを出力する（ステップＳ５２）。
【０１２６】
一方、適用差分が存在する場合（ステップＳ５１のＹＥＳ）、適用差分評価部１３は、適用差分評価部１３は、専用ソースコード２＿１及び専用ソースコード２＿２は同一ではないと判定する。したがって、適用差分評価部１３は専用ソースコード２＿１及び専用ソースコード２＿２は同一ではないことを出力部１５に出力し、出力部１５はユーザに専用ソースコード２＿１及び専用ソースコード２＿２は同一ではないことを出力する（ステップＳ５３）。
【０１２７】
さらに、適用差分評価部１３は、適用差分を、専用ソースコード２＿１を基準にした専用ソースコード２＿２の差分情報として決定し、適用差分の内容を出力部１５に出力し、出力部１５は、適用差分の内容をユーザに出力する（ステップＳ５４）。
【０１２８】
以上説明したように、関係情報分析部１１が各ソースプログラムに含まれるプログラムの関係を示す関係情報を生成する。関係情報差分算出部１２１は、各ソースコードの関係情報に基づいて、各種の差分を算出し、適用差分を算出する。適用差分評価部１３は、適用差分に基づいて、専用ソースコード２＿１と専用ソースコード２＿２とが同一であるかを判定する。したがって、実施の形態にかかる判定装置１０を用いることにより、基準となるソースコードから作成された複数のソースコードが適切に更新されているかを判定することが可能となる。
【０１２９】
また、適用差分評価部１３は、専用ソースコード２＿１と専用ソースコード２＿２とが同一ではない場合、専用ソースコード２＿１を基準にした専用ソースコード２＿２の差分情報を決定する。したがって、実施の形態にかかる判定装置１０を用いることにより、基準となるソースコードから作成された複数のソースコードが適切に更新されていない場合であっても、複数のソースコードの差分内容を把握することが可能となる。
【０１３０】
また、本実施の形態にかかる判定装置１０は、各種の差分を登録するテーブルを有している。そのため、専用ソースコード２＿１と専用ソースコード２＿２とが同一ではない場合、ユーザは、適用差分として算出された差分情報を、各テーブルをたどることにより、どのソースコードにおいて更新内容の一部が欠落しているかを割り出すことができる。
【０１３１】
具体的には、専用ソースコード２＿１と専用ソースコード２＿２とが同一ではない場合、ユーザは、変更差分テーブルＴ３、関係情報差分テーブルＴ２、及び関係情報テーブルＴ１とたどることにより欠落部分を割り出すことが可能となる。したがって、本実施の形態によれば、ＩＴシステムの品質低下を抑制することができる。
【０１３２】
またさらに、本実施の形態にかかる判定装置１０は、出力部１５を有しており、出力部１５は、ユーザに対して適用差分評価部１３の判定結果及び適用差分を出力する。ユーザは出力部１５の出力内容を確認することにより専用ソースコード２＿１又は専用ソースコード２＿２のうち更新内容が抜け漏れなく適用されているかを、目視に頼らずに判定することが可能となる。したがって、本実施の形態によれば、ＩＴシステムの品質低下を抑制しつつ、開発効率又は運用効率を向上させることが可能となる。
【０１３３】
（他の実施の形態）
＜１＞上述した実施の形態において、次の変形を施してもよい。
記憶部１４において、各格納部は、その中に格納される情報の集合ごとに、別箇の格納部をさらに用意してもよい。例えば、変更差分格納部１４４の代わりに、既存変更差分格納部と新規変更差分格納部を持つ構成としてもよい。
【０１３４】
また、上述した実施の形態では、記憶部１４は、ソースコード格納部１４１、関係情報格納部１４２、関係情報差分格納部１４３、変更差分格納部１４４及び適用差分格納部１４５を備える構成として説明をしたが、１つの格納部が全ての情報を保持してもよい。
【０１３５】
また、上述した実施の形態では、差分算出部１２は、関係情報差分算出部１２１、変更差分算出部１２２及び適用差分算出部１２３を備える構成として説明したが、１つの算出部が全ての計算を行ってもよい。この場合、変更フラグに関わる処理だけ動作を抑制してもよいし、ダミーの情報を計算して結果を破棄してもよい。
【０１３６】
また、全ての格納部に格納される情報は、本装置が必要とする情報を含んでいるのであれば、本装置以外の装置で算出した情報を入力してもよい。さらに、本装置の構成のうち、前述の方法で入力した情報を算出する段階までの処理をスキップしてもよいし、その処理を行うための処理部を省略した構成としてもよい。
【０１３７】
さらに、上述した実施の形態にかかる判定装置１０の処理対象は、ソースコードやプログラムに限定しない。ある情報資産において、特定の記述とそれが表す関係情報を対応付けられるのであれば、その情報資産も対象に含めてよい。その際、ソースコード格納部１４１は様々な情報資産を格納できるよう拡張するか、新しい情報資産に対応する格納部を追加してもよい。また、関係情報分析部１１は新しい情報資産を分析できるよう拡張するか、新しい情報資産に対応する関係情報分析部を追加してもよい。
【０１３８】
＜２＞図２１は、上述した実施の形態において説明した判定装置１及び１０（以下、判定装置１等と称する）は、次のようなハードウェア構成を有していてもよい。図２１は、本開示の各実施の形態にかかる判定装置等のハードウェア構成を例示するブロック図である。
【０１３９】
図２１を参照すると、判定装置１等は、プロセッサ１２０２、及びメモリ１２０３を含む。
プロセッサ１２０２は、メモリ１２０３からソフトウェア（コンピュータプログラム）を読み出して実行することで、上述の実施形態においてフローチャートを用いて説明された判定装置１等の処理を行う。プロセッサ１２０２は、例えば、マイクロプロセッサ、MPU（Micro Processing Unit）、又はCPU（Central Processing Unit）であってもよい。プロセッサ１２０２は、複数のプロセッサを含んでもよい。
【０１４０】
メモリ１２０３は、揮発性メモリ及び不揮発性メモリの組み合わせによって構成される。メモリ１２０３は、プロセッサ１２０２から離れて配置されたストレージを含んでもよい。この場合、プロセッサ１２０２は、図示されていないI/Oインタフェースを介してメモリ１２０３にアクセスしてもよい。
【０１４１】
図２１の例では、メモリ１２０３は、ソフトウェアモジュール群を格納するために使用される。プロセッサ１２０２は、これらのソフトウェアモジュール群をメモリ１２０３から読み出して実行することで、上述の実施形態において説明された判定装置１等の処理を行うことができる。
【０１４２】
図２１を用いて説明したように、判定装置１等が有するプロセッサの各々は、図面を用いて説明されたアルゴリズムをコンピュータに行わせるための命令群を含む１または複数のプログラムを実行する。
【０１４３】
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）を含む。さらに、非一時的なコンピュータ可読媒体の例は、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗを含む。さらに、非一時的なコンピュータ可読媒体の例は、半導体メモリを含む。半導体メモリは、例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory）を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【０１４４】
なお、本開示は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。また、本開示は、それぞれの実施の形態を適宜組み合わせて実施されてもよい。
【符号の説明】
【０１４５】
１、１０  判定装置
２  分析部
３  算出部
４  評価部
１１  関係情報分析部
１２  差分算出部
１３  適用差分評価部
１４  記憶部
１５  出力部
１２１  関係情報差分算出部
１２２  変更差分算出部
１２３  適用差分算出部
１４１  ソースコード格納部
１４２  関係情報格納部
１４３  関係情報差分格納部
１４４  変更差分格納部
１４５  適用差分格納部
【図１】
2020038586.tif 000003
【図２】
2020038586.tif 000004
【図３】
2020038586.tif 000005
【図４】
2020038586.tif 000006
【図５】
2020038586.tif 000007
【図６】
2020038586.tif 000008
【図７】
2020038586.tif 000009
【図８】
2020038586.tif 000010
【図９】
2020038586.tif 000011
【図１０】
2020038586.tif 000012
【図１１】
2020038586.tif 000013
【図１２】
2020038586.tif 000014
【図１３】
2020038586.tif 000015
【図１４】
2020038586.tif 000016
【図１５】
2020038586.tif 000017
【図１６】
2020038586.tif 000018
【図１７】
2020038586.tif 000019
【図１８】
2020038586.tif 000020
【図１９】
2020038586.tif 000021
【図２０】
2020038586.tif 000022
【図２１】
2020038586.tif 000023