"クライアントコンピュータとサーバコンピュータとを備えたコンピュータソフトウエア解析システムにおいて,クライアントコンピュータが,解析対象であるコンピュータソフトウエアを難読化するコンピュータソフトウエア難読化手段,および上記コンピュータソフトウエア難読化手段によって難読化されたコンピュータソフトウエアを上記サーバコンピュータに送信する難読化済コンピュータソフトウエア送信手段を備え,上記サーバコンピュータが,上記クライアントコンピュータの上記難読化コンピュータソフトウエア送信手段から送信された難読化済コンピュータソフトウエアを解析し,難読化されている解析結果データを生成するコンピュータソフトウエア解析手段,および上記コンピュータソフトウエア解析手段によって生成された難読化されている解析結果データを,上記クライアントコンピュータに送信する解析結果データ送信手段を備え,上記クライアントコンピュータが,上記サーバコンピュータの上記解析結果データ送信手段から送信された難読化されている解析結果データの少なくとも一部を,難読化前の解析結果データに復元する復元手段,を備えたコンピュータソフトウエア解析システム。上記クライアントコンピュータが,上記クライアントソフトウエア難読化手段によって難読化されたコンピュータソフトウエアを出力する出力手段,をさらに備えている請求項1に記載のコンピュータソフトウエア解析システム。上記クライアントコンピュータは,上記サーバコンピュータの上記コンピュータソフトウエア解析手段における難読化済コンピュータソフトウエアの解析を制御する解析制御データを上記サーバコンピュータに送信する解析制御データ送信手段をさらに備え,上記サーバコンピュータの上記コンピュータソフトウエア解析手段は,上記クライアントコンピュータの上記解析制御データ送信手段から送信された解析制御データ利用して難読化済コンピュータソフトウエアを解析するものである,請求項1または2に記載のコンピュータソフトウエア解析システム。上記クライアントコンピュータは,上記解析制御データのうち難読化が必要な上記解析制御データを指定する指定手段,上記指定手段によって指定された上記解析制御データを難読化する解析制御データ難読化手段をさらに備え,上記クライアントコンピュータの上記解析制御データ送信手段は,上記解析制御データ難読化手段によって難読化された上記解析制御データと難読化されていない上記解析制御データとのうち少なくとも一方を上記サーバコンピュータに送信するものである,請求項3に記載のコンピュータソフトウエア解析システム。クライアントコンピュータが受信した解析結果データを制御する解析結果制御データを入力する解析結果制御データ入力手段,および上記難読化された解析結果データまたは上記復元手段によって復元された解析結果データを,上記解析結果制御データ入力手段から入力された解析結果制御データにもとづいて制御する解析結果データ制御手段,をさらに備えた請求項1から4のうち,いずれか一項に記載のコンピュータソフトウエア解析システム。上記クライアントコンピュータが,複数の難読化方法のうち,一の難読化方法を選択する難読化方法選択手段をさらに備え,上記クライアントコンピュータの上記コンピュータソフトウエア難読化手段は,上記難読化方法選択手段によって選択された難読化方法によってコンピュータソフトウエアを難読化するものである,請求項1から5のうち,いずれか一項に記載のコンピュータソフトウエア解析システム。上記クライアントコンピュータの上記コンピュータソフトウエア難読化手段は,コンピュータソフトウエアの一部を削除し,または無関係なソフトウエアを混入させて,残りの部分を難読化するものである,請求項1から6のうち,いずれか一項に記載のコンピュータソフトウエア解析システム。上記クライアントコンピュータは,上記サーバコンピュータの上記コンピュータソフトウエア解析手段によって解析する項目を指定する解析項目指定手段,上記解析項目指定手段によって指定された解析項目に対応した難読化方法を,複数の難読化方法の中から決定する難読化方法決定手段,および上記難読化方法決定手段によって決定された難読化方法にもとづく難読化が行われる場合にコンピュータソフトウエアのうち欠損可能な一部を決定する欠損部分決定手段をさらに備え,上記クライアントコンピュータの上記コンピュータソフトウエア難読化手段は,上記欠損部分決定手段によって決定された一部を,コンピュータソフトウエアから削除して残りの部分を難読化するものである,請求項1から7のうち,いずれか一項に記載のコンピュータソフトウエア解析システム。解析項目および難読化方法のそれぞれに対応して,コンピュータソフトウエアのうち欠損可能な部分が規定されており,上記難読化方法決定手段は,上記解析項目指定手段によって指定された解析項目に対応して規定されている,コンピュータソフトウエアのうち欠損可能な部分に対応する難読化方法を決定する,請求項8に記載のコンピュータソフトウエア解析システム。上記サーバコンピュータの上記コンピュータソフトウエア難読化手段は,同一のコンピュータソフトウエアを難読化すると同一の難読化済コンピュータソフトウエアを出力するものである,請求項1から9のうち,いずれか一項に記載のコンピュータソフトウエア解析システム。上記サーバコンピュータは,上記コンピュータソフトウエア解析手段において復元された解析結果データを,コンピュータソフトウエアに対応して記憶する解析結果データ記憶手段,および上記コンピュータソフトウエア解析手段において上記コンピュータソフトウエア送信手段から送信された難読化済コンピュータソフトウエアを解析して生成された解析結果データと,生成された解析結果データのコンピュータソフトウエアに対応して上記解析結果データ記憶手段に記憶されている解析結果データと,を比較して比較結果を出力する比較手段,をさらに備えた請求項10に記載のコンピュータソフトウエア解析システム。上記クライアントコンピュータは,上記クライアントコンピュータの上記コンピュータソフトウエア難読化手段によって行われた難読化方法を,コンピュータソフトウエアに対応して記憶する難読化方法記憶手段をさらに備え,上記クライアントコンピュータの上記コンピュータソフトウエア難読化手段は,新たなコンピュータソフトウエアについて難読化する際に,そのコンピュータソフトウエアに対応して上記難読化方法記憶手段に記憶されている難読化方法を用いてコンピュータソフトウエアを難読化するものである,請求項11に記載のコンピュータソフトウエア解析システム。上記クライアントコンピュータの難読化方法記憶手段は,上記クライアントコンピュータの上記コンピュータソフトウエア難読化手段によって行われた難読化方法および解析項目を,コンピュータソフトウエアに対応して記憶しており,上記クライアントコンピュータの上記コンピュータソフトウエア難読化手段は,新たなコンピュータソフトウエアについて難読化する際に,そのコンピュータソフトウエアに対応して上記難読化方法記憶手段に記憶されている解析項目を上記サーバコンピュータに送信する解析項目送信手段,をさらに備えた請求項12に記載のコンピュータソフトウエア解析システム。解析対象であるコンピュータソフトウエアを難読化するコンピュータソフトウエア難読化手段,上記コンピュータソフトウエア難読化手段によって難読化されたコンピュータソフトウエアをサーバコンピュータに送信する難読化済コンピュータソフトウエア送信手段,上記難読化コンピュータソフトウエア送信手段から送信された難読化済コンピュータソフトウエアが,サーバコンピュータにおいて解析されることにより生成され,かつサーバコンピュータから送信される,難読化されている解析結果データを受信する受信手段,および上記受信手段によって受信した,難読化されている解析結果データの少なくとも一部を,難読化前の解析結果データに復元する復元手段,を備えたクライアントコンピュータ。難読化手段が,解析対象であるコンピュータソフトウエアを難読化し,難読化済コンピュータソフトウエア送信手段が,上記コンピュータソフトウエア難読化手段によって難読化されたコンピュータソフトウエアをサーバコンピュータに送信し,受信手段が,上記難読化コンピュータソフトウエア送信手段から送信された難読化済コンピュータソフトウエアが,サーバコンピュータにおいて解析されることにより生成され,かつサーバコンピュータから送信される,難読化されている解析結果データを受信し,復元手段が,上記受信手段によって受信した,難読化されている解析結果データの少なくとも一部を,難読化前の解析結果データに復元する,クライアントコンピュータの動作制御方法。クライアントコンピュータを制御するプログラムであって,解析対象であるコンピュータソフトウエアを難読化させ,難読化されたコンピュータソフトウエアをサーバコンピュータに送信させ,送信された難読化済コンピュータソフトウエアが,サーバコンピュータにおいて解析されることにより生成され,かつサーバコンピュータから送信される,難読化されている解析結果データを受信させ,受信した,難読化されている解析結果データの少なくとも一部を,難読化前の解析結果データに復元させるようにクライアントコンピュータの動作を制御するコンピュータが読み取り可能なプログラム。しかしながら,クラウド上にあるサーバにソースコードを送信することは,公開ネットワーク上にソースコードを送信することとなる。このために,ソースコードを暗号化することが考えられるが,解析するサーバはソースコードを復号するので,サーバにはソースコードの内容がわかってしまう。特許文献1に記載のものでは,ソースコードの秘匿性が確保されていない。特許文献2に記載のものでは,クライアントが品質測定機能を有する,クライアントとサーバとの間で特別な交換データフォーマットを取り決める必要がある,サーバから返信されたデータを元のソースコードと詳細に照らすための考慮がない,解析に必要なソフトウエア情報を追加したい場合にクライアントを修正する必要がある,解析に必要なソフトウエア情報を追加した場合にはソースコードの秘匿性が弱まる等の問題がある。特許文献3に記載のものは,サーバクライアント型の解析システムとの連携が考慮されていない,難読化された名前を復元することは考えられていないなどの問題がある。さらに,特許文献4から7に記載のものでも,ソースコードの秘匿性を維持可能なサーバクライアント型の解析システムについては考えられていない。この発明の第1の目的は,ソースコードの秘匿性を維持可能なサーバクライアント型のソフトウエア解析システムを提供することにある。第2の目的は,クライアントコンピュータに解析手段を持たせる必要を無くすことにある。第3の目的は,クライアントコンピュータからサーバコンピュータにソースコードを送信するための特別なデータフォーマットを取り決める必要を無くすことにある。たとえば,サーバコンピュータにソースコードの秘匿性を実現するために特別なものを不要にすることにあり,サーバコンピュータがソースコードの秘匿性を考慮していないものと組み合わせることができるようにすることにある。第4の目的は,サーバコンピュータから返信されたデータと元のソースコードとを容易に照らし合わせるようにするものである。第5の目的は,解析内容の追加,変更に,ほぼサーバコンピュータのみで対応可能にすることにある。第6の目的は,解析手段を追加,変更してもソースコード秘匿性を維持できるようにすることにある。第7の目的は,既存の様々なソフトウエア難読化手段と容易に組み合わせることができるようにすることにある。この発明は,クライアントコンピュータとサーバコンピュータとを備えたコンピュータソフトウエア解析システムについてのものである。クライアントコンピュータは,解析対象であるコンピュータソフトウエアを難読化するコンピュータソフトウエア難読化手段,および上記コンピュータソフトウエア難読化手段によって難読化されたコンピュータソフトウエアを上記サーバコンピュータに送信する難読化済コンピュータソフトウエア送信手段を備え,上記サーバコンピュータは,上記クライアントコンピュータの上記難読化コンピュータソフトウエア送信手段から送信された難読化済コンピュータソフトウエアを解析し,難読化されている解析結果データを生成するコンピュータソフトウエア解析手段,および上記コンピュータソフトウエア解析手段によって生成された難読化されている解析結果データを,上記クライアントコンピュータに送信する解析結果データ送信手段を備えている。上記クライアントコンピュータは,上記サーバコンピュータの上記解析結果データ送信手段から送信された難読化されている解析結果データの少なくとも一部を,難読化前の解析結果データに復元する復元手段をさらに備えている。この発明は,上記コンピュータソフトウエア解析システムを構成するクライアントコンピュータも提供している。すなわち,このクライアントコンピュータは,解析対象であるコンピュータソフトウエアを難読化するコンピュータソフトウエア難読化手段,上記コンピュータソフトウエア難読化手段によって難読化されたコンピュータソフトウエアをサーバコンピュータに送信する難読化済コンピュータソフトウエア送信手段,上記難読化コンピュータソフトウエア送信手段から送信された難読化済コンピュータソフトウエアが,サーバコンピュータにおいて解析されることにより生成され,かつサーバコンピュータから送信される,難読化されている解析結果データを受信する受信手段,および上記受信手段によって受信した,難読化されている解析結果データの少なくとも一部を,難読化前の解析結果データに復元する復元手段を備えている。さらに,この発明は,上記クライアントコンピュータに適した動作制御方法も提供している。すなわち,難読化手段が,解析対象であるコンピュータソフトウエアを難読化し,難読化済コンピュータソフトウエア送信手段が,上記コンピュータソフトウエア難読化手段によって難読化されたコンピュータソフトウエアをサーバコンピュータに送信し,受信手段が,上記難読化コンピュータソフトウエア送信手段から送信された難読化済コンピュータソフトウエアが,サーバコンピュータにおいて解析されることにより生成され,かつサーバコンピュータから送信される,難読化されている解析結果データを受信し,復元手段が,上記受信手段によって受信した,難読化されている解析結果データの少なくとも一部を,難読化前の解析結果データに復元するものである。この発明は,上記クライアントコンピュータの動作を制御するプログラムも提供している。そのようなプログラムを格納した記録媒体を提供するようにしてもよい。この発明によると,クライアントコンピュータにおいて解析対象であるコンピュータソフトウエアが難読化される。難読化されたコンピュータソフトウエアはクライアントコンピュータからサーバコンピュータに送信される。クライアントコンピュータからサーバコンピュータに難読化されたコンピュータソフトウエアが送信されると,サーバコンピュータにおいて,難読化されているコンピュータソフトウエアの品質が解析され,難読化されている解析結果データが生成される。難読化されている解析結果データは,サーバコンピュータからクライアントコンピュータに送信される。難読化されている解析結果データの少なくとも一部が難読化前の解析結果データに復元される。サーバコンピュータにおいて得られる解析結果データは難読化されているので,サーバコンピュータ側にコンピュータソフトウエアの内容が知られてしまうことを未然に防止できる。コンピュータソフトウエアの秘匿性を維持できる。コンピュータソフトウエアの解析はサーバコンピュータにおいて行われるので,クライアントコンピュータにコンピュータソフトウエアの解析手段の機能を持たせる必要がない。コンピュータソフトウエアの秘匿性を維持するために,サーバコンピュータに特別の構成を持たせる必要もない。クライアントコンピュータは,コンピュータソフトウエアを難読化しているので,難読化されている解析結果データの復元も比較的容易にできる。解析は,サーバコンピュータにおいて行われているので,解析内容の追加,変更はサーバコンピュータのみで対応可能となる。コンピュータソフトウエアが難読化されている状態で解析されるので,解析手段の追加,変更をしてもコンピュータソフトウエアの秘匿化を維持できる。既存の様々なソフトウエア難読化手段と組み合わせることもできる。上記クライアントコンピュータは,上記クライアントソフトウエア難読化手段によって難読化されたコンピュータソフトウエアを出力する出力手段をさらに備えてもよい。上記クライアントコンピュータは,上記サーバコンピュータの上記コンピュータソフトウエア解析手段における難読化済コンピュータソフトウエアの解析を制御する解析制御データを上記サーバコンピュータに送信する解析制御データ送信手段をさらに備えてもよい。この場合,上記サーバコンピュータの上記コンピュータソフトウエア解析手段は,上記クライアントコンピュータの上記解析制御データ送信手段から送信された解析制御データ利用して難読化済コンピュータソフトウエアを解析するものとなろう。上記クライアントコンピュータは,上記解析制御データのうち難読化が必要な上記解析制御データを指定する指定手段,上記指定手段によって指定された上記解析制御データを難読化する解析制御データ難読化手段をさらに備えてもよい。この場合,上記クライアントコンピュータの上記解析制御データ送信手段は,たとえば,上記解析制御データ難読化手段によって難読化された上記解析制御データと難読化されていない上記解析制御データとのうち少なくとも一方を上記サーバコンピュータに送信するものである。クライアントコンピュータが受信した解析結果データを制御する解析結果制御データを入力する解析結果制御データ入力手段,および上記難読化された解析結果データまたは上記復元手段によって復元された解析結果データを,上記解析結果制御データ入力手段から入力された解析結果制御データにもとづいて制御する解析結果データ制御手段をさらに備えてもよい。上記クライアントコンピュータは,複数の難読化方法のうち,一の難読化方法を選択する難読化方法選択手段をさらに備えてもよい。この場合,上記クライアントコンピュータの上記コンピュータソフトウエア難読化手段は,たとえば,上記難読化方法選択手段によって選択された難読化方法によってコンピュータソフトウエアを難読化するものである。上記クライアントコンピュータの上記コンピュータソフトウエア難読化手段は,コンピュータソフトウエアの一部を削除し,または無関係なソフトウエアを混入させて,残りの部分を難読化するものでもよい。上記クライアントコンピュータは,上記サーバコンピュータの上記コンピュータソフトウエア解析手段によって解析する項目を指定する解析項目指定手段,上記解析項目指定手段によって指定された解析項目に対応した難読化方法を,複数の難読化方法の中から決定する難読化方法決定手段,および上記難読化方法決定手段によって決定された難読化方法にもとづく難読化が行われる場合にコンピュータソフトウエアのうち欠損可能な一部を決定する欠損部分決定手段をさらに備えてもよい。この場合,上記クライアントコンピュータの上記コンピュータソフトウエア難読化手段は,たとえば,上記欠損部分決定手段によって決定された一部を,コンピュータソフトウエアから削除して残りの部分を難読化するものである。解析項目および難読化方法のそれぞれに対応して,コンピュータソフトウエアのうち欠損可能な部分が規定されている場合には,上記難読化方法決定手段は,たとえば,上記解析項目指定手段によって指定された解析項目に対応して規定されている,コンピュータソフトウエアのうち欠損可能な部分に対応する難読化方法を決定するものとなろう。上記サーバコンピュータの上記コンピュータソフトウエア難読化手段は,たとえば,同一のコンピュータソフトウエアを難読化すると同一の難読化済コンピュータソフトウエアを出力するものである。上記サーバコンピュータは,上記コンピュータソフトウエア解析手段において復元された解析結果データを,コンピュータソフトウエアに対応して記憶する解析結果データ記憶手段,および上記コンピュータソフトウエア解析手段において上記コンピュータソフトウエア送信手段から送信された難読化済コンピュータソフトウエアを解析して生成された解析結果データと,生成された解析結果データのコンピュータソフトウエアに対応して上記解析結果データ記憶手段に記憶されている解析結果データと,を比較して比較結果を出力する比較手段をさらに備えてもよい。上記クライアントコンピュータは,上記クライアントコンピュータの上記コンピュータソフトウエア難読化手段によって行われた難読化方法を,コンピュータソフトウエアに対応して記憶する難読化方法記憶手段をさらに備えてもよい。この場合,上記クライアントコンピュータの上記コンピュータソフトウエア難読化手段は,たとえば,新たなコンピュータソフトウエアについて難読化する際に,そのコンピュータソフトウエアに対応して上記難読化方法記憶手段に記憶されている難読化方法を用いてコンピュータソフトウエアを難読化するものである。上記クライアントコンピュータの難読化方法記憶手段は,たとえば,上記クライアントコンピュータの上記コンピュータソフトウエア難読化手段によって行われた難読化方法および解析項目を,コンピュータソフトウエアに対応して記憶している。この場合,上記クライアントコンピュータの上記コンピュータソフトウエア難読化手段は,新たなコンピュータソフトウエアについて難読化する際に,そのコンピュータソフトウエアに対応して上記難読化方法記憶手段に記憶されている解析項目を上記サーバコンピュータに送信する解析項目送信手段をさらに備えてもよい。図1は,この発明の実施例を示すもので,コンピュータソフトウエア解析システムを示している。コンピュータソフトウエア解析システムには,インターネットインターネットに限らないなどのようなネットワークを介して互いに通信可能なクライアントコンピュータ1およびサーバコンピュータ20が含まれている。図2は,クライアントコンピュータ1の電気的構成を示すブロック図である。サーバコンピュータ20の電気的構成もクライアントコンピュータ1の電気的構成とほぼ同じである。クライアントコンピュータ1の全体の動作は,CPU2によって統括される。クライアントコンピュータ1には,表示装置3,所定のデータを記憶するメモリ4,サーバコンピュータ20と通信するための通信装置5,キーボードなどの入力装置6,CDROMドライブ7,ハードディスク10およびハードディスク10にアクセスするためのハードディスクドライブ9が含まれている。CDROMドライブ7に,CDROM8が装填されることにより,CDROM8に記録されているデータ,コンピュータソフトウエアなどが読み取られる。CDROM8には,後述する動作を制御する制御プログラムが格納されており,その制御プログラムがクライアントコンピュータ1にインストールされることにより,後述する動作が行われる。もっとも,制御プログラムはCDROM8に格納されていずに,他の記録媒体に記録されていてもよい。インターネットを介して送信された制御プログラムを,通信装置5を用いて受信し,クライアントコンピュータ1に装填されてもよい。図3はクライアントコンピュータ1の処理手順を示すフローチャート,図4はサーバコンピュータ20の処理手順を示すフローチャートである。この実施例は,コンピュータソフトウエアソースコードの行数,凝集度,複雑度,結合度,などの品質を解析するもので,その品質の解析はサーバコンピュータ20において行われる。解析結果がサーバコンピュータ20に把握されないようにクライアントコンピュータ1においてコンピュータソフトウエアの難読化が行われ,難読化されたコンピュータソフトウエアがクライアントコンピュータ1からサーバコンピュータ20に送信される。まず,解析対象となるオリジナルコンピュータソフトウエアソースコードがクライアントコンピュータ1に入力される図3ステップ31。解析対象となるコンピュータソフトウエアは,上述したように,CDROM8に格納されており,CDROM8から読み取ることによりクライアントコンピュータ1に入力してもよいし,インターネットを介して送信されたコンピュータソフトウエアを,通信装置5を用いて受信してクライアントコンピュータ1に入力してもよい。図5は,オリジナルコンピュータソフトウエアの一例である。図5において,第1行はクラスを宣言しており,第2行は関数の一例である。解析対象となるオリジナルコンピュータソフトウエアがクライアントコンピュータ1に入力すると,そのコンピュータソフトウエアが難読化される図3ステップ32。難読化は,公知の手法を利用でき,たとえば,コンピュータソフトウエア中に用いられる名称がランダムな文字列に置き換えられる。難読化されたコンピュータソフトウエアを難読化前のコンピュータソフトウエアに復元するための復元テーブルも生成される図3ステップ32。図6は,難読化されたコンピュータソフトウエアの一例である。図5に示すオリジナルコンピュータソフトウエアと図6に示す難読化されたコンピュータソフトウエアとを比較すると明らかなように,図5に示すオリジナルコンピュータソフトウエアの第1行目のShapeという名称が,図6に示す難読化済コンピュータソフトウエアではZa112ayという文字列に変換されている。同様に,図5に示すオリジナルソフトウエアの第2行目のResultMovepointという関数が,図6に示す難読化済コンピュータソフトウエアではkop89S5df5f41という文字列に変換されている。図7は,復元テーブルの一例である。この復元テーブルは,図5に示すオリジナルコンピュータソフトウエアと図6に示す難読化済コンピュータソフトウエアとを比較することにより生成できる。復元テーブルの左側の列は,図5に示すオリジナルコンピュータソフトウエアに含まれているプログラム要素を示している。復元テーブルの右側の列は,図6に示す難読化済コンピュータソフトウエアに含まれるプログラム要素である。復元テーブルの左側の列の文字列と復元テーブルの右側の文字列とを比較することにより,難読化前後のプログラム要素が分かる。復元テーブルを用いて,難読化されたコンピュータソフトウエアを難読化前のオリジナルコンピュータソフトウエアに復元できることは理解できよう。オリジナルコンピュータソフトウエアが難読化されると,図6に示す難読化済コンピュータソフトウエアが表示装置3の表示画面に表示される図3ステップ33。表示画面に表示された難読化済コンピュータソフトウエアを,ユーザが確認すると,ユーザによって入力装置6から送信指令が入力される。すると,難読化済コンピュータソフトウエアがクライアントコンピュータ1からサーバコンピュータ20に送信される図3ステップ34。コンピュータソフトウエアが難読化されていることをユーザが確認した後に,サーバコンピュータ20に難読化済コンピュータソフトウエアに送信できる。クライアントコンピュータ1から送信された難読化済コンピュータソフトウエアがサーバコンピュータ20において受信されると図4ステップ41,受信した難読化済コンピュータソフトウエアの品質解析処理が行われる図4ステップ42。品質解析処理は,公知の手法を用いることができる。品質解析処理により,たとえば,難読化済コンピュータソフトウエアの複雑度を表す解析結果データが得られる。難読化済コンピュータソフトウエアについて品質解析処理が行われているので,解析結果データも難読化されているものとなる。図8は,難読化済解析結果データテーブルの一例である。難読化済解析結果データテーブルの左側の列は,難読化済コンピュータソフトウエアのプログラム要素である。難読化済解析結果データテーブルの右側の列は,解析結果複雑度である。難読化済解析結果データテーブルから,Za112ayというプログラム要素の複雑度が24であり,kop89S5df5f41というプログラム要素の複雑度が7であることが分かる。難読化済コンピュータソフトウエアについて品質解析が行われているから,解析結果がどのようなプログラム要素について行われたものか分からず,コンピュータソフトウエアの秘匿性が確保される。難読化済解析結果データがサーバコンピュータ20からクライアントコンピュータ1に送信される図4ステップ43。サーバコンピュータ20から送信された難読化済解析結果データがクライアントコンピュータ1において受信されると図3ステップ36,復元テーブル図7参照を用いて難読化済解析結果データの少なくとも一部が復元される図3ステップ37。図9は,復元された解析結果データを示す解析結果データテーブルの一例である。解析結果データテーブルの左側の列には,復元されたプログラム要素が格納されている。解析結果データテーブルの右側の列には,そのプログラム要素に対応して解析結果である複雑度が格納されている。プログラム要素は復元されているので,プログラム要素について複雑度が認識できる。復元済の解析結果データが表示画面の表示などにより,クライアントコンピュータ1から出力される図3ステップ38。図10から図19は,他の実施例を示している。この実施例は,サーバコンピュータ20におけるコンピュータソフトウエアの品質解析を制御する解析制御データがクライアントコンピュータ1からサーバコンピュータ20に送信され,その解析制御データにもとづいてサーバコンピュータ20においてコンピュータソフトウエアの品質解析が制御されるものである。図10は,クライアントコンピュータ1の処理手順を示すフローチャート,図11は,サーバコンピュータ20の処理手順を示すフローチャートである。クライアントコンピュータ1にオリジナルコンピュータソフトウエアが入力する図10ステップ51。図12は,オリジナルコンピュータソフトウエアの一例である。このようなオリジナルコンピュータソフトウエアがクライアントコンピュータ1に入力する。図12に示されているオリジナルコンピュータソフトウエアは一部が省略されているのはいうまでもない。つづいて,クライアントコンピュータ1のユーザは,解析制御データをクライアントコンピュータ1に入力する図10ステップ52。解析制御データは,サーバコンピュータ20において行われる品質解析を制御するものである。解析制御データには,コンピュータソフトウエアに含まれるプログラム要素の行数などの解析項目,プログラム要素のグループ化などが含まれる。つづいて,入力された解析制御データについて難読化の要否の識別処理が行われる図10ステップ53。解析制御データについての難読化の要否識別処理は,解析制御データ難読化識別テーブルが用いられる。図13は,解析制御データ難読化識別テーブルの一例である。解析制御データ難読化識別テーブルの左側の列には解析制御データ名称が格納され,右側の列には難読化の要否が格納されている。左側の列には解析項目,解析グループおよび解析グループ構成が示されているが,その他の解析制御データについても難読化の要否が格納されているのはいうまでもない。解析項目は,解析対象を指示するもので,解析グループは,解析グループ構成のプログラム要素を解析グループのグループにするようにコンピュータソフトウエアを制御するものである。図14は,難読化前解析制御データテーブルの一例である。解析項目として行数が指定され,解析グループとしてConcreteShapeが指定され,解析グループ構成としてCircleおよびRectangleが指定されたものとする。図13に示す解析制御データ難読化識別テーブルを参照すると,解析項目は難読化が不要であり,解析グループおよび解析グループ構成は難読化が必要であるから,行数は難読化が不要であり,CircleおよびRectangleは難読化が必要であると判断される。解析制御データの難読化の要否識別処理が行われると,オリジナルコンピュータソフトウエアの難読化および解析制御データのうち難読化が必要と識別された解析制御データが同じ処理により難読化が行われる図10ステップ54。復元テーブルも生成されるのはいうまでもない。図15は,難読化済コンピュータソフトウエアの一例である。図12に示すオリジナルコンピュータソフトウエアが難読化されることにより,オリジナルコンピュータソフトウエアのShape,CircleおよびRectangleが,図15に示す難読化済コンピュータソフトウエアのZa112ay,jkidLLおよび654skJIに変更される。図16は,一部が難読化されている難読化済解析制御データテーブルの一例である。解析制御データが難読化されているので,解析制御データがインターネットを介してクライアントコンピュータ1からサーバコンピュータ20に送信され,第三者に傍受されても解析制御データの秘匿性を保つことができる。図17は,復元テーブルの一例である。図12に示すオリジナルコンピュータソフトウエアと図15に示す難読化済コンピュータソフトウエアとを比較し,かつ図14に示す難読化前解析制御データテーブルの制御データ内容と図16に示す難読化済解析制御データテーブルの制御データ内容とを比較することにより,上述のように復元テーブルが生成される。図17の復元テーブルの左側の列は,オリジナルコンピュータソフトウエアまたは解析制御データのプログラム要素であり,図17の復元テーブルの右側の列は難読化済コンピュータソフトウエアまたは難読化済解析制御データのプログラム要素である。図17に示す復元テーブルを利用することにより難読化されているコンピュータソフトウエアおよび難読化されている解析制御データを難読化前のデータに復元できるようになる。つづいて,難読化済コンピュータソフトウエアおよび解析制御データ難読化されたもの,難読化されていないものを含むが表示装置3の表示画面に表示され図10ステップ55,ユーザからの送信指令に応じて難読化済コンピュータソフトウエアおよび解析制御データがクライアントコンピュータ1からサーバコンピュータ20に送信される図10ステップ56でYES,ステップ57。クライアントコンピュータ1から送信された難読化済コンピュータソフトウエアおよび解析制御データがサーバコンピュータ20において受信されると図11ステップ61,解析制御データにもとづいて難読化済コンピュータソフトウエアの品質解析が行われる図11ステップ62。難読化済コンピュータソフトウエアの品質解析が行われることにより,上述したように,難読化されている解析結果データが得られる。難読化されている解析結果データがサーバコンピュータ20からクライアントコンピュータ1に送信されるステップ63。図18は,難読化されている解析結果データの一例である。図18の左側の列は難読化されているプログラム要素または一部難読化されている解析制御データであり,右側の列は解析結果を示している。このように難読化されている解析結果データが,上述した復元データを用いて復元される。図19は,復元された解析結果データの一例である。図19の左側の列は難読化が復元されたプログラム要素および解析制御データであり,右側の列は解析結果を示している。このように,サーバコンピュータ20におけるコンピュータソフトウエアの解析をクライアントコンピュータ1から制御できる。しかも,クライアントコンピュータ1からサーバコンピュータ20に送信される解析制御データは難読化されているので,第三者に対して秘匿化を維持できる。図20から図34は,他の実施例を示している。図20および図21は,クライアントコンピュータ1の処理手順を示すフローチャートである。上述したのと同様に,クライアントコンピュータ1にオリジナルコンピュータソフトウエアが入力される図20ステップ71。図22は,オリジナルコンピュータソフトウエアの一例である。図22に示したオリジナルコンピュータソフトウエアは難読化されていないので,その内容を把握できる。図22においても,一部が省略されている。クライアントコンピュータ1において,解析項目リストから解析項目が選択され図20ステップ72,難読化方法リストから難読化方法が決定されるステップ73。図23は,解析項目リストの一例である。解析項目リストは,サーバコンピュータ20において品質解析を行う項目がリスト化されているものである。解析項目リストには行数および複雑度が格納されている。図24は,難読化方法リストの一例である。難読化方法リストには,難読化方法として,名前変換,名前変換処理空化名前変換と処理空化との両方の処理が行われるおよび名前変換処理削除名前変換と処理削除との両方の処理が行われるが格納されている。これらの解析項目リストおよび難読化方法リストが利用されて難読化方法が決定されるが,その詳細については後述する。難読化方法が決定されると,その決定された難読化方法にしたがって,入力されたオリジナルコンピュータソフトウエアが難読化される図20ステップ74。この場合も復元テーブルが生成される。図25から図27は,難読化されたコンピュータソフトウエアの一例である。図25は,名前変換により難読化されたコンピュータソフトウエアの一例である。オリジナルコンピュータソフトウエアのShape,ResultMovepoint,intr2xxyyおよびifが,Za112ay,kop89S5df5f41に変換されている。図26は,名前変換と処理空化により難読化されたコンピュータソフトウエアの一例である。オリジナルコンピュータソフトウエアのShapeおよびResultMovepointが,Za112ayおよびkop89S5df5f41のそれぞれの処理内容が空化されている。空化のために処理内容は除去されているが,行数は変わらない。空化によりセミコロン;が追加されているが,セミコロンの代わりに,たとえば,ifなどのように処理に無関係なソフトウエアを追加することにより難読化してもよい。図27は,名前変換と処理削除により難読化されたコンピュータソフトウエアの一例である。オリジナルコンピュータソフトウエアのShapeおよびResultMovepointが,Za112ayおよびkop89S5df5f41のそれぞれの処理内容が削除されている。難読化されたコンピュータソフトウエアがクライアントコンピュータ1からサーバコンピュータ20に送信されると,上述したように,サーバコンピュータ20において,難読化済コンピュータソフトウエアの品質解析が行われ,難読化済解析結果データが得られる。得られた難読化済解析結果データは,サーバコンピュータ20からクライアントコンピュータ1に送信される。サーバコンピュータ20から送信された難読化済解析結果データがクライアントコンピュータ1において受信されると図21ステップ78,難読化済解析結果データが復元され,解析結果データが得られる。図28は,復元された解析結果データの一例である。解析項目として,解析項目リストに含まれているように行数と複雑度とがあり,それらの解析項目について品質が解析されている。たとえば,行数は37,複雑度は5である。つづいて,上述したように解析項目選択処理図20ステップ72によって選択されていない解析項目のデータが解析データから削除される図21ステップ80。図29は,選択されていない項目である行数についてのデータが削除されている解析結果データの一例である。このように,解析項目として,複雑度が選択され,行数が選択されていないと解析データから行数のデータが削除される。図30は,難度化方法決定処理手順図20ステップ73の処理手順を示すフローチャートの一例である。上述したように,図24に示す難読化方法リストが読み取られステップ91,難読化方法/削除項目特定テーブルが読み取られるステップ92。図31は,難読化方法/削除項目特定テーブルの一例である。難読化方法/削除項目特定テーブルは,コンピュータソフトウエアのプログラム要素のうち欠損するものと欠損しないものとを難読化方法に対応して格納するものである。たとえば,難読化方法が名前変換の場合には,プログラム要素の名前は欠損するが,条件文および処理数は欠損しない。難読化方法が名前変換処理空化の場合には,プログラム要素の名前および条件文は欠損するが,処理数は欠損しない。難読化方法が名前変換処理削除の場合には,プログラム要素の名前および処理数は欠損するが,条件文は欠損しない。難読化方法/削除項目特定テーブルが読み取られると,解析項目削除可能項目テーブルが読み取られる図30ステップ92。図32は,難読化方法/削除項目特定テーブルの一例である。難読化方法/削除項目特定テーブルは,コンピュータソフトウエアのプログラム要素のうち欠損するものと欠損しないものとを解析項目に対応して格納するものである。たとえば,解析項目が行数の場合には,プログラム要素の名前および条件文は欠損するが,処理数は欠損しない。解析項目が複雑度の場合には,プログラム要素の名前および処理数は欠損するが,条件文は欠損しない。このようにして,テーブルが読み取られると,選択された解析項目図20ステップ72に対応する欠損可能なプログラム要素が,図32に示す解析項目/欠損可能項目特定テーブルから分かり,欠損可能なプログラム要素に対応した難読化方法が,図31に示す難読化方法/削除項目テーブルから決定される。たとえば,解析項目として行数が選択されると,図32から名前と条件文とが欠損可能なので,これらのプログラム要素が欠損可能な難読化方法として名前変換処理空化が図31から決定される。図33は,難読化方法決定処理手順の他の処理手順を示すフローチャートである。上述したのと同様に,図24に示す難読化方法リストが読み取られるステップ101。つづいて,解析項目/難読化方法選択テーブルが読み取られるステップ102。図34は,解析項目/難読化方法選択テーブルの一例である。解析項目/難読化方法選択テーブルは,解析項目に対応して難読化方法が格納されている。たとえば,解析項目が行数の場合には,名前変換処理空化と名前変換とが対応して格納され,解析項目が複雑度の場合には,名前変換処理削除と名前変換とが対応して格納されている。解析項目/難読化方法選択テーブルが読み取られると,その読み取られたテーブルから難読化方法が決定されるステップ103。たとえば,解析項目として行数が選択されていると,名前変換処理空化と名前変換とが難読化方法として決定され,解析項目として複雑度が選択されていると名前変換処理削除と名前変換とが難読化方法として決定される。解析項目として,行数および複雑度とが選択されていると,名前変換が難読化方法として決定される。図35から図39は,さらに他の実施例を示している。この実施例は,過去の履歴を利用して難読化方法などを決定するものである。図35は,クライアントコンピュータ1の処理手順を示すフローチャート,図36は,サーバコンピュータ20の処理手順を示すフローチャートである。まず,クライアントコンピュータ1に過去のソフトウエア解析設定履歴データが記憶されているかどうかが確認される図35ステップ111。図37は,ソフトウエア解析設定履歴データが格納されているテーブルの一例である。ソフトウエア解析設定履歴データは,上述した難読化方法の決定などの過去の設定状況を示すものである。第1列,第2列および第3列には,それぞれソースコードソフトウエアの名称,難読化方法のパターンおよび解析項目が格納されている。これらのデータを確認することにより,過去にどのようなソフトウエアについて,どのような難読化方法が行われ,どのような解析項目について品質解析が行われたかがわかる。たとえば,第1行から,ソースコードの名称がClassAについて,パターンII名前変換処理空化の難読化方法が行数について行われたことがわかる。過去の難度化処理と同一の難度化処理を行うことができる。クライアントコンピュータ1にソフトウエア解析設定履歴データが格納されていなければ図35ステップ111でNO,クライアントコンピュータ1のユーザによってソフトウエア解析設定処理が行われる図35ステップ112。上述したようにして解析項目および難読化方法が設定される。すると,設定された情報がソフトウエア解析設定履歴データとして,記憶される図35ステップ113。クライアントコンピュータ1にソフトウエア解析設定履歴データが格納されていれば図35ステップ111でYES,ステップ112および113の処理はスキップされる。つづいて,ユーザによって解析対象となるオリジナルコンピュータソフトウエアが選択され図35ステップ114,選択されたオリジナルコンピュータソフトウエアがクライアントコンピュータ1に入力する図35ステップ115。上述したように,クライアントコンピュータ1に入力したオリジナルコンピュータソフトウエアが難読化され,かつ復元テーブルが生成される図35ステップ116。どの難読化方法で行うかは,図37に示すソフトウエア解析設定履歴データにもとづいて決定される。上述したように,入力したソースコードオリジナルコンピュータソフトウエアがClassAであるとすると,パターンII名前変換処理空化の難読化方法で難読化処理が行われる。難読化済みコンピュータソフトウエアが表示され図35ステップ117,クライアントコンピュータ1に送信指令が与えられることにより,難読化済コンピュータソフトウエアがクライアントコンピュータ1からサーバコンピュータ20に送信される図35ステップ118でYES,ステップ119。クライアントコンピュータ1から送信された難読化済コンピュータソフトウエアがサーバコンピュータ20において受信されると図36ステップ121,サーバコンピュータ20において過去ソフトウエア履歴データが検索される図36ステップ122。過去ソフトウエア履歴データは,サーバコンピュータ20において過去に行われた品質解析の結果を表わすものである。図38は,過去ソフトウエア履歴データが格納されているテーブルの一例である。ソースコード名に対応して,過去の品質解析の結果である行数と複雑度とが格納されている。上述したように,コンピュータソフトウエアは難読化されているので,その名称ソースコード名の難読化される。たとえば,ソースコード名がClassAのコンピュータソフトウエアが難読化されることにより,ソースコード名は,nrBCZ12に変更される。図38においては,難読化されたソースコード名に対応して行数と複雑度とがテーブルに格納されている。つづいて,難読化済コンピュータソフトウエアの品質解析が行われる図36ステップ123。品質解析により得られた解析結果データは過去ソフトウエア履歴データが格納されているテーブルに記憶される図36ステップ124。すでに品質解析が行われた難読化済コンピュータソフトウエアについての解析結果データが過去ソフトウエア履歴データテーブルに格納されている場合には,その解析結果データに上書きされる。これにより過去ソフトウエア履歴データが更新される。もっとも,解析結果データを上書きせずに時系列的に記憶するようにしてもよい。過去に行われた解析結果データと,新たに行われた解析結果データとが比較されることにより解析結果の変更の程度が分る。図39は,過去に行われた解析結果データと,新たに行われた解析結果データとの比較を表わす比較データを格納されている比較データテーブルの一例である。上述したように,過去に行われた解析結果データと,新たに行われた解析結果データとが比較されることにより解析結果の変更の程度が分る。図39においては,過去に行われた行数の解析結果と新たに行われた行数の解析結果の増減および過去に行われた複雑度の解析結果と新たに行われた複雑度の解析結果の増減が格納されている。このように,過去の解析結果との比較結果を得ることができる。難読化されている解析結果データおよび過去の解析結果との比較結果を表わすデータがサーバコンピュータ20からクライアントコンピュータ1に送信される図36ステップ125。"