(57)【要約】【課題】ソフトウェアドキュメンテーションを容易にするシステムおよび方法を提供すること。【解決手段】ソフトウェアドキュメンテーションシステムが提供される。これは、アプリケーションのドキュメンテーションデータを記憶するためのドキュメンテーションオブジェクトを含む。１つ以上のカスタム言語コンポーネントが、アプリケーションの言語表示オプションを提供するために該ドキュメンテーションオブジェクトによって記憶される。該カスタム言語コンポーネントは、タグ付きデータアイテムが、ドキュメンテーション設計者の指定言語で維持されるストリング名などの指定形態で維持されることを示すためにタグとして適用可能である。カスタム言語コンポーネントはまた類似言語の異なる形態として特定可能である。【選択図】図１
2008117376.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションのドキュメンテーションデータを記憶するためのドキュメンテーションオブジェクトと、
前記アプリケーションの言語表示オプションを提供するための、前記ドキュメンテーションオブジェクトによって記憶されている１つ以上のカスタム言語コンポーネントとを備える、ソフトウェアドキュメンテーションシステム。
【請求項２】
前記カスタム言語コンポーネントが、タグ付きデータアイテムが指定言語形態で維持されることを示すためのタグとして適用される、請求項１に記載のシステム。
【請求項３】
前記カスタム言語コンポーネントが、類似言語の異なる形態として特定されるか、ユーザ定義言語の異なる形態として特定される、請求項１に記載のシステム。
【請求項４】
前記カスタム言語コンポーネントが多数の用語識別子と関連しており、冗長形態は、前記カスタム言語コンポーネントの簡略形態よりも多数の用語を含む、請求項１に記載のシステム。
【請求項５】
前記カスタム言語コンポーネントが方言と関連する、請求項１に記載のシステム。
【請求項６】
前記カスタム言語コンポーネントがユーザの役割と関連する、請求項１に記載のシステム。
【請求項７】
前記ユーザの役割がオペレータの役割、設計者の役割、メンテナンスの役割、セキュリティの役割およびマネージャーの役割に関する、請求項６に記載のシステム。
【請求項８】
前記カスタム言語コンポーネントがセキュリティ識別子と関連する、請求項１に記載のシステム。
【請求項９】
エディタの起動をトリガするカーソルにリンクされている選択コンポーネントをさらに備える、請求項１に記載のシステム。
【請求項１０】
前記エディタがプログラマブル言語エディタと関連する、請求項９に記載のシステム。
【請求項１１】
前記プログラマブル言語エディタがはしご論理、シーケンシャル機能チャート、タグエディタ、プロパティエディタ、機能ブロックエディタまたは構造テキストエディタと関連する、請求項１０に記載のシステム。
【請求項１２】
前記カスタム言語コンポーネントの構成オプションを提供するための少なくとも１つの構成メニューをさらに備える、請求項１に記載のシステム。
【請求項１３】
前記構成メニューがインタフェースを提供して、前記カスタム言語コンポーネントが構成可能なルート言語に従って命名されるようにする、請求項１２に記載のシステム。
【請求項１４】
前記構成メニューが、前記カスタム言語コンポーネントをローカライズするためのコンポーネントを含む、請求項１に記載のシステム。
【請求項１５】
１つ以上の現行言語、１つ以上のデフォルト言語および１つ以上のカスタム言語をコントロールするためのプロジェクトドキュメンテーションマネージャーをさらに備える、請求項１に記載のシステム。
【請求項１６】
少なくとも１つの標準によって前記カスタム言語コンポーネントに対して指定されている名称を自動調整する命名コンベンションコンポーネントをさらに備える、請求項１に記載のシステム。
【請求項１７】
前記命名コンベンションコンポーネントがＲＦＣ１７６６命名標準と関連する、請求項１６に記載のシステム。
【請求項１８】
１つ以上の選択言語間のドキュメンテーション表示を変更するための言語スイッチをさらに備える、請求項１に記載のシステム。
【請求項１９】
ドキュメンテーションを容易にするためのデータ構造を記憶しているコンピュータ読み取り可能な媒体であって、
現行言語コンポーネントを特定するための第１のデータフィールドと、
前記現行言語によって定義される１つ以上のカスタム言語コンポーネントを特定するための第２のデータフィールドと、
前記カスタム言語コンポーネントを前記現行言語コンポーネントに結合させる第３のデータフィールドとを備える、コンピュータ読み取り可能な媒体。
【請求項２０】
非ローカライズテキストとして維持されるドキュメンテーションオブジェクトの一部を識別するためのタグフィールドをさらに備える、請求項１９に記載のコンピュータ読み取り可能な媒体。
【請求項２１】
前記カスタム言語コンポーネントが表示される様子を識別するための役割フィールドをさらに備える、請求項１９に記載のコンピュータ読み取り可能な媒体。
【請求項２２】
前記役割フィールドが、セキュリティの役割、メンテナンスの役割、オペレータの役割、設計者の役割、マネージャーの役割および開発者の役割と関連する、請求項２１に記載のコンピュータ読み取り可能な媒体。
【請求項２３】
多くのドキュメンテーションが表示される様子をコントロールするための冗長フィールドをさらに備える、請求項１９に記載のコンピュータ読み取り可能な媒体。
【請求項２４】
現行言語から少なくとも１つのカスタム言語コンポーネントへの変化を示すためのスイッチフィールドをさらに備える、請求項１９に記載のコンピュータ読み取り可能な媒体。
【請求項２５】
前記１つ以上のカスタム言語コンポーネントの少なくとも１つの構成フィールドをさらに備える、請求項１９に記載のコンピュータ読み取り可能な媒体。
【請求項２６】
１つ以上のコメントを現行言語で定義するステップと、
前記現行言語の１つ以上の他のコメント形態を定義するステップと、
前記他のコメント形態を前記現行言語に対する１つ以上のカスタム言語として表示するステップとを備える、ドキュメンテーション生成方法。
【請求項２７】
前記１つ以上のカスタム言語形態の名称を自動生成するステップをさらに備える、請求項２６に記載の方法。
【請求項２８】
ユーザインタフェースを介して前記１つ以上のカスタム言語形態を切り替えるステップをさらに備える、請求項２６に記載の方法。
【請求項２９】
前記現行言語のコンポーネントを非ローカライズ可能形態としてタグ付けするステップをさらに備える、請求項２６に記載の方法。
【請求項３０】
現行言語コンテクストに従ってドキュメンテーションオブジェクトを表示する手段と、
プロジェクトドキュメンテーションの少なくとも１つの代替形態を生成するために前記ドキュメンテーションオブジェクトと関連したカスタム言語データを記憶する手段とを備える、開発システム。
【請求項３１】
現行言語コンテクストと代替言語コンテクストを切り替える手段をさらに備える、請求項３４に記載の開発システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は概してソフトウェア開発システムに、より具体的には、口語ドキュメンテーションを補足または向上させるための代替ドキュメンテーション形態として作成および提供されるカスタム言語に関する。
【背景技術】
【０００２】
ソフトウェアドキュメンテーションやソースコードドキュメンテーションは、コンピュータソフトウェアに付随した書かれたテキストであり、またコンピュータ開発環境でしばしば作成される。概して、このようなドキュメンテーションは、基本コードの動作方法および／またはコードの利用方法について説明している。ソフトウェアドキュメンテーションという用語は２つ以上のコンテクストを有することが可能であるため、異なる形態で存在している。ドキュメンテーションのいくつかの例示的タイプは、ソフトウェアのアーキテクチャや設計ドキュメンテーションを含む。別の形態は、コード、アルゴリズム、インタフェースおよびＡＰＩの技術的ドキュメンテーションを含む。さらに別のドキュメンテーション形態は、製品説明およびプロモーション情報を含むマーケティングドキュメントに伴ってエンドユーザ、システム管理者、サポートスタッフのためのマニュアルを含む。
【０００３】
設計ドキュメントは広範囲に及ぶ傾向がある。事物の使用方法を説明するというよりもむしろ、このタイプのドキュメンテーションは、その理由に対してより焦点を当てている。例えば、設計ドキュメントでは、プログラマーは、具体的なデータ構造の組織化の背後にある論理的根拠を説明する場合があり、あるいは、特定のオブジェクトのメンバー機能や、新たなオブジェクトをコードに追加する方法について列挙する場合がある。これは、所与のクラスが具体的に構築される理由の説明、パターンの概説、代替設計の説明、改良のアイデアの概説、あるいは、例えば将来のプロジェクトに対する設計の改良方法プランの提供を含むことがある。このタイプのドキュメンテーションは通常、コードや技術的ドキュメンテーションに適しているとはみなされないが、これは他の要件を考慮して設計されている。
【０００４】
技術的ドキュメンテーションに関して、これは、ソフトウェアドキュメンテーションという用語を使用する場合について多くのプログラマーが考える情報タイプである。ソフトウェアを作成する場合、コードのみでは不十分である。意図している動作の種々の態様を説明するためにはコードに伴って何らかのテキストがなければならない。このドキュメンテーションは通常、ソースコード自体に埋め込まれているため、これを走査可能な人物に容易にアクセス可能である。一例では、コメントは、極めて技術的なソースコードに追加されてもよく、またこれはＡＰＩ、データ構造およびアルゴリズムを定義および説明するために主に用いられる。例えば、ある変数が工場内の特定の場所や機械のことを示すということを説明するためにこのドキュメンテーションを使用する人もいる。コードドキュメントが完璧であることは重要であるが、維持するのが困難になる程冗長的ではない。ソースコードドキュメンテーションに加えて、他の技術的ドキュメンテーション要件は、タスク、ルーチン、コントローラ、モジュール、データタイプ、タグ、位相、追加命令などについての説明を含む場合がある。
【０００５】
しばしば、Ｄｏｘｙｇｅｎ、Ｊａｖａ（登録商標）ｄｏｃ、ＲＯＢＯＤｏｃ、ＰＯＤまたはＴｗｉｎＴｅｘｔなどのツールはコードドキュメントを自動生成するために使用可能である、つまりこれはソースコードからコメントを抽出し、かつテキストやＨＴＭＬファイルなどの形態の参照マニュアルを作成する。コードドキュメントはしばしば、基準ガイドスタイルに組織化されて、プログラマーが任意の機能やクラスを迅速に検索できるようにする。多くのプログラマーは、種々の理由によりドキュメンテーションの自動生成という概念に満足している。例えば、これは（例えば、コメントを介して）ソースコード自体から抽出されるため、プログラマーはこのコードを参照しながら書くことができ、またソースコードを作成し、ドキュメンテーションを生成するために使用されるのと同じツールを用いることができる。
【０００６】
標準ドキュメンテーションタスクに加えて、システムは次に、世界経済市場に対して展開される。従って、コードやシステム開発に用いられるネイティブ言語のドキュメントが必要であるだけでなく、しばしば、オリジナルコードが開発された言語に加えて１つ以上の外国語にドキュメンテーションをローカライズする必要がある。ソフトウェアプロジェクトの開発がよりグローバルになり続けると、ユーザは、それぞれの設計のカスタマーの言語が設計の作成者の言語と異なる世界にソフトウェアやシステム設計を展開する必要がある。従って、所与の設計を更新、変更および／または操作する必要がある人々に対して問題を生じさせる恐れのある設計を閲覧する開発エンジニア、メンテナンスエンジニアおよびオペレータによって異なる言語が話される場合がある。
【０００７】
現在のドキュメンテーションスキームに伴うもう１つの問題は、特定のコントロールシステムドキュメンテーションを特定の「話し言葉」、例えばマシーン名や数値定数に容易に関連付けることができない場合がある点である。また、異なるタイプのドキュメンテーションが、所与のプロジェクトの異なるユーザタイプには望ましい場合がある。例えば、設計者は、同じ話し言葉のプロジェクトドキュメンテーションの長短の形態によってコードを文書化することもあり、維持者は、プラントフロアのプロジェクトドキュメンテーションの短縮バージョンを閲覧したいと望む場合もあるのに対して、トラブルシューターは、プロジェクトドキュメンテーションのより長い形態のバージョンを閲覧して、潜在的な問題の原因に達する助けとなることを望む場合もある。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
以下は、本明細書に説明されているいくつかの態様の基本的理解を提供するために簡略化された概要を提示する。この概要は広範囲に及ぶ概観でもなく、キー／重要な要素を識別したり、本明細書に説明されている種々の態様の範囲を明確にしたりする意図もない。この唯一の目的は、後に提示されるより詳細な説明の前置きとしていくつかの概念を簡略化形態で提示することである。
【０００９】
カスタム言語コンポーネントおよびオプションが、ソフトウェア開発環境で提供可能な電子ドキュメンテーションを容易にするために提供される。カスタム言語によって設計者は、種々のニーズのために、また、方言などの言語や、アプリケーションに対して生成されるドキュメンテーションタイプと関連した特定のニュアンスに従ってドキュメンテーションを調整することができる。従って、複数の異なる言語コンポーネントが１セットとして生成され、そしてこのようなドキュメンテーションのエンドユーザの必要性に対して個々に選択されることが可能である。一般的に、カスタム言語は異なるアプリケーション状況に適用可能である。言語コンポーネントが、外国語翻訳がこのようにタグ付けまたはマークされるドキュメンテーションに適用されないことを示すためにタグを付される場合もある。例えば、翻訳されない、あるいは話し言葉に容易に結び付けられないストリングについて、ユーザは、プロジェクトドキュメンテーションのタグ付きコンポーネントを記憶／表示するカスタム言語を特定することができる。具体例は、このドキュメンテーションを英語（米国）または他の特定の言語に置く必要なく、「システム定数」のカスタム言語を作成するユーザである。従って、プロジェクトやアプリケーションのドキュメンテーション全体に展開されている場合がある基本言語翻訳に関係なくコンポーネントに適用されたままのカスタム言語として用いられてもよい言語がある。
【００１０】
別の例示的アプリケーションは、「拡張ドキュメンテーション」のカスタム言語を作成し、これを、例えば英語などの所与の言語と関連付けるユーザのタイプに関する。プロジェクトは「英語（米国）」および「英語（拡張ドキュメンテーション）」を有する場合もあり、この場合拡張ドキュメンテーションは、標準英語形態よりも冗長的であるような特徴（または他の言語ニュアンス）を含む場合がある。理解されるように、カスタム言語は任意の言語について展開可能である。これは、システムの特定のユーザを対象とする同一の（または類似の）言語のドキュメンテーションの複数のバージョンを見込んでいる。異なるドキュメンテーションニーズを有する様々なユーザがいる場合、カスタム言語は、プロセスをモニタする人を対象とすることによってコンピュータメモリやインタフェーススクリーン不動産を保存したり、さらに、例えばシステムのトラブルシューターに十分な情報を提供したりすることがある。従って、エンドユーザは、所与のドキュメンテーションセットに対して保存されている１つ以上のカスタム言語コンポーネントから必要とするカスタム言語特徴を選択することができる。
【００１１】
上記および関連の目的を達成するために、特定の例示的態様が以下の説明および添付の図面と関連して説明される。これらの態様は実践可能な種々の方法を示しており、これらのすべては本明細書でカバーされることを意図している。他の利点および新規の特徴が、添付の図面と関連して検討される場合、以下の詳細な説明から明らかになるであろう。
【課題を解決するための手段】
【００１２】
ソフトウェアドキュメンテーションを容易にするシステムおよび方法が提供される。一態様では、ソフトウェアドキュメンテーションシステムが提供される。これは、アプリケーションのドキュメンテーションデータを記憶するためのドキュメンテーションオブジェクトを含む。１つ以上のカスタム言語コンポーネントがドキュメンテーションオブジェクトによって記憶され、このアプリケーションの言語表示オプションを提供する。カスタム言語コンポーネントは、タグ付きデータアイテムが、ドキュメンテーション設計者の指定言語のままであるマシーン名などの指定形態のままであることを示すためのタグとして適用可能である。カスタム言語コンポーネントはまた、類似の言語の異なる形態として特定化可能である。これは、類似のドキュメンテーションの異なるバージョンを記憶することを含み、この場合、形態はそれぞれのユーザに対して、異なるコンテクストを有する所与の１サブセットのユーザに調整される。
【００１３】
本アプリケーションで使用されているように、「コンポーネント」、「オブジェクト」、「インタフェース」などの用語は、コンピュータ関連エンティティ、ハードウェア、ハードウェアおよびソフトウェアの組み合わせ、ソフトウェア、または工業コントロール用自動システムに適用されるような実行中のソフトウェアのいずれかに言及することを意図している。例えば、コンポーネントは、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラムおよびコンピュータであってもよいが、これらに制限されない。例証として、サーバ上で実行されるアプリケーションとサーバの両方がコンポーネントであってもよい。１つ以上のコンポーネントがプロセスおよび／または実行スレッド内に常駐することもあり、またコンポーネントはコンピュータにローカライズされ、および／または、２つ以上のコンピュータ、工業コントローラおよび／またはこれと通信するモジュール間に分散されてもよい。さらに、翻訳言語およびローカライズ言語という用語は類似の意味を有することがある点に注目すべきである。従って、ある言語から別の言語に翻訳されているドキュメンテーションはローカライズされているとみなすことができる。
【発明を実施するための最良の形態】
【００１４】
まず図１を参照すると、ソフトウェア開発またはドキュメンテーションシステム１００が、ソフトウェアドキュメンテーション、閲覧および編集用のプラットフォーム／ディスプレイ出力１１０を提供する。ディスプレイ出力１１０は、実質的に任意のタイプのソフトウェア、システムまたはコンポーネント開発に提供可能な開発ツール１２０と関連している。例えば、開発ツール１２０は、汎用コンピュータソフトウェア開発に対して、または詳細に後述されるようなプログラマブル論理コントローラソフトウェアなどのアプリケーションに対して用いられることが可能である。開発ツール１２０はまた、所与の１セットまたは１サブセットのコンポーネントを文書化するためのコンピュータやエディタなどのテキスト言語ツールと関連付けられることが可能である。カーソルやビジョンセンサーなどの選択コンポーネント１３０は、エディタ１５０によって編集可能な１つ以上のドキュメンテーションオブジェクト１４０を識別する。
【００１５】
示されているように、エディタ１５０は、開発ツール１２０に対して選択されている現行言語と関連付けられるのに対して、ディスプレイコンポーネント１１０は、１つ以上のドキュメンテーションオブジェクト１４０に使用可能である代替言語の表示を提供する。このようなオブジェクト１４０は、これと関連したコメントなどのドキュメンテーションを有することができる任意のタイプのコンポーネントを実質的に含むことができる。これらのオブジェクト１４０は、プログラムオブジェクト、プログラム命令、仕様、設計ガイドライン、アルゴリズム、ビジュアルオブジェクト、サウンドオブジェクト、はしご論理要素、シーケンシャル機能チャート要素、機能ブロック図、または、Ｃ＋＋、Ｂａｓｉｃ、Ｊａｖａ（登録商標）などの高レベル言語オブジェクトを含む。
【００１６】
概して、ドキュメンテーションオブジェクト１４０と関連したドキュメンテーションが記憶媒体１６０（例えば、データベース、データファイル）に記憶可能であり、ここでは現行言語ドキュメンテーションコンポーネント１６４およびカスタム言語ドキュメンテーションコンポーネント１６８は開発ツール１２０に対してインポートおよびエクスポート可能である。ドキュメンテーションコンポーネント１６４および１６８は実質的に任意の言語（例えば、英語、ドイツ語、フランス語、ロシア語など）で可能である。言語スイッチ１７０が開発ツール１２０と関連付けられることが可能であり、現行のドキュメンテーション言語コンポーネント１６４が切り替えられるディスプレイコンポーネント１１０およびエディタ１５０によって用いられる現行言語ドキュメンテーションコンテクストを、カスタム言語ドキュメンテーションコンポーネント１６８によってサポートされている１つ以上の代替ドキュメンテーション形態に切り替えることを可能にする。
【００１７】
カスタム言語コンポーネント１６８を生成するための複数の方法がある点に注目する。１つの方法は、現行言語コンポーネント１６４をある会社に送信し、この現行言語のコンポーネントから生成される１つ以上の言語形態を有することである。例えば、冗長的なコメントが送出可能であり、ここでは簡潔または短い１セットのコメントがカスタム言語として冗長的なセットに提供されていた。別の例では、所与の言語が、それぞれの言語のカスタム言語１６８として作成される複数の方言を有することができる。別の方法によって開発者は、コメントを編集し（１５０）、編集を保存し、言語スイッチ１７０を用いて代替言語コンテクストに切り替え、コメントを代替言語で入力し、そして、代替言語コンテクストに従ってこのコメントを再度保存することによって、１セットのカスタム言語コンポーネント１６８によってデータベースを構築することができる。理解されるように、カスタム言語コンポーネント１６８は、現行言語ドキュメンテーションコンポーネント１６４に伴ってエディタ１５０と平行して作成可能である。
【００１８】
一般的に、カスタム言語コンポーネント１６８、および言語スイッチ１７０によって言語コンポーネントを選択する能力は種々のアプリケーションを容易にする。場合によっては、例えば、コントロールシステムのプロジェクトドキュメンテーションの特定の翻訳が既存の話し言葉に容易に結び付けられない場合がある。従って、カスタム言語コンポーネント１６８は、提供された言語と容易に関連付けられない翻訳を記憶するようにユーザによって構成されてもよい。例えば、ユーザは、代替言語に翻訳されないストリングを翻訳不可能ストリングと命名／タグ付けすることを所望する場合がある。
【００１９】
加えて、ユーザは、開発に対して長い形態のドキュメンテーションを、メンテナンスに対してより簡潔な形態のドキュメンテーションを有することを所望する場合がある。カスタム言語コンポーネント１６８はもう１つの例として「言語（長バージョン）」および「言語（短バージョン）」を見込んでおり、この場合、言語は、フランス語、英語、ドイツ語、インド語などの所与の言語を特定する。詳細に後述されるように、カスタム言語コンポーネント１６８は、ユーザの役割に調整される言語などの他のアプリケーションに対して開発可能である。ユーザは、翻訳用に与えられる言語リストに提供されている以上のプロジェクトドキュメンテーションの翻訳を記憶するようにカスタム言語コンポーネント１６８を構成してもよい。構成プロセス中、カスタム言語がプロジェクトに追加されてもよく、この場合ユーザはカスタム言語コンポーネント１６８に翻訳を追加してもよい。
【００２０】
進行する前に、開発システム１００は、現行言語コンテクストに従ってドキュメンテーションオブジェクト１４０を表示する手段（ディスプレイ出力１１０）と、プロジェクトドキュメンテーションの少なくとも１つの代替形態を生成するためにドキュメンテーションオブジェクトと関連したカスタム言語データを記憶する手段（カスタム言語オブジェクト１６８）とを含むことができる。システム１００はまた、現行言語コンテクストと代替言語コンテクストを切り替える手段（言語スイッチ１７０）を含むことができる。
【００２１】
次に図２を参照すると、例示的カスタム言語コンポーネント２００がドキュメンテーションシステムに対してより詳細に説明されている。一般的に、カスタム言語コンポーネント２００は、これらのコンポーネントが複数の外国語サポートの域を超えてプロジェクトドキュメンテーションを提供および処理する様子において、さらなるレベルの言語カスタマイゼーションを提供する。例えば、プロジェクトを開発するエンジニアリングスタッフを有していたユーザについて考えてみると、これらは、コードが実行したものだけでなく、開発者が自らの決めた方法で設計すると決定した理由を文書化した極めて冗長的なプロジェクトドキュメンテーションを含んでいた。同様に、開発者が、製品、および同一言語で作業するメンテナンススタッフに対するドキュメンテーションを提供する場合、このクラスのユーザはコードの操作方法を知る必要があったかもしれないが、さらなる冗長性は必要ではなかった。従って、カスタム言語コンポーネント２００によってユーザは、プロジェクトドキュメンテーションに追加すべき非標準言語指定を有することができる。上記例を使用して、開発者は、他の標準言語に加えて、自らのプロジェクトのカスタム言語として開発者（冗長バージョンのドキュメンテーション）およびメンテナンス（簡潔形態のドキュメンテーション）を用いることができる。
【００２２】
プロジェクトドキュメンテーションマネージャーが、カスタム言語コンポーネント２１０をサポートするために２１０で提供可能である。図３についてより詳細に後述されるドキュメンテーションマネージャー２１０は、システムに生じて、かつそれぞれのタイプの切り替えを管理することができる種々のタイプの言語に対するコントロールを提供する。これは、ドキュメンテーションシステムに対して選択される現行言語と、現在選択されている言語に対する代替または外国語コンポーネントであってもよいデフォルト言語と、カスタム言語コンポーネント２００とに対するサポートを提供することを含む。
【００２３】
２２０に進むと、カスタム言語命名コンベンションについて考える。一般的に、カスタム言語は、システムにおいて既存の言語と衝突する名称を有してはならない。カスタム言語名はＲＦＣ１７６６命名コンベンションに従うことができ、またシステム内部でフォーマット化可能である。これは、ユーザがカスタム名を供給可能な場所を含み、またシステムは、一例では、適切な命名コンベンションにその名称を変換する。カスタム言語は任意にベース言語を基礎とすることができ、あるいは完全に構築されることも可能である。ベース言語（またはこの欠如）および提供されているカスタム名の両方とも、システムによって生成されるＲＦＣ１７６６名に分解可能である。英語に基づいた「中西部（Ｍｉｄｗｅｓｔｅｒｎ）」と称されるカスタム言語について、システムは、例えば、「中西部化（ｅｎ−Ｍｉｄｗｅｓｔｅｒｎ）」を生成可能である。
【００２４】
２３０において、ストリング識別子がカスタム言語サポートについて検討される。この場合、言語の一部は、タグ付きコンポーネントの翻訳が生じないことを示すように指定またはタグ付け可能である。従って、カスタム言語コンポーネント２００のもう１人のユーザは、翻訳の必要がない全ドキュメンテーション（またはこのコンポーネント）のデフォルト言語として使用可能な、潜在的な「非翻訳ストリング」カスタム言語に対するものである。例えば、パーツおよびパーツ番号についての技術的説明はすべての言語について有効であり、翻訳のために用いられるのではなく、識別されているコンポーネントのデフォルト言語として使用されるカスタム言語で存在することができる。
【００２５】
２４０において、カスタム言語アプリケーションについて考える。一例において上述されるように、カスタム言語は、１セットのドキュメンテーションまたはコンポーネントが１セットのユーザに対しては冗長的であり、かつ別の１セットのドキュメンテーションが異なるタイプのユーザに対してはそれほど冗長的ではない同一言語で指定されてもよい。別のタイプのアプリケーション２４０は、所与の言語に対する２つ以上の方言をカスタム言語として定義することを含む。例えばインドおよび中国では、種々の方言が既知のベース言語から存在しており、このような方言を用いる領域に対するカスタム言語ドキュメンテーションの代替策として提供可能である。他のタイプのカスタム言語がセキュリティの観点で開発可能である。例えば、システムにログインされているユーザの識別に応じて、異なるセットのドキュメンテーションが、特定のユーザのセキュリティクリアランスやセキュリティ特権に応じて提供可能である。
【００２６】
一般的に、カスタム言語コンポーネント２００は、特定のユーザと関連した任意のタイプのニュアンスに実質的に対処するように生成可能である。これは、識別されたユーザのタイプ（例えば、マネージャー、エンジニア、メンテナンス、セキュリティ）に応じて、異なる１セットのカスタム言語ドキュメンテーションコンポーネントがこのような識別の観点で提供される役割ベースのドキュメンテーションセットを含むことができる。さらに他のタイプのドキュメンテーションはコンテクストベースであってもよく、この場合、自動コンポーネントが所与のコンテクストを検出し（またはコンテクストに警告し）（例えば、メンテナンスまたはトラブルシューティングコンテクスト、オペレータコンテクスト、設計コンテクストなど）、当該カスタム言語ドキュメンテーション２００を選択して検出されたコンテクストをサポートする。
【００２７】
次に図３を参照して、プロジェクトドキュメンテーションマネージャー３００についてより詳細に説明する。上述のように、プロジェクトドキュメンテーションマネージャー３００は、システムに生じて、それぞれのタイプの切り替えを管理することもある種々のタイプの言語に対するコントロールを提供する。これは、ドキュメンテーションシステムに対して選択される現行言語３１０と、現在選択されている言語３１０に対する代替または外国語コンポーネントであってもよい１つ以上のデフォルト言語３２０と、１つ以上のカスタム言語コンポーネント３３０とに対するサポートを提供することを含む。概して、プロジェクトドキュメンテーションマネージャー３００は、言語切り替えの種々の態様を管理するためのコントロールハブとみなすことが可能である。これは、異なる言語切り替えコンポーネントを管理および命令する単一のアクセスポイントをグラフィカルユーザインタフェースＧＵＩクライアントに提供する。
【００２８】
３１０において、プロジェクトドキュメンテーションマネージャー３００はプロジェクトの現行言語を維持する。現行言語は、システムのプロジェクトドキュメンテーションが現在表示されている言語を特定する。例えば、プロジェクトドキュメンテーションを有するシステムのオブジェクトがこのプロジェクトドキュメンテーションについて問い合わせられると、返信されたリクエストプロジェクトドキュメンテーションは現行言語である。ドキュメンテーションクライアントはプロジェクトの現行言語を取得および設定することができる。クライアントがプロジェクトの現行言語を設定する場合、言語切り替えが生じる。
【００２９】
３２０において、プロジェクトドキュメンテーションマネージャー３００はプロジェクトのデフォルト言語を維持する。デフォルト言語はプロジェクトドキュメンテーションを特定して、現行言語がリクエストされたプロジェクトドキュメンテーションのエントリを有していないか否かを表示する。ドキュメンテーションクライアントはプロジェクトのデフォルト言語を取得および設定することができる。クライアントがプロジェクトのデフォルト言語を設定する場合、言語切り替えが生じる。
【００３０】
３３０において、プロジェクトドキュメンテーションマネージャー３３０はプロジェクトまたはアプリケーションについて定義されたカスタム言語を維持する。これはこれらの言語の詳細を追跡するため、これらはシステムによってもう１つの許容言語として認識される。これらのカスタム言語３３０についての情報はデータベースに維持される。未知の言語識別子がインポート時に発見される場合、これがカスタム言語とされることが可能であり、かつ作成されるように、カスタム言語３３０はインポートプロセス時に再生成される。
【００３１】
図４は、図１に上述されているシステム１００と併用可能な例示的システム４００を示している。本例では、例えば工業コントロールシステムに適用可能な開発およびドキュメンテーションシステム４００が示されている。示されているように、開発ツール４１０は１つ以上のコントロールコンポーネント４２０およびユーザインタフェース４３０と相互作用可能であり、ここではインタフェースは、現行言語またはカスタム言語のコンテクストに従ってドキュメンテーションを供給するために用いられることが可能である。コントロールコンポーネント４２０およびインタフェース４３０は、遠隔サーバアプリケーションとネットワーク４４０で通信可能である。
【００３２】
コントロールコンポーネント４２０は、ネットワーク４４０で相互作用可能なサーバ、クライアント、プログラマブル論理コントローラ（ＰＬＣ）、通信モジュール、モバイルコンピュータ、無線コンポーネント、コントロールコンポーネントなどの種々のコンピュータまたはネットワークコンポーネントを含むことができる。同様に、本明細書で使用されているＰＬＣという用語は、複数のコンポーネント、システムおよび／またはネットワーク４４０で共有可能な機能性を含むことができる。例えば、１つ以上のＰＬＣがネットワーク４４０で種々のネットワークデバイスと通信および協働することができる。これは、実質的に任意のタイプのコントロール、通信モジュール、コンピュータ、Ｉ／Ｏデバイス、センサー、コントロール、自動化および／またはパブリックネットワークを含むネットワーク４４０を介して通信するユーザインタフェース４３０などのヒューマンマシーンインタフェース（ＨＭＩ）を含むことができる。ＰＬＣはまた、アナログ、ディジタル、プログラムド／インテリジェントＩ／Ｏモジュールを含む入力／出力モジュール、他のプログラマブルコントローラ、通信モジュール、センサー、出力デバイスなどの種々の他のデバイスと通信し、これらをコントロールすることができ、この場合、開発ツール４１０およびユーザインタフェース４３０はコントロールコンポーネント４２０の種々の態様を設計／文書化することができる。
【００３３】
ネットワーク４４０は、インターネット、イントラネット、ＤｅｖｉｃｅＮｅｔおよびＣｏｎｔｒｏｌＮｅｔを含むコントロールおよび情報プロトコル（ＣＩＰ）ネットワークなどの自動ネットワークなどのパブリックネットワークを含むことができる。他のネットワークには、イーサネット（登録商標）、ＤＨ／ＤＨ＋、遠隔Ｉ／Ｏ、フィールドバス、Ｍｏｄバス、Ｐｒｏｆｉバス、無線ネットワーク、シリアルプロトコルなどがある。加えて、ネットワークデバイスは種々の代替物（ハードウェアおよび／またはソフトウェアコンポーネント）を含むことができる。これらには、バーチャルローカルエリアネットワーク（ＶＬＡＮ）性能、ＬＡＮ、ＷＡＮ、プロキシ、ゲートウェイ、ルーター、ファイアウォール、バーチャルプライベートネットワーク（ＶＰＮ）デバイス、サーバ、クライアント、コンピュータ、構成ツール、モニタリングツールおよび／または他のデバイスによるスイッチなどのコンポーネントがある。
【００３４】
図４〜図７を参照すると、種々のカスタム言語概念を示す種々の例示的インタフェースが示されている。しかしながら、それぞれの図４〜図７は本質的に例示的であり、複数の種々のフォーマットで提供可能である点が理解されるべきである。これは、データを送信、検索、処理および／または操作し、データを受信、表示、フォーマット化および／または通信し、および／または開発システムの動作を容易にする任意のタイプのアプリケーションなどの開発ツールやドキュメンテーションコンポーネントと相互作用するグラフィカルユーザインタフェース（ＧＵＩ）を含むことができる。例えば、このようなインタフェースはまたエンジン、サーバ、クライアント、エディタツールまたはウェブブラウザと関連付けられることが可能であるが、他のタイプのアプリケーションも利用可能である。
【００３５】
ＧＵＩは、開発ツールによる動作を容易にするために、複数の構成可能な寸法、形状、色、テキスト、データおよびサウンドを有する構成可能なアイコン、ボタン、スライダー、入力ボックス、選択オプション、メニュー、タブなどの態様を含むドキュメンテーションオブジェクトを編集または閲覧するための１つ以上のディスプレイオブジェクトを有するディスプレイを含むことができる。加えて、ＧＵＩはまた、１つ以上の態様を調整および構成するために複数の入力やコントロールを含むことができる。これは、ＧＵＩの動作に影響を与えたり、これを修正したりするために、マウス、キーボード、音声入力、ウェブサイト、遠隔ウェブサービス、またはカメラやビデオ入力などの他のデバイスからユーザコマンドを受信することを含むことができる。
【００３６】
次に図５を参照すると、構成インタフェース５００が図示されている。５１０において、「キー」コンボボックスが提供されるため、ユーザは、インタフェース５００より選択された構成から生成されたファイルにおいて実行される翻訳の翻訳キーとして作用する言語を特定することができる。コンボボックス５１０での選択は、現行プロジェクトにコンテンツを有する言語に制限可能である。所与の言語に対してプロジェクトドキュメンテーションが存在しない場合、５１０における選択の「キー」セットに含まれるべきではない。
【００３７】
「ローカライズ先」リストボックス５２０は、上記言語切り替えコンポーネントによってサポート可能な言語を含む。コンテンツを有する言語は、選択を容易にするためにビジュアルセパレーターの前のリストの上部に配置される。プロジェクトにある任意のカスタム言語が５３０においてセパレーターの下方に配置可能である。５４０において、「カスタム」ボタンによってユーザはこれらのカスタマイズ言語を管理することができる。ユーザは、「ローカライズ先」リストボックス５２０で選択されてもよい言語のリストにカスタマイズ言語を追加したり、すでに作成されているカスタマイズ言語を再命名したりすることが可能である。
【００３８】
図６は、カスタムボタン５４０が図５から選択される場合に生じる例示的インタフェースを示している。カスタム言語構成ダイアログ６００は、プロジェクトによって現在サポートされているカスタム言語のリストボックス６１０を含む。６２０において、追加ボタンが提供され、これは押されると、ダイアログ６３０を、ユーザが６４０でこれらのカスタム言語名を特定できる場所に持ち上げる。受容されると、カスタム言語名はカスタム言語リストボックス６１０に現れる。カスタム言語名はシステムの既存の言語名と衝突してはならない。これらは上記のようにＲＦＣ１７６６命名コンベンションに従う。カスタム言語は６５０においてルート言語と関連付けられてもよい。デフォルトによって、ルート言語は「＜なし＞」にデフォルト可能である。ルート言語が６５０で特定されると、カスタム言語は、ルート言語とは別の言語でリストに現れることが可能である。６６０において、図７に示されているインタフェース７００を持ち上げる再命名ボタンが選択可能である。図７に進むと、図６からのボタン６６０は、押されると、ダイアログ７００を、ユーザが７１０において既存のカスタム言語を再命名できる場所に持ち上げる。図６からのボタン６６０は、言語がリストボックス６１０で選択される場合に有効化される。
【００３９】
図８は、ソフトウェアドキュメンテーションプロセス８００を示している。説明を簡単にするために、方法は１連の動作として図示および説明されているが、いくつかの動作は本明細書に図示および説明されている動作とは異なる順序、および／またはこれらと同時に生じてもよいため、この方法はこの動作順序に制限されない点が理解および認識されるべきである。例えば、当業者は、方法が、例えば状態図において一連の相関状態や事象として代替的に表されてもよいことを理解および認識するであろう。さらに、図示されている動作がすべて、本明細書に説明されているように方法を実現する必要はない。
【００４０】
図８の８１０に進むと、１つ以上の代替言語が所与のソフトウェアオブジェクトを文書化するために定義される。これは、実質的に任意の既知の言語や、言語に代わるコードを含むことができる。ある言語のコメントが例えばエクスポートされ、システムにインポートされる前に複数の他の言語のコメントに翻訳されることが可能である。自動翻訳もまた、選択されていている現行言語から自動的に生成される代替言語コメントについて可能である。８２０において、現行言語エディタが、タグ、プログラム、地位（ｒｕｎｇｓ）、命令、一般ドキュメンテーションなどを含む所与のドキュメンテーションオブジェクトについて選択される。一例では、英語が現行言語として選択されてもよく、この場合任意の編集機能の将来の起動は現行言語として英語を用いなければならない。他の開発状況や環境では、他の言語が現行言語エディタとして選択されてもよい。
【００４１】
８３０において、言語エディタが８２０においてコンポーネントに対して選択された後、１つ以上のカスタム言語が選択されたドキュメンテーションオブジェクトに対して定義される。これは、英語などのベース言語を使用することと、カスタム言語として作用するベース言語からの微妙な、または調整されたバージョンを定義することとを含むことができる。８４０において、カスタム言語は代替ドキュメンテーションコンテクストとして、あるいは非翻訳ストリングとして適用される。代替コンテクストについて、カスタム言語は方言、冗長性、ユーザの役割、セキュリティ観点などに基づいて定義されてもよい。ユーザによって検出または要求されたコンテクストに基づいて、決定または特定されたコンテクストに関連するカスタム言語のコメントやドキュメンテーションオブジェクトが閲覧可能である。
【００４２】
非翻訳ストリングコンテクストにおいて、カスタム言語は、言語翻訳がストリングに適用されるはずのないシステムにおいてストリング名に適用されてもよい。従って、例えばカスタム言語名としてタグ付けまたは識別されている英語のマシーン名や定数は、現行またはデフォルト言語がドイツ語に切り替えられる場合には、その名前がドイツ語に翻訳されない。このように、カスタム言語タグによってドキュメンテーションのコンポーネントは、一般的なベース言語記述外の所望の形態のままであることができる。
【００４３】
図９を参照すると、本明細書に説明されている種々の態様を実現するための例示的環境９１０がコンピュータ９１２を含む。コンピュータ９１２は、処理ユニット９１４と、システムメモリ９１６とシステムバス９１８とを含む。システムバス９１８は、システムメモリ９１６を含むがこれに制限されないシステムコンポーネントを処理ユニット９１４に結合させる。処理ユニット９１４は種々の使用可能なプロセッサのうちのいずれかであってもよい。デュアルマイクロプロセッサおよびマルチプロセッサアーキテクチャはまた処理ユニット９１４として用いられることが可能である。
【００４４】
システムバス９１８は、メモリバスまたはメモリコントローラ、周辺バスまたは外部バス、および／または、１１ビットバス、工業標準アーキテクチャ（ＩＳＡ）、マイクロチャネルアーキテクチャ（ＭＳＡ）、拡張ＩＳＡ（ＥＩＳＡ）、インテリジェントドライブエレクトロニクス（ＩＤＥ）、ＶＥＳＡローカルバス（ＶＬＢ）、周辺コンポーネント相互接続（ＰＣＩ）、ユニバーサルシリアルバス（ＵＳＢ）、高度グラフィックポート（ＡＧＰ）、パーソナルコンピュータメモリカードインターナショナルアソシエーションバス（ＰＣＭＣＩＡ）および小型コンピュータシステムインタフェース（ＳＣＳＩ）を含むがこれらに制限されない多様な使用可能バスアーキテクチャを使用するローカルバスを含む複数のタイプのバス構造のうちのいずれかであってもよい。
【００４５】
システムメモリ９１６は揮発性メモリ９２０および不揮発性メモリ９２２を含む。例えばセットアップ時にコンピュータ９１２内の要素間で情報を転送するための基本ルーチンを含む基本入力／出力システム（ＢＩＯＳ）は不揮発性メモリ９２２に記憶されている。例証として、また非制限的ではなく、不揮発性メモリ９２２は、リードオンリーメモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、電子プログラマブルＲＯＭ（ＥＰＲＯＭ）、電子消去可能ＲＯＭ（ＥＥＰＲＯＭ）またはフラッシュメモリを含むことができる。揮発性メモリ９２０はランダムアクセスメモリ（ＲＡＭ）を含み、これは外部キャッシュメモリとして作用する。例証として、また非制限的ではなく、ＲＡＭは、同期ＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ）、ダブルデータレートＳＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）、拡張ＳＤＲＡＭ（ＥＳＤＲＡＭ）、同期リンクＤＲＡＭ（ＳＬＤＲＡＭ）およびダイレクトＲａｍｂｕｓＲＡＭ（ＤＲＲＡＭ）などの多数の形態で使用可能である。
【００４６】
コンピュータ９１２はまた、リムーバブル／非リムーバブル、揮発性／不揮発性コンピュータ記憶媒体を含む。図９は、例えばディスク記憶装置９２４を示している。ディスク記憶装置９２４は、磁気ディスクドライブ、フロッピー（登録商標）ディスクドライブ、テープドライブ、Ｊａｚドライブ、Ｚｉｐドライブ、フラッシュメモリカードまたはメモリスティックなどのデバイスを含むがこれらに制限されない。加えて、ディスク記憶装置９２４は記憶媒体を個別に、またはコンパクトディスクＲＯＭデバイス（ＣＤ−ＲＯＭ）、ＣＤ記録可能ドライブ（ＣＤ−Ｒドライブ）、ＣＤ上書き可能ドライブ（ＣＤ−ＲＷドライブ）またはディジタル多用途ディスクＲＯＭドライブ（ＤＶＤ−ＲＯＭ）などの光学ディスクドライブを含むがこれらに制限されない他の記憶媒体と組み合わせて含むことができる。システムバス９１８へのディスク記憶デバイス９２４の接続を容易にするために、インタフェース９２６などのリムーバブルまたは非リムーバブルインタフェースが通常使用される。
【００４７】
図９は、適切な動作環境９１０において説明されているユーザと基本的コンピュータリソースとの間の仲介として作用するソフトウェアについて説明していることが認識されるべきである。このようなソフトウェアはオペレーティングシステム９２８を含む。オペレーティングシステム９２８は、ディスク記憶装置９２４に記憶可能であり、コンピュータシステム９１２のリソースをコントロールおよび割り当てるように作用する。システムアプリケーション９３０は、システムメモリ９１６またはディスク記憶装置９２４のいずれかに記憶されているプログラムモジュール９３２およびプログラムデータ９３４を介してオペレーティングシステム９２８によるリソースの管理を利用する。本明細書に説明されている種々のコンポーネントが種々のオペレーティングシステムやオペレーティングシステムの組み合わせによって実現可能であることが認識されるべきである。
【００４８】
ユーザは、入力デバイス９３６を介してコンピュータ９１２にコマンドや情報を入力する。入力デバイス９３６は、マウス、トラックボール、スタイラスペン、タッチパッド、キーボード、マイクロホン、ジョイスティック、ゲームパッド、衛星ディッシュ、スキャナ、ＴＶチューナーカード、ディジタルカメラ、ディジタルビデオカメラ、ウェブカメラなどのポインティングデバイスを含むがこれらに制限されない。これらおよび他の入力デバイスは、システムバス９１８によってインタフェースポート９３８を介して処理ユニット９１４に接続する。インタフェースポート９３８は、例えばシリアルポート、パラレルポート、ゲームポートおよびユニバーサルシリアルバス（ＵＳＢ）を含む。出力デバイス９４０は入力デバイス９３６と同じタイプのポートのいくつかを使用する。従って、例えば、ＵＳＢポートが、コンピュータ９１２に入力を提供し、かつコンピュータ９１２から出力デバイス９４０に情報を出力するために使用されてもよい。特殊なアダプタを必要とする出力デバイス９４０には、モニタ、スピーカーおよびプリンタのような出力デバイス９４０もあることを示すために、出力アダプタ９４２が提供される。出力アダプタ９４２は、例証として、また非制限的に、出力デバイス９４０とシステムバス９１８間の接続手段を提供するビデオおよびサウンドカードを含む。他のデバイスおよび／またはデバイスシステムは、遠隔コンピュータ９４４などの入力および出力双方の性能を提供することに注目する。
【００４９】
コンピュータ９１２は、遠隔コンピュータ９４４などの１つ以上の遠隔コンピュータへの論理接続を使用するネットワーク環境で動作可能である。遠隔コンピュータ９４４はパーソナルコンピュータ、サーバ、ルーター、ネットワークＰＣ、ワークステーション、マイクロプロセッサベース機器、ピアデバイスまたは他の共通ネットワークノードなどであってもよく、また通常は、コンピュータ９１２に対して説明されている要素の多くまたは全部を含む。簡潔にするために、メモリ記憶デバイス９４６のみが遠隔コンピュータ９４４と共に図示されている。遠隔コンピュータ９４４はネットワークインタフェース９４８を介してコンピュータ９１２に論理的に接続され、そして通信接続９５０を介して物理的に接続される。ネットワークインタフェース９４８は、ローカルエリアネットワーク（ＬＡＮ）およびワイドエリアネットワーク（ＷＡＮ）などの通信ネットワークを包含している。ＬＡＮ技術は、ファイバ分散データインタフェース（ＦＤＤＩ）、銅分散データインタフェース（ＣＤＤＩ）、イーサネット（登録商標）／ＩＥＥＥ８０２．３、トークンリング／ＩＥＥＥ８０２．５などを含む。ＷＡＮ技術は、ポイントツーポイントリンク、集積サービスディジタルネットワーク（ＩＳＤＮ）およびこの変形例などの回路切り替えネットワーク、パケット切り替えネットワーク、およびディジタル加入者ライン（ＤＳＬ）を含むがこれらに制限されない。
【００５０】
通信接続９５０は、ネットワークインタフェース９４８をバス９１８に接続するために用いられるハードウェア／ソフトウェアのことである。通信接続９５０は、コンピュータ９１２内部の例示的明確さのために示されているが、これはコンピュータ９１２の外部にあってもよい。ネットワークインタフェース９４８への接続に必要なハードウェア／ソフトウェアは、例示目的でのみ、レギュラーテレホングレードモデム、ケーブルモデム、ＤＳＬモデムを含むモデム、ＩＳＤＮアダプタおよびイーサネット（登録商標）カードなどの内部および外部技術を含む。
【００５１】
図１０は、使用可能なサンプルコンピューティング環境１０００の概略ブロック図である。システム１０００は、１つ以上のクライアント１０１０を含む。クライアント１０１０はハードウェアおよび／またはソフトウェアであってもよい（例えば、スレッド、プロセス、コンピューティングデバイス）。システム１０００はまた１つ以上のサーバ１０３０を含む。サーバ１０３０もまたハードウェアおよび／またはソフトウェアであってもよい（例えば、スレッド、プロセス、コンピューティングデバイス）。サーバ１０３０は、例えば本明細書に説明されているコンポーネントを用いることによって、変換を実行するためのスレッドを収容可能である。クライアント１０１０とサーバ１０３０間の可能な通信は、２つ以上のコンピュータプロセス間で送信されるように適合されているデータパケットの形態であってもよい。システム１０００は、クライアント１０１０とサーバ１０３０間の通信を容易にするために使用可能な通信フレームワーク１０５０を含む。クライアント１０１０は、クライアント１０１０に対してローカルな情報を記憶するために使用可能な１つ以上のクライアントデータ記憶装置１０６０に動作可能に接続される。同様に、サーバ１０３０は、サーバ１０３０に対してローカルな情報を記憶するために使用可能な１つ以上のサーバデータ記憶装置１０４０に動作可能に接続される。
【００５２】
上記説明されていることは種々の例示的態様を含む。これらの態様について説明するために考えられるすべてのコンポーネントや方法の組み合わせについて記述することは当然不可能であるが、当業者は、多数のさらなる組み合わせおよび置換が可能であることを認識するであろう。従って、本明細書に説明されている態様は、添付の請求項の精神および範囲内のすべてのこのような変更、修正および変形を包含することを意図している。さらに、用語「含む」が詳細な説明や請求項で使用されている限り、このような用語は、請求項で暫定用語として用いられる場合に「備えている」が解釈されるように、用語「備える」と同様に包括的であることを意図している。
【図面の簡単な説明】
【００５３】
【図１】カスタム言語サポートを有するソフトウェア開発システムを示す概略ブロック図である。
【図２】ドキュメンテーションシステムの例示的カスタム言語コンポーネントを示す図である。
【図３】開発システムのプロジェクトドキュメンテーションマネージャーコンポーネントを示す図である。
【図４】例示的開発またはドキュメンテーションシステムを示す図である。
【図５】開発またはドキュメンテーションツール用の例示的カスタム言語インタフェースを示す図である。
【図６】開発またはドキュメンテーションツール用の例示的カスタム言語インタフェースを示す図である。
【図７】開発またはドキュメンテーションツール用の例示的カスタム言語インタフェースを示す図である。
【図８】ドキュメンテーションプロセスを示すフロー図である。
【図９】例示的開発システムコンピューティング環境を示す図である。
【図１０】編集およびドキュメンテーションプロセスを実行するための例示的クライアント／サーバシステムを示す図である。
【符号の説明】
【００５４】
１００    ドキュメンテーションシステム
１１０    ディスプレイ出力
１２０    開発ツール
１３０    選択コンポーネント
１４０    ドキュメンテーションオブジェクト
１５０    エディタ
１６４、１６８    ドキュメンテーションコンポーネント
１７０    言語スイッチ
【図１】
2008117376.tif 000003
【図２】
2008117376.tif 000004
【図３】
2008117376.tif 000005
【図４】
2008117376.tif 000006
【図５】
2008117376.tif 000007
【図６】
2008117376.tif 000008
【図７】
2008117376.tif 000009
【図８】
2008117376.tif 000010
【図９】
2008117376.tif 000011
【図１０】
2008117376.tif 000012
【外国語明細書】
2008117376.tif 000013
2008117376.tif 000014
2008117376.tif 000015
2008117376.tif 000016
2008117376.tif 000017
2008117376.tif 000018
2008117376.tif 000019
2008117376.tif 000020
2008117376.tif 000021
2008117376.tif 000022
2008117376.tif 000023
2008117376.tif 000024
2008117376.tif 000025
2008117376.tif 000026
2008117376.tif 000027
2008117376.tif 000028
2008117376.tif 000029
2008117376.tif 000030
2008117376.tif 000031
2008117376.tif 000032
2008117376.tif 000033
2008117376.tif 000034
2008117376.tif 000035
2008117376.tif 000036
2008117376.tif 000037
2008117376.tif 000038
2008117376.tif 000039
2008117376.tif 000040
2008117376.tif 000041
2008117376.tif 000042
2008117376.tif 000043
2008117376.tif 000044
2008117376.tif 000045
2008117376.tif 000046