(57)【要約】【課題】マルチベンダー開発時における外部インターフェースの不整合の問題が発生するのを回避するとともに、開発の効率化及びソースコードの再利用化を促進するソフトウェア開発支援システムを提供する。【解決手段】所定のテンプレートにしたがって外部から入力された設計情報を解析し、設計情報に応じた動作を実現するソースコードを生成するために必要なソースコード情報を生成する設計情報解析部１０２と、設計情報解析部１０２により生成されたソースコード情報に基づいてソースコードを自動生成するソースコード生成部１０３と、設計情報解析部１０２により生成されたソースコード情報に含まれる振る舞い情報とソースコード生成部１０３により生成されたソースコードとを関連付けた関連情報を生成する関連解析部２０１と、関連解析部２０１により生成された関連情報をデータベースに登録する関連登録部２０２とを備える。【選択図】図１
2011053755.tif 000002
【特許請求の範囲】
【請求項１】
所定のテンプレートにしたがって外部から入力された設計情報を解析し、前記設計情報に応じた動作を実現するソースコードを生成するために必要なソースコード情報を生成する設計情報解析部と、
前記設計情報解析部により生成されたソースコード情報に基づいてソースコードを自動生成するソースコード生成部と、
前記設計情報解析部により生成されたソースコード情報に含まれる振る舞い情報と前記ソースコード生成部により生成されたソースコードとを関連付けた関連情報を生成する関連解析部と、
前記関連解析部により生成された関連情報をデータベースに登録する関連登録部と、
を備えることを特徴とするソフトウェア開発支援システム。
【請求項２】
外部から入力された検索キーに対応する前記振る舞い情報に基づいて前記データベースに登録された前記関連情報を参照し、前記振る舞い情報に関連付けられたソースコードを検索する検索部を備えることを特徴とする請求項１記載のソフトウェア開発支援システム。
【請求項３】
前記検索部は、前記データベースに登録された関連情報に基づいて候補となる振る舞い情報を表示装置に表示させるとともに、検索した結果を前記表示装置に表示させることを特徴とする請求項２記載のソフトウェア開発支援システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア開発の分野においてデータベースに必要な情報を適宜登録し、適切な検索を可能にするソフトウェア開発支援システムに関する。
【背景技術】
【０００２】
近年、ソフトウェアの大規模化が進み、マルチベンダーによる開発体制が多く採用されている。マルチベンダーで開発する際には、相互の外部インターフェース部分等の認識合わせが重要であり、不整合の問題を回避して迅速確実な開発を行うために必須である。また、データベース化されたサンプルプログラムは、検索によるソースコードの再利用を促進し、開発の効率化に資するという利点を有する。
【０００３】
特許文献１には、ソフトウェアの生産性や再利用のため、ソフトウェア部品を用意して組み合わせることにより、アプリケーションを作成する際のソフトウェア部品の検索や合成を支援するソフトウェア部品の作成支援方法について記載されている。このソフトウェア部品の作成支援方法は、複数のソフトウェア部品を組み合わせて構成されるソフトウェア部品の作成支援において、所定の属性関連ルールによりソフトウェア部品の曖昧検索を行い、所定のコード変更ルールにより要求仕様に応じてソフトウェア部品のコード内容を変更・修正することを特徴とする。ここで、属性関連ルールは、ソフトウェア部品の分野や機能を表す属性のキーの類似検索のために属性及びその属性値間の関係を表したルールであり、また、コード変換ルールは、属性値によって変更可能な部分のコードを変更するルールである。
【０００４】
そして、この構成により、事例ベース推論の概念をソフトウェア部品合成に適用することができる。つまり、属性関連ルールによって要求仕様を大枠で満たすようなソフトウェア部品を選択し、またソフトウェア部品のコードに変更可能な部分とそれを示す属性値との対応をとっておき、要求仕様に応じて選択したソフトウェア部品のコード内容をコード変更ルールで自動的に変更修正することができる。
【０００５】
また、ソフトウェア部品が内部に置換ソフトウェア部品を含み、ソフトウェア部品の変更・修正が要求仕様にしたがって置換ソフトウェア部品を交換することで行われる構成とすることもできる。この場合、置換ソフトウェア部品がそれを含むソフトウェア部品に依存しないように書かれている。
【０００６】
特許文献２には、ソフトウェア部品の再利用によるソフトウェア開発環境生成システムが記載されている。このソフトウェア開発環境生成システムは、適用可能なソフトウェア開発環境および他のソフトウェア部品との合成可能範囲の情報を含むルール情報と対になった複数の再利用可能なソフトウェア部品情報を記憶したデータベースと、新たなソフトウェア開発環境におけるプラットフォーム、使用言語などの開発設計情報を受付ける第１の手段と、受付けた開発設計情報に適合するルール情報をデータベースから検索する第２の手段と、検索したルール情報に適合するソフトウェア部品をデータベースから検索する第３の手段と、検索したソフトウェア部品のうち組み合わせが不適切となるソフトウェア部品を当該ソフトウェア部品と対になったルール情報に基づいて検出する第４の手段と、組み合わせが適切なソフトウェアを開発設計情報に適合する新たな開発環境におけるソフトウェア部品として組み込む第５の手段とを備えている。
【０００７】
特許文献２に記載のソフトウェア開発環境生成システムによれば、部品と対になったルール情報を用意しているので、新たな開発環境に適合したソフトウェア部品を抽出して組み込むことができる。また、開発者によって組み合わされた部品に対してルール情報を用いて検査を行うことができ、複数の部品を組み合わせた結果に生じる可能性のある不具合を回避することができる。
【０００８】
さらに、テキストベースの部品から必要な部分のみを抜き出せるので、複数のテキストベースの部品から必要な部分を抜き出し、その場で編集を行うことができ、編集後に作成されたファイルに対しても、複数の部品のルール情報を用いて検査を行うことができ、複数の部品を組み合わせて編集した結果に生じる不具合を回避することができる。また、合成対象の複数の部品の必要な部分のみを選択して取り出して合成しているため、合成に不要な部分を編集領域に記憶する必要がなくなり、編集領域を有効に使用することができる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平９−６９０４１号公報
【特許文献２】特開２００６−３１４２４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、マルチベンダーで開発する際には上述したように相互の外部インターフェース部分等の認識合わせが重要であるが、開発場所ならびに開発組織が異なることから、相互の外部インターフェース部分等の認識合わせは非常に困難であり、外部インターフェースの不整合の問題が多かれ少なかれ発生する。
【００１１】
また、特許文献１に記載のソフトウェア部品の作成支援方法は、上述したように、所定の属性関連ルールによりソフトウェア部品の曖昧検索を行うものであるが、検索可能なソフトウェア部品は登録者が設定した分野や機能を表す属性によって限定されている。また、属性の取りうる値は、予め与えられている。したがって、与えられた属性値や属性関連ルールに基づく類似属性値が異なる場合には、分野や機能が異なるものと判断され、検索を行うことはできない。実際には、与えられた属性値が異なっていても振る舞いレベルで同じソフトウェア部品が存在する場合や、機能が異なってもソースコードレベルで同じ構造体を持つ部品が存在する場合もあるため、これらの検索が困難であることにより開発者は不便を強いられる。
【００１２】
さらに、上記の分野や機能に検索キーを限定した場合に、検索する側もまた業務の知識が必要となるので、当該業務の知識が不十分なユーザは、ソフトウェア部品の利用の可否についてはロジックの確認をしなければ判断できないという問題点もある。マルチベンダー等の開発では、相手のベンダーの業務の把握までは困難であり、他の検索キーも必要となる。
【００１３】
また、特許文献２に記載のソフトウェア開発環境生成システムは、上述したようにソフトウェア部品の開発環境を検索するシステムであるため、予めソフトウェア部品が動作する環境をルール情報として設定しておく必要があり、検索システムとして開発環境以外における部品を検索することができない。マルチベンダー開発において、ベンダー間のソフトウェア部品の再利用は、責務分けの観点からも共通化設計に着目した設計になっていないと困難であり、開発環境に応じた検索のみでは、再利用を行うに際し不十分である。
【００１４】
さらに、データの知識化が自動化されていないため、開発中のシステムにおけるソフトウェア部品がデータベースに反映されるまで時間がかかり、開発と同時進行で類似部品の検索を行うのは困難であるという問題も有する。
【００１５】
本発明は上述した従来技術の問題点を解決するもので、マルチベンダー開発時における外部インターフェースの不整合の問題が発生するのを回避するとともに、開発の効率化及びソースコードの再利用化を促進するソフトウェア開発支援システムを提供することを課題とする。
【課題を解決するための手段】
【００１６】
本発明に係るソフトウェア開発支援システムは、上記課題を解決するために、所定のテンプレートにしたがって外部から入力された設計情報を解析し、前記設計情報に応じた動作を実現するソースコードを生成するために必要なソースコード情報を生成する設計情報解析部と、前記設計情報解析部により生成されたソースコード情報に基づいてソースコードを自動生成するソースコード生成部と、前記設計情報解析部により生成されたソースコード情報に含まれる振る舞い情報と前記ソースコード生成部により生成されたソースコードとを関連付けた関連情報を生成する関連解析部と、前記関連解析部により生成された関連情報をデータベースに登録する関連登録部とを備えることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、マルチベンダー開発時における外部インターフェースの不整合の問題が発生するのを回避するとともに、開発の効率化及びソースコードの再利用化を促進することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施例１の形態のソフトウェア開発支援システムの構成を示す図である。
【図２】本発明の実施例１の形態のソフトウェア開発支援システムを用いて検索する際の画面表示例を示す図である。
【図３】本発明の実施例１の形態のソフトウェア開発支援システムを用いて検索する際の画面表示例を示す図である。
【発明を実施するための形態】
【００１９】
以下、本発明のソフトウェア開発支援システムの実施の形態について図面を参照して詳細に説明する。
【実施例１】
【００２０】
図１は、本発明の実施例１のソフトウェア開発支援システムの構成を示す図である。図１を参照して、ソフトウェア開発支援システムの構成を説明する。本実施例のソフトウェア開発支援システムは、図１に示すように、ソースコード自動生成プログラム１００及び設計情報関連付けプログラム２００を有する端末１と検索プログラム３００を有する端末２とにより構成される。
【００２１】
ソースコード自動生成プログラム１００は、入力された設計情報からソースコードを自動的に生成するためのプログラムであり、設計情報入力部１００、設計情報解析部１０２、及びソースコード生成部１０３により構成される。設計情報入力部１０１は、入力装置１０ａとの間で情報の授受が可能である。
【００２２】
設計情報関連付けプログラム２００は、設計情報とソースコード生成部１０３により生成されたソースコードとを関連付けした情報を自動的に知識化するためのプログラムであり、関連解析部２０１及び関連登録部２０２により構成される。
【００２３】
検索プログラム３００は、設計情報関連付けプログラム２００により知識化した情報を利用してサンプルソースの検索を行うためのプログラムであり、検索部３０１及び入力部３０２により構成される。検索部３０１は、表示装置２０との間で情報の授受が可能である。また、入力部３０２は、入力装置１０ｂとの間で情報の授受が可能である。
【００２４】
また、関連登録部２０２と検索部３０１とは、いずれも関連付け情報知識データベース４００に接続されており、相互に情報の授受を行うことができる。この関連付け情報知識データベース４００は、本発明のデータベースに対応し、関連登録部２０２から取得した関連情報を登録・蓄積するための記憶装置である。
【００２５】
なお、本実施例において関連付け情報知識データベース４００は、端末１及び端末２とは別個に設けられているが、端末１あるいは端末２内に設けられているとしてもよい。あるいは、関連付け情報知識データベース４００は、端末１及び端末２とネットワーク等を介して接続されているとしてもよく、関連登録部２０２及び検索部３０１との間で情報の授受が可能であれば、その接続形態や設置場所は問わない。
【００２６】
さらに、ソースコード自動生成プログラム１００、設計情報関連付けプログラム２００、及び検索プログラム３００は、いずれも単独でも利用することができるため、それぞれ異なる端末内にインストールされていてもよいし、１つの端末内に全てのプログラムがインストールされていてもよい。すなわち、端末内にインストールするプログラムの組み合わせは、用途に応じて自由にカスタマイズが可能である。
【００２７】
例えば、設計情報関連付けプログラム２００のみが端末にインストールされている場合においても、ユーザは、ソースコード自動生成プログラム１００の代わりに、設計情報やソースコードを自ら入力することができる。その結果、設計情報関連付けプログラム２００は、入力された設計情報とソースコードとを関連付けした情報を関連付け情報知識データベース４００に蓄積することで自動的に知識化する。
【００２８】
入力装置１０ａ，１０ｂは、ユーザが意図する情報を端末に入力するための装置であり、例えばキーボードやマウス等の装置である。ソースコード自動生成プログラム１００、設計情報関連付けプログラム２００、及び検索プログラム３００を同じ端末内にインストールする場合には、入力装置を別個に２つ設ける必要は無く、設計情報入力部１０１と入力部３０２とは、同じ入力装置１０ａに接続される。開発者（ユーザ）は、入力装置１０ａを用いて、データ型や階層構造等の内容を記入する欄を用意したテンプレートにしたがって必要事項を入力する。
【００２９】
設計情報入力部１０１は、ユーザにより入力装置１０ａを介して入力された情報を設計情報として設計情報解析部１０２に出力する。その際に、設計情報入力部１０１は、入力された設計情報を設計情報解析部１０２における解析に適切なファイル形式（例えばＣＳＶファイル）に変換して出力する構成でもよい。
【００３０】
設計情報解析部１０２は、所定のテンプレートにしたがって外部から入力された設計情報を解析し、設計情報に応じた動作を実現するソースコードを生成するために必要なソースコード情報を生成する。具体的には、設計情報解析部１０２は、設計情報入力部１０１から取得したＣＳＶファイル等に基づいて設計情報を解析し、データ型や階層構造等あるいは振る舞い情報等のソースコードを生成するために必要な情報を整理し、ソースコード生成や検索に利用しやすい形式に変換してソースコード情報として出力する。
【００３１】
ソースコード生成部１０３は、設計情報解析部１０２により生成されたソースコード情報に基づいてソースコードを自動生成する。
【００３２】
関連解析部２０１は、設計情報解析部１０２により生成されたソースコード情報に含まれるソースコードの動作を示す振る舞い情報を抽出し、抽出した振る舞い情報とソースコード生成部１０３により生成されたソースコードとを関連付けた関連情報を生成する。
【００３３】
関連登録部２０２は、関連解析部２０１により生成された関連情報を関連付け情報知識データベース４００に登録する。
【００３４】
入力部３０２は、ユーザにより入力装置１０ｂを介して入力された情報を検索キーとして検索部３０１に出力する。
【００３５】
検索部３０１は、外部から入力された検索キーに対応する振る舞い情報に基づいて関連付け情報知識データベース４００に登録された関連情報を参照し、振る舞い情報に関連付けられたソースコードを検索する。
【００３６】
本実施例において、検索部３０１は、関連付け情報知識データベース４００に登録された関連情報に基づいて、候補となる振る舞い情報を表示装置２０に表示させるとともに、検索した結果を表示装置２０に表示させる。振る舞い情報の具体的な表示例については、後述する。なお、表示装置２０は、例えばディスプレイである。
【００３７】
次に、上述のように構成された本実施の形態の作用を説明する。最初に、開発者（ユーザ）は、入力装置１０ａを介してデータ型や階層構造等の設計情報を記入する欄を用意したテンプレートにしたがって必要事項を入力する。マルチベンダーで開発する際には、ユーザは、例えば外部インターフェースの設計情報を入力する。設計情報入力部１０１は、ユーザにより入力装置１０ａを介して入力された情報を設計情報として設計情報解析部１０２に出力する。
【００３８】
設計情報解析部１０２は、所定のテンプレートにしたがって外部から入力された情報に基づくＣＳＶファイル等から設計情報を解析し、設計情報に応じた動作を実現するソースコードを生成するために必要なソースコード情報を生成する。このソースコード情報は、設計情報に基づくデータ型や階層構造等あるいは振る舞い情報等の情報を含む。ソースコード生成部１０３は、設計情報解析部１０２により生成されたソースコード情報に基づいてソースコードを自動生成する。
【００３９】
関連解析部２０１は、設計情報解析部１０２により生成されたソースコード情報に含まれる振る舞い情報とソースコード生成部１０３により生成されたソースコードとを関連付けた関連情報を生成し、関連登録部２０２に出力する。
【００４０】
なお、本実施例において、関連解析部２０１は、設計情報解析部１０２とソースコード生成部１０３との双方から情報を得ているが、必ずしもこの構成に限らず、ソースコード生成部１０３のみから情報を得る構成でもよい。その場合には、ソースコード生成部１０３は、ソースコードを生成するとともに、データ構造等の設計情報とソースコードとを関連付け情報知識データベース４００に登録して知識化するために、設計情報解析部１０２から得たソースコード情報とソースコードとを関連解析部２０１に出力する。
【００４１】
関連登録部２０２は、関連解析部２０１により生成された関連情報を知識として関連付け情報知識データベース４００に登録する。
【００４２】
以上の動作が繰り返されることにより、関連付け情報知識データベース４００は、設計情報に基づく振る舞い情報とソースコードとが関連付けられた関連情報を蓄積する。開発者が多く存在する場合には、端末は１つとは限らず、ソースコード自動生成プログラム１００と設計情報関連付けプログラム２００とをインストールした複数の端末から関連付け情報知識データベース４００に対して関連情報が送られ、蓄積される。
【００４３】
また、マルチベンダーで開発する際には、各ベンダーが当該プログラムをインストールした端末を使用し、例えばネットワーク上に設けられた関連付け情報知識データベース４００を共有することにより、外部インターフェースとなるソースプログラムの関連情報が関連付け情報知識データベース４００に蓄積される。
【００４４】
また、サンプルソースを検索する際には、開発者は、入力装置１０ｂを介してキーワード等の情報を入力する。入力部３０２は、ユーザにより入力された情報を検索キーとして検索部３０１に出力する。
【００４５】
検索部３０１は、外部から入力された検索キーに対応する振る舞い情報に基づいて関連付け情報知識データベース４００に登録された関連情報を参照し、振る舞い情報に関連付けられたソースコードを検索する。上述したように、検索部３０１は、関連付け情報知識データベース４００に登録された関連情報に基づいて、候補となる振る舞い情報を表示装置２０に表示させるとともに、検索した結果を表示装置２０に表示させる。
【００４６】
図２は、本実施例のソフトウェア開発支援システムを用いて検索する際の表示装置２０における画面表示例を示す図である。図２に示すように、ユーザは、サンプルソース検索画面上に表示された「振る舞いパターン」の右側に設けられたプルダウンメニューから候補となる振る舞い情報を選択することができる。図２において、「データを受信し蓄積する」という振る舞いパターンが振る舞い情報として選択されているので、検索部３０１は、指定した振る舞いパターン「データを受信し蓄積する」を検索キーとして、対応する振る舞い情報に基づいて関連付け情報知識データベース４００に登録された関連情報を参照し、振る舞い情報に関連付けられたソースコードを検索する。
【００４７】
検索部３０１による検索の実行は、ユーザが「検索実行」ボタンを押下することにより行われる。検索結果は、例えば図２に示すように、「データを受信し蓄積する」振る舞い情報に関連付けされたソースコードが「ＳａｖｅＤａｔａ．ｃｐｐ」「ＲｃｖＤａｔａ．ｃｐｐ」のように表示される。
【００４８】
ユーザがプルダウンメニューから選択可能な「振る舞いパターン」は、検索部３０１が関連付け情報知識データベース４００に登録された関連情報に基づいて自動的に登録してもよいし、ソースコード自動生成プログラム１００により自動生成できるソースコードの振る舞いパターンを予め登録しておいてもよい。
【００４９】
図３は、ユーザが「参照」ボタンを押下した場合の表示装置２０における画面表示例を示す図である。図３に示すように、ユーザは、「参照」ボタンを押すことにより、登録している（検索指定できる）振る舞いパターンを表示装置２０に表示することができる。
【００５０】
ここで、振る舞い情報に基づいて検索する利点について述べる。従来は、例えば特許文献１に記載された従来技術のように登録者が設定した機能等に基づいてサンプルソースの検索を行うことができるものであったが、「メッセージ登録機能」、「ユーザ情報新規作成機能」、「新規顧客登録機能」等の機能が登録者により登録の際に設定されていた場合に、以下に示す問題が生ずる。これらの機能は全て、１．ユーザの画面操作で何らかの情報を入力し、２．入力されたデータを分析し、３．入力されたデータを蓄積するものである。すなわち、これらの機能は、いずれも「データを受信し、蓄積する」といった振る舞いで表現することができる。
【００５１】
したがって、機能名は、ドメインで「登録機能」「新規作成機能」といったブレがあり、機能名でのみサンプルソースを検索した場合には、同じような振る舞いを有する機能の検索は困難であるという問題がある。
【００５２】
本発明のソフトウェア開発支援システムは、登録者が機能名を設定して登録するのと異なり、関連解析部２０１がソースコード情報に基づいて振る舞い情報を自動的に生成するとともに、振る舞い情報とソースコードとを関連付けた関連情報を関連登録部２０２を介して関連付け情報知識データベース４００に登録するので、自動的に設定された正確な振る舞いレベルで検索を行うことができ、登録者や利用する分野によってブレがある機能名に基づく検索に比してより柔軟であり、より類似したサンプルコードの検索も容易になる。
【００５３】
上述のとおり、本発明の実施例１の形態に係るソフトウェア開発支援システムによれば、マルチベンダー開発時における外部インターフェースの不整合の問題が発生するのを回避するとともに、開発の効率化及びソースコードの再利用化を促進することができ、ソフトウェア開発コストの削減も可能である。
【００５４】
すなわち、本発明のソフトウェア開発支援システムは、ソースコード自動生成プログラム１００を利用して、各ベンダーが同一の設計情報を共有することにより、インターフェースとなるソースプログラムを自動的に生成するので、正確（相手ベンダーの外部インターフェースと差異のない）なスタブの作成等が容易であり、外部インターフェースの不整合の問題を解決することができる。
【００５５】
また、本発明のソフトウェア開発支援システムは、ソースコードを自動生成した際に、関連付けプログラム２００を利用することにより、設計情報に基づく振る舞い情報とソースコードとを関連付けた「関連情報」を関連付け情報知識データベース４００に登録・蓄積することにより自動的に知識化するので、効率のよいサンプルソースコードの検索が可能となり、開発の効率化につながるという利点を有する。
【００５６】
すなわち、ユーザ（各ベンダー）は、検索プログラム３００を利用して、設計情報に基づく検索を行うことにより、必要なソースプログラム（例えば外部インターフェース）を検索することもでき、ソースコードの再利用化の促進にもつながる。
【００５７】
また、データの知識化が自動化されているため、開発中のシステムにおけるソフトウェア部品がデータベースに即座に反映され、開発と同時進行で類似部品の検索を行うことができる。
【００５８】
さらに、ソースコード自動生成プログラム１００と関連付けプログラム２００と検索プログラム３００の関連を疎にすることで、それぞれ単独での利用が可能となり、用途に応じて自由にカスタマイズが可能であるという利点を有する。
【産業上の利用可能性】
【００５９】
本発明に係るソフトウェア開発支援システムは、ソフトウェア開発の分野においてデータベースに必要な情報を適宜登録し、適切な検索を可能にするソフトウェア開発支援システムに利用可能である。
【符号の説明】
【００６０】
１，２  端末
１０ａ，１０ｂ  入力装置
２０    表示装置
１００  ソースコード自動生成プログラム
１０１  設計情報入力部
１０２  設計情報解析部
１０３  ソースコード生成部
２００  設計情報関連付けプログラム
２０１  関連解析部
２０２  関連登録部
３００  検索プログラム
３０１  検索部
３０２  入力部
４００  関連付け情報知識データベース
【図１】
2011053755.tif 000003
【図２】
2011053755.tif 000004
【図３】
2011053755.tif 000005