(57)【特許請求の範囲】
【請求項１】
非オブジェクト指向のアプリケーションをオブジェクト指向のプラットフォーム（１００）へ移行させるための方法であって、前記方法は：
コンピュータ（１１００）によって、
前記非オブジェクト指向のアプリケーションを受信すること；
前記非オブジェクト指向のアプリケーションを前記非オブジェクト指向のアプリケーションの要素にパースすること；
前記要素の設計構造マトリックス（ＤＳＭ）表現（１１０）を生成すること；
前記ＤＳＭ表現（１１０）に基づいて、最終オブジェクトモデル（１２６）を生成すること；及び
前記最終オブジェクトモデル（１２６）をオブジェクト指向の開発環境のコードスケルトン表現（１２８）にマッピングすることを含み、
前記ＤＳＭ表現（１１０）に基づいて、前記最終オブジェクトモデル（１２６）を生成することは：
前記ＤＳＭ表現（１１０）上で構成要素ベースの分割を実行することによって、前記ＤＳＭ表現（１１０）の中の複数の区分を識別すること；
前記ＤＳＭ表現（１１０）上でプロバイダー近接クラスタリングを実行することによって、前記ＤＳＭ表現（１１０）の中の複数のクラスタを識別すること；
前記複数の区分及び前記複数のクラスタに基づいて、目標システムオブジェクトモデルを生成すること；
前記複数のクラスタの群を統合することによって、前記目標システムオブジェクトモデルの中の複数のパッケージを識別すること；及び
前記目標システムオブジェクトモデルの中で識別された前記複数のパッケージに基づいて、前記最終オブジェクトモデル（１２６）を生成することを含む、方法。
【請求項２】
前記非オブジェクト指向のアプリケーションを受信することは、ＦＯＲＴＲＡＮアプリケーション（１１２）を受信することを含む、請求項１に記載の方法。
【請求項３】
前記非オブジェクト指向のアプリケーションを要素にパースすることは：
前記ＦＯＲＴＲＡＮアプリケーション（１１２）を、ＦＯＲＴＲＡＮモジュール、ソースファイル、サブルーチン、機能、共通ブロック、及び変数のうちの少なくとも１つにパースすることを含む、請求項２に記載の方法。
【請求項４】
前記要素の前記ＤＳＭ表現（１１０）を生成することは：
前記要素の順序に対応する複数の行、前記要素の前記順序に対応する複数の列、及び複数のセルを含む前記ＤＳＭ表現（１１０）を生成することを含み、前記複数のセルの各々は、前記複数の行のうちの１つ及び前記複数の列のうちの１つに対応する、請求項１に記載の方法。
【請求項５】
前記複数のセルの中のセルに対応する第１の要素が、前記セルに対応する第２の要素との依存関係を有している場合、前記複数のセルの中の前記セルを強調することをさらに含む、請求項４に記載の方法。
【請求項６】
前記セルに対応する前記第１の要素が前記セルに対応する前記第２の要素との前記依存関係を有している場合、前記複数のセルの中の前記セルを強調することは：
前記第１の要素が前記第２の要素を使用する場合、前記複数のセルの中の前記セルを強調することを含む、請求項５に記載の方法。
【請求項７】
前記セルに対応する前記第１の要素が前記セルに対応する前記第２の要素との前記依存関係を有している場合、前記複数のセルの中の前記セルを強調することは：
前記第１の要素が前記第２の要素を含む場合、前記複数のセルの中の前記セルを強調することを含む、請求項５に記載の方法。
【請求項８】
前記ＤＳＭ表現（１１０）の中の前記複数の区分を識別することは：
前記非オブジェクト指向のアプリケーションのトップレベルのプログラムインターフェースを表す上位層、前記非オブジェクト指向のアプリケーションのプログラム論理を表す中間層、並びに前記ＤＳＭ表現（１１０）の中の前記非オブジェクト指向のアプリケーションの、機能、共通ブロック、及びサブルーチンを表す下位層を識別することを含む、請求項１に記載の方法。
【請求項９】
前記ＤＳＭ表現（１１０）上でプロバイダー近接クラスタリングを実行することによって、前記ＤＳＭ表現（１１０）の中の前記複数のクラスタを識別することは：
同じ列の上の他の要素との依存関係を有する１以上の列の下の前記要素の群をクラスタリングすることを含む、請求項１に記載の方法。
【請求項１０】
非オブジェクト指向のアプリケーションをオブジェクト指向のプラットフォームへ移行させるためのシステムであって、前記システムは：
プロセッサ；
前記プロセッサに通信可能に結合されるメモリ；並びに
前記メモリから前記プロセッサの中で実行されるプログラムモジュールであって、前記プロセッサによって実行される場合に、前記プロセッサに：
ＦＯＲＴＲＡＮアプリケーション（１１２）を受信させ；
前記ＦＯＲＴＲＡＮアプリケーション（１１２）を、ＦＯＲＴＲＡＮモジュール、ソースファイル、サブルーチン、機能、共通ブロック、及び変数を含む要素へパースさせ；
前記要素の設計構造マトリックス（ＤＳＭ）表現（１１０）を生成させ；
前記ＤＳＭ表現に基づいて、最終オブジェクトモデル（１２６）を生成させ；及び
前記最終オブジェクトモデル（１２６）をオブジェクト指向の開発環境のコードスケルトン表現（１２８）にマッピングさせる、プログラムモジュールを含み、
前記ＤＳＭ表現（１１０）に基づいて前記最終オブジェクトモデル（１２６）を生成させるために、前記プログラムモジュールは、前記プロセッサによって実行される場合に、前記プロセッサに：
前記ＤＳＭ表現（１１０）上で構成要素ベースの分割を実行することによって、前記ＤＳＭ表現（１１０）の中の複数の区分を識別させ；
前記ＤＳＭ表現（１１０）上でプロバイダー近接クラスタリングを実行することによって、前記ＤＳＭ表現（１１０）の中の複数のクラスタを識別させ；
前記複数の区分及び前記複数のクラスタに基づいて、目標システムオブジェクトモデルを生成させ；
前記複数のクラスタの群を統合することによって、前記目標システムオブジェクトモデルの中の複数のパッケージを識別させ；及び
前記目標システムオブジェクトモデルの中で識別された前記複数のパッケージに基づいて、前記最終オブジェクトモデル（１２６）を生成させる、システム。
【発明の詳細な説明】
【背景技術】
【０００１】
ＦＯＲＴＲＡＮ（フォーミュラ  トランスレーション）は、大きくて複雑な数値的かつ科学分野における計算を実行するために適切な手続き型プログラミング言語である。１９５０年代にＦＯＲＴＲＡＮが導入されて以来、サイズ及び複雑さが変化する多くのシステムが、ＦＯＲＴＲＡＮを使用して開発されてきた。これらのシステムのうちのいくつかは、何十年も前のものであるが、様々な産業において未だに現役で使用されている。結果として、これらのシステムは、レガシーＦＯＲＴＲＡＮシステムとして言及され得る。
【０００２】
レガシーＦＯＲＴＲＡＮシステムは、様々な欠点を有している。第１に、レガシーＦＯＲＴＲＡＮシステムは、ドキュメンテーションをほとんど有していない。第２に、レガシーＦＯＲＴＲＡＮシステムは、レガシーソフトウェア設計の方法論を使用して開発されており、又はソフトウェア設計の方法論を全く有していない。第３に、複数のプログラマーがレガシーＦＯＲＴＲＡＮシステムで仕事をしており、それによって、複数かつ時々は異種のプログラミングスタイルを有するコードを生み出している。第４に、現在、職場に入ってくる新しい大学卒業者たちは、ＦＯＲＴＲＡＮなどのレガシープログラミング言語における公的な訓練をほとんど受けていないか又は全く受けていないので、レガシーＦＯＲＴＲＡＮシステムで仕事ができる熟練のプログラマーの量は減ってきている。そのような欠点及びそれ以外の事は、レガシーＦＯＲＴＲＡＮシステムを維持、移行、及び／又はモダニゼーションする、組織の能力に影響を与え得る。
【０００３】
本明細書の中で開示が行われるのは、これらのことを考慮してのことである。
【発明の概要】
【０００４】
この概要が、以下の詳細な説明の中においてさらに説明されるものを、簡略化した形式で概念の選択を導入するために提供されることは、理解されるべきである。この概要は、主張される主題の範囲を限定するものとして使用されることは企図されない。
【０００５】
非オブジェクト指向のアプリケーションをオブジェクト指向のプラットフォームへ移行させるために、方法、システム、及びコンピュータ可読媒体が、本明細書の中において説明される。本明細書の中において提示される実施形態に従って、非オブジェクト指向のアプリケーションが受信され得る。非オブジェクト指向のアプリケーションは、非オブジェクト指向のアプリケーションの要素へパースされ得る。要素の設計又は依存構造マトリックス（ＤＳＭ）表現が、生成され得る。最終オブジェクトモデルが、ＤＳＭ表現に基づいて生成され得る。最終オブジェクトモデルは、オブジェクト指向の開発環境のコードスケルトン表現へマッピングされ得る。
【０００６】
本明細書の中において議論される特徴、機能、及び利点は、本発明の様々な実施形態で独立に実現することが可能であるか、以下の説明及び図面を参照してさらなる詳細が理解され得る、さらに別の実施形態で組み合わせることが可能である。
【図面の簡単な説明】
【０００７】
【図１】図１は、本明細書の中において提示される実施形態による、ソースアプリケーションをオブジェクト指向のプラットフォームへ移行させるように構成される移行システムを示すブロック図である。
【図２】図２は、本明細書の中において提示される実施形態による、ＤＳＭ表現の例示的な実施態様を示すスクリーン表示の図である。
【図３】図３は、本明細書の中において提示される実施形態による、分割モジュールがＤＳＭ表現を分割した後の、例示的な分割されたＤＳＭ表現のスクリーン表示の図である。
【図４】図４は、本明細書の中において提示される実施形態による、クラスタリングモジュールがＤＳＭ表現の中のクラスタを識別した後の、例示的なクラスタリングされたＤＳＭ表現のスクリーン表示の図である。
【図５】図５は、本明細書の中において提示される実施形態による、目標システムオブジェクトモデルの例示的な実施態様を示すスクリーン表示の図である。
【図６】図６は、本明細書の中において提示される実施形態による、最終オブジェクトモデルの例示的な実施態様を示すスクリーン表示の図である。
【図７】図７は、本明細書の中において提示される実施形態による、クラスタのクラス定義の例示的な実施態様を示すスクリーン表示の図である。
【図８】図８は、本明細書の中において提示される実施形態による、コードスケルトン表現の例示的な実施態様を示すスクリーン表示の図である。
【図９】図９は、本明細書の中において提示される実施形態による、コードスケルトン表現の例示的な実施態様を示すスクリーン表示の図である。
【図１０】図１０は、本明細書の中において提示される実施形態による、非オブジェクト指向のアプリケーションをオブジェクト指向のプラットフォームへ移行させるための方法を示すフローダイアグラムである。
【図１１】図１１は、本明細書の中において提示される実施形態の側面を実装することができる、コンピュータシステムのための例示的なコンピュータハードウェア及びソフトウェアを示すブロック図である。
【発明を実施するための形態】
【０００８】
以下の詳細な説明は、ＦＯＲＴＲＡＮアプリケーションなどのレガシーソフトウェアアプリケーションを、近代的なオブジェクト指向のプラットフォームへ移行させるための、方法、システム、コンピュータ可読媒体、及び他の適切な技術を対象としている。様々な実施形態に従って、技術は、３段階の移行プロセスを実行するように構成され得る。第１の段階において、技術は、ソースアプリケーションを受信し、ソースアプリケーションの要素を抽出し、要素の間の依存関係を捕捉し、かつ抽出された要素及びそれらの捕捉された依存関係をグラフで描く、設計又は依存構造マトリックス（ＤＳＭ）表現を生成するように構成され得る。第２の段階において、技術は、ソースアプリケーションのモジュール式のフレームワークを生成するために、ＤＳＭ表現上での解析を実行するように構成され得る。いくつかの例示的な解析は、領域知識独立解析及び機能的知識解析を含み得る。第３の段階において、技術は、モジュラー式のフレームワークに基づいて、オブジェクト指向の目標システムの中でコードスケルトンを生成させるように構成され得る。コードスケルトンは、そのソース言語（例えば、ＦＯＲＴＲＡＮ）をオブジェクト指向の目標言語（例えば、ＪＡＶＡ）に効果的かつ効率的に翻訳するために、プログラマーによって利用され得る。
【０００９】
概して、ＤＳＭは、複雑なシステムのコンパクトでかつ単純な視覚的表現である。ＤＳＭを使用する解析技術は、分解及び統合の問題を解決するために、システムをモデル化するために利用され得る。様々な実施形態に従って、ソフトウェア解析に使用されるＤＳＭは、斜めのセルがシステムのノード又はモジュールを表すｎ×ｎ平方マトリックスである。各々の斜めのセルは、対応するノードが全体システムに関して備えるコードのパーセンテージを表す数値重みと関連し得る。マトリックスの中の全ての他のセルは、影（又はさもなければ強調されること）によって示されている要素又はモジュール、及び／又は斜めから外れている数値的に重み付けられたセルの群の間の潜在的な依存性又は関係性を表し得る。
【００１０】
説明目的で、本明細書の中において説明される実施形態は、先ず、レガシーＦＯＲＴＲＡＮアプリケーションの近代的なオブジェクト指向のプラットフォームへの移行に言及する。しかしながら、そのような実施形態は、単なる実施例であり、かつ限定的であることを企図しないことが理解されるべきである。特に、本明細書の中において説明される概念及び技術は、他のレガシープログラミング言語（例えば、ＬＩＳＰ、ＣＯＢＯＬなど）において書かれたアプリケーションのモダニゼーションに対して同様に利用され得る。
【００１１】
以下の詳細な説明において、本明細書の一部分を形成する、かつ説明目的で具体的な実施形態又は実施例を示す、添付の図面に対して参照がなされる。図面を参照することにおいて、いくつかの図面を通して類似の数表示が類似の要素を示す。
【００１２】
図１は、本明細書の中において提示される実施形態による、ソースアプリケーションをオブジェクト指向のプラットフォームへ移行させるように構成される移行システム１００を示すブロック図である。移行システム１００は、ＤＳＭ生成モジュール１０２、ＤＳＭ解析モジュール１０４、及び目標システムマッピングモジュール１０６を含み得る。
【００１３】
ＤＳＭ生成モジュール１０２は、ＦＯＲＴＲＡＮパーサー１０８及びＤＳＭ表現生成ツール１１０を含み得る。ＦＯＲＴＲＡＮパーサー１０８の実施例は、ＳＣＩＥＮＴＩＦＩＣ  ＴＯＯＬＷＯＲＫＳ社（ＳＣＩＴＯＯＬＳとしてまた知られる）によって生産されている、ＵＮＤＥＲＳＴＡＮＤ静的コード解析ツールである。ＤＳＭ表現生成ツール１１０の実施例は、ＬＡＴＴＩＸ社からのＬＡＴＴＩＸ  ＬＤＭである。この場合において、ＬＤＭという用語は、軽量依存性モデルを言及していると考えられる。ＦＯＲＴＲＡＮパーサー１０８及び／又はＤＳＭ表現生成ツール１１０の他の実施態様は、当業者によって慎重に検討されているだろう。
【００１４】
ＦＯＲＴＲＡＮパーサー１０８は、入力としてＦＯＲＴＲＡＮアプリケーション１１２を受信し得る。ＦＯＲＴＲＡＮパーサー１０８は、ＦＯＲＴＲＡＮアプリケーション１１２を、システム構造１１４を作り上げるその基本的要素へディスアセンブリングし得る。例えば、システム構造１１４は、ＦＯＲＴＲＡＮアプリケーション１１２の、ＦＯＲＴＲＡＮモジュール、ソースファイル、サブルーチン、機能、共通ブロック、変数を含み得る。
【００１５】
ＤＳＭ表現生成ツール１１０は、入力としてシステム構造１１４を受信し得、システム構造１１４の中の要素の間の依存関係を識別し得、かつ要素及びそれらの依存関係を表すＤＳＭ表現１１６を生成し得る。２つの要素の間の依存関係は、１つの要素が別の要素を使用する場合に識別され得る。例えば、依存関係は、第１のサブルーチンが第２のサブルーチンを呼ぶ場合、第１のサブルーチンと第２のサブルーチンとの間に存在し得る。２つの要素の間の依存関係はまた、１つの要素が別の要素を含む場合に識別され得る。例えば、依存関係は、サブルーチンが共通ブロックを含む場合、サブルーチンと共通ブロックとの間に存在し得る。本明細書の中において使用されるように、第１の要素は、第１の要素が第２の要素を使用し又は含む場合、第２の要素「との依存関係」を有するものとして言及され得る。
【００１６】
ＤＳＭ表現１１６は、ＦＯＲＴＲＡＮアプリケーション１１２の要素のグラフ表現を含み得る。ＤＳＭ表現１１６は、複数の行、複数の列、及び複数のセルを有する平方マトリックスとして構成され得る。セルの各々は、行のうちの１つ及び列のうちの１つに対応し得る。各々の行は、ラベルが付けられ得、かつＦＯＲＴＲＡＮアプリケーション１１２の複数の要素のうちの１つの要素又は１つの群に対応し得る。各々の列は、ラベルが付けられ得、かつまたＦＯＲＴＲＡＮアプリケーション１１２の複数の要素のうちの１つの要素又は１つの群に対応し得る。複数の要素のうちの所与の要素又は群は、複数の要素のうちの要素又は群を拡大させることが、ネストされた要素の表示をもたらすように、ネストされ得る。
【００１７】
行及び列は、要素の同じ順序に従って配置され得る。結果として、ＤＳＭ表現１１６のうちの各々の斜めのセルは、行に沿ってかつ列に沿って同じ要素に対応し得る。ＤＳＭ表現１１６の中の各々の斜めでないセルは、対応する列によって表示される要素と対応する行によって表示される要素との間に、依存関係が存在するか否かを示すことができる。ＤＳＭ表現１１６は、ＤＳＭ生成モジュール１０２によって抽出されたＦＯＲＴＲＡＮアプリケーション１１２の生データを反映し得る。結果として、要素は、ＦＯＲＴＲＡＮアプリケーション１１２の意味のある解析を可能にするやり方において、配置、分離、又は群化されていないかもしれない。ＤＳＭ表現１１６の実施例は、以下に説明される図２の中において示されている。
【００１８】
ＤＳＭ解析モジュール１０４は、入力としてＤＳＭ表現１１６を受信し得る。ＤＳＭ解析モジュール１０４は、分割モジュール１１８、クラスタリングモジュール１２０、及び機能知識解析モジュール１２２を含み得る。分割モジュール１１８及びクラスタリングモジュール１２０は、ＤＳＭ表現１１６上の領域知識独立解析の様々な側面を実行するように構成され得る。機能知識解析モジュール１２２は、ＤＳＭ表現１１６上の機能知識解析の様々な側面を実行するように構成され得る。
【００１９】
分割モジュール１１８は、ＤＳＭ表現１１６の範囲内の層を識別するために、ＤＳＭ表現１１６上の構成要素ベースの分割を実行し得る。層は、ＤＳＭ表現１１６の中の要素の群の階層的な配置を表現し得る。分割モジュール１１８は、各々の層がそれらの依存関係に基づいて関連する要素の１以上の群を含むように、ＤＳＭ表現１１６の中の要素を分離し得る。
【００２０】
いくつかの実施形態において、層は、上位層、中間層、及び下位層を含み得る。上位層の中の要素は、他の要素（例えば、中間層及び下位層の中の要素）との依存関係を有し得るが、それ以外の要素は上位層の中の要素との依存関係を有し得ない。中間層の中の要素は、他の要素（例えば、下位層の中の要素）との依存関係を有し得、かつそれ以外の要素（例えば、上位層の中の要素）は中間層の中の要素と依存関係を有し得る。下位層の中の要素は、他の要素との依存関係を有し得ないが、それ以外の要素（例えば、上位層及び下位層の中の要素）は下位層の中の要素との依存関係を有し得る。
【００２１】
上位層、中間層、及び下位層は、ＦＯＲＴＲＡＮアプリケーション１１２の別個の特徴を分離し得る。上位層は、トップレベルのプログラムインターフェースを表し得る。中間層は、プログラム論理を表し得る。下位層は、機能、共通ブロック、サブルーチン、及び同様なものを表し得る。ＦＯＲＴＲＡＮアプリケーション１１２の要素をこれらの別の層の中へ分離することによって、分割モジュール１１８は、ＦＯＲＴＲＡＮアプリケーション１１２の中のモジュール方式を獲得することができる。他の実施形態において、分割モジュール１１８は、任意の数の層を生成することができる。構成要素ベースの分割が実行された後のＤＳＭ表現１１６の実施例は、図３の中において示されており、それは以下に説明される。
【００２２】
クラスタリングモジュール１２０は、ＤＳＭ表現１１６の範囲内のクラスタを識別するために、ＤＳＭ表現１１６上のプロバイダー近接クラスタリングを実行し得る。プロバイダー近接解析は、概して、マトリックスの中の任意の要素とマトリックスの中の他の要素との間の近さの程度を決定するための技術を言及し得る。この技術に基づいたクラスタリングは、依存関係の重みに基づいて最も近いものを識別し得る。ＤＳＭ表現１１６の中において、プロバイダー近接解析を使用して識別された各々のクラスタは、同じ列の上の他の要素との依存関係を有する各々の列の下の要素を含み得る。プロバイダー近接解析は、領域知識を必要としたり又は利用したりすることがないので、そのような解析は領域独立解析として言及され得る。
【００２３】
各々のクラスタは、サブルーチン、機能、及び／又は共通ブロックなどの、緊密に接続された要素のいくつかの組み合わせを含み得る。特に、クラスタリングモジュール１２０は、データの親近性（例えば、共通ブロックの親近性）及びプログラム論理の親近性（例えば、サブルーチンの親近性）に基づいて、要素をクラスタリングし得る。そのような親近性は、同じ列の上の他の要素との依存関係を有する各々の列の下の要素の群をクラスタリングすることによって、識別され得る。各々のクラスタの中の要素のうちの少なくともいくつかは、隣接依存関係を有し得る。プロバイダー近接クラスタリングが実行された後のＤＳＭ表現１１６の実施例は、図４の中において示されており、それは以下に説明される。
【００２４】
機能知識解析モジュール１２２は、構成要素ベースの分割及び／又はプロバイダー近接クラスタリングの結果に基づいて、目標システムオブジェクトモデル１２４を生成し得る。目標システムオブジェクトモデル１２４は、クラスタリングモジュール１２０によって識別されたクラスタに従って、ＤＳＭ表現１１６のラベルを再組織化することによって生成され得る。ラベルは、共通識別子（例えば、クラスタ１、クラスタ２など）、又は各々のクラスタの機能性又はカテゴリーを説明する特定の識別子を提供し得る。ラベルは、各々のラベルが対応するクラスタの範囲内に含まれる要素を表示するように拡大され得るように、ネストされ得る。目標システムオブジェクトモデル１２４は、分割モジュール１１８によって識別される層、及び／又はクラスタリングモジュール１２０によって識別されるクラスタに従って、下側の三角形のマトリックスの中に配置され得る。機能知識解析は、領域知識を必要としたり又は利用したりすることがあるので、そのような解析は領域依存解析として言及され得る。目標システムオブジェクトモデル１２４の実施例が、図５の中において示されており、それは以下に説明される。
【００２５】
機能知識解析モジュール１２２のインターフェースを介して、ユーザは、機能領域知識を適用して、要素の各々のクラスタをオブジェクト指向のフレームワークの中の潜在的なクラス又は低いレベルのモジュールとして認証することができる。ラベルが一般的に名付けられている場合、ユーザはまた、ラベルをより機能的かつ意義深い名前に改訂することができる。機能知識解析モジュール１２２のインターフェースを介して、ユーザはさらに、複数のクラスタを、オブジェクト指向のフレームワークの中の高レベルのモジュール、サブルーチン、又はパッケージへ統合（アグリゲート）することができ、それによって最終オブジェクトモデル１２６を生成する。最終オブジェクトモデル１２６の実施例が、図６の中において示されており、それは以下に説明される。
【００２６】
目標システムマッピングモジュール１０６は、入力として最終オブジェクトモデル１２６を受信することができる。最終オブジェクトモデル１２６の中の各々のクラスタは、オブジェクト指向のフレームワークの中の潜在的なクラス又は低いレベルのモジュールであり得る。所与のクラスタの範囲内のいくつかの要素は、クラスの特性を形成し得る。クラスタの範囲内のいくつかの他の要素は、クラスの方法を形成し得る。目標システムマッピングモジュール１０６は、各々のクラスタの特性及び方法を識別するために、最終オブジェクトモデル１２６の中の各々のクラスタ上で、低いレベルの解析を実行し得る。所与のクラスタに対する特性及び方法の収集は、クラスタのクラス定義を形成し得る。目標システムオブジェクトモデル１２４に対応するクラス定義の実施例が、図７の中において示されており、それは以下に説明される。
【００２７】
各々のクラスタのクラス定義を利用して、目標システムマッピングモジュール１０６は、最終オブジェクトモデル１２６の中の、高レベルのモジュール、サブシステム、又はパッケージを、オブジェクト指向の開発環境のコードスケルトン表現１２８にマッピングし得る。コードスケルトン表現１２８は、オブジェクト指向の開発環境の中のオブジェクト指向の表現を作り上げる、パッケージ、クラス、方法、機能、及び／又は他の構造を定義し得る。これらの構造は、種々のオブジェクト指向の開発環境の間で変化し得る。いくつかの例示的なオブジェクト指向の開発環境は、ＥＣＬＩＰＳＥ  ＦＯＵＮＤＡＴＩＯＮ社からのＥＣＬＩＰＳＥ、及びＭＡＴＨＷＯＲＫＳ社（ＭＡＴＨＷＯＲＫＳとしてまた知られる）からのＭＡＴＬＡＢを含み得る。コードスケルトン表現１２８の実施例は、図８及び図９の中において示され、それらは以下に説明される。プログラマーは、ＦＯＲＴＲＡＮアプリケーションをオブジェクト指向の目的言語（例えば、ＪＡＶＡ）に効果的かつ効率的に翻訳するために、コードスケルトン表現１２８を利用し得る。
【００２８】
図２は、本明細書の中において提示される実施形態による、ＤＳＭ表現１１６の例示的な実施態様を示すスクリーン表示の図である。前述のように、ＤＳＭ表現１１６は、ＦＯＲＴＲＡＮアプリケーション１１２に基づいて、ＦＯＲＴＲＡＮパーサー１０８及びＤＳＭ表現生成ツール１１０によって生成され得る。ＤＳＭ表現１１６は、１組の行２０２及び１組の列２０４を含み得る。行２０２及び列２０４は、同じ順序の要素の同じリストを含み得る。図２の中において示されるように、情報窓２０６は、要素のリストが、４２個の共通ブロック、９０個の共通ブロックメンバー、４５個のＦＯＲＴＲＡＮファイル、１個のＦＯＲＴＲＡＮプログラム、１１個の機能、及び５６個のサブルーチンを含むことを明記している。すなわち、要素のこの組み合わせは、ＦＯＲＴＲＡＮアプリケーション１１２のシステム構造１１４を作り上げる。
【００２９】
ＤＳＭ表現１１６は、複数のセルを含み得る。影が付けられたセルは、対応する行の中の構成要素と対応する列の中の構成要素との間の依存関係を示し得る。図２の中において示されるように、影が付けられたセルは、対応する列の中の構成要素が、対応する行の中の構成要素との依存関係を有することを示している。他の実施形態において、影が付けられたセルは、対応する行の中の構成要素が、対応する列の中の構成要素との依存関係を有することを示している。斜めのセル２０８は、これらのセルが、行に沿った、かつ列に沿った同じ要素に対応するので、影が付けられ得る。他の実施形態において、他の適切な強調が影を付けることに対して代替され得る。
【００３０】
ＤＳＭ表現生成ツール１１０は、ＦＯＲＴＲＡＮパーサー１０８からの生の出力に基づいて、ＤＳＭ表現１１６を生成し得る。結果として、図２の中において示されるように、要素のリストは、ＤＳＭ表現１１６によって提示されるデータの意味ある解釈を可能にするやり方で、配置、分離、又は群化されない。以下に説明されるように、ＤＳＭ解析モジュール１０４は、ＤＳＭ表現１１６がより効果的に解釈され得るように、要素のリストを配置し、分離し、又は群化するためにＤＳＭ表現１１６上で解析を実行し得る。
【００３１】
図３は、本明細書の中において提示される実施形態による、分割モジュール１１８がＤＳＭ表現１１６を分割した後の、例示的な分割されたＤＳＭ表現３００のスクリーン表示の図である。分割モジュール１１８は、要素の間の依存関係に従って、上位層３０２、中間層３０４、及び下位層３０６を識別するために、ＤＳＭ表現１１６上で構成要素ベースの分割を実行し得る。分割モジュール１１８は、識別された層に従って、ＤＳＭ表現１１６の中の（行２０２の組及び列２０４の組の両方において）要素のリストを再配置し得る。上位層３０２の中の要素は、他の要素との依存関係を有し得るが、それ以外の要素は上位層の中の要素との依存関係を有し得ない。中間層の中の要素は、他の要素との依存関係を有し得、それ以外の要素は中間層の中の要素との依存関係を有し得る。下位層の中の要素は、他の要素との依存関係を有し得ないが、それ以外の要素は下位層の中の要素との依存関係を有し得る。
【００３２】
いくつかの実施形態において、上位層３０２は、ＦＯＲＴＲＡＮアプリケーション１１２のトップレベルのプログラムインターフェースを表し得る。中間層３０４は、ＦＯＲＴＲＡＮアプリケーション１１２のプログラム論理を表し得る。下位層３０６は、機能、共通ブロック、及びサブルーチンを表し得る。分割されたＤＳＭ表現３００は、図３の中において示されるように、下側の三角形のマトリックスの中に配置され得る。
【００３３】
図４は、本明細書の中において提示される実施形態による、クラスタリングモジュール１２０がＤＳＭ表現１１６の中のクラスタを識別した後の、例示的なクラスタリングされたＤＳＭ表現４００のスクリーン表示の図である。クラスタリングモジュール１２０は、ＤＳＭ表現１１６の範囲内の、クラスタ４０２、４０４、４０６などの、クラスタを識別するために、ＤＳＭ表現１１６上でプロバイダー近接クラスタリングを実行し得る。クラスタリングモジュール１２０は、識別されたクラスタに従って、ＤＳＭ表現１１６の中の（行２０２の組及び列２０４の組の両方において）要素のリストを再配置し得る。
【００３４】
各々のクラスタは、サブルーチン、機能、及び／又は共通ブロックなどの、緊密に接続された要素のいくつかの組み合わせを含み得る。特に、クラスタリングモジュール１２０は、データの親近性（例えば、共通ブロックの親近性）及びプログラム論理の親近性（例えば、サブルーチンの親近性）に基づいて、要素をクラスタリングし得る。そのような親近性は、ＤＳＭ表現１１６の斜めのセル２０８の近くの依存関係を有する要素の群をクラスタリングすることによって、識別され得る。例えば、クラスタ４０２、４０４、４０６は、斜めのセルの近くのクラスタの集中を示す。クラスタリングされたＤＳＭ表現４００は、図４の中において示されるように、下側の三角形のマトリックスの中に配置され得る。
【００３５】
図５は、本明細書の中において提示される実施形態による、目標システムオブジェクトモデル１２４の例示的な実施態様を示すスクリーン表示の図である。前述のように、機能知識解析モジュール１２２は、分割されたＤＳＭ表現３００の中の層、及び／又はクラスタリングされたＤＳＭ表現４００の中のクラスタに基づいて、目標システムオブジェクトモデル１２４を生成し得る。目標システムオブジェクトモデル１２４は、１組の行５０２及び１組の列５０４を含み得る。行５０２及び列５０４は、同じ順序のクラスタの同じリストを含み得る。クラスタのリストは、クラスタリングモジュール１２０によって識別されたクラスタに対応し得る。クラスタのリストはまた、分割モジュール１１８によって識別された層に従って配置され得る。
【００３６】
図５の中において示されるように、クラスタをリスト化するためのラベルは、全体的なものである（例えば、ｖｐ＿１、ｖｐ＿２、ｖｐ＿３など）。他の実施形態において、クラスタをリスト化するためのラベルは、各々のクラスタの機能又はカテゴリーを説明する具体的な識別子であり得る。ラベルは、各々のラベルが対応するクラスタの範囲内に含まれる要素を表示するように拡大され得るように、ネストされ得る。例えば、図５の中において示されるように、ラベルｖｐ＿１５は、ラベルｖｐ＿１５に対応するクラスタ５０８の範囲内でネストされる、要素５０６を表示するように拡大された。クラスタの各々は、クラスタ５０８を含み、オブジェクト指向のプラットフォームの中の潜在的なクラス又は低いレベルのモジュールを表し得る。
【００３７】
複数の斜めのセル５１０の各々は、対応する依存関係に関するパーセンテージを表示し得る。例えば、パーセンテージは、ＦＯＲＴＲＡＮアプリケーション１１２の中のクラスタ若しくは要素の全てによって行われるコールの全体量に関する、行に沿った、かつ列に沿った所与のクラスタ若しくは要素によって行われるコールの量を表し得る。複数の斜めから外れたセル５１２の各々はまた、対応する依存関係に関する整数を表示し得る。例えば、整数は、行に対応するクラスタ若しくは要素に対する、列に対応するクラスタ若しくは要素から行われるコールの量を特定し得る。他の実施形態において、整数は、列に対応するクラスタ若しくは要素に対する、行に対応するクラスタ若しくは要素から行われるコールの量を特定し得る。
【００３８】
図６は、本明細書の中において提示される実施形態による、最終オブジェクトモデル１２６の例示的な実施態様を示すスクリーン表示の図である。前述されたように、機能知識解析モジュール１２２のインターフェースを介して、ユーザは、機能領域知識を適用して、要素の各々のクラスタをオブジェクト指向のフレームワークの中の潜在的なクラス又は低いレベルのモジュールとして認証することができる。ユーザはさらに、複数のクラスタを、オブジェクト指向のフレームワークの中の、高レベルのモジュール、サブルーチン、又はパッケージの中へ再配置及び統合することができる。一実施例において、第１のモジュール６０２は、クラスタｖｐ＿１及びクラスタｖｐ＿５を含み得る。別の実施例において、第２のモジュール６０４は、クラスタｖｐ＿２、クラスタｖｐ＿１７、クラスタｖｐ＿１５、及びクラスタｖｐ＿１６を含み得る。
【００３９】
図７は、本明細書の中において提示される実施形態による、クラスタ５０８のクラス定義７０２の例示的な実施態様を示すスクリーン表示の図である。前述したように、目標システムマッピングモジュール１０６は、各々のクラスタの特性及び方法を識別するために、最終オブジェクトモデル１２６の中の各々のクラスタ上で、低いレベルの解析を実行し得る。例えば、図７は、クラスタ５０８のクラス定義７０２を示している。クラス定義７０２は、１組の特性７０４及び１組の方法７０６を含み得る。
【００４０】
図８及び図９は、本明細書の中において提示される実施形態による、コードスケルトン表現１２８の例示的な実施態様を示すスクリーン表示の図である。図８は、最終オブジェクトモデル１２６の例示的な実施態様を示している。図８はまた、最終オブジェクトモデル１２６からマッピングされたＥＣＬＩＰＳＥ表現８０２、及び最終オブジェクトモデル１２６からマッピングされたＭＡＴＬＡＢ表現８０４を示している。
【００４１】
図９は、ＥＣＬＩＰＳＥ表現８０２及びＭＡＴＬＡＢ表現８０４の両方における、モジュールのうちの１つの拡大を示している。ＥＣＬＩＰＳＥ表現８０２において、各々のモジュールは、ＪＡＶＡパッケージを表し得る。各々のＪＡＶＡパッケージは、１以上のＪＡＶＡクラスを含み得る。各々のＪＡＶＡクラスは、１以上のＪＡＶＡ方法を含み得る。例えば、ＪＡＶＡパッケージ８０６は、ＪＡＶＡクラス８０８を示すように拡大され得、かつＪＡＶＡクラスは、ＪＡＶＡ方法８１０を示すように拡大され得る。ＭＡＴＬＡＢ表現８０４において、各々のモジュールは、ＭＡＴＬＡＢパッケージを表し得る。各々のＭＡＴＬＡＢパッケージは、１以上のＭＡＴＬＡＢクラスを含み得る。各々のＭＡＴＬＡＢクラスは、１以上のＭＡＴＬＡＢ機能を含み得る。例えば、ＭＡＴＬＡＢパッケージ８１２は、ＭＡＴＬＡＢクラス８１４を示すように拡大され得、かつＭＡＴＬＡＢクラス８１４は、ＭＡＴＬＡＢ機能８１６を示すように拡大され得る。
【００４２】
今度は図１０を参照すると、非オブジェクト指向のアプリケーションをオブジェクト指向のプラットフォームに移行させるための、本明細書の中において提示される実施形態に関して、付加的な詳細部分が提供される。本明細書の中において説明される論理演算が、（１）コンピュータが実施する動作のシークエンス、又はコンピュータシステム上で実行されるプログラムモジュールとして、及び／又は（２）コンピュータシステムの範囲内で相互に接続された機械論理回路又は回路モジュールとして実施されることは、理解されるべきである。実施態様は、コンピュータシステムの性能及び他の作動パラメータに応じた選択の問題である。したがって、本明細書の中において説明される論理演算は、作動、構造装置、動作、又はモジュールとして様々に言及される。これらの作動、構造装置、動作、及びモジュールは、ソフトウェア、ファームウェア、ハードウェア、特殊用途デジタル論理、及びそれらの任意の組み合わせの中に実装され得る。図面の中で示されかつ本明細書の中において説明されるよりも多い又は少ない作動が実行され得ることは、また、理解されるべきである。これらの作動はまた、同時並行して、又は本明細書の中において説明されるものとは異なる順序で実行され得る。
【００４３】
図１０は、非オブジェクト指向のアプリケーションをオブジェクト指向のプラットフォームに移行させるためのルーチン１０００を示している。例えば、ルーチン５００は、ＦＯＲＴＲＡＮアプリケーションをＥＣＬＩＰＳＥ又はＪＡＶＡのコードスケルトン表現に移行させるために利用され得る。いくつかの実施形態において、ルーチン１０００は、移行システム１００の、ＤＳＭ生成モジュール１０２、ＤＳＭ解析モジュール１０４、及び／又は目標システムマッピングモジュール１０６によって実行され得る。
【００４４】
ルーチン１０００は、作動１００２において開始し、ここで、移行システム１００は、非オブジェクト指向のアプリケーションを受信し得る。例えば、非オブジェクト指向のアプリケーションは、ＦＯＲＴＲＡＮアプリケーションであり得る。作動１００２の後に、ルーチン１０００は作動１００４へ進む。
【００４５】
作動１００４において、移行システム１００は、非オブジェクト指向のアプリケーションを非オブジェクト指向の要素へパースし得る。例えば、ＦＯＲＴＲＡＮアプリケーションの要素は、ＦＯＲＴＲＡＮモジュール、ソースファイル、サブルーチン、機能、共通ブロック、及び／又は変数を含み得る。作動１００４の後に、ルーチン１０００は作動１００６へ進む。
【００４６】
作動１００６において、移行システム１００は、要素のＤＳＭ表現を生成し得る。ＤＳＭ表現は、要素の順序に対応する１組の行、要素の順序に対応する１組の列、及び１組のセルを含み得る。各々のセルは、行のうちの１つ及び列のうちの１つに対応し得る。作動１００６の後に、ルーチン１０００は作動１００８へ進む。
【００４７】
作動１００８において、移行システム１００は、ＤＳＭ表現上で様々な解析を実行し得る。そのような解析は、前述したように、ＤＳＭ解析モジュール１０４によって実行される作動を含み得る。特に、ＤＳＭ解析モジュール１０４は、領域独立解析（例えば、分割又はクラスタリング）及び領域依存解析（例えば、アプリケーションのビジネス機能と位置合わせするために、ＤＳＭ表現の中のラベルを再組織化する）を実行し得る。作動１００８の後に、ルーチン１０００は作動１０１０へ進む。
【００４８】
作動１０１０において、移行システム１００は、ＤＳＭ表現の解析の結果に基づいて、最終オブジェクトモデルを生成し得る。移行システム１００は、分割及び／又はクラスタリングに基づいて、目標システムオブジェクトモデルを生成し得る。移行システム１００は、クラスタの群を統合することによって、目標システムオブジェクトモデルの中のパッケージを識別し得る。移行システム１００は、目標システムオブジェクトモデルの中で識別されたパッケージに基づいて、最終オブジェクトモデルを生成し得る。作動１０１０の後に、ルーチン１０００は作動１０１２へ進む。
【００４９】
作動１０１２において、移行システムは、最終オブジェクトモデルを、オブジェクト指向の開発環境のコードスケルトン表現にマッピングし得る。いくつかの例示的なオブジェクト指向の開発環境は、ＥＣＬＩＰＳＥ及びＭＡＴＬＡＢを含み得る。ＥＣＬＩＰＳＥにおいて、コードスケルトン表現は、ＪＡＶＡパッケージ、ＪＡＶＡクラス、及びＪＡＶＡ方法を定義し得る。ＭＡＴＬＡＢにおいて、コードスケルトン表現は、ＭＡＴＬＡＢパッケージ、ＭＡＴＬＡＢクラス、及びＭＡＴＬＡＢ方法を定義し得る。作動１０１２の後で、ルーチン１０００は、繰り返すか（例えば、周期的に、連続的に、又は必要に応じてオンデマンドで）又は終了するかのいずれかであり得る。
【００５０】
図１１は、非オブジェクト指向のアプリケーションをオブジェクト指向のプラットフォームへ移行させるために、本明細書の中において説明されるソフトウェア要素を実行することができる、コンピュータ１１００を示している。コンピュータ１１００は、単一のコンピュータ装置の中で、又は１以上の処理ユニット、貯蔵ユニット、及び／又は他のコンピュータ装置の組み合わせの中で具現化され得る。コンピュータ１１００は、１以上の中央処理ユニット１１０２（「ＣＰＵ」）、ランダムアクセスメモリ１１１４（「ＲＡＭ」）及びリードオンリーメモリ１１１６（「ＲＯＭ」）を含むシステムメモリ１１０８、並びにメモリをＣＰＵ１１０２に結合するシステムバス１１０４を含む。
【００５１】
ＣＰＵ１１０２は、コンピュータ１１００の作動のために必要な算術演算及び論理演算を実行する標準的なプログラム可能プロセッサであり得る。ＣＰＵ１１０２は、これらの状態の間で差別化し、かつこれらの状態を変化させるスイッチング要素の操作を介して、１つの離散的な物理状態から次へと移行することによって、作動を実行することができる。スイッチング要素は、概して、フリップフロップなどの２つのバイナリー状態のうちの１つを維持する電気回路、及び論理ゲートなどの１以上の他のスイッチング要素の状態の論理結合に基づいて、出力状態を提供する電気回路を含み得る。これらの基本的なスイッチング要素は、レジスタ、アダーサブトラクター（ａｄｄｅｒｓ‐ｓｕｂｔｒａｃｔｏｒｓ）、数値演算ユニット、浮動小数点演算ユニット、及び同様なものを含む、より複雑な論理回路を形成するために組み合され得る。
【００５２】
コンピュータ１１００はまた、大容量記憶装置１１１０を含む。大容量記憶装置１１１０は、バス１１０４にさらに接続される（図示せぬ）大容量コントローラを介して、ＣＰＵに接続され得る。大容量記憶装置１１１０及びその関連するコンピュータ可読媒体は、コンピュータ１１００に対して非揮発性、非一時的記憶を提供する。大容量記憶装置１１１０は、作動システム１１１８を記憶し得、同様に、図１に関して上述された、ＤＳＭ生成モジュール１０２、ＤＳＭ解析モジュール１０４、及び目標システムマッピングモジュール１０６などの、特定のアプリケーションモジュール又は他のプログラムモジュールを記憶し得る。大容量記憶装置１１１０はまた、ＤＳＭ表現１１６、最終オブジェクトモデル１２６、及びコードスケルトン表現１２８などの、様々なシステム及びモジュールによって収集され又は利用されるデータを記憶し得る。
【００５３】
コンピュータ１１００は、記憶されている情報を反映するために、大容量記憶装置の物理状態を変容させることによって、プログラム及びデータを大容量記憶装置１１１０に記憶させることができる。物理状態の具体的な変容は、本開示の種々の実装において、様々な要因に応じ得る。そのような要因の実施例は、大容量記憶装置１１１０が１次若しくは２次の記憶、及び同様なものとして特徴付けられるか否かに関わらず、大容量記憶装置を実装するために使用される技術を含み得るが、それらに限定されるものではない。例えば、コンピュータ１１００は、磁気ディスクドライブ装置の範囲内の特定の場所の磁気的な特性、光学式記憶装置の中の特定の場所の反射特性又は屈折特性、又は特定のキャパシタ、トランジスタ、若しくは半導体記憶装置の中の他の個別部品の電気的な特性を変化させるために、記憶コントローラを介して指示命令を発行することによって、大容量記憶装置１１１０に情報を記憶させることができる。物理媒体の他の変容は、本開示の範囲及び精神から逸脱することなしに、この説明を容易にするためだけに提供された上述の実施例を用いて可能となる。コンピュータ１１００はさらに、大容量記憶装置１１１０の範囲内の１以上の特定の場所の物理状態又は特性を検出することによって、大容量記憶装置から情報を読み出すことができる。
【００５４】
本明細書の中に含まれるコンピュータ可読媒体の説明は、ハードディスク又はＣＤ‐ＲＯＭドライブなどの大容量記憶装置に言及するが、コンピュータ可読媒体は、コンピュータ１１００によってアクセス可能な任意の利用可能コンピュータ媒体であり得ることは、当業者によって理解されるべきである。コンピュータ可読媒体は、信号機などの通信媒体、及びコンピュータ可読記憶媒体を含む。実施例のやり方において、かつ非限定的に、コンピュータ可読記憶媒体は、揮発性及び非揮発性、取り外し可能及び取り外し不可能な媒体を含み、それらは、コンピュータ可読指示命令、データ構造、プログラムモジュール、又は他のデータなどの、情報の記憶のための任意の方法又は技術の中で実装される。例えば、コンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ若しくは他の半導体メモリ技術、ＣＤ‐ＲＯＭ、デジタル多用途ディスク（「ＤＶＤ」）、ＨＤ‐ＤＶＤ、ＢＬＵ‐ＲＡＹ、若しくは他の光学的な記憶装置、磁気カセット、磁気テープ、磁気ディクス記憶装置若しくは他の磁気記憶装置、又は望ましい情報を非一時的なやり方で記憶するために使用されることができ、かつコンピュータ１１００によってアクセスされることができる任意の他の媒体を含むが、それらに限定されるものではない。一実施形態に従って、コンピュータ１１００は、コンピュータによって実行される場合に、図５に関して上述されたように、グラフィカルなマップ表示上に一時的な天気記号体系を表示させるために、ルーチン５００を実行するコンピュータ実行可能指示命令を記憶するコンピュータ可読記憶媒体にアクセスすることができる。
【００５５】
様々な実施形態にしたがって、コンピュータ１１００は、ネットワーク１１２０などのネットワークを介して遠隔のコンピュータに対する論理接続を使用して、ネットワーク化された環境の中で作動し得る。コンピュータ１１００は、バス１１０４に接続されるネットワークインターフェースユニット１１０６を介して、ネットワーク１１２０に接続することができる。ネットワークインターフェースユニット１１０６はまた、他のタイプのネットワーク及び遠隔コンピュータシステムに接続するために利用され得る。コンピュータ１１００はまた、コンピュータモニター、プリンター、又は他のタイプの出力装置などの、表示装置に対して出力を提供するための入力／出力コントローラ１１１２を含み得る。入力／出力コントローラ１１１２はさらに、キーボード、マウス、電子スタイラス、タッチスクリーン、及び同様なものなどの装置から入力を受信し得る。コンピュータ１１００が、図１１の中において示される要素の全てを含み得ず、図１１の中において明瞭に示されていない他の要素を含み得、又は図１１の中において示されるものとは完全に異なったアーキテクチャを利用し得ることは、さらに理解されるべきである。
【００５６】
前述のことから、非オブジェクト指向のアプリケーションをオブジェクト指向のプラットフォームに移行させるための技術が、本明細書の中で提供されることは、理解されるべきである。本明細書の中において提示される主題が、コンピュータ構造特性、方法論的な動作、及びコンピュータ可読媒体に特有の言語において説明されてきたが、添付の特許請求の範囲の中において定義される発明が、本明細書の中において説明される、特定の特性、動作、又は媒体に必ずしも限定されないことは、理解されるべきである。むしろ、特定の特性、動作、及び媒体は、特許請求の範囲を実施する例示的な形式として開示されている。
【００５７】
上述の主題は、例示目的によってのみ提供され、かつ限定的に解釈されるべきではない。例示されかつ説明された例示的な実施形態及び用途を追従することなしに、かつ以下の特許請求の範囲の中で説明される本開示の真の精神及び範囲から逸脱することなしに、様々な修正及び変形が本主題に対して行われ得る。
【図１】
0006267711.tif 000002
【図２】
0006267711.tif 000003
【図３】
0006267711.tif 000004
【図４】
0006267711.tif 000005
【図５】
0006267711.tif 000006
【図６】
0006267711.tif 000007
【図７】
0006267711.tif 000008
【図８】
0006267711.tif 000009
【図９】
0006267711.tif 000010
【図１０】
0006267711.tif 000011
【図１１】
0006267711.tif 000012