(57)【要約】      （修正有）【課題】コンピュータ・プログラム・コードの開発オブジェクトの管理方法および開発オブジェクトの管理システムを提供すること。【解決手段】一方の開発オブジェクトは、位置言語で記述されたソースコード５０を有し、他方の開発オブジェクトは、当該ソースコード５０に対応する文書オブジェクトモデル（ＤＯＭ５２）を有する。これら２つの開発オブジェクトは、同期オブジェクト８２Ａ、８２Ｂのセットを用いて同期化される。具体的には、位置言語により定義された多様な文字範囲を用いて、ソースコード５０の一部分を、それに対応するＤＯＭ５２の一部分へ効率的にマップする。これにより、同期オブジェクト８２Ａ、８２Ｂは、一方の開発オブジェクトを、受け取った他方の開発オブジェクトの変更箇所を用いて容易に更新することができる。【選択図】図６
2006252557.tif 000002
【特許請求の範囲】
【請求項１】
処理手段と記憶手段とを備えるコンピュータ・システムによりコンピュータ・プログラム・コードの開発オブジェクトを管理する方法であって、
前記処理手段がコンピュータ・プログラム・コードのためのソースコードであり、位置言語で記述され、かつ、行・セットを含むソースコードを有する第１の開発オブジェクトを前記記憶手段から取得するステップと、
前記処理手段が前記行・セットに対応するモデルオブジェクト・セットを含むドキュメントオブジェクトモデル（ＤＯＭ）を有する第２の開発オブジェクトを前記記憶手段から取得するステップと、
前記処理手段が前記記憶手段に記憶している同期オブジェクト・セットを使用し、前記位置言語によって定義される文字範囲のセットに基づいて前記ソースコードと前記ＤＯＭとを同期させるステップと、
を含む、開発オブジェクト管理方法。
【請求項２】
前記第２の開発オブジェクトを取得するステップが、前記同期オブジェクト・セットを使用し、前記ソースコードに基づいて前記ＤＯＭを生成するステップを含む、請求項１に記載の開発オブジェクト管理方法。
【請求項３】
前記処理手段が前記ＤＯＭに基づいて前記コンピュータ・プログラム・コードを前記記憶手段上に生成するステップを更に含む、請求項１に記載の開発オブジェクト管理方法。
【請求項４】
前記処理手段が前記ソースコード内の各行に対して、前記同期オブジェクト・セット内において一意な同期オブジェクトを前記記憶手段上に生成するステップを更に含む、請求項１に記載の開発オブジェクト管理方法。
【請求項５】
前記同期オブジェクト・セット内の前記同期オブジェクトが、それぞれ、前記モデルオブジェクト・セット内の一意なモデルオブジェクトに対応する、請求項４に記載の開発オブジェクト管理方法。
【請求項６】
前記ＤＯＭが、前記モデルオブジェクト・セット内の前記モデルオブジェクトのそれぞれに関連する属性・セットを更に有し、前記属性・セット内の各属性が、前記モデルオブジェクトに対応する行の文字範囲に対応する、請求項５に記載の開発オブジェクト管理方法。
【請求項７】
前記同期させるステップが、
前記属性・セットのうちの１つの属性のデータ変更箇所を、前記同期オブジェクト・セットのうちの前記属性に対応する同期オブジェクトにおいて受け取るステップと、
前記同期オブジェクト・セットのうちの前記１つの同期オブジェクトに対して、
前記行・セットのうちの１つの行を、前記同期オブジェクトに対応する前記モデルオブジェクトに基づいて選択するステップと、
選択された前記行上で、前記属性・セットのうちの前記属性に対応する前記文字範囲のデータを更新するステップと、
を含む、請求項６に記載の開発オブジェクト管理方法。
【請求項８】
前記同期させるステップが、
前記行・セットのうちの１行のデータ変更箇所を、前記同期オブジェクト・セットのうちの前記行に対応する同期オブジェクトにおいて受け取るステップと、
前記同期オブジェクト・セットのうちの前記１つの同期オブジェクトに対して、
前記変更箇所の文字位置および前記属性・セット内の各属性に対応する前記文字範囲に基づいて、前記同期オブジェクトに対応する前記モデルオブジェクトの前記属性・セットのうちの１つの属性を選択するステップと、
前記属性・セットのうちの選択された前記属性のデータを更新するステップと、
を含む、請求項６に記載の開発オブジェクト管理方法。
【請求項９】
処理手段と記憶手段とを備えるコンピュータ・システムによりコンピュータ・プログラム・コード開発オブジェクトの管理方法であって、
前記処理手段がコンピュータ・プログラム・コードのためのソースコードであり、位置言語で記述され、かつ、行・セットを含むソースコードを有する第１の開発オブジェクトを前記記憶手段から取得するステップと、
前記処理手段が前記ソースコードに対応する文書オブジェクトモデル（ＤＯＭ）を有する第２の開発オブジェクトを前記記憶手段より取得するステップと、
を含み、
前記ＤＯＭは、
各モデルオブジェクトが前記行・セット内の一意な行に対応する、モデルオブジェクト・セットと、
各属性が前記モデルオブジェクトに対応する行の文字範囲に対応する、前記モデルオブジェクトのそれぞれに対する属性・セットと、
を有し、
前記管理方法はさらに、
前記処理手段が各同期オブジェクトがモデルオブジェクト・セット内の一意なモデルオブジェクトに対応し、前記記憶手段に記憶される同期オブジェクト・セットを使用し、前記ソースコードと前記ＤＯＭとを同期させるステップと、
を含む、
開発オブジェクト管理方法。
【請求項１０】
前記同期させるステップは、
前記行・セットのうちの１行のデータ変更箇所を、前記同期オブジェクト・セットのうちの前記行に対応する１つのオブジェクトにおいて受け取るステップと、
前記同期オブジェクト・セットのうちの前記１つの同期オブジェクトに対して、
前記変更箇所の文字位置および前記属性・セット内の各属性に対応する前記文字範囲に基づいて、前記同期オブジェクトに対応する前記モデルオブジェクトの前記属性・セットのうちの１つの属性を選択するステップと、
前記属性・セットのうちの選択された前記属性のデータを更新するステップと、
を含む、請求項９に記載の開発オブジェクト管理方法。
【請求項１１】
前記コンピュータ・システムが入出力手段を更に備え、
前記データ変更箇所を受け取るステップが、前記入出力手段を介してユーザによる前記行・セットのデータの変更を可能にするソースコード・エディタを生成するステップを含む、請求項１０に記載の開発オブジェクト管理方法。
【請求項１２】
前記同期させるステップは、
前記属性・セットのうちの１つの属性のデータ変更箇所を、前記同期オブジェクト・セットのうちの前記属性に対応する同期オブジェクトにおいて受け取るステップと、
前記同期オブジェクト・セットのうちの１つの同期オブジェクトに対して、
前記行・セットのうちの１行を、前記同期オブジェクトに対応する前記モデルオブジェクトに基づいて選択するステップと、
選択された前記行上で、前記属性・セットのうちの前記属性に対応する前記文字範囲のデータを更新するステップと、
を含む、請求項１１に記載の開発オブジェクト管理方法。
【請求項１３】
前記データ変更箇所を受け取るステップは、ユーザによる前記属性・セットのデータの変更を可能にするビジュアルエディタを生成するステップを含む、請求項１２に記載の開発オブジェクト管理方法。
【請求項１４】
前記処理手段が前記ＤＯＭに基づいて前記コンピュータ・プログラム・コードを前記記憶手段上に生成するステップを更に含む、請求項９に記載の開発オブジェクト管理方法。
【請求項１５】
前記第２の開発オブジェクトを取得するステップは、
前記行・セット内の各行に対して
同期オブジェクトを生成するステップと、
前記行・セット内の各行のデータを前記同期オブジェクトに提供するステップと、
前記同期オブジェクトを使用して、前記行に対応するモデルオブジェクトおよび属性・セットを生成するステップとを含む、請求項９に記載の開発オブジェクト管理方法。
【請求項１６】
前記モデルオブジェクトおよび属性・セットを生成するステップは、
前記データに基づいて、モデルオブジェクト・タイプのセットのうち１つのモデルオブジェクト・タイプを選択するステップと、
前記モデルオブジェクト・タイプを有する新規モデルオブジェクトを作成するステップと、
前記新規モデルオブジェクトに対して、前記属性・セット内の各属性のデータを、前記行の前記データおよび前記属性の前記文字範囲に基づいて取得するステップと、
を含む、請求項１５に記載の開発オブジェクト管理方法。
【請求項１７】
コンピュータ・プログラム・コードの開発オブジェクトの管理システムであって、
コンピュータ・プログラム・コードのためのソースコードであり、位置言語で記述され、かつ、行・セットを含むソースコードを有する第１の開発オブジェクトを取得するシステムと、
前記行・セットに対応するモデルオブジェクト・セットを含む文書オブジェクトモデル（ＤＯＭ）を有する第２の開発オブジェクトを取得するシステムと、
同期オブジェクト・セットを使用し、前記位置言語によって定義される文字範囲のセットに基づいて前記ソースコードと前記ＤＯＭとを同期するシステムと、
を含む、開発オブジェクト管理システム。
【請求項１８】
ユーザによる前記行・セットのデータの変更を可能にするソースコード・エディタを生成するシステムを更に含む、請求項１７に記載の開発オブジェクトの管理システム。
【請求項１９】
ユーザによる前記モデルオブジェクト・セットのうち少なくとも１つのモデルオブジェクトのデータの変更を可能にするビジュアルエディタを生成するシステムを更に含む、請求項１７に記載の開発オブジェクトの管理システム。
【請求項２０】
前記第２の開発オブジェクトを取得するシステムは、
前記モデルオブジェクト・セット内の各モデルオブジェクトに関連する属性・セットを生成するシステムと、
前記属性・セット内の各属性のデータを、前記属性に対応する行上の文字範囲のデータに基づいて取得するシステムと、
を含む、請求項１７に記載の開発オブジェクトの管理システム。
【請求項２１】
前記ＤＯＭに基づいて前記コンピュータ・プログラム・コードを生成するシステムを更に含む、請求項１７に記載の開発オブジェクトの管理システム。
【請求項２２】
コンピュータ・プログラム・コードの開発オブジェクトを管理システムとしてコンピュータ・システムを機能させるコンピュータ・プログラムであり、
前記コンピュータ・システムに、
コンピュータ・プログラム・コードのためのソースコードであり、位置言語で記述され、かつ、行・セットを含むソースコードを有する第１の開発オブジェクトを取得する機能と、
前記行・セットに対応するモデルオブジェクト・セットを含むドキュメントオブジェクトモデル（ＤＯＭ）を有する第２の開発オブジェクトを取得する機能と、
同期オブジェクト・セットを使用し、前記位置言語によって定義される文字範囲のセットに基づいて前記ソースコードと前記ＤＯＭとを同期させる機能と、
を実現させるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にコンピュータ・プログラム・コードの開発オブジェクトの管理に関し、特に、位置言語で記述されたソースコードとそれに対応する文書オブジェクトモデル（ＤＯＭ）との同期を維持するための改善策に関する。
【背景技術】
【０００２】
位置言語は、行中の文字位置によってテキストの意味を定義するものである。例えば、ニューヨーク州アーモンクにあるインターナショナル・ビジネス・マシーンズ・コーポレーションが提供するｉＳｅｒｉｅｓクラスのミッドレンジ・サーバ用の具体的な位置言語として、レポート・プログラム・ジェネレータ（ＲＰＧ）が挙げられる。ＲＰＧで記述されたアプリケーションは、データベースおよびディスプレイやプリンタといった装置からデータを読み出し、および、それらのデータベースおよび装置にデータを書き込む。また、これらのデータベースおよび装置に対するインターフェースは、別の位置言語として挙げられるデータ記述仕様（ＤＤＳ:DataDescription Specifications）と呼ばれる行系列により記述される。
【０００３】
位置言語は、一般に幾つかの初期的なプログラミング言語によって構成される。最近では、トークンベースの言語（例えば、Ｊａｖａ（商標）、Ｃ＋＋など）が普及してきている。いずれにせよ、ソースコードは、従来よりテキストエディタを使用して作成される。一方で、多様なプログラミング言語用の統合開発環境（ＩＤＥ:IntegratedDevelopment Enviroment）の拡張性が向上されてきており、ユーザに対して、より生産的で直感的に理解可能な開発環境を提供している。これらの開発環境の拡張性は、ソースコードに対応する文書オブジェクトモデル（ＤＯＭ:DocumentObject Model）の生成に依存するものである。例えば、ＩＤＥに含まれるコンパイラ用のパーサ(parser)は、個別のプログラミング言語で記述されたソースコードをＤＯＭに変換するために使用できる。ＤＯＭは、ソースコードに含まれるすべての意味情報をとらえたソースコード表現を有する。このＤＯＭは、コンパイルする際にプログラムを生成するために使用される。
【０００４】
ＩＤＥは、ＤＯＭを使用することで、ユーザに対して多様な拡張性を提供する。例えば、ＤＯＭを使用することで、１つ以上のグラフィカル・ビューを生成でき、ユーザによる言語特徴の視覚化を可能にする。これにより、ＩＤＥは、開発中のプログラムの概略、正確な画面構成、または作成中の報告書、あるいはこの両方などを表示することができる。更に、ＩＤＥは、より使い勝手のよいプロパティ・ビューやグラフィカル・エディタといった１つ以上のビジュアルエディタを提供可能である。この場合、ユーザがソースコード・エディタおよびビジュアルエディタ間の切り替えを簡単に行えることが望ましい。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ビジュアルエディタは、ＤＯＭ内のデータを作成するものである。したがって、ＩＤＥは、ソースコードとＤＯＭとの同期化を維持する必要がある。これまでは、一般的にインクリメンタル・コンパイラが使用されてきた。具体的には、インクリメンタル・コンパイラは、変更されたソースコードを再解析し、ＤＯＭを更新するとともに／または、ＤＯＭが変更されたことにより影響を受けたソースコードを再生成する。一般的には、ソースコードに対してトークンベースの解析が実行され、その結果が現在のＤＯＭと結合される。この処理は複雑な場合があるので、ＤＯＭ／ソースコードを変更してから、それに対応するソースコード／ＤＯＭ内で反映された変更箇所を確認するまでの間には、ユーザが認知できるほどの遅延が生じる可能性がある。加えて、インクリメンタル・コンパイラではエラーが発生しやすく、その保守は高コストである。
【０００６】
一方で、位置言語に関して、ＤＯＭとソースコードとの同期をより効率的に維持することが可能である。したがって、位置言語で記述されたソースコードと、ソースコードにおけるデータの文字位置を用いたＤＯＭとの同期化処理を簡略化するため、ソースコードとＤＯＭとの同期を維持する改善策が必要とされている。
【課題を解決するための手段】
【０００７】
本発明は、コンピュータ・プログラム・コードの開発オブジェクトの管理に関するソリューションを提供するものである。具体的には、本発明は、（１つ以上の）同期オブジェクト・セットを使用して、位置言語で記述されるソースコードを有する開発オブジェクトのデータを、ソースコードに対応する文書オブジェクトモデル（ＤＯＭ）を有する開発オブジェクトのデータと同期化させる。一実施形態において、ＤＯＭは、ソースコード内の各行に対してモデルオブジェクトを有し、各モデルオブジェクトは、属性・セットを有し、また、属性・セット内の各属性は、位置言語によって定義される行の文字範囲に対応する。同期オブジェクトは、ソースコードに対する変更箇所を受け取った場合、対応するモデルオブジェクトの適切な属性を、変更箇所の位置に基づいて更新することができる。同様に、同期オブジェクトは、モデルオブジェクトの属性に対する変更箇所を受け取った場合、ソースコード内の適切な行および文字範囲を、当該属性に対応する文字範囲および当該モデルオブジェクトに対応する行に基づいて更新することができる。これにより、同期オブジェクトは、ソースコードおよびそれに対応するＤＯＭの同期化に関する効率的なソリューションを提供する。更に、同期オブジェクトは、ソースコードに基づくＤＯＭの生成、または、ＤＯＭに基づくソースコードの生成、あるいはこの両方を行うことができる。このように、本発明は、位置言語の様々な特徴を活用して、コンピュータ・プログラム・コードの開発オブジェクトの管理に関するソリューションを提供する。
【０００８】
本発明の第１の態様により、コンピュータ・プログラム・コードの開発オブジェクトの管理方法であって、位置言語で記述され、かつ、行・セットを含むコンピュータ・プログラム・コードのためのソースコードを有する第１の開発オブジェクトを取得するステップと、行・セットに対応するモデルオブジェクト・セットを含む文書オブジェクトモデル（ＤＯＭ）を有する第２の開発オブジェクトを取得するステップと、位置言語によって定義される文字範囲のセットに基づいてソースコードおよびＤＯＭを同期化する目的で、同期オブジェクト・セットを使用するステップとを含む、開発オブジェクトの管理方法が提供される。
【０００９】
本発明の第２の態様により、コンピュータ・プログラム・コードの開発オブジェクト管理方法であって、位置言語で記述され、かつ、行・セットを含むコンピュータ・プログラム・コードのためのソースコードを有する第１の開発オブジェクトを取得するステップと、ソースコードに対応する文書オブジェクトモデル（ＤＯＭ）を有する第２の開発オブジェクトを取得するステップとを含み、ＤＯＭが、各モデルオブジェクトが行・セット内の特異的な行に対応するモデルオブジェクト・セットと、各属性がモデルオブジェクトに対応する行の文字範囲に対応する、モデルオブジェクトのそれぞれに対する属性・セットとを有し、そして、ソースコードおよびＤＯＭを同期化する目的で、同期オブジェクト・セット内の各同期オブジェクトがモデルオブジェクト・セット内の特異的なモデルオブジェクトに対応する、同期オブジェクト・セットを使用するステップを含む、開発オブジェクト管理方法が提供される。
【００１０】
本発明の第３の態様により、コンピュータ・プログラム・コードの開発オブジェクトの管理システムであって、位置言語で記述され、かつ、行・セットを含むコンピュータ・プログラム・コードのためのソースコードを有する第１の開発オブジェクトを取得するシステムと、行・セットに対応するモデルオブジェクト・セットを含む文書オブジェクトモデル（ＤＯＭ）を有する第２の開発オブジェクトを取得するシステムと、位置言語によって定義される文字範囲のセットに基づいてソースコードおよびＤＯＭを同期化する目的で、同期オブジェクト・セットを使用するシステムとを含む、開発オブジェクトの管理システムが提供される。
【００１１】
本発明の第４の態様により、コンピュータ可読媒体に記憶されるとともに、実行された場合にコンピュータ・プログラム・コードの開発オブジェクト管理を行うプログラムであって、位置言語で記述され、かつ、行・セットを含むコンピュータ・プログラム・コードのためのソースコードを有する第１の開発オブジェクトを取得するプログラム・コードと、行・セットに対応するモデルオブジェクト・セットを含む文書オブジェクトモデル（ＤＯＭ）を有する第２の開発オブジェクトを取得するプログラム・コードと、位置言語によって定義される文字範囲のセットに基づいてソースコードおよびＤＯＭを同期化する目的で、同期オブジェクト・セットを使用するプログラム・コードとを含む、プログラムが提供される。
【００１２】
本発明の第５の態様により、コンピュータ・プログラム・コードの開発オブジェクト管理を行うアプリケーションの展開方法であって、コンピュータ・インフラストラクチャを提供するステップを含み、コンピュータ・インフラストラクチャは、位置言語で記述され、かつ、行・セットを含むコンピュータ・プログラム・コードのためのソースコードを有する第１の開発オブジェクトを取得し、行・セットに対応するモデルオブジェクト・セットを含む文書オブジェクトモデル（ＤＯＭ）を有する第２の開発オブジェクトを取得し、位置言語によって定義される文字範囲のセットに基づいてソースコードおよびＤＯＭを同期化する目的で、同期オブジェクト・セットを使用する、アプリケーションの展開方法が提供される。
【００１３】
本発明の第６の態様により、伝播信号内に体現されるとともにコンピュータ・プログラム・コードの開発オブジェクト管理を行うコンピュータ・ソフトウェアであって、位置言語で記述され、かつ、行・セットを含むコンピュータ・プログラム・コードのためのソースコードを有する第１の開発オブジェクトを取得し、行・セットに対応するモデルオブジェクト・セットを含む文書オブジェクトモデル（ＤＯＭ）を有する第２の開発オブジェクトを取得し、位置言語によって定義される文字範囲のセットに基づいてソースコードおよびＤＯＭを同期化する目的で、同期オブジェクト・セットを使用する機能をコンピュータ・システムに実行させる命令を有する、コンピュータ・ソフトウェアが提供される。
【００１４】
本発明の第７の態様により、コンピュータ・インフラストラクチャによるコンピュータ・プログラム・コードの開発オブジェクトの管理を可能にするコンピュータ・プログラム・コードを有するコンピュータ可読媒体が提供される。
【００１５】
本発明の第８の態様により、コンピュータ・プログラム・コードの開発オブジェクトの管理を行うビジネス方法が提供される。
【００１６】
本発明の第９の態様により、コンピュータ・プログラム・コードの開発オブジェクトの管理システムの生成方法が提供される。
【００１７】
上述の具体的な本発明の態様は、本願に記載される問題および本願で議論されないその他の問題を解決することを目的とし、当業者であれば理解できるものである。
【発明を実施するための最良の形態】
【００１８】
本発明に関する上記およびその他の特徴は、本発明の多様な実施形態を示す添付図面と併せて、以下に記載する本発明の多様な態様の詳細を読めば、すぐに理解されるであろう。
【００１９】
なお、本発明に関する図面は縮図ではないことに留意されたい。また、これらの図面は、本発明の典型的な態様のみを示す目的で使用され、本発明の範囲を限定するものではない。更に、図面内の同一番号は、図面全体を通して同一部分を示している。
【００２０】
上述のとおり、本発明は、コンピュータ・プログラム・コードの開発オブジェクトの管理に関するソリューションを提供するものである。具体的には、本発明において、（１つ以上の）同期オブジェクトを有する同期オブジェクト・セットを使用して、位置言語で記述されたソースコードを有する開発オブジェクトのデータを、ソースコードに対応する文書オブジェクトモデル（ＤＯＭ）を有する開発オブジェクトのデータと同期させる。一実施形態では、ＤＯＭは、ソースコード内の行毎にモデルオブジェクトを有し、各モデルオブジェクトは、位置言語によって定義される行の文字範囲にそれぞれ対応する属性のセットを有する。同期オブジェクトは、ソースコードに対する変更を受け取った際に、変更箇所に基づいて、対応するモデルオブジェクトの適切な属性を更新することができる。同様に、同期オブジェクトは、モデルオブジェクトの属性に対する変更を受け取った際に、この属性に対応する文字範囲およびモデルオブジェクトに対応する行に基づいて、ソースコード内の適切な行および文字範囲を更新することができる。これにより、同期オブジェクトは、ソースコードとそれに対応するＤＯＭとの同期化に関する効果的なソリューションを提供する。また、同期オブジェクトは、ソースコードに基づいてＤＯＭを生成可能であるとともに／または、ＤＯＭに基づいてソースコードを生成可能である。結果として、本発明は、位置言語の様々な特徴を活用して、コンピュータ・プログラム・コードの開発オブジェクトの管理に関するソリューションを提供する。
【００２１】
本願における「開発オブジェクト」という用語は、コンピュータ・プログラム・コードを生成するために使用されるソースコードを含む。一実施形態において、ソースコードは、ファイル・システム内の１つ以上のファイルに保存される。この場合、各ファイルは開発オブジェクトを有すると考えられる。また、開発オブジェクトは、ファイルとして保存されない１つ以上のメモリ内オブジェクトを有することができる。例えば、開発オブジェクトは、ソースコードに対応する１つ以上のメモリ内オブジェクトを有することができる。したがって、文書オブジェクトモデル（ＤＯＭ）は、開発オブジェクトを有する。また、その他の様々なオブジェクトが開発オブジェクトを有することが可能であることは当然である。例えば、開発オブジェクトは、ソースコードに基づいて生成されるとともに／または、ライブラリ／コンポーネント、またはコンピュータ・プログラム・コード、あるいはこの両方を有する実行可能ファイルなどとして提供されるオブジェクトファイルを有することが可能である。
【００２２】
次に図を参照するが、図１は、コンピュータ・プログラム・コード５４用の開発オブジェクトの管理システム１０の一例を示すものである。ここで、システム１０は、開発オブジェクトを管理するために本願に記載の様々な処理ステップを実行可能なコンピュータ・インフラストラクチャ１２を有する。具体的には、コンピュータ装置１４を有するコンピュータ・インフラストラクチャ１２が図示されており、コンピュータ装置１４は、コンピュータ装置１４による開発オブジェクトの管理を可能にするために本発明に係る処理ステップを実行する開発システム３０を有する。
【００２３】
図示されたコンピュータ装置１４は、プロセッサ２０、メモリ２２、入力／出力（Ｉ／Ｏ）インターフェース２４およびバス２６を有する。更に、図示されたコンピュータ装置１４は、外部Ｉ／Ｏ装置／リソース２８および記憶システム２９と通信を行う。通常、プロセッサ２０は、メモリ２２または記憶システム２９あるいはこの両方に保存される開発システム３０などのコンピュータ・プログラム・コードを実行する。また、プロセッサ２０は、コンピュータ・プログラム・コードを実行している間、メモリ２２、記憶システム２９またはＩ／Ｏインターフェース２４あるいはこの両方からのソースコード５０といったデータの読み出し、または、それらの装置へのデータの書き込み、あるいはこの両方を行うことができる。バス２６は、コンピュータ装置１４における各構成要素間の通信リンクを提供する。Ｉ／Ｏ装置２８は、ユーザ１６とコンピュータ装置１４との対話を可能にするあらゆる装置（例えば、キーボード、ポインティング装置、ディスプレイなど）、またはコンピュータ装置１４と他の１つ以上のコンピュータ装置との通信を可能にするあらゆる装置（例えば、ネットワーク・カード、モデム、無線通信装置など）を含んでもよい。
【００２４】
いずれにせよ、コンピュータ装置１４は、ユーザ１６によってインストールされたコンピュータ・プログラム・コードを実行可能な汎用コンピュータ（例えば、パーソナル・コンピュータ、サーバ、携帯端末など）であればいずれを含んでもよい。また一方で、コンピュータ装置１４および開発システム３０は、本発明に係る様々な処理ステップを実行可能である多種多様なコンピュータ装置の代表例にすぎないことを理解されたい。したがって、別の実施形態として、コンピュータ装置１４は、特定機能を実行するためのハードウェア、またはコンピュータ・プログラム・コード、あるいはこの両方を有する特定目的用コンピュータ、または特定目的用および汎用ハードウェア／ソフトウェアの組み合わせを有するコンピュータなどのいずれかを含んでもよい。いずれの場合も、プログラム・コードは、標準的なプログラミング技術によって、また、ハードウェアは、標準的なエンジニアリング技術によって開発可能である。
【００２５】
同様に、コンピュータ・インフラストラクチャ１２は、本発明を実装可能な多種にわたるコンピュータ・インフラストラクチャの一例にすぎない。例えば、一実施形態において、コンピュータ・インフラストラクチャ１２は、ネットワーク上で、あるいは共有メモリを介して通信を行って本発明に係る様々な処理ステップを実行する２つ以上のコンピュータ装置（例えば、サーバ群）を有する。前者の場合、ネットワークは、１種類以上のネットワーク（例えば、インターネット、広域通信網、構内通信網、仮想専用回線など）を含んでもよく、コンピュータ装置間の通信においては、多種の通信リンク、または伝送技術（例えば、有線、無線など）、あるいはこの両方を利用することができる。
【００２６】
上述のとおり、また以下に記載するように、開発システム３０は、コンピュータ装置１４によるコンピュータ・プログラム・コード５４用の開発オブジェクト（例えば、ソースコード５０、ＤＯＭ５２など）の管理を可能にする。そのために、図示された開発システム３０は、ユーザ１６によるコンピュータ・プログラム・コード５４に関連する様々な開発オブジェクトの管理（例えば、追加、削除など）を可能にする管理システム３２、ユーザ１６によるソースコード５０の変更を可能にするテキストエディタを生成するテキストエディタ・システム３４、ユーザ１６によるＤＯＭ５２の変更を可能にするビジュアルエディタを生成するビジュアルエディタ・システム３６、ソースコード５０とそれに対応するＤＯＭ５２との同期化を維持する同期化システム３８、およびコンピュータ・プログラム・コード５４を生成する変換システム４０を有する。これらのシステムの処理については、後ほど個別に説明する。ただし、図１に示す様々なシステムの幾つかは、ネットワーク上で通信を行う１つ以上の別々のコンピュータ装置１４において、独立して実装したり、組み合わせたり、メモリに保存することができるのは当然である。更に、これらのシステム、または機能の幾つか、あるいはこの両方を実装しないことや、追加のシステム、または機能、あるいはこの両方をシステム１０の一部として含むことが可能であることは当然である。
【００２７】
一実施形態において、開発システム３０は、位置言語用の統合開発環境（ＩＤＥ）アプリケーションとして具現化される。ＩＤＥアプリケーションは、ユーザ１６によるソースコード５０の作成および変更、位置言語およびソースコード５０に基づくコンピュータ・プログラム・コード５４の生成を可能にする単一のユーザ・インターフェースを提供する。具体的には、ＩＤＥアプリケーションは、ソースコード５０を編集するための１つ以上のエディタ、エラーの発見、または修正、あるいはこの両方に関してユーザ１６を支援するデバッガ、および位置言語のセマンティクスをソースコード５０に適用してコンピュータ・プログラム・コード５４を生成するコンパイラを一般的に有する。コンパイラは、ソースコード５０を解析してＤＯＭ５２を生成するパーサおよびＤＯＭ５２に基づいてコンピュータ・プログラム・コード５４を生成するバックエンドを通常有する。
【００２８】
これにより、管理システム３２は、プログラミング言語によって定義される規則に基づいて記述されたソースコード５０を有する開発オブジェクト・セットを取得することができる。本発明では、ソースコード５０は、データ記述仕様（ＤＤＳ）などの位置言語で記述されるものとする。それとは関係なく、管理システム３２は、ソースコード５０を有する開発オブジェクト・セットのうち幾つかまたはすべての開発オブジェクトをユーザ１６が追加、移動、削除、または変更、あるいはこれらの組み合わせを可能にするユーザ・インターフェースを生成、または表示、あるいはこの両方を可能にする。例えば、管理システム３２は、ソースコード５０を有するファイルセットを含むプロジェクトを定義した後、そのプロジェクトを管理することが可能である。続いて、このファイルセットは、コンピュータ・プログラム・コード５４を生成するのに使用することができる。また、管理システム３２は、当技術分野で周知のように、ユーザ１６による新規プロジェクトの定義、ファイルセットへのファイルの追加、またはファイルセットからのファイルの移動、またはファイルセットのうち１つ以上のファイルの確認／編集の選択、あるいはこれらの組み合わせを可能にする。
【００２９】
位置言語で記述されたソースコード５０は、（１つ以上の）行を含む行・セットを有する。一実施形態において、各行は、ファイル内に保存されたデータに含まれる復帰文字、または改行文字、あるいはこの両方によって定義される。いずれにせよ、各行は多数の文字を有し、個々の文字位置（例えば、文字が表示される列）によって文字の意味が定義される。ユーザ１６が確認／編集するためにソースコード５０を選択する場合、管理システム３２は、ユーザ１６に表示するためのソースコード・エディタを生成するようにテキストエディタ・システム３４に要求することができる。
【００３０】
例えば、図２は、ソースコード・エディタ６０の一例を示す。ここで、図１および図２を参照するが、テキストエディタ・システム３４は、ソースコード・エディタ６０を生成可能である。続いて、ソースコード・エディタ６０は、当技術分野で周知のように、テキストエディタ・システム３４によってユーザ１６に表示されるとともに／または、表示のために別のシステム（例えば、管理システム３２）へ提供されても構わない。いずれにせよ、ソースコード・エディタ６０は、ソースコード５０内の行６４のセットにおけるデータをユーザ１６が確認する、または変更する、あるいはこの両方を行うことを可能にする。したがって、データを変更する場合、ユーザ１６は、１行以上の現在の行６４に関するデータの修正、１行以上の新規な行６４の追加、１行以上の行６４の削除などを実行することができる。
【００３１】
ソースコード・エディタ６０を利用して行６４のセットに関するデータを確認する、または変更する、あるいはこの両方を行う場合、ユーザ１６（図１）がデータの文字位置を知ることが重要である。この点に関して、図示されたソースコード・エディタ６０は、ユーザ１６が個々のデータの文字位置（例えば、列）を容易に割り出せるようにする列標識６２を１行有する。一方で、これに関して多様な選択肢があるのは当然である。例えば、ソースコード・エディタ６０は、列方向におけるカーソルの現在位置をステータスバーなどで表すことができる。更にユーザ１６によるデータの位置調整を支援するために、ソースコード・エディタ６０は、通常、すべての文字が同一幅を有するフォント（例えば、クーリエ）を使用してソースコード５０を表示する。
【００３２】
上述したように、位置言語ではデータが存在する特定の文字位置（例えば、列）によってデータの意味が決定される。したがって、行６４は、ＤＤＳ位置言語に基づいて入力されるデータ行により構成されうる。この場合、ＤＤＳは、行の種類を示すために最初の文字位置を使用するように定義することが可能である。例えば、１７番目の文字位置における空白文字によって、行６４をレコード内のフィールドを画定するものとして特定することができる。また、フィールドを画定する幾つかの異なる属性がフィールドに対して存在していてもよい。具体的には、１９番目から２８番目の文字位置はフィールド名を含み、３０番目から３４番目の文字位置はフィールドのデータ長を含み、３５番目の文字位置はフィールドのデータタイプを含み、３６番目および３７番目の文字位置はフィールドの小数部の桁数を含み、３８番目の文字位置はフィールドの入力／出力（Ｉ／Ｏ）処理として指定することができる。
【００３３】
ここで図１に戻って説明するが、ソースコード５０に基づいてＤＯＭ５２を取得することが可能である。一実施形態において、変換システム４０は、ソースコード５０に基づいてＤＯＭ５２を生成するパーサなどを有することができる。図３は、ＤＯＭ５２Ａの構造の一例を示す。具体的には、ＤＯＭ５２Ａは、モデルオブジェクト７０Ａ，７０Ｂのセットを含むノードの階層構造を有する。モデルオブジェクト７０Ａ‐Ｂのセットは、ソースコード５０（図１）における行６４（図２）のセットに対応可能である。一実施形態として、各モデルオブジェクト７０Ａ‐Ｂは、特異的な行６４に１対１の関係で対応する。一方で、例えば、単一のモデルオブジェクト７０Ａ‐Ｂが複数の行６４に対応する、または、単一の行６４が複数のモデルオブジェクト７０Ａ‐Ｂに対応するなど、多様な選択肢があるのは当然である。更に、モデルオブジェクト７０Ａ‐Ｂは、当技術分野で周知のように、階層構造的にネスト化された１つ以上のモデルオブジェクト７０Ａ‐Ｂであってもよい。例えば、１つのレコードに対応するモデルオブジェクト７０Ａ‐Ｂは、レコード内の各フィールドに対応するモデルオブジェクト７０Ａ‐Ｂのセットを含むことができる。
【００３４】
また、ＤＯＭ５２Ａ内の各モデルオブジェクト７０Ａ‐Ｂは、更に属性７２Ａ，７２Ｂのセットを有することができる。これに関して、図示されたモデルオブジェクト７０Ａは、属性７２Ａ‐Ｂを有する。一実施形態において、各属性７２Ａ‐Ｂは、モデルオブジェクト７０Ａに対応する行６４（図２）上の文字範囲に対応可能である。具体的には、文字範囲は、位置言語において特定の意味を有する属性を定義する全文字範囲によって構成されてもよい。
【００３５】
この点に関して、図４は、ソースコード５０に基づいて生成可能なＤＯＭ１５２Ａの一例を示す。具体的には、図示されたＤＯＭ１５２Ａは、行６４（図２）に対応するモデルオブジェクト１７０Ａを有する。図示するとおり、モデルオブジェクト１７０Ａは、行６４の特定のタイプ（例えば、名前付フィールド）に対応する。これに関連して、モデルオブジェクト１７０Ａは、属性１７２Ａ‐Ｅのセットを有する。各属性１７２Ａ‐Ｅは、行６４のタイプを示す属性のうち、１つのデータを有する。例えば、各属性１７２Ａ‐Ｅによって、属性（例えば、名前、データ長、データタイプなど）の種類、属性に対応する文字範囲、および文字範囲において行６４上に保存されるデータを特定することが可能である。
【００３６】
ここで図１に戻って説明するが、ＤＯＭ５２がソースコード５０に基づいて生成された時点で、変換システム４０は、ＤＯＭ５２に基づいてコンピュータ・プログラム・コード５４を生成することができる。具体的には、変換システム４０は、既知の方法でＤＯＭ５２をトラバース(traverse)し、コンピュータ・プログラム・コード５４を生成するバックエンドを有することができる。一方で、ＤＯＭ５２もまたユーザ１６によるソースコード５０の開発を支援するために使用できる。これに関連して、管理システム３２は、ユーザ１６がＤＯＭ５２に基づく表示／編集フォーマットを選択できるようにする。より詳細には、管理システム３２は、ユーザ１６によるＤＯＭ５２に保存されたデータを変更する、または確認する、あるいはこの両方を行うことを可能にするビジュアルエディタを、ユーザ１６が１種類以上選択できるようにする。ユーザ１６によってビジュアルエディタが選択された場合、管理システム３２は、ビジュアルエディタ・システム３６に対して、目的のビジュアルエディタを生成するように要求することができる。
【００３７】
例えば、図５は、ビジュアルエディタ・システム３６（図１）によって生成されうるビジュアルエディタ８０の一例を示す。生成後、ビジュアルエディタ８０は、当技術分野で周知のように、ビジュアルエディタ・システム３６によってユーザ１６（図１）に対して表示されるとともに／または、表示のために別のシステム（例えば、図１に示す管理システム３２）へ提供されても構わない。いずれにせよ、ビジュアルエディタ８０は、図４に示すＤＯＭ１５２Ａにおける属性１７２Ａ‐Ｅのデータをユーザ１６が変更できるようにする。図５に示すように、ビジュアルエディタ８０は、ユーザ１６（図１）による属性１７２Ａ‐Ｅのデータを確認する、または変更する、あるいはこの両方を行うことを可能にする使い勝手のよい様々な属性名およびテキストボックスを有することができる。このビジュアルエディタ８０は一例にしかすぎず、その他の様々なエディタ／ディスプレイを使用できることは当業者にとって明白である。
【００３８】
図１に戻って説明するが、管理システム３２は、ユーザ１６による、（例えば、図２に示すソースコード・エディタ６０を使用した）ソースコード５０のデータの確認、または変更、あるいはこの両方と、（例えば、図５に示すビジュアルエディタ８０を使用した）ＤＯＭ５２のデータの確認、または変更、あるいはこの両方を可能にするので、１つの開発オブジェクトに対する変更が他の開発オブジェクトへ反映されることが望ましい。この点に関して、本発明は、ソースコード５０とＤＯＭ５２との同期化に関する効率的なソリューションを提供する。具体的には、同期化システム３８は同期オブジェクト・セットを使用し、また、この同期オブジェクトは、ソースコード５０内の行・セットのうち１行における文字範囲と、それに対応するＤＯＭ５２内のモデルオブジェクト・セット内の１つのモデルオブジェクトとに基づいて、ソースコード５０とＤＯＭ５２とを同期化するものである。
【００３９】
例えば、図６は、図１に示す様々なシステムによって実装可能な、ソースコード５０とＤＯＭ５２との同期化におけるデータフローの一例を示す。具体的には、テキストエディタ・システム３４は、上述のとおりユーザ１６によるソースコード５０の変更を可能にするソースコード・エディタ６０を生成することができる。同様に、ビジュアルエディタ・システム３６は、ユーザ１６によるＤＯＭ５２の変更を可能にするビジュアルエディタ８０を生成することができる。同期化システム３８は、同期オブジェクト８２Ａ‐Ｂのセットを生成することができ、この同期オブジェクトは、ソースコード５０またはＤＯＭ５２のいずれかが変更された場合に、その変更箇所に基づいて他の開発オブジェクトを更新するものである。
【００４０】
一実施形態において、同期オブジェクト・セットにおける各同期オブジェクト８２Ａ‐Ｂは、ＤＯＭ５２内の特異的なモデルオブジェクト７０Ａ‐Ｂおよびソースコード５０内の特異的な行６４Ａ‐Ｂに対応する。この場合、同期化システム３８は、ソースコード５０内の行６４Ａ‐Ｂのセットのうち１行のデータ変更箇所を受け取り、ソースコード５０内の変更された行６４Ａ‐Ｂに対応する同期オブジェクト８２Ａ‐Ｂへ変更箇所を提供することができる。ここで、同期化システム３８は、当技術分野で周知の様々なソリューションを用いて変更箇所を受け取ることが可能である。例えば、同期化システム３８は、ユーザ１６およびソースコード・エディタ６０間の対話の監視、ソースコード・エディタ６０によって生成されるとともにソースコード５０内で変更を行うメッセージの監視、およびテキストエディタ・システム３４からのメッセージの受け取りなどを行うことができる。
【００４１】
同期オブジェクト８２Ａ‐Ｂは、変更箇所に基づいて、更新が必要であるとともに同期オブジェクトに対応するモデルオブジェクト７０Ａ‐Ｂにおいて、適切な属性７２Ａ‐Ｂを選択することができる。例えば、同期オブジェクト８２Ａ‐Ｂは、まず行６４Ａ‐Ｂに対する変更箇所の文字位置を割り出すことができる。次に、同期オブジェクト８２は、割り出された文字位置を含む文字範囲に対応する属性７２Ａ‐Ｂを選択することができる。属性７２Ａ‐Ｂを選択次第、同期オブジェクト８２Ａ‐Ｂは、選択した属性７２Ａ‐Ｂのデータを変更後のデータで更新することができる。
【００４２】
同様に、同期化システム３８は、例えば、ユーザ１６およびビジュアルエディタ８０間の対話の監視、ビジュアルエディタ８０によって生成されるとともにＤＯＭ５２内で変更を行うメッセージの監視、およびビジュアルエディタ・システム３６からのメッセージの受け取りなどを行うことで、属性７２Ａ‐Ｂのセットのうち１つの属性の変更データを受け取ることができる。いずれにせよ、同期化システム３８は、変更箇所を受け取り次第、変更された属性７２Ａ-Ｂに対応するモデルオブジェクト７０Ａ-Ｂを取得し、モデルオブジェクト７０Ａ-Ｂに対応する同期オブジェクト８２Ａ‐Ｂへ変更箇所を提供することが可能である。同期オブジェクト８２Ａ‐Ｂは、変更箇所に基づいて、更新が必要なソースコード５０内の適切な行６４Ａ‐Ｂを選択することができる。続いて、同期オブジェクト８２Ａ−Ｂは、選択した行６４Ａ‐Ｂのデータを変更後のデータで更新することができる。具体的には、同期化システム８２Ａ‐Ｂは、変更された属性７２Ａ‐Ｂに対応する文字範囲を取得し、行６４Ａ‐Ｂ上の文字範囲を変更後のデータで更新することができる。
【００４３】
図７は、図１に示す様々なシステムによって実装可能な、開発オブジェクトの同期化におけるデータフローの別の一例を示す。具体的には、各同期オブジェクト８２Ａは、属性エントリ８３Ａ‐Ｂのセットを有することができ、各属性エントリ８３Ａ‐Ｂは、対応する行６４Ａ上の文字範囲と、対応するモデルオブジェクト７０Ａの属性７２Ａ‐Ｂとのマッピングを含むことが可能である。この場合、モデルオブジェクト７０Ａの属性７２Ａ‐Ｂは、（例えば、明確なメタモデルを介して）総称で定義されうる。更に、各属性７２Ａ‐Ｂを更新するためのソースコードもまた総称であってもよい。したがって、各属性７２Ａ‐Ｂを実装するのに特異的なソースコードを作成する必要がない。むしろ、総称属性識別子が与えられていれば、モデルオブジェクト７０Ａの属性７２Ａ‐Ｂは、いずれも行６４Ａ上の文字範囲と総称的に同期化できる。その結果、同期オブジェクト８２Ａは、単純に、行６４Ａ上の特定文字範囲およびそれに対応する属性７２Ａ‐Ｂを指すように初期化された総称属性エントリ８３Ａ‐Ｂのセットとなりうる。このソリューションを実装するための一実施形態として、エクリプス・モデリング・フレームワークにより提供されるフィーチャ識別子といったモデル駆動型アーキテクチャ開発のフレームワークを使用することが可能である。
【００４４】
同期化システム３８は、ソースコード５０とＤＯＭ５２との同期化の維持に加えて、同期オブジェクト８２Ａのセットを使用することで、ソースコード５０に基づいてＤＯＭ５２を生成するとともに／または、ＤＯＭ５２に基づいてソースコード５０を生成することができる。例えば、同期化システム３８は、ソースコード５０内の各行６４Ａのデータを受け取り、各行６４Ａに対して同期オブジェクト８２Ａを生成し、行６４Ａのデータを同期オブジェクト８２へ提供することができる。続いて、同期オブジェクト８２Ａは、行６４Ａのデータに基づいて、モデルオブジェクト７０Ａおよびそれに対応する属性７２Ａ‐Ｂのセットを生成することができる。
【００４５】
ここで、同期オブジェクト８２Ａは、（例えば、上述したように１７番目の文字位置のデータに基づいて）行６４Ａの複数種のタイプのうち１つを決定することができる。続いて、同期オブジェクト８２Ａは、それぞれが行の特異的なタイプに対応するモデルオブジェクト・タイプのセットのうち１つのモデルオブジェクト・タイプを選択し、そのモデルオブジェクト・タイプを有する新規モデルオブジェクト７０Ａを作成可能である。また、同期オブジェクト８２Ａは、新規モデルオブジェクト７０Ａのモデルオブジェクト・タイプに関連する属性７２Ａ‐Ｂのセットを生成可能である。最後に、同期オブジェクト８２Ａは、行６４Ａのデータおよび属性７２Ａ‐Ｂの文字範囲に基づいて各属性７２Ａ‐Ｂのデータを取得することができる。具体的には、同期オブジェクト８２Ａは、属性７２Ａ‐Ｂの文字範囲を決定し、行６４Ａから文字範囲のデータを取得し、取得したデータを属性７２Ａ‐Ｂのデータとして保存することができる。
【００４６】
また、ユーザ１６は、ビジュアルエディタ８０を使用して新規モデルオブジェクト７０Ａを生成するように要求することができる。この場合、同期化システム３８は、新規の同期オブジェクト８２Ａを生成することができ、この同期オブジェクト８２Ａは、要求されたモデルオブジェクト７０Ａのタイプに基づいて、新規モデルオブジェクト７０Ａおよびそれに対応する属性７２Ａ‐Ｂを生成することができる。新規モデルオブジェクト７０Ａは、各属性７２Ａ‐Ｂのデフォルトデータを保有可能である。更に、同期オブジェクト８２Ａは、新規モデルオブジェクト７０Ａに基づいて、ソースコード５０内で新規の行６４Ａを作成できる。続いて、ユーザ１６は、１つ以上の属性７２Ａ‐Ｂのデータを変更でき、同期オブジェクト８２Ａは、変更箇所に基づいて行６４Ａのデータを更新することができる。
【００４７】
本願ではコンピュータ・プログラム・コードの開発オブジェクトの管理方法および開発オブジェクトの管理システムについて図示および説明したが、本発明が更に多様な実施形態を提供することは当然である。例えば、一実施形態として、本発明は、コンピュータ・インフラストラクチャによる開発オブジェクトの管理を可能にするコンピュータ・プログラム・コードを含有するコンピュータ可読媒体を提供する。これに関して、コンピュータ可読媒体は、開発システム３０（図１）のように本発明に係る様々な処理ステップのそれぞれを実行するプログラム・コードを有する。ここで、「コンピュータ可読媒体」は、１つ以上のあらゆる種類のプログラム・コードの物理的実施形態によって構成されることを理解されたい。具体的には、コンピュータ可読媒体は、１つ以上のポータブルストレージ（例えば、コンパクトディスク、磁気ディスク、テープなど）上で体現化されたプログラム・コード、メモリ２２（図１）、または記憶システム２９（図１）（例えば、固定ディスク、リード・オンリー・メモリ、ランダム・アクセス・メモリ、キャッシュ・メモリなど）、あるいはこの両方といったコンピュータ装置の１つ以上のデータ記憶領域内で体現化されたプログラム・コード、または、（例えば、有線／無線によるプログラム・コードの電気的分配において）ネットワーク上を伝達するデータ信号として体現化されたプログラム・コード、あるいはこの両方を包含することができる。
【００４８】
また、別の実施形態として、本発明は、会費、広告、または手数料方式、あるいはこの両方で、本発明に係る処理ステップを実行するビジネス方法を提供する。すなわち、インターネット・サービス・プロバイダなどの接続サービス業者は、上述したコンピュータ・プログラム・コードの開発オブジェクトの管理を提案することが可能である。この場合、接続サービス業者は、１名以上の顧客に対して本発明に係る処理ステップを実行するコンピュータ・インフラストラクチャ１２（図１）などのコンピュータ・インフラストラクチャの作成、保持、サポートなどを行うことができる。それと引き換えに、接続サービス業者は、顧客から会費、または手数料、あるいはこの両方の契約に従って支払いを受けることができ、または、１以上の第３者に対する広告スペースの販売から支払いを受けることができ、あるいはこの両方が可能である。
【００４９】
更に別の実施形態として、本発明は、コンピュータ・プログラム・コードの開発オブジェクトの管理システムの作成方法を提供する。この場合、コンピュータ・インフラストラクチャ１２（図１）などのコンピュータ・インフラストラクチャを獲得する（例えば、作成、保持、利用可能にする）ことができるとともに、本発明に係る処理ステップを実行する１つ以上のシステムを獲得（例えば、作成、購入、使用、変更）し、コンピュータ・インフラストラクチャへ展開することができる。ここで、各システムの展開は、（１）コンピュータ可読媒体からコンピュータ装置１４（図１）などのコンピュータ装置へプログラム・コードをインストールするステップと、（２）コンピュータ・インフラストラクチャへ１つ以上のコンピュータ装置を追加するステップと、（３）コンピュータ・インフラストラクチャの１つ以上の現存システムの組み込み、または変更、あるいはこの両方を行うことで、コンピュータ・インフラストラクチャによる本発明に係る処理ステップの実行を可能にするステップのうち、１つ以上のステップを含むことができる。
【００５０】
本願において用いられる「プログラム・コード」および「コンピュータ・プログラム・コード」は同義であり、情報処理能力を有するコンピュータ装置に、直接的、または、（ａ）他の言語、コードまたは表記法への変換、または（ｂ）異なる材料形態での複製のうちのいずれかまたは両方を行った後、特定の機能を実行させる、あらゆる言語、コードまたは表記法で記述された命令セットを意味することを理解されたい。これに関して、プログラム・コードは、アプリケーション／ソフトウェア・プログラム（例えば、ＩＤＥ）、コンポーネント・ソフトウェア／機能ライブラリ、オペレーティング・システム、特定コンピュータ装置、または特定Ｉ／Ｏ装置用の基本Ｉ／Ｏシステム／ドライバ、あるいはこれらの組み合わせなどといった１種類以上のプログラムとして実装することができる。
【００５１】
以上、本発明の様々な態様について図示および説明のために記載した。しかし、本発明を網羅的に記載したり、開示された内容に厳密に限定することを意図されたものではなく、多種の変更および修正が可能であるのは明白である。なお、添付する特許請求の範囲によって定義される本発明の要旨を逸脱しない範囲で、これらの変更および修正が可能であることは、当業者であれば明らかである。
【図面の簡単な説明】
【００５２】
【図１】コンピュータ・プログラム・コードの開発オブジェクトの管理システムの一例を示す図である。
【図２】ソースコード・エディタの一例を示す図である。
【図３】文書オブジェクトモデル（ＤＯＭ）の構造の一例を示す図である。
【図４】図３に示す構造を有するＤＯＭの一例を示す図である。
【図５】ビジュアルエディタの一例を示す図である。
【図６】図１に示す様々なシステムによって実装可能な開発オブジェクトの同期化におけるデータフローの一例を示す図である。
【図７】図１に示す様々なシステムによって実装可能な開発オブジェクトの同期化におけるデータフローの別の一例を示す図である。
【符号の説明】
【００５３】
１０：開発オブジェクトの管理システム
１２：コンピュータ・インフラストラクチャ
１４：コンピュータ装置
１６：ユーザ
２０：プロセッサ
２２：メモリ
２４：Ｉ／Ｏインターフェース
２６：バス
２８：Ｉ／Ｏ装置
２９：記憶システム
３０：開発システム
３２：管理システム
３４：テキストエディタ・システム
３６：ビジュアルエディタ・システム
３８：同期化システム
４０：変換システム
５０：ソースコード
５２、５２Ａ、１５２Ａ：文書オブジェクトモデル（ＤＯＭ）
５４：コンピュータ・プログラム・コード
６０：ソースコード・エディタ
６２：列標識
６４、６４Ａ、６４Ｂ：行
７０Ａ、７０Ｂ、１７０Ａ：モデルオブジェクト
７２Ａ、７２Ｂ、１７２Ａ、１７２Ｂ、１７２Ｃ、１７２Ｄ、１７２Ｅ：属性
８０：ビジュアルエディタ
８２Ａ、８２Ｂ：同期オブジェクト
８３Ａ、８３Ｂ：属性エントリ
【図１】
2006252557.tif 000003
【図２】
2006252557.tif 000004
【図３】
2006252557.tif 000005
【図４】
2006252557.tif 000006
【図５】
2006252557.tif 000007
【図６】
2006252557.tif 000008
【図７】
2006252557.tif 000009