JP2005515518A - レガシーソフトウエアアプリケーションを現代的オブジェクト指向型システムへ変換する方法及びシステム - Google Patents

レガシーソフトウエアアプリケーションを現代的オブジェクト指向型システムへ変換する方法及びシステム Download PDF

Info

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
Application number
JP2002589976A
Other languages
English (en)
Inventor
デイビッド トンドロー,
ジョン マホーニー,
Original Assignee
コンピュータ アソシエイツ シンク,インコーポレイテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by コンピュータ アソシエイツ シンク,インコーポレイテッド filed Critical コンピュータ アソシエイツ シンク,インコーポレイテッド
Publication of JP2005515518A publication Critical patent/JP2005515518A/ja
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements 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により実施することが可能なステップの例である。説明する各ステップは、特定の変換方法に対して使用可能である場合も使用可能でない場合もある。更に、各変換方法は、その処理により発生される出力を変更する1組のコンフィギュレーション値を与えることが可能である。例えば、特定のコンフィギュレーション値は特定のパターンに基づいて結果的に得られるコンポーネントの名称変更を行うことが可能である。各コンフィギュレーション値はオペレータにより変更することが可能なデフォルト設定を有することが可能である。
ディスカバリー
ディスカバーステップ142はレガシーソフトウエア開発環境に質問を発し且つ特定のアプリケーション内に包含されるコンポーネントのカタログを展開させる。ディスカバリーステップは、スキャンしたコンピュータ上に存在するオペレーティングシステムに従って、物理的メモリブロック及び仮想メモリページ等の適宜の論理メモリをスキャンすることが可能である。スキャンしたコンポーネントは、これらに制限されるものではないが、ソースコード、ホームページ、アプリケーション構造、任意の関連したデータベースのスキーマ、フォーム、フレーム、手順、レコード定義、グローバル変数、定数、ホストルーチン等を包含することが可能である。これらのコンポーネントは、好適にはリポジトリー内にメタコンポーネントとして格納される。更に、ソースコードコンポーネントの場合、ソースコードは「トークン化」又は基本的なプログラミング記号のストリームに分解することが可能である。これらのコンポーネントのコピーは「リポジトリー」内にメタコンポーネントとして格納され、そこで、それらは繰返し検索され、修正され且つ保存されることが可能である。このリポジトリーは、メモリキャッシュ、ファイルシステム、データベース又は任意のその他の適宜の情報格納設備とすることが可能である。
アナリシス
アナリシスステップ144において、メタコンポーネントの情報の全てを解析し且つ各コンポーネントに対して1つのマップが作成される。該マップは、各ルーチン及び1つのルーチン内のセクションがトークンシステム内においてどこで開始し且つ停止するかに関する情報を包含することが可能である。更に、各コンポーネントに関するメトリックを使用してアプリケーションアナリシスレポート152を作成することが可能である。
妥当性検査
妥当性検査フェーズ期間中、レガシーアプリケーションにおける全てのコンポーネントの相互参照が発生される。この相互参照は1つのコンポーネントにより参照される全てのコンポーネント(モジュール、データ源、フォーム等)のリストを与える。次いで、リポジトリーをチェックして、レガシー環境のコンポーネントの全てがリポジトリー内に格納されていることを確保する。いずれかのコンポーネントが欠落していることが判明すると、その欠陥に対処することを可能とすべくオペレータに通知がなされる。このプロセスは参照されないコンポーネントについて継続して行うことが可能であるが、それらを参照するコンポーネントは完全に変換されることはない。
コンフィギュレーション
コンフィギュレーションステップ146期間中に、アナリシスステップ144からの情報を使用して初期的なコンフィギュレーション即ち形態を確立する。このコンフィギュレーションは、レガシーアプリケーション自身を記述するメタコンポーネント内に格納される。このメタコンポーネントは変換プロセス156を制御する。これらのパラメータの幾つかは妥当性検査フェーズ期間中に修正することが可能である。
GUIスタイルウィザード
GUIスタイルウィザード148は、オペレータに、そのデフォルト仕様を変更することにより結果的に得られるグラフィカルユーザインターフェースをカスタム化させる能力を与える。このウィザードはカスタムメニューバーを作成し、ツールバー及びボタンバー定義が全てのグラフィカルフォームに対して適用されて結果的に得られるアプリケーションにおいて一貫性のある様相及び感じを与える。
拡張ウィザード
拡張ウィザード150は、オペレータに、そのアプリケーションに対する新たな基礎クラスライブラリー、ビジネスオブジェクトライブライー及びフロントエンドライブラリーを作成することを変換プロセス156に指示する機会を与える。これらの新たなオブジェクトライブラリーはレガシーソフトウエアアプリケーションにおいて見つかったスキーマ仕様に基づいて構築され且つ新たなアプリケーションにおいて新たな特徴及び関数を開発するのに必要な時間を著しく減少させることが可能である。このステップがランされない場合には、変換がこれらのライブラリを作成することはない。
アプリケーションアナリシスレポート
好適には、アプリケーションアナリシスレポート152は全体的なレガシーインフラストラクチャに関する包括的なレポートであり、且つ全ての資源及び各コンポーネントに関する詳細な情報及びメトリックの相互参照を包含している。それは、又、上述したような問題区域のリストを与えることが可能である。該メトリックは、レガシーアプリケーションにおけるコンポーネントの種類及び総数、ソースコードの全ライン数、各モジュールを構成するルーチンの数及び定義、アプリケーションにより提供される全てのコマンドのコンパイルを包含している。
プリパレーション
プリパレーション(準備)ステップ154期間中、変換に使用される全ての付加的なターゲットOOメタコンポーネントはリポジトリー内に作成される。そのメタコンポーネントが変換プロセスの前のラン即ち稼動からリポジトリー内に存在する場合には、それらは破壊され且つ新たなメタコンポーネントが作成される。
変換プロセス
変換プロセス156は、現在リポジトリー内に格納されているレガシーメタコンポーネントがそれにより処理されてオブジェクトメタコンポーネントを作成するメカニズムを提供する。変換プロセス156は変換を実施し、その場合に、全レガシーアプリケーションを多段並列処理で変換することが可能である。変換プロセス156において、任意の特定のソースステートメント(コードのインスタンス)、又はフォーム部分、又はレガシーソフトウエアアプリケーションのコンポーネントの任意のその他の部分は1つ又はそれ以上のコンポーネント(又は手順)を何らかの態様で修正させるルールを潜在的にトリガすることが可能である。例えば、「フレーム」の変換期間中(フレームは、ユーザインターフェースを必要とし且つ関連するフォームを有する手順である)、変換プロセス156は1つのパラメータを発見する場合がある。そのパラメータはそのフレームを置換すべく作成中のオブジェクトクラスの属性となる。そのフレームの処理が中止され、オブジェクトクラスがリポジトリーから検索され、該属性がオブジェクトクラスへ付加され、該オブジェクトクラスはリポジトリーへリターンされ且つ該ソースの処理が再開される。同様に、フレームのホームページの処理において、1つのフィールドが該フォーム上において遭遇すると、属性が同様の態様で同一のオブジェクトクラスへ付加される。条件に依存して1つのコンポーネント(又は手順)から別のコンポーネントへコードの全ブロックを移動させる場合がある多くのその他のより複雑なトランズアクションが該プロセス内に存在している。
上述した並列処理を容易とさせるために、レガシーソフトウエアアプリケーションと新たなアプリケーションの両方から及び中間アプリケーション(又は「メタアプリケーション」)からのコンポーネントの中間表現を管理する能力を有する一時的な格納設備が設けられるべきである。このメタアプリケーションは、任意の特定のソフトウエア開発環境の特定の実現例に対して結び付けられるものではなく、それはこれらの環境のうちのいずれかにおいて見出される構造を包含するものであるから便利である。「メタコンポーネント」を操作することにより、レガシーソフトウエアアプリケーションを新たなアプリケーションへ変換するプロセスは3つの別個のプロセス、マイニング、変換、再生に分割することが可能である。
変換プロセス156の1つの実施例について以下に4つの変換として説明する。
変換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クラス階層ツリーを使用する。
グラフィカルインターフェースフォームテンプレートツリーは空のグラフィカルインターフェースフォームの表現を包含している。このフォームに対するルートノードはそのフォームの基本的特性の記述を包含している。プロパティツリーは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はどのようにしてステートメントを変換し且つどこにそれを配置させるかを決定する。多くの場合において、該エンジンは全体的なルーチン又は1つのルーチンのサブセットを完全に異なるオブジェクトへ完全に移動させることを決定することが可能である。このことは、レガシーソフトウエア開発言語の特徴が新たなソフトウエア開発環境へ容易に翻訳されない場合に発生する。
変換3 162の別の部分は、レガシーソフトウエアアプリケーションの手順コンテキストをオブジェクトコンテキストへ変換することである。このことは2つの側面を有している。第一に、手順環境において、1つのコンポーネントがそれを「コール」することにより別のコンポーネントを喚起させる。OOモデルにおいて、手順をコールする代わりに、オブジェクトのインスタンス(即ちコピー)が作成され且つそのメッソドのうちの1つが喚起される。変換3 162が何等かの種類のレガシーコールステートメントに遭遇すると、それは処理を中止し、コールされたオブジェクトを定義するオブジェクトメタコンポーネントを検索し、且つそのコールに対するパラメータの妥当性検査を行う。幾つかのインスタンスにおいて、該オブジェクトは調節を必要とする場合がある。従って、コールを行うコンポーネントにおいて、コールステートメントは幾つかの異なるステートメントと置換される。第一ステートメントはオブジェクトリクエストブローカー(ORB)に対するものである。ORBは特別なオブジェクトであり、そのジョブは要求に基づいてその他のオブジェクトの作成を管理することである。付加された次のステートメントはオブジェクトの処理を「喚起」又は即ち開始させる全ての変換されたコンポーネントに対して共通の特別のメッソドに対するコールである。
手順からオブジェクトコンテキストへの変換の2番目の側面は手順ソフトウエア開発ツールとOOソフトウエア開発ツールとの間の文脈的差異である。ステートメントの処理期間中に、各トークンがチェックされて、そのクラスの属性に変換されたものに対する参照であるか否かを判別する。そうである場合には、適宜の変化がソースに対して行われ、従って適宜の変数が参照される。
変換4
変換4 164はこの例示的実施例における変換である。それは残存することがあるが変換3 162において実施される処理の全てに対して並列的に取扱われない場合のある多様な小さな問題のクリンナップを包含する。
再生プロセス
再生プロセス166はマイニングプロセス140の逆である。再生プロセス166期間中、変換プロセス156期間中に作成されたオブジェクトメタコンポーネントを使用して新たなソフトウエア開発環境内に配置される実際のオブジェクトクラスを作成する。更に、その新たなグラフィカルインターフェースフォーム及び任意のその他の必要なコンポーネントが作成され且つ新たなソフトウエア開発環境に配置される。
拡張
拡張ステップ168は、マイニングプロセス140を期間中にランされる拡張ウィザードにより特定されるように、新たな基礎クラスライブラリー、ビジネスオブジェクトライブラリー、フロントエンドコンポーネントライブラリーを構築する。
再生
再生ステップ170において、実際のオブジェクトクラス及びGUIフォームがその中に包含される仕様に従ってオブジェクトメタコンポーネントから発生される。
多数の付加的な修正及び本開示の変形例が上述した説明に鑑み可能なものである。従って、特許請求の範囲内において、本発明を本明細書に特に記載したもの以外に実施することが可能であることを理解すべきである。
本発明の方法及びシステムを実現することが可能なコンピュータシステムの1例を示した概略図。 本発明の1実施例に基づくプロセスチャートの1例を示した概略図。 本発明の1実施例に基づくレガシー言語ステートメント文法ツリーの例示的フォーマットを示した概略図。 本発明の1実施例に基づくアブストラクトシンタックスツリーの例示的フォーマットを示した概略図。 本発明の1実施例に基づくプロセスのフローチャートを示した概略図。 XMLドキュメントとして表現したアブストラクトシンタックスツリーのサンプル表現の一部を示した概略図。 XMLドキュメントとして表現したアブストラクトシンタックスツリーのサンプル表現の一部を示した概略図。

