(57)【要約】【課題】従来装置では、２以上のプログラム群を対象とする開発を効率的に行えなかった。【解決手段】稼働先を識別する稼働先識別子に対応付けられた２以上のプログラムを有する２以上のプログラム群が格納されるプログラム群格納部と、プログラム群を構成する部分であり、予め決められた単位であるプログラム単位で、２以上のプログラム群の間の対応を検出するプログラム単位対応検出部と、プログラム単位対応検出部が対応すると判断した２以上のプログラム群のプログラム単位を比較し、同一の度合いである同一度を取得する同一度取得部と、プログラム単位対応検出部が検出した対応の結果および同一度取得部が取得した同一度を、２以上のプログラム群の間で対比可能な態様で出力する比較結果出力部とを具備する開発支援装置１により、開発者は、２以上のプログラム群を対象とする開発を効率的に行える。【選択図】図１
2018116517.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアの稼働先を識別する稼働先識別子に対応付けられた２以上のプログラムを有する２以上のプログラム群が格納されるプログラム群格納部と、
プログラム群を構成する部分であり、予め決められた単位であるプログラム単位で、前記２以上のプログラム群の間の対応を検出するプログラム単位対応検出部と、
前記プログラム単位対応検出部が対応すると判断した２以上のプログラム群のプログラム単位を比較し、同一の度合いである同一度を取得する同一度取得部と、
前記プログラム単位対応検出部が検出した対応の結果、および前記同一度取得部が取得した同一度を、前記２以上のプログラム群の間で対比可能な態様で出力する比較結果出力部とを具備する開発支援装置。
【請求項２】
前記２以上の各プログラム群が有する２以上のプログラムは、マイグレーション対象のマイグレーションの前のプログラムである請求項１記載の開発支援装置。
【請求項３】
前記２以上の各プログラム群が有する２以上のプログラムは、マイグレーションの後のプログラムである請求項１記載の開発支援装置。
【請求項４】
前記２以上の各プログラム群が有する２以上のプログラムは、マイグレーション対象のマイグレーションの前のプログラムであり、
前記２以上の各プログラム群が有する２以上のプログラムをマイグレーションした結果である２以上の後プログラムを有する２以上の各後プログラム群を、稼働先識別子に対応付けて格納している後プログラム群格納部をさらに具備し、
前記同一度取得部は、
前記プログラム単位対応検出部が対応すると判断した２以上のプログラム群に対応する２以上の各後プログラム群のプログラム単位をも比較し、同一の度合いである同一度を取得し、
前記比較結果出力部は、
前記同一度取得部が取得した後プログラム群のプログラム単位の同一度をも、前記２以上の後プログラム群の間で対比可能な態様で出力する請求項１記載の開発支援装置。
【請求項５】
マイグレーション前のプログラムを識別する前識別子と、当該マイグレーション前のプログラムをマイグレーションした後のプログラムを識別する後識別子との対応が格納される前後対応格納部をさらに具備し、
前記比較結果出力部は、
前記同一度取得部が取得した同一度を、前記後識別子に対応付けて出力する請求項２から請求項４いずれか一項に記載の開発支援装置。
【請求項６】
前記同一度取得部が取得した同一度を用いて、テストすべきマイグレーション後のプログラムを識別する１以上の後識別子を取得するテスト対象取得部をさらに具備し、
前記比較結果出力部は、前記テスト対象取得部が取得した１以上の後識別子を出力する請求項３から請求項５いずれか一項に記載の開発支援装置。
【請求項７】
前記比較結果出力部は、前記テスト対象取得部が取得した１以上の後識別子を他の後識別子とは区別可能な態様で出力する請求項６記載の開発支援装置。
【請求項８】
前記プログラム単位は、
ファイル単位、およびファイル内のルーチン単位であり、
前記プログラム単位対応検出部は、
ファイル単位およびルーチン単位で、前記２以上のプログラム群の間の対応を検出し、
前記同一度取得部は、
前記プログラム単位対応検出部が対応すると判断した２以上のプログラム群のファイル単位およびルーチン単位を比較し、同一の度合いである同一度を取得する請求項１から請求項７いずれか一項に記載の開発支援装置。
【請求項９】
前記同一度は、３以上の値を採り得る類似度である請求項１から請求項８いずれか一項に記載の開発支援装置。
【請求項１０】
記録媒体は、
ソフトウェアの稼働先を識別する稼働先識別子に対応付けられた２以上のプログラムを有する２以上のプログラム群が格納されるプログラム群格納部を具備し、
プログラム単位対応検出部、同一度取得部、および比較結果出力部によって行われる開発支援方法であって、
前記プログラム単位対応検出部が、プログラム群を構成する部分であり、予め決められた単位であるプログラム単位で、前記２以上のプログラム群の間の対応を検出するプログラム単位対応検出ステップと、
前記同一度取得部が、前記プログラム単位対応検出部が対応すると判断した２以上のプログラム群のプログラム単位を比較し、同一の度合いである同一度を取得する同一度取得ステップと、
前記比較結果出力部が、前記プログラム単位対応検出部が検出した対応の結果、および前記同一度取得部が取得した同一度を、前記２以上のプログラム群の間で対比可能な態様で出力する比較結果出力ステップとを含む開発支援方法。
【請求項１１】
コンピュータがアクセス可能な記録媒体は、
ソフトウェアの稼働先を識別する稼働先識別子に対応付けられた２以上のプログラムを有する２以上のプログラム群が格納されるプログラム群格納部を具備し、
前記コンピュータを、
プログラム群を構成する部分であり、予め決められた単位であるプログラム単位で、前記２以上のプログラム群の間の対応を検出するプログラム単位対応検出部と、
前記プログラム単位対応検出部が対応すると判断した２以上のプログラム群のプログラム単位を比較し、同一の度合いである同一度を取得する同一度取得部と、
前記プログラム単位対応検出部が検出した対応の結果、および前記同一度取得部が取得した同一度を、前記２以上のプログラム群の間で対比可能な態様で出力する比較結果出力部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの開発を支援する開発支援装置等に関するものである。開発とは、通常、マイグレーションであるが、テスト、メンテナンス等を含むと考えてもよい。
【背景技術】
【０００２】
従来、旧言語のソフトウェアを構成する各ＦＵ（Functional Unit）を分析し、その分析の結果を基に、旧言語のＦＵ間の呼出し依存関係を把握し、把握された呼出し依存関係に基づいて、旧言語のＦＵから新言語のＦＵへのＦＵ変換と、正しくＦＵ変換が行われたかどうかのテストを行うソフトウェアマイグレーションシステムが存在した（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２４５０６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば、会社や団体等の組織でコンピュータシステムを更新する場合、一般に、２以上のプログラムの集合であるプログラム群を対象にマイグレーションを行う必要がある。さらには、一の組織が２以上の部門（工場、支社等）を有していて、各部門でプログラム群が稼働しているような状況であれば、２以上のプログラム群がマイグレーションの対象となり得る。かかる２以上のプログラム群は、元は同じプログラム群であっても、部門ごとにカスタマイズされた結果、部分的な相違が生じている場合が少なくない。このため、従来は、２以上のプログラム群を別々にマイグレーションしており、効率が悪かった。そして、このことは、マイグレーションに限らず、例えば、テスト、またはメンテナンスなど、ソフトウェアの開発全般に当てはまると考えてもよい。
【０００５】
そこで、本発明は、２以上のプログラム群を対象とする開発を効率的に行えるように、開発者を支援することを目的としている。
【課題を解決するための手段】
【０００６】
本第一の発明の開発支援装置は、ソフトウェアの稼働先を識別する稼働先識別子に対応付けられた２以上のプログラムを有する２以上のプログラム群が格納されるプログラム群格納部と、プログラム群を構成する部分であり、予め決められた単位であるプログラム単位で、２以上のプログラム群の間の対応を検出するプログラム単位対応検出部と、プログラム単位対応検出部が対応すると判断した２以上のプログラム群のプログラム単位を比較し、同一の度合いである同一度を取得する同一度取得部と、プログラム単位対応検出部が検出した対応の結果、および同一度取得部が取得した同一度を、２以上のプログラム群の間で対比可能な態様で出力する比較結果出力部とを具備する開発支援装置である。
【０００７】
かかる構成により、開発者は、２以上のプログラム群の間のプログラム単位の対応および同一度を認知することにより、２以上のプログラム群を対象とする開発を効率的に行える。
【０００８】
また、本第二の発明の開発支援装置は、第一の発明に対して、２以上の各プログラム群が有する２以上のプログラムは、マイグレーション対象のマイグレーションの前のプログラムである開発支援装置である。
【０００９】
かかる構成により、開発者は、マイグレーション前の２以上のプログラム群の間のプログラム単位の対応および同一度を認知することにより、２以上のプログラム群を対象とするマイグレーションを効率的に行える。
【００１０】
また、本第三の発明の開発支援装置は、第一の発明に対して、２以上の各プログラム群が有する２以上のプログラムは、マイグレーションの後のプログラムである開発支援装置である。
【００１１】
かかる構成により、開発者は、マイグレーション後の２以上のプログラム群の間のプログラム単位の対応および同一度を認知することにより、マイグレーション後の２以上のプログラム群を対象とするテストを効率的に行える。
【００１２】
また、本第四の発明の開発支援装置は、第一の発明に対して、２以上の各プログラム群が有する２以上のプログラムは、マイグレーション対象のマイグレーションの前のプログラムであり、２以上の各プログラム群が有する２以上のプログラムをマイグレーションした結果である２以上の後プログラムを有する２以上の各後プログラム群を、稼働先識別子に対応付けて格納している後プログラム群格納部をさらに具備し、同一度取得部は、プログラム単位対応検出部が対応すると判断した２以上のプログラム群に対応する２以上の各後プログラム群のプログラム単位をも比較し、同一の度合いである同一度を取得し、比較結果出力部は、同一度取得部が取得した後プログラム群のプログラム単位の同一度をも、２以上の後プログラム群の間で対比可能な態様で出力する開発支援装置である。
【００１３】
かかる構成により、開発者は、マイグレーション前の２以上のプログラム群の間のプログラム単位の対応および同一度を認知することにより、マイグレーション前の２以上のプログラム群を対象とするマイグレーションを効率的に行えるのに加えて、マイグレーション後の２以上のプログラム群に関するプログラム単位の比較結果を認知することにより、マイグレーション後の２以上のプログラム群を対象とするテストをも効率的に行える。
【００１４】
また、本第五の発明の開発支援装置は、第二から第四いずれか１つの発明に対して、マイグレーション前のプログラムを識別する前識別子と、マイグレーション前のプログラムをマイグレーションした後のプログラムを識別する後識別子との対応が格納される前後対応格納部をさらに具備し、比較結果出力部は、同一度取得部が取得した同一度を、後識別子に対応付けて出力する開発支援装置である。
【００１５】
かかる構成により、開発者は、後識別子に対応付いたプログラム単位の同一度を認知することにより、マイグレーション後の２以上のプログラム群を対象とするテストまたはメンテナンスをも効率的に行える。
【００１６】
また、本第六の発明の開発支援装置は、第三から第五いずれか１つの発明に対して、同一度取得部が取得した同一度を用いて、テストすべきマイグレーション後のプログラムを識別する１以上の後識別子を取得するテスト対象取得部をさらに具備し、比較結果出力部は、テスト対象取得部が取得した１以上の後識別子を出力する開発支援装置である。
【００１７】
かかる構成により、開発者は、マイグレーション後の２以上のプログラム群のうちどのプログラム単位をテストすればよいかを容易に認知できる。
【００１８】
また、本第七の発明の開発支援装置は、第六の発明に対して、比較結果出力部は、テスト対象取得部が取得した１以上の後識別子を他の後識別子とは区別可能な態様で出力する開発支援装置である。
【００１９】
かかる構成により、開発者は、マイグレーション後の２以上のプログラム群のプログラム単位の対応に加えて、そのうちどのプログラム単位をテストすればよいかを容易に認知できる。
【００２０】
また、本第七の発明の開発支援装置は、第一から第六いずれか１つの発明に対して、プログラム単位は、ファイル単位、およびファイル内のルーチン単位であり、プログラム単位対応検出部は、ファイル単位およびルーチン単位で、２以上のプログラム群の間の対応を検出し、同一度取得部は、プログラム単位対応検出部が対応すると判断した２以上のプログラム群のファイル単位およびルーチン単位を比較し、同一の度合いである同一度を取得する開発支援装置である。
【００２１】
かかる構成により、開発者は、２以上のプログラム群の間のファイル単位およびルーチン単位の間の対応および同一度を認知することにより、２以上のプログラム群を対象とする開発を効率的に行える。
【００２２】
また、本第八の発明の開発支援装置は、第一から第七いずれか１つの発明に対して、同一度は、３以上の値を採り得る類似度である開発支援装置である。
【００２３】
かかる構成により、開発者は、２以上のプログラム群の間のプログラム単位の対応および類似度を認知することにより、２以上のプログラム群を対象とする開発を効率的に行える。
【発明の効果】
【００２４】
本発明によれば、２以上のプログラム群を対象とする開発を効率的に行えるように、開発者を支援できる。
【図面の簡単な説明】
【００２５】
【図１】実施の形態における開発支援装置のブロック図
【図２】同開発支援装置の動作を説明するフローチャート
【図３】同対応検出処理を説明するフローチャート
【図４】同同一度取得処理を説明するフローチャート
【図５】同プログラム群のデータ構造図
【図６】同同一度群情報の一出力例を示す図
【図７】同同一度群情報の他の出力例を示す図
【図８】同同一度群情報のその他の出力例を示す図
【図９】同２つのコード群の出力例を示す図
【図１０】同同一度群情報の別の出力例を示す図
【図１１】同コンピュータシステムの外観図
【図１２】同コンピュータシステムの内部構成の一例を示す図
【発明を実施するための形態】
【００２６】
以下、開発支援装置の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
【００２７】
本実施の形態において、ソフトウェアの稼働先を識別する２以上の各稼働先識別子に対応付けて、プログラム群が格納されており、２以上のプログラム群の間の対応を予め決められたプログラム単位で取得し、当該対応に従って、同一度を算出し、同一度を、２以上の稼働先間で、比較可能な態様で出力する開発支援装置１について説明する。
【００２８】
また、上記のような開発支援装置１であって、支援は、プログラム群のマイグレーションの支援であり、マイグレーション前のプログラム群を比較する開発支援装置１について説明する。
【００２９】
また、上記のような開発支援装置１であって、支援は、プログラム群のマイグレーションの支援であり、マイグレーション後のプログラム群を比較する開発支援装置１について説明する。
【００３０】
また、上記のような開発支援装置１であって、支援は、プログラム群のマイグレーションの支援であり、マイグレーション前、およびマイグレーション後のプログラム群を比較する開発支援装置１について説明する。
【００３１】
また、上記のような開発支援装置１であって、マイグレーション後の比較結果を出す開発支援装置１について説明する。
【００３２】
また、上記のような開発支援装置１であって、プログラム単位は、一のプログラムの全部に対応するファイル単位、およびプログラム内のルーチン単位の２段階を含む開発支援装置１について説明する。
【００３３】
また、上記のような開発支援装置１であって、同一度は、類似度である（例えば、０と１の間の情報も含み得る）開発支援装置１について説明する。
【００３４】
図１は、本実施の形態における開発支援装置１のブロック図である。開発支援装置１は、例えば、ソフトウェアの開発を行う開発会社のＰＣであるが、サーバなどでもよく、そのタイプは問わない。
【００３５】
ただし、開発支援装置１は、スタンドアロンとは限らず、例えば、ＬＡＮやインターネット等のネットワーク、無線または有線の通信回線などを介して、１または２以上の端末装置（図示しない）と接続されていてもよい。この場合、開発支援装置１は、例えば、サーバであり、端末装置は、例えば、ＰＣである。すなわち、本発明の開発支援方法は、ハードウェア構成には依存しない。
【００３６】
開発支援装置１は、格納部１１、受付部１２、処理部１３、および出力部１４を備える。格納部１１は、プログラム群格納部１１１、後プログラム群格納部１１２、および前後対応格納部１１３を備える。処理部１３は、プログラム単位対応検出部１３１、同一度取得部１３２、およびテスト対象取得部１３３を備える。出力部１４は、比較結果出力部１４１を備える。
【００３７】
格納部１１は、各種の情報を格納し得る。各種の情報とは、例えば、プログラム、プログラム群、後プログラム群、前後対応情報などである。プログラムとは、コンピュータに行わせる処理の手順を、コンピュータが解読可能な言語で記述したソフトウェアである。プログラムは、通常、コード（命令文）または関数のうち１種類以上の情報の集合で構成される。一のプログラムを構成する情報の集合の全体のファイルといい、ある機能を果たす一まとまりの部分をルーチンという。なお、プログラム群等については後述する。
【００３８】
プログラム群格納部１１１には、２以上のプログラム群が格納される。２以上のプログラム群は、少なくとも異なるハードウェア上で稼働していたプログラムの集合である。２以上の各プログラム群（以下、単にプログラム群と記す場合がある）は、稼働先識別子に対応付けられている。なお、対応付けられていることは、プログラム群が稼働先識別子を有する場合も含む。稼働先識別子とは、ソフトウェアの稼働先を識別する情報である。稼働先は、例えば、一の組織（会社、団体等）の部門（工場、支社等）であってもよいし、例えば、一の組織または一の部門等のハードウェアであってもよい。具体的な稼働先は、例えば、Ａ社のＢ工場、Ａ社のＣ工場、Ａ社のＢ工場のＸコンピュータシステム、Ａ社のＢ工場のＹコンピュータシステムなどである。かかる稼働先の稼働先識別子は、例えば、"ＡＢ"、ＡＣ"、"ＡＢＸ"、"ＡＢＹ"などでもよく、その表現形式は問わない。
【００３９】
プログラム群とは、一の稼働先識別子に対応付けられた２以上のプログラムの集合をいう。プログラム群は、マイグレーションされる前の２以上のプログラムの集合でもよいし、マイグレーションされた後の２以上のプログラムの集合でもよい。以下では、一の稼働先識別子に対応付けられた２以上のプログラムの集合であり、マイグレーションされる前の２以上のプログラムの集合を、マイグレーション前のプログラム群、または前プログラム群、または単にプログラム群と記す場合がある。また、一の稼働先識別子に対応付けられた２以上のプログラムの集合であり、マイグレーションされた後の２以上のプログラムの集合を、マイグレーション後のプログラム群、または後プログラム群と記す場合がある。
【００４０】
マイグレーションとは、あるシステムから別のシステムへのプログラムの移行である。マイグレーションは、例えば、あるＯＳ向けに開発されたプログラムを別のＯＳ上で動作するようにしたり、古いプログラミング言語を新しいプログラミング言語に変換したりすることであってもよい。開発者は、通常、プログラムの修正、修正後のプログラムが移行先で動作するかのテスト、といった作業を行う必要がある。
【００４１】
プログラム群格納部１１１に格納される２以上の各プログラム群は、通常、前プログラム群であるが、後プログラム群でもよい。プログラム群格納部１１１に格納される２以上の各プログラム群が前プログラム群である場合、２以上の後プログラム群を後プログラム群格納部１１２に格納してもよい。プログラム群格納部１１１に格納される２以上の各プログラム群が後プログラム群である場合には、後プログラム群格納部１１２は省略して構わない。
【００４２】
後プログラム群格納部１１２には、２以上の後プログラム群が格納される。当該２以上の各後プログラム群は、プログラム群格納部１１１に格納されている２以上の各プログラム群を構成する２以上のプログラムをマイグレーションした結果である。
【００４３】
前後対応格納部１１３には、前識別子と後識別子との対応を示す前後対応情報が格納される。前識別子とは、マイグレーションする前のプログラムを識別する情報である。後識別子とは、マイグレーションした後のプログラムを識別する情報である。
【００４４】
例えば、前識別子は、一のプログラムを識別する共通の文字列（例えば"ＡＢ００００"等）と、当該プログラムがマイグレーションされる前のプログラムであることを示す文字列（例えば"前"等）を有していてもよい（例えば"ＡＢ００００＿前"等）。なお、文字列とは、一の文字のみの場合も含む。また、文字は、数字や記号でもよい（以下同様）。後識別子は、当該共通の文字列と、当該プログラムがマイグレーションされた後のプログラムであることを示す文字列（例えば"後"等）を有していてもよい（例えば"Ｂ００００＿後"等）。この場合、前識別子と後識別子との対応は、共通の文字列で示されるため、前後対応情報、およびそれを格納する前後対応格納部１１３は、省略してもよい。
【００４５】
または、前識別子は、一のプログラムを識別する共通の文字列のみで構成され（例えば"ＡＢ００００"等）、後識別子は、当該共通の文字列と、当該プログラムがマイグレーションされた後のプログラムであることを示す文字列とで構成されてもよい（例えば"ＡＢ００００＿後"等）。
【００４６】
ただし、前識別子および後識別子は、上記のような共通の文字列を含まない別々の文字列であってもよく、その表現形式は問わない。また、前後対応情報のデータ構造も問わない。
【００４７】
受付部１２は、各種の情報を受け付ける。各種の情報とは、例えば、出力指示である。出力指示とは、後述する同一度群情報の出力の指示である。各種の情報には、マイグレーションやメンテナンス等に関連する各種の指示も含まれてよい。一般に、受け付けとは、キーボード等の入力デバイスから入力された情報の受け付け、ネットワーク等を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。受付部１２による受け付けは、通常、キーボード等の入力デバイスを介した受け付けであるが、端末装置からの受信でもよく、その態様は問わない。
【００４８】
受付部１２は、例えば、出力指示を、当該端末装置を識別する端末識別子と対に端末装置から受信してもよい。なお、対に受信することは、出力指示が端末識別子を有する場合も含む。
【００４９】
処理部１３は、各種の処理を行う。各種の処理とは、例えば、プログラム単位対応検出部１３１、同一度取得部１３２、およびテスト対象取得部１３３などの処理である。各種の処理には、マイグレーション等に関連する上記各種の指示に応じた処理も含まれる。また、処理部１３は、フローチャートで説明する各種の判別なども行う。
【００５０】
プログラム単位対応検出部１３１は、２以上のプログラム群の間の対応をプログラム単位で検出する。プログラム単位とは、プログラム群を構成する部分であり、予め決められた単位である。プログラム単位は、例えば、ファイル単位、ルーチン単位などであるが、これに限らない。ファイル単位とは、一のプログラムの全体を単位とする場合をいい、ルーチン単位とは、プログラムに含まれるルーチンを単位とする場合をいう。プログラム単位は、ファイル単位またはルーチン単位のうち１以上の単位を含んでいてもよい。
【００５１】
プログラム単位対応検出部１３１は、例えば、異なるプログラム群から選択される２つのプログラム単位（例えば、ｉ番目のプログラム群から選択される１つのプログラム単位と、ｉ番目以外のプログラム群から選択される１つのプログラム単位との、２つのプログラム単位：図３参照）の可能な組み合わせについて、対応するか否かを判断し、対応すると判断した２つのプログラム単位を示す２つのプログラム単位識別子の対（以下、プログラム単位識別子対と記す場合がある）を蓄積する処理を繰り返すことで、プログラム単位対応情報を取得してもよい。
【００５２】
プログラム単位識別子とは、プログラム単位を識別する情報である。プログラム単位識別子は、具体的には、ファイルを識別するファイル識別子、ルーチンを識別するルーチン識別子などであるが、これに限らない。プログラム単位対応情報とは、２以上のプログラム群の間のプログラム単位の対応を示す情報である。プログラム単位対応情報は、例えば、プログラム単位識別子対の集合で構成されるが、そのデータ構造は問わない。
【００５３】
プログラム単位対応検出部１３１は、２つのプログラム単位が対応するか否かを、例えば、当該２つのプログラム単位を識別する２つのプログラム単位識別子を用いて判断してもよい。具体的には、プログラム単位対応検出部１３１は、一方のプログラム単位識別子を構成する文字列と、他方のプログラム単位識別子を構成する文字列とが互いに一致する場合に、それら２つのプログラム単位は対応すると判断してもよい。一致する場合とは、一致すると見なし得るほど類似する場合も含む。一致すると見なし得るほど類似する場合とは、例えば、文字列を構成する２以上の文字のうち、一致する文字が一定割合（例えば、８割、９０％等）を超える又は以上である場合や、一致しない文字が一定数（例えば、２文字等）以下又は未満である場合や、連続する一定数以上の文字（例えば、連続する３文字等）が一致する場合などであるが、これに限らない。
【００５４】
なお、文字列の一致にする上記事項は、プログラム単位識別子を構成する文字列の場合に限らず、プログラム単位自体を構成する文字列や、その他の情報を構成する文字列の場合にも当てはまる。
【００５５】
または、プログラム単位対応検出部１３１は、２つのプログラム単位が、同じ情報（例えば、同じコード、同じ関数など）を有する場合に、対応すると判断してもよいし、または、２つのプログラム単位が同じ構造を有する場合に対応すると判断してもよい。
【００５６】
同じ情報、同じ構造とは、同じと見なし得るほど類似する情報、構造も含む。同じ情報か否かは、例えば、当該情報を構成する文字列が一致するか否かで判断できる。同じ構造か否かは、例えば、当該プログラム単位を構文木に変換し、構文木が一致するか否かで判断すればよい。
【００５７】
プログラム単位対応検出部１３１は、２以上のプログラム群の間の対応を、ファイル単位およびルーチン単位で検出してもよい。例えば、プログラム単位対応検出部１３１は、２以上のプログラム群の間で、まず、対応するファイル（２つのファイル識別子の対）を検出し、次に、対応すると判断した２以上のファイルの間で、対応するルーチン（２つのルーチン識別子の対）を検出することは、好ましい。
【００５８】
プログラム単位対応検出部１３１の検出対象である２以上のプログラム群は、通常、マイグレーション前の２以上のプログラム群であるが、マイグレーション後の２以上のプログラム群（２以上の後プログラム群）でもよいし、その両方であってもよい。例えば、プログラム単位対応検出部１３１は、プログラム群格納部１１１に格納されている２以上のプログラム群であり、マイグレーション前の２以上のプログラム群の間の対応を検知した後、その検知結果と、前後対応格納部１１３に格納されている前後対応情報と組み合わせることで、後プログラム群格納部１１２に格納されている２以上の後プログラム群の間の対応も検出してよい。
【００５９】
同一度取得部１３２は、プログラム単位対応検出部１３１が対応すると判断した２以上のプログラム群のプログラム単位を比較し、同一の度合いである同一度を取得する。同一度は、例えば、類似度でもよいし、同一であるか否かでもよい。
【００６０】
類似度とは、類似の程度を示す値である。本実施の形態でいう類似度は、３以上の値を採り得る。３以上の値とは、類似の程度が最小である（通常、少しも類似していない）ことを示す最小値（例えば"０"）、類似の程度が最大である（通常、同一である）ことを示す最大値（例えば、"１"、または"１００"等）、およびそれらの間の１以上の値（例えば、０と１の間の小数値"０．１"，"０．９５"、または０と１００との間の実数値"１０"，"９５"，"９８．５２"等）である。
【００６１】
これに対して、同一であるか否かは、２値で表現される。２値とは、同一であることを示す第一の値（例えば"１"）、および同一でないことを示す第二の値（例えば"０"）である。同一であることは、何ら相違がない場合に限られる。すなわち、同一度取得部１３２は、少しでも相違があれば、同一でないと判断する。なお、類似度や同一か否か等を示す値は、相対的なものであり、具体的な数値は問わない。
【００６２】
同一度取得部１３２は、例えば、一のプログラム単位を構成するコードの総数と、そこに含まれる重複コードの数とを計数し、コードの総数に対する重複コードの数の割合を求め、当該割合を示す類似度を取得してもよい。重複コードとは、同じコード、または同じと見なし得るほど類似するコードであり、クローンコードともいう。または、同一度取得部１３２は、例えば、一のプログラム単位に含まれる関数の総数と、そこに含まれる同じ関数の数とを計数し、関数の総数に対する同じ関数の数の割合を求め、当該割合を示す類似度を取得してもよい。または、同一度取得部１３２は、例えば、一のプログラム単位に対応する構造木を構成する要素（ノード、エッジ等）の総数と、そこに含まれる同じ要素の数とを計数し、要素の総数に対する同じ要素の数の割合を求め、当該割合を示す類似度を取得してもよい。ただし、類似度の取得方法は問わない。
【００６３】
同一度取得部１３２は、例えば、Ａプログラム単位とＢプログラム単位との類似度を、次の式で算出してもよい。
【００６４】
類似度＝｛（ＡにおけるＢとの重複コード数）＋（ＢにおけるＡとの重複コード数）｝÷｛（Ａの総コード数）＋（Ｂの総コード数）｝
【００６５】
なお、上の式における「コード」は、「関数」と読み替えてもよいし、「トークン」と読み替えてもよい。トークンとは、プログラムを構成する情報の最小単位である。コードまたは関数は、１以上のトークンで構成されると考えてもよいし、トークンの一種と考えてもよい。重複トークン数および総トークン数は、例えば、既存のコードクローン解析ツールなどを利用して取得できる。
【００６６】
また、同一度取得部１３２は、取得した類似度を用いて、クラスター分析を行ってもよい。クラスター分析とは、プログラム間の類似度を距離で表現し、距離の近いプログラムのペアまたはセットをグルーピングしていく分析手法である。同一度取得部１３２は、クラスター分析を行うことで、距離の近いプログラムのペアに対応する２つのプログラム単位識別子の対で構成されたグループ、または距離の近いプログラムのセットに対応する３以上のプログラム単位識別子の組で構成されたグループを、１以上、取得してもよい。出力部１４が、かかる１以上のグループを出力することで、開発者は、マイグレーション等をグループごとに効率よく行える。
【００６７】
同一度取得部１３２は、プログラム単位対応検出部１３１が対応すると判断した２以上のプログラム群に対応する２以上の各後プログラム群のプログラム単位をも比較し、同一度を取得してもよい。これによって、一の対応するプログラム単位（一対のプログラム単位識別子）に対し、２種類の同一度が取得される。２種類の同一度とは、マイグレーションの前における同一度、およびマイグレーションの後における同一度である。
【００６８】
同一度取得部１３２は、プログラム単位対応検出部１３１が対応すると判断した２以上のプログラム群のファイル単位およびルーチン単位を比較し、同一度を取得してもよい。具体的には、例えば、同一度取得部１３２は、最初、２以上のプログラム群の間で対応すると判断された１以上の各ファイル対の同一度を取得し、次に、取得した同一度が最大値（例えば"１"、または"１００"等）に満たない２以上のファイル対の間で、対応すると判断された１以上のルーチン対の同一度をも取得することは好ましい。これによって、対応するファイル単位の同一度、および対応するルーチン単位の同一度が取得される。
【００６９】
同一度取得部１３２は、プログラム単位対応検出部１３１が取得したプログラム単位対応情報を構成する２以上の各プログラム単位識別子対について、当該プログラム単位識別子対で識別される２つのプログラム単位の間の同一度を計算し、当該プログラム単位識別子対に対応付けて、計算した同一度を蓄積する処理を繰り返すことで、同一度群情報を取得してもよい。
【００７０】
同一度群情報とは、２以上のプログラム群の間の２以上のプログラム単位対の同一度を示す情報である。プログラム単位対とは、プログラム単位対応検出部１３１が互いに対応すると判断した２つのプログラム単位の対をいう。同一度群情報は、通常、かかるプログラム単位対を識別するプログラム単位識別子対と、同一度との組の集合で構成される。つまり、同一度群情報は、通常、前述したプログラム単位対応情報も含んでいるが、プログラム単位対応情報を含まない、２以上の同一度の集合であってもよい。ただし、同一度群情報のデータ構造は問わない。
【００７１】
テスト対象取得部１３３は、同一度取得部１３２が取得した同一度を用いて、テストすべきマイグレーション後のプログラムを識別する１以上の後識別子を取得する。なお、以下では、同一度取得部１３２が取得する１以上の後識別子の集合を、テスト対象情報と記す場合がある。また、後識別子は、後ファイル識別子でも、後ルーチン識別子でもよく、テスト対象情報は、１以上の後ファイル識別子、および１以上の後ルーチン識別子を含み得ることはいうまでもない。後ファイル識別子とは、マイグレーションした後のプログラムの全体を識別する情報であり、後ルーチン識別子とは、マイグレーションした後のプログラムに含まれるルーチンを識別する情報である。
【００７２】
テスト対象取得部１３３は、例えば、次の手順でテスト対象情報を取得してもよい。すなわち、最初、テスト対象取得部１３３は、１番目の後プログラム群の後識別子を全て取得する。次に、テスト対象取得部１３３は、２番目のプログラム群の１番目の後識別子を選択して、その選択している後識別子に対応する後識別子を取得済みであり、かつその対応する２つの後識別子で識別されるプログラム単位対の同一度が最大値（例えば"１"または"１００"等）であるか否かを判断する。そして、テスト対象取得部１３３は、ここでＮＯと判断した場合に、その選択している後識別子を取得する。ＮＯと判断した場合とは、対応するプログラム識別子を取得済みでない場合、または同一度が最大値に満たない場合である。テスト対象取得部１３３は、かかる処理を、２番目のプログラム群の最後の後識別子を選択し終えるまで繰り返し、さらに、３番目以降のプログラム群についても、同様の処理を行うことで、テスト対象情報を取得することができる。
【００７３】
テスト対象取得部１３３は、同一度取得部１３２が取得したファイル単位の同一度およびルーチン単位の同一度を用いて、１以上の後ファイル識別子および１以上の後ルーチン識別子を含むテスト対象情報を取得してもよい。具体的には、例えば、テスト対象取得部１３３は、最初、２以上の後プログラム群から１以上の後ファイル識別子を取得し、次に、同一度が最大値に満たない２以上のファイルから１以上の後ルーチン識別子をも取得することは好ましい。
【００７４】
出力部１４は、各種の情報を出力する。各種の情報とは、例えば、プログラム単位対応情報、同一度群情報、テスト対象情報などである。各種の情報には、マイグレーション等に関連する上記各種の指示に応じた処理の結果なども含まれてよい。一般に、出力とは、ディスプレイへの表示、スピーカーからの音出力、外部の装置への送信、プリンタでの印字、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。出力部１４の出力は、通常、ディスプレイ等の出力デバイスを介した出力であるが、例えば、端末装置への送信であってもよく、その態様は問わない。
【００７５】
比較結果出力部１４１は、プログラム単位対応検出部１３１が検出した対応の結果、および同一度取得部１３２が取得した同一度を、２以上のプログラム群の間で対比可能な態様で出力する。出力される対応の結果とは、前述したプログラム単位対応情報である。出力される同一度とは、前述した同一度群情報である。比較結果出力部１４１は、通常、プログラム単位対応情報を含む同一度群情報を出力するが、プログラム単位対応情報と、これを含まない同一度群情報とを出力してもよい。対比可能な態様とは、２以上のプログラム群のうち、一のプログラム群を構成する２以上の各プログラム単位が、他のプログラム群のどのプログラム単位に対応しているかを、開発者が認識できる態様をいう。対比可能な態様は、例えば、マトリクス、対応表の形式等であるが、これに限らない。
【００７６】
マトリクスは、例えば、２以上の列（第１列、第２列、…）、および２以上の行（第１行、第２行、…）を有する。２以上の列は、一の配置先識別子に対応するプログラム群が有する２以上のプログラム単位に対応付いている。２以上の行は、別の配置先識別子に対応するプログラム群が有する２以上のプログラム単位に対応付いている。２以上の列には、対応する２以上のプログラム単位識別子が、当該一の配置先識別子と共に記載されていてもよい。２以上の行には、対応する２以上のプログラム単位識別子が、当該別の配置先識別子と共に記載されていてもよい。
【００７７】
比較結果出力部１４１は、例えば、かかるマトリクスの第ｓ行第ｔ列に、当該一の配置先識別子に対応するプログラム群が有する２以上のプログラム単位のうちｓ番目のプログラム単位と、当該別の配置先識別子に対応するプログラム群が有する２以上のプログラム単位のうちｔ番目のプログラム単位との類似度を配置する。
【００７８】
対応表は、例えば、３つの列（第１列〜第３列）および２以上の行（第１行、第２行、…）を有する。第１列には、対応する２つプログラム単位のうち一方を識別するプログラム単位識別子が配置される。第２列には、対応する２つプログラム単位のうち他方を識別するプログラム単位識別子が配置される。第３列には、当該２つのプログラム単位の類似度が配置される。対応表には、第１列に対応付けて、そこに配置されるプログラム単位識別子で識別されるプログラム単位に対応する稼働先識別子（"Ｂ工場用"等）が記載されてもよい。また、第２列に対応付けて、そこに配置されるプログラム単位識別子で識別されるプログラム単位に対応する稼働先識別子（"Ｃ工場用"等）が記載されてもよい。また、第３列に対応付けて、"類似度"が記載されてもよい。
【００７９】
比較結果出力部１４１は、例えば、かかる対応表の第２行以下に、同じプログラム単位識別子を有するプログラム単位対とその類似度との組を配置する。
【００８０】
比較結果出力部１４１は、同一度取得部１３２が取得した後プログラム群のプログラム単位の同一度をも、２以上の後プログラム群の間で対比可能な態様で出力してもよい。
【００８１】
比較結果出力部１４１は、プログラム単位対応検出部１３１が検出した対応の結果、および同一度取得部１３２が取得した同一度を、後識別子に対応付けて出力してもよい。その際、比較結果出力部１４１は、テスト対象取得部１３３が取得した１以上の後識別子を他の後識別子とは区別可能な態様で出力することは好ましい。区別可能な態様で出力することは、例えば、取得された１以上の後識別子を強調表示すること、取得された１以上の後識別子の背景色を変えること、他の後識別子をグレーアウトすること等であるが、これに限らない。
【００８２】
または、比較結果出力部１４１は、テスト対象取得部１３３が取得した１以上の後識別子のみを出力してもよい。
【００８３】
そして、２以上の後プログラム群を対象とする場合における対比可能な態様もまた、前述したようなマトリックスや対応表の形式であってよい。これによって、マイグレーション後のプログラム群（後プログラム群）のテストやメンテナンス等が容易になる。
【００８４】
以下では、プログラム単位対応情報および同一度を含む情報であり、２以上のプログラム群の間で対比可能な態様を有する情報を、プログラム単位の対応および同一情報と記す場合がある。
【００８５】
比較結果出力部１４１は、プログラム単位対応検出部１３１が取得したプログラム単位対応情報、および同一度取得部１３２が取得した同一度群情報を用いて、同一度群情報を構成し、出力することは好ましい。
【００８６】
比較結果出力部１４１は、通常、受付部１２が出力指示を受け付けたことに応じて、プログラム単位対応・同一度群情報を出力する。または、比較結果出力部１４１は、例えば、受付部１２が出力指示を端末識別子と対に受信したことに応じて、当該端末識別子で識別される端末装置（つまり、当該出力指示を送信して来た端末装置）に、同一度群情報を送信してもよい。
【００８７】
格納部１１、プログラム群格納部１１１、後プログラム群格納部１１２、および前後対応格納部１１３は、例えば、ハードディスクやフラッシュメモリといった不揮発性の記録媒体が好適であるが、ＲＡＭなど揮発性の記録媒体でも実現可能である。
【００８８】
格納部１１等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部１１等で記憶されるようになってもよく、ネットワークや通信回線等を介して送信された情報が格納部１１等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部１１等で記憶されるようになってもよい。入力デバイスは、例えば、キーボード、マウス、タッチパネル等、何でもよい。
【００８９】
受付部１２は、入力デバイスを含むと考えても、含まないと考えてもよい。受付部１２は、入力デバイスのドライバーソフトによって、または入力デバイスとそのドライバーソフトとで実現され得る。
【００９０】
受付部１２の受信機能は、通常、有線または無線の通信手段（例えば、ネットワークカードやモデム等の通信モジュール）で実現されるが、放送を送信する手段（例えば、放送受信モジュール）で実現されてもよい。
【００９１】
処理部１３、プログラム単位対応検出部１３１、および同一度取得部１３２は、通常、ＭＰＵやメモリ等から実現され得る。処理部１３等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。ただし、処理手順は、ハードウェア（専用回路）で実現してもよい。
【００９２】
出力部１４、および比較結果出力部１４１は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えてもよい。出力部１４等は、出力デバイスのドライバーソフトによって、または出力デバイスとそのドライバーソフトとで実現され得る。
【００９３】
出力部１４の送信機能は、通常、有線または無線の通信手段で実現されるが、放送手段（例えば、放送モジュール）で実現されてもよい。
【００９４】
次に、開発支援装置１の動作について図２〜図４のフローチャートを用いて説明する。なお、既出の事項に関する説明は、省略または簡略化している。また、図２〜図４のフローチャートには、マイグレーションやテストやメンテナンス等に関連する各種の指示の受け付け（送受信）、当該各種の指示に応じた処理、当該処理の結果の出力（送受信）等は、記載していない。
【００９５】
図２は、開発支援装置１の動作を説明するフローチャートである。
【００９６】
（ステップＳ２０１）処理部１３は、受付部１２が出力指示を受け付けたか否かを判別する。受け付けたことは、出力指示を、キーボード等の入力デバイスを介して受け付けた場合だけでなく、端末識別子と対に受信した場合も含む。受付部１２が出力指示を受け付けた場合はステップＳ２０２に進み、受け付けていない場合はステップＳ２０１に戻る。
【００９７】
（ステップＳ２０２）プログラム単位対応検出部１３１は、２以上のプログラム群の間の対応をプログラム単位で検出する処理である対応検出処理を実行する。なお、対応検出処理については、図３のフローチャートを用いて説明する。
【００９８】
（ステップＳ２０３）同一度取得部１３２は、プログラム単位対応検出部１３１が対応すると判断したプログラム単位の同一度を計算し、同一度群情報を取得する処理である同一度取得処理を実行する。なお、同一度取得処理については、図４のフローチャートを用いて説明する。
【００９９】
（ステップＳ２０４）比較結果出力部１４１は、格納されているプログラム単位識別子対と同一度との組の集合（同一度群情報）を取得する。なお、同一度群情報については、前述したので繰り返さない。
【０１００】
（ステップＳ２０５）比較結果出力部１４１は、取得した同一度群情報を出力する。出力することは、ディスプレイ等の出力デバイスを介して出力する場合だけでなく、受付部１２が出力指示と対に受信した端末識別子で識別される端末装置に送信する場合も含む。その後、ステップＳ２０１に戻る。
【０１０１】
なお、図２のフローチャートにおいて、開発支援装置１の電源オンやプログラムの起動に応じて処理が開始し、電源オフや処理終了の割り込みにより処理は終了する。ただし、処理の開始または終了のトリガは問わない。
【０１０２】
図３は、上記ステップＳ２０２の対応検出処理を説明するフローチャートである。
【０１０３】
（ステップＳ３０１）プログラム単位対応検出部１３１は、変数ｉに初期値１セットし、変数ｊにも初期値１をセットする。
【０１０４】
変数ｉは、格納されている２以上のプログラム群のうち、未選択のプログラム群を順番に選択していくための変数である。格納されている２以上のプログラム群とは、プログラム群格納部１１１に格納されている２以上のプログラム群、または後プログラム群格納部１１２に格納されている２以上の後プログラム群のうち、１種類以上の２以上のプログラム群である。また、変数ｊは、ｉ番目のプログラム群のうち、未選択のプログラム単位を順番に選択していくための変数である。
【０１０５】
（ステップＳ３０２）プログラム単位対応検出部１３１は、ｉ番目のプログラム群があるか否かを判別する。ｉ番目のプログラム群がある場合はステップＳ３０２に進み、ない場合は上位処理にリターンする。
【０１０６】
（ステップＳ３０３）プログラム単位対応検出部１３１は、ｉ番目のプログラム群にｊ番目のプログラム単位があるか否かを判別する。ｉ番目のプログラム群にｊ番目のプログラム単位がある場合はステップＳ３０４に進み、ない場合はステップＳ３０７に進む。
【０１０７】
（ステップＳ３０４）プログラム単位対応検出部１３１は、ｉ番目以外のプログラム群に当該ｊ番目のプログラム単位に対応するプログラム単位があるか否かを判別する。ｉ番目以外のプログラム群に当該ｊ番目のプログラム単位に対応するプログラム単位がある場合はステップＳ３０５に進み、ない場合はステップＳ３０６に進む。
【０１０８】
（ステップＳ３０５）プログラム単位対応検出部１３１は、当該ｊ番目のプログラム単位を識別する識別子と、これに対応するプログラム単位を識別する識別子との対であるプログラム単位識別子対を、例えば格納部１１に蓄積する。
【０１０９】
（ステップＳ３０６）プログラム単位対応検出部１３１は、変数ｉをインクリメントする。その後、ステップＳ３０３に戻る。
【０１１０】
（ステップＳ３０７）プログラム単位対応検出部１３１は、変数ｊをインクリメントする。その後、ステップＳ３０２に戻る。
【０１１１】
図４は、上記ステップＳ２０３の同一度取得処理を説明するフローチャートである。
【０１１２】
（ステップＳ４０１）同一度取得部１３２は、変数ｋに初期値１セットする。変数ｋは、格納されている２以上のプロタム単位識別子対のうち、未選択のプログラム単位識別子対を順番に選択していくための変数である。
【０１１３】
（ステップＳ４０２）同一度取得部１３２は、ｋ番目のプログラム単位識別子対があるか否かを判別する。ｋ番目のプログラム単位識別子対がある場合はステップＳ４０３に進み、ない場合は上位処理にリターンする。
【０１１４】
（ステップＳ４０３）同一度取得部１３２は、ｋ番目のプログラム単位識別子対で識別される２つのプログラム単位の間の同一度を計算する。同一度の計算方法については、前述したので繰り返さない。
【０１１５】
（ステップＳ４０４）同一度取得部１３２は、当該同一度を、ｋ番目のプログラム単位識別子対に対応付けて、例えば格納部１１に蓄積する。
【０１１６】
（ステップＳ４０５）同一度取得部１３２は、変数ｋをインクリメントする。その後、ステップＳ４０２に戻る。
【０１１７】
なお、図２〜図４のフローチャートには明示していないが、例えば、図３のステップＳ３０５において、プログラム単位対応検出部１３１は、蓄積しようとするプログラム単位識別子対（例えば"ａａ"および"ｂｂ"等）に対し、識別子の順序のみが異なる同等のプログラム単位識別子対（例えば"ｂｂ"および"ａａ"等）が既に蓄積済みか否かを判別し、蓄積済みである場合には、重複するプログラム単位識別子対の蓄積は行わなくてよい。
【０１１８】
ただし、ステップＳ３０５では、プログラム単位対応検出部１３１は、どのプログラム単位識別子対も蓄積し、後に、例えば処理部１３が、格納されているプログラム単位識別子対の集合の中から、互いに同等である複数のプログラム単位識別子対を検出し、一のプログラム単位識別子対に集約してもよい。集約は、例えば、図２のステップＳ２０４において、比較結果出力部１４１がプログラム単位対応・同一情報を構成する際に行ってもよく、その実行タイミングは問わない。
【０１１９】
以下、本実施の形態における開発支援装置１の具体的な動作について説明する。なお、既出の事項に関する説明は、省略または簡略化している。以下の説明は、例示であって、本発明を何ら限定するものではなく、適宜変更可能であることはいうまでもない。
【０１２０】
本例の開発支援装置１は、開発会社のＰＣで実現される。開発支援装置１は、このＰＣを利用して開発を行う開発者を支援する。開発者は、Ａ社の２以上の工場（例えば、Ｂ工場、Ｃ工場等）で稼働している２以上のプログラム群のマイグレーションを担当する。
【０１２１】
開発支援装置１のプログラム群格納部１１１には、２以上のプログラム群が格納されている。プログラム群のデータ構造を図５に示す。プログラム群は、ＩＤと、稼働先識別子と、２以上のプロググラム単位とを有する。ＩＤは、プログラム群を識別する情報であり、例えば、１，２，…といった番号である。稼働先識別子は、プログラム群の稼働先を識別する情報であり、例えば"ＡＢ"，"ＡＣ"などである。
【０１２２】
例えば、ＩＤ"１"に対応するプログラム群（以下、プログラム群１と記す場合がある）は、稼働先識別子"ＡＢ"、および２以上のプログラム単位（ここでは、８以上のプログラム単位"ＡＢ００００.ｃｂｌ"，"ＬＭＮ００６.ｃｂｌ"，"ＬＭＮ０６０.ｃｂｌ"，"ＬＭＮ０７０.ｃｂｌ"，"ＢＭＮ２００.ｃｂｌ"，"ＬＭＮ２０５.ｃｂｌ"，"ＬＭＮ２１０.ｃｂｌ"，および"ＬＭＮ２１１.ｃｂｌ"など）を有する。また、ＩＤ"２"に対応するプログラム群（以下、プログラム群２と記す場合がある）は、稼働先識別子"ＡＣ"、および２以上のプログラム単位（ここでは、８以上のプログラム単位"ＡＢ００００.ｃｂｌ"，"ＬＭＮ００５.ｃｂｌ"，"ＬＭＮ００６.ｃｂｌ"，"ＬＭＮ０６０.ｃｂｌ"，"ＬＭＮ０７０.ｃｂｌ"，"ＬＭＮ２００.ｃｂｌ"，"ＬＭＮ２０５.ｃｂｌ"，および"ＬＭＮ２１０.ｃｂｌ"など）を有する。ただし、プログラム群のデータ構造は問わない。
【０１２３】
プログラム群１とプログラム群２とは、元は同じプログラム群であるが、各工場でのカスタマイズの結果、部分的な差異が生じている。カスタマイズとは、例えば、プログラム単位の削除、新たなプログラム単位の追加、プログラム単位のプログラム文の変更などであるが、これに限らない。開発者は、かかる２以上のプログラム群のマイグレーションを行う前に、メンテナンスを行うべく、入力デバイスを介して出力指示を入力する。
【０１２４】
開発支援装置１において、受付部１２が出力指示を受け付け、プログラム単位対応検出部１３１は、プログラム群格納部１１１に格納されている２以上のプログラム群の間の対応をプログラム単位で検出する。なお、プログラム単位対応検出部１３１の動作については、前述したので繰り返さない。次いで、同一度取得部１３２は、プログラム単位対応検出部１３１が対応すると判断したプログラム単位の同一度を計算し、同一度情報を取得する。なお、同一度取得部１３２の動作についても、前述したので繰り返さない。
【０１２５】
次に、比較結果出力部１４１は、こうして取得されたプログラム単位対応情報および同一度情報を用いて、プログラム単位対応・同一情報を構成し、出力する。なお、比較結果出力部１４１の動作についても、前述したので繰り返さない。これにより、ディスプレイには、２以上のプログラム群の間で対比可能な態様で、２以上のプログラム単位対および各プログラム単位対の同一度が表示される。
【０１２６】
同一度群情報の一出力例を図６に示す。この同一度群情報は、８行×８列のマトリクス形式を有する。このマトリクスは、例えば、８の列（第１列〜第８列）、および８の行（第１行〜第８行）を有する。そして、当該８の列に対応付けて、配置先識別子"ＡＢ"で識別されるＡ社のＢ工場を意味する"Ｂ工場"と、配置先識別子"ＡＢ"に対応するプログラム群１が有する８のプログラム単位"ＡＢ００００.ｃｂｌ"，"ＬＭＮ００６.ｃｂｌ"，"ＬＭＮ０６０.ｃｂｌ"，"ＬＭＮ０７０.ｃｂｌ"，"ＬＭＮ２００.ｃｂｌ"，"ＬＭＮ２０５.ｃｂｌ"，"ＬＭＮ２１０.ｃｂｌ"，および"ＢＭＮ２１１.ｃｂｌ"とが配置されている。また、当該８の行に対応付けて、配置先識別子"ＡＣ"で識別されるＡ社のＣ工場を意味する"Ｃ工場"と、配置先識別子"ＡＣ"に対応するプログラム群が有する８のプログラム単位"ＡＢ００００.ｃｂｌ"，"ＬＭＮ００５.ｃｂｌ"，"ＬＭＮ００６.ｃｂｌ"，"ＬＭＮ０６０.ｃｂｌ"，"ＬＭＮ０７０.ｃｂｌ"，"ＬＭＮ２００.ｃｂｌ"，"ＬＭＮ２０５.ｃｂｌ"，および"ＬＭＮ２１０.ｃｂｌ"とが配置されている。格納部１１には、例えば、マトリクスの行数、列数、行の幅、列の高さ等を示すレイアウト情報等が格納されており、比較結果出力部１４１は、当該レイアウト情報等を用いて、上記のようなマトリクスを構成してもよい。
【０１２７】
比較結果出力部１４１は、かかるマトリックスの第１行第１列に、配置先識別子"ＡＢ"に対応するプログラム群１が有する上記８以上のプログラム単位のうち１番目のプログラム単位であるＢ工場用の"ＡＢ００００．ｃｂｌ"と、配置先識別子"ＡＣ"に対応するプログラム群２が有する上記８以上のプログラム単位のうち１番目のプログラム単位であるＣ工場用の"ＡＢ００００．ｃｂｌ"との類似度"１００．００"を配置する。同様にして、第１行第２列には、プログラム群１の２番目のプログラム単位（Ｂ工場用の"ＬＭＮ００６．ｃｂｌ"）と、プログラム群２の１番目のプログラム単位（Ｃ工場用の"ＡＢ００００．ｃｂｌ"）との類似度"０．００％"が配置される。一般に、第ｓ行第ｔ列には、配置先識別子"ＡＢ"に対応するプログラム群１が有する上記８以上のプログラム単位のうちｓ番目のプログラム単位と、配置先識別子"ＡＣ"に対応するプログラム群２が有する上記８以上のプログラム単位のうちｔ番目のプログラム単位との類似度が配置される。
【０１２８】
同一度群情報の他の出力例を図７に示す。図７の同一度群情報は、１０の行（第１行〜第１０行）および３の列（第１列〜第３列）で構成された対応表の形式を有する。第１行第１列には、稼働先識別子"ＡＢ"に対応する"Ｂ工場用"が配置され、第１行第２列には、稼働先識別子"ＡＣ"に対応する"Ｃ工場用"が配置され、そして、第１行第３列に"同一度（類似度）"が配置される。格納部１１には、対応表の行数、列数、行の幅、列の高さ等を示すレイアウト情報等が格納されており、比較結果出力部１４１は、当該レイアウト情報等を用いて、対応表を構成してもよい。
【０１２９】
比較結果出力部１４１は、かかる対応表の第２行以下の一部（ここでは、第２行，第４〜第９行）に、同じプログラム単位識別子を有するプログラム単位対とその類似度との組を配置する。同じプログラム単位識別子を有するプログラム単位対とその類似度との組とは、具体的には、Ｂ工場用"ＡＢ００００．ｃｂｌ"およびＣ工場用"ＡＢ００００．ｃｂｌ"と類似度"１００．００"との組、Ｂ工場用"ＬＭＮ００６．ｃｂｌ"およびＣ工場用"ＬＭＮ００６．ｃｂｌ"と類似度"１００．００"との組、Ｂ工場用"ＬＭＮ０６０．ｃｂｌ"およびＣ工場用"ＬＭＮ０６０．ｃｂｌ"と類似度"９６．００"との組、Ｂ工場用"ＬＭＮ０７０．ｃｂｌ"およびＣ工場用"ＬＭＮ０７０．ｃｂｌ"と類似度"１００．００"との組、Ｂ工場用"ＬＭＮ２００．ｃｂｌ"およびＣ工場用"ＬＭＮ２００．ｃｂｌ"と類似度"１００．００"との組、Ｂ工場用"ＬＭＮ２０５．ｃｂｌ"およびＣ工場用"ＬＭＮ２０５．ｃｂｌ"と類似度"１００．００"との組、Ｂ工場用"ＬＭＮ２１０．ｃｂｌ"およびＣ工場用"ＬＭＮ２１０．ｃｂｌ"と類似度"１００．００"との組、の計７組である。
【０１３０】
また、比較結果出力部１４１は、対応表の第２行以下の他の一部（ここでは、第３行，第１０行）に、同じプログラム単位識別子で識別される他のプログラム単位が存在しないプログラム単位を単独で配置する。これによって、第３行には、Ｂ工場用"−"およびＣ工場用"ＬＭＮ００６．ｃｂｌ"と類似度"−"との組が配置され、第１０行には、Ｂ工場用"ＬＭＮ２１１．ｃｂｌ"およびＣ工場用"−"と類似度"−"との組が配置される。なお、"−"は、該当する情報が存在しないことを示す。
【０１３１】
比較結果出力部１４１は、例えば、初回の出力指示に応じて、図６に示したようなマトリックスを出力し、次回の出力指示に応じて、図７に示したような対応表を出力してもよい。ただし、マトリックスと対応表との出力順序は問わない。または、比較結果出力部１４１は、出力指示に応じて、マトリックスまたは対応表のうちいずれか一種類を出力するだけでもよい。
【０１３２】
かかる同一度群情報を参照することで、開発者は、Ｂ工場用およびＣ工場用の２つのプログラム群の間のプログラム単位の対応、および対応するプログラム単位の間の同一度（ここでは、０．００〜１００．００までの、例えば１万個の値を採り得る類似度：単位は％）を知ることができる。
【０１３３】
開発者は、例えば、類似度が０．００のプログラム単位対については、全く異なるプログラム単位の対であるため、個別にマイグレーションを行う必要があるが、類似度が１００．００のプログラム単位対については、全く同じプログラム単位の対であるため、一方のプログラム単位だけをマイグレーションし、他方のプログラム単位は、当該マイグレーション後のプログラム単位に置き換えるだけでよい。このため、開発者の負担が軽減される。
【０１３４】
また、開発者は、類似度が０．００より大きく１００．００より小さいプログラム単位対（例えば、類似度が９６．００のプログラム単位対であるＢ工場用"ＬＭＮ０６０"およびＣ工場用"ＬＭＮ０６０"）については、例えば、表示されているマトリックスまたは対応表上で当該プログラム単位対に対応するセルを選択することで、ルーチン単位の同一度群情報を表示させてもよい。詳しくは、受付部１２がセルの選択を受け付け、比較結果出力部１４１は、選択されたセルに対応するプログラム単位対である２つのファイルに含まれる１以上のルーチンを取得し、図８に示すような同一度群情報を出力してもよい。
【０１３５】
図８の同一度群情報は、対応表の形式を有する。この対応表は、３つの列（第１列〜第３列）、および当該２つの各ファイルに含まれるルーチンの数と同数の行（例えば５つの行:第１行〜第５行）を有する。第１行第１列には、稼働先識別子"ＡＢ"に対応するファイル単位であり、選択されたセルに対応するファイル単位を示す"Ｂ工場用ＬＭＮ０６０．ｃｂｌ"が配置され、第１行第２列には、稼働先識別子"ＡＣ"に対応するファイル単位であり、選択されたセルに対応するファイル単位を示す"Ｃ工場用ＬＭＮ０６０．ｃｂｌ"が配置され、そして、第１行第３列に"同一度（類似度）"が配置される。
【０１３６】
比較結果出力部１４１は、かかる対応表の第２行以下（ここでは、第２〜第５行）に、同じルーチン識別子を有する２つのルーチンの対とその類似度との組を配置する。同じルーチン識別子を有する２つのルーチンの対（ルーチン対）とその類似度との組とは、具体的には、Ｂ工場用ＬＭＮ０６０．ｃｂｌのルーチン１およびＣ工場用ＬＭＮ０６０．ｃｂｌのルーチン１の対とその類似度"１００．００"との組、Ｂ工場用ＬＭＮ０６０．ｃｂｌのルーチン２およびＣ工場用ＬＭＮ０６０．ｃｂｌのルーチン２の対とその類似度"８０．００"との組、Ｂ工場用ＬＭＮ０６０．ｃｂｌのルーチン３およびＣ工場用ＬＭＮ０６０．ｃｂｌのルーチン３の対とその類似度"１００．００"との組、ならびにＢ工場用ＬＭＮ０６０．ｃｂｌのルーチン４およびＣ工場用ＬＭＮ０６０．ｃｂｌのルーチン４の対とその類似度"１００．００"との組、の計４組である。
【０１３７】
かかる同一度群情報を参照することで、開発者は、類似度が１００．００に満たない２つのファイルの対であるＢ工場用ＬＭＮ０６０．ｃｂｌおよびＣ工場用ＬＭＮ０６０．ｃｂｌの間のルーチン単位の対応、および対応するルーチン単位の間の同一度をも知ることができる。
【０１３８】
開発者は、かかる対応表上で、類似度が１００．００に未たない２つのルーチンの対に対応するセルを選択することで、各々のを構成するコード群（関数群でもよい）を上記対応表に代えて表示させ、当該コード群の中にデッドコードが含まれている場合は、その削除を行うことで、当該ルーチン対の同一度を１００．００に近づけることもできる。
【０１３９】
類似度が１００．００未満であるプログラム単位対（ここでは、２つのルーチン）に対応する２つのコード群の出力例を、図８に示す。出力された２つのコード群を対比することで、開発者は、２つのコード群の間の相違を知ることができる。相違とは、例えば、一方のコード群の特定のコードに対応するコードが、他方のコード群には存在しないこと等である。図８の出力例からは、Ｃ工場用ＬＭＮ０６０．ｃｂｌのコード群の特定のコード"05 M04-NOHIN-YOTEI-HHMM-RDF REDEFINES M04NOHIN-YOTEI-HHMM."，"06 M04-NOHIN-YOTEI-HH PIC 9(02)."および"06 M04-NOHIN-YOTEI-MM PIC 9(02)."が、Ｂ工場用ＬＭＮ０６０．ｃｂｌのコード群には存在しないことがわかる。次に、開発者は、Ｃ工場用ＬＭＮ０６０．ｃｂｌのコード群の後続部分において、当該特定のコードを参照している箇所を探す。本例では、当該特定のコードの一部（図中の強調した文字列）が一度も参照されておらず、開発者は、その部分をデッドコードとして削除する。
【０１４０】
また、図示はしないが、表示された２つのコード群において、例えば、変数として使われている文字や、関数の形式が異なるだけで、実質的には同等である関数が含まれている場合に、それらの文字や形式を統一し、一の関数に集約することで、当該プログラム単位対の同一度を１００．００にできる場合もある。
【０１４１】
担当者は、図６〜図８に示したような同一度群情報、図９に示したような２つのコード群などを参照することで、マイグレーションの前に、デッドコードの削除、重複コードの集約といったメンテナンスを容易に行える。
【０１４２】
そして、マイグレーション前のこうしたメンテナンスによって、マイグレーションの対象となるプログラム単位の数が減る結果、開発者の負担は、一層、軽減される。
【０１４３】
プログラム群格納部１１１に格納されている２以上のプログラム群が、以上のような開発者の作業を通じてマイグレーションされ、それにより得られた２以上の後プログラム群は、後識別子に対応付けられ、後プログラム群格納部１１２に蓄積される。
【０１４４】
後プログラム群格納部１１２に格納されている２以上の後プログラム群についても、例えば、受付部１２が、後識別子と対に出力指示を受け付け、プログラム単位対応検出部１３１は、当該２以上の後プログラム群の間のプログラム単位の対応を検出し、同一度取得部１３２は、対応するプログラム単位の同一度を取得し、比較結果出力部１４１は、検出された対応および取得された同一度を当該２以上のプログラム単位の間で比較可能に示す同一度群情報を出力する。
【０１４５】
２以上の後プログラム群に関する同一度群情報の出力例を図１０に示す。図１０の同一度群情報は、図７と同様の対応表の形式を有する。比較結果出力部１４１は、かかる対応表の第２行以下の一部（ここでは、第２行，第４〜第９行）に、同じプログラム単位識別子を有するプログラム単位対とその類似度との組を配置する。同じプログラム単位識別子を有するプログラム単位対とその類似度との組とは、具体的には、Ｂ工場用"ＡＢ００００＿後．ｃｂｌ"およびＣ工場用"ＡＢ００００＿後．ｃｂｌ"と類似度"１００．００"との組、Ｂ工場用"ＬＭＮ００６＿後．ｃｂｌ"およびＣ工場用"ＬＭＮ００６"と類似度"１００．００"との組、Ｂ工場用"ＬＭＮ０６０＿後．ｃｂｌ"およびＣ工場用"ＬＭＮ０６０＿後．ｃｂｌ"と類似度"９６．００"との組、Ｂ工場用"ＬＭＮ０７０＿後．ｃｂｌ"およびＣ工場用"ＬＭＮ０７０＿後．ｃｂｌ"と類似度"１００．００"との組、Ｂ工場用"ＬＭＮ２００＿後．ｃｂｌ"およびＣ工場用"ＬＭＮ２００＿後．ｃｂｌ"と類似度"１００．００"との組、Ｂ工場用"ＬＭＮ２０＿後．ｃｂｌ５"およびＣ工場用"ＬＭＮ２０５＿後．ｃｂｌ"と類似度"１００．００"との組、Ｂ工場用"ＬＭＮ２１０＿後．ｃｂｌ"およびＣ工場用"ＬＭＮ２１０＿後．ｃｂｌ"と類似度"１００．００"との組、の計７組である。
【０１４６】
また、比較結果出力部１４１は、対応表の第２行以下の他の一部（ここでは、第３行，第１０行）に、同じプログラム単位識別子で識別される他のプログラム単位が存在しないプログラム単位を単独で配置する。これによって、第３行には、Ｂ工場用"−"およびＣ工場用"ＬＭＮ００６＿後．ｃｂｌ"と類似度"−"との組が配置され、第１０行には、Ｂ工場用"ＬＭＮ２１１＿後．ｃｂｌ"およびＣ工場用"−"と類似度"−"との組が配置される。なお、"−"は、該当する情報が存在しないことを示す。
【０１４７】
なお、２以上の後プログラム群に関する同一度群情報もまた、マットリクス形式を有していてもよい。マイグレーション後に出力されるマトリックスは、図６のマトリックスにおいて、"ＡＢ００００．ｃｂｌ"等の前識別子に代えて、"ＡＢ００００＿後．ｃｂｌ"等の後識別子が表示される。比較結果出力部１４１は、例えば、マイグレーション後の初回の出力指示に応じて、図１０に示したような対応表を出力し、次回の出力指示に応じて、かかるマトリックスを出力してもよい。
【０１４８】
テスト対象取得部１３３が、上記のような同一度群情報を用いて、テストすべきマイグレーション後のプログラムを識別する１以上の後識別子を取得する。テストすべきマイグレーション後のプログラムとは、類似度が１００．００のプログラム単位対のいずれか一方を識別するプログラム単位識別子（例えば、Ｂ工場用"ＡＢ００００＿後．ｃｂｌ"、Ｂ工場用"ＬＭＮ００６＿後．ｃｂｌ"、Ｂ工場用"ＬＭＮ０７０＿後．ｃｂｌ"、Ｂ工場用"ＬＭＮ２００＿後．ｃｂｌ"、Ｂ工場用"ＬＭＮ２０５＿後．ｃｂｌ"、およびＢ工場用"ＬＭＮ２１０＿後．ｃｂｌ"）、対になるプログラム単位がないプログラム単位を識別するプログラム単位識別子（例えば、Ｃ工場用"ＬＭＮ００５＿後．ｃｂｌ"および、Ｂ工場用"ＬＭＮ２１１＿後．ｃｂｌ"）、および類似度が１００．００に満たないプログラム単位対の両方を識別するプログラム単位識別子（例えば、Ｂ工場用"ＬＭＮ０６０＿後．ｃｂｌ"、およびＣ工場用"ＬＭＮ０６０＿後．ｃｂｌ"）である。比較結果出力部１４１は、テスト対象取得部１３３が取得した上記プログラム単位識別子を強調表示している。これにより、開発者は、デッドコードの削除や、重複コードの集約といったメンテナンスを容易に行うことができる。
【０１４９】
以上、本実施の形態によれば、ソフトウェアの稼働先を識別する稼働先識別子に対応付けられた２以上のプログラムを有する２以上のプログラム群が記録媒体に格納されており、開発支援装置１は、プログラム群を構成する部分であり、予め決められた単位であるプログラム単位で、２以上のプログラム群の間の対応を検出し、対応すると判断した２以上のプログラム群のプログラム単位を比較し、同一の度合いである同一度を取得し、検出した対応の結果、および取得した同一度を、２以上のプログラム群の間で対比可能な態様で出力することにより、開発者は、２以上のプログラム群の間のプログラム単位の対応および同一度を認知することにより、２以上のプログラム群を対象とする開発を効率的に行える。
【０１５０】
また、上記２以上の各プログラム群が有する２以上のプログラムは、マイグレーション対象のマイグレーションの前のプログラムであることにより、開発者は、マイグレーション前の２以上のプログラム群の間のプログラム単位の対応および同一度を認知することにより、２以上のプログラム群を対象とするマイグレーションを効率的に行える。
【０１５１】
また、上記２以上の各プログラム群が有する２以上のプログラムは、マイグレーションの後のプログラムであることにより、開発者は、マイグレーション後の２以上のプログラム群の間のプログラム単位の対応および同一度を認知することにより、マイグレーション後の２以上のプログラム群を対象とするテストを効率的に行える。
【０１５２】
また、上記２以上の各プログラム群が有する２以上のプログラムは、マイグレーション対象のマイグレーションの前のプログラムであり、２以上の各プログラム群が有する２以上のプログラムをマイグレーションした結果である２以上の後プログラムを有する２以上の各後プログラム群が、稼働先識別子に対応付けて記録媒体にさらに格納されており、開発支援装置１は、対応すると判断した２以上のプログラム群に対応する２以上の各後プログラム群のプログラム単位をも比較し、同一の度合いである同一度を取得し、取得した後プログラム群のプログラム単位の同一度をも、２以上の後プログラム群の間で対比可能な態様で出力することにより、開発者は、マイグレーション前の２以上のプログラム群の間のプログラム単位の対応および同一度を認知することにより、マイグレーション前の２以上のプログラム群を対象とするマイグレーションを効率的に行えるのに加えて、マイグレーション後の２以上のプログラム群に関するプログラム単位の比較結果を認知することにより、マイグレーション後の２以上のプログラム群を対象とするテストをも効率的に行える。
【０１５３】
また、マイグレーション前のプログラムを識別する前識別子と、マイグレーション前のプログラムをマイグレーションした後のプログラムを識別する後識別子との対応が、記録媒体にさらに格納されており、開発支援装置１は、取得した同一度を、後識別子に対応付けて出力することにより、開発者は、後識別子に対応付いたプログラム単位の対応および同一度を認知することにより、マイグレーション後の２以上のプログラム群を対象とするテストまたはメンテナンスをも効率的に行える。
【０１５４】
また、上記開発支援装置１は、取得した同一度を用いて、テストすべきマイグレーション後のプログラムを識別する１以上の後識別子を取得し、取得した１以上の後識別子を出力するので、開発者は、マイグレーション後の２以上のプログラム群のうちどのプログラム単位をテストすればよいかが容易にわかる。
【０１５５】
また、上記開発支援装置１は、取得した１以上の後識別子を他の後識別子とは区別可能な態様で出力することにより、開発者は、マイグレーション後の２以上のプログラム群のプログラム単位の対応に加えて、そのうちどのプログラム単位をテストすればよいかを容易に認知できる。
【０１５６】
また、プログラム単位は、ファイル単位、およびファイル内のルーチン単位であり、開発支援装置１は、ファイル単位およびルーチン単位で、２以上のプログラム群の間の対応を検出し、対応すると判断した２以上のプログラム群のファイル単位およびルーチン単位を比較し、同一の度合いである同一度を取得することにより、開発者は、２以上のプログラム群の間のファイル単位およびルーチン単位の間の対応および同一度を認知することにより、２以上のプログラム群を対象とする開発を効率的に行える。
【０１５７】
また、同一度は、３以上の値を採り得る類似度であることにより、開発者は、２以上のプログラム群の間のプログラム単位の対応および類似度を認知することにより、２以上のプログラム群を対象とする開発を効率的に行える。
【０１５８】
さらに、本実施の形態における処理は、ソフトウェアで実現してもよい。そして、このソフトウェアをソフトウェアダウンロード等により配布してもよい。また、このソフトウェアをＣＤ−ＲＯＭなどの記録媒体に記録して流布してもよい。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における開発支援装置１を実現するソフトウェアは、以下のようなプログラムである。つまり、コンピュータがアクセス可能な記録媒体は、ソフトウェアの稼働先を識別する稼働先識別子に対応付けられた２以上のプログラムを有する２以上のプログラム群が格納されるプログラム群１１１を具備し、このプログラムは、コンピュータを、プログラム群を構成する部分であり、予め決められた単位であるプログラム単位で、前記２以上のプログラム群の間の対応を検出するプログラム単位対応検出部１３１と、前記プログラム単位対応検出部１３１が対応すると判断した２以上のプログラム群のプログラム単位を比較し、同一の度合いである同一度を取得する同一度取得部１３２と、前記プログラム単位対応検出部１３１が検出した対応の結果、および前記同一度取得部１３２が取得した同一度を、前記２以上のプログラム群の間で対比可能な態様で出力する比較結果出力部１４１として機能させるためのプログラムである。
【０１５９】
図１０は、本実施の形態におけるプログラムを実行して、開発支援装置１を実現するコンピュータシステム９００の外観図である。本実施の形態は、コンピュータハードウェアおよびその上で実行されるコンピュータプログラムによって実現され得る。図１０において、コンピュータシステム９００は、ディスクドライブ９０５を含むコンピュータ９０１と、キーボード９０２と、マウス９０３と、ディスプレイ９０４とを備える。なお、キーボード９０２やマウス９０３やディスプレイ９０４をも含むシステム全体をコンピュータと呼んでもよい。
【０１６０】
図１１は、コンピュータシステム９００の内部構成の一例を示す図である。図１１において、コンピュータ９０１は、ディスクドライブ９０５に加えて、ＭＰＵ９１１と、ブートアッププログラム等のプログラムを記憶するためのＲＯＭ９１２と、ＭＰＵ９１１に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するＲＡＭ９１３と、アプリケーションプログラム、システムプログラム、およびデータを記憶するストレージ９１４と、ＭＰＵ９１１、ＲＯＭ９１２等を相互に接続するバス９１５と、外部ネットワークや内部ネットワーク等のネットワークへの接続を提供するネットワークカード９１６と、を備える。ストレージ９１４は、例えば、ハードディスク、ＳＳＤ、フラッシュメモリなどである。
【０１６１】
コンピュータシステム９００に、開発支援装置１の機能を実行させるプログラムは、例えば、ＤＶＤ、ＣＤ−ＲＯＭ等のディスク９２１に記憶されて、ディスクドライブ９０５に挿入され、ストレージ９１４に転送されてもよい。これに代えて、そのプログラムは、ネットワークを介してコンピュータ９０１に送信され、ストレージ９１４に記憶されてもよい。プログラムは、実行の際にＲＡＭ９１３にロードされる。なお、プログラムは、ディスク９２１、またはネットワークから直接、ロードされてもよい。また、ディスク９２１に代えて他の着脱可能な記録媒体（例えば、ＤＶＤやメモリカード等）を介して、プログラムがコンピュータシステム９００に読み込まれてもよい。
【０１６２】
プログラムは、コンピュータの詳細を示す９０１に、開発支援装置１の機能を実行させるオペレーティングシステム（ＯＳ）、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能やモジュールを呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム９００がどのように動作するのかについては周知であり、詳細な説明は省略する。ただし、以上は例示であり、開発支援装置１を実現するコンピュータのハードウェア構成は問わない。
【０１６３】
なお、上記プログラムにおいて、情報を送信する送信ステップや、情報を受信する受信ステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理（ハードウェアでしか行われない処理）は含まれない。
【０１６４】
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【０１６５】
また、上記各実施の形態において、一の装置に存在する２以上の通信手段（受付部１２が有する通信モジュール、出力部１４が有する通信モジュールなど）は、物理的に一の媒体で実現されてもよいことはいうまでもない。
【０１６６】
また、上記各実施の形態において、各処理（各機能）は、単一の装置（システム）によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
【０１６７】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることはいうまでもない。
【産業上の利用可能性】
【０１６８】
以上のように、本発明にかかる開発支援装置等の支援によって、開発者は、２以上のプログラム群を対象とする開発を効率的に行えるという効果を有し、開発支援装置等として有用である。
【符号の説明】
【０１６９】
１  開発支援装置
１１  格納部
１２  受付部
１３  処理部
１４  出力部
１１１  プログラム群格納部
１１２  後プログラム群格納部
１１３  前後対応格納部
１３１  プログラム単位対応検出部
１３２  同一度取得部
１４１  比較結果出力部
【図１】
2018116517.tif 000003
【図２】
2018116517.tif 000004
【図３】
2018116517.tif 000005
【図４】
2018116517.tif 000006
【図５】
2018116517.tif 000007
【図６】
2018116517.tif 000008
【図７】
2018116517.tif 000009
【図８】
2018116517.tif 000010
【図９】
2018116517.tif 000011
【図１０】
2018116517.tif 000012
【図１１】
2018116517.tif 000013
【図１２】
2018116517.tif 000014