(57)【要約】【課題】コンポーネント提供者が、コンテンツを保護されたＭＤＡの設計モデルを作成することができ、又、コンポーネントのユーザーが、保護された設計モデルを使って、自プラットフォームに応じた設定でソースコードを生成し、プロジェクトに組み込むことができるコンポーネント流通システムを提供すること。【解決手段】コンポーネントモデル情報と、コンポーネントプラットフォーム依存情報（非公開）を暗号化し、コンポーネントソースコード生成プログラム、コンポーネントＩ／Ｆ情報、コンポーネントプラットフォーム依存情報（公開）と共にコンポーネントのバンドルとして提供する。【選択図】図１
2006268474.tif 000002
【特許請求の範囲】
【請求項１】
コンポーネントをプロジェクトに組み込むために必要なコンポーネント情報を提供するコンポーネント提供部と、前記コンポーネント提供部によって提供される前記コンポーネント情報をプロジェクトに組み込んで使用するコンポーネント使用部から成ることを特徴とするコンポーネント流通システム。
【請求項２】
前記コンポーネント情報とは、コンポーネントの公開仕様であるコンポーネントＩ／Ｆ情報と、コンポーネントの設計情報が記載されたコンポーネントモデル情報を暗号化したコンポーネントモデル情報（暗号化）と、コンポーネントのプラットフォーム依存内容を記述したコンポーネントプラットフォーム依存情報の中でユーザーに公開する部分であるコンポーネントプラットフォーム依存情報（公開）と、前記コンポーネントプラットフォーム依存情報の中でユーザーに公開しない部分であるコンポーネントプラットフォーム依存情報（非公開、平文）を暗号化したコンポーネントプラットフォーム依存情報（非公開、暗号化）と、前記コンポーネントモデル情報（暗号化）と前記コンポーネントプラットフォーム依存情報（公開）と前記コンポーネントプラットフォーム依存情報（非公開、暗号化）を入力として、コンポーネントのプログラムソースコードであるコンポーネントソースコードを生成するコンポーネントソースコード生成プログラムから成ることを特徴とする請求項１記載のコンポーネント流通システム。
【請求項３】
前記コンポーネント提供部とは、前記コンポーネントＩ／Ｆ情報を生成するコンポーネントＩ／Ｆ情報解析手段と、前記コンポーネントモデル情報を暗号化アルゴリズムと鍵を用いて暗号化し、前記コンポーネントモデル情報（暗号化）を生成するモデル情報暗号化処理手段と、前記コンポーネントプラットフォーム依存情報を前記コンポーネントプラットフォーム依存情報（公開）と前記コンポーネントプラットフォーム依存情報（非公開、平文）に分割するコンポーネントプラットフォーム依存解析手段と、前記暗号化アルゴリズムと鍵を用いて前記コンポーネントプラットフォーム依存情報（非公開、平文）を暗号化し、前記コンポーネントプラットフォーム依存情報（非公開、暗号化）を生成するコンポーネントプラットフォーム依存情報暗号化処理手段と、前記コンポーネントソースコードを生成するコンポーネントソースコード生成プログラム作成手段を有することを特徴とする請求項２記載のコンポーネント流通システム。
【請求項４】
前記コンポーネントソースコード生成プログラム作成手段とは、前記コンポーネントモデル情報と前記コンポーネントプラットフォーム依存情報を入力として前記コンポーネントソースコードを出力するモデルコンパイラ機能と、前記暗号化アルゴリズムと鍵とをセットにして、前記コンポーネントソースコード生成プログラムを作成することを特徴とする請求項３記載のコンポーネント流通システム。
【請求項５】
前記コンポーネント提供部とは、前記コンポーネントプラットフォーム依存情報（公開）と前記コンポーネントプラットフォーム依存情報（非公開、平文）の分割をユーザーに選択させる機能を有することを特徴とする請求項３記載のコンポーネント流通システム。
【請求項６】
前記コンポーネント提供部とは、前記暗号化アルゴリズムと鍵とを、ユーザーに選択させる機能を有することを特徴とする請求項３記載のコンポーネント流通システム。
【請求項７】
前記コンポーネント使用部とは、前記コンポーネント提供部によって提供される前記コンポーネントソースコード生成プログラムとコンポーネントプラットフォーム依存情報（非公開、暗号化）とコンポーネントモデル情報（暗号化）とコンポーネントプラットフォーム依存情報（公開）とを用いて、前記コンポーネントソースコードを生成するコンポーネントソースコード生成手段と、プロジェクトの設計図面情報であるプロジェクトモデル情報、プロジェクトのプラットフォーム依存内容を記述したプロジェクトプラットフォーム依存情報、前記コンポーネント提供部によって提供される前記コンポーネントＩ/ Ｆ情報とコンポーネントプラットフォーム依存情報（公開）を用いて、プロジェクトソースコード、ビルド情報を記述したプロジェクトファイルをそれぞれ生成する、プロジェクトソースコード生成手段と、プロジェクトファイル生成手段と、前記コンポーネントソースコード、前記プロジェクトソースコード、前記プロジェクトファイル、ライブラリとを用いて、実行可能形式を生成するソースコードコンパイラを有することを特徴とする請求項２記載のコンポーネント流通システム。
【請求項８】
前記コンポーネントソースコード生成プログラムとは、前記コンポーネントソースコードを生成する際に、請求項７記載のプロジェクトモデル情報とプロジェクトプラットフォーム依存情報を用いて、前記コンポーネントソースコードの最適化を図ることを特徴とする請求項３記載のコンポーネント流通システム。
【請求項９】
前記モデル情報暗号化処理手段とは、符号化アルゴリズムと符号化キーを用いて前記コンポーネントモデル情報（平文）を符号化した後に、前記暗号化アルゴリズムと鍵を用いて前記コンポーネントモデル情報（暗号化）を生成し、前記コンポーネントプラットフォーム依存情報暗号化処理手段とは、前記符号化アルゴリズムと符号化キーを用いて前記コンポーネントプラットフォーム依存情報（非公開、平文）を符号化した後に、前記暗号化アルゴリズムと鍵を用いて前記コンポーネントプラットフォーム依存情報（非公開、暗号化）を生成し、前記コンポーネントソースコード生成プログラムとは、符号化後に暗号化された上記コンポーネントモデル情報（暗号化）とコンポーネントプラットフォーム依存情報（非公開、暗号化）を用いて、前記コンポーネントソースコードを生成することを特徴とする請求項３記載のコンポーネント流通システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアコンポーネントの実行可能な設計モデルを作成、使用するコンポーネントの流通システムに関わり、特にコンポーネントの利用者に対して設計モデルを隠蔽し、且つ、コンポーネントのソースコード生成を可能にするコンポーネント流通システムに関するものである。
【背景技術】
【０００２】
近年、フォーマル言語で記述されたソフトウェアの実行可能モデルを入力として、プログラムコードを生成するプログラム自動生成技術をベースにして、実行可能モデルを作成するモデルエディタと、プログラム生成装置と、プログラム生成装置によって生成されるプログラムコードから、実行形式プログラムを作成するコンパイラ／リンカを統合したツールを用いて、実行可能モデルをベースとしてソフトウェアの開発を行う、ＭＤＡ（Model-Driven-Architecture ）技術が広まり、統合ツールを用いて多くのソフトウェアが開発されるようになってきた。
【０００３】
ＭＤＡ技術では、実行プラットフォームに非依存な設計モデルと、実行プラットフォーム依存部分を明確に分けており、実行プラットフォーム依存部分を切り替えることにより、同一の設計モデルから異なるプラットフォームで動作する実行形式を作成することが可能である。従って、ソースコードを手作業で作成する従来のソフト開発に比べて、開発全体における設計モデルの価値が高い点が特徴である。
【０００４】
一方、急激に規模が増大する傾向にあるソフトウェアを、より効率的に開発し、又、品質を向上させるために、ソフトウェアをコンポーネントとして部品化し、必要なコンポーネントを組み合わせることによってソフトウェアを開発するコンポーネント開発の考えが広まっている。現在のコンポーネントの流通は、ソースコードやライブラリといった単位で行われている。例えば、オープンソース・ソフトウェア開発では、一定のライセンス条件の元に、ソースコードを無償で入手することができる。一方、コンポーネントを製品として販売している企業の多くは、ノウハウ囲い込みのためにソースコードを非公開とし、ライブラリやツール等をバイナリ形式で配布している。
【０００５】
今後、コンポーネントの流通は、ＭＤＡの設計モデルを単位としたものにシフトしていくことが予想されるが、上記の理由から、コンポーネントの提供者が、価値の高い設計モデルをユーザーに公開したくない、といったケースが多く出てくる筈である。
【０００６】
しかし、従来のコンポーネント流通のように、ソースコード若しくはライブラリをコンポーネント流通の単位にすると、同一のモデルから、異なるプラットフォーム上で動作する実行形式を作成できる、というＭＤＡ技術の利点が損なわれてしまう。
【０００７】
そこで、コンポーネント流通の際に、設計モデルのコンテンツを保護するための仕組みが必要とされる。
【０００８】
従来、デジタルコンテンツを保護するための様々な提案がなされて来た。特許文献１に記載されている自己保護文書システムにおいては、表示や印刷等の機能も、文書に含めることによって、外部アプリケーションを介する際の違法コピーを防ぐ手法について述べている。
【０００９】
又、特許文献２では、ユーザーによるコンテンツへのアクセスを監視するプログラムと、ユーザー管理サーバーを導入することによって、不正なコピーを防止する手段について述べている。
【００１０】
【特許文献１】特開２０００−１３７６４９号公報
【特許文献２】特開２００４−０４６７９０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかし、前記特許文献１，２は何れも認証されたユーザーによるコンテンツの閲覧自体は禁じていない。一旦ユーザーがコンテンツを閲覧すると、画像等の複雑なコンテンツの場合にはユーザーによる複製が困難であるが、ソフトウェアの設計モデルである場合には、目視した内容を記憶しておき、別コンテンツとして作成することによって、結果的に全く同一のモデルを再現することが可能である。
【００１２】
又、特許文献２に記載された方法では、ユーザー管理サーバーを導入して設計モデルを統一的に管理する仕組みを構築する必要があり、コストが高いために、コンポーネントの流通が促進されない恐れがある。
【００１３】
本発明は、コンポーネント提供者が、コンテンツを保護されたＭＤＡの設計モデルを作成することができ、又、コンポーネントのユーザーが、保護された設計モデルを使って、自プラットフォームに応じた設定でソースコードを生成し、プロジェクトに組み込むことができるコンポーネント流通システムを提供することを目的としている。
【課題を解決するための手段】
【００１４】
以上の目的を達成するため、請求項１記載の発明は、コンポーネントをプロジェクトに組み込むために必要なコンポーネント情報を提供するコンポーネント提供部と、前記コンポーネント提供部によって提供される前記コンポーネント情報をプロジェクトに組み込んで使用するコンポーネント使用部とでコンポーネント流通システムを構成したことを特徴とする。
【００１５】
請求項２記載の発明は、請求項１記載の発明において、前記コンポーネント情報とは、コンポーネントの公開仕様であるコンポーネントＩ／Ｆ情報と、コンポーネントの設計情報が記載されたコンポーネントモデル情報を暗号化したコンポーネントモデル情報（暗号化）と、コンポーネントのプラットフォーム依存内容を記述したコンポーネントプラットフォーム依存情報の中でユーザーに公開する部分であるコンポーネントプラットフォーム依存情報（公開）と、前記コンポーネントプラットフォーム依存情報の中でユーザーに公開しない部分であるコンポーネントプラットフォーム依存情報（非公開、平文）を暗号化したコンポーネントプラットフォーム依存情報（非公開、暗号化）と、前記コンポーネントモデル情報（暗号化）と前記コンポーネントプラットフォーム依存情報（公開）と前記コンポーネントプラットフォーム依存情報（非公開、暗号化）を入力として、コンポーネントのプログラムソースコードであるコンポーネントソースコードを生成するコンポーネントソースコード生成プログラムから成ることを特徴とする。
【００１６】
請求項３記載の発明は、請求項２記載の発明において、前記コンポーネント提供部とは、前記コンポーネントＩ／Ｆ情報を生成するコンポーネントＩ／Ｆ情報解析手段と、前記コンポーネントモデル情報を暗号化アルゴリズムと鍵を用いて暗号化し、前記コンポーネントモデル情報（暗号化）を生成するモデル情報暗号化処理手段と、前記コンポーネントプラットフォーム依存情報を前記コンポーネントプラットフォーム依存情報（公開）と前記コンポーネントプラットフォーム依存情報（非公開、平文）に分割するコンポーネントプラットフォーム依存解析手段と、前記暗号化アルゴリズムと鍵を用いて前記コンポーネントプラットフォーム依存情報（非公開、平文）を暗号化し、前記コンポーネントプラットフォーム依存情報（非公開、暗号化）を生成するコンポーネントプラットフォーム依存情報暗号化処理手段と、前記コンポーネントソースコードを生成するコンポーネントソースコード生成プログラム作成手段を有することを特徴とする。
【００１７】
請求項４記載の発明は、請求項３記載の発明において、前記コンポーネントソースコード生成プログラム作成手段とは、前記コンポーネントモデル情報と前記コンポーネントプラットフォーム依存情報を入力として前記コンポーネントソースコードを出力するモデルコンパイラ機能と、前記暗号化アルゴリズムと鍵とをセットにして、前記コンポーネントソースコード生成プログラムを作成することを特徴とする。
【００１８】
請求項５記載の発明は、請求項３記載の発明において、前記コンポーネント提供部とは、前記コンポーネントプラットフォーム依存情報（公開）と前記コンポーネントプラットフォーム依存情報（非公開、平文）の分割をユーザーに選択させる機能を有することを特徴とする。
【００１９】
請求項６記載の発明は、請求項３記載の発明において、前記コンポーネント提供部とは、前記暗号化アルゴリズムと鍵とを、ユーザーに選択させる機能を有することを特徴とする。
【００２０】
請求項７記載の発明は、請求項２記載の発明において、前記コンポーネント使用部とは、前記コンポーネント提供部によって提供される前記コンポーネントソースコード生成プログラムとコンポーネントプラットフォーム依存情報（非公開、暗号化）とコンポーネントモデル情報（暗号化）とコンポーネントプラットフォーム依存情報（公開）とを用いて、前記コンポーネントソースコードを生成するコンポーネントソースコード生成手段と、プロジェクトの設計図面情報であるプロジェクトモデル情報、プロジェクトのプラットフォーム依存内容を記述したプロジェクトプラットフォーム依存情報、前記コンポーネント提供部によって提供される前記コンポーネントＩ/ Ｆ情報とコンポーネントプラットフォーム依存情報（公開）を用いて、プロジェクトソースコード、ビルド情報を記述したプロジェクトファイルをそれぞれ生成する、プロジェクトソースコード生成手段と、プロジェクトファイル生成手段と、前記コンポーネントソースコード、前記プロジェクトソースコード、前記プロジェクトファイル、ライブラリとを用いて、実行可能形式を生成するソースコードコンパイラを有することを特徴とする。
【００２１】
請求項８記載の発明は、請求項３記載の発明において、前記コンポーネントソースコード生成プログラムとは、前記コンポーネントソースコードを生成する際に、請求項７記載のプロジェクトモデル情報とプロジェクトプラットフォーム依存情報を用いて、前記コンポーネントソースコードの最適化を図ることを特徴とする。
【００２２】
請求項９記載の発明は、請求項３記載の発明において、前記モデル情報暗号化処理手段とは、符号化アルゴリズムと符号化キーを用いて前記コンポーネントモデル情報（平文）を符号化した後に、前記暗号化アルゴリズムと鍵を用いて前記コンポーネントモデル情報（暗号化）を生成し、前記コンポーネントプラットフォーム依存情報暗号化処理手段とは、前記符号化アルゴリズムと符号化キーを用いて前記コンポーネントプラットフォーム依存情報（非公開、平文）を符号化した後に、前記暗号化アルゴリズムと鍵を用いて前記コンポーネントプラットフォーム依存情報（非公開、暗号化）を生成し、前記コンポーネントソースコード生成プログラムとは、符号化後に暗号化された上記コンポーネントモデル情報（暗号化）とコンポーネントプラットフォーム依存情報（非公開、暗号化）を用いて、前記コンポーネントソースコードを生成することを特徴とする。
【発明の効果】
【００２３】
本発明によれば、コンポーネント提供者が、コンテンツを保護されたＭＤＡの設計モデルを作成することができ、又、コンポーネントのユーザーが、保護された設計モデルを使って、自プラットフォームに応じた設定でースコードを生成し、プロジェクトに組み込むことができるコンポーネント流通システムを提供することができる。
【発明を実施するための最良の形態】
【００２４】
以下、添付の図面に沿って本発明の実施の形態を説明する。
【００２５】
＜実施の形態１＞
図１は本発明の実施例を示す全体構成の概要である。図１において、１０１はコンポーネントを提供するコンポーネント提供部であり、１０２はコンポーネント提供部１０１によって提供されるコンポーネントを使用するコンポーネント使用部である。１０３はコンポーネント提供部１０１からコンポーネント使用部１０２へのコンポーネント情報伝達経路である。コンポーネント提供部１０１によって作成されたコンポーネント情報が、コンポーネント情報伝達経路１０３を通してコンポーネント使用部１０２に提供され、コンポーネント使用部１０２は、該コンポーネント情報を自プロジェクトに組み込み、使用する。
【００２６】
図２は本発明の実施の形態を示す全体構成の詳細である。
【００２７】
図２において、コンポーネント提供部１０１に含まれる２０１はＣＰＵであり、以下に説明する２０２〜２１１の装置を２０２で示したバスを介してアクセスし制御を行う。２０３はバス２０２を介してＣＰＵ２０１からアクセス可能な読み出し専用メモリ（ＲＯＭ）であり、本実施の形態では、その動作を詳細に説明する処理プログラム２０３ａ及び処理プログラム２０３ａにより使用されるパラメータ203bが格納されている。
【００２８】
２０４は読み書き可能なメモリ（ＲＡＭ）であり、ＲＡＭ２０４上には、上記処理プログラム２０３により作成／変更がなされる、コンポーネントＩ／Ｆ情報、コンポーネントモデル情報（平文）、コンポーネントソースコード生成プログラム１、コンポーネントプラットフォーム依存情報（公開）、コンポーネントプラットフォーム依存情報（非公開、平文）、暗号化／復号化アルゴリズム、コンポーネントソースコード生成プログラム２、コンポーネントモデル情報（暗号化）、コンポーネントプラットフォーム依存情報（非公開、平文）をそれぞれ格納するための領域２０４ａ〜２０４ｉが確保されている。
【００２９】
２０５は入力インターフェイスであり、２０６で示したキーボード、マウス、タブレット等の入力装置を介してなされる入力を受け取る。２０７は出力インターフェイスであり、２０８で示したＣＲＴ、ＬＣＤ等の表示媒体、更にはプリンタ、プロッタ等の出力装置に対し、データの表示／出力を行う。２０９は外部記憶装置インターフェイスであり、２１０で示したＨＤ、ＦＤ、ＣＤ−ＲＯＭ、ＭＯＤ等の外部記憶装置に対するデータの入出力を行う。又、２１１はネットワークインターフェースであり、既存のネットワークプロトコルを用いてコンポーネント使用部１０２との通信を行うものである。
【００３０】
コンポーネント使用部１０２に含まれる２１１はＣＰＵであり、以下に説明する２２２〜２３１の装置を２２２で示したバスを介してアクセスし制御を行う。２２３はバス２２２を介してＣＰＵ２２１からアクセス可能な読み出し専用メモリ（ＲＯＭ）であり、本実施の形態では、その動作を詳細に説明する処理プログラム２２３ａ及び処理プログラム２２３ａにより使用されるパラメータ２２３ｂが格納されている。
【００３１】
２２４は読み書き可能なメモリ（ＲＡＭ）であり、ＲＡＭ２２４上には、上記処理プログラム２２３により作成／変更がなされる、プロジェクトモデル情報、プロジェクトプラットフォーム依存情報、プロジェクトソースコード、プロジェクトファイル、ライブラリ、実行可能形式、コンポーネントソースコード、コンポーネントＩ／Ｆ情報、コンポーネントモデル情報（暗号化）、コンポーネントソースコード生成プログラム２、コンポーネントプラットフォーム依存情報（公開）、コンポーネントプラットフォーム依存情報（非公開、暗号化）をそれぞれ格納するための領域２２４ａ〜２２４ｌが確保されている。
【００３２】
２２５は入力インターフェイスであり、２２６で示したキーボード、マウス、タブレット等の入力装置を介してなされる入力を受け取る。２２７は出力インターフェイスであり、２２８で示したＣＲＴ、ＬＣＤ等の表示媒体、更にはプリンタ、プロッタ等の出力装置に対し、データの表示／出力を行う。
【００３３】
２２９は外部記憶装置インターフェイスであり、２３０で示したＨＤ、ＦＤ、ＣＤ−ＲＯＭ、ＭＯＤ等の外部記憶装置に対するデータの入出力を行う。又、２３１はネットワークインターフェースであり、既存のネットワークプロトコルを用いてコンポーネント提供部１０１との通信を行うものである。
【００３４】
先に説明したＲＡＭ２２４の領域２２４ｇ〜２２４ｋに格納される、コンポーネントＩ／Ｆ情報、コンポーネントモデル情報（暗号化）、コンポーネントソースコード生成プログラム２、コンポーネントプラットフォーム依存情報（公開）、コンポーネントプラットフォーム依存情報（非公開、暗号化）は、コンポーネント提供部１０１内の処理プログラム２０３ａによって作成された、２０４ａ，２０４ｈ，２０４ｇ，２０４ｄ，２０４ｉに格納されるコンポーネントＩ／Ｆ情報、コンポーネントモデル情報（暗号化）、コンポーネントソースコード生成プログラム２、コンポーネントプラットフォーム依存情報（公開）、コンポーネントプラットフォーム依存情報（非公開、暗号化）とそれぞれ同一の内容であり、ネットワークインターフェース２１１，２３１を介してコンポーネント提供部１０１からコンポーネント使用部１０２へ提供される。
【００３５】
本実施の形態では、ネットワークインターフェース２１１，２３１を介して、コンポーネント提供部１０１からコンポーネント使用部１０２へのコンポーネント情報の受け渡しがなされるものとして説明を行うが、別の方法、例えばＣＤ−ＲＯＭ等の記憶媒体を用いて、人手を介してコンポーネント情報の受け渡しを行うことも可能である。
【００３６】
又、本実施の形態では、コンポーネント提供部１０１の処理プログラム２０３ａやパラメータ２０３ｂがＲＯＭ２０３上にあるものとして、処理対象となる各データの格納領域（２０４ａ〜２０４ｉ）がＲＡＭ上にあるものとして説明を行うが、これらは全て外部記憶装置上に配置することも可能であり、更に、必要に応じて、外部記憶装置からＲＡＭ上にロードし、使用することもできる。又、ＣＰＵのキャッシュメモリ上に配置することも可能である。又、コンポーネント使用部１０２の処理プログラム２２３ａやパラメータ２２３ｂ、処理対象となる各データの格納領域（２２４ａ〜２２４ｌ）についても同様である。
【００３７】
図３は、図２においてコンポーネント提供部１０１の２０３ａで示した処理プログラムの構成要件と、それら構成要件が２０４ａ〜２０４ｈで示した格納領域に格納されるデータとどのような関係にあるかを示すものである。図３において、３０１は入力インターフェイス２０５を介して入力されるデータを扱うコンポーネント生成装置起動部であり、ユーザは、このコンポーネント生成装置起動部３０１によりデータの入力、編集ができるようになっている。
【００３８】
３０４は外部記憶装置内からコンポーネントモデル図面を読み込み、構文解析を行うコンポーネントモデル情報解析部であり、処理プログラムがコンポーネントモデル情報を解釈することを可能にする。３０５はコンポーネントモデル情報解析部３０４より生成された、処理プログラムが解釈することが可能なコンポーネントモデル情報（平文）であり、作成後に図２中の領域２０４ｂにロードされる。
【００３９】
図４を用いて、コンポーネントモデル図面の内容について説明する。
【００４０】
図４はコンポーネントモデル情報の全体構成を規定する図面の一例で、一般にドメイン図と呼ばれている。
【００４１】
図４において、５０１はコンポーネントモデル図面を構成するドメインと呼ばれる集合であり、５０２はドメイン同士の結び付きを表現したものであり、関連と呼ばれる。
【００４２】
図６は、モデルの最小単位であるクラスの静的な構造を示す設計図であり、クラス図と呼ばれる。図６では、「Ｏｖｅｎ」という名前を持つクラスの定義例を示している。図６中の６０１は名前「Ｏｖｅｎ」を表し、６０２はＯｖｅｎクラスが、「ｎａｍｅ」というＳｔｒｉｎｇ型のインスタンス変数を持つことを表現している。
【００４３】
又、６０３は、Ｏｖｅｎクラスが「ｅｖＯｎ」「ｅｖＯｆｆ」「ｅｖｌｅａｎｕｐ」という３つのイベントを受け付けること、更に、「ｎａｍｅ」を参照するための「ｇｅｔＮａｍｅ」という名前のメソッドと、クラスＯｖｅｎのオブジェクトをコピーするための「Ｃｏｐｙ」という名前のメソッドを備えていることを表現している。
【００４４】
クラスの動的振る舞いについては、図７のような状態遷移図面にモデルを定義する。図７はＯｖｅｎクラスの状態遷移図を例として示している。図中の遷移７０１は、Ｏｖｅｎオブジェクトの状態がＯｆｆの時に、Ｏｎｎイベントが発行されると、アクション（外部オブジェクトであるＰＩＯオブジェクトに、ｌｉｇｈｔＯｎイベントを発行）を実行してからＯｎ状態に遷移する、ということを表現している。状態遷移モデルが複雑な場合には、アクション部分だけ別ファイルに定義することも可能である。
【００４５】
図６は、或るクラス中のアクション定義の例を示しており、アクション中に、Ｏｖｅｎオブジェクトに対する操作が記述されている。６０１はＯｖｅｎオブジェクトのインスタンスｏ１を生成することを意味している。６０２はｇｅｔＮａｍｅメソッドを通じて、ｏ１のｎａｍｅを参照することを意味している。６０３はＯｖｅｎオブジェクトのインスタンスｏ１をコピーして、新たにインスタンスｏ２として定義することを意味している。
【００４６】
３０６はコンポーネントモデル情報（平文）を暗号化し、コンポーネントモデル情報（暗号化）３０６を作成するモデル情報暗号化処理部である。コンポーネントモデル図面は、本実施の形態で提案するコンポーネント提供部１０１以外のコンポーネント作成装置との互換性を考慮すると、ＸＭＩ（XML Metadata Interchange）等の汎用フォーマットで保持することが望ましい。
【００４７】
しかし、その場合、構文解析したコンポーネントモデル情報（平文）３０５もＸＭＩ等の汎用フォーマットに準じたデータ構造を持っており、平文の状態ではコンポーネント使用部１０２のユーザーや、或はコンポーネント情報を何らかの手段や経路で入手した第三者にも容易に読解可能であるため、モデル情報暗号化処理部３０６を用いて暗号化してコンポーネントモデル情報（暗号化）３０７を作成し、コンポーネント使用部に提供する。コンポーネント使用部１０２において、コンポーネントモデル情報からソースコード生成を行う際には、コンポーネントモデル情報（暗号化）３０７を復号化し、且つ、その情報をコンポーネント使用部のユーザーに対して隠蔽する必要があるが、この方法については後述する。
【００４８】
図９を用いてモデル情報暗号化処理部３０６の暗号化手順を説明する。
【００４９】
暗号化には、秘密鍵暗号（対象鍵暗号）アルゴリズムを用い、ユーザーが暗号化アルゴリズムを指定することを可能とする。９０１においてコンポーネント提供部１０１のユーザーが、暗号化アルゴリズムと秘密鍵を指定したか否かの判断を行う。判断に必要な情報は、図３のコンポーネント生成装置起動部３０１によって、モデル情報暗号化処理部３０６に伝えられる。
【００５０】
９０１においてＹｅｓの場合、ユーザー指定の暗号化アルゴリズムと秘密鍵を読み出し、Ｎｏの場合は、９０３においてデフォルトの暗号化アルゴリズム（信頼性が高いとされているＲｉｊｎｄａｅｌ等）を読み出して図２中の領域２０４ｆにロードし、９０４においてユーザーに秘密鍵の入力を促す。その際に入力が無かった場合には、乱数等によって鍵を決定しても良い。更に、９０５において、図２中の領域２０４ｂ上に配置されたコンポーネントモデル情報（平文）を暗号化し、コンポーネントモデル情報（暗号化）３０７を作成して、図２中の領域２０４ｈに格納する。
【００５１】
３０８は、外部記憶装置内からコンポーネントプラットフォーム依存情報を読み込み、構文解析を行うコンポーネントプラットフォーム依存解析部であり、コンポーネントプラットフォーム依存情報の内容を分割して、コンポーネントプラットフォーム依存情報（公開）３０９と、コンポーネントプラットフォーム依存情報（非公開、平文）３１０を作成して、図２中の領域２０４ｄ，２０４ｅにそれぞれ格納する。コンポーネントプラットフォーム依存情報（公開）３０９に含まれる内容は、コンポーネントの動作するＯＳやＣＰＵやプログラミング言語やフレームワークといったものであり、後述するように、コンポーネント使用部によって参照・カスタマイズが可能な情報である。
【００５２】
一方、コンポーネントプラットフォーム依存情報（非公開、平文）３１０に含まれる内容は、コンポーネントのタスク数、タスク優先度、メモリマップ、各種パラメータ等、設計モデルに関連するものであり、コンポーネント使用部に対して隠蔽する情報である。
【００５３】
コンポーネントプラットフォーム依存情報暗号化処理部３１１は、上記コンポーネントプラットフォーム依存情報（非公開、平文）３１０を暗号化し、コンポーネントプラットフォーム依存情報（非公開、暗号化）３１２を作成して、図２中の領域２０４ｉに格納する。コンポーネントプラットフォーム依存情報暗号化処理部３１１の暗号化手順を図１０に示す。暗号化手順は図９に示したものと同様である。
【００５４】
コンポーネントＩ／Ｆ情報解析部３１３は、外部記憶装置内からコンポーネントが公開するインターフェース情報を読み込み、構文解析を行うコンポーネントプラットフォーム依存解析部であり、コンポーネントＩ／Ｆ情報３１４を作成して、図２中の領域２０４ａに格納する。コンポーネントＩ／Ｆ情報３１４は、コンポーネントが外部に提供するインターフェースのみが含まれる。例えば、図６中のクラス情報で、６０３のＣｏｐｙ操作は、公開ＡＰＩであるためコンポーネントＩ／Ｆ情報３１４に含まれるが、６０２のｎａｍｅ属性は、ｐｒｉｖａｔｅ属性であるために、コンポーネントＩ／Ｆ情報３１４に含まれない。
【００５５】
コンポーネントソースコード生成プログラムは、コンポーネントモデル情報（平文）、コンポーネントプラットフォーム依存情報（非公開、平文）、コンポーネントプラットフォーム依存情報（公開）から、コンポーネントソースコードを生成するプログラムであり、従来のＭＤＡツールでモデルコンパイラとして知られているものである。コンポーネントソースコード生成プログラム作成部３０２は、暗号化された設計モデルを復号化するアルゴリズムである復号化アルゴリズム３１５と、コンポーネントソースコード生成プログラム３１６の機能をマージした、コンポーネントソースコード生成プログラム３０３を作成して、図２中の領域２０４ｇに格納する。
【００５６】
コンポーネントソースコード生成プログラム作成部３０２の作成手順を図１１に示す。１１０１においてコンポーネント提供部１０１のユーザーが、復号化アルゴリズムと秘密鍵を指定したか否かの判断を行う。判断に必要な情報は、図３のコンポーネント生成装置起動部３０１によって、コンポーネントソースコード生成プログラム作成部３０２に伝えられる。
【００５７】
１１０１においてＹｅｓの場合、ユーザー指定の復号化アルゴリズムと秘密鍵を読み出し、Ｎｏの場合は、１１０３においてデフォルトの復号化アルゴリズムを読み出して図２中の領域２０４ｆに配置し、１１０４においてユーザーに秘密鍵の入力を促す。その際に入力が無かった場合には、乱数等によって鍵を決定しても良い。
【００５８】
１１０５において、外部記憶装置内からコンポーネントソースコード生成プログラム３１６を読み込み、図２中の領域２０４上に配置する。更に、１１０６において、２０４ｃ上に配置されたコンポーネントソースコード生成プログラム３１６と、２０４ｆ上に配置された復号化アルゴリズムと、秘密鍵をマージし、コンポーネントソースコード生成プログラム３０３を作成して、図２中の領域２０４ｇに格納する。
【００５９】
以上の各処理によって、コンポーネントＩ／Ｆ情報３１４、コンポーネントモデル情報（暗号化）３０７、コンポーネントソースコード生成プログラム３０３、コンポーネントプラットフォーム依存情報（公開）３０９、コンポーネントプラットフォーム依存情報（非公開、暗号化）３１２が、図２中の領域２０４ａ，２０４ｈ，２０４ｇ，２０４ｄ，２０４ｉ上にそれぞれ作成される。これらは適当なやり取りによって、コンポーネント提供部１０１からコンポーネント使用部１０２に提供され、領域２２４ｇ〜２２４ｋに配置されるが、そのやり取りは既存の技術を用いて容易に実現できるため、本実施の形態では説明を割愛する。
【００６０】
図４は、図１においてコンポーネント提供部１０２の２２３ａで示した処理プログラムの構成要件と、それら構成要件が２２４ａ〜２２４ｉで示した格納領域に格納されるデータとどのような関係にあるかを示すものである。図４において、４０１は入力インターフェイス２２５を介して入力されるデータを扱うプロジェクト生成装置起動部であり、ユーザーは、このプロジェクト生成装置起動部４０１によりデータの入力、編集ができるようになっている。
【００６１】
コンポーネントモデル情報（暗号化）４０２、コンポーネントソースコード生成プログラム４０６、コンポーネントプラットフォーム依存情報（公開）４０５、コンポーネントプラットフォーム依存情報（非公開、暗号化）４０３は、既に述べた方法によってコンポーネント提供部１０１によって作成され、コンポーネント使用部１０２内の領域２２４ｈ〜２２４ｋに格納されており、コンポーネントソースコード生成部４０４は、これらを入力としてコンポーネントソースコード４０７を作成し、領域２２４１に格納する。コンポーネントソースコード生成部４０４は、コンポーネントソースコード４０７の作成をコンポーネントソースコード生成プログラム４０６に委譲し、自らはコンポーネントソースコード４０７を作成するロジックを持たない。つまり、コンポーネント使用部１０２内の処理プログラムから見ると、コンポーネントソースコード４０７の作成プロセスはブラックボックスであり、コンポーネントモデル情報を解析する知識を持っているのは、コンポーネント自体に含まれるコンポーネントソースコード生成プログラム４０６だけである（コンポーネント提供部のユーザーは除く）。従って、コンポーネント使用部１０２のユーザーがコンポーネントモデル情報を直接参照することはできず、コンポーネントモデル情報の隠蔽が実現される。
【００６２】
図１２に、コンポーネントソースコード生成プログラム４０６のソースコード作成手順を示す。
【００６３】
１２０１において、復号化アルゴリズム、秘密鍵、コンポーネントソースコード生成プログラムをメモリ上に配置する。これらはコンポーネントソースコード生成プログラム４０６自身に含まれる。１２０２，１２０３において、復号化アルゴリズムと秘密鍵を用いて、コンポーネントモデル情報（暗号化）４０２、コンポーネントプラットフォーム依存情報（非公開、暗号化）４０３を復号化し、それぞれメモリ上に配置する。
【００６４】
１２０４において、コンポーネントソースコード生成プログラムを用いて、復号化されたコンポーネントモデル情報、コンポーネントプラットフォーム依存情報（非公開）、コンポーネントプラットフォーム依存情報（公開）４０５、コンポーネントプラットフォーム依存情報（公開）４０５からコンポーネントソースコード４０７を作成し、領域２２４１に格納する。
【００６５】
プロジェクトモデル情報解析部４０８は、外部記憶装置からプロジェクトのモデル情報を読み出し、構文解析してプロジェクトモデル情報４０９を作成し、領域２２４ａに格納する。
【００６６】
プラットフォーム依存解析部４１０は、外部記憶装置からプロジェクトのプラットフォーム依存情報を読み出し、構文解析してプロジェクトプラットフォーム依存情報４１１を作成し、領域２２４ｂに格納する。
【００６７】
プロジェクトソースコード生成部４１２は、領域２２４ｊ，２２４ａ，２２４ｂ，２２４ｇにそれぞれ格納されているコンポーネントプラットフォーム依存情報（公開）４０５、プロジェクトモデル情報４０９、プロジェクトプラットフォーム依存情報４１１、コンポーネントＩ／Ｆ情報４１８からプロジェクトソースコード４１３を作成し、領域２２４ｃに格納する。プロジェクトソースコード生成部４１２は、従来のＭＤＡツールでモデルコンパイラとして知られているものである。
【００６８】
プロジェクトファイル生成部４１４は、領域２２４ｊ，２２４ａ，２２４ｂ，２２４ｇにそれぞれ格納されているコンポーネントプラットフォーム依存情報（公開）４０５、プロジェクトモデル情報４０９、プロジェクトプラットフォーム依存情報４１１、コンポーネントＩ／Ｆ情報４１８からプロジェクトファイル４１５を作成し、領域２２４ｄに格納する。プロジェクトファイル４１５は、従来のソースコードベースの開発で、Ｍａｋｅｆｉｌｅとして知られているものである。
【００６９】
コード・コンパイラ４１６は、領域２２４ｌ，２２４ｃ，２２４ｄ，２２４ｅにそれぞれ格納されている、コンポーネントソースコード４０７、プロジェクトソースコード４１３、プロジェクトファイル４１５、ライブラリ４１９から実行可能形式４１７を作成して、領域２２４ｆに格納する。
【００７０】
以上のような構成によって、コンポーネント提供部１０１を用いてコンポーネントを作成し、コンポーネント使用部１０２に提供することにより、コンポーネント開発者は、コンポーネントの設計モデルを隠蔽しつつ、モデルからのソースコード生成機能を提供することができる。又、コンポーネント使用部１０２を用いて、コンポーネント提供部１０１より提供されるコンポーネントを、プロジェクトに組み込むことにより、コンポーネントの設計モデルの内容を参照できなくても、自プロジェクトの実行可能形式を作成することが可能になる。
【００７１】
尚、本実施の形態の説明において、コンポーネントプラットフォーム依存情報（非公開、平文）３１０に含まれる、コンポーネントのタスク数、タスク優先度、メモリマップ、各種パラメータ等、設計モデルに関連する情報は、コンポーネント使用部に対して隠蔽すると述べたが、これらの設計パラメータの一部を、コンポーネントのユーザーがカスタマイズすることを許可する場合には、該パラメータをコンポーネントプラットフォーム依存情報（公開）３０９に含めることも可能である。その場合には、コンポーネントプラットフォーム依存解析部３０８は、コンポーネント生成装置起動部３０１を通じて、コンポーネントプラットフォーム依存情報（公開）３０９とコンポーネントプラットフォーム依存情報（非公開、平文）３１０にそれぞれ含まれる情報の切り分けを、コンポーネント提供部の使用者自身に選択させることも可能である。
【００７２】
＜実施の形態２＞
本実施の形態では、実施の形態１で提供するシステムの機能に加えて、コンポーネントのソースコードを生成する際に、プロジェクトのモデル情報とプロジェクトプラットフォーム依存情報を考慮し、より最適化されたソースコードを生成することを可能にする。本実施の形態は、実施の形態１と同様に図２の構成によって実現されるが、２０３ａ上に配置される処理プログラムの構成が図１３のようになる。実施の形態１の処理プログラム構成を表した図４との差分は、コンポーネントソースコード生成部が、プロジェクトプラットフォーム依存情報と、プロジェクトモデル情報を参照している（１３０１，１３０２）点である。実施の形態１で述べたように、コンポーネントソースコード生成部は、コンポーネントソースコードの作成をコンポーネントソースコード生成プログラムに委譲し、コンポーネントソースコード生成プログラムがプロジェクトプラットフォーム依存情報と、プロジェクトモデル情報を参照する。
【００７３】
本実施の形態における、コンポーネントソースコード生成プログラムの基本的な処理手順を図１４に示す。図１２に表されている実施の形態１における処理手順と異なるのは、１４０４において、ソースコード生成ロジックの最適化を行い、１４０５で最適化されたロジックに従ってソースコード生成を行う点である。プロジェクトプラットフォーム依存情報とプロジェクトモデル情報を用いて、ソースコード生成ロジックの最適化を行う方法は多く提案されているが、ここでは一例として、システム初期化時間の短縮を実現する方法について、図１５を用いて説明する。
【００７４】
図１５中の１５０１において、システムの初期化時以外に、コンポーネントのインスタンス化が行われるかどうか調べる。これはプロジェクトモデル情報をパースすることによって、容易に実現できる。１５０２において、プラットフォームモデル情報から、初期化時に静的に生成されるコンポーネントのインスタンス数を抽出する。具体的には、プラットフォームモデル情報から、システム初期化時に呼び出すように設定されている処理一覧の中から、コンポーネントのインスタンス化が行われている回数を数える。
【００７５】
１５０３において、該インスタンス数が、特定の閾値以下かどうか判断を行い、１５０３においてＹｅｓであるならば、１５０４において、コンポーネントのインスタンスを、静的メモリ領域に割り当てるソースコードを生成するロジックに変更する。このような最適化により、コンポーネントインスタンスの生成時に、ヒープ領域から動的メモリ獲得を行う必要がなくなる。コンポーネントのインスタンス数が多い場合には、この最適化の効果は大きく、システム初期化時間を短縮することができる。
【００７６】
以上のような構成により、コンポーネントのソースコードを生成する際に、プロジェクトのモデル情報とプロジェクトプラットフォーム依存情報を考慮し、より最適化されたソースコードを生成することが可能になる。本実施の形態では、ソースコード生成ロジックの最適化の一例として、システム初期化時間の短縮を説明したが、プロジェクトモデル情報やプロジェクトプラットフォーム依存情報のパース方法や、ソースコード生成ロジックは、これに限定するものではない。
【００７７】
＜実施の形態３＞
本実施の形態では、実施の形態１で提供するシステムの機能に加えて、コンポーネント使用部１０２内での、コンポーネントモデル情報とコンポーネントプラットフォーム依存情報（非公開）の隠蔽をより強固にする方法について述べる。
【００７８】
実施の形態１で述べた構成は、コンポーネントモデル情報を通常の使用者に対して隠蔽する目的には十分である。しかし、悪意のあるユーザーが、コンポーネント使用部１０２のＲＡＭ２２４上のデータを監視した場合、図１２中の１２０３，１２０４において復号化されたコンポーネントモデル情報が、ユーザーに漏洩してしまう。既に説明したように、コンポーネントモデル情報（平文）はＸＭＩ等の汎用フォーマットに準じたデータ構造を持っており、容易に読解可能である。
【００７９】
本実施の形態では、コンポーネント使用部１０２のＲＡＭ２２４上に、コンポーネントモデル情報を符号化した形式で配置し、コンポーネント使用部１０２内では常に符号化形式でコンポーネントモデルを扱うことによって、上記のような悪意のあるユーザーに対しても、コンポーネント設計情報とコンポーネントプラットフォーム依存情報（非公開）を隠蔽することが可能になる。
【００８０】
本実施の形態は、実施の形態１と同様に図２の構成によって実現されるが、２０３ａ上に配置される処理プログラムの構成が図１７のようになる。図１７中、実施の形態１と異なる部分は、以下の２点である。
【００８１】
第１に、モデル情報暗号化処理部１７０６とコンポーネントプラットフォーム依存情報暗号化処理部１７１１が、符号化アルゴリズムと符号化キー１７１７を参照していることである。モデル情報暗号化処理部１７０６の処理手順を図１８に示す。
【００８２】
１８０１〜１８０４は、実施の形態１の処理手順９０１〜９０４と同じである。１８０５において、ユーザーが符号化アルゴリズムと符号化キーを指定したか判定する。判断に必要な情報は、図１７のコンポーネント生成装置起動部１７０１によって、モデル情報暗号化処理部１７０６に伝えられる。１８０５においてＹｅｓの場合、ユーザー指定の符号化アルゴリズムと符号化キーを読み出し、Ｎｏの場合は、１８０７においてデフォルトの符号化アルゴリズムを読み出し、１８０８においてユーザーに符号化キーの入力を促す。その際に入力が無かった場合には、デフォルトの符号化キーを用いても良い。符号化アルゴリズムには、ハフマン符号化を用いる。符号化キーは符号化規則（ハフマンテーブル）に相当する。
【００８３】
１８０９において、コンポーネントモデル情報（平文）を符号化し、１８１０において、符号化したコンポーネントモデル情報を暗号化し、コンポーネントモデル情報（暗号化）１７０７を作成する。コンポーネントプラットフォーム依存情報暗号化処理部１７１１の処理手順も、図１１に表されている実施の形態１の処理手順に符号化処理が加わるという点で、モデル情報暗号化処理部１７０６と同様である。
【００８４】
第２に、コンポーネントソースコード生成プログラムが、符号化されたコンポーネントモデル情報、符号化されたコンポーネントプラットフォーム依存情報（非公開）、コンポーネントプラットフォーム依存情報（公開）、符号化アルゴリズムと符号化キーから、コンポーネントソースコードを生成することである。コンポーネントソースコード生成プログラムは、ＸＭＩ等の汎用フォーマットの代わりに、与えられた符号化アルゴリズムと符号化キー１７１７に従って、符号化されたコンポーネントモデル情報、符号化されたコンポーネントプラットフォーム依存情報（非公開）を解釈するため、コンポーネント使用部１０２内のＲＡＭ２０４には、コンポーネントモデル情報が汎用フォーマットの状態で格納されることはない。
【００８５】
以上のような構成によって、コンポーネント使用部１０２内での、コンポーネントモデル情報とコンポーネントプラットフォーム依存情報（非公開）の隠蔽をより強固にすることができる。
【図面の簡単な説明】
【００８６】
【図１】本発明の実施の形態に係るコンポーネント装置の構成ブロック図である。
【図２】本発明の実施の形態に係るコンポーネント装置の構成ブロック図である。
【図３】本発明の実施の形態に係るコンポーネント提供部のデータフロー図である。
【図４】本発明の実施の形態に係るコンポーネント使用部のデータフロー図である。
【図５】コンポーネントモデル情報のうちドメイン図について説明した図である。
【図６】コンポーネントモデル情報のうちクラス図について説明した図である。
【図７】コンポーネントモデル情報のうち状態遷移図について説明した図である。
【図８】コンポーネントモデル情報のうちアクション記述について説明した図である。
【図９】本発明の実施の形態におけるモデル情報暗号化処理部に関するフローチャートである。
【図１０】本発明の実施の形態におけるコンポーネントプラットフォーム依存情報暗号化処理部に関するフローチャートである。
【図１１】本発明の実施の形態におけるコンポーネントソースコード生成プログラム作成部について説明したフローチャートである。
【図１２】本発明の実施の形態におけるコンポーネントソースコード生成プログラムについて説明したフローチャートである。
【図１３】本発明の実施の形態に係るコンポーネント使用部のデータフロー図である。
【図１４】本発明の実施の形態におけるコンポーネントソースコード生成プログラムについて説明したフローチャートである。
【図１５】本発明の実施の形態におけるコンポーネントソースコード生成プログラムについて説明したフローチャートである。
【図１６】従来のＭＤＡツールのシステム初期化記述ファイルの例を示した図である。
【図１７】本発明の実施の形態に係るコンポーネント使用部のデータフロー図である。
【図１８】本発明の実施の形態におけるモデル情報暗号化処理部に関するフローチャートである。
【符号の説明】
【００８７】
２０１    ＣＰＵ
２０２    バス
２０３    ＲＯＭ
２０３ａ  処理プログラム
２０３ｂ  パラメータ
２０４    ＲＡＭ
２０５    入力インターフェース
２０６    キーボード、ボタン、マウス、ダイアル
２０７    出力インターフェース
２０８ａ  ＣＲＴ、ＬＣＤ
２０８ｂ  プリンタ、プロッタ
２０９    外部記憶装置インターフェース
２１０    ＨＤ、ＦＤ、ＣＤ−ＲＯＭ、ＭＤ，ＣＦ、・・・（ファイル）
２２１    ＣＰＵ
２２２    バス
２２３    ＲＯＭ
２２３ａ  処理プログラム
２２３ｂ  パラメータ
２２４    ＲＡＭ
２２５    入力インターフェース
２２６    キーボード、ボタン、マウス、ダイアル
２２７    出力インターフェース
２２８ａ  ＣＲＴ、ＬＣＤ
２２８ｂ  プリンタ、プロッタ
２２９    外部記憶装置インターフェース
２３０    ＨＤ、ＦＤ、ＣＤ−ＲＯＭ、ＭＤ，ＣＦ（ファイル）
３０１    コンポーネント生成装置起動部
３０２    コンポーネントソースコード生成プログラム作成部
３０３    コンポーネントソースコード生成プログラム
３０４    コンポーネントモデル情報解析部
３０５    コンポーネントモデル情報（平文）
３０６    モデル情報暗号化処理部
３０７    コンポーネントモデル情報（暗号化）
３０８    コンポーネントプラットフォーム依存解析部
３０９    コンポーネントプラットフォーム依存情報（公開）
３１０    コンポーネントプラットフォーム依存情報（非公開、平文）
３１１    コンポーネントプラットフォーム依存情報暗号化処理部
３１２    コンポーネントプラットフォーム依存情報（非公開、暗号化）
３１３    コンポーネントＩ／Ｆ情報解析部
３１４    コンポーネントＩ／Ｆ情報
３１５    暗号化／復号化アルゴリズム
３１６    コンポーネントソースコード生成プログラム
４０１    プロジェクト生成装置起動部
４０２    コンポーネントモデル情報（暗号化）
４０３    コンポーネントプラットフォーム依存情報（非公開、暗号化）
４０４    コンポーネントソースコード生成部
４０５    コンポーネントプラットフォーム依存情報（公開）
４０６    コンポーネントソースコード生成プログラム
４０７    コンポーネントソースコード
４０８    プロジェクトモデル情報解析部
４０９    プロジェクトモデル情報
４１０    プロジェクトプラットフォーム依存解析部
４１１    プロジェクトプラットフォーム依存情報
４１２    プロジェクトソースコード生成部
４１３    プロジェクトソースコード
４１４    プロジェクトファイル生成部
４１５    プロジェクトファイル
４１６    コード・コンパイラ
４１７    実行可能形式
４１８    コンポーネントＩ／Ｆ情報
４１９    ライブラリ
【図１】
2006268474.tif 000003
【図２】
2006268474.tif 000004
【図３】
2006268474.tif 000005
【図４】
2006268474.tif 000006
【図５】
2006268474.tif 000007
【図６】
2006268474.tif 000008
【図７】
2006268474.tif 000009
【図８】
2006268474.tif 000010
【図９】
2006268474.tif 000011
【図１０】
2006268474.tif 000012
【図１１】
2006268474.tif 000013
【図１２】
2006268474.tif 000014
【図１３】
2006268474.tif 000015
【図１４】
2006268474.tif 000016
【図１５】
2006268474.tif 000017
【図１６】
2006268474.tif 000018
【図１７】
2006268474.tif 000019
【図１８】
2006268474.tif 000020