Claims (16)

  1. 手順言語コードを有する手順プログラムをオブジェクト指向型プログラムへ変換する方法において、
    手順言語コードをスキャンし且つスキャンした手順言語コードに基づいてマップを作成し、
    スキャンした手順言語コードを中間コードとして格納し、
    前記マップを使用して前記手順言語コードの少なくとも1つのセグメントを処理し、
    前記処理したセグメントを使用して第一データ構造を作成し、
    前記第一データ構造に基づいて前記中間コードを修正し、
    前記修正した中間コードに基づいてオブジェクトクラスを有するオブジェクト指向型プログラムを発生する、
    ことを包含する方法。
  2. 請求項1において、更に、
    前記手順言語コードの所定のセグメントが検知された場合に前記手順言語コードの1つのセグメントを処理するステップを中止し、
    前記所定のセグメントに基づいてその他の中間コードを修正する、
    ことを包含している方法。
  3. 請求項1において、更に、前記手順言語に基づいて第二データ構造を作成することを包含しており、前記第二データ構造が前記手順プログラミング言語の1つのステートメントのプロパティを識別するノードを具備する階層的ツリーである方法。
  4. 請求項3において、前記第一データ構造を作成するステップが、処理したセグメントに基づいて前記第二データ構造内の1つのノードを探し出し、前記第二データ構造のノードをルートノードへトラバースし、前記第一データ構造内のトラバースしたノードの内容を包含すること、を包含している方法。
  5. 手順言語コードを有する手順プログラムをオブジェクト指向型プログラムへ変換するコンピュータによって実行可能なコードを包含している格納媒体において、
    手順言語コードをスキャンし且つスキャンした手順言語コードに基づいてマップを作成するコード、
    スキャンした手順言語コードを中間コードとして格納するコード、
    前記マップを使用して前記手順言語コードの少なくとも1つのセグメントを処理するコード、
    前記処理したセグメントを使用して第一データ構造を作成するコード、
    前記第一データ構造に基づいて前記中間コードを修正するコード、
    前記修正した中間コードに基づいてオブジェクトクラスを有するオブジェクト指向型プログラムを発生するコード、
    を包含している格納媒体。
  6. 請求項5において、更に、
    前記手順言語コードの所定のセグメントが検知された場合に前記手順言語コードの1つのセグメントを処理することを中止するコード、
    前記所定のセグメントに基づいてその他の中間コードを修正するコード、
    を有している格納媒体。
  7. 請求項5において、更に、前記手順言語に基づいて第二データ構造を作成するコードを有しており、前記第二データ構造が前記手順プログラミング言語の1つのステートメントのプロパティを識別する1つのノードを有している階層的ツリーである格納媒体。
  8. 請求項7において、前記第一データ構造を作成するコードが、
    前記処理したセグメントに基づいて前記第二データ構造内の1つのノードを見つけ出すためのコード、
    前記第二データ構造のノードをルートノードへトラバースするためのコード、
    前記第一データ構造内のトラバースしたノードの内容を包含するためのコード、
    を包含している格納媒体。
  9. 伝送媒体において実施化され且つ手順言語コードを有する手順プログラムをオブジェクト指向型プログラムへ変換するコンピュータによって実行可能な命令を包含するコンピュータデータ信号において、
    手順言語コードをスキャンし且つスキャンした手順言語コードに基づいてマップを作成するデータ信号部分、
    スキャンした手順言語コードを中間コードとして格納するデータ信号部分、
    前記マップを使用して前記手順言語コードの少なくとも1つのセグメントを処理するデータ信号部分、
    前記処理したセグメントを使用して第一データ構造を作成するデータ信号部分、
    前記第一データ構造に基づいて前記中間コードを修正するデータ信号部分、
    前記修正した中間コードに基づいてオブジェクトクラスを有するオブジェクト指向型プログラムを発生するデータ信号部分、
    を有しているコンピュータデータ信号。
  10. 請求項9において、更に、
    前記手順言語コードの所定のセグメントが検知された場合に前記手順言語コードの1つのセグメントの処理を中止するデータ信号部分、
    前記所定のセグメントに基づいてその他の中間コードを修正するデータ信号部分、
    を有しているコンピュータデータ信号。
  11. 請求項9において、更に、前記手順言語に基づいて第二データ構造を作成するデータ信号を有しており、前記第二データ構造は前記手順プログラミング言語の1つのステートメントのプロパティを識別する1つのノードを有する階層的ツリーであるコンピュータデータ信号。
  12. 請求項11において、前記第一データ構造を作成するデータ信号部分が前記処理したセグメントに基づいて第二データ構造内の1つのノードを探し出すデータ信号部分と、前記第二データ構造のノードをルートノードへトラバースするデータ信号部分と、前記第一データ構造内に前記トラバースしたノードの内容を包含させるデータ信号部分とを包含しているコンピュータデータ信号。
  13. 手順言語コードを有する手順プログラムをオブジェクト指向型プログラムへ変換する方法において、
    手順言語コードをスキャンし且つスキャンした手順言語コードに基づいてマップを作成し、
    前記マップ及びスキャンした手順言語コードをメタデータとしてリポジトリー内に格納し、
    各コンポーネントの変換した表現に対し新たな組のターゲットメタデータコンテナを作成し、
    手順メタデータ表現を使用して手順言語コードの少なくとも1つのセグメントを処理して前記処理したセグメントを使用して第一アブストラクトシンタックスツリーを作成し、
    前記第一アブストラクトシンタックスツリーに基づいて前記ターゲットメタデータコンテナをポピュレートし、
    前記第一アブストラクトシンタックスツリーに基づいてオブジェクトクラスを有するオリジナルの手順プログラムのオブジェクト指向型メタデータ表面を発生する、
    ことを包含している方法。
  14. 請求項13において、更に、
    前記手順言語コードの所定のセグメントが検知された場合に前記手順言語コードの1つのセグメントを処理するステップを中止し、
    前記所定のセグメントに基づいて別のアブストラクトシンタックスツリーを修正する、
    ことを包含している方法。
  15. 請求項13において、更に、前記手順言語に基づいて第二アブストラクトシンタックスツリーを作成することを包含しており、前記第二アブストラクトシンタックスツリーは手順プログラミング言語の1つのステートメントのプロパティを識別する1つのノードを有するアブストラクトシンタックスツリーとすることが可能である方法。
  16. 請求項15において、前記第一アブストラクトシンタックスツリーを作成するステップが、前記処理したセグメントに基づいて第二アブストラクトシンタックスツリー内の1つのノードを探し出し、前記第二アブストラクトシンタックスツリーのノードをルートノードへトラバースし、且つ前記トラバースしたノードの内容を前記第一アブストラクトシンタックスツリー内に包含させることを包含している方法。
JP2002589976A 2001-05-11 2002-05-10 レガシーソフトウエアアプリケーションを現代的オブジェクト指向型システムへ変換する方法及びシステム Abandoned JP2005515518A (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015532991A (ja) * 2012-09-25 2015-11-16 ザ・ボーイング・カンパニーTheBoeing Company モデル化された依存関係に基づく、レガシーソフトウェアシステムのモダニゼーション

Families Citing this family (206)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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