(57)【要約】【課題】開発過程のソフトウェアの動作確認を、Ｗｅｂサービス上で行なう際に生じる不具合を解消する。ソフトウェア開発上のテスト工程における手間を省き、ソフトウェアをより簡便に開発することができるようにする。【解決手段】開発過程にあるソフトウェアのサービス機能情報を解析する解析部と、ソフトウェアの動作確認テストを行うことでテスト結果を形成する実行部と、動作確認テスト後のテスト結果を表示する表示部とを備える。実行部は、サービス機能情報を管理するテーブルを記憶するサービス記憶部と、サービス機能におけるソフトウェアの動作確認テストを仮の状態で実行する仮実行手段と、ネットワーク上にあるサービスに対して動作確認テストを実行する本実行手段と、ソフトウェアの動作確認に必要なサービス機能情報の解析とサービス記憶部とを参照して仮実行手段もしくは本実行手段の実行方法を判断するための実行判断手段を備える。【選択図】図３
2010003291.tif 000002
【特許請求の範囲】
【請求項１】
Ｗｅｂサービスと連携して実行する機能を備えたソフトウェア部品のコンポーネントを利用してソフトウェアの開発を支援するソフトウェア開発支援装置において、
前記コンポーネントの群があらかじめストックされていて、前記コンポーネントのＷｅｂサービスと連携して実行する機能に関する情報であるサービス機能情報を管理するサービス機能情報テーブルを記憶するサービス記憶部と、
現開発過程にあるソフトウェアの動作確認に必要な前記サービス機能情報を解析する解析手段と、
前記サービス記憶部内のコンポーネント群で開発過程にあるソフトウェアの動作確認テストを仮の状態で実行する仮実行手段と、
前記Ｗｅｂサービスを利用して前記サービス記憶部内のコンポーネント群で現開発過程にあるソフトウェアの動作確認テストを実行する本実行手段と、
前記ソフトウェアの動作確認に必要なサービス機能情報の解析結果と前記サービス記憶部に記憶される前記サービス機能情報テーブルとを参照して前記仮実行手段もしくは前記本実行手段の実行方法を判断するための実行判断手段と、
前記実行判断手段によって判断された実行方法によって、前記仮実行手段もしくは本実行手段にて形成された現開発過程にあるソフトウェアの動作確認テスト結果を表示する表示手段と、
を具備することを特徴とするソフトウェア開発支援装置。
【請求項２】
前記解析手段は、開発中のソフトウェアの動作が確認できるサービス機能情報の解析に加えて、前記ソフトウェアが要求しているサービス機能情報を解析することを特徴とする請求項１に記載のソフトウェア開発支援装置。
【請求項３】
前記解析手段は、前記解析の結果をベースとして、さらに必要とするサービス機能情報に対応するプログラミング言語中の変数オブジェクトを抽出し、加えて、前記抽出したオブジェクトに対応するクラス名を抽出することを特徴とする請求項１または２に記載のソフトウェア開発支援装置。
【請求項４】
前記仮実行手段は、開発するソフトウェアのテスト工程で、前記ソフトウェアのデータ形式を解釈して動作を行い、ソフトウェアの動作確認テストを行うテスト結果データのテンプレートを用いて、仮のテスト結果データを形成し、当該テスト結果データを開発するソフトウェアに解釈させることを特徴とする請求項１に記載のソフトウェア開発支援装置。
【請求項５】
前記本実行手段は、Ｗｅｂサービスを使用する際に、Ｗｅｂサービス上のデータの加工または新たなデータの保存からなるＷｅｂサービス内の状態を物理的に改変させない処理であることを特徴とする請求項１に記載のソフトウェア開発支援装置。
【請求項６】
前記表示手段は、前記解析手段で解析されたソフトウェアの動作確認に必要なサービス機能情報を表示し、前記表示における方法として、アイコンを表示できるアイコン表示方法と、文字列を表示できる文字列表示方法のうちどちらか一方または両方の表示方法を備えた表示手段であることを特徴とする請求項１に記載のソフトウェア開発支援装置。
【請求項７】
前記アイコン表示方法が、前記サービス機能情報を一覧表示できるアイコン一覧表示方法と、アイコンをレイアウトするアイコンレイアウト表示方法とを備えたアイコン表示方法であることを特徴とする請求項６に記載のソフトウェア開発支援装置。
【請求項８】
Ｗｅｂサービスと連携して実行する機能を備えたソフトウェア部品のコンポーネントを利用してソフトウェアの開発を支援するソフトウェア開発支援装置のソフトウェア開発支援方法であって、
サービス記憶部が、前記コンポーネントの群があらかじめストックされていて、前記コンポーネントのＷｅｂサービスと連携して実行する機能に関する情報を管理するサービス機能情報テーブルを記憶するサービス記憶工程と、
解析手段が、現開発過程にあるソフトウェアの動作確認に必要な前記サービス機能情報を解析する解析工程と、
仮実行手段が、前記サービス記憶部内のコンポーネント群で開発過程にあるソフトウェアの動作確認テストを仮の状態で実行する仮実行工程と、
本実行手段が、前記Ｗｅｂサービスを利用して前記サービス記憶部内のコンポーネント群で現開発過程にあるソフトウェアの動作確認テストを実行する本実行工程と、
実行判断手段が、前記ソフトウェアの動作確認に必要なサービス機能情報の解析結果と前記サービス記憶部に記憶される前記サービス機能情報テーブルとを参照して前記仮実行手段もしくは前記本実行手段の実行方法を判断するための実行判断工程と、
表示手段が、前記実行判断手段によって判断された実行方法によって、前記仮実行手段もしくは本実行手段にて形成された現開発過程にあるソフトウェアの動作確認テスト結果を表示する表示工程と、
を有することを特徴とするソフトウェア開発支援方法。
【請求項９】
請求項７に記載のソフトウェア開発支援方法の各工程をコンピュータに実行させるためのプログラム。
【請求項１０】
請求項７に記載のソフトウェア開発支援方法の各工程をコンピュータに実行させるためのプログラムを記憶したコンピュータにより読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの開発を支援するソフトウェア開発支援装置、方法、プログラム及びコンピュータ読取可能な記録媒体に関し、特に、従来のＷｅｂサービスを使用したときの問題点を解消するソフトウェア開発支援装置、方法、プログラム及びコンピュータ読取可能な記録媒体に関する。
【背景技術】
【０００２】
従来から、ソフトウェア開発効率を改善するために、多くのソフトウェアにおいて、共通に利用される機能をまとめたコンポーネントと呼ばれるソフトウェア部品を単位としたソフトウェア開発方法が考えられてきた。
【０００３】
その一例として示される従来技術としては、特許文献１（特開平１１−２３７９８２号公報）や特許文献２（特開２００６−３５０７２９号公報）が挙げられる。これらの発明内容によれば、ソフトウェア開発において、共通となる部分を抜き出して組み合わせる技術が開示されており、ソフトウェア開発を行う上で、一つ一つの機能をパッケージされた構成になっているものであるため、それらを組み合わせることで容易にソフトウェア開発を行えるという利点を備えるものであった。
【０００４】
しかしながら、ソフトウェアの開発においては、そのソフトウェアが正常に動作することを確認することが必要になる。その際に、そのソフトウェアを実行する手段が必要不可欠になる。例えば、ソフトウェアを構成するコンポーネントの機能が、ユーザのスケジュールを管理するＷｅｂサービスから情報を取得する機能を持っている場合、この機能の実行確認を行う際にはＷｅｂサービスに対して実際にアクセスしＷｅｂサービスから正しい結果が返ってくることが正常に動作するか確認する必要がある。
【０００５】
このように実際にＷｅｂサービスへアクセスして実行確認をする方法は、Ｗｅｂサービス上における実際の動作を確認できるという利点を備えているが、次のような問題があった。
【０００６】
例えば、コンポーネントを組み合わせてＷｅｂサービスを利用するソフトウェアを構築する場合、コンポーネントの機能を開発者が確認した上で、Java（登録商標）等のプログラミング言語を用いてコンポーネントの組み合わせを行うことでソフトウェアを構築していた。その際に、ソフトウェアが利用するＷｅｂサービスがＷｅｂ上で実際に稼動しているアプリケーションであるため、テスト段階でアプリケーションの登録情報を変更できない場合があった。
【０００７】
すなわち、テストを行なうためには実行させるための準備が必要になり、例えば、スケジュール情報を加工したい場合、１点目として、加工するスケジュール情報を自分の権限のものにする必要があり、２点目として、自分の権限でない場合には、権限を持つ人に許可を得る必要があるというような、権限や許可を所得するということが必要になり、テストを実施するまでの段階で、時間の浪費や、手続きの煩雑さが問題となり、スムーズにソフトウェアの開発が行えないといった問題があった。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述の問題を背景として、本発明が解決しようとする課題は、従来のＷｅｂサービス上で起こる不具合を解消するものであり、特に詳細は、ソフトウェア開発上のテスト工程における手間を省き、ソフトウェアをより簡便に開発することができるようにすることを課題としている。
【課題を解決するための手段】
【０００９】
上記目的を達成するために本発明に係るソフトウェア開発支援装置は、Ｗｅｂサービスと連携して実行する機能を備えたソフトウェア部品のコンポーネントを利用してソフトウェアの開発を支援するソフトウェア開発支援装置において、前記コンポーネントの群があらかじめストックされていて、前記コンポーネントのＷｅｂサービスと連携して実行する機能に関する情報であるサービス機能情報を管理するサービス機能情報テーブルを記憶するサービス記憶部と、現開発過程にあるソフトウェアの動作確認に必要な前記サービス機能情報を解析する解析手段と、前記サービス記憶部内のコンポーネント群で開発過程にあるソフトウェアの動作確認テストを仮の状態で実行する仮実行手段と、前記Ｗｅｂサービスを利用して前記サービス記憶部内のコンポーネント群で現開発過程にあるソフトウェアの動作確認テストを実行する本実行手段と、前記ソフトウェアの動作確認に必要なサービス機能情報の解析結果と前記サービス記憶部に記憶される前記サービス機能情報テーブルとを参照して前記仮実行手段もしくは前記本実行手段の実行方法を判断するための実行判断手段と、前記実行判断手段によって判断された実行方法によって、前記仮実行手段もしくは本実行手段にて形成された現開発過程にあるソフトウェアの動作確認テスト結果を表示する表示手段と、を具備することを特徴とする。
【００１０】
また、本発明に係るソフトウェア開発支援方法は、Ｗｅｂサービスと連携して実行する機能を備えたソフトウェア部品のコンポーネントを利用してソフトウェアの開発を支援するソフトウェア開発支援装置のソフトウェア開発支援方法であって、サービス記憶部が、前記コンポーネントの群があらかじめストックされていて、前記コンポーネントのＷｅｂサービスと連携して実行する機能に関する情報を管理するサービス機能情報テーブルを記憶するサービス記憶工程と、解析手段が、現開発過程にあるソフトウェアの動作確認に必要な前記サービス機能情報を解析する解析工程と、仮実行手段が、前記サービス記憶部内のコンポーネント群で開発過程にあるソフトウェアの動作確認テストを仮の状態で実行する仮実行工程と、本実行手段が、前記Ｗｅｂサービスを利用して前記サービス記憶部内のコンポーネント群で現開発過程にあるソフトウェアの動作確認テストを実行する本実行工程と、実行判断手段が、前記ソフトウェアの動作確認に必要なサービス機能情報の解析結果と前記サービス記憶部に記憶される前記サービス機能情報テーブルとを参照して前記仮実行手段もしくは前記本実行手段の実行方法を判断するための実行判断工程と、表示手段が、前記実行判断手段によって判断された実行方法によって、前記仮実行手段もしくは本実行手段にて形成された現開発過程にあるソフトウェアの動作確認テスト結果を表示する表示工程と、を有することを特徴とする。
【００１１】
また、本発明に係るプログラムは、上記ソフトウェア開発支援方法の各工程をコンピュータに実行させることを特徴とする。また、本発明に係るコンピュータ読取可能な記録媒体は、上記ソフトウェア開発支援方法の各工程をコンピュータに実行させるプログラムを記録していることを特徴とする。
【発明の効果】
【００１２】
本発明のソフトウェア開発支援装置によれば、開発中のソフトウェアの動作確認を行なう際に、Ｗｅｂサービスを利用する際の許可などを必要とすることがないため、ソフトウェアをより簡便に、迅速に開発することができる効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】本発明に係るソフトウェア開発支援装置が適用されるシステム環境の一例を示す図である。
【図２】本発明を実施するための形態に係るソフトウェア開発支援装置のハードウェア構成の一例を示す図である。
【図３】本発明を実施するための形態に係るソフトウェア開発支援装置の機能構成を示すブロック図である。
【図４】本発明を実施するための形態に係るソフトウェア開発支援装置の動作の全体フローを説明するための模式図である。
【図５】表示方法における文字列表示を示す図である。
【図６】表示方法におけるアイコン表示を示す図である。
【図７】サービス機能がストックされているサービス記憶部内のサービスに関する情報を管理するサービス基本情報テーブルを示す図である。
【図８】サービス機能がストックされているサービス記憶部内のサービス機能情報を管理するサービス機能情報テーブルを示す図である。
【図９】アイコン表示方法における候補表示を示す図である。
【図１０】解析部Ａから実行部Ｂへのフローを示す図である。
【図１１】仮実行手段のフローを示す図である。
【図１２】本実行手段のフローを示す図である。
【図１３】実行結果の一例を示す図である。
【図１４】サービス処理結果を示す図である。
【発明を実施するための形態】
【００１４】
本発明のソフトウェア開発支援装置、ソフトウェア開発支援方法、プログラム、および記録媒体について、以下順に説明する。まず、図１を用いて、本発明に係るソフトウェア開発支援装置、ソフトウェア開発支援方法、プログラム、および記録媒体が適用されるシステム環境について説明する。図１は、本発明に係るソフトウェア開発支援装置が適用されるシステム環境の一例を示す図である。
【００１５】
本発明に係るソフトウェア開発支援装置は、パーソナルコンピュータやワークステーションなどのコンピュータのソフトウェアまたはＷｅｂ等の様々なネットワーク３上のサービスが稼動しているインターネットに接続されているパーソナルコンピュータ（ＰＣ）１に適用されるものである。なお、ＰＣ１は、表示画面であるビットマップスクリーン、入力部であるマウスなどのポインティングデバイスやキーボードなどの操作表示部を備えているものとする。また、ネットワーク３上のサービスは、サービスサーバ２により提供される。サービスサーバ２は、図１に図示するように複数であってもよい。
【００１６】
図２は、本実施の形態に係るソフトウェア開発支援装置１のハードウェア構成の一例を示すブロック図である。図２に示すように、本実施の形態におけるソフトウェア開発支援装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０、ＨＤＤ４０及びＩ／Ｆ５０がバス８０を介して接続されている。また、Ｉ／Ｆ８０にはＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）６０及び操作部７０が接続されている。
【００１７】
ＣＰＵ１０は演算手段であり、全体の動作を制御する。ＲＡＭ２０は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、ＣＰＵ１０が情報を処理する際の作業領域として用いられる。ＲＯＭ３０は、読み出し専用の不揮発性記憶媒体であり、ファームウェア等のプログラムが格納されている。ＨＤＤ４０は、情報の読み書きが可能な不揮発性の記憶媒体であり、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や各種の制御プログラム、アプリケーション・プログラム等が格納される。
【００１８】
Ｉ／Ｆ５０は、バス８０と各種のハードウェアやネットワーク等を接続し制御する。ＬＣＤ６０は、ユーザがソフトウェア開発支援装置１の状態を確認するための視覚的ユーザインタフェースである。操作部７０は、キーボードやマウス等、ユーザがソフトウェア開発支援装置１に情報を入力するためのユーザインタフェースである。
【００１９】
このようなハードウェア構成において、ＲＯＭ３０やＨＤＤ４０若しくは図示しない光学ディスク等の記憶媒体に格納されたプログラムがＲＡＭ２０に読み出され、ＣＰＵ１０の制御に従って動作することにより、ソフトウェア制御部が構成される。このようにして構成されたソフトウェア制御部と、ハードウェアとの組み合わせによって、本実施形態に係るソフトウェア開発支援装置１の機能を実現する機能ブロックが構成される。
【００２０】
次に、本実施の形態に係るソフトウェア開発支援装置１の機能構成について図３を参照して説明する。図３は、本実施の形態に係るソフトウェア開発支援装置１の機能ブロック図である。図３に示すように本実施の形態に係るソフトウェア開発支援装置１は、入力手段１０１、編集手段１０２、解析手段１０４、サービス記憶部１０８、実行判断手段１０５、仮実行手段１０９、本実行手段１０６、通信手段１０７、表示手段１０３、を備えている。
【００２１】
入力手段１０１は、ポインティングデバイスや文字入力部を介して、文字列の入力やビットマップスクリーンに表示されたアイコンの選択や操作を受け付けるものである。アイコンは、ソフトウェアを実行するにあたって呼び出すサービス等を視覚的に表すものである。
【００２２】
編集手段１０２は、入力手段１０１により入力を受け付けた文字列、入力手段１０１により選択や操作が可能なアイコンを保持するものである。
【００２３】
以下、解析手段１０４、サービス記憶部１０８、実行判断手段１０５、仮実行手段１０９、本実行手段１０６、通信手段１０７、および表示手段１０３により実行される処理について説明する。
【００２４】
図４に示されるフローチャート図面は、本発明のソフトウェア開発支援装置１に関して、全体の概略を示すフローチャート図面である。
まず始めに、ステップ−０１（以下、Ｓ−０１と示す。）における、スタートにおいては、開発過程のソフトウェアがある状態である。このソフトウェアは、開発過程の状態であるが、ソフトウェアを構成する各コンポーネント内の機能は完成した状態であって、その完成したソフトウェア内の機能についての動作確認を、テストとして行うテスト動作確認待ちの状態にある。また、ここでの動作確認とは、従来はＷｅｂサービスを使用して、開発過程の状態にあるソフトウェアの機能が正常に動作し、その処理によって、形成される結果を確認することを意味している。
【００２５】
従来の技術においては、ソフトウェアが利用するＷｅｂサービスが、Ｗｅｂ上で実際に稼動しているアプリケーションであるため、テスト段階で、アプリケーションの登録情報を変更できない場合があった。そのため、テストを行なうためには、実行させるための準備が必要になっていた。この点のより詳細な準備としては、スケジュール情報を加工したい場合、１点目として、加工するスケジュール情報が自分の権限のものにする必要があり、２点目としては、自分の権限でない場合は、権限を持つ人に許可を得る必要がある。一方、本発明では、次のような構成することで、上記の従来の問題、すなわち、開発過程の状態にあるソフトウェアの機能の動作確認を、Ｗｅｂサービスにおける許可や権限が必要となる問題を解決している。
【００２６】
始めに、図４に示されるように本発明は、大別して、ソフトウェア機能の解析部Ａとして示される第一階層、結果を生成する実行部Ｂとして示される第二階層、結果を表示する表示部Ｃとして示される第三階層から構成される。より詳細には、本発明のソフトウェア開発支援装置は、前記解析部Ａからなる第一階層には、現開発過程にあるソフトウェアの動作確認に必要なサービス機能情報を解析する解析手段１０４を具備し、前記実行部Ｂからなる第二階層には、サービス機能をまとめたコンポーネント群があらかじめストックされていて、サービスに関する情報を管理するサービス基本情報テーブル１１１と、前記サービス機能情報を管理するサービス機能情報テーブル１１２と、を記憶するサービス記憶部１０８と、前記ソフトウェアの動作確認に必要なサービス機能情報の解析と、前記コンポーネント群があらかじめストックされているサービス記憶部１０８とを参照して仮実行手段１０９もしくは本実行手段１０６の実行方法を判断するための実行判断手段１０５と、現開発過程にあるソフトウェアの動作確認テストを仮の状態で実行する仮実行手段１０９と、Ｗｅｂサービスを利用して現開発過程にあるソフトウェアの動作確認テストを実行する本実行手段１０６を具備し、前記表示部Ｃからなる第三階層には、前記仮実行手段１０９もしくは本実行手段１０６にて形成された現開発過程にあるソフトウェアの動作確認テスト結果を表示する表示手段１０３を具備するものである。
【００２７】
なお、前記サービス基本情報テーブル１１１は、図７に示されるように、各サービスを識別するためのIDと、サービス名、サービスにアクセスするためのURL、サービスに対応するアイコンを識別するためのアイコンIDなどを含むサービスに関する情報とを対応付けたものである。
さらに、前記サービス機能情報テーブル１１２は図８に示されるように、各サービス機能を識別するためのIDと、サービス機能の機能名、サービス機能が利用するサービスのID、サービス機能の処理を収集・加工・出力などの区別をするためのMODE、入力値、テンプレートなどを含むサービス機能に関する情報とを対応付けたものである。
以下順に、その各階層における構成の詳細についての説明を行なう。
【００２８】
（第一階層、解析部Ａの説明）
図４におけるソフトウェア機能の解析部Ａとして示される第一階層は、現在ある開発中のソフトウェアが、どのようなサービス機能情報によって動作が確認できるか解析手段１０４が解析する部位である。ステップとしては、図４に示されるＳ−０２に相当し、サービス基本情報テーブル１１１とサービス機能情報テーブル１１２で管理される情報を参照することで開発中のソフトウェアのサービス機能情報に関する情報を解析し、加えて、前記開発中のソフトウェアが要求しているサービス機能情報について解析し、その解析後の結果を表示させることを主な目的としている。
【００２９】
前記解析部Ａにおける解析結果を表示する方法としては、例えば、図５に示すような文字列表示及びその文字列の内容を補足する内容表示の方法で表示する場合や、図６に示すようなアイコンで表示する場合などがある。これらは、どちらか一方または両方の表示方法を備えているが、ここでは、図５に示される文字列表示の場合を例として示し、ソフトウェア機能の解析部Ａを備えた本発明の第一階層の役割を示す。
【００３０】
図５に示される編集手段が保持している文字列を抽出して、現在ある開発中のソフトウェアが、どのようなサービス機能情報によって動作が確認できるか解析した結果をベースとして、さらに、解析手段１０４は、その文字列を解析して、必要とするサービス機能情報に対応するオブジェクトを抽出する。このとき、オブジェクトとは、図７に示されるサービス基本情報テーブル１１１におけるサービス名と同じクラス名に対応するプログラミング言語中の変数のことである。プログラミング言語に、例えば、Java（登録商標）を用いている場合であれば、オブジェクトとメソッドの区切りにドット「．」が用いられ、編集中の文字列が例えば「service.」となった場合は、「．」を文字照合により識別し「．」以前の文字列を全文字列抽出することによって、文字列「service」がオブジェクトとして抽出される。
【００３１】
また、図７、８に示されるサービス記憶部１０８は、本発明のソフトウェア開発支援装置内にあらかじめストックされているサービス機能を群状態で記憶する部位である。前記サービス記憶部に記憶されるサービス基本情報テーブル１１１は、例えば、図７に示される内容であって、抽出したクラス名に対応するサービス名があるか否かが特定できる。前記サービス記憶部１０８に記憶されるサービス機能情報テーブル１１２は、例えば図８に示される内容であって、「SampleService」や、「ＣＧＩService」などのサービスの機能情報が管理されている。一方、ここで前記オブジェクトが抽出できない場合には、解析手段１０４の処理を終了する。
【００３２】
次に、解析部Ａは、前記抽出したオブジェクトに対応するクラス名を抽出する。
上記と同様に、プログラミング言語に、例えば、Java（登録商標）を用いている場合であれば、オブジェクトの宣言部は「クラス名 オブジェクト文字列;」という形式が用いられ、文字列から「SampleService service;」が得られた場合は文字列「SampleService」がクラス名として抽出される。一方、ここで前記クラス名が抽出できない場合には、解析手段１０４の処理を終了する。
【００３３】
次に、解析部Ａは、サービス基本情報テーブル１１１を参照して、抽出したクラス名に対応するサービス名があるか否かを特定し、対応するサービス名がある場合には、サービス名に対応するサービスIDを取得する。さらに、取得したサービスIDに基づいてサービス機能情報テーブル１１２からサービスIDに対応する機能名を特定し、機能名を取得する。図８でいえば、例えばcalcが相当する。機能名の特定方法については、ユーザが編集手段によって文字列を直接指定してもよい。また、サービス機能情報テーブル１１２からサービスIDに対応する機能名の候補を取得し、候補一覧を示すリストを表示手段を通してユーザに見せてユーザによって選択指定させてもよい。
【００３４】
また、図６に示すようなアイコンで表示する場合では、アイコン表示方法を用いて、ビットマップスクリーン上での具体的な画面構成として示される。この、アイコン表示方法を用いた場合の画面構成は、アイコン一覧表示とアイコンレイアウト表示の各領域があり、さらにその内容を補足する内容表示の方法の領域がある。アイコン一覧表示上のアイコンをマウスなどのポインティングデバイスでドラッグアンドドロップすることにより、アイコンレイアウト表示上に移動する。このようなアイコン表示の場合であっても、上記の文字列と同様に求める機能が何かを明確にすることができる。
【００３５】
上記のように、本発明のソフトウェア開発支援装置では、第一階層として、解析部Ａを設けているが、その解析部Ａにおいては利便性を向上させるため、次のような機能が設けられているとさらによい。
【００３６】
図９においては、アイコン部分の機能を明確にするために候補表示を設けた例を示している。図９では、アイコン表示方法を用いている場合において、候補表示によって表示された候補の表示例を示している。この候補表示は、各アイコンが備える機能名のリストを表示する。これにより、サービスを示すアイコンを選択した際に、該当サービスを利用して行うことができる機能の候補を利用者に対して明確に示すことができる。図９でいえば、例えば「calc」、「filter」等が機能名にあたる。また、候補選択としては、上記候補表示で表示された候補を選択することができる。以上の記載のように、本発明の第一階層である解析部Ａは、開発中のソフトウェアの必要とするサービス機能情報を解析し、開発者などにその内容を表示することが主な目的である。
【００３７】
（第二階層、実行部Ｂの説明）
図４における実行部Ｂとして示される第二階層は、前記解析部Ａで解析された開発中のソフトウェアの必要とするサービス機能情報に対応するサービスを実行して、開発中のソフトウェアの動作確認結果を取得する部位である。
【００３８】
ステップとしては、図４に示されるＳ−０３に相当し、前記開発中のソフトウェアの必要とするサービス機能情報の内容から、仮実行手段１０９か本実行手段１０６かを判断する。より詳細には、前記解析部Ａで得られた解析結果をもとに、開発中のソフトウェアの動作確認を、仮実行手段１０９で結果を形成するか、本実行手段１０６で結果を形成するかを判断する実行判断手段１０５から構成される。
【００３９】
図４に示されるＳ−０３のステップは、本発明のソフトウェア開発支援装置内で実行される動作が、仮実行手段１０９のステップ（Ｓ−０４）で行うものか、本実行手段１０６のステップ（Ｓ−０５）で行うものかを判断するための部位である。
【００４０】
その概要としては、本発明のソフトウェア開発支援装置には、図７、８に示されるような、サービス機能をまとめたコンポーネント群があらかじめストックされているサービス記憶部１０８がある。そして、そのサービス記憶部１０８に記憶されるサービス機能情報テーブル１１２で管理されるMODEの値と、前記解析部Ａにて得た開発中のソフトウェアの必要とするサービス機能情報の解析とを参照し、サービスに対して本実行できない場合は、仮実行手段１０９の「仮実行ルート」と選択し、前記サービスの仮実行にて処理結果を受け取る。他方、前記参照を行い、サービスに対して本実行できる場合は、本実行手段１０６の「本実行ルート」と選択し、Ｗｅｂ上に存在するＷｅｂサービスを利用して、処理結果を受け取るものである。ここの実行判断手段１０５では、仮実行手段１０９の「仮実行ルート」か、本実行手段１０６の「本実行ルート」を判断する。
【００４１】
ここで、図４に示される解析部Ａとして示される第一階層の終端であるＳ−０２から、実行部Ｂとして示される第二階層の始端であるＳ−０３まで到達するフローについて、図１０を用いてより詳しく説明を行なう。
【００４２】
図１０に示されるステップであるＳ−０３−１は、第一階層である解析部Ａより、開発中のソフトウェアの必要とするサービス機能情報の解析結果を受け取る工程に相当する。解析結果としては、例えば、「SampleService」や、「ＣＧＩService」などのサービス名に対応するクラス名であって、加えて、「クラス名 オブジェクト文字列;」という形式結果となる。表示方法としては文字列表示やアイコン表示のどちらかもしくは両方の表示であって良いが、例えば、文字列の場合は、「SampleService service;」が解析結果となった場合、文字列「SampleService」がクラス名として抽出される。さらに、サービス名に対応するクラス名から特定された例えば「calc」などのサービス機能の機能名が取得される。
【００４３】
図１０に示されるＳ−０３−２は、サービス機能をまとめたコンポーネント群があらかじめストックされているサービス記憶部１０８の内容を参照する工程である。本発明のソフトウェア開発支援装置には、図７、８に示されるような、サービス機能をまとめたコンポーネント群があらかじめストックされているサービス記憶部１０８がある。次いで、図１０に示されるＳ−０３−３は、解析結果とサービス記憶部１０８の内容を対比させ実行方法の判断を行なう。そして、そのサービス記憶部１０８の中にあるサービス機能情報テーブル１１２を参照して得られるMODEの値と、前記解析部Ａにて得た開発中のソフトウェアの必要とするサービス機能情報の解析とを参照し、サービスに対して本実行できない場合は、仮実行手段１０９の「仮実行ルート」と選択し、前記サービスの実行にて処理結果を受け取る。他方、前記参照を行い、サービスに対して本実行できる場合は、本実行手段１０６の「本実行ルート」と選択し、Ｗｅｂ上に存在するＷｅｂサービスを利用して、処理結果を受け取るものである。ここの実行判断手段１０５では、仮実行手段１０９の「仮実行ルート」か、本実行手段１０６の「本実行ルート」を判断する。
【００４４】
次いで、この実行判断手段で判断された仮実行手段１０９の「仮実行ルート」もしくは本実行手段１０６の「本実行ルート」に基づいて、以下、図１０に示されるＳ−０３は、仮実行のフローと本実行のフローにより結果が生成される。ここで、図１０に示されるＳ−０３の工程は、図４に示されるＳ−０３と同一のステップを意味している。
【００４５】
前記Ｓ−０３において、仮実行手段１０９のフロー（Ｓ−０４）か、本実行手段１０６のフロー（Ｓ−０５）に分けられ、最終的には、開発中のソフトウェアのテスト結果が形成及び表示することとなるが、仮実行手段１０９のフロー（Ｓ−０４）に関しては図１１を用いて、本実行手段１０６のフロー（Ｓ−０５）に関しては図１１を用いて説明する。
【００４６】
始めに、仮実行手段１０９のフロー（Ｓ−０４）について説明する。ここで、仮実行手段１０９のフロー（Ｓ−０４）は本発明の特徴的な箇所であって、その役割としては、本発明のソフトウェア開発支援装置の内部にあるサービス記憶部１０８を用いて、サービスの仮のアウトプットを生み出す部位である。この仮実行手段１０９のフロー（Ｓ−０４）によって、従来のＷｅｂサービス上で起こる不具合を解消するものであり、特に詳細は、ソフトウェア開発上のテスト工程における手間を省き、ソフトウェアをより簡便に開発することができるようにするものである。
【００４７】
仮実行手段１０９のフロー（Ｓ−０４）における「仮実行」に考え方について、以下さらに説明を加える。
【００４８】
仮実行手段１０９のフロー（Ｓ−０４）における「仮実行」は、サービス内容を仮に実行するための手段を備えており、当該手段は、Ｗｅｂサービスに対して行う処理によってＷｅｂサービスから返されるデータの形式だけを持っており、実際のＷｅｂサービス上にあるデータは保持していない状態となっている。これは、開発するソフトウェアはテスト段階では実際のＷｅｂサービス上にあるデータを用いた結果は必要としないことに起因している。例えば、具体例で説明すると、複数のユーザのスケジュール情報を管理するＷｅｂサービスと連携させるソフトウェアを開発する場合、Ｗｅｂサービスから返されるデータにはＷｅｂサービス上で管理されるユーザの識別子情報やユーザのスケジュール情報が含まれていることが考えられるが、そのような情報をどのような形式でやり取りするかは予め決まっている。したがって、開発するソフトウェアのテスト工程では、そのデータ形式を解釈して動作できることが確認できればよく、実際にＷｅｂサービス上のデータを用いてテストする必要はないことがベースの考え方となっている。よって、仮の実行が行なえる仮実行手段があることで、Ｗｅｂサービスから返されると予測される結果データのテンプレートを用いて仮の結果データを生成し、その仮の結果データをソフトウェアに解釈させることでＷｅｂサービス内のデータを書き換えたり新たなデータを保存させたりすることなくテスト作業を進めることができるという利点を備えている。
【００４９】
ここで記載した、データ形式とは、例えば図１３を参考に説明する。
図１３は、XML形式のデータを示すものであるが、例えば<title>、<subtitle>、<link href=”http://example.com/service/”>、<update>、<author>、<name>、<email>、<id>、<entry>、<feed>といったタグから成り立っている。現実のＷｅｂサービスの例では、<name>にユーザの名前情報、<email>にはユーザのメールアドレス情報、<id>にはユーザの識別子情報が挿入されることが考えられる。Ｗｅｂ上のサービスはアクセスすると、そのサービスが持つ固有の情報などを例えばAtomといったXML形式のデータとして、ネットワークを介して出力する。ここで言及しているAtomとは、IETF(Internet Engineering Task Force)によりRFC4287で定義されたＷｅｂ上でのコンテンツ配信のためのXMLフォーマットである。本発明においては、これらAtomのようなデータ構造を文字列として読み取り、解釈することで実現する。
【００５０】
次に、仮実行手段１０９のフロー（Ｓ−０４）における「仮実行」の具体的なフローについて、図１１を用いて説明する。図１１に示されるＳ−０４−１からＳ−０４−４の各ステップは、仮実行手段１０９のフロー（Ｓ−０４）で行なう詳細なステップである。
【００５１】
始めに、Ｓ−０４−１のステップでは、サービス機能情報を仮実行手段１０９に送出する。サービス機能情報とは、現在ある開発中のソフトウェアの動作が確認できるサービスに関するものであり、前述のように、図８に示される、実行するサービス機能のサービス機能情報テーブル１１２で対応するMODEの値が、加工や出力といったようにＷｅｂサービス上のデータ（例えば、Weｂサービスを提供するＷｅｂサーバが保持するデータ）を加工することや、新たにデータを保存させるようなＷｅｂサービス内の状態を物理的に変化させるような処理を示すので、サービスに対して本実行できないため、仮実行手段１０９のフロー（Ｓ−０４）にて処理する。また、ここで、サービス機能情報を仮実行手段１０９に送出するための手段として、別途、サービス機能情報送出手段を設けても良い。さらに、ここで、サービス機能記憶部３から、必要となるサービスを読み出す際に、サービス機能読み出し手段を設けても良い。
【００５２】
仮実行手段１０９は、Ｓ−０４−２のステップで、サービス機能情報に含まれる入力値とテンプレートを用いてサービス処理結果を仮に形成する手段である。例えば、複数のユーザのスケジュール情報を管理するＷｅｂサービスと連携させるソフトウェアを開発する場合、前記入力値は複数のユーザ名やスケジュールなどが相当し、前記テンプレートは、それら入力値を入力されてサービス機能が返す結果の形式に相当する。サービス機能情報テーブル１１２で管理されるこれらの入力値とテンプレートを用いて、仮実行手段１０９は、サービス記憶部１０８にあらかじめストックされている必要なサービスの機能の一つを用いて開発中のソフトウェアの作動確認を行い、サービス処理結果を仮に生成する手段である。
【００５３】
次いで、Ｓ−０５−２のステップで仮実行手段１０９が形成したサービス処理結果を、Ｓ−０５−３のステップで送出し、Ｓ−０５−４のステップでは、サービス処理結果を受け取る。ここで、サービス処理結果の受け取り先として、サービス処理結果受け取り手段１１０を設けても良い。
【００５４】
このように、サービス処理結果受け取り手段は、Ｓ−０５−１のステップで、サービス機能情報をサービス仮実行手段に送出し、Ｓ−０５−４のステップでサービス処理結果を受け取ることを行なう。
【００５５】
このようにして、本発明のソフトウェア開発支援装置における、仮実行手段１０９のフロー（Ｓ−０４）は、サービス機能記憶部３内のサービスを仮実行して、従来はＷｅｂサービスを使用していたソフトウェアのテストをこの仮実行手段１０９の部位にて行い、開発中のソフトウェアのテスト結果を形成することができる。
【００５６】
次に、本実行手段１０６のフロー（Ｓ−０５）における「本実行」の具体的なフローについて、図１２を用いて説明する。図１２に示されるＳ−０４−１からＳ−０４−５の各ステップは、本実行手段１０６のフロー（Ｓ−０５）で行なう詳細なステップである。
【００５７】
始めに、本実行手段１０６のフロー（Ｓ−０５）における「本実行」に考え方について、以下さらに説明を加える。前記仮実行手段１０９は、開発中のソフトウェアの必要とするサービス機能が、サービスに対して本実行できない場合に、本実行手段１０６は、前記サービス機能がサービスに対して本実行できる場合に使用される。すなわち、実行するサービス機能のサービス機能情報テーブル１１２で対応するMODEの値が、収集であった場合にＷｅｂサービス内の状態を物理的に変化させない処理を示す。そしてそれに共ない、サービス記憶部１０８にあるサービスを実行できるとした場合は、本実行手段１０６の「本実行ルート」と選択し、Ｗｅｂ上に存在するＷｅｂサービスを利用して、処理結果を受け取るものである。また、本実行手段１０６のフロー（Ｓ−０５）における「本実行」は、Ｗｅｂサービスを直接使用するが、Ｗｅｂサービス上データを加工することや、新たにデータを保存させるようなＷｅｂサービス内の状態を物理的に変化させるような処理は行わないものとする。
【００５８】
図１２における、Ｓ−０５−１のステップでは、解析部Ａにより得た結果であるサービス機能情報に含まれるサービスＩＤの読み出しを行なう。ここで、サービス機能情報に含まれるサービスIDの読み出しを行なう際に、別途、サービス記憶部読み出し手段を設けても良い。
次に、Ｓ−０５−２のステップでは、サービス基本情報テーブル１１１に前記サービスIDに対応するＷｅｂサービスに関する情報があるかを参照する。Ｗｅｂサービスに関する情報がある場合、Ｓ−０５−２のステップからＳ−０５−３のステップへと進み、サービス基本情報テーブル１１１で対応するサービスのURLなどを参考に、通信手段を通じてＷｅｂサービスを実行するフローへと進む。ここで、サービスIDに対応するサービスが、サービス基本情報テーブル１１１内において存在しなかった場合、Ｓ−０５−２のステップからENDのステップへと進む。
【００５９】
Ｓ−０５−３のステップでは、対応するＷｅｂサービスに関する情報を読み出し、Ｓ−０５−４のステップでは、通信手段を通じてＷｅｂサービスのサービス機能を実行する。次いで、Ｓ−０５−５のステップでは、Ｗｅｂサービスから実行結果を受け取り、開発中のソフトウェアの動作確認を行なう。ここで、Ｗｅｂサービスに関する情報の読み出しをする際に、Ｗｅｂサービスを読み出すための手段を別途設けても良い。
【００６０】
ここで、従来の問題点として挙げられる、Ｗｅｂサービスを利用する際の、ユーザー許可などの手間を省き、ソフトウェアをより簡便に開発することを目的として、本実行手段１０６のフロー（Ｓ−０５）における「本実行」は、Ｗｅｂサービスを直接使用するが、Ｗｅｂサービス上データを加工することや、新たにデータを保存させるようなＷｅｂサービス内の状態を物理的に変化させるような処理は行わないものとする。
【００６１】
このように、仮実行手段１０９のフロー（Ｓ−０４）および本実行手段１０６のフロー（Ｓ−０５）によって得られる結果の一例として図１３に示される。図１３は、XML形式のデータを示すものであるが、例えば<title>、<subtitle>、<link href=”http://example.com/service/”>、<update>、<author>、<name>、<email>、<id>、<entry>、<feed>といったタグから成り立っている。現実のＷｅｂサービスの例では、<name>にユーザの名前情報、<email>にはユーザのメールアドレス情報、<id>にはユーザの識別子情報が挿入されることが考えられる。上述のような仮実行手段１０９のフロー（Ｓ−０４）および本実行手段１０６のフロー（Ｓ−０５）との場合わけを用いることにより、現在開発中のソフトウェアの作動確認を行うことができる。
【００６２】
（第三階層、表示部Ｃの説明）
第三階層における、表示部Ｃは、得られた結果を表示部にて表示することが目的である。図４のステップとしては、Ｓ−０６である。ここで表示する内容としては上記得られた結果として、図１３に示される内容のようにAtomのようなXML形式の場合は，XMLの要素名とXMLの要素の値を対にした文字列「要素名１：要素の値１，要素名２：要素の値２，…」といった形に整形する方法を用いることができる。
【００６３】
また、表示部Ｃにおいて、実行したソフトウェアの動作確認テストが、仮実行手段１０９もしくは本実行手段１０６の内容であるかについて、そのテスト結果を表示する表示手段１０３を備えている。また、実行方法を示す文字列を形成結果に加えることもできる。これにより、サービスの実行が仮実行手段１０９であったか本実行手段１０６であったかが利用者にわかるようにすることができる。そして、その表示方法の一例としては、図１４のような処理結果となる。
【００６４】
さらに、前記表示部からなる第三階層の表示手段１０３は、前記解析部Ａからなる第一階層の解析手段で解析されたソフトウェアの動作確認に必要なサービス機能情報を表示し、前記表示における方法として、ビジュアルプログラミングによりソフトウェア開発を行うためにアイコンを表示できるアイコン表示方法と、プログラミング言語によりソフトウェア開発を行うために文字列を表示できる文字列表示方法のうちどちらか一方または両方の表示方法を備えた表示手段である。
【００６５】
その際に、前記アイコン表示方法が、前記サービス機能情報を一覧表示できるアイコン一覧表示方法と、アイコンをレイアウトするアイコンレイアウト表示方法とを備えたアイコン表示方法であることが好ましい。
【００６６】
また、この表示手段１０３においては、サービス処理結果を表示用に整形するための内容整形するための手段を設け、結果をわかりやすく表示する手段が付け加えられることが好ましい。さらに、整形されたサービス処理結果を表示するための内容表示手段が別途設けられていてもよい。以上のような実施形式で行われる本発明ソフトウェア開発支援装置は、従来のＷｅｂサービスを使用としたものとは異なり、より簡便にソフトウェアを開発できる。図４のステップとしては、Ｓ−０７にて終了する。
【００６７】
次に、上述した一連の処理を実行するプログラムをコンピュータにインストールして実行可能な状態とするために用いられる媒体について説明する。
【００６８】
上述した各ステップにおける一連の処理を実行するプログラムを、コンピュータにインストールして実行可能な状態とするために用いられる媒体について説明を加える。
各ステップにおける一連の処理を実行するプログラムは、例えば、コンピュータに内蔵されている記録媒体として、ハードディスクを使用し、そのハードディスクにインストールした状態で提供することができる。また、記録媒体に一時的あるいは永続的に格納してコンピュータにユニットとして組み込み、あるいは着脱式の記録媒体として利用することでパッケージソフトウェアとして提供することができる。前記記録媒体としては、例えば、フロッピー（登録商標）ディスク、CD-ROM（Compact Disc Read Only Memory）、MO（Magneto Optical）ディスク、DVD（Digital Versatile Disc）、磁気ディスク、半導体メモリなどが利用できる。また、各ステップにおける一連の処理を実行するプログラムは、ダウンロードサイトから、LAN(Local Area Network)やインターネットといったネットワークを介して、有線または無線でコンピュータに転送し、そのコンピュータにおいて内蔵するハードディスクなどにダウンロードさせるようにすることができる。
【符号の説明】
【００６９】
１    ソフトウェア開発支援装置
２    サービスサーバ
３    ネットワーク
１０１    入力手段
１０２    編集手段
１０３    表示手段
１０４    解析手段
１０５    実行判断手段
１０６    本実行手段
１０７    通信手段
１０８    サービス記憶部
１０９    仮実行手段
１１０    サービス処理結果受け取り手段
１１１    サービス基本情報テーブル
１１２    サービス機能情報テーブル
Ａ    解析部
Ｂ    実行部
Ｃ    表示部
【先行技術文献】
【特許文献】
【００７０】
【特許文献１】特開平１１−２３７９８２号公報
【特許文献２】特開２００６−３５０７２９号公報
【図１】
2010003291.tif 000003
【図２】
2010003291.tif 000004
【図３】
2010003291.tif 000005
【図４】
2010003291.tif 000006
【図５】
2010003291.tif 000007
【図６】
2010003291.tif 000008
【図７】
2010003291.tif 000009
【図８】
2010003291.tif 000010
【図９】
2010003291.tif 000011
【図１０】
2010003291.tif 000012
【図１１】
2010003291.tif 000013
【図１２】
2010003291.tif 000014
【図１３】
2010003291.tif 000015
【図１４】
2010003291.tif 000016