JP2006252557A - コンピュータ・プログラム・コードの開発オブジェクトの管理方法および開発オブジェクトの管理システム - Google Patents

コンピュータ・プログラム・コードの開発オブジェクトの管理方法および開発オブジェクトの管理システム Download PDF

Info

Publication number
JP2006252557A
JP2006252557A JP2006064548A JP2006064548A JP2006252557A JP 2006252557 A JP2006252557 A JP 2006252557A JP 2006064548 A JP2006064548 A JP 2006064548A JP 2006064548 A JP2006064548 A JP 2006064548A JP 2006252557 A JP2006252557 A JP 2006252557A
Authority
JP
Japan
Prior art keywords
attribute
development
synchronization
source code
model
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.)
Pending
Application number
JP2006064548A
Other languages
English (en)
Other versions
JP2006252557A5 (ja
Inventor
Edmund H Reinhardt
エドモンド・エイチ・ラインハルト
Stella Luk
ステラ・ルーク
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2006252557A publication Critical patent/JP2006252557A/ja
Publication of JP2006252557A5 publication Critical patent/JP2006252557A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】コンピュータ・プログラム・コードの開発オブジェクトの管理方法および開発オブジェクトの管理システムを提供すること。
【解決手段】一方の開発オブジェクトは、位置言語で記述されたソースコード50を有し、他方の開発オブジェクトは、当該ソースコード50に対応する文書オブジェクトモデル(DOM52)を有する。これら2つの開発オブジェクトは、同期オブジェクト82A、82Bのセットを用いて同期化される。具体的には、位置言語により定義された多様な文字範囲を用いて、ソースコード50の一部分を、それに対応するDOM52の一部分へ効率的にマップする。これにより、同期オブジェクト82A、82Bは、一方の開発オブジェクトを、受け取った他方の開発オブジェクトの変更箇所を用いて容易に更新することができる。
【選択図】図6

Description

本発明は、一般にコンピュータ・プログラム・コードの開発オブジェクトの管理に関し、特に、位置言語で記述されたソースコードとそれに対応する文書オブジェクトモデル(DOM)との同期を維持するための改善策に関する。
位置言語は、行中の文字位置によってテキストの意味を定義するものである。例えば、ニューヨーク州アーモンクにあるインターナショナル・ビジネス・マシーンズ・コーポレーションが提供するiSeriesクラスのミッドレンジ・サーバ用の具体的な位置言語として、レポート・プログラム・ジェネレータ(RPG)が挙げられる。RPGで記述されたアプリケーションは、データベースおよびディスプレイやプリンタといった装置からデータを読み出し、および、それらのデータベースおよび装置にデータを書き込む。また、これらのデータベースおよび装置に対するインターフェースは、別の位置言語として挙げられるデータ記述仕様(DDS:DataDescription Specifications)と呼ばれる行系列により記述される。
位置言語は、一般に幾つかの初期的なプログラミング言語によって構成される。最近では、トークンベースの言語(例えば、Java(商標)、C++など)が普及してきている。いずれにせよ、ソースコードは、従来よりテキストエディタを使用して作成される。一方で、多様なプログラミング言語用の統合開発環境(IDE:IntegratedDevelopment Enviroment)の拡張性が向上されてきており、ユーザに対して、より生産的で直感的に理解可能な開発環境を提供している。これらの開発環境の拡張性は、ソースコードに対応する文書オブジェクトモデル(DOM:DocumentObject Model)の生成に依存するものである。例えば、IDEに含まれるコンパイラ用のパーサ(parser)は、個別のプログラミング言語で記述されたソースコードをDOMに変換するために使用できる。DOMは、ソースコードに含まれるすべての意味情報をとらえたソースコード表現を有する。このDOMは、コンパイルする際にプログラムを生成するために使用される。
IDEは、DOMを使用することで、ユーザに対して多様な拡張性を提供する。例えば、DOMを使用することで、1つ以上のグラフィカル・ビューを生成でき、ユーザによる言語特徴の視覚化を可能にする。これにより、IDEは、開発中のプログラムの概略、正確な画面構成、または作成中の報告書、あるいはこの両方などを表示することができる。更に、IDEは、より使い勝手のよいプロパティ・ビューやグラフィカル・エディタといった1つ以上のビジュアルエディタを提供可能である。この場合、ユーザがソースコード・エディタおよびビジュアルエディタ間の切り替えを簡単に行えることが望ましい。
ビジュアルエディタは、DOM内のデータを作成するものである。したがって、IDEは、ソースコードとDOMとの同期化を維持する必要がある。これまでは、一般的にインクリメンタル・コンパイラが使用されてきた。具体的には、インクリメンタル・コンパイラは、変更されたソースコードを再解析し、DOMを更新するとともに/または、DOMが変更されたことにより影響を受けたソースコードを再生成する。一般的には、ソースコードに対してトークンベースの解析が実行され、その結果が現在のDOMと結合される。この処理は複雑な場合があるので、DOM/ソースコードを変更してから、それに対応するソースコード/DOM内で反映された変更箇所を確認するまでの間には、ユーザが認知できるほどの遅延が生じる可能性がある。加えて、インクリメンタル・コンパイラではエラーが発生しやすく、その保守は高コストである。
一方で、位置言語に関して、DOMとソースコードとの同期をより効率的に維持することが可能である。したがって、位置言語で記述されたソースコードと、ソースコードにおけるデータの文字位置を用いたDOMとの同期化処理を簡略化するため、ソースコードとDOMとの同期を維持する改善策が必要とされている。
本発明は、コンピュータ・プログラム・コードの開発オブジェクトの管理に関するソリューションを提供するものである。具体的には、本発明は、(1つ以上の)同期オブジェクト・セットを使用して、位置言語で記述されるソースコードを有する開発オブジェクトのデータを、ソースコードに対応する文書オブジェクトモデル(DOM)を有する開発オブジェクトのデータと同期化させる。一実施形態において、DOMは、ソースコード内の各行に対してモデルオブジェクトを有し、各モデルオブジェクトは、属性・セットを有し、また、属性・セット内の各属性は、位置言語によって定義される行の文字範囲に対応する。同期オブジェクトは、ソースコードに対する変更箇所を受け取った場合、対応するモデルオブジェクトの適切な属性を、変更箇所の位置に基づいて更新することができる。同様に、同期オブジェクトは、モデルオブジェクトの属性に対する変更箇所を受け取った場合、ソースコード内の適切な行および文字範囲を、当該属性に対応する文字範囲および当該モデルオブジェクトに対応する行に基づいて更新することができる。これにより、同期オブジェクトは、ソースコードおよびそれに対応するDOMの同期化に関する効率的なソリューションを提供する。更に、同期オブジェクトは、ソースコードに基づくDOMの生成、または、DOMに基づくソースコードの生成、あるいはこの両方を行うことができる。このように、本発明は、位置言語の様々な特徴を活用して、コンピュータ・プログラム・コードの開発オブジェクトの管理に関するソリューションを提供する。
本発明の第1の態様により、コンピュータ・プログラム・コードの開発オブジェクトの管理方法であって、位置言語で記述され、かつ、行・セットを含むコンピュータ・プログラム・コードのためのソースコードを有する第1の開発オブジェクトを取得するステップと、行・セットに対応するモデルオブジェクト・セットを含む文書オブジェクトモデル(DOM)を有する第2の開発オブジェクトを取得するステップと、位置言語によって定義される文字範囲のセットに基づいてソースコードおよびDOMを同期化する目的で、同期オブジェクト・セットを使用するステップとを含む、開発オブジェクトの管理方法が提供される。
本発明の第2の態様により、コンピュータ・プログラム・コードの開発オブジェクト管理方法であって、位置言語で記述され、かつ、行・セットを含むコンピュータ・プログラム・コードのためのソースコードを有する第1の開発オブジェクトを取得するステップと、ソースコードに対応する文書オブジェクトモデル(DOM)を有する第2の開発オブジェクトを取得するステップとを含み、DOMが、各モデルオブジェクトが行・セット内の特異的な行に対応するモデルオブジェクト・セットと、各属性がモデルオブジェクトに対応する行の文字範囲に対応する、モデルオブジェクトのそれぞれに対する属性・セットとを有し、そして、ソースコードおよびDOMを同期化する目的で、同期オブジェクト・セット内の各同期オブジェクトがモデルオブジェクト・セット内の特異的なモデルオブジェクトに対応する、同期オブジェクト・セットを使用するステップを含む、開発オブジェクト管理方法が提供される。
本発明の第3の態様により、コンピュータ・プログラム・コードの開発オブジェクトの管理システムであって、位置言語で記述され、かつ、行・セットを含むコンピュータ・プログラム・コードのためのソースコードを有する第1の開発オブジェクトを取得するシステムと、行・セットに対応するモデルオブジェクト・セットを含む文書オブジェクトモデル(DOM)を有する第2の開発オブジェクトを取得するシステムと、位置言語によって定義される文字範囲のセットに基づいてソースコードおよびDOMを同期化する目的で、同期オブジェクト・セットを使用するシステムとを含む、開発オブジェクトの管理システムが提供される。
本発明の第4の態様により、コンピュータ可読媒体に記憶されるとともに、実行された場合にコンピュータ・プログラム・コードの開発オブジェクト管理を行うプログラムであって、位置言語で記述され、かつ、行・セットを含むコンピュータ・プログラム・コードのためのソースコードを有する第1の開発オブジェクトを取得するプログラム・コードと、行・セットに対応するモデルオブジェクト・セットを含む文書オブジェクトモデル(DOM)を有する第2の開発オブジェクトを取得するプログラム・コードと、位置言語によって定義される文字範囲のセットに基づいてソースコードおよびDOMを同期化する目的で、同期オブジェクト・セットを使用するプログラム・コードとを含む、プログラムが提供される。
本発明の第5の態様により、コンピュータ・プログラム・コードの開発オブジェクト管理を行うアプリケーションの展開方法であって、コンピュータ・インフラストラクチャを提供するステップを含み、コンピュータ・インフラストラクチャは、位置言語で記述され、かつ、行・セットを含むコンピュータ・プログラム・コードのためのソースコードを有する第1の開発オブジェクトを取得し、行・セットに対応するモデルオブジェクト・セットを含む文書オブジェクトモデル(DOM)を有する第2の開発オブジェクトを取得し、位置言語によって定義される文字範囲のセットに基づいてソースコードおよびDOMを同期化する目的で、同期オブジェクト・セットを使用する、アプリケーションの展開方法が提供される。
本発明の第6の態様により、伝播信号内に体現されるとともにコンピュータ・プログラム・コードの開発オブジェクト管理を行うコンピュータ・ソフトウェアであって、位置言語で記述され、かつ、行・セットを含むコンピュータ・プログラム・コードのためのソースコードを有する第1の開発オブジェクトを取得し、行・セットに対応するモデルオブジェクト・セットを含む文書オブジェクトモデル(DOM)を有する第2の開発オブジェクトを取得し、位置言語によって定義される文字範囲のセットに基づいてソースコードおよびDOMを同期化する目的で、同期オブジェクト・セットを使用する機能をコンピュータ・システムに実行させる命令を有する、コンピュータ・ソフトウェアが提供される。
本発明の第7の態様により、コンピュータ・インフラストラクチャによるコンピュータ・プログラム・コードの開発オブジェクトの管理を可能にするコンピュータ・プログラム・コードを有するコンピュータ可読媒体が提供される。
本発明の第8の態様により、コンピュータ・プログラム・コードの開発オブジェクトの管理を行うビジネス方法が提供される。
本発明の第9の態様により、コンピュータ・プログラム・コードの開発オブジェクトの管理システムの生成方法が提供される。
上述の具体的な本発明の態様は、本願に記載される問題および本願で議論されないその他の問題を解決することを目的とし、当業者であれば理解できるものである。
本発明に関する上記およびその他の特徴は、本発明の多様な実施形態を示す添付図面と併せて、以下に記載する本発明の多様な態様の詳細を読めば、すぐに理解されるであろう。
なお、本発明に関する図面は縮図ではないことに留意されたい。また、これらの図面は、本発明の典型的な態様のみを示す目的で使用され、本発明の範囲を限定するものではない。更に、図面内の同一番号は、図面全体を通して同一部分を示している。
上述のとおり、本発明は、コンピュータ・プログラム・コードの開発オブジェクトの管理に関するソリューションを提供するものである。具体的には、本発明において、(1つ以上の)同期オブジェクトを有する同期オブジェクト・セットを使用して、位置言語で記述されたソースコードを有する開発オブジェクトのデータを、ソースコードに対応する文書オブジェクトモデル(DOM)を有する開発オブジェクトのデータと同期させる。一実施形態では、DOMは、ソースコード内の行毎にモデルオブジェクトを有し、各モデルオブジェクトは、位置言語によって定義される行の文字範囲にそれぞれ対応する属性のセットを有する。同期オブジェクトは、ソースコードに対する変更を受け取った際に、変更箇所に基づいて、対応するモデルオブジェクトの適切な属性を更新することができる。同様に、同期オブジェクトは、モデルオブジェクトの属性に対する変更を受け取った際に、この属性に対応する文字範囲およびモデルオブジェクトに対応する行に基づいて、ソースコード内の適切な行および文字範囲を更新することができる。これにより、同期オブジェクトは、ソースコードとそれに対応するDOMとの同期化に関する効果的なソリューションを提供する。また、同期オブジェクトは、ソースコードに基づいてDOMを生成可能であるとともに/または、DOMに基づいてソースコードを生成可能である。結果として、本発明は、位置言語の様々な特徴を活用して、コンピュータ・プログラム・コードの開発オブジェクトの管理に関するソリューションを提供する。
本願における「開発オブジェクト」という用語は、コンピュータ・プログラム・コードを生成するために使用されるソースコードを含む。一実施形態において、ソースコードは、ファイル・システム内の1つ以上のファイルに保存される。この場合、各ファイルは開発オブジェクトを有すると考えられる。また、開発オブジェクトは、ファイルとして保存されない1つ以上のメモリ内オブジェクトを有することができる。例えば、開発オブジェクトは、ソースコードに対応する1つ以上のメモリ内オブジェクトを有することができる。したがって、文書オブジェクトモデル(DOM)は、開発オブジェクトを有する。また、その他の様々なオブジェクトが開発オブジェクトを有することが可能であることは当然である。例えば、開発オブジェクトは、ソースコードに基づいて生成されるとともに/または、ライブラリ/コンポーネント、またはコンピュータ・プログラム・コード、あるいはこの両方を有する実行可能ファイルなどとして提供されるオブジェクトファイルを有することが可能である。
次に図を参照するが、図1は、コンピュータ・プログラム・コード54用の開発オブジェクトの管理システム10の一例を示すものである。ここで、システム10は、開発オブジェクトを管理するために本願に記載の様々な処理ステップを実行可能なコンピュータ・インフラストラクチャ12を有する。具体的には、コンピュータ装置14を有するコンピュータ・インフラストラクチャ12が図示されており、コンピュータ装置14は、コンピュータ装置14による開発オブジェクトの管理を可能にするために本発明に係る処理ステップを実行する開発システム30を有する。
図示されたコンピュータ装置14は、プロセッサ20、メモリ22、入力/出力(I/O)インターフェース24およびバス26を有する。更に、図示されたコンピュータ装置14は、外部I/O装置/リソース28および記憶システム29と通信を行う。通常、プロセッサ20は、メモリ22または記憶システム29あるいはこの両方に保存される開発システム30などのコンピュータ・プログラム・コードを実行する。また、プロセッサ20は、コンピュータ・プログラム・コードを実行している間、メモリ22、記憶システム29またはI/Oインターフェース24あるいはこの両方からのソースコード50といったデータの読み出し、または、それらの装置へのデータの書き込み、あるいはこの両方を行うことができる。バス26は、コンピュータ装置14における各構成要素間の通信リンクを提供する。I/O装置28は、ユーザ16とコンピュータ装置14との対話を可能にするあらゆる装置(例えば、キーボード、ポインティング装置、ディスプレイなど)、またはコンピュータ装置14と他の1つ以上のコンピュータ装置との通信を可能にするあらゆる装置(例えば、ネットワーク・カード、モデム、無線通信装置など)を含んでもよい。
いずれにせよ、コンピュータ装置14は、ユーザ16によってインストールされたコンピュータ・プログラム・コードを実行可能な汎用コンピュータ(例えば、パーソナル・コンピュータ、サーバ、携帯端末など)であればいずれを含んでもよい。また一方で、コンピュータ装置14および開発システム30は、本発明に係る様々な処理ステップを実行可能である多種多様なコンピュータ装置の代表例にすぎないことを理解されたい。したがって、別の実施形態として、コンピュータ装置14は、特定機能を実行するためのハードウェア、またはコンピュータ・プログラム・コード、あるいはこの両方を有する特定目的用コンピュータ、または特定目的用および汎用ハードウェア/ソフトウェアの組み合わせを有するコンピュータなどのいずれかを含んでもよい。いずれの場合も、プログラム・コードは、標準的なプログラミング技術によって、また、ハードウェアは、標準的なエンジニアリング技術によって開発可能である。
同様に、コンピュータ・インフラストラクチャ12は、本発明を実装可能な多種にわたるコンピュータ・インフラストラクチャの一例にすぎない。例えば、一実施形態において、コンピュータ・インフラストラクチャ12は、ネットワーク上で、あるいは共有メモリを介して通信を行って本発明に係る様々な処理ステップを実行する2つ以上のコンピュータ装置(例えば、サーバ群)を有する。前者の場合、ネットワークは、1種類以上のネットワーク(例えば、インターネット、広域通信網、構内通信網、仮想専用回線など)を含んでもよく、コンピュータ装置間の通信においては、多種の通信リンク、または伝送技術(例えば、有線、無線など)、あるいはこの両方を利用することができる。
上述のとおり、また以下に記載するように、開発システム30は、コンピュータ装置14によるコンピュータ・プログラム・コード54用の開発オブジェクト(例えば、ソースコード50、DOM52など)の管理を可能にする。そのために、図示された開発システム30は、ユーザ16によるコンピュータ・プログラム・コード54に関連する様々な開発オブジェクトの管理(例えば、追加、削除など)を可能にする管理システム32、ユーザ16によるソースコード50の変更を可能にするテキストエディタを生成するテキストエディタ・システム34、ユーザ16によるDOM52の変更を可能にするビジュアルエディタを生成するビジュアルエディタ・システム36、ソースコード50とそれに対応するDOM52との同期化を維持する同期化システム38、およびコンピュータ・プログラム・コード54を生成する変換システム40を有する。これらのシステムの処理については、後ほど個別に説明する。ただし、図1に示す様々なシステムの幾つかは、ネットワーク上で通信を行う1つ以上の別々のコンピュータ装置14において、独立して実装したり、組み合わせたり、メモリに保存することができるのは当然である。更に、これらのシステム、または機能の幾つか、あるいはこの両方を実装しないことや、追加のシステム、または機能、あるいはこの両方をシステム10の一部として含むことが可能であることは当然である。
一実施形態において、開発システム30は、位置言語用の統合開発環境(IDE)アプリケーションとして具現化される。IDEアプリケーションは、ユーザ16によるソースコード50の作成および変更、位置言語およびソースコード50に基づくコンピュータ・プログラム・コード54の生成を可能にする単一のユーザ・インターフェースを提供する。具体的には、IDEアプリケーションは、ソースコード50を編集するための1つ以上のエディタ、エラーの発見、または修正、あるいはこの両方に関してユーザ16を支援するデバッガ、および位置言語のセマンティクスをソースコード50に適用してコンピュータ・プログラム・コード54を生成するコンパイラを一般的に有する。コンパイラは、ソースコード50を解析してDOM52を生成するパーサおよびDOM52に基づいてコンピュータ・プログラム・コード54を生成するバックエンドを通常有する。
これにより、管理システム32は、プログラミング言語によって定義される規則に基づいて記述されたソースコード50を有する開発オブジェクト・セットを取得することができる。本発明では、ソースコード50は、データ記述仕様(DDS)などの位置言語で記述されるものとする。それとは関係なく、管理システム32は、ソースコード50を有する開発オブジェクト・セットのうち幾つかまたはすべての開発オブジェクトをユーザ16が追加、移動、削除、または変更、あるいはこれらの組み合わせを可能にするユーザ・インターフェースを生成、または表示、あるいはこの両方を可能にする。例えば、管理システム32は、ソースコード50を有するファイルセットを含むプロジェクトを定義した後、そのプロジェクトを管理することが可能である。続いて、このファイルセットは、コンピュータ・プログラム・コード54を生成するのに使用することができる。また、管理システム32は、当技術分野で周知のように、ユーザ16による新規プロジェクトの定義、ファイルセットへのファイルの追加、またはファイルセットからのファイルの移動、またはファイルセットのうち1つ以上のファイルの確認/編集の選択、あるいはこれらの組み合わせを可能にする。
位置言語で記述されたソースコード50は、(1つ以上の)行を含む行・セットを有する。一実施形態において、各行は、ファイル内に保存されたデータに含まれる復帰文字、または改行文字、あるいはこの両方によって定義される。いずれにせよ、各行は多数の文字を有し、個々の文字位置(例えば、文字が表示される列)によって文字の意味が定義される。ユーザ16が確認/編集するためにソースコード50を選択する場合、管理システム32は、ユーザ16に表示するためのソースコード・エディタを生成するようにテキストエディタ・システム34に要求することができる。
例えば、図2は、ソースコード・エディタ60の一例を示す。ここで、図1および図2を参照するが、テキストエディタ・システム34は、ソースコード・エディタ60を生成可能である。続いて、ソースコード・エディタ60は、当技術分野で周知のように、テキストエディタ・システム34によってユーザ16に表示されるとともに/または、表示のために別のシステム(例えば、管理システム32)へ提供されても構わない。いずれにせよ、ソースコード・エディタ60は、ソースコード50内の行64のセットにおけるデータをユーザ16が確認する、または変更する、あるいはこの両方を行うことを可能にする。したがって、データを変更する場合、ユーザ16は、1行以上の現在の行64に関するデータの修正、1行以上の新規な行64の追加、1行以上の行64の削除などを実行することができる。
ソースコード・エディタ60を利用して行64のセットに関するデータを確認する、または変更する、あるいはこの両方を行う場合、ユーザ16(図1)がデータの文字位置を知ることが重要である。この点に関して、図示されたソースコード・エディタ60は、ユーザ16が個々のデータの文字位置(例えば、列)を容易に割り出せるようにする列標識62を1行有する。一方で、これに関して多様な選択肢があるのは当然である。例えば、ソースコード・エディタ60は、列方向におけるカーソルの現在位置をステータスバーなどで表すことができる。更にユーザ16によるデータの位置調整を支援するために、ソースコード・エディタ60は、通常、すべての文字が同一幅を有するフォント(例えば、クーリエ)を使用してソースコード50を表示する。
上述したように、位置言語ではデータが存在する特定の文字位置(例えば、列)によってデータの意味が決定される。したがって、行64は、DDS位置言語に基づいて入力されるデータ行により構成されうる。この場合、DDSは、行の種類を示すために最初の文字位置を使用するように定義することが可能である。例えば、17番目の文字位置における空白文字によって、行64をレコード内のフィールドを画定するものとして特定することができる。また、フィールドを画定する幾つかの異なる属性がフィールドに対して存在していてもよい。具体的には、19番目から28番目の文字位置はフィールド名を含み、30番目から34番目の文字位置はフィールドのデータ長を含み、35番目の文字位置はフィールドのデータタイプを含み、36番目および37番目の文字位置はフィールドの小数部の桁数を含み、38番目の文字位置はフィールドの入力/出力(I/O)処理として指定することができる。
ここで図1に戻って説明するが、ソースコード50に基づいてDOM52を取得することが可能である。一実施形態において、変換システム40は、ソースコード50に基づいてDOM52を生成するパーサなどを有することができる。図3は、DOM52Aの構造の一例を示す。具体的には、DOM52Aは、モデルオブジェクト70A,70Bのセットを含むノードの階層構造を有する。モデルオブジェクト70A‐Bのセットは、ソースコード50(図1)における行64(図2)のセットに対応可能である。一実施形態として、各モデルオブジェクト70A‐Bは、特異的な行64に1対1の関係で対応する。一方で、例えば、単一のモデルオブジェクト70A‐Bが複数の行64に対応する、または、単一の行64が複数のモデルオブジェクト70A‐Bに対応するなど、多様な選択肢があるのは当然である。更に、モデルオブジェクト70A‐Bは、当技術分野で周知のように、階層構造的にネスト化された1つ以上のモデルオブジェクト70A‐Bであってもよい。例えば、1つのレコードに対応するモデルオブジェクト70A‐Bは、レコード内の各フィールドに対応するモデルオブジェクト70A‐Bのセットを含むことができる。
また、DOM52A内の各モデルオブジェクト70A‐Bは、更に属性72A,72Bのセットを有することができる。これに関して、図示されたモデルオブジェクト70Aは、属性72A‐Bを有する。一実施形態において、各属性72A‐Bは、モデルオブジェクト70Aに対応する行64(図2)上の文字範囲に対応可能である。具体的には、文字範囲は、位置言語において特定の意味を有する属性を定義する全文字範囲によって構成されてもよい。
この点に関して、図4は、ソースコード50に基づいて生成可能なDOM152Aの一例を示す。具体的には、図示されたDOM152Aは、行64(図2)に対応するモデルオブジェクト170Aを有する。図示するとおり、モデルオブジェクト170Aは、行64の特定のタイプ(例えば、名前付フィールド)に対応する。これに関連して、モデルオブジェクト170Aは、属性172A‐Eのセットを有する。各属性172A‐Eは、行64のタイプを示す属性のうち、1つのデータを有する。例えば、各属性172A‐Eによって、属性(例えば、名前、データ長、データタイプなど)の種類、属性に対応する文字範囲、および文字範囲において行64上に保存されるデータを特定することが可能である。
ここで図1に戻って説明するが、DOM52がソースコード50に基づいて生成された時点で、変換システム40は、DOM52に基づいてコンピュータ・プログラム・コード54を生成することができる。具体的には、変換システム40は、既知の方法でDOM52をトラバース(traverse)し、コンピュータ・プログラム・コード54を生成するバックエンドを有することができる。一方で、DOM52もまたユーザ16によるソースコード50の開発を支援するために使用できる。これに関連して、管理システム32は、ユーザ16がDOM52に基づく表示/編集フォーマットを選択できるようにする。より詳細には、管理システム32は、ユーザ16によるDOM52に保存されたデータを変更する、または確認する、あるいはこの両方を行うことを可能にするビジュアルエディタを、ユーザ16が1種類以上選択できるようにする。ユーザ16によってビジュアルエディタが選択された場合、管理システム32は、ビジュアルエディタ・システム36に対して、目的のビジュアルエディタを生成するように要求することができる。
例えば、図5は、ビジュアルエディタ・システム36(図1)によって生成されうるビジュアルエディタ80の一例を示す。生成後、ビジュアルエディタ80は、当技術分野で周知のように、ビジュアルエディタ・システム36によってユーザ16(図1)に対して表示されるとともに/または、表示のために別のシステム(例えば、図1に示す管理システム32)へ提供されても構わない。いずれにせよ、ビジュアルエディタ80は、図4に示すDOM152Aにおける属性172A‐Eのデータをユーザ16が変更できるようにする。図5に示すように、ビジュアルエディタ80は、ユーザ16(図1)による属性172A‐Eのデータを確認する、または変更する、あるいはこの両方を行うことを可能にする使い勝手のよい様々な属性名およびテキストボックスを有することができる。このビジュアルエディタ80は一例にしかすぎず、その他の様々なエディタ/ディスプレイを使用できることは当業者にとって明白である。
図1に戻って説明するが、管理システム32は、ユーザ16による、(例えば、図2に示すソースコード・エディタ60を使用した)ソースコード50のデータの確認、または変更、あるいはこの両方と、(例えば、図5に示すビジュアルエディタ80を使用した)DOM52のデータの確認、または変更、あるいはこの両方を可能にするので、1つの開発オブジェクトに対する変更が他の開発オブジェクトへ反映されることが望ましい。この点に関して、本発明は、ソースコード50とDOM52との同期化に関する効率的なソリューションを提供する。具体的には、同期化システム38は同期オブジェクト・セットを使用し、また、この同期オブジェクトは、ソースコード50内の行・セットのうち1行における文字範囲と、それに対応するDOM52内のモデルオブジェクト・セット内の1つのモデルオブジェクトとに基づいて、ソースコード50とDOM52とを同期化するものである。
例えば、図6は、図1に示す様々なシステムによって実装可能な、ソースコード50とDOM52との同期化におけるデータフローの一例を示す。具体的には、テキストエディタ・システム34は、上述のとおりユーザ16によるソースコード50の変更を可能にするソースコード・エディタ60を生成することができる。同様に、ビジュアルエディタ・システム36は、ユーザ16によるDOM52の変更を可能にするビジュアルエディタ80を生成することができる。同期化システム38は、同期オブジェクト82A‐Bのセットを生成することができ、この同期オブジェクトは、ソースコード50またはDOM52のいずれかが変更された場合に、その変更箇所に基づいて他の開発オブジェクトを更新するものである。
一実施形態において、同期オブジェクト・セットにおける各同期オブジェクト82A‐Bは、DOM52内の特異的なモデルオブジェクト70A‐Bおよびソースコード50内の特異的な行64A‐Bに対応する。この場合、同期化システム38は、ソースコード50内の行64A‐Bのセットのうち1行のデータ変更箇所を受け取り、ソースコード50内の変更された行64A‐Bに対応する同期オブジェクト82A‐Bへ変更箇所を提供することができる。ここで、同期化システム38は、当技術分野で周知の様々なソリューションを用いて変更箇所を受け取ることが可能である。例えば、同期化システム38は、ユーザ16およびソースコード・エディタ60間の対話の監視、ソースコード・エディタ60によって生成されるとともにソースコード50内で変更を行うメッセージの監視、およびテキストエディタ・システム34からのメッセージの受け取りなどを行うことができる。
同期オブジェクト82A‐Bは、変更箇所に基づいて、更新が必要であるとともに同期オブジェクトに対応するモデルオブジェクト70A‐Bにおいて、適切な属性72A‐Bを選択することができる。例えば、同期オブジェクト82A‐Bは、まず行64A‐Bに対する変更箇所の文字位置を割り出すことができる。次に、同期オブジェクト82は、割り出された文字位置を含む文字範囲に対応する属性72A‐Bを選択することができる。属性72A‐Bを選択次第、同期オブジェクト82A‐Bは、選択した属性72A‐Bのデータを変更後のデータで更新することができる。
同様に、同期化システム38は、例えば、ユーザ16およびビジュアルエディタ80間の対話の監視、ビジュアルエディタ80によって生成されるとともにDOM52内で変更を行うメッセージの監視、およびビジュアルエディタ・システム36からのメッセージの受け取りなどを行うことで、属性72A‐Bのセットのうち1つの属性の変更データを受け取ることができる。いずれにせよ、同期化システム38は、変更箇所を受け取り次第、変更された属性72A-Bに対応するモデルオブジェクト70A-Bを取得し、モデルオブジェクト70A-Bに対応する同期オブジェクト82A‐Bへ変更箇所を提供することが可能である。同期オブジェクト82A‐Bは、変更箇所に基づいて、更新が必要なソースコード50内の適切な行64A‐Bを選択することができる。続いて、同期オブジェクト82A−Bは、選択した行64A‐Bのデータを変更後のデータで更新することができる。具体的には、同期化システム82A‐Bは、変更された属性72A‐Bに対応する文字範囲を取得し、行64A‐B上の文字範囲を変更後のデータで更新することができる。
図7は、図1に示す様々なシステムによって実装可能な、開発オブジェクトの同期化におけるデータフローの別の一例を示す。具体的には、各同期オブジェクト82Aは、属性エントリ83A‐Bのセットを有することができ、各属性エントリ83A‐Bは、対応する行64A上の文字範囲と、対応するモデルオブジェクト70Aの属性72A‐Bとのマッピングを含むことが可能である。この場合、モデルオブジェクト70Aの属性72A‐Bは、(例えば、明確なメタモデルを介して)総称で定義されうる。更に、各属性72A‐Bを更新するためのソースコードもまた総称であってもよい。したがって、各属性72A‐Bを実装するのに特異的なソースコードを作成する必要がない。むしろ、総称属性識別子が与えられていれば、モデルオブジェクト70Aの属性72A‐Bは、いずれも行64A上の文字範囲と総称的に同期化できる。その結果、同期オブジェクト82Aは、単純に、行64A上の特定文字範囲およびそれに対応する属性72A‐Bを指すように初期化された総称属性エントリ83A‐Bのセットとなりうる。このソリューションを実装するための一実施形態として、エクリプス・モデリング・フレームワークにより提供されるフィーチャ識別子といったモデル駆動型アーキテクチャ開発のフレームワークを使用することが可能である。
同期化システム38は、ソースコード50とDOM52との同期化の維持に加えて、同期オブジェクト82Aのセットを使用することで、ソースコード50に基づいてDOM52を生成するとともに/または、DOM52に基づいてソースコード50を生成することができる。例えば、同期化システム38は、ソースコード50内の各行64Aのデータを受け取り、各行64Aに対して同期オブジェクト82Aを生成し、行64Aのデータを同期オブジェクト82へ提供することができる。続いて、同期オブジェクト82Aは、行64Aのデータに基づいて、モデルオブジェクト70Aおよびそれに対応する属性72A‐Bのセットを生成することができる。
ここで、同期オブジェクト82Aは、(例えば、上述したように17番目の文字位置のデータに基づいて)行64Aの複数種のタイプのうち1つを決定することができる。続いて、同期オブジェクト82Aは、それぞれが行の特異的なタイプに対応するモデルオブジェクト・タイプのセットのうち1つのモデルオブジェクト・タイプを選択し、そのモデルオブジェクト・タイプを有する新規モデルオブジェクト70Aを作成可能である。また、同期オブジェクト82Aは、新規モデルオブジェクト70Aのモデルオブジェクト・タイプに関連する属性72A‐Bのセットを生成可能である。最後に、同期オブジェクト82Aは、行64Aのデータおよび属性72A‐Bの文字範囲に基づいて各属性72A‐Bのデータを取得することができる。具体的には、同期オブジェクト82Aは、属性72A‐Bの文字範囲を決定し、行64Aから文字範囲のデータを取得し、取得したデータを属性72A‐Bのデータとして保存することができる。
また、ユーザ16は、ビジュアルエディタ80を使用して新規モデルオブジェクト70Aを生成するように要求することができる。この場合、同期化システム38は、新規の同期オブジェクト82Aを生成することができ、この同期オブジェクト82Aは、要求されたモデルオブジェクト70Aのタイプに基づいて、新規モデルオブジェクト70Aおよびそれに対応する属性72A‐Bを生成することができる。新規モデルオブジェクト70Aは、各属性72A‐Bのデフォルトデータを保有可能である。更に、同期オブジェクト82Aは、新規モデルオブジェクト70Aに基づいて、ソースコード50内で新規の行64Aを作成できる。続いて、ユーザ16は、1つ以上の属性72A‐Bのデータを変更でき、同期オブジェクト82Aは、変更箇所に基づいて行64Aのデータを更新することができる。
本願ではコンピュータ・プログラム・コードの開発オブジェクトの管理方法および開発オブジェクトの管理システムについて図示および説明したが、本発明が更に多様な実施形態を提供することは当然である。例えば、一実施形態として、本発明は、コンピュータ・インフラストラクチャによる開発オブジェクトの管理を可能にするコンピュータ・プログラム・コードを含有するコンピュータ可読媒体を提供する。これに関して、コンピュータ可読媒体は、開発システム30(図1)のように本発明に係る様々な処理ステップのそれぞれを実行するプログラム・コードを有する。ここで、「コンピュータ可読媒体」は、1つ以上のあらゆる種類のプログラム・コードの物理的実施形態によって構成されることを理解されたい。具体的には、コンピュータ可読媒体は、1つ以上のポータブルストレージ(例えば、コンパクトディスク、磁気ディスク、テープなど)上で体現化されたプログラム・コード、メモリ22(図1)、または記憶システム29(図1)(例えば、固定ディスク、リード・オンリー・メモリ、ランダム・アクセス・メモリ、キャッシュ・メモリなど)、あるいはこの両方といったコンピュータ装置の1つ以上のデータ記憶領域内で体現化されたプログラム・コード、または、(例えば、有線/無線によるプログラム・コードの電気的分配において)ネットワーク上を伝達するデータ信号として体現化されたプログラム・コード、あるいはこの両方を包含することができる。
また、別の実施形態として、本発明は、会費、広告、または手数料方式、あるいはこの両方で、本発明に係る処理ステップを実行するビジネス方法を提供する。すなわち、インターネット・サービス・プロバイダなどの接続サービス業者は、上述したコンピュータ・プログラム・コードの開発オブジェクトの管理を提案することが可能である。この場合、接続サービス業者は、1名以上の顧客に対して本発明に係る処理ステップを実行するコンピュータ・インフラストラクチャ12(図1)などのコンピュータ・インフラストラクチャの作成、保持、サポートなどを行うことができる。それと引き換えに、接続サービス業者は、顧客から会費、または手数料、あるいはこの両方の契約に従って支払いを受けることができ、または、1以上の第3者に対する広告スペースの販売から支払いを受けることができ、あるいはこの両方が可能である。
更に別の実施形態として、本発明は、コンピュータ・プログラム・コードの開発オブジェクトの管理システムの作成方法を提供する。この場合、コンピュータ・インフラストラクチャ12(図1)などのコンピュータ・インフラストラクチャを獲得する(例えば、作成、保持、利用可能にする)ことができるとともに、本発明に係る処理ステップを実行する1つ以上のシステムを獲得(例えば、作成、購入、使用、変更)し、コンピュータ・インフラストラクチャへ展開することができる。ここで、各システムの展開は、(1)コンピュータ可読媒体からコンピュータ装置14(図1)などのコンピュータ装置へプログラム・コードをインストールするステップと、(2)コンピュータ・インフラストラクチャへ1つ以上のコンピュータ装置を追加するステップと、(3)コンピュータ・インフラストラクチャの1つ以上の現存システムの組み込み、または変更、あるいはこの両方を行うことで、コンピュータ・インフラストラクチャによる本発明に係る処理ステップの実行を可能にするステップのうち、1つ以上のステップを含むことができる。
本願において用いられる「プログラム・コード」および「コンピュータ・プログラム・コード」は同義であり、情報処理能力を有するコンピュータ装置に、直接的、または、(a)他の言語、コードまたは表記法への変換、または(b)異なる材料形態での複製のうちのいずれかまたは両方を行った後、特定の機能を実行させる、あらゆる言語、コードまたは表記法で記述された命令セットを意味することを理解されたい。これに関して、プログラム・コードは、アプリケーション/ソフトウェア・プログラム(例えば、IDE)、コンポーネント・ソフトウェア/機能ライブラリ、オペレーティング・システム、特定コンピュータ装置、または特定I/O装置用の基本I/Oシステム/ドライバ、あるいはこれらの組み合わせなどといった1種類以上のプログラムとして実装することができる。
以上、本発明の様々な態様について図示および説明のために記載した。しかし、本発明を網羅的に記載したり、開示された内容に厳密に限定することを意図されたものではなく、多種の変更および修正が可能であるのは明白である。なお、添付する特許請求の範囲によって定義される本発明の要旨を逸脱しない範囲で、これらの変更および修正が可能であることは、当業者であれば明らかである。
コンピュータ・プログラム・コードの開発オブジェクトの管理システムの一例を示す図である。 ソースコード・エディタの一例を示す図である。 文書オブジェクトモデル(DOM)の構造の一例を示す図である。 図3に示す構造を有するDOMの一例を示す図である。 ビジュアルエディタの一例を示す図である。 図1に示す様々なシステムによって実装可能な開発オブジェクトの同期化におけるデータフローの一例を示す図である。 図1に示す様々なシステムによって実装可能な開発オブジェクトの同期化におけるデータフローの別の一例を示す図である。
符号の説明
10:開発オブジェクトの管理システム
12:コンピュータ・インフラストラクチャ
14:コンピュータ装置
16:ユーザ
20:プロセッサ
22:メモリ
24:I/Oインターフェース
26:バス
28:I/O装置
29:記憶システム
30:開発システム
32:管理システム
34:テキストエディタ・システム
36:ビジュアルエディタ・システム
38:同期化システム
40:変換システム
50:ソースコード
52、52A、152A:文書オブジェクトモデル(DOM)
54:コンピュータ・プログラム・コード
60:ソースコード・エディタ
62:列標識
64、64A、64B:行
70A、70B、170A:モデルオブジェクト
72A、72B、172A、172B、172C、172D、172E:属性
80:ビジュアルエディタ
82A、82B:同期オブジェクト
83A、83B:属性エントリ

Claims (22)

  1. 処理手段と記憶手段とを備えるコンピュータ・システムによりコンピュータ・プログラム・コードの開発オブジェクトを管理する方法であって、
    前記処理手段がコンピュータ・プログラム・コードのためのソースコードであり、位置言語で記述され、かつ、行・セットを含むソースコードを有する第1の開発オブジェクトを前記記憶手段から取得するステップと、
    前記処理手段が前記行・セットに対応するモデルオブジェクト・セットを含むドキュメントオブジェクトモデル(DOM)を有する第2の開発オブジェクトを前記記憶手段から取得するステップと、
    前記処理手段が前記記憶手段に記憶している同期オブジェクト・セットを使用し、前記位置言語によって定義される文字範囲のセットに基づいて前記ソースコードと前記DOMとを同期させるステップと、
    を含む、開発オブジェクト管理方法。
  2. 前記第2の開発オブジェクトを取得するステップが、前記同期オブジェクト・セットを使用し、前記ソースコードに基づいて前記DOMを生成するステップを含む、請求項1に記載の開発オブジェクト管理方法。
  3. 前記処理手段が前記DOMに基づいて前記コンピュータ・プログラム・コードを前記記憶手段上に生成するステップを更に含む、請求項1に記載の開発オブジェクト管理方法。
  4. 前記処理手段が前記ソースコード内の各行に対して、前記同期オブジェクト・セット内において一意な同期オブジェクトを前記記憶手段上に生成するステップを更に含む、請求項1に記載の開発オブジェクト管理方法。
  5. 前記同期オブジェクト・セット内の前記同期オブジェクトが、それぞれ、前記モデルオブジェクト・セット内の一意なモデルオブジェクトに対応する、請求項4に記載の開発オブジェクト管理方法。
  6. 前記DOMが、前記モデルオブジェクト・セット内の前記モデルオブジェクトのそれぞれに関連する属性・セットを更に有し、前記属性・セット内の各属性が、前記モデルオブジェクトに対応する行の文字範囲に対応する、請求項5に記載の開発オブジェクト管理方法。
  7. 前記同期させるステップが、
    前記属性・セットのうちの1つの属性のデータ変更箇所を、前記同期オブジェクト・セットのうちの前記属性に対応する同期オブジェクトにおいて受け取るステップと、
    前記同期オブジェクト・セットのうちの前記1つの同期オブジェクトに対して、
    前記行・セットのうちの1つの行を、前記同期オブジェクトに対応する前記モデルオブジェクトに基づいて選択するステップと、
    選択された前記行上で、前記属性・セットのうちの前記属性に対応する前記文字範囲のデータを更新するステップと、
    を含む、請求項6に記載の開発オブジェクト管理方法。
  8. 前記同期させるステップが、
    前記行・セットのうちの1行のデータ変更箇所を、前記同期オブジェクト・セットのうちの前記行に対応する同期オブジェクトにおいて受け取るステップと、
    前記同期オブジェクト・セットのうちの前記1つの同期オブジェクトに対して、
    前記変更箇所の文字位置および前記属性・セット内の各属性に対応する前記文字範囲に基づいて、前記同期オブジェクトに対応する前記モデルオブジェクトの前記属性・セットのうちの1つの属性を選択するステップと、
    前記属性・セットのうちの選択された前記属性のデータを更新するステップと、
    を含む、請求項6に記載の開発オブジェクト管理方法。
  9. 処理手段と記憶手段とを備えるコンピュータ・システムによりコンピュータ・プログラム・コード開発オブジェクトの管理方法であって、
    前記処理手段がコンピュータ・プログラム・コードのためのソースコードであり、位置言語で記述され、かつ、行・セットを含むソースコードを有する第1の開発オブジェクトを前記記憶手段から取得するステップと、
    前記処理手段が前記ソースコードに対応する文書オブジェクトモデル(DOM)を有する第2の開発オブジェクトを前記記憶手段より取得するステップと、
    を含み、
    前記DOMは、
    各モデルオブジェクトが前記行・セット内の一意な行に対応する、モデルオブジェクト・セットと、
    各属性が前記モデルオブジェクトに対応する行の文字範囲に対応する、前記モデルオブジェクトのそれぞれに対する属性・セットと、
    を有し、
    前記管理方法はさらに、
    前記処理手段が各同期オブジェクトがモデルオブジェクト・セット内の一意なモデルオブジェクトに対応し、前記記憶手段に記憶される同期オブジェクト・セットを使用し、前記ソースコードと前記DOMとを同期させるステップと、
    を含む、
    開発オブジェクト管理方法。
  10. 前記同期させるステップは、
    前記行・セットのうちの1行のデータ変更箇所を、前記同期オブジェクト・セットのうちの前記行に対応する1つのオブジェクトにおいて受け取るステップと、
    前記同期オブジェクト・セットのうちの前記1つの同期オブジェクトに対して、
    前記変更箇所の文字位置および前記属性・セット内の各属性に対応する前記文字範囲に基づいて、前記同期オブジェクトに対応する前記モデルオブジェクトの前記属性・セットのうちの1つの属性を選択するステップと、
    前記属性・セットのうちの選択された前記属性のデータを更新するステップと、
    を含む、請求項9に記載の開発オブジェクト管理方法。
  11. 前記コンピュータ・システムが入出力手段を更に備え、
    前記データ変更箇所を受け取るステップが、前記入出力手段を介してユーザによる前記行・セットのデータの変更を可能にするソースコード・エディタを生成するステップを含む、請求項10に記載の開発オブジェクト管理方法。
  12. 前記同期させるステップは、
    前記属性・セットのうちの1つの属性のデータ変更箇所を、前記同期オブジェクト・セットのうちの前記属性に対応する同期オブジェクトにおいて受け取るステップと、
    前記同期オブジェクト・セットのうちの1つの同期オブジェクトに対して、
    前記行・セットのうちの1行を、前記同期オブジェクトに対応する前記モデルオブジェクトに基づいて選択するステップと、
    選択された前記行上で、前記属性・セットのうちの前記属性に対応する前記文字範囲のデータを更新するステップと、
    を含む、請求項11に記載の開発オブジェクト管理方法。
  13. 前記データ変更箇所を受け取るステップは、ユーザによる前記属性・セットのデータの変更を可能にするビジュアルエディタを生成するステップを含む、請求項12に記載の開発オブジェクト管理方法。
  14. 前記処理手段が前記DOMに基づいて前記コンピュータ・プログラム・コードを前記記憶手段上に生成するステップを更に含む、請求項9に記載の開発オブジェクト管理方法。
  15. 前記第2の開発オブジェクトを取得するステップは、
    前記行・セット内の各行に対して
    同期オブジェクトを生成するステップと、
    前記行・セット内の各行のデータを前記同期オブジェクトに提供するステップと、
    前記同期オブジェクトを使用して、前記行に対応するモデルオブジェクトおよび属性・セットを生成するステップとを含む、請求項9に記載の開発オブジェクト管理方法。
  16. 前記モデルオブジェクトおよび属性・セットを生成するステップは、
    前記データに基づいて、モデルオブジェクト・タイプのセットのうち1つのモデルオブジェクト・タイプを選択するステップと、
    前記モデルオブジェクト・タイプを有する新規モデルオブジェクトを作成するステップと、
    前記新規モデルオブジェクトに対して、前記属性・セット内の各属性のデータを、前記行の前記データおよび前記属性の前記文字範囲に基づいて取得するステップと、
    を含む、請求項15に記載の開発オブジェクト管理方法。
  17. コンピュータ・プログラム・コードの開発オブジェクトの管理システムであって、
    コンピュータ・プログラム・コードのためのソースコードであり、位置言語で記述され、かつ、行・セットを含むソースコードを有する第1の開発オブジェクトを取得するシステムと、
    前記行・セットに対応するモデルオブジェクト・セットを含む文書オブジェクトモデル(DOM)を有する第2の開発オブジェクトを取得するシステムと、
    同期オブジェクト・セットを使用し、前記位置言語によって定義される文字範囲のセットに基づいて前記ソースコードと前記DOMとを同期するシステムと、
    を含む、開発オブジェクト管理システム。
  18. ユーザによる前記行・セットのデータの変更を可能にするソースコード・エディタを生成するシステムを更に含む、請求項17に記載の開発オブジェクトの管理システム。
  19. ユーザによる前記モデルオブジェクト・セットのうち少なくとも1つのモデルオブジェクトのデータの変更を可能にするビジュアルエディタを生成するシステムを更に含む、請求項17に記載の開発オブジェクトの管理システム。
  20. 前記第2の開発オブジェクトを取得するシステムは、
    前記モデルオブジェクト・セット内の各モデルオブジェクトに関連する属性・セットを生成するシステムと、
    前記属性・セット内の各属性のデータを、前記属性に対応する行上の文字範囲のデータに基づいて取得するシステムと、
    を含む、請求項17に記載の開発オブジェクトの管理システム。
  21. 前記DOMに基づいて前記コンピュータ・プログラム・コードを生成するシステムを更に含む、請求項17に記載の開発オブジェクトの管理システム。

  22. コンピュータ・プログラム・コードの開発オブジェクトを管理システムとしてコンピュータ・システムを機能させるコンピュータ・プログラムであり、
    前記コンピュータ・システムに、
    コンピュータ・プログラム・コードのためのソースコードであり、位置言語で記述され、かつ、行・セットを含むソースコードを有する第1の開発オブジェクトを取得する機能と、
    前記行・セットに対応するモデルオブジェクト・セットを含むドキュメントオブジェクトモデル(DOM)を有する第2の開発オブジェクトを取得する機能と、
    同期オブジェクト・セットを使用し、前記位置言語によって定義される文字範囲のセットに基づいて前記ソースコードと前記DOMとを同期させる機能と、
    を実現させるコンピュータ・プログラム。
JP2006064548A 2005-03-10 2006-03-09 コンピュータ・プログラム・コードの開発オブジェクトの管理方法および開発オブジェクトの管理システム Pending JP2006252557A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/906,872 US7480897B2 (en) 2005-03-10 2005-03-10 Method and system for managing development objects for computer program code

Publications (2)

Publication Number Publication Date
JP2006252557A true JP2006252557A (ja) 2006-09-21
JP2006252557A5 JP2006252557A5 (ja) 2009-06-18

Family

ID=36972489

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006064548A Pending JP2006252557A (ja) 2005-03-10 2006-03-09 コンピュータ・プログラム・コードの開発オブジェクトの管理方法および開発オブジェクトの管理システム

Country Status (3)

Country Link
US (1) US7480897B2 (ja)
JP (1) JP2006252557A (ja)
CN (1) CN100363892C (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008146637A (ja) * 2006-11-20 2008-06-26 Intentional Software Corp ドメイン変換言語
JP2009098751A (ja) * 2007-10-12 2009-05-07 Nomura Research Institute Ltd コーディング支援装置
JP2009098750A (ja) * 2007-10-12 2009-05-07 Nomura Research Institute Ltd コーディング支援装置

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8010946B2 (en) * 2005-03-18 2011-08-30 Oracle International Corporation Apparatus for analysing and organizing artifacts in a software application
US7681178B1 (en) * 2005-07-22 2010-03-16 Adobe Systems Incorporated Cascading style sheets (CSS) prototype pointer chaining in object-oriented environment
US8775974B2 (en) * 2005-12-21 2014-07-08 International Business Machines Corporation Multi-contextual delta navigation in a compare view
US7966346B1 (en) * 2006-01-23 2011-06-21 Coverity, Inc. Updating groups of items
US7770146B2 (en) * 2006-05-19 2010-08-03 Sap Ag Computer software development incorporating core and compound services
CA2564054A1 (en) 2006-10-16 2008-04-16 Research In Motion Limited System and method for updating reference to a data-source in a component-based application
US20080088877A1 (en) * 2006-10-16 2008-04-17 Michael Cacenco System and Method for Updating Reference to a Data-Source In a Component-Based Application
US7904418B2 (en) * 2006-11-14 2011-03-08 Microsoft Corporation On-demand incremental update of data structures using edit list
US7926026B2 (en) * 2006-12-20 2011-04-12 Sap Ag Graphical analysis to detect process object anomalies
US8196100B2 (en) * 2007-04-06 2012-06-05 International Business Machines Corporation Content management system for computer software with dynamic traceability between code and design documents
JP4412674B2 (ja) * 2007-04-18 2010-02-10 インターナショナル・ビジネス・マシーンズ・コーポレーション モデル駆動型開発を支援する装置及び方法
US8996349B2 (en) * 2007-10-11 2015-03-31 Microsoft Technology Licensing, Llc Synchronizing an abstract model and source code
EP2248013A4 (en) * 2007-12-20 2012-09-26 Hsbc Technologies Inc AUTOMATED METHODS AND SYSTEMS FOR THE PARALLEL DEVELOPMENT AND APPLICATION OF PROJECTS
US8166449B2 (en) * 2008-01-17 2012-04-24 Microsoft Corporation Live bidirectional synchronizing of a visual and a textual representation
US9535692B2 (en) 2008-03-14 2017-01-03 Adobe Systems Incorporated Systems and methods for managing related files in a software development environment
US8356277B1 (en) 2008-04-04 2013-01-15 Adobe Systems Incorporated System and method for freezing operation of dynamic code of a run-time web page
US8713520B2 (en) * 2008-04-04 2014-04-29 Adobe Systems Incorporated Web development environment that enables a developer to interact with run-time output presentation of a page
US9639331B2 (en) 2008-07-09 2017-05-02 International Business Machines Corporation Service interface creation and modification for object-oriented services
US8135690B2 (en) * 2009-01-05 2012-03-13 Microsoft Corporation Concurrency object classification
US20110173589A1 (en) * 2010-01-13 2011-07-14 Microsoft Corporation Cross-Browser Interactivity Testing
US9753699B2 (en) * 2011-06-16 2017-09-05 Microsoft Technology Licensing, Llc Live browser tooling in an integrated development environment
US9563714B2 (en) 2011-06-16 2017-02-07 Microsoft Technology Licensing Llc. Mapping selections between a browser and the original file fetched from a web server
US9460224B2 (en) 2011-06-16 2016-10-04 Microsoft Technology Licensing Llc. Selection mapping between fetched files and source files
US9176937B2 (en) * 2012-04-05 2015-11-03 International Business Machines Corporation Ensuring user interface specification accurately describes user interface after updates to user interface
US9501263B2 (en) * 2014-12-18 2016-11-22 Oracle International Corporation Automated model derivation and alignment
CN113515278A (zh) * 2021-06-16 2021-10-19 深圳奥哲网络科技有限公司 低代码模型处理方法、系统、电子设备及存储介质
CN113918427B (zh) * 2021-12-14 2023-03-31 阿里云计算有限公司 一种数据变更响应方法以及装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5146221A (en) 1989-01-13 1992-09-08 Stac, Inc. Data compression apparatus and method
CA2175711A1 (en) 1996-05-01 1997-11-02 Lee Richard Nackman Incremental compilation of c++ programs
US6367068B1 (en) 1998-11-13 2002-04-02 Microsoft Corporation Dynamic parsing
US6675354B1 (en) * 1999-11-18 2004-01-06 International Business Machines Corporation Case-insensitive custom tag recognition and handling
US6745208B2 (en) * 2001-05-31 2004-06-01 International Business Machines Corporation Method and apparatus for synchronizing an XML document with its object model
US20020181507A1 (en) 2001-06-01 2002-12-05 Jones Clifton T. System and method of incremental parsing
US20040168124A1 (en) * 2001-06-07 2004-08-26 Michael Beisiegel System and method of mapping between software objects & structured language element-based documents
US6862588B2 (en) 2001-07-25 2005-03-01 Hewlett-Packard Development Company, L.P. Hybrid parsing system and method
US7058567B2 (en) 2001-10-10 2006-06-06 Xerox Corporation Natural language parser
US6798362B2 (en) 2002-10-30 2004-09-28 International Business Machines Corporation Polynomial-time, sequential, adaptive system and method for lossy data compression
CA2418255A1 (en) 2003-01-31 2004-07-31 Ibm Canada Limited - Ibm Canada Limitee Tracking and maintaining related and derivative code
US7617450B2 (en) * 2004-09-30 2009-11-10 Microsoft Corporation Method, system, and computer-readable medium for creating, inserting, and reusing document parts in an electronic document
US7707498B2 (en) * 2004-09-30 2010-04-27 Microsoft Corporation Specific type content manager in an electronic document

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008146637A (ja) * 2006-11-20 2008-06-26 Intentional Software Corp ドメイン変換言語
US9158507B2 (en) 2006-11-20 2015-10-13 Intentional Software Corporation Domain transformation languages
JP2009098751A (ja) * 2007-10-12 2009-05-07 Nomura Research Institute Ltd コーディング支援装置
JP2009098750A (ja) * 2007-10-12 2009-05-07 Nomura Research Institute Ltd コーディング支援装置

Also Published As

Publication number Publication date
US20060206865A1 (en) 2006-09-14
US7480897B2 (en) 2009-01-20
CN100363892C (zh) 2008-01-23
CN1831766A (zh) 2006-09-13

Similar Documents

Publication Publication Date Title
JP2006252557A (ja) コンピュータ・プログラム・コードの開発オブジェクトの管理方法および開発オブジェクトの管理システム
EP1770510B1 (en) Executable and declarative specification for graphical user interfaces
US8667456B1 (en) Cloud-based indexing for integrated development environments
CN108762743B (zh) 一种数据表操作代码生成方法及装置
CN103218215A (zh) 用于创建面向IT的基于服务器的Web应用的方法和系统
WO2013181588A2 (en) Defining and mapping application interface semantics
JP2003345717A (ja) ウェブ・ドキュメントを再編集して再配布する方法及び装置
WO2016032080A1 (ko) 메타 데이터를 이용한 차트 변환 시스템 및 그 방법
US9817811B2 (en) Web server system, dictionary system, dictionary call method, screen control display method, and demonstration application generation method
CN112100550A (zh) 一种页面构建方法和装置
EP1830275A1 (en) Information distribution system
US8082494B2 (en) Rendering markup language macro data for display in a graphical user interface
US20190370028A1 (en) Managing discovery and selection of service interface specifications
EP1768034A1 (en) Document processing device and document processing method
US20070198915A1 (en) Document Processing Device And Document Processing Method
CN113407284A (zh) 导航界面的生成方法、装置、存储介质及电子设备
CN110308907B (zh) 数据转换方法、装置、存储介质及电子设备
JPWO2007081017A1 (ja) 文書処理装置
JP2007122724A (ja) 埋め込み画像スタイル識別子と共にベクトル画像を記憶する装置並びに画像スタイル属性を使用して装置画像をフォーマットする方法及びユーティリティ
US7802181B2 (en) Document processing device and document processing method
US20080005136A1 (en) Data Processing Device, Document Processing Device, and Document Processing Method
US7716653B2 (en) Configurable importers and resource writers for converting data into another format
JP2010039751A (ja) ソフトウェア開発システム
CN115629763A (zh) 目标代码的生成方法、npu指令的显示方法及装置
JPH064280A (ja) ウィズィウィグ式エディターでオブジェクトをユーザ制御する機能を備えたグラフィカル・ユーザ・インターフェース

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060524

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090123

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090501

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20090501

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20090513

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090602

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090728

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090728

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20090728

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090731

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091007

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20091023

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20091023