(57)【要約】【課題】コアアセットに含まれるソースコード形式又はバイナリ形式の各ファイルにソフトウェア保護を施す。【解決手段】実施形態のコアアセット管理プログラムは、コアアセット管理装置を、各手段、として機能させる。抽出手段は、入力されたコアアセット内の各ファイルの種類を分類し、バイナリ形式又はソースコード形式を示す各ファイルを抽出する。保護方式決定手段は、前記抽出された各ファイルのうち、ソースコードを含むか生成可能な各ファイルには、当該ソースコードのソフトウェア保護方式を決定し、残りは、バイナリデータのソフトウェア保護方式を決定する。ソフトウェア保護手段は、前記決定に基づいてソフトウェア保護処理を実行する。書込手段は、前記ソフトウェア保護処理が実行された各ファイルと、前記コアアセットから前記抽出されなかった各ファイルとを記憶手段に書込む。【選択図】図１
2013200813.tif 000002
【特許請求の範囲】
【請求項１】
複数のファイルを含むコアアセットが入力されると、前記コアアセット内の各ファイルを記憶手段に書込むコアアセット管理装置に用いられるコアアセット管理プログラムであって、
前記コアアセット管理装置を、
前記入力されたコアアセット内の各ファイルの種類を分類し、分類結果がバイナリ形式又はソースコード形式を示す各ファイルを当該コアアセットから抽出する抽出手段、
前記抽出された各ファイルのうち、ソースコードを含む各ファイル又は逆コンパイルによりソースコードを生成可能な各ファイルについては、当該ソースコードを保護するソフトウェア保護方式を決定し、残りの各ファイルについては、バイナリデータを保護するソフトウェア保護方式を決定する保護方式決定手段、
前記決定されたソフトウェア保護方式に基づいて各ファイルにソフトウェア保護処理を実行するソフトウェア保護手段、
前記ソフトウェア保護処理が実行された各ファイルと、前記入力されたコアアセットから前記抽出手段により抽出されなかった各ファイルとを前記記憶手段に書込む書込手段、
として機能させるためのコアアセット管理プログラム。
【請求項２】
請求項１に記載のコアアセット管理プログラムにおいて、
前記コアアセット管理装置を、
前記ソフトウェア保護方式を示すツール名と、ファイルの対象言語と、バイナリ形式又はソースコード形式を示すファイル形式とを関連付けて定義した定義手段、
として更に機能させ、
前記保護方式決定手段は、前記抽出された各ファイルの対象言語及びファイル形式に基づいて前記定義手段を参照することにより、前記ツール名をもつソフトウェア保護方式を決定するコアアセット管理管理プログラム。
【請求項３】
請求項２に記載のコアアセット管理プログラムにおいて、
前記コアアセット管理装置を、
前記ソフトウェア保護処理の処理速度及び前記ソフトウェア保護方式のセキュリティ保護レベルの入力を受け付ける受付手段、
として更に機能させ、
前記定義手段は、前記ツール名と、前記対象言語と、前記ファイル形式と、前記ソフトウェア保護処理の処理速度と、前記ソフトウェア保護方式のセキュリティ保護レベルとを関連付けて定義し、
前記保護方式決定手段は、前記入力を受け付けた処理速度及びセキュリティ保護レベルと、前記抽出された各ファイルの対象言語及びファイル形式とに基づいて前記定義手段を参照することにより、前記ツール名をもつソフトウェア保護方式を決定するコアアセット管理プログラム。
【請求項４】
入力された複数のファイルを含むコアアセットを記憶手段に書込可能なコアアセット管理装置であって、
前記入力されたコアアセット内の各ファイルの種類を分類し、分類結果がバイナリ形式又はソースコード形式を示す各ファイルを当該コアアセットから抽出する抽出手段と、
前記抽出された各ファイルのうち、ソースコードを含む各ファイル又は逆コンパイルによりソースコードを生成可能な各ファイルについては、当該ソースコードを保護するソフトウェア保護方式を決定し、残りの各ファイルについては、バイナリデータを保護するソフトウェア保護方式を決定する保護方式決定手段と、
前記決定されたソフトウェア保護方式に基づいて各ファイルにソフトウェア保護処理を実行するソフトウェア保護手段と、
前記ソフトウェア保護処理が実行された各ファイルと、前記入力されたコアアセットから前記抽出手段により抽出されなかった各ファイルとを前記記憶手段に書込む書込手段と
を備えたことを特徴とするコアアセット管理装置。
【請求項５】
記憶手段に記憶された複数のファイルを含むコアアセットを前記記憶手段から読出可能なコアアセット管理装置に用いられるコアアセット管理プログラムであって、
前記コアアセット管理装置を、
前記記憶手段から読み出したコアアセット内の各ファイルの種類を分類し、分類結果がバイナリ形式又はソースコード形式を示す各ファイルを当該コアアセットから抽出する抽出手段、
前記抽出された各ファイルのうち、ソースコードを含む各ファイル又は逆コンパイルによりソースコードを生成可能な各ファイルについては、当該ソースコードを保護するソフトウェア保護方式を決定し、残りの各ファイルについては、バイナリデータを保護するソフトウェア保護方式を決定する保護方式決定手段、
前記決定されたソフトウェア保護方式に基づいて各ファイルにソフトウェア保護処理を実行するソフトウェア保護手段、
前記ソフトウェア保護処理が実行された各ファイルと、前記読み出されたコアアセット内の各ファイルのうちの前記抽出手段により抽出されなかった各ファイルとを出力する出力手段、
として機能させるためのコアアセット管理プログラム。
【請求項６】
請求項５に記載のコアアセット管理プログラムにおいて、
前記コアアセット管理装置を、
前記ソフトウェア保護方式を示すツール名と、ファイルの対象言語と、バイナリ形式又はソースコード形式を示すファイル形式とを関連付けて定義した定義手段、
として更に機能させ、
前記保護方式決定手段は、前記抽出された各ファイルの対象言語及びファイル形式に基づいて前記定義手段を参照することにより、前記ツール名をもつソフトウェア保護方式を決定するコアアセット管理管理プログラム。
【請求項７】
請求項６に記載のコアアセット管理プログラムにおいて、
前記コアアセット管理装置を、
前記ソフトウェア保護処理の処理速度及び前記ソフトウェア保護方式のセキュリティ保護レベルの入力を受け付ける第１受付手段、
前記各ファイルのプラットフォームの入力を受け付ける第２受付手段、
として更に機能させ、
前記定義手段は、前記ツール名と、前記対象言語と、前記ファイル形式と、前記ソフトウェア保護処理の処理速度と、前記ソフトウェア保護方式のセキュリティ保護レベルと、前記各ファイルのプラットフォームとを関連付けて定義し、
前記保護方式決定手段は、前記入力を受け付けた処理速度、前記セキュリティ保護レベル及び前記プラットフォームと、前記抽出された各ファイルの対象言語及びファイル形式とに基づいて前記定義手段を参照することにより、前記ツール名をもつソフトウェア保護方式を決定するコアアセット管理プログラム。
【請求項８】
記憶手段に記憶された複数のファイルを含むコアアセットを前記記憶手段から読出可能なコアアセット管理装置であって、
前記記憶手段から読み出したコアアセット内の各ファイルの種類を分類し、分類結果がバイナリ形式又はソースコード形式を示す各ファイルを当該コアアセットから抽出する抽出手段と、
前記抽出された各ファイルのうち、ソースコードを含む各ファイル又は逆コンパイルによりソースコードを生成可能な各ファイルについては、当該ソースコードを保護するソフトウェア保護方式を決定し、残りの各ファイルについては、バイナリデータを保護するソフトウェア保護方式を決定する保護方式決定手段と、
前記決定されたソフトウェア保護方式に基づいて各ファイルにソフトウェア保護処理を実行するソフトウェア保護手段と、
前記ソフトウェア保護処理が実行された各ファイルと、前記読み出されたコアアセット内の各ファイルのうちの前記抽出手段により抽出されなかった各ファイルとを出力する出力手段と
を備えたことを特徴とするコアアセット管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、コアアセット管理プログラム及び装置に関する。
【背景技術】
【０００２】
近年、ソフトウェア開発で作成されたメタモデル、モデル、アーキテクチャ、ソフトウェアコンポーネント、テストケース、各種ドキュメント、ツールなどのソフトウェア資産（以下、コアアセットという）を利用してシステム開発を行う場合がある。この種のシステム開発では、開発者がリポジトリやデータベースなどに登録されたコアアセットを取り出し、必要に応じてコアアセット内のドキュメントやソースコードを変更して再利用している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−６０２６８号公報
【特許文献２】特開２００８−１９７９６３号公報
【特許文献３】特開２００６−１５５５８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、以上のようなコアアセットを利用したシステム開発では、コアアセット内の秘密情報を再利用する時には、プラットフォームなど必要に応じて再度、秘密情報にソフトウェア保護を施す必要がある。
【０００５】
例えば、コアアセット（ソースコード）を利用したシステム開発では、再利用されたソフトウェアに対する攻撃（逆コンパイル、デバッガなどを用いたリバースエンジニアリング）をあまり考慮していない。
【０００６】
そのため、ソースコード（又はバイナリデータ）等の秘密情報を利用するためには、予めシステム開発者が秘密情報にソフトウェア保護を施すか、再利用する開発者が秘密情報にソフトウェア保護を施す必要がある。
【０００７】
しかしながら、ソフトウェア保護を施す方式は技術的に難易度が高く、既存の技術などを用いても、保護方式を決定することが困難である。従って、コアアセットに含まれるソースコード形式又はバイナリ形式の各ファイル（秘密情報）にソフトウェア保護を施すことが困難となっている。
【０００８】
本発明が解決しようとする課題は、コアアセットに含まれるソースコード形式又はバイナリ形式の各ファイルにソフトウェア保護を施すことが可能なコアアセット管理プログラム及び装置を提供することである。
【課題を解決するための手段】
【０００９】
実施形態のコアアセット管理プログラムは、複数のファイルを含むコアアセットが入力されると、前記コアアセット内の各ファイルを記憶手段に書込むコアアセット管理装置に用いられる。
【００１０】
前記コアアセット管理プログラムは、前記コアアセット管理装置を、抽出手段、保護方式決定手段、ソフトウェア保護手段、書込手段、として機能させる。
【００１１】
前記抽出手段は、前記入力されたコアアセット内の各ファイルの種類を分類し、分類結果がバイナリ形式又はソースコード形式を示す各ファイルを当該コアアセットから抽出する。
【００１２】
前記保護方式決定手段は、前記抽出された各ファイルのうち、ソースコードを含む各ファイル又は逆コンパイルによりソースコードを生成可能な各ファイルについては、当該ソースコードを保護するソフトウェア保護方式を決定し、残りの各ファイルについては、バイナリデータを保護するソフトウェア保護方式を決定する。
【００１３】
前記ソフトウェア保護手段は、前記決定されたソフトウェア保護方式に基づいて各ファイルにソフトウェア保護処理を実行する。
【００１４】
前記書込手段は、前記ソフトウェア保護処理が実行された各ファイルと、前記入力されたコアアセットから前記抽出手段により抽出されなかった各ファイルとを前記記憶手段に書込む。
【図面の簡単な説明】
【００１５】
【図１】第１の実施形態に係るコアアセット管理装置の構成を示す模式図である。
【図２】同実施形態におけるマッピングテーブルを説明するための模式図である。
【図３】同実施形態におけるマッピングテーブルの具体例を示す模式図である。
【図４】同実施形態における動作を説明するためのフローチャートである。
【図５】第２の実施形態に係るコアアセット管理装置の構成を示す模式図である。
【発明を実施するための形態】
【００１６】
以下、各実施形態について図面を用いて説明するが、その前に各実施形態の概要を述べる。各実施形態のコアアセット管理装置は、ハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又は記憶媒体からコアアセット管理装置となるコンピュータにインストールされ、コアアセット管理装置の機能を実現させるためのプログラムが用いられる。
【００１７】
第１の実施形態は、登録時保護型のコアアセット管理装置を用いる。登録時保護型のコアアセット管理装置では、ソフトウェア保護を施していないコアアセットが入力されると、当該コアアセットのソフトウェアの形態を自動的に解析し、ソフトウェア保護を施したコアアセットをリポジトリやデータベース等の記憶手段へ登録する。
【００１８】
第２の実施形態は、出力時保護型のコアアセット管理装置を用いる。出力時保護型のコアアセット管理装置では、ソフトウェア保護を施していないコアアセットをリポジトリやデータベース等の記憶手段から読み出すと、当該コアアセットのソフトウェアの形態を自動的に解析し、ソフトウェア保護を施したコアアセットを出力する。
【００１９】
以上が各実施形態の概要である。続いて、各実施形態を詳細に説明する。
【００２０】
＜第１の実施形態＞
図１は第１の実施形態に係るコアアセット管理装置の構成を示す模式図である。このコアアセット管理装置１０は、入力された複数のファイルを含むコアアセットをリポジトリ（記憶手段）１５に書込可能な装置であって、コアアセットの書込前には入力データ１及び非機能要件２の入力を受け付け、コアアセットの読出時には出力データ３を出力する。具体的には、コアアセット管理装置１０は、ソフトウェア抽出部１１、ソフトウェア保護方式決定部１２、マッピングテーブル１３、ソフトウェア保護部１４及びリポジトリ１５を備えている。
【００２１】
ここで、入力データ１にはソフトウェアコンポーネント（バイナリ形式のデータファイル）やソースコードが含まれる。またリポジトリ１５にはプログラム以外のドキュメントなども登録することがあるため、入力データ１にはソフトウェア以外の資産も含まれる場合がある。
【００２２】
ソフトウェア抽出部１１は、入力されたコアアセット内の各ファイルの種類を分類し、分類結果がバイナリ形式又はソースコード形式を示す各ファイルを当該コアアセットから抽出する抽出機能をもっている。
【００２３】
ソフトウェア保護方式決定部１２は、ソフトウェア抽出部１１により抽出された各ファイルのうち、ソースコードを含む各ファイル又は逆コンパイルによりソースコードを生成可能な各ファイルについては、当該ソースコードを保護するソフトウェア保護方式を決定し、残りの各ファイルについては、バイナリデータを保護するソフトウェア保護方式を決定する保護方式決定機能をもっている。
【００２４】
ここで、ソフトウェア保護方式決定部１２は、マッピングテーブル１３を用いてもよく、マッピングテーブル１３の内容を予め保持する場合にはマッピングテーブル１３を用いなくてもよい。マッピングテーブル１３は、図２に概要を示し、図３に具体例を示すように、ソフトウェア保護方式を示すツール名と、ファイルの対象言語（プログラミング言語）と、バイナリ形式又はソースコード形式を示すファイル形式とを関連付けて定義したテーブルである。対象言語としては、例えば、Ｃ言語、Java（登録商標）、Ｃ＃、アセンブラ等がある。形態（ファイル形式）としては、図２に概要を示すように、バイナリ形式又はソースコード形式を示す形態が使用可能であり、具体的には図３に示すように、*.exe、*.dll、*.c、*.java、*.a等の拡張子の形態が使用可能となっている。プラットフォームとしては、図２に概要を示すように、Windows（登録商標）、Linux（登録商標）、Solaris（登録商標）等のプラットフォームが使用可能となっており、具体的には図３に示すように、Windows XP、Ubuntu 10、Windows Server 2008、Windows 7、Solaris 10等のプラットフォーム（ＯＳ）が使用可能となっている。なお、図２及び図３中、ソフトウェア保護処理の処理速度、セキュリティ強度及びプラットフォームは、任意の付加的事項であり、省略してもよい。
【００２５】
マッピングテーブル１３を用いる場合、ソフトウェア保護方式決定部１２は、ソフトウェア抽出部１１により抽出された各ファイルの対象言語及びファイル形式に基づいてマッピングテーブル１３を参照することにより、ツール名をもつソフトウェア保護方式を決定する。
【００２６】
また、ソフトウェア保護方式決定部１２は、ソフトウェア保護処理の処理速度及びセキュリティ強度（当該ソフトウェア保護方式のセキュリティ保護レベル）の入力を受け付ける受付機能を更に備えてもよい。この場合、マッピングテーブル１３は、図２及び図３に示すように、ソフトウェア保護方式を示すツール名と、ファイルの対象言語と、バイナリ形式又はソースコード形式を示すファイル形式と、ソフトウェア保護処理の処理速度と、セキュリティ強度（ソフトウェア保護方式のセキュリティ保護レベル）とを関連付けて定義したテーブルとすればよい。このマッピングテーブル１３を用いる場合、ソフトウェア保護方式決定部１２は、入力を受け付けた処理速度及びセキュリティ強度と、ソフトウェア抽出部１１により抽出された各ファイルの対象言語及びファイル形式に基づいてマッピングテーブル１３を参照することにより、ツール名をもつソフトウェア保護方式を決定する。ソフトウェア保護処理の処理速度又はセキュリティ強度は、コアアセット登録者又はコアアセット利用者のいずれが入力してもよい。
【００２７】
ソフトウェア保護部１４は、以下の機能(f14-1)〜(f14-2)をもっている。
【００２８】
(f14-1)  ソフトウェア保護方式決定部１２により決定されたソフトウェア保護方式に基づいて各ファイルにソフトウェア保護処理を実行するソフトウェア保護機能。
【００２９】
(f14-2)  ソフトウェア保護処理が実行された各ファイルと、入力されたコアアセットからソフトウェア抽出部１１により抽出されなかった各ファイルとをリポジトリ１５に書込む書込機能。
【００３０】
リポジトリ１５は、ソフトウェア保護部１４により書込まれた各ファイルを記憶するメモリ等のハードウェア資源である。
【００３１】
次に、以上のように構成されたコアアセット管理装置の動作について図４のフローチャートを用いて説明する。
【００３２】
コアアセット管理装置１０においては、ソフトウェアコンポーネント（バイナリ形式のデータファイル）、ソースコード及び各種ドキュメント（ソフトウェア以外）等の各ファイルを含むコアアセットとしての入力データ１が入力される。
【００３３】
ソフトウェア抽出部１１は、入力データ内の各ファイルの種類を分類し、分類結果がバイナリ形式を示すソフトウェアコンポーネント（バイナリ形式のデータファイル）の各ファイルと、分類結果がソースコード形式を示すソースコードの各ファイルとを抽出する。
【００３４】
ソフトウェア保護方式決定部１２では、図４に示すように、それぞれの入力形式（バイナリ、またはソースコード）とプログラミング言語（対象言語）、非機能要件（性能、セキュリティなど）、ソフトウェア保護方式を定義したマッピングテーブル１３を読み込み、マッピングテーブル１３の内容に基づいてソフトウェア保護方式を決定する（ＳＴ１〜ＳＴ４）。
【００３５】
具体的には、ソフトウェア保護方式決定部１２は、抽出された各ファイルに対し、ソースコードを含むか否かを判定し（ＳＴ１）、ソースコードを含む各ファイルについては、ソースコードに対するソフトウェア保護方式を決定する（ＳＴ２）。ステップＳＴ２では、ソフトウェア保護方式決定部１２が非機能要件２を受け付けていた場合には、非機能要件２にも基づいて、ソフトウェア保護方式を決定する。ステップＳＴ２の結果、例えば図２及び図３に示す如き、ツールＢ、ツールＣ又はツールＥが決定される。
【００３６】
ステップＳＴ１の結果、ソースコードを含まない各ファイルに対し、逆コンパイルしてソースコードを抽出可能か否かを判定し（ＳＴ３）、ソースコードを抽出可能な各ファイルについては、ステップＳＴ２に移行してソースコードに対するソフトウェア保護方式を決定する。ただし、入力データの非機能要件でバイナリに対してソフトウェア保護を行う指定がある場合には、逆コンパイルの処理は無視される。なお、非機能要件２は、利用者が指定（入力）した場合にのみ、ソフトウェア保護方式の決定に用いられる。すなわち、非機能要件２は省略してもよい。
【００３７】
ステップＳＴ３の結果、ソースコードを抽出できない各ファイルについては、バイナリに対するソフトウェア保護方式を決定する（ＳＴ４）。ステップＳＴ４では、ソフトウェア保護方式決定部１２が非機能要件２を受け付けていた場合には、非機能要件２にも基づいて、ソフトウェア保護方式を決定する。ステップＳＴ４の結果、ステップＳＴ４では、例えば図２及び図３に示す如き、ツールＡ又はツールＤが決定される。
【００３８】
ソフトウェア保護部１４は、決定されたソフトウェア保護方式の各ツールを実行することにより、ソフトウェア抽出部１１により抽出された各ファイルにソフトウェア保護処理を実行する（ＳＴ５）。
【００３９】
ソフトウェア保護部１４は、ソフトウェア保護処理を実行した各ファイルと、入力データ１に含まれていたプログラム以外のドキュメントなどの各ファイルとをリポジトリ１５へ登録する（ＳＴ６）。
【００４０】
一方、コアアセットの利用者は、ソフトウェアコンポーネントをリポジトリ１５から取得する時に、既にソフトウェア保護処理が実行された出力データ３（ソフトウェアコンポーネント）を取得できるため、再度ソフトウェア保護を行う必要がなくなる。そのため、ソフトウェア保護に関する知識がない場合でも、秘密情報を含んだライブラリを利用することが容易になる。また、コアアセット利用者は、通常のコアアセット、又はソフトウェア保護されたコアアセットを選択してもよい。
【００４１】
上述したように本実施形態によれば、入力されたコアアセット内の各ファイルの種類を分類し、分類結果がバイナリ形式又はソースコード形式を示す各ファイルを当該コアアセットから抽出し、抽出された各ファイルのうち、ソースコードを含む各ファイル又は逆コンパイルによりソースコードを生成可能な各ファイルについては、当該ソースコードを保護するソフトウェア保護方式を決定し、残りの各ファイルについては、バイナリデータを保護するソフトウェア保護方式を決定し、決定されたソフトウェア保護方式に基づいて各ファイルにソフトウェア保護処理を実行する構成により、コアアセットに含まれるソースコード形式又はバイナリ形式の各ファイルにソフトウェア保護を施すことができる。
【００４２】
また、コアアセット開発者は、ソフトウェア保護を意識せずに、コアアセットを登録することが可能となる。
【００４３】
また、コアアセットを利用する開発者は、開発対象のシステムに応じてソフトウェア保護されているコアアセット、又はソフトウェア保護されていないコアアセットを選択することが可能となる。
【００４４】
また、コアアセット管理装置１０により自動的にソフトウェア保護されたソフトウェアはテストされていないため、通常のコアアセットのテストケースやテストツールなどを用いて再度テストを行うことにより品質を確保できる。その場合、前提条件として、コアアセット登録時には、テストケース、テストツール、テストデータなども合わせて登録すればよい。規定回数以上利用実績のあるソフトウェア保護されたコアアセットについては、その後のテスト工数を削減することが可能となる。
【００４５】
＜第２の実施形態＞
図５は第２の実施形態に係るコアアセット管理装置の構成を示す模式図であり、図１と同一部分には同一符号を付してその詳しい説明を省略し、ここでは異なる部分について主に述べる。
【００４６】
第２の実施形態は、第１の実施形態の変形例であり、ソフトウェア保護を施していないコアアセットをリポジトリ１５ａへ格納し、当該コアアセットをリポジトリ１５ａから読み出すと、当該コアアセットのソフトウェアの形態を自動的に解析し、ソフトウェア保護を施したコアアセットを出力する形態となっている。
【００４７】
これに伴い、コアアセット管理装置１０ａは、ソフトウェア抽出部１１ａ、ソフトウェア保護方式決定部１２、マッピングテーブル１３、ソフトウェア保護部１４ａ及びリポジトリ１５ａを備えている。なお、ソフトウェア保護方式決定部１２及びマッピングテーブル１３は、前述同様の機能をもっている。他の各部１１ａ，１４ａ，１５ａも前述同様の機能を有するが、各ファイルの入出力先が異なっている。
【００４８】
ここで、リポジトリ１５ａは、予め書込まれた各ファイルを記憶するメモリ等のハードウェア資源である。リポジトリ１５ａ内の各ファイルは、第１の実施形態とは異なり、ソフトウェア保護が施されていない。
【００４９】
ソフトウエア抽出部１１ａは、リポジトリ１５ａから読み出したコアアセット内の各ファイルの種類を分類し、分類結果がバイナリ形式又はソースコード形式を示す各ファイルを当該コアアセットから抽出する抽出機能をもっている。
【００５０】
ソフトウェア保護方式決定部１２は、前述同様の保護方式決定機能及び受付機能（第１受付機能）に加え、各ファイルのプラットフォームの入力を受け付ける第２受付機能を更に備えている。この第２受付機能を用いる場合、ソフトウェア保護方式決定部１２は、入力を受け付けた処理速度、セキュリティ保護レベル及びプラットフォームと、抽出された各ファイルの対象言語及びファイル形式とに基づいてマッピングテーブル１３を参照することにより、ツール名をもつソフトウェア保護方式を決定する。
【００５１】
ソフトウエア１４ａは、以下の機能(f14a-1)〜(f14a-2)をもっている。
【００５２】
(f14a-1)  ソフトウェア保護方式決定部１２により決定されたソフトウェア保護方式に基づいて各ファイルにソフトウェア保護処理を実行するソフトウェア保護機能。
【００５３】
(f14a-2)  当該ソフトウェア保護処理が実行された各ファイルと、リポジトリ１５ａから読み出されたコアアセット内の各ファイルのうちのソフトウェア抽出部１１により抽出されなかった各ファイルとを出力する出力機能。
【００５４】
次に、以上のように構成されたコアアセット管理装置の動作について、前述した図４のフローチャートを用いて説明する。
【００５５】
コアアセット管理装置１０においては、予めソフトウェアコンポーネント（バイナリ形式のデータファイル）、ソースコード及び各種ドキュメント（ソフトウェア以外）等の各ファイルを含むコアアセットとしての入力データ１がリポジトリ１５ａに登録（書込処理）される。
【００５６】
ソフトウェア抽出部１１ａは、リポジトリ１５ａから読み出したコアアセット内の各ファイルの種類を分類し、分類結果がバイナリ形式を示すソフトウェアコンポーネント（バイナリ形式のデータファイル）の各ファイルと、分類結果がソースコード形式を示すソースコードの各ファイルとを抽出する。
【００５７】
ソフトウェア保護方式決定部１２では、前述同様に、図４に示すように、それぞれの入力形式（バイナリ、またはソースコード）とプログラミング言語、非機能要件（性能、セキュリティなど）、プラットフォーム、ソフトウェア保護方式を定義したマッピングテーブル１３を読み込み、マッピングテーブル１３の内容に基づいてソフトウェア保護方式を決定する（ＳＴ１〜ＳＴ４）。なお、非機能要件２及びプラットフォームは、それぞれ利用者が入力した場合にのみ、ソフトウェア保護方式の決定に用いられる。すなわち、非機能要件２及びプラットフォームは、それぞれ省略してもよい。
【００５８】
ソフトウェア保護部１４ａは、決定されたソフトウェア保護方式の各ツールを実行することにより、ソフトウェア抽出部１１ａにより抽出された各ファイルにソフトウェア保護処理を実行する（ＳＴ５）。
【００５９】
ソフトウェア保護部１４ａは、ソフトウェア保護処理を実行した各ファイルと、リポジトリ１５ａから読み出されたコアアセット内の各ファイルのうちの抽出されなかった各ファイル（プログラム以外のドキュメントなど）とを出力する（ＳＴ６）。
【００６０】
上述したように本実施形態によれば、ソフトウェア保護が施されていないコアアセットをリポジトリ１５ａに記憶し、当該リポジトリ１５ａからコアアセットを読み出す場合であっても、第１の実施形態と同様にして、コアアセットに含まれるソースコード形式又はバイナリ形式の各ファイルにソフトウェア保護を施すことができる。
【００６１】
また、本実施形態によれば、第１の実施形態の他の効果も同様に得ることができる。
【００６２】
さらに、本実施形態では、第１の実施形態と異なり、出力時に利用者が性能要件、セキュリティ要件以外にプラットフォームなどの指定も可能としているため、様々なプラットフォームに対してソフトウェア保護を施すことができる。
【００６３】
また、リポジトリ１５ａに登録されているソフトウェアコンポーネントはソフトウェア保護が施されていないため、秘密情報が含まれていないソフトウェアコンポーネントであれば、そのまま再利用することができる。
【００６４】
以上説明した少なくとも一つの実施形態によれば、コアアセット内の各ファイルの種類を分類し、分類結果がバイナリ形式又はソースコード形式を示す各ファイルを当該コアアセットから抽出し、抽出された各ファイルのうち、ソースコードを含む各ファイル又は逆コンパイルによりソースコードを生成可能な各ファイルについては、当該ソースコードを保護するソフトウェア保護方式を決定し、残りの各ファイルについては、バイナリデータを保護するソフトウェア保護方式を決定し、決定されたソフトウェア保護方式に基づいて各ファイルにソフトウェア保護処理を実行する構成により、コアアセットに含まれるソースコード形式又はバイナリ形式の各ファイルにソフトウェア保護を施すことができる。
【００６５】
なお、上記の各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、光磁気ディスク（ＭＯ）、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【００６６】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【００６７】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワークソフト等のＭＷ（ミドルウェア）等が上記実施形態を実現するための各処理の一部を実行しても良い。
【００６８】
さらに、各実施形態における記憶媒体は、コンピュータと独立した媒体に限らず、ＬＡＮやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【００６９】
また、記憶媒体は１つに限らず、複数の媒体から上記の各実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【００７０】
なお、各実施形態におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記の各実施形態における各処理を実行するものであって、パソコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【００７１】
また、各実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【００７２】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７３】
１…ソースコード、２…コアアセット管理装置、３…ソフトウェア抽出部、４…ソフトウェア保護方式決定部、５…マッピングテーブル、６…ソフトウェア保護部、７…リポジトリ、８…ソフトウェアコンポーネント、９…非機能要件。
【図１】
2013200813.tif 000003
【図２】
2013200813.tif 000004
【図３】
2013200813.tif 000005
【図４】
2013200813.tif 000006
【図５】
2013200813.tif 000007