JP2005515518A - レガシーソフトウエアアプリケーションを現代的オブジェクト指向型システムへ変換する方法及びシステム - Google Patents
レガシーソフトウエアアプリケーションを現代的オブジェクト指向型システムへ変換する方法及びシステム Download PDFInfo
- Publication number
- JP2005515518A JP2005515518A JP2002589976A JP2002589976A JP2005515518A JP 2005515518 A JP2005515518 A JP 2005515518A JP 2002589976 A JP2002589976 A JP 2002589976A JP 2002589976 A JP2002589976 A JP 2002589976A JP 2005515518 A JP2005515518 A JP 2005515518A
- Authority
- JP
- Japan
- Prior art keywords
- code
- data structure
- procedural
- node
- segment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
手順言語コードを有する手順プログラムをオブジェクト指向型プログラムへ変換するシステム及び方法であって、手順言語コードをスキャンし且つスキャンした手順言語コードに基づいてマップを作成し、スキャンした手順言語コードを中間コードとして格納し、該マップを使用して該手順言語コードの少なくとも1つのセグメントを処理し、該処理したセグメントを使用して第一データ構造を作成し、該第一データ構造に基づいて該中間コードを修正し、且つ該修正した中間コードに基づいてオブジェクトクラスを有するオブジェクト指向型プログラムを発生する、ことを包含している。
Description
本発明はコンピュータプログラムの変換に関するものである。より詳細には、本発明はレガシーソフトウエアアプリケーションを現代的オブジェクト指向型システムへ変換する方法及びシステムに関するものである。
ソフトウエアアプリケーションを1つのプログラミング言語から別のプログラミング言語へ変換する多くの技術及び方法が存在している。然しながら、1つのソフトウエアアプリケーションが書かれている言語はその組立の1つの側面に過ぎない。ソフトウエアアプリケーションは多くの部分を有する複雑なシステムである。
「コード」はプログラミング言語で書かれており且つ種々の条件下においてそのソフトウエアアプリケーションが何を行うかの命令を包含するソフトウエアアプリケーションの部分である。コンピュータの初期においては、ソフトウエアアプリケーションはアッセンブリ言語を使用して書かれていた。アセッブリ言語プログラムはアッセンブラーと呼ばれるアプリケーションによってマシン言語へ変換され、それがコンピュータの中央処理装置によって実行される。アッセンブリ言語操作は非常に低いレベルであり且つアプリケーションを書くことを困難なものとさせる場合がある。コンピュータ技術が進展するに従い、別の「より高いレベル」の言語が開発され、それはプログラマーが複雑なタスクを実行するソフトウエアをより容易に作成することを可能としたものである。コンパイラーと呼ばれる特別のソフトウエアアプリケーションが開発され、それはより高いレベルの言語をマシン言語へ還元させ、それによりコンピュータにより実行することが可能となるものである。ハイレベル言語は、必要に応じて、繰返し使用することを可能とするルーチン又は手順と呼ばれるコードのブロックへプログラマーがコードを編成することを可能とした。
ソフトウエアアプリケーションは、又、情報を管理することが可能であることが必要である。ソフトウエア開発ツールは、従って、データ構造を宣言する能力を提供する。データ構造は、コードによってデータを処理することが可能であるように、組織化し且つ識別可能な態様でメモリ内にデータを格納するための1つの態様を提供する。コードはデータ構造に関して動作を行う命令を包含しており且つルーチンと呼ばれるセグメントにグループ化される。初期のソフトウエア開発ツールにおいては、データ構造及びルーチンは別々に定義されていた。任意のルーチンがデータに関して捜査するために、データはパラメータとしてルーチンへパスされねばならなかった。ルーチンをコールし且つパラメータをパスするソフトウエアを書くアプローチは、通常、「手順プログラミング」と呼称される。より現代的なアプローチは「オブジェクト指向型」即ちOOモデルである。OOモデルは手順モデルとは著しく異なるものである。
OOモデルにおいて、データ構造及びコードルーチンは「クラス」と呼ばれる単一の独立したデータ構造内にグループ化させることが可能である。クラスはオブジェクトの特定の種類に属するデータ構造及びメッソドと呼ばれるルーチンのテンプレート定義である。クラスはメンバーオブジェクトの共通のプロパティ即ち特性を定義する。OOプログラムはモジュール型で再使用可能なコード構造のために容易に作成し且つ修正することが可能である。
OOプログラミングは、又、継承等の多くのその他の有益的な特性を可能とする。継承はその親クラス(即ち「スーパークラス」)として別のオブジェクトを特定することによりユーザが新たなオブジェクトを最初に作成することを可能とする。新たに作成されたオブジェクトはその親の能力の全てを直ちに獲得する。然しながら、ユーザは任意の条件下においてその新たなクラスの挙動をカスタム化することが可能である。
「ユーザインターフェース」は個人がソフトウエアアプリケーションと相互作用即ち対話することを可能とするアプリケーションの一部である。多くの場合において、ユーザインターフェースは「フォーム」を使用して作成される。フォームはディスプレイ上でユーザに対して提供される「フィールド」及び「トリム」の様相を特定する。フィールドは、ユーザがデータをエンターすることが可能な個別的な区域である。トリムはラベル等の固定情報であり、それは異なるフィールドに何をエンターさせるか又はそのアプリケーションにおける何等かのその他の目的を提供することをユーザに命令する。しばしば、これらのフォームはコードを使用して実現されるものではない。そうではなく、プログラマーが対話的にフォームを構築することを可能とするソフトウエア開発環境の一部である「フォームエディター」が存在している。フォームの定義はリポジトリー及び開発環境内に格納され且つアプリケーションが実行される場合にそのフォームの表示を与える。
1970年代及び1980年代のソフトウエア開発ツールは「キャラクタを基礎とした」ユーザインターフェースを使用していた。典型的に、このユーザインターフェースは24本のラインとライン当たり80個のキャラクタのフォームを表示することに制限されていた。これらのツールは、しばしば、アクティブなフォームと関連するコマンドを表示するためにターミナル上に25番目のラインを使用していた。より現代的なツールは、グラフィカルユーザインターフェース(GUI)を使用するフォームの実現を可能とさせる。GUIはより多数の及びより多様なユーザ制御でより複雑なフォームを実現することを可能とする。
一体的に、コード及びフォームはタスクを実施するために実行することが可能なアプリケーションを作成する。ユーザインターフェースを管理するプログラムの部分は「プレゼンテーション論理」と呼ばれる。これはユーザの入力をトラップし且つプログラムの動作をスタートさせ、ユーザに対して付加的な情報を促すか又はその他の態様でディスプレイを変化させるコードステートメントを包含している。このコードの残部は「ビジネス論理」と呼ばれる。ビジネス論理は、ワークフロー、データベースアクセス、トランズアクション及びユーザのコマンドの結果であるその他の動作を包含している。ビジネス論理及びプレゼンテーション論理に絡み合っていることが極めて一般的である。
データベース論理システム(DBMS)は、データベースからの情報を格納し、修正し且つ抽出することが可能なプログラムの集まりである。データベースからの情報に対する要求はクエリーの形態で行われ、それはスタイル化した質問である。クエリーを構成する1組の規則はクエリー言語として知られている。異なるDBMSは異なるクエリー言語をサポートするが、SQL(構造型クエリー言語)と呼ばれる半標準化したクエリー言語が存在している。
データベース内に格納されている情報は多用なフォーマットで提供することが可能である。殆どのDBMSはレポートの形態でデータを出力することを可能とするレポートライタープログラムを包含している。このレポートライタープログラムは、レポート発生器とも呼称され、1つ又はそれ以上のファイルから情報を抽出し且つその情報を特定されたフォーマットで提供するデータベース管理システムの一部である。レポートライターはある条件に合致し且つ選択したフィールドを行及び列で表示するレコードの選択を可能とする。データは円グラフ、棒グラフ及びその他の線図にフォーマットさせることが可能である。レポートフォーマットが作成されると、そのフォーマット仕様はファイル内に保存し且つ将来のプレゼンテーションのために再使用することが可能である。
リレーショナルデータベース管理システム(RDBMS)は、関連したテーブルの形態でデータを格納するデータベース管理システム(DBMS)の1つのタイプである。リレーショナルデータベースは、どのようにデータが関連しているか又はどのようにしてデータベースから抽出されるかに関しての2,3の仮定を必要とする場合がある。その結果、同一のデータベースは多数の異なる態様で見ることが可能である。リレーショナルデータベース管理システムにおいては、情報は、行及び列に配列されているデータを参照する例えばスプレッドシート等のテーブルの形態で格納される。リレーショナルシステムの1つの所望の特徴は、単一のデータベースを幾つかのテーブルにわたって拡布させることが可能であるという点である。
ソフトウエアアプリケーションは何等かの種類の「アーキテクチャ」を使用して実現される。アーキテクチャはアプリケーションの基本的なインフラストラクチャを記述する。アーキテクチャの1つの側面は関連するコンピュータの数に関するものである。単段ソフトウエアアプリケーションは、全てのアプリケーション及び/又はシステムが単一のコンピュータ上でランするものである。これはそのソフトウエアが他のソフトウエアアプリケーションに対して行うことを必要とする任意の外部的コールを包含している。例えば、ソフトウエアアプリケーションはデータを検索又はアップデートするためにデータベース管理システムを「コール」することが可能である。単段モデルにおいては、ソフトウエアアプリケーション及びデータベース管理システムの両方が単一のコンピュータ上でラン即ち稼動する。ユーザインターフェースは、フォームを表示し、ユーザが情報をエンターすることを可能とし、且つその入力を「ホスト」コンピュータへリターンすることが可能であるに過ぎない装置である「非プログラム式端末」上に表示させることが可能である。
クライエント/サーバーアプリケーション、即ち2段ソフトウエアアプリケーションは、ソフトウエアアプリケーションが1つのコンピュータ(クライエント)上でランし且つネットワーク接続を介して別のコンピュータ(サーバー)上でランするその他のソフトウエアアプリケーションに対して外部的コールを行うものである。
更により最近のアーキテクチャ革新はN段アプリケーションである。N段モデルにおいては、ソフトウエアアプリケーションの一部のみがクライエントワークステーション上でランされるに過ぎない。これは、通常、インテリジェントユーザインターフェース(即ちシンクライエント(thin client))である。特定のタスクを実施することが必要である場合、クライエントは要求されたビジネス論理を包含する「アプリケーションサーバー」を探し出し且つその作業は、実際に、アプリケーションサーバーをランするコンピュータ上で実施される。アプリケーションサーバーは、このクライエントにより要求された処理を完成するために、データベースサーバー等の別のコンピュータへコンタクトすることが必要な場合がある。この一連のイベントが究極的に無制限の数のコンピュータを関与させる場合があり、そのモデルはN段モデルと呼ばれる。
今日多くの組織が直面する1つの問題は、キャラクタインターフェースを使用し、性質上手順的であり且つ単段モデルで実現されるソフトウエアアプリケーションを開発するために多大の費用及び時間を投資しているということである。これらのアプリケーションは「レガシー」アプリケーションと通常呼ばれる。これらのアプリケーションをサポートし且つ向上させることは主要なチャレンジである。何故ならば、開発者は最早それらが作成された技術を教えられるものでないからである。更に、インターネット及び電子通商の現在の世界は、グラフィカルユーザインターフェースを使用し、性質上オブジェクト指向型であり且つN段モデルを使用して実現されるシステムを必要とする。組織がその既存のレガシーアプリケーションをグラフィカルユーザインターフェースを使用する現代的なオブジェクト指向型N段アプリケーションへ変換することを可能とする技術は未だに作成されていない。その結果、その組織は現代的なツールを使用してそのアプリケーションを完全に再設計し且つ書き直すための時間がかかり且つ高価な処理を行わねばならない。
本発明に基づく方法及びシステムはこれら及びその他の問題を解決するものである。例えば、本発明に基づく方法及びシステムは、レガシーソフトウエアアプリケーションをGUIに基づいたソフトウエアアプリケーションへ「変換」することが可能である。本発明によって意図されている変換は、システムの個々の側面の変換及び向上を包含している。単一処理において、レガシーソフトウエアアプリケーションのキャラクタを基礎としたユーザインターフェースはGUIへ変換させることが可能であり、コード及びデータ構造は適宜形成されるオブジェクトクラスとして統合させ、再形態化し且つ再生され、且つレガシーソフトウエアアプリケーションをクライエント/サーバー又はN段システムのいずれかとして動作させることを可能とするための向上及び付加を行うことが可能である。
本発明は手順言語コードを有する手順プログラムをオブジェクト指向型プログラムへ変換する方法に関するものであり、手順言語コードをスキャンし且つスキャンした手順言語コードに基づいてマップを作成し、スキャンした手順言語コードを中間コードとして格納し、該マップを使用して該手順言語コードの少なくとも1つのセグメントを処理し、処理したセグメントを使用して第一データ構造を作成し、該第一データ構造に基づいて該中間コードを修正し、且つ該修正した中間コードに基づいてオブジェクトクラスを有するオブジェクト指向型プログラムを発生する、ことを包含している。本方法は、又、該手順言語コードの所定のセグメントが検知された場合に該手順言語コードの1つのセグメントを処理するステップを中止し、且つ該所定のセグメントに基づいてその他の中間コードを修正することを包含することが可能である。本方法は、又は、該手順言語に基づいて第二データ構造を作成することを包含することが可能であり、且つ該第二データ構造は該手順プログラミング言語の1つのステートメントのプロパティを識別するノードを有する階層的ツリーとすることが可能である。該第一データ構造を作成するステップは、該処理したセグメントに基づいて該第二データ構造内のノードを探し出し、該第二データ構造のノードをルートノードへトラバースし、且つ該トラバースしたノードの内容を該第一データ構造内に包含させることを包含することが可能である。
本発明は、又、手順言語コードを有する手順プログラムをオブジェクト指向型プログラムへ変換するコンピュータによって実行可能なコードを包含する格納媒体に関するものであって、手順言語コードをスキャンし且つスキャンした手順言語コードに基づいてマップを作成するコード、スキャンした手順言語を中間コードとして格納するコード、該マップを使用して該手順言語コードの少なくとも1つのセグメントを処理するコード、該処理したセグメントを使用して第一データ構造を作成するコード、該第一データ構造に基づいて該中間コードを修正するコード、該修正した中間コードに基づいてオブジェクトクラスを有するオブジェクト指向型プログラムを発生するコード、を有している。本格納媒体は、又、該手順言語コードの所定のセグメントが検知された場合に該手順言語のセグメントの処理を中止するコード、及び該所定のセグメントに基づいてその他の中間コードを修正するコードを包含することが可能である。本格納媒体は、又、該手順言語に基づいて第二データ構造を作成するコードを包含することが可能であり、且つ該第二データ構造は該手順プログラミング言語の1つのステートメントのプロパティを識別するノードを有する階層的ツリーとすることが可能である。該第一データ構造を作成するコードは、該処理したセグメントに基づいて該第二データ構造内の1つのノードを探し出すコード、該第二データ構造のノードをルートノードへトラバースするコード、及び該トラバースしたノードの内容を該第一データ構造内に包含させるコードを包含することが可能である。
本発明は、又、伝送媒体において実施化され且つ手順言語コードを有する手順プログラムをオブジェクト指向型プログラムへ変換させるコンピュータによって実行可能な命令を包含するコンピュータデータ信号に関するものであって、手順言語コードをスキャンし且つスキャンした手順言語コードに基づいてマップを作成するデータ信号部分、スキャンした手順言語コードを中間コードとして格納するデータ信号部分、該マップを使用して該手順言語コードの少なくとも1つのセグメントを処理するデータ信号部分、該処理したセグメントを使用して第一データ構造を作成するデータ信号部分、該第一データ構造に基づいて該中間コードを修正するデータ信号部分、及び該修正した中間コードに基づいてオブジェクトクラスを有するオブジェクト指向型プログラムを発生するデータ信号部分を包含している。本コンピュータデータ信号は、又、該手順言語コードの所定のセグメントが検知された場合に該手順言語コードの1つのセグメントの処理を中止するデータ信号部分、及び該所定のセグメントに基づいてその他の中間コードを修正するデータ信号部分を包含することが可能である。本コンピュータデータ信号は、又、該手順言語に基づいて第二データ構造を作成するデータ信号部分を包含することが可能であり、且つ該第二データ構造は、該手順プログラミング言語の1つのステートメントのプロパティを識別するノードを有する階層的ツリーとすることが可能である。第一データ構造を作成する該データ信号部分は、該処理したセグメントに基づいて該第二データ構造内のノードを探し出すデータ信号部分、ルートノードへ該第二データ構造のノードをトラバースするデータ信号部分、該トラバースしたノードの内容を該第一データ構造内に包含させるデータ信号部分を包含することが可能である。
本発明は、又、手順言語コードを有する手順プログラムをオブジェクト指向型プログラムへ変換する方法に関するものであって、手順言語コードをスキャンし且つスキャンした手順言語コードに基づいてマップを作成し、該マップ及び該スキャンした手順言語コードをリポジトリー内にメタデータとして格納し、各コンポーネントの変換した表現に対し新たな組のターゲットメタデータコンテナを作成し、該処理したセグメントを使用して第一アブストラクトシンタックスツリーを作成するために手順メタデータ表現を使用して該手順言語コードの少なくとも1つのセグメントを処理し、該第一アブストラクトシンタックスツリーに基づいて該ターゲットメタデータコンテナをポピュレートし、且つ該第一アブストラクトシンタックスツリーに基づいてオブジェクトクラスを有するオリジナルの手順プログラムのオブジェクト指向型メタデータ表現を発生させる、ことを包含している。本方法は、更に、該手順言語コードの所定のセグメントが検知された場合に該手順言語コードの1つのセグメントの処理するステップを中止し、且つ該所定のセグメントに基づいて別のアブストラクトシンタックスツリーを修正することを包含することが可能である。本方法は、更に、該手順言語に基づいて第二アブストラクトシンタックスツリーを作成することを包含することが可能であり、その場合に、該第二アブストラクトシンタックスツリーは、該手順プログラミング言語の1つのステートメントのプロパティを識別するノードを有するアブストラクトシンタックスツリーとすることが可能である。該第一アブストラクトシンタックスツリーを作成するステップは、該処理したセグメントに基づいて該第二アブストラクトシンタックスツリーにおけるノードを探し出し、ルートノードへ該第二アブストラクトシンタックスツリーのノードをトラバースし、且つ該トラバースしたノードの内容を該第一アブストラクトシンタックスツリー内に包含させる、ことを包含することが可能である。
図面に例示した本発明の好適実施例を説明する場合に、説明の便宜上特定の用語を使用する。然しながら、本発明はそのように選択された特定の用語に制限されることを意図したものではなく、各特定の用語は同様の態様で動作する全ての技術的な均等物を包含するものであることを理解すべきである。
図1は本発明の方法及びシステムを実現することが可能なコンピュータシステムの1例を示している。本発明のこのシステム及び方法は、例えば、メインフレーム、パソコン(PC)、ハンドヘルドコンピュータ、サーバー等のコンピュータシステム上で稼動するソフトウエアアプリケーションの形態で実現することが可能である。このソフトウエアアプリケーションは、例えば、フロッピィディスク、コンパクトディスク、ハードディスク等のコンピュータシステムにより局所的にアクセス可能な記録媒体上に格納することが可能であり、又はコンピュータシステムから遠隔地にあり且つ例えばローカルエリアネットワーク又はインターネット等のネットワークに対してのハードワイヤード又はワイヤレス接続を介してアクセスすることが可能である。
本コンピュータシステムは、通常、システム100として呼称され、且つ中央処理装置(CPU)102、例えばランダムアクセスメモリ(RAM)等のメモリ104、プリンタインターフェース106、ディスプレイユニット108、ローカルエリアネットワーク(LAN)データ伝送制御器110、LANインターフェース112、ネットワーク制御器114、内部バス116、例えばキーボード、マウス等の1つ又はそれ以上の入力装置118を包含することが可能である。図示した如く、システム100は、例えば、ハードディスク120等のデータ記録装置へリンク122を介して接続することが可能である。
本発明のシステム及び方法は、レガシーアプリケーションをグラフィカルユーザインターフェースを使用する現代的なオブジェクト指向型N段アプリケーションへ変換するための変換を実施する。このことは、レガシーアプリケーションプログラムコードを解析し、レガシーコードに基づいてクラス及びそれらのメッソドを作成すると共にレガシーコードに基づいてグラフィカルユーザインターフェースを作成する処理を包含することが可能である。ある条件下において、レガシーコードの幾つかのセグメントの変換は所望でない場合があり、その場合には、該処理はオリジナルのコードを転送する場合があり又は新たなコードを置換させる場合がある。
図2は本発明の1実施例に基づくプロセスチャートの1例を示している。1実施例においては、該変換は、マイニング(mining)プロセス140で開始し、該プロセスは、ディスカバリー142、アナリシス144、コンフィギュレーション146、GUIスタイルウィザード148、拡張ウィザード150、アプリケーションアナリシスレポート152、プリパレーション(準備)154、及びレガシーソフトウエアアプリケーションから必要とされる全ての資源を回収し且つそれらを変換のために準備させることが必要なその他のステップを包含することが可能である。メタフォーマットで格納されると、メタコンポーネントは変換プロセス156変換1−変換4 158−164によって処理することが可能であり、その場合に、メタコンポーネントを処理し、再編成し且つ向上させることが可能である。この変換プロセス期間中に、レガシーメタコンポーネントはオブジェクトメタコンポーネントへ変換される。最後に、再生プロセス166期間中に、拡張ステップ168において、マイニングプロセス140からの結果に基づいてライブラリが構築され、且つ再生ステップ170において、オブジェクトメタコンポーネントは特定のオブジェクト指向型言語において実際のオブジェクトクラスとして実現される。
本発明の変換システムを上述した如く複数個のプロセスへ分離することは、本発明の幾つかの付加的な特徴を提供する。第一の特徴は、「任意の箇所から/任意の箇所へ」変換の作成である。何故ならば、メタコンポーネントの組立は変換システムによって定義することが可能だからである。例えば、特定のレガシーソフトウエアアプリケーションを変換させるために、レガシーコンポーネントをメタコンポーネントとしてリポジトリー内に格納することが可能なマイニングプロセス140を与えることが可能である。レガシー言語ソフトウエアアプリケーションを特定のオブジェクト言語へ変換させるために、変換プロセス156及びオブジェクトメタコンポーネントから所望のオブジェクト言語でオブジェクトクラスを作成することが可能な再生プロセス166も与えることが可能である。2番目の特徴は、変換の結果を変更することが所望される場合に、変換システムプロセスへ付加的な新たなステップを付加させることが可能であるということである。
例えば、特定の変換方法をカスタム化させるために、プロセスに対して「カスタム化」ステップを付加することが可能である。これらのカスタム化ステップは、変換システムにおけるその他のステップのうちの1つを実施する前又は後に、該コンポーネントのいずれか又は全てに対して変化を実施することが可能である。このようなカスタム化ステップは、コンポーネントに対して付加するか、それから削除するか、又はそれを変更するために使用することが可能である。例えば、1つ又はそれ以上のフォームから特定のフィールドを除去すること、対応するGUIに対して異なるフィールド又はその他の資源(例えばアイコン)を付加し且つ次いで関連するオブジェクトコードに対して変更を行うことが所望される場合がある。このインフラストラクチャのために可能であるその他の多数の特徴が存在している。
本発明に基づく方法の別の側面は、レガシーソフトウエアアプリケーション内の任意のステップ又はプロセス及び任意のコンポーネントから再開始可能なものとさせることが可能であるということである。例えば、処理の任意の部分期間中に電源障害が発生すると、変換システム及び方法は、電源障害が発生した時に処理中であったステップ及びコンポーネントから再開始させることが可能である。この特徴を達成するために、選択したリポジトリーが永続的な格納施設(例えば、データベースリポジトリー)であることが望ましい場合がある。
マイニング、変換及び再生プロセスの例示的な実施例について以下に詳細に説明する。
マイングプロセス
マイニングプロセス140は変換に必要な資源を発見し、それらをリポジトリー内に格納し且つそれら及び変換に必要とされる任意のその他のメタコンポーネントを用意する。好適には、マイニングプロセス140は完全な変換を阻止するようなレガシーソフトウエアアプリケーションにおいて見つかった任意の欠陥を報告する能力を有している。これらの欠陥は、最も一般的には、ソースコード又はフォーム定義等の欠落コンポーネントである。マイニングプロセス140は、又、既知の変換が存在しないが又は変換システムが未だに処理すべくプログラムされていないいずれかである場合にレガシー開発環境の能力に遭遇する場合に使用することが可能な入力をオペレータに提供することが可能である。このことは、そのプロセスの残部を稼動する前に、変換システムにおける任意の欠陥を補正するか又は変換システムを向上させるためにオペレータに対して機会を与える。
マイニングプロセス140は変換に必要な資源を発見し、それらをリポジトリー内に格納し且つそれら及び変換に必要とされる任意のその他のメタコンポーネントを用意する。好適には、マイニングプロセス140は完全な変換を阻止するようなレガシーソフトウエアアプリケーションにおいて見つかった任意の欠陥を報告する能力を有している。これらの欠陥は、最も一般的には、ソースコード又はフォーム定義等の欠落コンポーネントである。マイニングプロセス140は、又、既知の変換が存在しないが又は変換システムが未だに処理すべくプログラムされていないいずれかである場合にレガシー開発環境の能力に遭遇する場合に使用することが可能な入力をオペレータに提供することが可能である。このことは、そのプロセスの残部を稼動する前に、変換システムにおける任意の欠陥を補正するか又は変換システムを向上させるためにオペレータに対して機会を与える。
以下のステップはマイニングプロセス140により実施することが可能なステップの例である。説明する各ステップは、特定の変換方法に対して使用可能である場合も使用可能でない場合もある。更に、各変換方法は、その処理により発生される出力を変更する1組のコンフィギュレーション値を与えることが可能である。例えば、特定のコンフィギュレーション値は特定のパターンに基づいて結果的に得られるコンポーネントの名称変更を行うことが可能である。各コンフィギュレーション値はオペレータにより変更することが可能なデフォルト設定を有することが可能である。
ディスカバリー
ディスカバーステップ142はレガシーソフトウエア開発環境に質問を発し且つ特定のアプリケーション内に包含されるコンポーネントのカタログを展開させる。ディスカバリーステップは、スキャンしたコンピュータ上に存在するオペレーティングシステムに従って、物理的メモリブロック及び仮想メモリページ等の適宜の論理メモリをスキャンすることが可能である。スキャンしたコンポーネントは、これらに制限されるものではないが、ソースコード、ホームページ、アプリケーション構造、任意の関連したデータベースのスキーマ、フォーム、フレーム、手順、レコード定義、グローバル変数、定数、ホストルーチン等を包含することが可能である。これらのコンポーネントは、好適にはリポジトリー内にメタコンポーネントとして格納される。更に、ソースコードコンポーネントの場合、ソースコードは「トークン化」又は基本的なプログラミング記号のストリームに分解することが可能である。これらのコンポーネントのコピーは「リポジトリー」内にメタコンポーネントとして格納され、そこで、それらは繰返し検索され、修正され且つ保存されることが可能である。このリポジトリーは、メモリキャッシュ、ファイルシステム、データベース又は任意のその他の適宜の情報格納設備とすることが可能である。
ディスカバーステップ142はレガシーソフトウエア開発環境に質問を発し且つ特定のアプリケーション内に包含されるコンポーネントのカタログを展開させる。ディスカバリーステップは、スキャンしたコンピュータ上に存在するオペレーティングシステムに従って、物理的メモリブロック及び仮想メモリページ等の適宜の論理メモリをスキャンすることが可能である。スキャンしたコンポーネントは、これらに制限されるものではないが、ソースコード、ホームページ、アプリケーション構造、任意の関連したデータベースのスキーマ、フォーム、フレーム、手順、レコード定義、グローバル変数、定数、ホストルーチン等を包含することが可能である。これらのコンポーネントは、好適にはリポジトリー内にメタコンポーネントとして格納される。更に、ソースコードコンポーネントの場合、ソースコードは「トークン化」又は基本的なプログラミング記号のストリームに分解することが可能である。これらのコンポーネントのコピーは「リポジトリー」内にメタコンポーネントとして格納され、そこで、それらは繰返し検索され、修正され且つ保存されることが可能である。このリポジトリーは、メモリキャッシュ、ファイルシステム、データベース又は任意のその他の適宜の情報格納設備とすることが可能である。
アナリシス
アナリシスステップ144において、メタコンポーネントの情報の全てを解析し且つ各コンポーネントに対して1つのマップが作成される。該マップは、各ルーチン及び1つのルーチン内のセクションがトークンシステム内においてどこで開始し且つ停止するかに関する情報を包含することが可能である。更に、各コンポーネントに関するメトリックを使用してアプリケーションアナリシスレポート152を作成することが可能である。
アナリシスステップ144において、メタコンポーネントの情報の全てを解析し且つ各コンポーネントに対して1つのマップが作成される。該マップは、各ルーチン及び1つのルーチン内のセクションがトークンシステム内においてどこで開始し且つ停止するかに関する情報を包含することが可能である。更に、各コンポーネントに関するメトリックを使用してアプリケーションアナリシスレポート152を作成することが可能である。
妥当性検査
妥当性検査フェーズ期間中、レガシーアプリケーションにおける全てのコンポーネントの相互参照が発生される。この相互参照は1つのコンポーネントにより参照される全てのコンポーネント(モジュール、データ源、フォーム等)のリストを与える。次いで、リポジトリーをチェックして、レガシー環境のコンポーネントの全てがリポジトリー内に格納されていることを確保する。いずれかのコンポーネントが欠落していることが判明すると、その欠陥に対処することを可能とすべくオペレータに通知がなされる。このプロセスは参照されないコンポーネントについて継続して行うことが可能であるが、それらを参照するコンポーネントは完全に変換されることはない。
妥当性検査フェーズ期間中、レガシーアプリケーションにおける全てのコンポーネントの相互参照が発生される。この相互参照は1つのコンポーネントにより参照される全てのコンポーネント(モジュール、データ源、フォーム等)のリストを与える。次いで、リポジトリーをチェックして、レガシー環境のコンポーネントの全てがリポジトリー内に格納されていることを確保する。いずれかのコンポーネントが欠落していることが判明すると、その欠陥に対処することを可能とすべくオペレータに通知がなされる。このプロセスは参照されないコンポーネントについて継続して行うことが可能であるが、それらを参照するコンポーネントは完全に変換されることはない。
コンフィギュレーション
コンフィギュレーションステップ146期間中に、アナリシスステップ144からの情報を使用して初期的なコンフィギュレーション即ち形態を確立する。このコンフィギュレーションは、レガシーアプリケーション自身を記述するメタコンポーネント内に格納される。このメタコンポーネントは変換プロセス156を制御する。これらのパラメータの幾つかは妥当性検査フェーズ期間中に修正することが可能である。
コンフィギュレーションステップ146期間中に、アナリシスステップ144からの情報を使用して初期的なコンフィギュレーション即ち形態を確立する。このコンフィギュレーションは、レガシーアプリケーション自身を記述するメタコンポーネント内に格納される。このメタコンポーネントは変換プロセス156を制御する。これらのパラメータの幾つかは妥当性検査フェーズ期間中に修正することが可能である。
GUIスタイルウィザード
GUIスタイルウィザード148は、オペレータに、そのデフォルト仕様を変更することにより結果的に得られるグラフィカルユーザインターフェースをカスタム化させる能力を与える。このウィザードはカスタムメニューバーを作成し、ツールバー及びボタンバー定義が全てのグラフィカルフォームに対して適用されて結果的に得られるアプリケーションにおいて一貫性のある様相及び感じを与える。
GUIスタイルウィザード148は、オペレータに、そのデフォルト仕様を変更することにより結果的に得られるグラフィカルユーザインターフェースをカスタム化させる能力を与える。このウィザードはカスタムメニューバーを作成し、ツールバー及びボタンバー定義が全てのグラフィカルフォームに対して適用されて結果的に得られるアプリケーションにおいて一貫性のある様相及び感じを与える。
拡張ウィザード
拡張ウィザード150は、オペレータに、そのアプリケーションに対する新たな基礎クラスライブラリー、ビジネスオブジェクトライブライー及びフロントエンドライブラリーを作成することを変換プロセス156に指示する機会を与える。これらの新たなオブジェクトライブラリーはレガシーソフトウエアアプリケーションにおいて見つかったスキーマ仕様に基づいて構築され且つ新たなアプリケーションにおいて新たな特徴及び関数を開発するのに必要な時間を著しく減少させることが可能である。このステップがランされない場合には、変換がこれらのライブラリを作成することはない。
拡張ウィザード150は、オペレータに、そのアプリケーションに対する新たな基礎クラスライブラリー、ビジネスオブジェクトライブライー及びフロントエンドライブラリーを作成することを変換プロセス156に指示する機会を与える。これらの新たなオブジェクトライブラリーはレガシーソフトウエアアプリケーションにおいて見つかったスキーマ仕様に基づいて構築され且つ新たなアプリケーションにおいて新たな特徴及び関数を開発するのに必要な時間を著しく減少させることが可能である。このステップがランされない場合には、変換がこれらのライブラリを作成することはない。
アプリケーションアナリシスレポート
好適には、アプリケーションアナリシスレポート152は全体的なレガシーインフラストラクチャに関する包括的なレポートであり、且つ全ての資源及び各コンポーネントに関する詳細な情報及びメトリックの相互参照を包含している。それは、又、上述したような問題区域のリストを与えることが可能である。該メトリックは、レガシーアプリケーションにおけるコンポーネントの種類及び総数、ソースコードの全ライン数、各モジュールを構成するルーチンの数及び定義、アプリケーションにより提供される全てのコマンドのコンパイルを包含している。
好適には、アプリケーションアナリシスレポート152は全体的なレガシーインフラストラクチャに関する包括的なレポートであり、且つ全ての資源及び各コンポーネントに関する詳細な情報及びメトリックの相互参照を包含している。それは、又、上述したような問題区域のリストを与えることが可能である。該メトリックは、レガシーアプリケーションにおけるコンポーネントの種類及び総数、ソースコードの全ライン数、各モジュールを構成するルーチンの数及び定義、アプリケーションにより提供される全てのコマンドのコンパイルを包含している。
プリパレーション
プリパレーション(準備)ステップ154期間中、変換に使用される全ての付加的なターゲットOOメタコンポーネントはリポジトリー内に作成される。そのメタコンポーネントが変換プロセスの前のラン即ち稼動からリポジトリー内に存在する場合には、それらは破壊され且つ新たなメタコンポーネントが作成される。
プリパレーション(準備)ステップ154期間中、変換に使用される全ての付加的なターゲットOOメタコンポーネントはリポジトリー内に作成される。そのメタコンポーネントが変換プロセスの前のラン即ち稼動からリポジトリー内に存在する場合には、それらは破壊され且つ新たなメタコンポーネントが作成される。
変換プロセス
変換プロセス156は、現在リポジトリー内に格納されているレガシーメタコンポーネントがそれにより処理されてオブジェクトメタコンポーネントを作成するメカニズムを提供する。変換プロセス156は変換を実施し、その場合に、全レガシーアプリケーションを多段並列処理で変換することが可能である。変換プロセス156において、任意の特定のソースステートメント(コードのインスタンス)、又はフォーム部分、又はレガシーソフトウエアアプリケーションのコンポーネントの任意のその他の部分は1つ又はそれ以上のコンポーネント(又は手順)を何らかの態様で修正させるルールを潜在的にトリガすることが可能である。例えば、「フレーム」の変換期間中(フレームは、ユーザインターフェースを必要とし且つ関連するフォームを有する手順である)、変換プロセス156は1つのパラメータを発見する場合がある。そのパラメータはそのフレームを置換すべく作成中のオブジェクトクラスの属性となる。そのフレームの処理が中止され、オブジェクトクラスがリポジトリーから検索され、該属性がオブジェクトクラスへ付加され、該オブジェクトクラスはリポジトリーへリターンされ且つ該ソースの処理が再開される。同様に、フレームのホームページの処理において、1つのフィールドが該フォーム上において遭遇すると、属性が同様の態様で同一のオブジェクトクラスへ付加される。条件に依存して1つのコンポーネント(又は手順)から別のコンポーネントへコードの全ブロックを移動させる場合がある多くのその他のより複雑なトランズアクションが該プロセス内に存在している。
変換プロセス156は、現在リポジトリー内に格納されているレガシーメタコンポーネントがそれにより処理されてオブジェクトメタコンポーネントを作成するメカニズムを提供する。変換プロセス156は変換を実施し、その場合に、全レガシーアプリケーションを多段並列処理で変換することが可能である。変換プロセス156において、任意の特定のソースステートメント(コードのインスタンス)、又はフォーム部分、又はレガシーソフトウエアアプリケーションのコンポーネントの任意のその他の部分は1つ又はそれ以上のコンポーネント(又は手順)を何らかの態様で修正させるルールを潜在的にトリガすることが可能である。例えば、「フレーム」の変換期間中(フレームは、ユーザインターフェースを必要とし且つ関連するフォームを有する手順である)、変換プロセス156は1つのパラメータを発見する場合がある。そのパラメータはそのフレームを置換すべく作成中のオブジェクトクラスの属性となる。そのフレームの処理が中止され、オブジェクトクラスがリポジトリーから検索され、該属性がオブジェクトクラスへ付加され、該オブジェクトクラスはリポジトリーへリターンされ且つ該ソースの処理が再開される。同様に、フレームのホームページの処理において、1つのフィールドが該フォーム上において遭遇すると、属性が同様の態様で同一のオブジェクトクラスへ付加される。条件に依存して1つのコンポーネント(又は手順)から別のコンポーネントへコードの全ブロックを移動させる場合がある多くのその他のより複雑なトランズアクションが該プロセス内に存在している。
上述した並列処理を容易とさせるために、レガシーソフトウエアアプリケーションと新たなアプリケーションの両方から及び中間アプリケーション(又は「メタアプリケーション」)からのコンポーネントの中間表現を管理する能力を有する一時的な格納設備が設けられるべきである。このメタアプリケーションは、任意の特定のソフトウエア開発環境の特定の実現例に対して結び付けられるものではなく、それはこれらの環境のうちのいずれかにおいて見出される構造を包含するものであるから便利である。「メタコンポーネント」を操作することにより、レガシーソフトウエアアプリケーションを新たなアプリケーションへ変換するプロセスは3つの別個のプロセス、マイニング、変換、再生に分割することが可能である。
変換プロセス156の1つの実施例について以下に4つの変換として説明する。
変換1
変換1エンジン158はレガシーソースコードを分解し且つそれを容易に処理することが可能な構造型フォーマットへ編成する責任を有している。コンポーネントに対するソースコードはガイドとしてアナリシスステップ期間中に作成されたマップを使用して分解される。各パラメータ及び変数定義及び各ソースステートメントが分解され、編成され且つ内部フォーマットに翻訳される。このことは多数の態様で達成することが可能である。1つの態様は、1つのコンポーネントに対するレガシーソースコードをプロパティツリーデータ構造ヘ分解することである。プロパティツリーは階層的構造であり、それはツリー内の任意のノードにおいて無制限の数の識別子又はプロパティの格納を提供する。この分解は幾つかのステップを使用して達成される。
変換1エンジン158はレガシーソースコードを分解し且つそれを容易に処理することが可能な構造型フォーマットへ編成する責任を有している。コンポーネントに対するソースコードはガイドとしてアナリシスステップ期間中に作成されたマップを使用して分解される。各パラメータ及び変数定義及び各ソースステートメントが分解され、編成され且つ内部フォーマットに翻訳される。このことは多数の態様で達成することが可能である。1つの態様は、1つのコンポーネントに対するレガシーソースコードをプロパティツリーデータ構造ヘ分解することである。プロパティツリーは階層的構造であり、それはツリー内の任意のノードにおいて無制限の数の識別子又はプロパティの格納を提供する。この分解は幾つかのステップを使用して達成される。
第一ステップは、階層的プロパティツリーの形態におけるレガシープログラミング言語の文法表現を開発することである。変換の前に、図3にその1例を示してあるレガシープログラミング言語文法を作成し、それはレガシープログラミング言語の特性を表わす。レガシー言語がサポートする各異なるタイプのステートメントがレガシー言語において識別される(例えば、FOR−ENDFOR、CALL、PROMPT等)。これらのステートメントは共通タイプのステートメントをグループ化することにより階層にグループ化される。例えば、FOR−ENDFOR、及びWHILE−ENDWHILEは「ループ制御」と考えられる。単一ルートノード200がそのプロパティツリーに対して作成される。ルートノード200において、プロパティが全てのステートメントに対して共通なツリーにおいて作成される。例えば、「行番号」は全てのステートメントに対して共通なプロパティである。ルートノードの下側において、分類ノード202が上のステートメントに対して開発された階層を表わすツリーにおいて作成される。各分類ノード202において、これらのステートメントに対して共通のプロパティが実現される。例えば、「ループカウンタ」は全てのループ制御の共通の属性となる場合がある。最後に、各特定のステートメントを表わす適宜の分類ノード202においてステートメントノード204が作成される。そのステートメントに対してユニークなそのノードに対してプロパティが作成される。この方法において、そのステートメントに対してユニークなデフォルト値、ステートメントタイプで少なくとも1つの共通のプロパティが各ステートメントノード204において定義されるべきである。
変換1 158期間中、アブストラクトシンタックスツリーとして知られる別のタイプのツリーが各コンポーネントに対して展開される。アブストラクトシンタックスツリーは、完全に分解されたソースコードを包含すべく設計された階層的プロパティツリーの特別バージョンである。アブストラクトシンタックスツリーの1つの例を図4に示してある。ルートノード250が作成され且つプロパティがそのコンポーネントを全体として識別するルートノード250において定義される。ルーチンノード252がそのコンポーネント内に存在するコードの各ブロックに対して作成される。異なるタイプのコードブロックを保持する分類ノード(不図示)を、このことが再生プロセス166(本文書において後に説明する)に対して有益性を提供するものである場合に、作成することが可能である。各ルーチンノード252はそのルーチンを識別する定義されたパラメータを有している。セクションノード254,256,258はルーチンノード252の下側に作成され且つルーチンの異なるセクションを識別する。以下の3つのセクションタイプは典型的なものであり、即ちパラメータノード254、局所変数ノード256、ステートメントノード258である。
変換1 158は、又、マイニングプロセス140のアナリシスステップ144期間中に作成されたマップを使用する。該マップは、各ルーチン及びルーチン内のセクションがトークンストリーム内のどこで開始し且つ停止するかに関する情報を包含している。コードのパラメータセクションに対する第一トークンにおいて開始し、変換1 158は、それが完全な宣言ステートメントを見つけ出すまでトークンを処理する。次いで、それは宣言ノード260をパラメータセクションノード254へ付加する。そのノードにおいて、それはパラメータを定義し、該プロパティはパラメータとして宣言されている変数を完全に定義する。このことは局所的変数及びステートメントセクションに対して繰返される。変換1 158がステートメントタイプを識別すると、それはそのステートメントを表わす図3に示したレガシー言語文法ツリー内のノードを探し出す。それは、ルートノードを含みルートノードまで任意の分類ノードのプロパティであるか又はステートメントを定義するプロパティの全てをコピーするツリーを上方へトラバースする。次いで、これらのプロパティはコンポーネントプロパティツリーのステートメントノードにおいて定義される。次いで、変換1 158は該ステートメントを構文解析し且つ各プロパティのデフォルト値をそのステートメント内において見つけられた正確な値で置換させる。
更に、変換1 158はステートメント間の関係を維持する。例えば、FORステートメントの後で且つ対応するENDFOR前に見つけられたステートメントはFORステートメントノードの子ノードとして作成される。このネスティング(入れ子)は必要な深さだけ継続することが可能である。このような態様におけるノードのネスティングは、後に変換期間中に全体的なコードブロックを移動させることを容易なものとさせる。このプロセスが完了すると、レガシーソースコードの完全な編成されたバージョンが作成され且つそれについて動作することが可能である。XMLドキュメントとして表現されたアブストラクトシンタックスツリーの可視化サンプルを図6に示してある。
変換2
変換2エンジン160は、レガシーフォームを、再生期間中にグラフィカルインターフェースを作成するために使用することが可能なオブジェクトメタコンポーネントへ変換させる役務を司る。このことは、レガシーソースコードを変換1 158で処理した態様と同様の態様で達成することが可能である。このプロセスは、2つの参照プロパティツリー、即ちグラフィカルインターフェースフォームテンプレートツリー、及びOOクラス階層ツリーを使用する。
変換2エンジン160は、レガシーフォームを、再生期間中にグラフィカルインターフェースを作成するために使用することが可能なオブジェクトメタコンポーネントへ変換させる役務を司る。このことは、レガシーソースコードを変換1 158で処理した態様と同様の態様で達成することが可能である。このプロセスは、2つの参照プロパティツリー、即ちグラフィカルインターフェースフォームテンプレートツリー、及びOOクラス階層ツリーを使用する。
グラフィカルインターフェースフォームテンプレートツリーは空のグラフィカルインターフェースフォームの表現を包含している。このフォームに対するルートノードはそのフォームの基本的特性の記述を包含している。プロパティツリーは3個のルートノードを有している。第一ルートノードは「ウインドウ」を記述するプロパティを包含している。ウインドウはグラフィカルユーザインターフェース上で情報を表示するための区域である。第二ルートノードはメニューバーに対するプレースフォルダを包含している。メニューバーは、ユーザが一連のコマンドから選択することを可能とするウインドウの上部に通常配置される特別の区域である。第三ルートノードはウインドウ自身の内容を記述する子ノードを包含している。より効率的なプロセスを作成するために、ウインドウ内容に対するデフォルトコンフィギュレーションはプロパティツリー内に供給されるべきである。OOクラス階層ツリーはターゲットオブジェクト指向型ソフトウエア開発環境のクラス階層を記述する。このプロパティツリーはレガシー言語文法ツリーと実質的に同様に作成される。全てのOOモデルソフトウエア開発環境は「システム」又は構築クラス階層を有している。このクラス階層は開発環境を構成する基礎クラスオブジェクトを定義する。OOクラス階層ツリーは、その階層における各クラスの各属性を記述するプロパティツリーを実現することにより作成される。
図5を参照すると、変換2 160はレガシーフォームを表わすリポジトリーからメタコンポーネントを検索する(ステップS350)。新たなプロパティツリーが作成され、それはレガシーフォームに対するグラフィカルインターフェースフォーム置換を表わす(ステップS352)。このことは、最初に、グラフィカルインターフェースフォームテンプレートをコピーすることにより達成される。変換2 160はネタコンポーネントをスキャンし(ステップS354)、且つ、スキャンしたコードが名前付きデータエントリフィールドでない場合には(No、ステップS356)、レガシーキャラクタフォームに関する各項目に対して(フィールド、トリム等)、変換2 160は、グラフィカルフォーム上にどの置換オブジェクトを配置させるかを決定する(ステップS358)。この決定がなされると、本プロセスはOOクラス階層ツリー内のオブジェクトクラスをルックアップすることが可能であり且つルートノードに至るまでずっと該ツリーをトラバースし且つ途中でプロパティを回収することによりそのプロパティの全てを回収する(ステップS360)。次いで、フィールドノードがアブストラクトシンタックスツリーのフォームセクション内に作成され且つコピーしたプロパティが、そのノードにおいて定義されデフォルト値はレガシーフォームから読取られたものにより置換される(ステップS362)。レガシーフォームに関する全ての項目が処理されると、残存するものはグラフィカルインターフェースの完全なる記述である。
2つのその他のプロセスをグラフィカルインターフェースの作成期間中に実現させることが可能である。第一に、名前付きデータエントリフィールドがレガシーフォーム上で遭遇した場合に(Yes、ステップSS356)、そのフォームの処理が中止され(ステップS364)、一方そのフォームと関連するソースコードを置換するオブジェクトクラスに対するメタコンポーネントが検索され且つ属性がそのフィールドの定義とマッチするオブジェクトへ付加される(ステップS366)。このことが行われる理由は、多くのレガシーソフトウエア開発環境において、フォーム上のフィールドはフォームのソースコードにおける暗示的に宣言された変数であるからである。OOモデルにおいて、それらはそのオブジェクトの宣言された属性となる。第二に、レガシーフォームを処理した後に、該プロセスはそのフォームのソースコードに対して変換1 158において作成されたアブストラクトシンタックスツリーをスキャンする。特に、該プロセスはレガシーソース内において見出されたユーザコマンドを探し出す。いずれかが見つけられると、幾つかのGUI制御(ボタン、ツールバーアイコン、又はメニューバーコマンド)のうちのいずれか1つをGUIスタイルウィザードからの入力に基づいてグラフィカルユーザインターフェースプロパティツリー上に作成することが可能である。次いで、1つ又はそれ以上の「イベント」が該フォームに対する新たなコード論理を表わすアブストラクトシンタックスツリーへ付加される。これらの付加された「イベント」は新たなGUIフォーム制御をレガシーアプリケーションにおけるメニューコマンドと関連する論理の変換した表現であるオブジェクトクラスにおいて発生されたメッソドと関連させる。
変換3
変換3 162において、各レガシーソースコードコンポーネントに対するアブストラクトシンタックスツリーがリポジトリーから検索される。対応するオブジェクトメタコンポーネントも検索される。アブストラクトシンタックスツリーにおける全てのルーチンノードに対して、「メッソド」ノードがオブジェクトメタコンポーネント内に作成される。メッソドはオブジェクトに関し動作することが可能なオブジェクト内のソースコードである。変換3 162は、最初に、該ルーチンの任意のパラメータを取り且つそれらを該メッソドのパラメータとして宣言する。
変換3 162において、各レガシーソースコードコンポーネントに対するアブストラクトシンタックスツリーがリポジトリーから検索される。対応するオブジェクトメタコンポーネントも検索される。アブストラクトシンタックスツリーにおける全てのルーチンノードに対して、「メッソド」ノードがオブジェクトメタコンポーネント内に作成される。メッソドはオブジェクトに関し動作することが可能なオブジェクト内のソースコードである。変換3 162は、最初に、該ルーチンの任意のパラメータを取り且つそれらを該メッソドのパラメータとして宣言する。
同じことが局所的変数について行われる。次いで、該ステートメントが処理される。各レガシーステートメントタイプに対して、変換3 162はどのようにしてステートメントを変換し且つどこにそれを配置させるかを決定する。多くの場合において、該エンジンは全体的なルーチン又は1つのルーチンのサブセットを完全に異なるオブジェクトへ完全に移動させることを決定することが可能である。このことは、レガシーソフトウエア開発言語の特徴が新たなソフトウエア開発環境へ容易に翻訳されない場合に発生する。
変換3 162の別の部分は、レガシーソフトウエアアプリケーションの手順コンテキストをオブジェクトコンテキストへ変換することである。このことは2つの側面を有している。第一に、手順環境において、1つのコンポーネントがそれを「コール」することにより別のコンポーネントを喚起させる。OOモデルにおいて、手順をコールする代わりに、オブジェクトのインスタンス(即ちコピー)が作成され且つそのメッソドのうちの1つが喚起される。変換3 162が何等かの種類のレガシーコールステートメントに遭遇すると、それは処理を中止し、コールされたオブジェクトを定義するオブジェクトメタコンポーネントを検索し、且つそのコールに対するパラメータの妥当性検査を行う。幾つかのインスタンスにおいて、該オブジェクトは調節を必要とする場合がある。従って、コールを行うコンポーネントにおいて、コールステートメントは幾つかの異なるステートメントと置換される。第一ステートメントはオブジェクトリクエストブローカー(ORB)に対するものである。ORBは特別なオブジェクトであり、そのジョブは要求に基づいてその他のオブジェクトの作成を管理することである。付加された次のステートメントはオブジェクトの処理を「喚起」又は即ち開始させる全ての変換されたコンポーネントに対して共通の特別のメッソドに対するコールである。
手順からオブジェクトコンテキストへの変換の2番目の側面は手順ソフトウエア開発ツールとOOソフトウエア開発ツールとの間の文脈的差異である。ステートメントの処理期間中に、各トークンがチェックされて、そのクラスの属性に変換されたものに対する参照であるか否かを判別する。そうである場合には、適宜の変化がソースに対して行われ、従って適宜の変数が参照される。
変換4
変換4 164はこの例示的実施例における変換である。それは残存することがあるが変換3 162において実施される処理の全てに対して並列的に取扱われない場合のある多様な小さな問題のクリンナップを包含する。
変換4 164はこの例示的実施例における変換である。それは残存することがあるが変換3 162において実施される処理の全てに対して並列的に取扱われない場合のある多様な小さな問題のクリンナップを包含する。
再生プロセス
再生プロセス166はマイニングプロセス140の逆である。再生プロセス166期間中、変換プロセス156期間中に作成されたオブジェクトメタコンポーネントを使用して新たなソフトウエア開発環境内に配置される実際のオブジェクトクラスを作成する。更に、その新たなグラフィカルインターフェースフォーム及び任意のその他の必要なコンポーネントが作成され且つ新たなソフトウエア開発環境に配置される。
再生プロセス166はマイニングプロセス140の逆である。再生プロセス166期間中、変換プロセス156期間中に作成されたオブジェクトメタコンポーネントを使用して新たなソフトウエア開発環境内に配置される実際のオブジェクトクラスを作成する。更に、その新たなグラフィカルインターフェースフォーム及び任意のその他の必要なコンポーネントが作成され且つ新たなソフトウエア開発環境に配置される。
拡張
拡張ステップ168は、マイニングプロセス140を期間中にランされる拡張ウィザードにより特定されるように、新たな基礎クラスライブラリー、ビジネスオブジェクトライブラリー、フロントエンドコンポーネントライブラリーを構築する。
拡張ステップ168は、マイニングプロセス140を期間中にランされる拡張ウィザードにより特定されるように、新たな基礎クラスライブラリー、ビジネスオブジェクトライブラリー、フロントエンドコンポーネントライブラリーを構築する。
再生
再生ステップ170において、実際のオブジェクトクラス及びGUIフォームがその中に包含される仕様に従ってオブジェクトメタコンポーネントから発生される。
再生ステップ170において、実際のオブジェクトクラス及びGUIフォームがその中に包含される仕様に従ってオブジェクトメタコンポーネントから発生される。
多数の付加的な修正及び本開示の変形例が上述した説明に鑑み可能なものである。従って、特許請求の範囲内において、本発明を本明細書に特に記載したもの以外に実施することが可能であることを理解すべきである。
Claims (16)
- 手順言語コードを有する手順プログラムをオブジェクト指向型プログラムへ変換する方法において、
手順言語コードをスキャンし且つスキャンした手順言語コードに基づいてマップを作成し、
スキャンした手順言語コードを中間コードとして格納し、
前記マップを使用して前記手順言語コードの少なくとも1つのセグメントを処理し、
前記処理したセグメントを使用して第一データ構造を作成し、
前記第一データ構造に基づいて前記中間コードを修正し、
前記修正した中間コードに基づいてオブジェクトクラスを有するオブジェクト指向型プログラムを発生する、
ことを包含する方法。 - 請求項1において、更に、
前記手順言語コードの所定のセグメントが検知された場合に前記手順言語コードの1つのセグメントを処理するステップを中止し、
前記所定のセグメントに基づいてその他の中間コードを修正する、
ことを包含している方法。 - 請求項1において、更に、前記手順言語に基づいて第二データ構造を作成することを包含しており、前記第二データ構造が前記手順プログラミング言語の1つのステートメントのプロパティを識別するノードを具備する階層的ツリーである方法。
- 請求項3において、前記第一データ構造を作成するステップが、処理したセグメントに基づいて前記第二データ構造内の1つのノードを探し出し、前記第二データ構造のノードをルートノードへトラバースし、前記第一データ構造内のトラバースしたノードの内容を包含すること、を包含している方法。
- 手順言語コードを有する手順プログラムをオブジェクト指向型プログラムへ変換するコンピュータによって実行可能なコードを包含している格納媒体において、
手順言語コードをスキャンし且つスキャンした手順言語コードに基づいてマップを作成するコード、
スキャンした手順言語コードを中間コードとして格納するコード、
前記マップを使用して前記手順言語コードの少なくとも1つのセグメントを処理するコード、
前記処理したセグメントを使用して第一データ構造を作成するコード、
前記第一データ構造に基づいて前記中間コードを修正するコード、
前記修正した中間コードに基づいてオブジェクトクラスを有するオブジェクト指向型プログラムを発生するコード、
を包含している格納媒体。 - 請求項5において、更に、
前記手順言語コードの所定のセグメントが検知された場合に前記手順言語コードの1つのセグメントを処理することを中止するコード、
前記所定のセグメントに基づいてその他の中間コードを修正するコード、
を有している格納媒体。 - 請求項5において、更に、前記手順言語に基づいて第二データ構造を作成するコードを有しており、前記第二データ構造が前記手順プログラミング言語の1つのステートメントのプロパティを識別する1つのノードを有している階層的ツリーである格納媒体。
- 請求項7において、前記第一データ構造を作成するコードが、
前記処理したセグメントに基づいて前記第二データ構造内の1つのノードを見つけ出すためのコード、
前記第二データ構造のノードをルートノードへトラバースするためのコード、
前記第一データ構造内のトラバースしたノードの内容を包含するためのコード、
を包含している格納媒体。 - 伝送媒体において実施化され且つ手順言語コードを有する手順プログラムをオブジェクト指向型プログラムへ変換するコンピュータによって実行可能な命令を包含するコンピュータデータ信号において、
手順言語コードをスキャンし且つスキャンした手順言語コードに基づいてマップを作成するデータ信号部分、
スキャンした手順言語コードを中間コードとして格納するデータ信号部分、
前記マップを使用して前記手順言語コードの少なくとも1つのセグメントを処理するデータ信号部分、
前記処理したセグメントを使用して第一データ構造を作成するデータ信号部分、
前記第一データ構造に基づいて前記中間コードを修正するデータ信号部分、
前記修正した中間コードに基づいてオブジェクトクラスを有するオブジェクト指向型プログラムを発生するデータ信号部分、
を有しているコンピュータデータ信号。 - 請求項9において、更に、
前記手順言語コードの所定のセグメントが検知された場合に前記手順言語コードの1つのセグメントの処理を中止するデータ信号部分、
前記所定のセグメントに基づいてその他の中間コードを修正するデータ信号部分、
を有しているコンピュータデータ信号。 - 請求項9において、更に、前記手順言語に基づいて第二データ構造を作成するデータ信号を有しており、前記第二データ構造は前記手順プログラミング言語の1つのステートメントのプロパティを識別する1つのノードを有する階層的ツリーであるコンピュータデータ信号。
- 請求項11において、前記第一データ構造を作成するデータ信号部分が前記処理したセグメントに基づいて第二データ構造内の1つのノードを探し出すデータ信号部分と、前記第二データ構造のノードをルートノードへトラバースするデータ信号部分と、前記第一データ構造内に前記トラバースしたノードの内容を包含させるデータ信号部分とを包含しているコンピュータデータ信号。
- 手順言語コードを有する手順プログラムをオブジェクト指向型プログラムへ変換する方法において、
手順言語コードをスキャンし且つスキャンした手順言語コードに基づいてマップを作成し、
前記マップ及びスキャンした手順言語コードをメタデータとしてリポジトリー内に格納し、
各コンポーネントの変換した表現に対し新たな組のターゲットメタデータコンテナを作成し、
手順メタデータ表現を使用して手順言語コードの少なくとも1つのセグメントを処理して前記処理したセグメントを使用して第一アブストラクトシンタックスツリーを作成し、
前記第一アブストラクトシンタックスツリーに基づいて前記ターゲットメタデータコンテナをポピュレートし、
前記第一アブストラクトシンタックスツリーに基づいてオブジェクトクラスを有するオリジナルの手順プログラムのオブジェクト指向型メタデータ表面を発生する、
ことを包含している方法。 - 請求項13において、更に、
前記手順言語コードの所定のセグメントが検知された場合に前記手順言語コードの1つのセグメントを処理するステップを中止し、
前記所定のセグメントに基づいて別のアブストラクトシンタックスツリーを修正する、
ことを包含している方法。 - 請求項13において、更に、前記手順言語に基づいて第二アブストラクトシンタックスツリーを作成することを包含しており、前記第二アブストラクトシンタックスツリーは手順プログラミング言語の1つのステートメントのプロパティを識別する1つのノードを有するアブストラクトシンタックスツリーとすることが可能である方法。
- 請求項15において、前記第一アブストラクトシンタックスツリーを作成するステップが、前記処理したセグメントに基づいて第二アブストラクトシンタックスツリー内の1つのノードを探し出し、前記第二アブストラクトシンタックスツリーのノードをルートノードへトラバースし、且つ前記トラバースしたノードの内容を前記第一アブストラクトシンタックスツリー内に包含させることを包含している方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US29020301P | 2001-05-11 | 2001-05-11 | |
PCT/US2002/014933 WO2002093367A1 (en) | 2001-05-11 | 2002-05-10 | Method and system for transforming legacy software applications into modern object-oriented systems |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005515518A true JP2005515518A (ja) | 2005-05-26 |
Family
ID=23114953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002589976A Abandoned JP2005515518A (ja) | 2001-05-11 | 2002-05-10 | レガシーソフトウエアアプリケーションを現代的オブジェクト指向型システムへ変換する方法及びシステム |
Country Status (13)
Country | Link |
---|---|
US (1) | US7467375B2 (ja) |
EP (1) | EP1388054B1 (ja) |
JP (1) | JP2005515518A (ja) |
KR (1) | KR20040004619A (ja) |
CN (1) | CN1509433A (ja) |
AT (1) | ATE476702T1 (ja) |
AU (1) | AU2008201056A1 (ja) |
BR (1) | BR0209497A (ja) |
CA (1) | CA2446162A1 (ja) |
DE (1) | DE60237200D1 (ja) |
IL (1) | IL158696A0 (ja) |
WO (1) | WO2002093367A1 (ja) |
ZA (1) | ZA200308593B (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015532991A (ja) * | 2012-09-25 | 2015-11-16 | ザ・ボーイング・カンパニーTheBoeing Company | モデル化された依存関係に基づく、レガシーソフトウェアシステムのモダニゼーション |
Families Citing this family (206)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7000230B1 (en) | 2000-06-21 | 2006-02-14 | Microsoft Corporation | Network-based software extensions |
US7346848B1 (en) | 2000-06-21 | 2008-03-18 | Microsoft Corporation | Single window navigation methods and systems |
US6948135B1 (en) | 2000-06-21 | 2005-09-20 | Microsoft Corporation | Method and systems of providing information to computer users |
US6883168B1 (en) | 2000-06-21 | 2005-04-19 | Microsoft Corporation | Methods, systems, architectures and data structures for delivering software via a network |
US7624356B1 (en) | 2000-06-21 | 2009-11-24 | Microsoft Corporation | Task-sensitive methods and systems for displaying command sets |
US7191394B1 (en) | 2000-06-21 | 2007-03-13 | Microsoft Corporation | Authoring arbitrary XML documents using DHTML and XSLT |
US6983448B2 (en) * | 2001-07-12 | 2006-01-03 | International Business Machines Corporation | Open framework for the definition of metadata |
US8301657B1 (en) * | 2002-05-09 | 2012-10-30 | Teradata Us, Inc. | Set-level database access for performing row-sequential operations |
US7370066B1 (en) | 2003-03-24 | 2008-05-06 | Microsoft Corporation | System and method for offline editing of data files |
US7415672B1 (en) * | 2003-03-24 | 2008-08-19 | Microsoft Corporation | System and method for designing electronic forms |
US7913159B2 (en) | 2003-03-28 | 2011-03-22 | Microsoft Corporation | System and method for real-time validation of structured data files |
US7296017B2 (en) | 2003-03-28 | 2007-11-13 | Microsoft Corporation | Validation of XML data files |
US20080320054A1 (en) * | 2003-04-09 | 2008-12-25 | Cindy Howard | Database and Software Conversion System and Method |
US7240338B1 (en) | 2003-05-29 | 2007-07-03 | Itt Manufacturing Enterprises, Inc. | Computer language translation system and method of converting procedural computer language software to object-oriented computer language software |
US7451392B1 (en) | 2003-06-30 | 2008-11-11 | Microsoft Corporation | Rendering an HTML electronic form by applying XSLT to XML using a solution |
US7406660B1 (en) | 2003-08-01 | 2008-07-29 | Microsoft Corporation | Mapping between structured data and a visual surface |
US7334187B1 (en) | 2003-08-06 | 2008-02-19 | Microsoft Corporation | Electronic form aggregation |
US7272821B2 (en) * | 2003-08-25 | 2007-09-18 | Tech Mahindra Limited | System and method of universal programming language conversion |
US7318216B2 (en) * | 2003-09-24 | 2008-01-08 | Tablecode Software Corporation | Software application development environment facilitating development of a software application |
US7904819B2 (en) * | 2003-12-03 | 2011-03-08 | International Business Machines Corporation | Self-configuring component for recognizing and transforming host data |
US20050138606A1 (en) * | 2003-12-17 | 2005-06-23 | Sujit Basu | System and method for code migration |
US7640497B1 (en) | 2003-12-22 | 2009-12-29 | Apple Inc. | Transforming a hierarchical data structure according to requirements specified in a transformation template |
US8819072B1 (en) | 2004-02-02 | 2014-08-26 | Microsoft Corporation | Promoting data from structured data files |
CN100337203C (zh) * | 2004-04-05 | 2007-09-12 | 中国科学院计算技术研究所 | 一种遗产代码向现代语言变换过程中的控制流变换方法 |
EP1754146A4 (en) * | 2004-04-26 | 2009-04-22 | Google Inc | METHOD AND SYSTEMS FOR DYNAMICALLY CREATING DISTRIBUTED INTERACTIVE APPLICATIONS FROM HIGH PROGRAMMING LANGUAGES |
US7496837B1 (en) | 2004-04-29 | 2009-02-24 | Microsoft Corporation | Structural editing with schema awareness |
US7281018B1 (en) | 2004-05-26 | 2007-10-09 | Microsoft Corporation | Form template data source change |
US7774620B1 (en) | 2004-05-27 | 2010-08-10 | Microsoft Corporation | Executing applications at appropriate trust levels |
US7692636B2 (en) | 2004-09-30 | 2010-04-06 | Microsoft Corporation | Systems and methods for handwriting to a screen |
US7636912B2 (en) * | 2004-10-28 | 2009-12-22 | Microsoft Corporation | Custom assembly to extend a wizard |
US8487879B2 (en) | 2004-10-29 | 2013-07-16 | Microsoft Corporation | Systems and methods for interacting with a computer through handwriting to a screen |
US7712022B2 (en) | 2004-11-15 | 2010-05-04 | Microsoft Corporation | Mutually exclusive options in electronic forms |
US7721190B2 (en) | 2004-11-16 | 2010-05-18 | Microsoft Corporation | Methods and systems for server side form processing |
US7904801B2 (en) | 2004-12-15 | 2011-03-08 | Microsoft Corporation | Recursive sections in electronic forms |
US7937651B2 (en) | 2005-01-14 | 2011-05-03 | Microsoft Corporation | Structural editing operations for network forms |
US7725834B2 (en) | 2005-03-04 | 2010-05-25 | Microsoft Corporation | Designer-created aspect for an electronic form template |
US8010515B2 (en) | 2005-04-15 | 2011-08-30 | Microsoft Corporation | Query to an electronic form |
AU2012201466B2 (en) * | 2005-06-27 | 2014-07-03 | Csc Technology Singapore Pte Ltd | Code Transformation |
EP1910920A4 (en) | 2005-06-27 | 2011-03-09 | Quipoz Pty Ltd | CODE TRANSFORMATION |
US8200975B2 (en) | 2005-06-29 | 2012-06-12 | Microsoft Corporation | Digital signatures for network forms |
US7739696B2 (en) * | 2005-09-08 | 2010-06-15 | Honeywell International Inc. | Message translation systems and methods |
US7730477B2 (en) * | 2005-09-26 | 2010-06-01 | Bea Systems Inc. | System and method for propagation in a web portal system |
US7752651B2 (en) * | 2005-09-26 | 2010-07-06 | Bea Systems Inc. | System and method for propagating security information in a web portal system |
US8001459B2 (en) | 2005-12-05 | 2011-08-16 | Microsoft Corporation | Enabling electronic documents for limited-capability computing devices |
KR100771057B1 (ko) * | 2005-12-26 | 2007-10-29 | 주식회사 신지소프트 | 모바일 플랫폼의 중간 언어 변환 장치 및 그 방법 |
US7779343B2 (en) * | 2006-01-30 | 2010-08-17 | Microsoft Corporation | Opening network-enabled electronic documents |
WO2007129224A2 (en) * | 2006-02-10 | 2007-11-15 | Make Technologies, Inc. | Legacy software modernization system |
CN100571167C (zh) * | 2006-02-24 | 2009-12-16 | 国际商业机器公司 | Web服务业务流程的单元测试的方法和设备 |
US8751946B2 (en) * | 2006-04-05 | 2014-06-10 | International Business Machines Corporation | Enhanced display of properties for a program object |
US8812556B2 (en) * | 2006-04-06 | 2014-08-19 | International Business Machines Corporation | Storing modification data for recreating modifications |
US7716653B2 (en) * | 2006-04-06 | 2010-05-11 | International Business Machines Corporation | Configurable importers and resource writers for converting data into another format |
US20070271553A1 (en) * | 2006-05-22 | 2007-11-22 | Micro Focus (Us), Inc. | Method and system for translating assembler code to a target language |
US7792853B2 (en) * | 2006-11-08 | 2010-09-07 | Ragothaman Subbian | Presenting data flow in legacy program |
KR101371619B1 (ko) * | 2007-02-14 | 2014-03-06 | 삼성전자주식회사 | 레거시 시스템을 컴포넌트화하는 장치 및 방법 |
US8930331B2 (en) | 2007-02-21 | 2015-01-06 | Palantir Technologies | Providing unique views of data based on changes or rules |
US20080235658A1 (en) * | 2007-03-21 | 2008-09-25 | Asaf Adi | Code generation for real-time event processing |
US8281287B2 (en) * | 2007-11-12 | 2012-10-02 | Finocchio Mark J | Compact, portable, and efficient representation of a user interface control tree |
US8707257B2 (en) * | 2007-11-28 | 2014-04-22 | Red Hat, Inc. | Automatic object instantiation |
US8504986B2 (en) * | 2008-01-23 | 2013-08-06 | Red Hat, Inc. | Calling functions as methods |
US8516458B2 (en) * | 2008-02-29 | 2013-08-20 | Iti Scotland Limited | System representation and handling techniques |
US8762938B2 (en) * | 2008-04-28 | 2014-06-24 | Salesforce.Com, Inc. | Object-oriented system for creating and managing websites and their content |
US9639331B2 (en) | 2008-07-09 | 2017-05-02 | International Business Machines Corporation | Service interface creation and modification for object-oriented services |
US9348499B2 (en) | 2008-09-15 | 2016-05-24 | Palantir Technologies, Inc. | Sharing objects that rely on local resources with outside servers |
US20130227533A1 (en) * | 2008-11-06 | 2013-08-29 | Albert Donald Tonkin | Code transformation |
US8341608B2 (en) * | 2008-11-13 | 2012-12-25 | Visicom Media, Inc. | Cross-browser toolbar and method thereof for facilitating cross-browser interoperability |
US20100153933A1 (en) * | 2008-12-17 | 2010-06-17 | Karsten Bohlmann | Path Navigation In Abstract Syntax Trees |
US8312437B2 (en) * | 2008-12-30 | 2012-11-13 | Microsoft Corporation | Structured search in source code |
CA2816272C (en) * | 2009-10-28 | 2017-06-27 | Advanced Businesslink Corporation | Role-based modernization of legacy applications |
US8402064B2 (en) * | 2010-02-01 | 2013-03-19 | Oracle International Corporation | Orchestration of business processes using templates |
US8793262B2 (en) * | 2010-03-05 | 2014-07-29 | Oracle International Corporation | Correlating and mapping original orders with new orders for adjusting long running order management fulfillment processes |
US20110218923A1 (en) * | 2010-03-05 | 2011-09-08 | Oracle International Corporation | Task layer service patterns for adjusting long running order management fulfillment processes for a distributed order orchestration system |
US20110218925A1 (en) * | 2010-03-05 | 2011-09-08 | Oracle International Corporation | Change management framework in distributed order orchestration system |
US20110218921A1 (en) * | 2010-03-05 | 2011-09-08 | Oracle International Corporation | Notify/inquire fulfillment systems before processing change requests for adjusting long running order management fulfillment processes in a distributed order orchestration system |
US10061464B2 (en) * | 2010-03-05 | 2018-08-28 | Oracle International Corporation | Distributed order orchestration system with rollback checkpoints for adjusting long running order management fulfillment processes |
US9904898B2 (en) * | 2010-03-05 | 2018-02-27 | Oracle International Corporation | Distributed order orchestration system with rules engine |
US20110218926A1 (en) * | 2010-03-05 | 2011-09-08 | Oracle International Corporation | Saving order process state for adjusting long running order management fulfillment processes in a distributed order orchestration system |
US10789562B2 (en) * | 2010-03-05 | 2020-09-29 | Oracle International Corporation | Compensation patterns for adjusting long running order management fulfillment processes in an distributed order orchestration system |
US9269075B2 (en) * | 2010-03-05 | 2016-02-23 | Oracle International Corporation | Distributed order orchestration system for adjusting long running order management fulfillment processes with delta attributes |
US10395205B2 (en) * | 2010-03-05 | 2019-08-27 | Oracle International Corporation | Cost of change for adjusting long running order management fulfillment processes for a distributed order orchestration system |
US20110265069A1 (en) | 2010-04-21 | 2011-10-27 | Salesforce.Com | Methods and systems for execution of tenant code in an on-demand service environment including utilization of shared resources and inline governor limit enforcement |
US9223892B2 (en) | 2010-09-30 | 2015-12-29 | Salesforce.Com, Inc. | Device abstraction for page generation |
US9658901B2 (en) | 2010-11-12 | 2017-05-23 | Oracle International Corporation | Event-based orchestration in distributed order orchestration system |
US8935360B2 (en) | 2010-12-03 | 2015-01-13 | Salesforce.Com, Inc. | Techniques for metadata-driven dynamic content serving |
JP5615444B2 (ja) * | 2010-12-21 | 2014-10-29 | 北京中天安泰信息科技有限公司 | コンピュータシステムの実行動作を標準化する方法 |
US9092482B2 (en) | 2013-03-14 | 2015-07-28 | Palantir Technologies, Inc. | Fair scheduling for mixed-query loads |
US8799240B2 (en) | 2011-06-23 | 2014-08-05 | Palantir Technologies, Inc. | System and method for investigating large amounts of data |
US9547693B1 (en) | 2011-06-23 | 2017-01-17 | Palantir Technologies Inc. | Periodic database search manager for multiple data sources |
US8732574B2 (en) | 2011-08-25 | 2014-05-20 | Palantir Technologies, Inc. | System and method for parameterizing documents for automatic workflow generation |
US8504542B2 (en) | 2011-09-02 | 2013-08-06 | Palantir Technologies, Inc. | Multi-row transactions |
US8806433B2 (en) * | 2011-10-27 | 2014-08-12 | Reputation.com | Method and framework for software development |
US10552769B2 (en) | 2012-01-27 | 2020-02-04 | Oracle International Corporation | Status management framework in a distributed order orchestration system |
US8762322B2 (en) | 2012-05-22 | 2014-06-24 | Oracle International Corporation | Distributed order orchestration system with extensible flex field support |
CN102768682B (zh) * | 2012-06-28 | 2015-10-21 | 用友网络科技股份有限公司 | 业务规则处理装置和业务规则处理方法 |
US9672560B2 (en) | 2012-06-28 | 2017-06-06 | Oracle International Corporation | Distributed order orchestration system that transforms sales products to fulfillment products |
US9348677B2 (en) | 2012-10-22 | 2016-05-24 | Palantir Technologies Inc. | System and method for batch evaluation programs |
US8930923B2 (en) | 2012-12-20 | 2015-01-06 | International Business Machines Corporation | Generating debugging extension source code utilizing debugging information |
US9123086B1 (en) | 2013-01-31 | 2015-09-01 | Palantir Technologies, Inc. | Automatically generating event objects from images |
US10037314B2 (en) | 2013-03-14 | 2018-07-31 | Palantir Technologies, Inc. | Mobile reports |
US8930897B2 (en) | 2013-03-15 | 2015-01-06 | Palantir Technologies Inc. | Data integration tool |
US8917274B2 (en) | 2013-03-15 | 2014-12-23 | Palantir Technologies Inc. | Event matrix based on integrated data |
US8909656B2 (en) | 2013-03-15 | 2014-12-09 | Palantir Technologies Inc. | Filter chains with associated multipath views for exploring large data sets |
US8937619B2 (en) | 2013-03-15 | 2015-01-20 | Palantir Technologies Inc. | Generating an object time series from data objects |
US8868486B2 (en) | 2013-03-15 | 2014-10-21 | Palantir Technologies Inc. | Time-sensitive cube |
US8855999B1 (en) | 2013-03-15 | 2014-10-07 | Palantir Technologies Inc. | Method and system for generating a parser and parsing complex data |
US8818892B1 (en) | 2013-03-15 | 2014-08-26 | Palantir Technologies, Inc. | Prioritizing data clusters with customizable scoring strategies |
US9965937B2 (en) | 2013-03-15 | 2018-05-08 | Palantir Technologies Inc. | External malware data item clustering and analysis |
US20140282373A1 (en) * | 2013-03-15 | 2014-09-18 | Trinity Millennium Group, Inc. | Automated business rule harvesting with abstract syntax tree transformation |
US8903717B2 (en) | 2013-03-15 | 2014-12-02 | Palantir Technologies Inc. | Method and system for generating a parser and parsing complex data |
US10275778B1 (en) | 2013-03-15 | 2019-04-30 | Palantir Technologies Inc. | Systems and user interfaces for dynamic and interactive investigation based on automatic malfeasance clustering of related data in various data structures |
US8799799B1 (en) | 2013-05-07 | 2014-08-05 | Palantir Technologies Inc. | Interactive geospatial map |
US9223773B2 (en) | 2013-08-08 | 2015-12-29 | Palatir Technologies Inc. | Template system for custom document generation |
US9335897B2 (en) | 2013-08-08 | 2016-05-10 | Palantir Technologies Inc. | Long click display of a context menu |
US8713467B1 (en) * | 2013-08-09 | 2014-04-29 | Palantir Technologies, Inc. | Context-sensitive views |
US9785317B2 (en) | 2013-09-24 | 2017-10-10 | Palantir Technologies Inc. | Presentation and analysis of user interaction data |
US8938686B1 (en) | 2013-10-03 | 2015-01-20 | Palantir Technologies Inc. | Systems and methods for analyzing performance of an entity |
US8812960B1 (en) | 2013-10-07 | 2014-08-19 | Palantir Technologies Inc. | Cohort-based presentation of user interaction data |
US9116975B2 (en) | 2013-10-18 | 2015-08-25 | Palantir Technologies Inc. | Systems and user interfaces for dynamic and interactive simultaneous querying of multiple data stores |
US8924872B1 (en) | 2013-10-18 | 2014-12-30 | Palantir Technologies Inc. | Overview user interface of emergency call data of a law enforcement agency |
US9021384B1 (en) | 2013-11-04 | 2015-04-28 | Palantir Technologies Inc. | Interactive vehicle information map |
US8832594B1 (en) | 2013-11-04 | 2014-09-09 | Palantir Technologies Inc. | Space-optimized display of multi-column tables with selective text truncation based on a combined text width |
US8868537B1 (en) | 2013-11-11 | 2014-10-21 | Palantir Technologies, Inc. | Simple web search |
US9105000B1 (en) | 2013-12-10 | 2015-08-11 | Palantir Technologies Inc. | Aggregating data from a plurality of data sources |
US10025834B2 (en) | 2013-12-16 | 2018-07-17 | Palantir Technologies Inc. | Methods and systems for analyzing entity performance |
US9552615B2 (en) | 2013-12-20 | 2017-01-24 | Palantir Technologies Inc. | Automated database analysis to detect malfeasance |
US10356032B2 (en) | 2013-12-26 | 2019-07-16 | Palantir Technologies Inc. | System and method for detecting confidential information emails |
US9043696B1 (en) | 2014-01-03 | 2015-05-26 | Palantir Technologies Inc. | Systems and methods for visual definition of data associations |
US8832832B1 (en) | 2014-01-03 | 2014-09-09 | Palantir Technologies Inc. | IP reputation |
US9483162B2 (en) | 2014-02-20 | 2016-11-01 | Palantir Technologies Inc. | Relationship visualizations |
US9009827B1 (en) | 2014-02-20 | 2015-04-14 | Palantir Technologies Inc. | Security sharing system |
US9727376B1 (en) | 2014-03-04 | 2017-08-08 | Palantir Technologies, Inc. | Mobile tasks |
US8924429B1 (en) | 2014-03-18 | 2014-12-30 | Palantir Technologies Inc. | Determining and extracting changed data from a data source |
US9836580B2 (en) | 2014-03-21 | 2017-12-05 | Palantir Technologies Inc. | Provider portal |
US9483236B2 (en) * | 2014-04-11 | 2016-11-01 | Fair Isaac Corporation | Efficiently representing complex score models |
US9857958B2 (en) | 2014-04-28 | 2018-01-02 | Palantir Technologies Inc. | Systems and user interfaces for dynamic and interactive access of, investigation of, and analysis of data objects stored in one or more databases |
US9009171B1 (en) | 2014-05-02 | 2015-04-14 | Palantir Technologies Inc. | Systems and methods for active column filtering |
US9535974B1 (en) | 2014-06-30 | 2017-01-03 | Palantir Technologies Inc. | Systems and methods for identifying key phrase clusters within documents |
US9619557B2 (en) | 2014-06-30 | 2017-04-11 | Palantir Technologies, Inc. | Systems and methods for key phrase characterization of documents |
US9785773B2 (en) | 2014-07-03 | 2017-10-10 | Palantir Technologies Inc. | Malware data item analysis |
US9021260B1 (en) | 2014-07-03 | 2015-04-28 | Palantir Technologies Inc. | Malware data item analysis |
US9256664B2 (en) | 2014-07-03 | 2016-02-09 | Palantir Technologies Inc. | System and method for news events detection and visualization |
US9202249B1 (en) | 2014-07-03 | 2015-12-01 | Palantir Technologies Inc. | Data item clustering and analysis |
US10572496B1 (en) | 2014-07-03 | 2020-02-25 | Palantir Technologies Inc. | Distributed workflow system and database with access controls for city resiliency |
US9563421B2 (en) | 2014-08-05 | 2017-02-07 | International Business Machines Corporation | Refining data understanding through impact analysis |
US9454281B2 (en) | 2014-09-03 | 2016-09-27 | Palantir Technologies Inc. | System for providing dynamic linked panels in user interface |
US9501851B2 (en) | 2014-10-03 | 2016-11-22 | Palantir Technologies Inc. | Time-series analysis system |
US9767172B2 (en) | 2014-10-03 | 2017-09-19 | Palantir Technologies Inc. | Data aggregation and analysis system |
US9785328B2 (en) | 2014-10-06 | 2017-10-10 | Palantir Technologies Inc. | Presentation of multivariate data on a graphical user interface of a computing system |
US9984133B2 (en) | 2014-10-16 | 2018-05-29 | Palantir Technologies Inc. | Schematic and database linking system |
US9229952B1 (en) | 2014-11-05 | 2016-01-05 | Palantir Technologies, Inc. | History preserving data pipeline system and method |
US9043894B1 (en) | 2014-11-06 | 2015-05-26 | Palantir Technologies Inc. | Malicious software detection in a computing system |
US10362133B1 (en) | 2014-12-22 | 2019-07-23 | Palantir Technologies Inc. | Communication data processing architecture |
US9348920B1 (en) | 2014-12-22 | 2016-05-24 | Palantir Technologies Inc. | Concept indexing among database of documents using machine learning techniques |
US10552994B2 (en) | 2014-12-22 | 2020-02-04 | Palantir Technologies Inc. | Systems and interactive user interfaces for dynamic retrieval, analysis, and triage of data items |
US9367872B1 (en) | 2014-12-22 | 2016-06-14 | Palantir Technologies Inc. | Systems and user interfaces for dynamic and interactive investigation of bad actor behavior based on automatic clustering of related data in various data structures |
US9870205B1 (en) | 2014-12-29 | 2018-01-16 | Palantir Technologies Inc. | Storing logical units of program code generated using a dynamic programming notebook user interface |
US9817563B1 (en) | 2014-12-29 | 2017-11-14 | Palantir Technologies Inc. | System and method of generating data points from one or more data stores of data items for chart creation and manipulation |
US9335911B1 (en) | 2014-12-29 | 2016-05-10 | Palantir Technologies Inc. | Interactive user interface for dynamic data analysis exploration and query processing |
US10372879B2 (en) | 2014-12-31 | 2019-08-06 | Palantir Technologies Inc. | Medical claims lead summary report generation |
US11302426B1 (en) | 2015-01-02 | 2022-04-12 | Palantir Technologies Inc. | Unified data interface and system |
US10387834B2 (en) | 2015-01-21 | 2019-08-20 | Palantir Technologies Inc. | Systems and methods for accessing and storing snapshots of a remote application in a document |
US9727560B2 (en) | 2015-02-25 | 2017-08-08 | Palantir Technologies Inc. | Systems and methods for organizing and identifying documents via hierarchies and dimensions of tags |
EP3611632A1 (en) | 2015-03-16 | 2020-02-19 | Palantir Technologies Inc. | Displaying attribute and event data along paths |
US9886467B2 (en) | 2015-03-19 | 2018-02-06 | Plantir Technologies Inc. | System and method for comparing and visualizing data entities and data entity series |
WO2016163901A1 (en) * | 2015-04-07 | 2016-10-13 | Huawei Technologies Co., Ltd. | An apparatus for processing an abstract syntax tree being associated with a source code of a source program |
US10628834B1 (en) | 2015-06-16 | 2020-04-21 | Palantir Technologies Inc. | Fraud lead detection system for efficiently processing database-stored data and automatically generating natural language explanatory information of system results for display in interactive user interfaces |
US9418337B1 (en) | 2015-07-21 | 2016-08-16 | Palantir Technologies Inc. | Systems and models for data analytics |
US9454785B1 (en) | 2015-07-30 | 2016-09-27 | Palantir Technologies Inc. | Systems and user interfaces for holistic, data-driven investigation of bad actor behavior based on clustering and scoring of related data |
US9996595B2 (en) | 2015-08-03 | 2018-06-12 | Palantir Technologies, Inc. | Providing full data provenance visualization for versioned datasets |
US9456000B1 (en) | 2015-08-06 | 2016-09-27 | Palantir Technologies Inc. | Systems, methods, user interfaces, and computer-readable media for investigating potential malicious communications |
US9600146B2 (en) | 2015-08-17 | 2017-03-21 | Palantir Technologies Inc. | Interactive geospatial map |
US10489391B1 (en) | 2015-08-17 | 2019-11-26 | Palantir Technologies Inc. | Systems and methods for grouping and enriching data items accessed from one or more databases for presentation in a user interface |
US10102369B2 (en) | 2015-08-19 | 2018-10-16 | Palantir Technologies Inc. | Checkout system executable code monitoring, and user account compromise determination system |
US10853378B1 (en) | 2015-08-25 | 2020-12-01 | Palantir Technologies Inc. | Electronic note management via a connected entity graph |
US11150917B2 (en) | 2015-08-26 | 2021-10-19 | Palantir Technologies Inc. | System for data aggregation and analysis of data from a plurality of data sources |
US9485265B1 (en) | 2015-08-28 | 2016-11-01 | Palantir Technologies Inc. | Malicious activity detection system capable of efficiently processing data accessed from databases and generating alerts for display in interactive user interfaces |
US10706434B1 (en) | 2015-09-01 | 2020-07-07 | Palantir Technologies Inc. | Methods and systems for determining location information |
US9576015B1 (en) | 2015-09-09 | 2017-02-21 | Palantir Technologies, Inc. | Domain-specific language for dataset transformations |
US10296617B1 (en) | 2015-10-05 | 2019-05-21 | Palantir Technologies Inc. | Searches of highly structured data |
US9542446B1 (en) | 2015-12-17 | 2017-01-10 | Palantir Technologies, Inc. | Automatic generation of composite datasets based on hierarchical fields |
US9823818B1 (en) | 2015-12-29 | 2017-11-21 | Palantir Technologies Inc. | Systems and interactive user interfaces for automatic generation of temporal representation of data objects |
US10089289B2 (en) | 2015-12-29 | 2018-10-02 | Palantir Technologies Inc. | Real-time document annotation |
US9612723B1 (en) | 2015-12-30 | 2017-04-04 | Palantir Technologies Inc. | Composite graphical interface with shareable data-objects |
US10339205B2 (en) | 2016-02-22 | 2019-07-02 | International Business Machines Corporation | Efficient handling of bi-directional data |
US10698938B2 (en) | 2016-03-18 | 2020-06-30 | Palantir Technologies Inc. | Systems and methods for organizing and identifying documents via hierarchies and dimensions of tags |
US10324609B2 (en) | 2016-07-21 | 2019-06-18 | Palantir Technologies Inc. | System for providing dynamic linked panels in user interface |
US10719188B2 (en) | 2016-07-21 | 2020-07-21 | Palantir Technologies Inc. | Cached database and synchronization system for providing dynamic linked panels in user interface |
US10437840B1 (en) | 2016-08-19 | 2019-10-08 | Palantir Technologies Inc. | Focused probabilistic entity resolution from multiple data sources |
US10318630B1 (en) | 2016-11-21 | 2019-06-11 | Palantir Technologies Inc. | Analysis of large bodies of textual data |
US10460602B1 (en) | 2016-12-28 | 2019-10-29 | Palantir Technologies Inc. | Interactive vehicle information mapping system |
US10459829B2 (en) * | 2017-06-07 | 2019-10-29 | M/S. Cigniti Technologies Limited | Overall test tool migration pipeline |
US10956406B2 (en) | 2017-06-12 | 2021-03-23 | Palantir Technologies Inc. | Propagated deletion of database records and derived data |
US10403011B1 (en) | 2017-07-18 | 2019-09-03 | Palantir Technologies Inc. | Passing system with an interactive user interface |
US11029934B2 (en) * | 2017-12-15 | 2021-06-08 | Uniquesoft, Llc | Method and system for updating legacy software |
US10996935B2 (en) * | 2018-01-09 | 2021-05-04 | Hcl Technologies Ltd. | Automated technology modernization accelerator |
US10691434B2 (en) | 2018-02-09 | 2020-06-23 | Macrosoft, Inc. | System and method for converting a first programming language application to a second programming language application |
US11599369B1 (en) | 2018-03-08 | 2023-03-07 | Palantir Technologies Inc. | Graphical user interface configuration system |
US10754822B1 (en) | 2018-04-18 | 2020-08-25 | Palantir Technologies Inc. | Systems and methods for ontology migration |
US10885021B1 (en) | 2018-05-02 | 2021-01-05 | Palantir Technologies Inc. | Interactive interpreter and graphical user interface |
US10423396B1 (en) * | 2018-05-04 | 2019-09-24 | Salesforce.Com, Inc. | Transforming non-apex code to apex code |
JP7067286B2 (ja) * | 2018-06-06 | 2022-05-16 | オムロン株式会社 | 制御システム、制御システムの制御方法、および制御システムのプログラム |
US11119630B1 (en) | 2018-06-19 | 2021-09-14 | Palantir Technologies Inc. | Artificial intelligence assisted evaluations and user interface for same |
US10846083B2 (en) * | 2018-12-12 | 2020-11-24 | Sap Se | Semantic-aware and self-corrective re-architecting system |
CN110007926B (zh) * | 2019-04-17 | 2022-03-22 | 广东三维家信息科技有限公司 | 语言转换方法及装置 |
CN110879710B (zh) * | 2019-07-24 | 2023-07-07 | 中信银行股份有限公司 | 一种rpg程序自动转成java程序的方法 |
CN112698819A (zh) * | 2019-10-22 | 2021-04-23 | 北京信普飞科科技有限公司 | 面向树化对象编程程序设计方法、装置及存储介质 |
US20230236849A1 (en) * | 2022-01-26 | 2023-07-27 | Oracle International Corporation | Enterprise application runtime customization and release management |
Family Cites Families (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5765131A (en) | 1986-10-03 | 1998-06-09 | British Telecommunications Public Limited Company | Language translation system and method |
US5313614A (en) | 1988-12-06 | 1994-05-17 | At&T Bell Laboratories | Method and apparatus for direct conversion of programs in object code form between different hardware architecture computer systems |
CA2002201C (en) | 1988-12-06 | 1999-04-27 | John Charles Goettelmann | Translation technique |
US5530863A (en) | 1989-05-19 | 1996-06-25 | Fujitsu Limited | Programming language processing system with program translation performed by term rewriting with pattern matching |
DE69033121T2 (de) | 1989-09-01 | 1999-10-28 | Amdahl Corp | Betriebssystem und Datenbank mit einer Regelsprache zum bedingungsgesteuerten Rechnerbetrieb |
US5488714A (en) | 1990-05-23 | 1996-01-30 | Unisys Corporation | Computer program analyzer for adapting computer programs to different architectures |
US5481721A (en) | 1991-07-17 | 1996-01-02 | Next Computer, Inc. | Method for providing automatic and dynamic translation of object oriented programming language-based message passing into operation system message passing using proxy objects |
US5579223A (en) | 1992-12-24 | 1996-11-26 | Microsoft Corporation | Method and system for incorporating modifications made to a computer program into a translated version of the computer program |
JPH06309193A (ja) | 1993-04-27 | 1994-11-04 | Toshiba Corp | 機械語プログラムの動作検証方法および装置 |
US5626569A (en) * | 1993-11-08 | 1997-05-06 | B. Braun Biotrol | Device for venting and controlling the pressure inside a stoma collection bag |
WO1995018409A1 (en) * | 1993-12-30 | 1995-07-06 | Brian Reynolds | Method for compiling a procedural program to an object class definition |
JP2755154B2 (ja) | 1994-02-23 | 1998-05-20 | 日本電気株式会社 | プログラム変換処理装置およびプログラム変換処理方法 |
JP3081105B2 (ja) | 1994-05-16 | 2000-08-28 | 三菱電機株式会社 | 符号変換装置 |
US6151702A (en) | 1994-09-30 | 2000-11-21 | Computer Associates Think, Inc. | Method and system for automated, interactive translation of a software program to a data model for input to an information repository |
US5678039A (en) | 1994-09-30 | 1997-10-14 | Borland International, Inc. | System and methods for translating software into localized versions |
US5768564A (en) * | 1994-10-07 | 1998-06-16 | Tandem Computers Incorporated | Method and apparatus for translating source code from one high-level computer language to another |
US5842204A (en) | 1994-10-07 | 1998-11-24 | Tandem Computers, Inc. | Method and apparatus for translating source code from one high-level computer language to another |
JP3444671B2 (ja) | 1994-11-08 | 2003-09-08 | 富士通株式会社 | 並列コード変換処理方法とそのシステム |
US5758032A (en) | 1995-04-13 | 1998-05-26 | Sterling Software, Inc. | Method and system for automated transformation of declarative language process specification |
US5682158A (en) | 1995-09-13 | 1997-10-28 | Apple Computer, Inc. | Code converter with truncation processing |
JPH09135172A (ja) | 1995-11-08 | 1997-05-20 | Sony Corp | 符号変換方法 |
US5974372A (en) | 1996-02-12 | 1999-10-26 | Dst Systems, Inc. | Graphical user interface (GUI) language translator |
US5819067A (en) | 1996-02-23 | 1998-10-06 | Advanced Micro Devices, Inc. | Computer system configured to translate a computer program into a second computer program prior to executing the computer program |
US5805893A (en) | 1996-03-01 | 1998-09-08 | Electronic Data Systems Corporation | Assembly language program converter |
US5805895A (en) | 1996-06-09 | 1998-09-08 | Motorola, Inc. | Method and apparatus for code translation optimization |
US5870039A (en) | 1996-06-19 | 1999-02-09 | Matsushita Electric Industrial Co., Ltd. | Code converter, variable length code decoder, and associated methods |
US5898394A (en) | 1996-07-31 | 1999-04-27 | Matsushita Electric Industrial Co., Ltd. | Code conversion method and apparatus, code recording medium, code recording apparatus and code reproducing apparatus |
US5956510A (en) * | 1996-09-10 | 1999-09-21 | Unisys Corporation | Apparatus and method for revising computer program code |
WO1998025195A2 (en) | 1996-12-03 | 1998-06-11 | Ergolight Ltd. | Computerized apparatus and methods for identifying usability problems of a computerized system |
JP3209264B2 (ja) | 1997-04-03 | 2001-09-17 | 日本電気株式会社 | 言語処理装置および方法、情報記憶媒体 |
JP2000516749A (ja) | 1997-06-26 | 2000-12-12 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 語構成源テキストを語構成目標テキストに翻訳する機械構成の方法及び装置 |
US5974256A (en) | 1997-09-29 | 1999-10-26 | International Business Machines Corporation | Method for translating graphical user interface (GUI) resource data into native java code |
US5983020A (en) | 1997-10-02 | 1999-11-09 | International Business Machines Corporation | Rule-based engine for transformation of class hierarchy of an object-oriented program |
US6002874A (en) * | 1997-12-22 | 1999-12-14 | International Business Machines Corporation | Method and system for translating goto-oriented procedural languages into goto-free object oriented languages |
US6195792B1 (en) | 1998-02-19 | 2001-02-27 | Nortel Networks Limited | Software upgrades by conversion automation |
US6164841A (en) | 1998-05-04 | 2000-12-26 | Hewlett-Packard Company | Method, apparatus, and product for dynamic software code translation system |
US6158047A (en) | 1998-07-08 | 2000-12-05 | Hewlett-Packard Company | Client/server system for fast, user transparent and memory efficient computer language translation |
US6453312B1 (en) * | 1998-10-14 | 2002-09-17 | Unisys Corporation | System and method for developing a selectably-expandable concept-based search |
US6523171B1 (en) * | 1998-12-29 | 2003-02-18 | International Business Machines Corporation | Enhanced source code translator from procedural programming language (PPL) to an object oriented programming language (OOPL) |
US7065750B2 (en) * | 1999-02-17 | 2006-06-20 | Elbrus International | Method and apparatus for preserving precise exceptions in binary translated code |
US6519605B1 (en) * | 1999-04-27 | 2003-02-11 | International Business Machines Corporation | Run-time translation of legacy emulator high level language application programming interface (EHLLAPI) calls to object-based calls |
US6654950B1 (en) * | 1999-08-24 | 2003-11-25 | Bae Systems Mission Solutions Inc. | Software rehosting system and method |
US7590644B2 (en) * | 1999-12-21 | 2009-09-15 | International Business Machine Corporation | Method and apparatus of streaming data transformation using code generator and translator |
US20030050932A1 (en) * | 2000-09-01 | 2003-03-13 | Pace Charles P. | System and method for transactional deployment of J2EE web components, enterprise java bean components, and application data over multi-tiered computer networks |
-
2002
- 2002-05-10 AT AT02734373T patent/ATE476702T1/de not_active IP Right Cessation
- 2002-05-10 DE DE60237200T patent/DE60237200D1/de not_active Expired - Lifetime
- 2002-05-10 IL IL15869602A patent/IL158696A0/xx unknown
- 2002-05-10 CA CA002446162A patent/CA2446162A1/en not_active Abandoned
- 2002-05-10 BR BR0209497-5A patent/BR0209497A/pt not_active IP Right Cessation
- 2002-05-10 KR KR10-2003-7014651A patent/KR20040004619A/ko not_active Application Discontinuation
- 2002-05-10 EP EP02734373A patent/EP1388054B1/en not_active Expired - Lifetime
- 2002-05-10 JP JP2002589976A patent/JP2005515518A/ja not_active Abandoned
- 2002-05-10 CN CNA028097408A patent/CN1509433A/zh active Pending
- 2002-05-10 WO PCT/US2002/014933 patent/WO2002093367A1/en active Application Filing
-
2003
- 2003-01-13 US US10/341,132 patent/US7467375B2/en not_active Expired - Fee Related
- 2003-11-04 ZA ZA200308593A patent/ZA200308593B/en unknown
-
2008
- 2008-03-06 AU AU2008201056A patent/AU2008201056A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015532991A (ja) * | 2012-09-25 | 2015-11-16 | ザ・ボーイング・カンパニーTheBoeing Company | モデル化された依存関係に基づく、レガシーソフトウェアシステムのモダニゼーション |
Also Published As
Publication number | Publication date |
---|---|
ATE476702T1 (de) | 2010-08-15 |
CA2446162A1 (en) | 2002-11-21 |
EP1388054A1 (en) | 2004-02-11 |
ZA200308593B (en) | 2005-04-08 |
US20030226132A1 (en) | 2003-12-04 |
IL158696A0 (en) | 2004-05-12 |
BR0209497A (pt) | 2005-08-30 |
WO2002093367A1 (en) | 2002-11-21 |
EP1388054B1 (en) | 2010-08-04 |
US7467375B2 (en) | 2008-12-16 |
AU2008201056A1 (en) | 2008-04-03 |
CN1509433A (zh) | 2004-06-30 |
KR20040004619A (ko) | 2004-01-13 |
DE60237200D1 (de) | 2010-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2005515518A (ja) | レガシーソフトウエアアプリケーションを現代的オブジェクト指向型システムへ変換する方法及びシステム | |
US8843909B2 (en) | Method and apparatus for transforming legacy software applications into modern object-oriented distributed systems | |
CA2641941C (en) | Legacy software modernization system | |
US11526656B2 (en) | Logical, recursive definition of data transformations | |
US7984060B2 (en) | Model content provider with reusable components for supporting a plurality of GUI API's | |
US8458164B2 (en) | Query model tool and method for visually grouping and ungrouping predicates | |
US5920717A (en) | Method and apparatus for automated program-generation | |
KR101331532B1 (ko) | 데이터베이스로부터 xml 문서를 동적으로 생성하는 방법 | |
US7634515B2 (en) | Data model and schema evolution | |
Smaragdakis et al. | DiSTiL: A Transformation Library for Data Structures. | |
US20130185627A1 (en) | Supporting generation of transformation rule | |
DeBaud et al. | Domain analysis and reverse engineering | |
JP5147240B2 (ja) | リバーシブルなデザイン・ツリーの変換のための方法とシステム | |
US20040044989A1 (en) | Apparatus and method using pre-described patterns and reflection to generate source code | |
US7831625B2 (en) | Data model for a common language | |
De Hoon et al. | Implementing a functional spreadsheet in Clean | |
US6405189B1 (en) | Method and apparatus for amplifying design information into software products | |
KR100576941B1 (ko) | 메타모델에 기반한 모델 변환 지원 시스템 | |
EP1644830A2 (en) | Method for transforming software applications into object-oriented distributed systems | |
AU2002305544A1 (en) | Method and system for transforming legacy software applications into modern object-oriented systems | |
Crawley | Generating software from models | |
CN117453713A (zh) | 多类型数据库的sql语句生成方法、设备和存储介质 | |
Kolovos et al. | A Unified Generative Programming Environment | |
de Lima Mariano et al. | A Parser and a Software Visualization Environment to Support the Comprehension of MATLAB/Octave Programs. | |
Dempsey | Using an APL macroprocessor to implement generalized software systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050428 |
|
A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20061019 |
|
A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20070222 |
|
A072 | Dismissal of procedure [no reply to invitation to correct request for examination] |
Free format text: JAPANESE INTERMEDIATE CODE: A073 Effective date: 20070306 |