(57)【要約】【課題】本発明は、実装の完了しているモジュールにおいてサービスの呼び出し部分についての解析が可能な構造分析装置を提供する。【解決手段】情報処理サービスを組み合わせたシステムにおいて利用される分析対象のソースコードでインポートしているライブラリのパッケージ構成情報とライブラリの設定情報とを記憶した記憶手段の一部３０、分析対象のソースコードが入力されると、パッケージ構成情報と設定情報とを参照して、ソースコード内の情報処理サービスの呼出部分に関するインターフェース情報を抽出し、これをもとに種々の解析を行う制御手段の一部２０を含む。  【選択図】図１
2010072852.tif 000002
【特許請求の範囲】
【請求項１】
分析対象のソースコードでインポートしているライブラリに関するパッケージ構成情報と前記ライブラリの設定情報とを記憶した記憶手段を設け、
前記分析対象のソースコードが入力されると、前記パッケージ構成情報と前記設定情報とを参照して、前記ソースコード内の情報処理サービスの呼出部分に関するインターフェース情報を抽出し、このインターフェース情報をもとに種々の解析を行う制御手段を備え、
前記制御手段は、前記呼出部分に関する前記インターフェース情報を抽出するインターフェース情報抽出機能と、前記インターフェース情報から前記情報処理サービスのライブラリを利用しているソースコードを抽出するライブラリ利用部分抽出機能とを備えることを特徴とする構造分析装置。
【請求項２】
請求項１に記載の構造分析装置において、
前記制御手段は、前記インターフェース情報に基づいて前記ソースコードにおける分析対象モジュール内の内部サービスか外部サービスかを判定する判定機能を備えることを特徴とする構造分析装置。
【請求項３】
請求項２に記載の構造分析装置において、
前記制御手段は、前記内部サービスと前記外部サービスとの比率に基づいて外部依存度による前記分析対象モジュールの特性を分析する特性分析機能を備えることを特徴とする構造分析装置。
【請求項４】
情報処理サービスを組み合わせたシステムにおいて利用されるソースコードに関し、前記情報処理サービスの呼び出し構造を分析する構造分析装置を用いた構造分析方法であって、
前記ソースコードでインポートしているライブラリのパッケージ構成情報と、前記ライブラリの設定情報とを記憶した記憶手段を参照し、入力された分析対象の前記ソースコード内における前記情報処理サービスの呼出部分に関するインターフェース情報を抽出し、
前記インターフェース情報から前記情報処理サービスのライブラリを利用しているソースコードを抽出し、
前記インターフェース情報とライブラリ利用部分のソースコードとに基づき、前記情報処理サービスの呼出に関する種々の解析を行う、
ことを特徴とする構造分析方法。
【請求項５】
請求項４に記載の構造分析方法において、
前記解析を行うに際しては、前記ソースコードにおける分析対象モジュール内の内部サービスか外部サービスかを判定することを特徴とする構造分析方法。
【請求項６】
請求項５に記載の構造分析方法において、
前記内部サービスと前記外部サービスとの比率に基づいて外部依存度による前記分析対象モジュールの特性をさらに分析することを特徴とする構造分析方法。
【請求項７】
情報処理サービスを組み合わせたシステムにおいて利用されるソースコードに関し、前記情報処理サービスの呼び出し構造を分析する構造分析装置が備えたコンピュータに諸機能を実現させることが可能な構造分析プログラムであって、
前記ソースコードでインポートしているライブラリのパッケージ構成情報と、前記ライブラリの設定情報とを記憶した記憶手段を参照し、入力された分析対象の前記ソースコード内における前記情報処理サービスの呼出部分に関するインターフェース情報を抽出する第１抽出機能と、
前記インターフェース情報から前記情報処理サービスのライブラリを利用しているソースコードを抽出する第２抽出機能と、
前記インターフェース情報とライブラリ利用部分のソースコードとに基づき、前記情報処理サービスの呼出に関する種々の解析を行う解析機能と、
を前記コンピュータに実現させることを特徴とする構造分析プログラム。
【請求項８】
請求項７に記載の構造分析プログラムにおいて、
前記解析機能では、
前記ソースコードにおける分析対象モジュール内の内部サービスか外部サービスかを判定する機能をその内容とし、これを前記コンピュータに実現させることを特徴とする構造分析プログラム。
【請求項９】
請求項８に記載の構造分析プログラムにおいて、
前記内部サービスと前記外部サービスとの比率に基づいて外部依存度による前記分析対象モジュールの特性を分析する特性分析機能をさらに前記コンピュータに実現させることを特徴とする構造分析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構造分析装置、構造分析方法、及び構造分析プログラムに関し、特にサービス連携における依存関係分析を行う装置などに関する。
【背景技術】
【０００２】
サービスを組み合わせたアプリケーションの開発手法が注目されるようになり、アプリケーションの機能をＷｅｂサービス技術で実装することが行われている。そして、Ｗｅｂサービスを組み合わせてアプリケーションを開発することが行われている。
【０００３】
このような中で、Ｗｅｂサービスの利用技術に焦点が置かれ、容易にＷｅｂサービスの呼び出しを行うためのコード生成技術が多く提案されている。
また、ソフトウェアの品質分析を目的とした分析技術や装置も提案されている。
サービスは公開され、再利用することでアプリケーションの開発コストを低くすることが期待されている。
また、依存関係の少ないサービスを組み合わせてアプリケーションを構築することで、サービスの更新や追加が容易となり変更に強いアプリケーションの構築を実現することが期待されている。
【０００４】
サービスを組み合わせる手法としては、サービスバス（ＥＳＢ）を利用した連携やプロセス言語（ＷＳ―ＢＰＥＬなど）を利用した手法があり、連携手法や呼び出し方向などサービス間の連携をサービス自体とは独立して定義することが可能となっており、連携手法について容易に把握、管理することができるようになっている。
【０００５】
さらに、このようなシステムの関連技術として、例えば以下に示す特許文献１などが挙げられる。特許文献１では、インタフェースファイルの解析方法について記述している。
【特許文献１】特開２００２−１４９４０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、Ｗｅｂサービスから直接Ｗｅｂサービスを呼び出す場合は、実装ソースコード中に直接呼出しコードを記述することになるため、依存関係のある外部のＷｅｂサービスを管理することは難しく、Ｗｅｂサービスの品質を検証することは難しくなる。
【０００７】
また、上記のサービスバスやプロセス言語を用いた場合も連携しているサービスがさらに連携しているサービスについては把握できないため、統合サービス全体としての品質を検証することは困難である。
【０００８】
すなわち、サービスのインタフェースであるＷＳＤＬファイルは、自由に参照および特定できない場合がある。
特に、サービスの呼び出し部分のソースコードは、ＷＳＤＬをもとに呼び出しコードの一部を生成するケースが多く、生成されたコードから特定のＷＳＤＬファイルを辿ることはできないため、実装が完了しているサービスの呼び出しを含むモジュールは、呼び出しているサービスとの間にどのような依存関係があるのか、ソースコードから把握することは困難である。
さらに、ソースコードを生成するような仕組みを持つツールは数多くあるが、その仕組みは一方方向であり、生成されたソースコードから生成元の情報（この場合はＷＳＤＬファイル）を特定または逆生成することは困難である。
【０００９】
このため、運用を開始しているシステムにおいては、保守工程の中でＷＳＤＬファイルからソースコードの生成を含む更新はできない場合も多い。
このような場合、コードを生成するツールが、未修正で実行可能なソースコードを生成できないため、雛形として生成されたソースコードを利用して残りの実装を行う。
さらに、バグ修正においても、細かな対応は生成したソースコードを直接修正するケースも多く、このような対処をした場合、直接修正されたソースコードを再度生成することはできなくなってしまう。
このように、ソースコードのみ存在するシステムを解析することが求められていた。
【００１０】
加えて、特許文献１では、インタフェースファイルが存在することを前提としており、ソースコードからインタフェース情報などを抽出して解析を行うことができなかった。
【００１１】
本発明の目的は、上述の関連技術の課題を解決することにあり、実装の完了しているモジュールにおいて、サービスの呼び出し部分についての解析が可能な構造分析装置、構造分析方法、及び構造分析プログラムを提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、本発明の構造分析装置は、分析対象のソースコードでインポートしているライブラリに関するパッケージ構成情報と前記ライブラリの設定情報とを記憶した記憶手段を設け、前記分析対象のソースコードが入力されると、前記パッケージ構成情報と前記設定情報とを参照して、前記ソースコード内の情報処理サービスの呼出部分に関するインターフェース情報を抽出し、このインターフェース情報をもとに種々の解析を行う制御手段を備え、前記制御手段は、前記呼出部分に関する前記インターフェース情報を抽出するインターフェース情報抽出機能と、前記インターフェース情報から前記情報処理サービスのライブラリを利用しているソースコードを抽出するライブラリ利用部分抽出機能とを備えることを特徴としている。
【００１３】
本発明の構造分析方法は、情報処理サービスを組み合わせたシステムにおいて利用されるソースコードに関し、前記情報処理サービスの呼び出し構造を分析する構造分析装置を用いた構造分析方法であって、前記ソースコードでインポートしているライブラリのパッケージ構成情報と、前記ライブラリの設定情報とを記憶した記憶手段を参照し、入力された分析対象の前記ソースコード内における前記情報処理サービスの呼出部分に関するインターフェース情報を抽出し、前記インターフェース情報から前記情報処理サービスのライブラリを利用しているソースコードを抽出し、前記インターフェース情報とライブラリ利用部分のソースコードとに基づき、前記情報処理サービスの呼出に関する種々の解析を行う、ことを特徴としている。
【００１４】
本発明の構造分析プログラムは、情報処理サービスを組み合わせたシステムにおいて利用されるソースコードに関し、前記情報処理サービスの呼び出し構造を分析する構造分析装置が備えたコンピュータに諸機能を実現させることが可能な構造分析プログラムであって、前記ソースコードでインポートしているライブラリのパッケージ構成情報と、前記ライブラリの設定情報とを記憶した記憶手段を参照し、入力された分析対象の前記ソースコード内における前記情報処理サービスの呼出部分に関するインターフェース情報を抽出する第１抽出機能と、前記インターフェース情報から前記情報処理サービスのライブラリを利用しているソースコードを抽出する第２抽出機能と、前記インターフェース情報とライブラリ利用部分のソースコードとに基づき、前記情報処理サービスの呼出に関する種々の解析を行う解析機能と、を前記コンピュータに実現させることを特徴としている。
【発明の効果】
【００１５】
本発明によれば、分析対象のソースコードに対してサービス呼び出しを行っている部分を解析できる。これにより、サービス設計やサービス実装の見直しの機会を与えることや、サービスを組み合わせたシステム全体の弱点分析、サービスを生成するツールを導入する際のツールの評価などに用いることができるという、関連技術にない優れた構造分析装置などを提供することができる。
【発明を実施するための最良の形態】
【００１６】
〔構造分析装置の基本的構成〕
先ず、構造分析装置の基本的構成について説明する。図１に示すように、本発明の構造分析装置１は、情報処理サービスを組み合わせたシステムにおいて利用されるソースコードの構造分析を行うものである。
この構造分析装置１は、分析対象のソースコードでインポートしているライブラリに関するパッケージ構成情報と前記ライブラリの設定情報とを記憶した記憶手段の一部又は一例であるサポートＷｅｂサービス情報格納部３０を設けている。
【００１７】
又、構造分析装置１は、前記分析対象のソースコードが入力されると、前記パッケージ構成情報と前記設定情報とを参照して、前記ソースコード内の情報処理サービスの呼出部分に関するインターフェース情報を抽出し、このインターフェース情報をもとに種々の解析を行う制御手段の一部又は一例であるＷｅｂサービス構造分析処理部２０を備える。
【００１８】
前記制御手段の一部又は一例であるＷｅｂサービス構造分析処理部２０は、前記呼出部分に関する前記インターフェース情報を抽出するインターフェース情報抽出機能の一部又は一例であるＷｅｂサービス呼出コード抽出部２１と、前記インターフェース情報から前記情報処理サービスのライブラリを利用しているソースコードを抽出するライブラリ利用部分抽出機能の一部又は一例であるライブラリ利用部分抽出部２２とを備える。
【００１９】
このような構造分析装置１では、サービスを呼び出すアプリケーションについて、アプリケーションのソースコードから外部サービスの呼び出し方法や呼び出し箇所を抽出する方法として、情報処理サービスの一例であるＷｅｂサービスの呼び出しに利用するライブラリの構成情報の保持の仕方と、分析対象となるソースコードからインタフェース情報を抽出する。  
【００２０】
サービスを組み合わせてアプリケーションを構築する場合の基礎として、Ｗｅｂサービスから呼び出されているサービス（Ｗｅｂサービス、サービスバス、プロセス言語）の情報を呼び出し元のソースコードから抽出する。
【００２１】
これにより、サービスの品質を評価・分析の支援を行う基本機能が提供可能となる。 Ｗｅｂサービスの呼び出しは、Ｗｅｂサービスの呼び出しを行いたいモジュールでＷｅｂサービスのライブラリおよび呼び出したいサービスのインタフェース情報を参照し、Ｗｅｂサービスのライブラリを利用して通信部分のソースコードを生成する、またはライブラリが公開しているＡＰＩを用いて直接通信部分のプログラムコードを作成することにより実現する。
【００２２】
このように、Ｗｅｂサービスの呼び出しのために作成されたソースコードおよび利用しているＷｅｂサービスライブラリの構造を解析し、サービスの呼び出しに必要な情報（呼び出すサービスのインタフェース情報）およびサービス呼び出し箇所を抽出する。
インタフェース情報とサービス呼び出し箇所を抽出することでサービス呼び出しを行っているアプリケーションが、どこでどのようなサービスを呼び出しているのかを抽出する。
さらに、Ｗｅｂサービスを組み合わせたシステムにおいてソースコードを分析することにより、外部のＷｅｂサービスの呼び出しの有無を検出し、外部サービスへの依存度を取得できる。すなわち、分析対象の特性としてＷｅｂサービス呼び出しを行っているモジュールの外部依存度などを求めることができるため、サービス設計やサービス実装の見直しの機会を与えることや、サービスを組み合わせたシステム全体の弱点分析、サービスを生成するツールを導入する際のツールの評価などに用いることができる。  
【００２３】
以下、このような本発明の「構造分析装置」のさらに具体的な実施の形態の一例について、図面を参照して具体的に説明する。
【００２４】
〔第１の実施の形態〕
（構造分析装置の全体構成）
先ず、本実施の形態の構造分析装置の具体的構成について、全体構成から説明し、続いて各部の詳細構成について説明することとする。図１は、本発明における第１実施の形態の画像検索システムの全体の概略構成の一例を示すブロック図である。
【００２５】
図１に示すように、本実施の形態の構造分析装置（システム）１は、分析対象システム情報格納部１１と、インターフェース情報格納部１２と、Ｗｅｂサービスの呼出部分に関する情報を格納したＷｅｂサービス呼出情報格納部１３と、解析結果情報格納部１４と、Ｗｅｂサービス呼出構造分析処理部２０と、サポートＷｅｂサービス情報格納部３０と、を含む。
【００２６】
Ｗｅｂサービス呼び出し構造分析処理部２０は、Ｗｅｂサービスの呼び出し構造を分析するものであり、Ｗｅｂサービス呼出コード抽出部２１と、ライブラリ利用部分抽出部２２と、Ｗｅｂサービス呼出手法解析部２３とを含む。
【００２７】
記憶手段の一部であるサポートＷｅｂサービス情報格納部３０は、サポートするＷｅｂサービス情報としてＷｅｂサービスのライブラリのパッケージ構成を記憶し保管するライブラリのパッケージ構成情報格納部３１を備える。
このパッケージ構成の情報の具体例としては、例えば図５に示すパッケージ構成情報２０１などが挙げられる。
【００２８】
更に、記憶手段の一部であるサポートＷｅｂサービス情報格納部３０は、Ｗｅｂサービスの呼び出しコードの解析、すなわち、サポートしているＷｅｂサービスライブラリを用いて生成したソースファイルを解析する際に、解析する対象ファイルを検索する場合に利用される、生成されたソースファイルの命名規則などのライブラリの設定情報を記憶し保管するライブラリの設定情報格納部３２を備える。
このライブラリの設定情報の具体例としては、例えば図５に示すライブラリ設定情報２１１などが挙げられる。
【００２９】
Ｗｅｂサービス呼び出し構造分析処理部２０におけるＷｅｂサービス呼出コード抽出部２１は、サポートＷｅｂサービス情報格納部３１におけるライブラリのパッケージ構成情報格納部３１のＷｅｂサービスの呼び出しに利用できるライブラリのパッケージ構成情報（例えば図５に示す情報２０１など）と、ライブラリの設定情報格納部３２のＷｅｂサービスライブラリの設定情報（例えば図５に示す情報２１１など）と、に基づいて、分析対象システム情報格納部１１に格納された分析対象となるソースコード（ＷＳＤＬファイルがある場合は含む）を解析し、インターフェース情報（ＷＳＤＬファイルまたは、ＷＳＤＬファイルの作成に必要な構成要素の情報）を抽出する。
【００３０】
Ｗｅｂサービス呼出コード抽出部２１は、抽出したインターフェース情報をインターフェース情報格納部１２に格納する。
【００３１】
サポートＷｅｂサービス情報格納部３０は、ライブラリのパッケージ情報やライブラリを用いて生成するソースコードの命名規則やソースコードのコメント欄に記述されるコメント内容をライブラリ特有の設定情報として与える。
これにより、Ｗｅｂサービスの呼び出しを行っているソースコードのみで呼び出しているサービスのインタフェース情報を構築することができる。
【００３２】
（Ｗｅｂサービス）ライブラリ利用部分抽出部２２は、インターフェース情報格納部１２の抽出したインタフェース情報からＷｅｂサービスライブラリを利用しているソースコード、または、生成した通信部分のモジュールを利用しているソースコードを抽出し、抽出結果を分析対象となるモジュール毎に抽出情報として抽出情報格納部であるＷｅｂサービス呼出情報格納部１３に格納する。
分析は、コンパイルの単位（モジュールの単位）とする。
ここでは、Ｗｅｂサービスの呼び出しを、サポートするＷｅｂサービスライブラリの情報２０１、２１１からＷＳＤＬファイル相当のインタフェース情報および送信メッセージと返却メッセージの実装クラス情報を関連付けて構築する。
【００３３】
Ｗｅｂサービス呼出手法解析部２３は、抽出情報格納部であるＷｅｂサービス呼出情報格納部１３に格納された抽出情報と、インタフェース情報格納部１２に格納されたインターフェース情報とに基づいて呼び出し先情報、呼び出し方法を解析し、解析結果情報を解析結果情報格納部１４に格納する。
【００３４】
解析結果情報格納部１４の解析結果情報は、呼び出し先のサービスと受け渡しに使用しているメッセージ情報の実装コードであるクラスや変数の情報、呼び出しに使用しているライブラリの種類、分析対象プログラム内部の呼び出しか外部の呼び出しかの情報、送信データや返却データの有無などの情報から成る。  
【００３５】
又、分析構造装置１は、プログラム制御により動作するものであり、ネットワーク関連の通信機能を有していれば、デスクトップ、ラップトップコンピュータ、その他無線・有線通信機能を有する情報機器、情報家電機器（テレビ・携帯音楽プレーヤ・ゲーム機）、またはこれに類するコンピュータなどいかなるコンピュータでもよく、移動式・固定式を問わない。
【００３６】
更に、分析構造装置１のハードウエア構成は、種々の情報等を表示するための表示部（スクリーン）、この表示部の表示画面上（の各種入力欄等）にデータを操作入力するための操作入力部（例えばキーボード・マウス・各種ボタン・表示操作部＜画面上のボタン＞・タッチパネル等）、各種信号・データを送受信するための送受信部ないしは通信部（モデムなど）、各種プログラム・各種データを記憶しておく記憶部（例えばメモリ、ハードディスク等）、これらの制御を司る制御部（例えばＣＰＵ、ＭＰＵ、ＤＳＰ等）などを有することができる。    
このうち、記憶手段としての記憶部は、分析対象システム情報格納部１１と、インターフェース情報格納部１２と、Ｗｅｂサービス呼出情報格納部１３と、解析結果情報格納部１４と、サポートＷｅｂサービス情報格納部３０とを含む。
また、制御手段としての制御部の一部は、Ｗｅｂサービス呼出構造分析処理部２０を構成し、Ｗｅｂサービス呼出コード抽出部２１と、ライブラリ利用部分抽出部２２と、Ｗｅｂサービス呼出手法解析部２３とを含む。
【００３７】
ここで、記憶手段は、情報処理サービスを組み合わせたシステムにおいて利用されるソースコードにあって、分析対象の前記ソースコードでインポートしているライブラリのパッケージ構成情報と、前記ライブラリの設定情報とを記憶できる。
また、制御手段は、前記分析対象のソースコードが入力されると、前記パッケージ構成情報と前記設定情報とを参照して、前記ソースコード内の前記情報処理サービスの呼出部分に関するインターフェース情報を抽出し、このインターフェース情報をもとに種々の解析を行う機能を備える。
【００３８】
更に、制御手段は、前記呼出部分に関する前記インターフェース情報を抽出するインターフェース情報抽出機能の一部又は一例であるＷｅｂサービス呼出コード抽出部２１を備える。
【００３９】
更に又、前記制御手段は、前記インターフェース情報から前記情報処理サービスのライブラリを利用しているソースコードを抽出するライブラリ利用部分抽出機能（一例としてライブラリ利用部分抽出部２２）を備える。
【００４０】
又更に、前記制御手段は、前記インターフェース情報に基づいて前記ソースコードにおける分析対象モジュール内の内部サービスか外部サービスかを判定する判定機能（一例としてＷｅｂサービス呼出手法解析部２３）を備える。
【００４１】
（動作処理手順について）
（全体の概略動作）
次に、上述のような構成を有する構造分析装置における全体の概略動作処理手順について、図２を参照しつつ説明する。図２は、本第１の実施の形態による構造分析装置における全体の概略動作二関する動作処理手順の一例を示すフローチャートである。
【００４２】
本実施の形態に係る構造分析装置における動作処理手順は、情報処理サービスを組み合わせたシステムにおいて利用されるソースコードに関し、前記情報処理サービスの呼び出し構造を分析する構造分析装置が行うものを対象とするものである。
【００４３】
この動作処理手順は、基本的手順として、第１抽出手段として機能する構造分析装置が備えたコンピュータが、前記ソースコードでインポートしているライブラリのパッケージ構成情報と、前記ライブラリの設定情報とを記憶した記憶手段（例えば図１に示す符号３０を含む）を参照し、入力された分析対象の前記ソースコード内における前記情報処理サービスの呼出部分に関するインターフェース情報を抽出する（図２に示すステップＳ１０：第１抽出ステップないしは第１抽出機能）。
【００４４】
次に、第２抽出手段として機能する構造分析装置が備えたコンピュータが、前記インターフェース情報から前記情報処理サービスのライブラリを利用しているソースコードを抽出する（図２に示すステップＳ２０：第２抽出ステップないしは第２抽出機能）。
【００４５】
しかる後、解析手段として機能する構造分析装置が備えたコンピュータが、前記インターフェース情報とライブラリ利用部分のソースコードとに基づき、前記情報処理サービスの呼出に関する種々の解析をする（図２に示すステップＳ３０：解析ステップないしは解析機能）ことを行う。
【００４６】
さらに、この動作処理手順において、前記解析を行うに際しては、前記ソースコードにおける分析対象モジュール内の内部サービスか外部サービスかを判定することができる。また、前記ソースコードにおける前記情報処理サービスの呼び出し先情報、呼び出し手法を解析することができる。
以下、これを詳述する。
【００４７】
（Ｗｅｂサービス呼出コード抽出部の詳細動作）  
始めに、第１抽出手段の一部であるＷｅｂサービス呼出コード抽出部２１（又は図２のステップＳ１０）の詳細な動作処理手順（Ｗｅｂサービス呼出コード抽出ステップ）について図３を参照して説明する。図３は、本第１の実施の形態による構造分析装置におけるＷｅｂサービス呼び出しコード抽出部の動作処理手順の一例を示すフローチャートである。
【００４８】
先ず、第１抽出手段として機能し構造分析装置が備えたコンピュータ（以下、コンピュータという）が、分析対象モジュールがサービス呼び出しに利用しているＷＳＤＬファイルの有無を判定する（ステップＳ１０１：ファイル有無判定ステップないしはファイル有無判定機能）。
【００４９】
ステップＳ１０１において、コンピュータが、ＷＳＤＬファイルがあると判定した場合（図３に示すステップＳ１０１の「Ｎ」の場合）には、ＷＳＤＬファイルを分解して要素情報を取得する（ステップＳ１０９：要素情報取得ステップないしは要素情報取得機能）。
この処理では、例えばＷＳＤＬ４Ｊなどのライブラリを利用することでクラスとして要素情報を自由に取得することができる。
【００５０】
一方、ステップＳ１０１において、コンピュータが、ＷＳＤＬファイルがないと判定した場合（図３に示すステップＳ１０１の「Ｙ」の場合）には、以降の手順でソースコードを解析してＷｅｂサービス呼び出しの情報を抽出する。
【００５１】
すなわち、コンピュータが、分析対象のソースコードでインポートしているＷｅｂサービス関連のパッケージ情報を抽出し、解析対象のソースコードのパッケージ名と共に記憶域に格納する（ステップＳ１０２：パッケージ名抽出ステップないしはパッケージ名抽出機能）。
【００５２】
次に、コンピュータが、そのパッケージ内のソースファイルの一覧を記憶する（Ｗｅｂサービスへのアクセスクラスはライブラリを利用して生成した場合は１つのパッケージにまとまっているため）（ステップＳ１０３：ソースファイル一覧抽出ステップないしはソースファイル一覧抽出機能）。
【００５３】
さらに、コンピュータが、ステップＳ１０３で保管したパッケージ内のソースコードからＷＳＤＬファイルのサービス要素（例えばｅｘｔｅｎｄｓ  ｊａｖａｘ．ｘｍｌ．ｒｐｃ．Ｓｅｒｖｉｃｅ）のあるインタフェースクラスを検索する（ステップＳ１０４：インターフェースクラス検索ステップないしはインターフェース検索機能）。
【００５４】
コンピュータが、ステップＳ１０４において、インタフェースクラスが見つからないと判定した場合（図３に示すステップＳ１０４の「Ｎ」の場合）には、ＷＳＤＬファイルから生成したクラスではないため、Ｗｅｂサービスライブラリをインポートしていた分析対象クラスを参照しているソースコードおよび参照箇所を抽出する（ステップＳ１１０：参照箇所抽出ステップないしは参照箇所抽出機能）。
【００５５】
一方、コンピュータが、ステップＳ１０４において、インタフェースクラスがあると判定した場合（図３に示すステップＳ１０４の「Ｙ」の場合）には、ＷＳＤＬファイルから生成したクラス候補のため、図５に示す情報２１１の生成されるファイル名の命名規則と、インタフェースクラスのソースコードからポートタイプクラス名を抽出する（ステップＳ１０５：ポートタイプクラス名抽出ステップないしはポートタイプクラス名抽出機能）。
【００５６】
さらに、コンピュータが、ステップＳ１０３にて保管したソースファイル一覧からポートタイプのインタフェースクラスを探し、オペレーション名、パラメータ型、返却データ型のクラス名をそれぞれ抽出する（ステップＳ１０６：オペレーション名抽出ステップないしはオペレーション名抽出機能）。
【００５７】
次に、コンピュータが、ＷＳＤＬファイルから生成したソースコードの場合、ポートタイプが定義してあるクラス、または、ポートタイプが定義してあるクラスがインタフェースクラスの場合は実装クラス、を検索して、エンドポイント情報を抽出する（ステップＳ１０７：エンドポイント情報抽出ステップないしはエンドポイント情報抽出機能）。
【００５８】
また、ステップＳ１０７で、ＷＳＤＬファイルから生成したソースコードではない場合、コンピュータは、Ｗｅｂサービスライブラリの送信メソッド使用箇所でエンドポイント情報を抽出する。
【００５９】
続いて、コンピュータは、送受信するメッセージのクラス名を抽出する（ステップＳ１０８：メッセージ要素クラス名抽出ステップないしはメッセージ要素クラス名抽出機能）。
【００６０】
さらに、コンピュータは、ここまでで抽出したインタフェース情報を２１０で保管する（ステップＳ１１１：インターフェース情報保管ステップないしはインターフェース情報保管機能）。
【００６１】
（ライブラリ利用部分抽出部の詳細動作）
次に、第２抽出手段の一部であるライブラリ利用部分抽出部２２（又は図２に示すステップＳ２０）の詳細な動作処理手順（ライブラリ利用部分抽出ステップ）について図４を参照して説明する。図４は、本第１の実施の形態による構造分析装置におけるライブラリ利用部分抽出部の動作処理手順の一例を示すフローチャートである。
【００６２】
先ず、Ｓ１０３において抽出したパッケージをインポートしているソースコードを参照して、図４に示すように、第２抽出手段として機能し構造分析装置が備えたコンピュータ（以下、コンピュータという）が、Ｗｅｂサービスへのアクセス部分がＷＳＤＬファイルから生成したものであるか否かを判定する（ステップＳ２０１：生成元判定ステップないしは生成元判定機能）
【００６３】
ステップＳ２０１において、コンピュータが、ＷＳＤＬファイルから生成したものであると判定した場合（図４に示すステップＳ２０１の「Ｙ」の場合）は、ＷＳＤＬファイルのＯｐｅｒａｔｉｏｎ要素のアクセスクラスを参照している箇所を抽出する（ステップＳ２０２：アクセスクラス参照箇所抽出ステップないしはアクセス参照箇所抽出機能）。
【００６４】
ステップＳ２０１において、コンピュータが、ＷＳＤＬファイルから生成したものではないと判定した場合（図４に示すステップＳ２０１の「Ｎ」の場合）は、３０２でＷｅｂサービスライブラリの送信クラスを参照している箇所を抽出する（ステップＳ２０３：送信クラス参照箇所抽出ステップないしは送信クラス参照箇所抽出機能）。
【００６５】
次に、コンピュータが、Ｗｅｂサービス呼出情報格納部１３の情報を格納する（ステップＳ２０４：Ｗｅｂサービス呼出情報格納ステップないしはＷｅｂサービス呼出情報格納機能）。
【００６６】
続いて、コンピュータが、ステップＳ１０８において抽出したメッセージデータの実装クラスを参照して、メッセージデータを設定しているソースファイルおよび使用箇所を抽出する（ステップＳ２０５：メッセージデータ使用箇所抽出ステップないしはメッセージデータ使用箇所抽出機能）。
【００６７】
そして、コンピュータが、送信データや返却データのクラスへの値の設定を解析対象モジュール内で行っているのか、外部から与えられるのか走査し、結果を保管する（ステップＳ２０６：サービス内外判定走査ステップないしはサービス内外判定走査機能）。
【００６８】
（Ｗｅｂサービス呼出手法解析部の詳細動作）
次に、Ｗｅｂサービス呼出手法解析部２３（又は図２に示すステップＳ３０）の動作処理手順（Ｗｅｂサービス呼出手法解析ステップ）について説明する。
【００６９】
ここでは、解析手段として機能し構造分析装置が備えたコンピュータが、抽出済みのエンドポイント情報から内部サービスの呼び出しか外部サービスの呼び出しかを判断して記憶する（Ｗｅｂサービス呼出手法解析ステップないしはＷｅｂサービス呼出手法解析機能）。
【００７０】
以上のように本実施の形態によれば、分析対象の特性としてＷｅｂサービス呼び出しを行っているモジュールの外部依存度などを求めることができるため、サービス設計やサービス実装の見直しの機会を与えることや、サービスを組み合わせたシステム全体の弱点分析、サービスを生成するツールを導入する際のツールの評価などに用いることができる。
【００７１】
また、呼び出し側のソースコードからインタフェース情報を抽出することができる。
さらに、ある実装言語で作成されたソースコードの解析の場合、モジュールの呼び出し関係も名前で識別できる。
ここで、Ｗｅｂサービス技術を用いたメッセージ交換では、通信部分は専用のライブラリを用いるが、ライブラリのバージョンアップや提供ベンダー内で改造したものを提供するなど内容は「C言語での関数の呼び出し」のように固定的に解析できないが、本実施の形態では、このような場合での解析手法を与えることができる。
【００７２】
ここで、図１に示すブロック図における一部の各ブロックは、コンピュータにより実行可能なプログラムにより機能化された状態を示すソフトウエアモジュール構成であってもよい。
【００７３】
すなわち、物理的構成は例えば一又は複数のＣＰＵ（或いは一又は複数のＣＰＵと一又は複数のメモリ）等ではあるが、各部（回路・手段）によるソフトウエア構成は、プログラムの制御によってＣＰＵが発揮する複数の機能を、それぞれ複数の部（手段）による構成要素として表現したものである。
【００７４】
ＣＰＵがプログラムによって実行されている動的状態（プログラムを構成する各手順を実行している状態）を機能表現した場合、ＣＰＵ内に各部（手段）が構成されることになる。プログラムが実行されていない静的状態にあっては、各手段の構成を実現するプログラム全体（或いは各手段の構成に含まれるプログラム各部）は、メモリなどの記憶領域に記憶されている。
【００７５】
以上に示した各部（手段）は、プログラムにより機能化されたコンピュータをプログラムの機能と共に実現し得るように構成しても、また、固有のハードウエアにより恒久的に機能化された複数の電子回路ブロックからなる装置で構成してもよい。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現でき、いずれかに限定されるものではない。
【００７６】
また、各部は、通信可能な専用のコンピュータからなる装置としてそれぞれ構成し、これらの各装置によりシステムを構成してもよい。逆に、各部を単一の装置として構成したシステムであってもよい。
【００７７】
［第２の実施の形態］
次に、本発明にかかる第２の実施の形態について、図６に基づいて説明する。以下には、前記第１の実施の形態の実質的に同様の構成に関しては説明を省略し、異なる部分についてのみ述べる。図６は、本発明の構造分析装置の第２の実施の形態の全体構成の一例を示すブロック図である。
【００７８】
本第２の実施の形態では、分析対象の特性分析部を備えた点が第１の実施の形態と異なる。
具体的には、構造分析装置１００は、図６に示すように、前記第１の実施の形態と同様の構成に加えて、Ｗｅｂサービス呼出構造分析処理部２０内に備えられた分析対象の特性分析部２４と、分析対象モジュールの特性情報を格納した分析対象モジュールの特性情報格納部４１とを備えている。
【００７９】
分析対象の特性分析部２４は、分析対象の特性として、分析対象モジュールから呼び出されるサービスの分類（内部のサービスなのか、外部のサービスなのか）と比率から、分析対象モジュールの特性情報として、外部依存度によるモジュールの安定性などの情報を提供する。
分析対象の特性分析部２４は、その特性分析結果（分析対象モジュールの特性情報）を記憶手段の一部である分析対象モジュールの特性情報格納部４１に格納する。
【００８０】
ここで、Ｗｅｂサービス呼出構造分析処理部２０は、前記第１の実施の形態にて述べたように、制御手段の一部ということができる。
このため、前記制御手段は、前記内部サービスと前記外部サービスとの比率に基づいて外部依存度による前記分析対象モジュールの特性を分析する特性分析機能を備える。
【００８１】
このような構造分析装置１００の動作は、図７に示すように、前記第１の実施の形態と同様の動作に加えて、特性を分析するステップＳ４０（特性分析ステップ）を行う。
具体的には、特性分析手段として機能し構造分析装置が備えたコンピュータ（以下、コンピュータという）が、ステップＳ３０にて導き出された分析対象モジュールから呼び出されるサービスの分類（内部のサービスなのか、外部のサービスなのか）に関する解析結果情報に基づき、内部のサービスの数と外部のサービスの数の比率を求める。
そして、コンピュータが、この比率から外部依存度などによるモジュールの安定性など種々の指標を求める。他の種々の特性や指標を求めてもよい。
【００８２】
このように、前記内部サービスと前記外部サービスとの比率に基づいて外部依存度による前記分析対象モジュールの特性をさらに分析することができる。
【００８３】
以上で説明したように、本第２の実施の形態によると、サービスを組み合わせたアプリケーションの外部依存度および利用しているサービス提供元との関係によるシステムの安定度を評価することができるようになる。このためサービス利用基準を設けることで、サービス呼び出しのあるアプリケーションが基準を満たしていることを評価することができる。
また、外部サービスの呼び出しを含むサービスを新規に作成して公開する場合に満たすべき基準として評価することが出来る。このような評価を可能とすることで、サービス開発の統制に用いることもできる。
【００８４】
その他の構成およびその他のステップないしは機能並びにその作用効果については、前述した実施の形態の場合と同一となっている。また、上記の説明において、上述した各ステップの動作内容及び各部の構成要素並びにそれらによる各機能をプログラム化（ソフトウエアプログラム）し、コンピュータに実行させてもよい。  
【００８５】
[その他の各種変形例]
また、本発明にかかる装置及び方法は、そのいくつかの特定の実施の形態に従って説明してきたが、本発明の主旨および範囲から逸脱することなく本発明の本文に記述した実施の形態に対して種々の変形が可能である。
【００８６】
例えば、上記構成部材の数、位置、形状等は上記実施の形態に限定されず、本発明を実施する上で好適な数、位置、形状等にすることができる。
【００８７】
また、本発明の一実施形態における構造分析装置は、情報処理サービスを組み合わせたシステムにおいて利用されるソースコードに関し、前記情報処理サービスの呼び出し構造を分析する。
この構造分析装置は、前記ソースコードでインポートしているライブラリのパッケージ構成情報と、前記ライブラリの設定情報とを記憶した記憶手段を参照し、入力された分析対象の前記ソースコード内における前記情報処理サービスの呼出部分に関するインターフェース情報を抽出する第１抽出機能と、前記インターフェース情報から前記情報処理サービスのライブラリを利用しているソースコードを抽出する第２抽出機能と、前記インターフェース情報とライブラリ利用部分のソースコードとに基づき、前記情報処理サービスの呼出に関する種々の解析を行う解析機能と、を含んでよい。
【００８８】
又、この構造分析装置は、前記解析機能では、前記ソースコードにおける分析対象モジュール内の内部サービスか外部サービスかを判定する機能を備えてよい。
【００８９】
更に、この構造分析装置は、前記内部サービスと前記外部サービスとの比率に基づいて外部依存度による前記分析対象モジュールの特性を分析する特性分析機能を備えてよい。  
【００９０】
以上説明した方法は、コンピュータがプログラムを記録媒体から読み込んで実行することによっても実現することが出来る。すなわち、上述のプログラムを、情報記録媒体に記録した構成であってもよい。
【００９１】
ところで、このような装置は、単独で存在する場合もあるし、ある機器（例えば電子機器）に組み込まれた状態で利用されることもあるなど、発明の思想としてはこれに限らず、各種の態様を含むものである。
構造分析装置は、例えばパーソナルコンピュータに限らず、各種サーバー、ＥＷＳ（エンジニアリングワークステーション）、中型コンピュータ、メインフレーム、携帯型情報端末、各種モバイル端末、ＰＤＡ、携帯電話機、ウエアラブル情報端末、各種情報通信機能を搭載した家電機器などに装備してよい。
また、前記実施の形態において、各部が同一筐体中にあるか否かは問わない。このため、複数の機器から構成されるものに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【００９２】
また、発明の範囲は、図示例に限定されないものとする。さらに、上記各実施の形態には種々の段階が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。つまり、上述の各実施の形態同士、あるいはそれらのいずれかと各変形例のいずれかとの組み合わせによる例をも含む。
【産業上の利用可能性】
【００９３】
本発明は、コンピュータ全般に利用可能できる。
【図面の簡単な説明】
【００９４】
【図１】本発明の第１の実施の形態による構造分析装置の全体構成の一例を示すブロック図である。
【図２】本発明の第１の実施の形態による構造分析装置における全体の概略動作二関する動作処理手順の一例を示すフローチャートである。
【図３】本発明の第１の実施の形態による構造分析装置におけるＷｅｂサービス呼び出しコード抽出部の動作処理手順の一例を示すフローチャートである。
【図４】本発明の第１の実施の形態による構造分析装置におけるライブラリ利用部分抽出部の動作処理手順の一例を示すフローチャートである。
【図５】本発明の構造分析装置におけるライブラリのパッケージ構成情報、ライブラリの設定情報の一例を示す説明図である。
【図６】本発明の第２の実施の形態による構造分析装置の全体構成の一例を示すブロック図である。
【図７】本発明の第２の実施の形態による構造分析装置における全体の概略動作二関する動作処理手順の一例を示すフローチャートである。
【符号の説明】
【００９５】
１、１００  構造分析装置
１１  分析対象システム情報格納部
１２  インターフェース情報格納部
１３  Ｗｅｂサービス呼出情報格納部
１４  解析結果情報格納部
２０  Ｗｅｂサービス呼出構造分析処理部２０（制御手段の一部）
２１  Ｗｅｂサービス呼出コード抽出部（インターフェース情報抽出機能）
２２  ライブラリ利用部分抽出部（ライブラリ利用部分抽出機能）
２３  Ｗｅｂサービス呼出手法解析部（判定機能）
２４  分析対象の特性分析部（特性分析機能）
３０  サポートＷｅｂサービス情報格納部（記憶手段の一部）
３１  ライブラリのパッケージ構成情報格納部
３２  ライブラリの設定情報格納部
４１  分析対象モジュールの特性情報格納部
【図１】
2010072852.tif 000003
【図２】
2010072852.tif 000004
【図３】
2010072852.tif 000005
【図４】
2010072852.tif 000006
【図５】
2010072852.tif 000007
【図６】
2010072852.tif 000008
【図７】
2010072852.tif 000009