(57)【要約】【課題】対応関係が未知であるＡＰＩ対応付け候補の絞込みを自動化する。【解決手段】旧システム及び新システムに類似した参考システムを用いて、旧システムから新システムへの移行を支援するシステム移行支援装置であって、新旧のＡＰＩの値域の類似性を判定する値域類似性判定部、判定の結果、値域の類似性がある場合に、新旧のＡＰＩのＡＰＩ機能名称の類似性を判定する機能名称類似性判定部、判定の結果、ＡＰＩ機能名称の類似性がある場合に、旧システムのＡＰＩ群名称およびＡＰＩ機能名称と新システムのＡＰＩ群名称および第２のＡＰＩ機能名称とを対応付けるＡＰＩ仕様対応付け部を有する。【選択図】図４
2012113536.tif 000002
【特許請求の範囲】
【請求項１】
旧システム及び新システムに類似した参考システムを用いて、前記旧システムから前記新システムへの移行を支援するシステム移行支援装置であって、
前記旧システムの個別ミドルウェアにおける同一機能グループの第１のＡＰＩ集合の識別子である第１のＡＰＩ群名称、前記第１のＡＰＩ集合内の第１のＡＰＩの識別子である第１のＡＰＩ機能名称、および、前記第１のＡＰＩの第１の引数の値域を格納する旧ＡＰＩ情報テーブル、
前記新システムの共通ミドルウェアにおける同一機能グループの第２のＡＰＩ集合の識別子である第２のＡＰＩ群名称、前記第２のＡＰＩ集合内の第２のＡＰＩの識別子である第２のＡＰＩ機能名称、および、前記第２のＡＰＩの第２の引数の値域を格納する新ＡＰＩ情報テーブル、
前記第１の引数の値域と前記第２の引数の値域との類似性を判定する値域類似性判定部、
前記値域類似性判定部による判定の結果、値域の類似性がある場合に、前記第１のＡＰＩ機能名称と前記第２のＡＰＩ機能名称との類似性を判定する機能名称類似性判定部、
前記機能名称類似性判定部による判定の結果、ＡＰＩ機能名称の類似性がある場合に、前記第１のＡＰＩ群名称および前記第１のＡＰＩ機能名称と前記第２のＡＰＩ群名称および前記第２のＡＰＩ機能名称とを対応付けるＡＰＩ仕様対応付け部、並びに、
前記ＡＰＩ仕様対応付け部により対応付けられた前記第１のＡＰＩ群名称および前記第１のＡＰＩ機能名称と前記第２のＡＰＩ群名称および前記第２のＡＰＩ機能名称とをディスプレイに表示する表示部を有することを特徴とするシステム移行支援装置。
【請求項２】
前記旧ＡＰＩ情報テーブルは、さらに前記第１のＡＰＩの業務プログラム中の第１の出現回数を格納し、前記新ＡＰＩ情報テーブルは、さらに前記第２のＡＰＩの前記参考システムの類似業務プログラム中の第２の出現回数を格納し、前記第１の出現回数と前記第２の出現回数との類似性を判定する出現回数類似性判定部をさらに有し、
前記出現回数類似性判定部による判定の結果、出現回数の類似性がある場合に、前記ＡＰＩ仕様対応付け部は、前記第１のＡＰＩ群名称および前記第１のＡＰＩ機能名称と前記第２のＡＰＩ群名称および前記第２のＡＰＩ機能名称とを対応付けることを特徴とする請求項１記載のシステム移行支援装置。
【請求項３】
前記値域類似性判定部、前記機能名称類似性判定部および前記出現回数類似性判定部のいずれか一つによる判定の結果、その類似性がない場合に、前記ＡＰＩ仕様対応付け部は、前記第１のＡＰＩ群名称および前記第１のＡＰＩ機能名称に対応付ける前記第２のＡＰＩ群名称および前記第２のＡＰＩ機能名称を空欄とすることを特徴とする請求項２記載のシステム移行支援装置。
【請求項４】
前記表示部は、所与のＡＰＩの移行標準工数に基づく、前記旧システムの前記第１のＡＰＩを前記新システムの前記第２のＡＰＩへの移行に要する移行工数を前記ディスプレイに表示することを特徴とする請求項３記載のシステム移行支援装置。
【請求項５】
旧システム及び新システムに類似した参考システムを用いて、前記旧システムから前記新システムへの移行を支援するシステム移行支援装置におけるシステム移行支援方法であって、前記システム移行支援装置は、
前記旧システムの個別ミドルウェアにおける同一機能グループの第１のＡＰＩ集合の識別子である第１のＡＰＩ群名称、前記第１のＡＰＩ集合内の第１のＡＰＩの識別子である第１のＡＰＩ機能名称、および、前記第１のＡＰＩの第１の引数の値域を格納する旧ＡＰＩ情報テーブル、及び、前記新システムの共通ミドルウェアにおける同一機能グループの第２のＡＰＩ集合の識別子である第２のＡＰＩ群名称、前記第２のＡＰＩ集合内の第２のＡＰＩの識別子である第２のＡＰＩ機能名称、および、前記第２のＡＰＩの第２の引数の値域を格納する新ＡＰＩ情報テーブルを有し、
前記第１の引数の値域と前記第２の引数の値域との類似性を判定し、
該判定の結果、値域の類似性がある場合に、前記第１のＡＰＩ機能名称と前記第２のＡＰＩ機能名称との類似性を判定し、
該判定の結果、ＡＰＩ機能名称の類似性がある場合に、前記第１のＡＰＩ群名称および前記第１のＡＰＩ機能名称と前記第２のＡＰＩ群名称および前記第２のＡＰＩ機能名称とを対応付け、
前記ＡＰＩ仕様対応付け部により対応付けられた前記第１のＡＰＩ群名称および前記第１のＡＰＩ機能名称と前記第２のＡＰＩ群名称および前記第２のＡＰＩ機能名称とをディスプレイに表示することを特徴とするシステム移行支援方法。
【請求項６】
前記旧ＡＰＩ情報テーブルは、さらに前記第１のＡＰＩの業務プログラム中の第１の出現回数を格納し、前記新ＡＰＩ情報テーブルは、さらに前記第２のＡＰＩの前記参考システムの類似業務プログラム中の第２の出現回数を格納し、前記ＡＰＩ機能名称の類似性がある場合に、前記第１の出現回数と前記第２の出現回数との類似性を判定し、該判定の結果、出現回数の類似性がある場合に、前記ＡＰＩ仕様対応付け部は、前記第１のＡＰＩ群名称および前記第１のＡＰＩ機能名称と前記第２のＡＰＩ群名称および前記第２のＡＰＩ機能名称とを対応付けることを特徴とする請求項５記載のシステム移行支援方法。
【請求項７】
いずれか一つの前記判定の結果、その類似性がない場合に、前記第１のＡＰＩ群名称および前記第１のＡＰＩ機能名称に対応付ける前記第２のＡＰＩ群名称および前記第２のＡＰＩ機能名称を空欄とすることを特徴とする請求項６記載のシステム移行支援方法。
【請求項８】
所与のＡＰＩの移行標準工数に基づく、前記旧システムの前記第１のＡＰＩを前記新システムの前記第２のＡＰＩへの移行に要する移行工数を前記ディスプレイに表示することを特徴とする請求項７記載のシステム移行支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システム移行に伴うＡＰＩ(Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ)変換設計作業の支援技術に関する
【背景技術】
【０００２】
近年、金融機関等の基幹計算機システムにおいて、メインフレームやサーバの老朽化のため、ハードウェア・ＯＳ・ミドルウェア等のシステム基盤を交換するシステム移行が注目されている。
【０００３】
このシステム移行を低コストに実現する手段の一つとして、 ストレートコンバージョンと呼ばれるシステム移行手段がある。ストレートコンバージョンでは、従来より実行されてきた業務処理のソースプログラム（以降、「業務プログラム」と略す）を変更することなく、移行先のシステム基盤に合わせて再コンパイルし、移行先のシステムで実行させる。このように業務プログラムを変更せずシステム基盤のみを移行することで、顧客の業務運用形態の変更や業務プログラムの再設計が不要となり、業務プログラムを再開発するケースに比べてシステム移行のコストが削減できる。
【０００４】
しかし、近年の顧客のＩＴ投資規模の縮小から、さらに限られた予算でのシステム移行が余儀なくされてきている。また、案件ごとに旧個別ミドルウェアの様相が異なるため、設計・開発・テストが必要であり開発費の低減がままならない。さらに、案件ごとに異なる様相を示すため、受注前の短期間の企画・提案フェーズの中で精度の高い見積りを行うことが困難であり、顧客意向の予算上限から逆算した予算で受注すると、 赤字になるリスクが大きい。これらのことから、システム移行事業における利益確保が困難となってきている。
【０００５】
したがって、システム移行における顧客の予算規模が限られた中で必要な開発投資を顧客に求め、利益確保・赤字リスク低減を実現するためには、工期・工数の削減手段、および、精度の高い見積り手段の確立が必要である。 さらに、見積りにおいては、受注前の短期間の企画・提案フェーズの中で、精度の高い見積りを行うための技術が必要である。
このシステム移行の分野における従来技術としては、プログラム移行時に変換対象となるソースプログラムを分析して変換率を向上するプログラムパターン分析装置が開示されている（特許文献１）。また、異機種間のミドルウェアのＡＰＩを自動的に対応付けるプログラム連動方法が開示されている（特許文献２）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第４１１５５１１号
【特許文献２】特表２０１０−５１７１３４
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ここで、ストレートコンバージョンについて以下に定義する。図１に例示するように、移行対象の旧システムの業務プログラムを変更することなく新システムの新共通ミドルウェア上で動作させるための新個別ミドルウェアを導入するシステム移行の手法をストレートコンバージョンとする。
【０００８】
こうしたストレートコンバージョンによるシステム移行では、新個別ミドルウェアの導入に必要な設計・開発・テストが作業の大部分を占める。その新個別ミドルウェアの設計においては、業務プログラムが使用している旧個別ミドルウェアの機能と、新共通ミドルウェアが提供する機能との対応付け、すなわち対応関係が未知な各ミドルウェアのＡＰＩの対応付けがシステム移行作業の中心となる。そのため、システム移行のコスト削減には、対応関係が未知のＡＰＩの対応付けを省力化することが有効である。
【０００９】
また、新個別ミドルウェアの設計においては、同等機能がある場合はＡＰＩの変換のみを定義すればよいが、一方で同等機能が無い場合は同等機能の再設計が必要となり、変換のみの場合に比べて設計・開発・テストに要する工数が大きく異なる。すなわち、変換可能なＡＰＩの数と、再設計が必要なＡＰＩの数により、移行工数の見通しが立てられる。そのため、システム移行の工数の短期間の見積りには、ＡＰＩの対応付けの結果として明らかになる、変換可能なＡＰＩであるか、再設計が必要なＡＰＩであるかの分類結果を利用することが有効である。
【００１０】
これに対して、特許文献１では、プログラム変換を効率化する技術が開示されているが、業務プログラムを変更しないためのミドルウェアの開発効率を向上する技術は開示されていない。また、特許文献２では、対応付けが未知なＡＰＩ同士については自動的に対応付ける技術は開示されていない。これらの従来技術では、プログラム変換や既知のミドル対応付けの自動化は可能であるが、ストレートコンバージョンにおけるシステム移行の主要部分である新個別ミドルウェアの設計・開発・テストについての、工期・工数の削減、及び見積り精度の向上の実現が困難である。
【００１１】
そこで本発明では、業務プログラムを変更しないための新個別ミドルウェアの導入における、対応付けが未知なＡＰＩ同士の対応付け作業を支援する。。
【課題を解決するための手段】
【００１２】
開示されるシステム移行支援装置は、旧システム及び新システムに類似した参考システムを用いて、旧システムから新システムへの移行を支援する。システム移行支援装置は、旧ＡＰＩ情報テーブルと新ＡＰＩ情報テーブルとを有する。旧ＡＰＩ情報テーブルは、旧システムの個別ミドルウェアにおける同一機能グループの旧ＡＰＩ集合の識別子である旧ＡＰＩ群名称、旧ＡＰＩ集合内の旧ＡＰＩの識別子である旧ＡＰＩ機能名称、および、旧ＡＰＩの旧引数の値域を格納する。新ＡＰＩ情報テーブルは、新システムの共通ミドルウェアにおける同一機能グループの新ＡＰＩ集合の識別子である新ＡＰＩ群名称、新ＡＰＩ集合内の新ＡＰＩの識別子である新ＡＰＩ機能名称、新ＡＰＩの新引数の値域、および、新ＡＰＩの前記参考システムの類似業務プログラム中の新出現回数を格納する。
【００１３】
システム移行支援装置は、旧引数の値域と新引数の値域との類似性を判定する値域類似性判定部、値域類似性判定部による判定の結果、値域の類似性がある場合に、新ＡＰＩ機能名称と旧ＡＰＩ機能名称との類似性を判定する機能名称類似性判定部、機能名称類似性判定部による判定の結果、ＡＰＩ機能名称の類似性がある場合に、旧出現回数と新出現回数との類似性を判定する出現回数類似性判定部、出現回数類似性判定部による判定の結果、出現回数の類似性がある場合に、新ＡＰＩ群名称および新ＡＰＩ機能名称と旧ＡＰＩ群名称および旧ＡＰＩ機能名称とを対応付けるＡＰＩ仕様対応付け部、並びに、ＡＰＩ仕様対応付け部により対応付けられた新ＡＰＩ群名称および新ＡＰＩ機能名称と旧ＡＰＩ群名称および旧ＡＰＩ機能名称とをディスプレイに表示する表示部を有する。
【００１４】
システム移行支援装置の望ましい他の態様は、旧ＡＰＩ情報テーブルは、さらに旧ＡＰＩの業務プログラム中の旧出現回数を格納し、新ＡＰＩ情報テーブルは、さらに新ＡＰＩの参考システムの類似業務プログラム中の新出現回数を格納し、旧出現回数と新出現回数との類似性を判定する出現回数類似性判定部をさらに有し、出現回数類似性判定部による判定の結果、出現回数の類似性がある場合に、ＡＰＩ仕様対応付け部は、旧ＡＰＩ群名称および旧ＡＰＩ機能名称と新ＡＰＩ群名称および新ＡＰＩ機能名称とを対応付ける。
【００１５】
システム移行支援装置の望ましいさらに他の態様は、値域類似性判定部、機能名称類似性判定部および出現回数類似性判定部のいずれか一つによる判定の結果、その類似性がない場合に、ＡＰＩ仕様対応付け部は、旧ＡＰＩ群名称および旧ＡＰＩ機能名称に対応付ける新ＡＰＩ群名称および新ＡＰＩ機能名称を空欄とする。
【００１６】
システム移行支援装置の望ましいさらに他の態様は、表示部は、所与のＡＰＩの移行標準工数に基づく、旧システムの旧ＡＰＩを新システムの新ＡＰＩへの移行に要する移行工数をディスプレイに表示する。
【発明の効果】
【００１７】
本発明の上記態様によれば、対応関係が未知であるＡＰＩ対応付け候補の絞込みを自動化するので、システム移行のためのＡＰＩ対応付け作業を効率化できる。
【図面の簡単な説明】
【００１８】
【図１】ストレートコンバージョンを説明する図である。
【図２】ＡＰＩ設計作業支援装置の構成例を示した図である。
【図３Ａ】旧ＡＰＩ情報テーブルのデータ構造例を示す図である。
【図３Ｂ】新ＡＰＩ情報テーブルのデータ構造例を示す図である。
【図３Ｃ】ＡＰＩ変換候補テーブルのデータ構造例を示す図である。
【図４】ＡＰＩ仕様対応付け処理のフローチャートである。
【図５】代表値類似性判定処理のフローチャートである。
【図６】ＡＰＩ機能名類似性判定処理のフローチャートである。
【図７】ＡＰＩ出現回数類似性判定処理のフローチャートである。
【図８】ＡＰＩ対応候補表示画面の表示例を示す図である。
【図９Ａ】ＡＰＩ変換情報テーブルのデータ構造例を示す図である。
【図９Ｂ】ＡＰＩ再設計情報テーブルのデータ構造例を示す図である。
【図１０Ａ】ＡＰＩ移行標準工数テーブルのデータ構造例を示す図である。
【図１０Ｂ】ＡＰＩ移行総工数概算テーブルのデータ構造例を示す図である。
【図１１】ＡＰＩ移行の総工数概算値表示画面の表示例を示す図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施形態について図面を用いて説明する。以下の図中、同一の部分には同一の符号を付加する。ただし、本発明が実施形態に制限されることは無く、本発明の思想に合致するあらゆる応用例が本発明に該当する。また、特に限定しない限り、各構成要素は複数でも単数でも構わない。
【００２０】
本実施形態は、旧システムの業務プログラムを変更することなく、新システムの新ＯＳおよび新共通ミドルウェア上に移行する計算機システムに関する。
【００２１】
図１は、ストレートコンバージョンを説明する図であり、本実施形態におけるシステム移行の前提とする旧システム１１０、新システム１２０および参考システム１３０のソフトウェアスタックを示す。旧システム１１０のソフトウェアスタックは、業務プログラムＡ、旧個別ミドルウェア、旧共通ミドルウェア、旧ＯＳから構成される。新システム１２０のソフトウェアスタックは、業務プログラムＡ、新個別ミドルウェアＸ、新共通ミドルウェア、新ＯＳから構成される。参考システム１３０のソフトウェアスタックは、業務プログラムＡと同種の業務を処理する業務プログラムＢ、新個別ミドルウェアＹ、新共通ミドルウェア、新ＯＳから構成される。ここで、参考システム１３０は、旧システム１１０および新システム１２０と同種の業務システムであり、既にシステム移行が完了して稼動しているものとする。
【００２２】
本実施形態は、旧システム１１０から、業務プログラムＡを変更することなく、新システムに移行するストレートコンバージョンを行うシステム移行を前提とする。本システム移行では、業務プログラムＡが利用していた旧個別ミドルウェアのＡＰＩ（以降、「旧個別ミドルＡＰＩ」と略す）を変更することなく、新共通ミドルウェアおよび新ＯＳ上で動作させることが要件である。そのために、業務プログラムＡが使用している旧個別ミドルＡＰＩと、新共通ミドルウェアのＡＰＩ（以降、「新共通ミドルＡＰＩ」と略す）を対応付ける、新個別ミドルウェアＸ（以下「新個別ミドルＸ」と略す）の設計が必要となる。
【００２３】
新個別ミドルウェアＸの設計作業は、「ＡＰＩ変換」あるいは「ＡＰＩ再設計」という二つのタイプに分かれる。「ＡＰＩ変換」とは、旧個別ミドルＡＰＩと同等の機能を持つ新共通ミドルＡＰＩがある場合に、新旧のＡＰＩの変換方式を設計する作業である。
一方「ＡＰＩ再設計」とは、旧個別ミドルＡＰＩと同等の機能を持つ新共通ミドルＡＰＩが無い場合、あるいは同等機能の実現には複数の新共通ミドルＡＰＩを組み合わせる必要がある場合、同等機能の実現方式を設計する作業である。
【００２４】
本実施形態では以降、新個別ミドルＸの設計作業の工期・工数を削減するために「ＡＰＩ変換」あるいは「ＡＰＩ再設計」の作業を支援し、さらに赤字リスクの低減のために新個別ミドルＸの設計・開発・テストに要する総工数の見積り作業を支援する、ＡＰＩ設計作業支援装置について説明する。
【００２５】
本装置は、旧個別ミドルＡＰＩと同等の機能あるいは旧個別ミドルＡＰＩの部分的な機能をもつ新共通ミドルＡＰＩの候補を絞り込み、設計者に提示する。ここで、絞り込みの参考情報のひとつとする、新共通ミドルのＡＰＩの業務プログラムでの出現回数は、参考システム１３０の実績値に基づいた値とする。これにより、設計者のＡＰＩ設計作業の工期・工数の短縮を支援する。
【００２６】
さらに本装置は、ＡＰＩ変換作業のタイプ及び業務プログラム内でのＡＰＩ出現回数に応じてシステム移行における設計・開発・テストの総工数が異なることに着目し、「ＡＰＩ変換」作業と「ＡＰＩ再設計」作業の１ＡＰＩあたりの総工数の標準値にもとづき、各ＡＰＩの業務プログラムＡ中の出現回数を積算することで総工数の概算値を算出し、設計者へ提示する。ここで、１ＡＰＩあたりの総工数の標準値は、参考システム１３０のシステム移行時の実績工数に基づいた値とする。これにより、新個別ミドルＸの総工数見積り作業の精度向上および高速化を支援する。
【００２７】
図２は、ＡＰＩ設計作業支援装置の構成例を示した図である。ＡＰＩ設計作業支援装置は、計算機２０１および計算機２０１で実行または使用する各種プログラム・テーブルからなる。計算機２０１は一般的な計算機であり、マウス２０２、キーボード２０３、ディスプレイ２０４などの入出力装置、ＣＰＵ２０５、メモリ２０７、ディスク２０８、およびこれらを接続する通信線である内部バス２０６によって構成される。
【００２８】
メモリ２０７には、
旧システムおよび新システムの業務プログラムからＡＰＩを抽出してＡＰＩごとの出現回数を算出する際に、ＣＰＵ２０５で実行されるソース使用ＡＰＩ抽出プログラム２１０、
旧システムおよび新システムのミドルＡＰＩ仕様書からＡＰＩの各種情報（引数の型・値域、機能概要、等）を抽出する際にＣＰＵ２０５で実行される仕様書ＡＰＩ情報抽出プログラム２１１、
業務プログラムＡおよび旧個別ミドルウェアのＡＰＩ仕様書（以降、旧個別ミドルＡＰＩ仕様書）から、ソース使用ＡＰＩ抽出プログラム２１０および仕様書ＡＰＩ情報抽出プログラム２１１により抽出した各ＡＰＩ情報が格納される旧ＡＰＩ情報テーブル２１２、
業務プログラムＢおよび新共通ミドルウェアのＡＰＩ仕様書（以降、新共通ミドルＡＰＩ仕様書）から、ソース使用ＡＰＩ抽出プログラム２１０および仕様書ＡＰＩ情報抽出プログラム２１１により抽出した各ＡＰＩ情報が格納される新ＡＰＩ情報テーブル２１３、
旧ＡＰＩ情報テーブル２１２の各ＡＰＩに対して変換候補となる、新ＡＰＩ情報テーブル２１３のＡＰＩ群の情報が格納されるＡＰＩ変換候補テーブル２１４、
旧ＡＰＩ情報テーブル２１２の各ＡＰＩに対して、新ＡＰＩ情報テーブル２１３から変換候補となるＡＰＩを抽出してＡＰＩ変換候補テーブル２１４へ格納する際にＣＰＵ２０５で実行されるＡＰＩ仕様対応付けプログラム２１５、
ＡＰＩ仕様対応付けプログラム２１５等のプログラム実行中に中間処理結果が一時的に格納される一時格納領域２２０、
ＡＰＩ変換候補テーブル２１４の新旧ＡＰＩの変換候補の情報およびユーザによる入力のための選択ボタンをディスプレイ２０４にＧＵＩ表示する際にＣＰＵ２０５で実行されるＡＰＩ対応候補ＧＵＩ表示プログラム２３０、
ＧＵＩ表示においてユーザが「ＡＰＩ変換」と判断した新旧ＡＰＩの対応情報が格納されるＡＰＩ変換情報テーブル２４０、
ＧＵＩ表示においてユーザが「ＡＰＩ再設計」と判断した新旧ＡＰＩの対応情報が格納されるＡＰＩ再設計情報テーブル２４１、
「ＡＰＩ変換」が可能な場合とＡＰＩ変換が不可能であり「ＡＰＩ再設計」が必要な場合の、各ＡＰＩ移行の設計・開発・テストに要する標準工数が格納されるＡＰＩ移行標準工数テーブル２５０、
旧ＡＰＩ情報テーブルのＡＰＩ移行に対応する新個別ミドルウェアＸの設計・開発・テストに要するＡＰＩ移行の総工数の概算値が格納されるＡＰＩ移行総工数概算テーブル２５１
およびＡＰＩ移行総工数概算テーブル２５１から総工数概算値を抽出してＧＵＩ表示する際にＣＰＵ２０５で実行されるＡＰＩ移行総工数概算値ＧＵＩ表示プログラム２５２、
が格納される。
【００２９】
本実施形態では、上記の各テーブルは読み書きの速度が速いメモリ２０７に格納されることとしているが、ディスク２０８に格納されてもよい。また、上記の各プログラムは、あらかじめ、または可搬型記録媒体からの読み込み、または他装置からのネットワーク経由のダウンロードにより、ディスク２０８に格納され、必要に応じてメモリ２０７に転送された後、ＣＰＵ２０５が実行する。
【００３０】
ディスク２０８には、旧システムの業務プログラムＡのソースプログラム２６０、旧個別ミドルウェアのＡＰＩ仕様書ファイル２６１、参考システムの業務プログラムＢのソースプログラム２６２、および新共通ミドルウェアのＡＰＩ仕様書ファイル２６３が格納される。本実施形態では、上記の各ソースプログラム・ファイルはテーブルは読み書きの速度が遅いディスク２０８に格納されることとしているが、メモリ２０７に格納されてもよい。
【００３１】
メモリ２０７に格納される各種テーブルのデータ構造について説明する。
旧ＡＰＩ情報テーブル２１２、新ＡＰＩ情報テーブル２１３、ＡＰＩ変換候補テーブル２１４、ＡＰＩ変換情報テーブル２４０、ＡＰＩ再設計情報テーブル２４１、ＡＰＩ移行標準工数テーブル２５０、およびＡＰＩ移行総工数概算テーブル２５１は配列構造を成し、１つ以上のレコードを格納可能である。ただし、データ構造が配列構造に限定されることはない。
【００３２】
図３Ａは、旧ＡＰＩ情報テーブル２１２のデータ構造例を示す図である。旧ＡＰＩ情報テーブル２１２の各レコードは、旧個別ミドルウェアにおける同一機能グループのＡＰＩ集合の識別子であるＡＰＩ群名称が登録されるエントリ３１１、同一機能グループのＡＰＩ集合内における個々のＡＰＩの識別子であるＡＰＩ機能名称が登録されるエントリ３１２、個々のＡＰＩの値域を持つ引数の種類が登録されるエントリ３１３、エントリ３１３の引数の値域が登録されるエントリ３１４、個々のＡＰＩの業務プログラムＡ中の出現回数が登録されるエントリ３１５、および個々のＡＰＩの機能概要が登録されるエントリ３１６を有する。
【００３３】
例えばレコード３４１は、旧個別ミドルウェアのＡＰＩ群名称３１１が「A」である同一機能グループのＡＰＩ集合の中でＡＰＩ機能名称３１２が「Ｘ」であるＡＰＩにおいて、引数の種類３１３が「時刻」である引数の値域３１４が「0〜86400秒（24時間）」であり、旧システムの業務プログラムＡ中での出現回数３１５が「１００」であり、機能概要３１６が「タイマＡＰＩ」であることを示す。なお、旧ＡＰＩ情報テーブル２１２では、エントリ３１１とエントリ３１２のペアにより、旧個別ミドルウェアの個々のＡＰＩを一意に識別する。また、旧ＡＰＩ情報テーブル２１２において、単一のＡＰＩが複数の値域を持つ引数を含む場合、レコード３４２に示すように、エントリ３１３およびエントリ３１４内でカンマ区切りなど区切り文字を挟んで列挙し、エントリ３１３とエントリ３１４の引数の種類と引数の値域の対応付けは、区切り位置が同じであるものが対応するものとする。また、値域を持つ引数が無いＡＰＩであった場合、引数の種類３１３および引数の値域３１４は空欄とする。
【００３４】
図３Ｂは、新ＡＰＩ情報テーブル２１３のデータ構造例を示す図である。新ＡＰＩ情報テーブル２１３の各レコードは、新共通ミドルウェアにおける同一機能グループのＡＰＩ集合の識別子であるＡＰＩ群名称が登録されるエントリ３２１、同一機能グループのＡＰＩ集合内における個々のＡＰＩの識別子であるＡＰＩ機能名称が登録されるエントリ３２２、個々のＡＰＩの引数の種類が登録されるエントリ３２３、個々の引数の値域が登録されるエントリ３２４、個々のＡＰＩの業務プログラムＡ中の出現回数が登録されるエントリ３２５および、個々のＡＰＩの機能概要が登録されるエントリ３２６を有する。
【００３５】
例えばレコード３５１は、新共通ミドルウェアのＡＰＩ群名称３２１が「Aa」である同一機能グループのＡＰＩ集合の中でＡＰＩ機能名称３２２が「Ｘｘ」であるＡＰＩにおいて、引数の種類３２３が「時刻」である引数の値域３２４が「0〜86400秒（24時間）」であり、参考システムの業務プログラムＢ中での出現回数を代わりに用いた業務プログラムＡ中の出現回数３２５が「８０」であり、機能概要３２６が「タイマＡＰＩ」であることを示す。なお、新ＡＰＩ情報テーブル２１３では、エントリ３２１とエントリ３２２のペアにより、新共通ミドルウェアの個々のＡＰＩを一意に識別する。また、新ＡＰＩ情報テーブル２１３において、単一のＡＰＩが複数の値域を持つ引数を含む場合、レコード３５２に示すように、エントリ３２３およびエントリ３２４内で、カンマ区切りなど区切り文字を挟んで列挙し、エントリ３２３とエントリ３２４の引数の種類と引数の値域の対応付けは、区切り位置が同じであるものが対応するものとする。また、値域を持つ引数が無いＡＰＩであった場合、引数の種類３２３および引数の値域３２４は空欄とする。
【００３６】
図３Ｃは、ＡＰＩ変換候補テーブル２１４のデータ構造例を示す図である。ＡＰＩ変換候補テーブル２１４の各レコードは、旧ＡＰＩ情報テーブル２１２から抽出したＡＰＩ群名称３１１である旧ＡＰＩ群名称が登録されるエントリ３３１、旧ＡＰＩ情報テーブル２１２から抽出したＡＰＩ機能名称３１２である旧ＡＰＩ機能名称が登録されるエントリ３３２、新ＡＰＩ情報テーブル２１３から抽出したＡＰＩ群名称３２１である新ＡＰＩ群名称が登録されるエントリ３３３および新ＡＰＩ情報テーブル２１３から抽出したＡＰＩ機能名称３２２である新ＡＰＩ機能名称が登録されるエントリ３３４を有する。
【００３７】
例えばレコード３６１は、旧個別ミドルウェアにおけるＡＰＩ群名称３３１「A」およびＡＰＩ機能名称３３２「Ｘ」で特定されるＡＰＩに対して、新共通ミドルウェアにおけるＡＰＩ群名称３３３「Aa」およびＡＰＩ機能名称３３４「Ｘｘ」で特定されるＡＰＩが、ＡＰＩ変換の候補であることを示す。また、単一の旧個別ミドルウェアのＡＰＩに対して、複数の新共通ミドルウェアのＡＰＩが変換候補である場合、レコード３６２およびレコード３６３に示すように複数のレコードにてＡＰＩ変換の候補を登録する。また、旧個別ミドルウェアのＡＰＩに対して、変換候補となる新共通ミドルウェアのＡＰＩが無い場合、レコード３６４に示すようにエントリ３３３およびエントリ３３４を空欄とする。
【００３８】
図９Ａは、ＡＰＩ変換情報テーブル２４０のデータ構造例を示す図である。ＡＰＩ変換情報テーブル２４０の各レコードは、旧ＡＰＩ群名称が登録されるエントリ９１１、旧ＡＰＩ機能名称が登録されるエントリ９１２、ＡＰＩ変換対象となる新ＡＰＩ群名称および新ＡＰＩ機能名称が登録されるエントリ９１３および９１４、並びにＡＰＩ変換時の留意点が登録されるエントリ９１５を有する。例えばレコード９３１は、旧個別ミドルウェアにおけるＡＰＩ群名称９１１「Ｂ」およびＡＰＩ機能名称９１２「Ｙ」により特定されるＡＰＩに対して、新共通ミドルウェアにおけるＡＰＩ群名称９１３「Ｂａ」およびＡＰＩ機能名称９１４「Ｙｙ」で特定されるＡＰＩが変換対象であり、ＡＰＩ変換時の留意点９１５が「リターンコード修正」であり、新個別ミドルウェアＸの設計において、ＡＰＩ変換およびＡＰＩ変換時の留意点の記載が設計作業となることを示す。なお、単一の旧個別ミドルウェアのＡＰＩに対して、複数の新共通ミドルウェアのＡＰＩが変換対象である場合、複数のレコードにてＡＰＩ変換対象を登録する。
【００３９】
図９Ｂは、ＡＰＩ再設計情報テーブル２４１のデータ構造例を示す図である。ＡＰＩ再設計情報テーブル２４１の各レコードは、旧ＡＰＩ群名称が登録されるエントリ９２１および旧ＡＰＩ機能名称が登録されるエントリ９２２を有する。例えばレコード９４１は、旧個別ミドルウェアにおけるＡＰＩ群名称９２１「Ｃ」およびＡＰＩ機能名称９２２「Ｚ」により特定されるＡＰＩに対して、新共通ミドルウェアにおけるＡＰＩ変換対象となるＡＰＩが存在せず、新個別ミドルウェアＸの設計においてＡＰＩの再設計作業がとなることを示す。
【００４０】
図１０Ａは、ＡＰＩ移行標準工数テーブル２５０のデータ構造例を示す図である。ＡＰＩ移行標準工数テーブル２５０の各レコードは、ＡＰＩ移行作業のタイプが登録されるエントリ１０１１、参考システム１３０のＡＰＩ移行実績に基づく標準設計工数、標準開発工数および標準テスト工数が登録されるエントリ１０１２、エントリ１０１３およびエントリ１０１４を有する。各工数は、たとえば、１ＡＰＩあたりの人月数または基準化した値である。レコード１０３１は、ＡＰＩ移行タイプ１０１１が「ＡＰＩ変換」である場合、１ＡＰＩあたりの設計工数１０１２および開発工数１０１３は「０」であり、１ＡＰＩの業務プログラム中の出現回数１回あたりのテスト工数１０１４が「１」であることを示す。また、レコード１０３２は、ＡＰＩ移行タイプ１０１１が「ＡＰＩ再設計」であった場合、１ＡＰＩあたりの設計工数１０１２および開発工数１０１３が各々「５」であり、１ＡＰＩの業務プログラム中の出現回数１回あたりのテスト工数１０１４が「１０」であることを示す。
【００４１】
図１０Ｂは、ＡＰＩ移行総工数概算テーブル２５１のデータ構造例を示す図である。ＡＰＩ移行総工数概算テーブル２５１の各レコードは、旧ＡＰＩ名称が登録されるエントリ１０２１、旧ＡＰＩ機能名が登録されるエントリ１０２２、業務プログラムＡ内の旧ＡＰＩ出現回数が登録されるエントリ１０２３、ＡＰＩ移行作業のタイプが登録されるエントリ１０２４、設計工数が登録されるエントリ１０２５、開発工数が登録されるエントリ１０２６、１ＡＰＩの出現回数１回あたりのテスト工数に旧ＡＰＩ出現回数１０２３を積算したテスト工数が登録されるエントリ１０２７、およびエントリ１０２５〜１０２７の工数を合計した旧ＡＰＩの所要工数が登録されるエントリ１０２８を有する。
【００４２】
例えばレコード１０４１は、旧個別ミドルウェアの旧ＡＰＩ群名称１０２１「Ａ」および旧ＡＰＩ機能名称１０２２「Ｘ」により特定されるＡＰＩについて、業務プログラムＡ内の出現回数１０２３が「１００」であり、ＡＰＩ移行作業タイプ１０２４が「ＡＰＩ変換」であるため設計工数１０２５および開発工数１０２６が「０」であり、テスト工数１０２７がＡＰＩ移行標準工数テーブル２５０のレコード１０３１のエントリ１０１４における標準工数「１」に当該出現回数１０２３「１００」を積算した「１００」となり、これらの工数を合計した旧ＡＰＩの所要移行工数１０２８が「１００」であることを示す。
【００４３】
図４は、ＡＰＩ仕様対応付け処理の動作手順を示すフローチャートである。本処理は、ＣＰＵ２０５でＡＰＩ仕様対応付けプログラム２１５が実行されることによって動作する。最初に、旧ＡＰＩ情報テーブル２１２および新ＡＰＩ情報テーブル２１３を各々「ＡＰＩ群名称」３１１、３２１をキーとしてソートする（Ｓ４０１）。これにより、同一機能グループのＡＰＩ集合のレコードをまとめ、以降の処理におけるレコード検索の処理量を軽減する。次に、整数型の変数ＭおよびＭｍａｘを定義し、１をＭの初期値として代入し、さらに旧ＡＰＩ情報テーブル２１２の「ＡＰＩ群名称」３１１の種類の数を数え上げ、Ｍｍａｘの値として代入する（Ｓ４０２）。これにより、同一機能グループのＡＰＩ集合の数を把握し、以下の繰り返し処理の終了条件の判定に使用する。
【００４４】
旧ＡＰＩ情報テーブル２１２からＭ種類目のＡＰＩ群名称３１１を持つ各レコード（以降、旧ＡＰＩ群（Ｍ）と略す）が含む「引数の値域３１４」を全て抽出し、代表値群（Ｍ）として、一時格納領域２２０に格納する（Ｓ４０３）。新ＡＰＩ情報テーブル２１３から、代表値群（Ｍ）に類似する「引数の値域３２４」をもつレコードを抽出し、そのレコードが含むＡＰＩ群名称３２１を全て抽出して類似新ＡＰＩ群（Ｍ）として、一時格納領域２２０に格納する。この処理の詳細は代表値類似性判定処理（図５）に説明する（Ｓ４０４）。
【００４５】
整数型の変数ＮおよびＮｍａｘを定義し、１をＮの初期値として代入し、さらに旧ＡＰＩ群（Ｍ）が含むレコード数をＮｍａｘとして代入する（Ｓ４０５）これにより、同一のＡＰＩ群名称３１１を持つレコードの数を把握し、以下の繰り返し処理の終了条件の判定に使用する。
【００４６】
類似新ＡＰＩ群（Ｍ）の要素である各ＡＰＩ群名称３２１をもつ各レコードから、旧ＡＰＩ群（Ｍ）のＮ番目のレコード（以降、旧ＡＰＩ（Ｍ，Ｎ）と略す）の「ＡＰＩ機能名称３１２」と類似する「ＡＰＩ機能名称３２２」をもつレコードを全て抽出し、類似新ＡＰＩ（Ｍ，Ｎ）として、一時格納領域２２０に格納する。この処理の詳細は、ＡＰＩ機能名称類似性判定処理（図６）に説明する（Ｓ４０６）。これにより、旧ＡＰＩ群（Ｍ）のＮ番目のレコードに対して、変換候補となる新ＡＰＩ情報テーブル２１３のレコードを絞り込む。
【００４７】
類似新ＡＰＩ（Ｍ、Ｎ）の要素レコードを、出現回数３２５が旧ＡＰＩ（Ｍ、Ｎ）の出現回数３１５と類似する順にソートする。この処理の詳細は、出現回数類似性判定処理（図７）に説明する（Ｓ４０７）。
【００４８】
旧ＡＰＩ（Ｍ,Ｎ）の「ＡＰＩ群名称３１１」および「ＡＰＩ機能名称３１２」と、類似新ＡＰＩ（Ｍ,Ｎ）の各要素レコードの「ＡＰＩ群名称３２１」および「ＡＰＩ機能名称３２２」とのペアからなるレコードを、ＡＰＩ変換候補テーブル２１４に追加する。詳細には、エントリ３３１に旧ＡＰＩ（Ｍ,Ｎ）の「ＡＰＩ群名称３１１」を、エントリ３３２に旧ＡＰＩ（Ｍ,Ｎ）の「ＡＰＩ機能名称３１２」を、エントリ３３３に類似新ＡＰＩ（Ｍ,Ｎ）の各要素レコードの「ＡＰＩ群名称３２１」を、エントリ３３４に類似新ＡＰＩ（Ｍ,Ｎ）の各要素レコードの「ＡＰＩ機能名称３２２」を登録する。この追加レコードの数は、類似新ＡＰＩ（Ｍ,Ｎ）の要素レコード数と同数となる。なお、旧ＡＰＩ（Ｍ,Ｎ）に対して、類似新ＡＰＩ（Ｍ、Ｎ）の要素レコードが無い場合は、レコード３６４に例示するように、エントリ３３３およびエントリ３３４を空欄としたレコードを追加する（Ｓ４０８）。
【００４９】
変数Ｎに１を加算した上で（Ｓ４０９）、ＮがＮｍａｘを超えたか否かにより、処理を分岐する（Ｓ４１０）。ＮがＮｍａｘを超えていない場合、旧ＡＰＩ群（Ｍ）の要素レコードにおいてＡＰＩ変換候補の対応付けが未実行のレコードが残っていることを示すため、Ｓ４０６へ戻り、Ｓ４０６〜Ｓ４０９の処理を繰り返す。一方、ＮがＮｍａｘを超えた場合、既に旧ＡＰＩ群（Ｍ）の全ての要素レコードに対して、ＡＰＩ変換候補の対応付けが終了したことを示すため、次のステップ（Ｓ４１１）へ進む。
【００５０】
変数Ｍに１を加算した上で（Ｓ４１１）、ＭがＭｍａｘを超えたか否かにより、処理を分岐する（Ｓ４１２）。ＭがＭｍａｘを超えていない場合、旧ＡＰＩ情報テーブル２１２のレコードが含むＡＰＩ群名称３１１の種類において、ＡＰＩ変換候補の対応付け（Ｓ４０３〜Ｓ４１０）が未実行のＡＰＩ群名称の種類が残っていることを示すため、Ｓ４０３へ戻り、Ｓ４０３〜Ｓ４１０の処理を繰り返す。一方、ＭがＭｍａｘを超えた場合、全てのＡＰＩ群名称３１１の種類、すなわち旧ＡＰＩ情報テーブル２１２の全レコードに対してＡＰＩ変換候補の対応付け処理が完了したことを示すため、本処理を終了する。
【００５１】
図５は、代表値類似性判定処理(図４：Ｓ４０４)の動作手順を示すフローチャートである。本処理は、ＣＰＵ２０５でＡＰＩ仕様対応付けプログラム２１５が実行されることによって動作する、ＡＰＩ間の値域の類似性を判定する処理である。最初に、整数型の変数ｉおよびｉｍａｘを定義し、１をｉの初期値として代入し、さらに代表値群（Ｍ）の要素数を数え上げ、ｉｍａｘの値として代入する（Ｓ５０１）。これにより、代表値群（Ｍ）に含まれる値域の数を把握し、以下の繰り返し処理の終了条件の判定に使用する。
【００５２】
代表値群（Ｍ）のｉ番目の要素「引数の値域３１４」を抜き出し、代表値域（Ｍ、ｉ）とする（Ｓ５０２）。
【００５３】
整数型の変数ｊおよびｊｍａｘを定義し、１をｊの初期値として代入し、さらに新ＡＰＩ情報テーブル２１３のレコード数を数え上げ、ｊｍａｘの値として代入する（Ｓ５０４）。これにより、新ＡＰＩ情報テーブル２１３に含まれるレコード数を把握し、以下の繰り返し処理の終了条件の判定に使用する。
【００５４】
新ＡＰＩ情報テーブル２１３のｊ番目のレコードの「引数の値域３２４」を抜き出し、新ＡＰＩ値域（ｊ）とする（Ｓ５０４）。
【００５５】
代表値域（Ｍ、ｉ）の値域の型（整数型、実数型など）に応じた型の変数Ｋ１および変数Ｊ１を定義し、代表値域（Ｍ、ｉ）の下限値をＫ１の値として代入し、代表値域（Ｍ、ｉ）の上限値をＪ１の値として代入する。また、新ＡＰＩ値域（ｊ）の値域の型に応じた型の変数Ｋ２および変数Ｊ２を定義し、新ＡＰＩ値域（ｊ）の下限値をＫ２の値として代入し、新ＡＰＩ値域（ｊ）の上限値をＪ２の値として代入する（Ｓ５０５）。
【００５６】
代表値域（Ｍ、ｉ）と新ＡＰＩ値域（ｊ）を比較し、部分一致しているか否かによって処理を分岐する（Ｓ５０６）。ここで部分一致とは、下限値と上限値で規定される値の範囲の一部が重なっていることを示すものとする。
【００５７】
代表値域（Ｍ、ｉ）の下限値Ｋ１が新ＡＰＩ値域（ｊ）の上限値Ｊ２より大きい、または代表値域（Ｍ、ｉ）の上限値Ｊ１が新ＡＰＩ値域（ｊ）の下限値Ｋ２より小さい場合、値域が重ならないため、部分一致していないと判断し、次のステップ（Ｓ５１０）へ進む。
【００５８】
一方、代表値域（Ｍ、ｉ）の下限値Ｋ１が新ＡＰＩ値域（ｊ）の上限値Ｊ２より小さく、かつ代表値域（Ｍ、ｉ）の上限値Ｊ１が新ＡＰＩ値域（ｊ）の下限値Ｋ２より大きい場合、値域が少なくとも部分的に重なる（部分一致する）ため、次の共通範囲および誤差範囲の算出ステップへ進む。共通範囲の値を格納する変数Ｃを定義し、Ｋ１とＫ２の中でより大きい値（ｍａｘ（Ｋ１、Ｋ２）)からＪ１とＪ２の中でより小さい値（ｍｉｎ（Ｊ１、Ｊ２））を差し引いた値の絶対値を共通範囲Ｃに代入する。また誤差範囲の値を格納する変数Ｇを定義し、Ｋ１とＫ２の差分の絶対値とＪ１とＪ２の差分の絶対値を加算した値を誤差範囲Ｇに代入する（Ｓ５０７）。これにより、共通範囲と誤差範囲の割合を算出可能とする。誤差が予め定められた範囲（Ｐ％以内）であるか否かによって、処理を分岐する（Ｓ５０８）。誤差の割合(%)を算出する計算（１００×Ｇ／（Ｇ＋Ｃ））の結果が予め定められた範囲Ｐ以下である場合、類似新ＡＰＩ群（Ｍ）に、新ＡＰＩ情報テーブル２１３のｊ番目のレコードの「ＡＰＩ群名称３１１」を追加する（Ｓ５０９）。また誤差の割合(%)を算出する計算（１００×Ｇ／（Ｇ＋Ｃ））の結果がＰより大きい場合、誤差が予め定められた範囲内でないと判断し、次のステップ（Ｓ５１０）へ進む。
【００５９】
このような、値域を代表値として類似性を判定するステップにより、旧個別ミドルウェアと新共通ミドルウェアのＡＰＩ群名称３１１、３２１のネーミングルール等の表現形式が異なる場合でも、値域３１４、３２４は比較可能であるため、ＡＰＩの変換候補を絞り込むことができる。また、Ｓ５０６で部分一致しないことが判明した場合、Ｓ５０７及びＳ５０８の計算及び比較は行わないため、不要な計算処理を削減できる。
【００６０】
変数ｊに１を加算した上で（Ｓ５１０）、ｊがｊｍａｘを超えたか否かにより、処理を分岐する（Ｓ５１１）。ｊがｊｍａｘを超えていない場合、新ＡＰＩ情報テーブル２１３のレコードの中で代表値域（Ｍ、ｉ）との比較を実施していないレコードが残っていることを示すため、Ｓ５０４へ戻り、Ｓ５０４〜Ｓ５１０の処理を繰り返す。一方、ｊがｊｍａｘを超えた場合、新ＡＰＩ情報テーブル２１３の全レコードに対して、代表値域（Ｍ、ｉ）との比較が完了したことを示すため、次のステップ（Ｓ５１２）へ進む。
【００６１】
変数ｉに１を加算した上で（Ｓ５１２）、ｉがｉｍａｘを超えたか否かにより、処理を分岐する（Ｓ５１３）。ｉがｉｍａｘを超えていない場合、代表値群（Ｍ）の要素の中で新ＡＰＩ情報テーブル２１３の各レコードの値域３２４との比較を実施していない要素が残っていることを示すため、Ｓ５０２へ戻り、Ｓ５０２〜Ｓ５１２の処理を繰り返す。一方、ｉがｉｍａｘを超えた場合、代表値群（Ｍ）の全ての要素の値域３１４について、新ＡＰＩ情報テーブル２１３の全レコードの値域３２４との比較が完了したことを示すため、本処理を終了する。
【００６２】
図６は、ＡＰＩ機能名類似性判定処理(図４：Ｓ４０６)の動作手順を示すフローチャートである。本処理は、ＣＰＵ２０５でＡＰＩ仕様対応付けプログラム２１５が実行されることによって動作する、ＡＰＩ間の機能名の類似性を判定する処理である。最初に、新ＡＰＩ情報テーブル２１２から、類似新ＡＰＩ群（Ｍ）が含む「ＡＰＩ群名称３２１」を持つレコードを全て抽出し、新ＡＰＩ候補群（Ｍ）として、一時格納領域２２０に格納する（Ｓ６０１）。整数型の変数ｉおよびｉｍａｘを定義し、１をｉの初期値として代入し、さらに新ＡＰＩ候補群（Ｍ）のレコード数を数え上げ、ｉｍａｘの値として代入する（Ｓ６０２）。これにより、新ＡＰＩ候補群（Ｍ）に含まれるレコード数を把握し、以下の繰り返し処理の終了条件の判定に使用する。
【００６３】
新ＡＰＩ候補群（Ｍ）のｉ番目のレコードを抜き出し、新ＡＰＩ候補（Ｍ、ｉ）として、一時格納領域２２０へ格納する（Ｓ６０３）。次に、旧ＡＰＩ（Ｍ，Ｎ）の「ＡＰＩ機能名称３１２」と、新ＡＰＩ候補（Ｍ、ｉ）の「ＡＰＩ機能名称３２２」とを比較した結果、完全一致、部分一致、または類語辞書における同義語として一致するか否かによって処理を分岐する（Ｓ６０４）。旧ＡＰＩ（Ｍ，Ｎ）と新ＡＰＩ候補（Ｍ、ｉ）との「ＡＰＩ機能名称」が完全一致、部分一致、または類語辞書における同義語として一致した場合、新ＡＰＩ候補（Ｍ、ｉ）を、一時格納領域２２０上の類似新ＡＰＩ（Ｍ、Ｎ）テーブルに追加する。一方、両者の「ＡＰＩ機能名称」が完全一致せず、部分一致せず、且つ類語辞書における同義語として一致しなかった場合、次のステップ（Ｓ６０５）へ進む。
【００６４】
旧ＡＰＩ（Ｍ，Ｎ）と新ＡＰＩ候補（Ｍ、ｉ）の「ＡＰＩ機能名称」について、それぞれ予め定められた部分略号である場合、両者の部分略号の定義の名称を比較した結果、完全一致、部分一致、または類語辞書における同義語として一致するか否かによって処理を分岐する（Ｓ６０５）。両者の部分略号の定義の名称が完全一致、部分一致、または類語辞書における同義語として一致した場合、新ＡＰＩ候補（Ｍ、ｉ）を一時格納領域２２０上の類似新ＡＰＩ（Ｍ、Ｎ）テーブルに追加する。一方、両者の部分略号の定義の名称が完全一致せず、部分一致せず、かつ類語辞書における同義語としても一致しなかった場合、次のステップ（Ｓ６０７）へ進む。このように、値域の類似性で絞り込んだ新ＡＰＩ情報テーブル２１２のレコードを対象として、ＡＰＩ機能名称をキーとした文字列比較により、ＡＰＩ変換候補をより少数に絞り込むことができる。
【００６５】
変数ｉに１を加算した上で（Ｓ６０７）、ｉがｉｍａｘを超えたか否かにより、処理を分岐する（Ｓ６０８）。ｉがｉｍａｘを超えていない場合、新ＡＰＩ候補群（Ｍ）の要素の中で旧ＡＰＩ（Ｍ、Ｎ）との「ＡＰＩ機能名称」の比較を実施していない要素が残っていることを示すため、Ｓ６０３へ戻り、Ｓ６０３〜Ｓ６０７の処理を繰り返す。一方、ｉがｉｍａｘを超えた場合、新ＡＰＩ候補群（Ｍ）の要素の全てについて、旧ＡＰＩ（Ｍ，Ｎ）の変換候補となるか否か比較が完了したことを示すため、本処理を終了する。
【００６６】
図７は、ＡＰＩ出現回数類似性判定処理(図４：Ｓ４０７)の動作手順を示すフローチャートである。本処理は、ＣＰＵ２０５でＡＰＩ仕様対応付けプログラム２１５が実行されることによって動作する、ＡＰＩ間の出現回数の類似性を判定する処理である。最初に、整数型の変数Ｘを定義し、旧ＡＰＩ（Ｍ、Ｎ）の「出現回数３１５」を抽出し、Ｘの値として代入する（Ｓ７０１）。整数型の変数ｉおよびｉｍａｘを定義し、１をｉの初期値として代入し、さらに類似新ＡＰＩ（Ｍ、Ｎ）テーブルのレコード数を数え上げ、ｉｍａｘの値として代入する（Ｓ７０２）。整数型の変数Ｙを定義し、類似新ＡＰＩ（Ｍ，Ｎテーブルの）ｉ番目のレコードの「出現回数３２５」をＹの値として代入する（Ｓ７０３）。「出現回数の差分」を登録するエントリを類似新ＡＰＩ（Ｍ、Ｎ）テーブルのｉ番目のレコードに追加し、ＸからＹを減算した値の絶対値を登録する（Ｓ７０４）。変数ｉに１を加算した上で（Ｓ７０５）、ｉがｉｍａｘを超えたか否かにより、処理を分岐する（Ｓ７０６）。ｉがｉｍａｘを超えていない場合、類似新ＡＰＩ（Ｍ、Ｎ）テーブル内に「出現回数の差分」エントリを追加していないレコードが残っていることを示すため、Ｓ７０３へもどり、Ｓ７０３〜Ｓ７０５の処理を繰り返す。一方、ｉがｉｍａｘを超えた場合、類似新ＡＰＩ（Ｍ、Ｎ）テーブル内の全てのレコードに「出現回数の差分」エントリの値が追加されたことを示すため、次のステップ（Ｓ７０７）へ進む。類似新ＡＰＩ（Ｍ、Ｎ）テーブルを「出現回数の差分」エントリをキーとして降順にソートし（Ｓ７０７）、本処理を終了する。この処理により、実際の業務プログラムＡ中での出現回数の傾向が類似した順にＡＰＩ変換候補を並べることができ、ＡＰＩ変換候補が多い場合に設計者の判断の精度と速さの向上を図ることができる。
【００６７】
本実施形態で用いられるグラフィカルユーザインタフェース（以下「ＧＵＩ」という）について説明する。これらのＧＵＩは、ＣＰＵ２０５がＡＰＩ対応候補ＧＵＩ表示御プログラム２３０またはＡＰＩ移行総工数概算値ＧＵＩ表示プログラム２５２を実行することによってディスプレイ２０４に表示される。システム管理者等は、キーボード２０３およびマウス２０２を用いて、表示されたＧＵＩ上で各パラメータを設定する。なお、ディスプレイ２０４、キーボード２０３およびマウス２０２は、計算機２０１とは別の計算機が有していてもよい。また、ディスプレイ２０４は、ＧＵＩの代わりに、そのＧＵＩと同等の機能を有するコマンドラインインタフェースを備えてもよい。
【００６８】
図８は、設計者等がＡＰＩ対応候補の選択およびＡＰＩ変換時の留意点を入力するために使用する、ＡＰＩ対応候補表示画面８０１の表示例を示す図である。ＡＰＩ対応候補表示画面８０１は、旧ＡＰＩ情報テーブル２１２の中の１つのレコードの情報を表示する領域８０２、このレコードのＡＰＩ変換候補である新ＡＰＩ情報テーブル２１３のレコードの情報および設計者等がＡＰＩ変換候補を選択しＡＰＩ変換時の留意事項を記載する領域が表示される領域８０３、領域８０３で指定された情報をＡＰＩ変換情報テーブル２４０あるいはＡＰＩ再設計情報テーブル２４１に登録する際に指定されるボタン８０４および登録を取り消す際に指定されるボタン８０５を有する。
【００６９】
図１１は、設計者や見積り担当者等がＡＰＩ移行総工数の概算値を確認するために使用する、ＡＰＩ移行総工数概算値表示画面１１０１の表示例を示す図である。ＡＰＩ移行総工数概算値表示画面１１０１は、ＡＰＩ移行総工数概算テーブル２５１の情報および総工数の概算値を表示する領域１１０２、および画面表示を終了する際に指定されるボタン１１０３を有する。
【００７０】
本実施形態によれば、対応関係が未知であるＡＰＩ対応付け候補の絞込みを自動化するので、システム移行のためのＡＰＩ対応付け作業を効率化し、工期・工数の低減を図ることができる。
【００７１】
また、ＡＰＩ対応付けの可否に基づき、「変換」作業項目数と「再設計」作業項目数にそれぞれの標準工数をかけたＡＰＩ移行に要する総工数の概算値を自動的に算出するので、移行作業工数の見積り精度を向上し、かつ見積もりの高速化を図ることができる。
【符号の説明】
【００７２】
１１０：旧システム、１２０：新システム、１３０：参考システム、２０１：計算機、２０２：マウス、２０３：キーボード、２０４：ディスプレイ、２０５：ＣＰＵ、２０６：内部バス、２０７：メモリ、２０８：ディスク。
【図１】
2012113536.tif 000003
【図２】
2012113536.tif 000004
【図３Ａ】
2012113536.tif 000005
【図３Ｂ】
2012113536.tif 000006
【図３Ｃ】
2012113536.tif 000007
【図４】
2012113536.tif 000008
【図５】
2012113536.tif 000009
【図６】
2012113536.tif 000010
【図７】
2012113536.tif 000011
【図８】
2012113536.tif 000012
【図９Ａ】
2012113536.tif 000013
【図９Ｂ】
2012113536.tif 000014
【図１０Ａ】
2012113536.tif 000015
【図１０Ｂ】
2012113536.tif 000016
【図１１】
2012113536.tif 000017