(57)【要約】【課題】ソフトウェア部品を入手する際に、開発者の要求を満たしたソフトウェア部品のソースコードのみを入手することを可能とするソフトウェア部品ソースコード生成システムを提供する。【解決手段】部品支援装置１２では、開発者端末１１から送信されたカテゴリ情報とテストデータと結果一致率やカバレージ率の閾値の情報に基づいて、開発者からの要求を満足するソフトウェア部品を提案する。そして、部品支援装置１２におけるソースコード抽出部２１では、提案されたソフトウェア部品のソースコードのうち必要なソースコードを抽出する。抽出されたソースコードは、ソフトウェア部品送信部２２によって部品支援装置１２へと送信される。【選択図】図１
2008242811.tif 000002
【特許請求の範囲】
【請求項１】
開発者が画面上から要求するソフトウェア部品のカテゴリ情報を入力する機能及び該カテゴリ情報を送信する機能を有する開発者端末と、
ソフトウェア部品を提案する機能及びソースコードの抽出を行う機能を有する部品支援装置と、
ソフトウェア部品の利用状況及び格納情報を管理する部品情報データベース、及びソフトウェア部品のソースコードや仕様書を管理する部品構成管理リポジトリが登録されている記憶装置と
を備えたソフトウェア部品ソースコード生成システムであって、
前記部品支援装置は、
前記開発者端末から送信された情報を受信するデータ受信部と、
前記開発者端末から送信された情報に基づいて開発者が要求するソフトウェア部品を検索して提案するソフトウェア部品提案部と
を備えており、
前記ソフトウェア部品提案部は、
前記開発者端末から送信されたカテゴリ情報と要求されるソフトウェア部品のテストデータと結果一致率やカバレージ率の閾値の情報とに基づいて、開発者の要求を満足するソフトウェア部品を検索するソフトウェア部品検索部と、
検索されたソフトウェア部品のソースコード、仕様情報、関連ファイルを表示するソフトウェア部品情報表示部と、
前記ソフトウェア部品情報表示部で表示されている情報のソフトウェア部品を前記開発者端末に送信するソフトウェア部品送信部と、
表示されたソフトウェア部品を開発者が入手する際に開発者が要求するソフトウェア部品のソースコードのうち必要なソースコードを抽出するソースコード抽出部と
を備えることを特徴とするソフトウェア部品ソースコード生成システム。
【請求項２】
前記部品支援装置は、前記開発者端末から送信されるソフトウェア部品のテストデータに基づいて前記部品構成管理リポジトリから開発者が要求するソフトウェア部品と類似しているソフトウェア部品を検索して提供する際に、登録されたソフトウェア部品のソースコードから開発者が必要とするソースコードを抽出して実行可能な状態でソースコードを提供する機能を有することを特徴とする請求項１に記載のソフトウェア部品ソースコード生成システム。
【請求項３】
前期ソースコード抽出部は、開発者の必要とするソフトウェア部品のソースコードを抽出する際に、テストデータと前記部品構成管理リポジトリに格納されているソフトウェア部品のソースコードとを用いてテストを実行し、そのとき得られるカバレージの結果からテスト時に処理が行われたソースコードを開発者が必要なソースコードと決定し、開発者に提供するソースコードとして抽出することを特徴とする請求項１又は請求項２に記載のソフトウェア部品ソースコード生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、開発者が要求するソフトウェア部品を、開発者によって作成されたテストデータを基にソフトウェア部品が蓄積されている構成管理リポジトリから探し出して提案する機能を有するとともに、開発者がソフトウェア部品のソースコードを入手する際に開発者によって利用されるソースコードのみを抽出する機能を有するソフトウェア部品ソースコード生成システムに関するものである。
【背景技術】
【０００２】
ソフトウェア部品の検索サイトにおいて、検索して見つけたソフトウェア部品に開発者の要求を満たす機能があったとしても、ソフトウェア部品のソースコードの中で開発者が使用しない不要なソースコードが含まれる場合がある。また、開発者が必要とするソースコードを提供するために、ソースコード間の依存関係を把握する必要がある。特許文献１に記載された技術では、ソフトウェア部品の合成可能範囲の情報から、複数のソフトウェア部品を組み合わせ新たなソフトウェア部品を開発し、ここで組み合わせたソフトウェア部品に対して開発者が必要なソースコードを選択して、不要なソースコードを省くことができるようにすることで、開発者が要求するソフトウェア部品を生成する方法が開示されている。
【特許文献１】特開２００６−０３１４２４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、特許文献１に記載された技術の場合、組み合わせたソフトウェア部品のソースコードから開発者が不要なソースコードを選択して取り除くようにしているため、開発者がソースコード中の情報を把握しておく必要がある。取り除くことで要求を満たすソフトウェア部品が開発されるとしても、組み合わせたソフトウェア部品のソースコードを開発者が必要であるか判断して除去することは容易ではない。そのため、開発者はソフトウェア部品のソースコードの中で必要なソースコードがどれであるか判断することに相当の時間を要することになる。
【０００４】
本発明の目的は、こうした従来技術の問題点を解決するためになされた発明であり、該当するソフトウェア部品を提供する際に不要なソースコードを自動的に取り除いくことにより開発者がソフトウェア部品のソースコードの内容を理解する必要なく要求を満たしたソフトウェア部品の必要十分なソースコードを入手することを可能とするソフトウェア部品ソースコード生成システムを提供することである。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明のソフトウェア部品ソースコード生成システムは、開発者が画面上から要求するソフトウェア部品のカテゴリ情報を入力する機能及び該カテゴリ情報を送信する機能を有する開発者端末と、ソフトウェア部品を提案する機能及びソースコードの抽出を行う機能を有する部品支援装置と、ソフトウェア部品の利用状況及び格納情報を管理する部品情報データベース、及びソフトウェア部品のソースコードや仕様書を管理する部品構成管理リポジトリが登録されている記憶装置とを備えたソフトウェア部品ソースコード生成システムであって、前記部品支援装置は、前記開発者端末から送信された情報を受信するデータ受信部と、前記開発者端末から送信された情報に基づいて開発者が要求するソフトウェア部品を検索して提案するソフトウェア部品提案部とを備えており、前記ソフトウェア部品提案部は、前記開発者端末から送信されたカテゴリ情報と要求されるソフトウェア部品のテストデータと結果一致率やカバレージ率の閾値の情報とに基づいて、開発者の要求を満足するソフトウェア部品を検索するソフトウェア部品検索部と、検索されたソフトウェア部品のソースコード、仕様情報、関連ファイルを表示するソフトウェア部品情報表示部と、前記ソフトウェア部品情報表示部で表示されている情報のソフトウェア部品を前記開発者端末に送信するソフトウェア部品送信部と、表示されたソフトウェア部品を開発者が入手する際に開発者が要求するソフトウェア部品のソースコードのうち必要なソースコードを抽出するソースコード抽出部とを備えることを特徴とする。
【発明の効果】
【０００６】
本発明のソフトウェア部品ソースコード生成システムによれば、次のような効果がある。
・開発者によって要求されるソフトウェア部品のソースコードから、必要とされるソースコードのみが命令単位で抽出されるとともに、抽出されたソースコードが実行可能な状態で開発者へ提供される。
・開発者によって与えられたテストデータから、開発者の必要とするソースコードが自動で提供されることでソフトウェア部品の入手が容易になり、ソフトウェア開発作業の効率化が可能となる。
【発明を実施するための最良の形態】
【０００７】
以下、本発明を適用したソフトウェア部品ソースコード生成システムの一実施形態について説明する。
図１に示すように、本実施形態に係るソフトウェア部品ソースコード生成システムは、複数の開発者端末１１と、部品支援装置１２と、部品情報データベース１３及び部品構成管理リポジトリ１４が登録されている記憶装置１５とを備えている。
開発者端末１１は、ソフトウェア部品を検索するとともに、ソフトウェア部品のダウンロードを行うために開発者によって使用される装置である。
【０００８】
部品支援装置１２は、開発者からの要求に対して要求機能のソフトウェア部品検索や、ソフトウェア部品の提案、ソフトウェア部品の必要部分のソースコード抽出を行う機能を有している装置である。部品情報データベース１３には、ソフトウェア部品に関する情報が管理されている。部品構成管理リポジトリ１４には、ソフトウェア部品やソフトウェア部品の仕様書に関する情報、及びテストドライバが格納されている。
そして、開発者端末１１はネットワークとしてのインターネット１６を介して部品支援装置１２と通信可能に接続されている。
【０００９】
部品支援装置１２は、開発者から送信された要求に関する情報を受信するデータ受信部１７と、開発者の要求を満足するソフトウェア部品を検索して開発者に提案するソフトウェア部品提案部１８とを備えている。
ソフトウェア部品提案部１８には、ソフトウェア部品検索部１９、ソフトウェア部品情報表示部２０、ソースコード抽出部２１、ソフトウェア部品送信部２２が備えられている。
【００１０】
ソフトウェア部品検索部１９は、開発者が要求するソフトウェア部品を部品構成管理リポジトリ１４から検索する機能を有する。ソフトウェア部品情報表示部２０は、ソフトウェア部品検索部１９で検索されたソフトウェア部品を提案ソフトウェア部品であるソースコードや仕様情報として開発者端末１１の画面に表示する機能を有する。ソースコード抽出部２１は、開発者が提案ソフトウェア部品をダウンロードする際に開発者が必要とするソースコードのみを抽出する機能を有する。そして、ソフトウェア部品送信部２２は、開発者が提案したソフトウェア部品を取得したい場合に、ソフトウェア部品のソースコード、仕様書に関する情報を開発者に送信する機能を有する。
【００１１】
次に、開発者端末１１の画面上に表示される開発者からのソフトウェア部品提案に関する情報を入力するソフトウェア部品検索依頼画面３１について説明する。
図２に示すように、ソフトウェア部品検索依頼画面３１には、テキストボックス３２、チェックボックス３３、検索ボタン３４、キャンセルボタン３５、結果一致率３６、カバレージ率３７が表示される。
【００１２】
テキストボックス３２の欄には、開発者が要求するソフトウェア部品のテストデータの格納場所が記述される。チェックボックス３３では、開発者が要求するソフトウェア部品の分類が指定される。検索ボタン３４が押下されると、検索の実行依頼が要求される。キャンセルボタン３５が押下されると、ソフトウェア部品検索がキャンセルされる。結果一致率３６の欄には、開発者が用意するテストデータに対するテスト結果の閾値が表示される。
【００１３】
カバレージ率３７の欄には、開発者によって用意されたテストデータに対してテスト実行時に得られるカバレージの閾値が表示される。
結果一致率３６とカバレージ率３７との閾値を超えるものがソフトウェア部品として提案される。また、検索カテゴリに表示される分野は部品情報データベースに格納されている分類の項目が表示される。
【００１４】
次に、開発者に提案されるソフトウェア部品のソースコードや仕様情報を表示する提案部品表示画面３８について説明する。
図３に示すように、提案部品表示画面３８には、ファイルリスト３９、提案部品仕様情報４０、ソースビュー４１、検索結果４２、カバレージ率４３、結果一致率４４、次へボタン４５、前へボタン４６、ダウンロードボタン４７、キャンセルボタン４８が表示される。
【００１５】
ファイルリスト３９の欄には、提案されるソフトウェア部品と依存関係のあるファイルが表示される。提案部品仕様情報４０の欄には、部品構成管理リポジトリ１４に格納されている提案するソフトウェア部品の仕様書の内容が表示される。ソースビュー４１の欄には、提案するソフトウェア部品のソースコードが表示される。ソースビュー４１の欄に表示されるソースコードは提案するソフトウェア部品の関数(またはメソッド)が表示される。検索結果４２の欄には、提案ソフトウェア部品数が表示される。カバレージ率４３の欄には、提案ソフトウェア部品のソースコードとテストデータを用いてテストしたときのカバレージの結果とが表示される。
【００１６】
結果一致率４４の欄には、提案ソフトウェア部品のソースコードとテストデータを用いてテストしたときのテストデータ記載の期待値とどのくらいの割合で一致していたのかが表示され。次へボタン４５が押下されると、ソフトウェア部品が検索された結果、複数件該当した場合、一つ後の候補のソフトウェア部品情報へと遷移する。前へボタン４６が押下されると、一つ前の候補のソフトウェア部品情報へと遷移する。ダウンロードボタン４７は、開発者が提案したソフトウェア部品を取得したい場合であって、ソフトウェア部品送信の要求を依頼する際に押下されるボタンである。キャンセルボタン４８は、提案したソフトウェア部品の情報画面を閉じる場合であって、終了依頼をする際に押下されるボタンである。
【００１７】
次に、部品支援装置１２における処理の概要について説明する。
図４に示すように、まず、開発者端末１１から画面に入力されたカテゴリ情報やテストデータが送信されると、当該カテゴリ情報やテストデータは部品支援装置１２のデータ受信部１７によって受信される(ステップＳ４０１)。次に、部品支援装置１２によって、受信されたデータを基に部品構成管理リポジトリ１４に格納されているソフトウェア部品群から要求を満足するソフトウェア部品が検索される(ステップＳ４０２)。
【００１８】
次に、要求を満足したソフトウェア部品のソースコード及び仕様情報が提案部品表示画面３８に表示されることで、開発者にソフトウェア部品が提案される(ステップＳ４０３)。次に、提案部品表示画面３８で提案されたソフトウェア部品を開発者がダウンロードする際に、該当するソフトウェア部品のソースコードのうち開発者が必要とするソースコードが抽出される(ステップＳ４０４)。そして、抽出されたソフトウェア部品のソースコードが開発者端末１１に送信される (ステップＳ４０５)。
【００１９】
次に、ソフトウェア部品検索部１９の処理の流れについて説明する。
図５に示すように、まず、カテゴリ情報、テストデータ、及び結果一致率やカバレージ率の閾値情報がデータ受信部１７によって受信される(ステップＳ５０１)。次に、カテゴリをキーとして、部品情報データベース１３に登録されているソフトウェア部品のソフトウェア部品ＩＤ、ソースコード格納情報が取得される(ステップＳ５０２)。次に、ソースコード格納情報から部品構成管理リポジトリ１４に格納されているソフトウェア部品のソースコードが取得される(ステップＳ５０３)。
【００２０】
取得されたソースコード及びテストデータからテストドライバが作成される(ステップＳ５０５)。次に、作成されたテストドライバが実行されて、テストの実行結果が集計される(ステップＳ５０６)。ステップＳ５０６では、カバレージと実行結果とテストデータに記載の期待値通りのものが得られた割合(以下、結果一致率とする)が集計される。集計された結果、カバレージや結果一致率がカバレージに対する閾値と結果一致率に対する閾値を超えているか否かが判断される(ステップＳ５０７)。閾値を超えていると判断された場合には(ステップＳ５０７)、開発者に提案するソフトウェア部品としてリストに追加される(ステップＳ５０８)。また、ステップＳ５０７で取得されたカバレージの結果が部品情報データベース１３に格納される（ステップＳ５０９）。
【００２１】
一方、ステップＳ５０７において、閾値を超えていないと判断された場合にはステップＳ５０８、Ｓ５０９の処理は実行されない。ステップＳ５０５からステップＳ５０９までの処理は、ソフトウェア部品構成格納リポジトリから取得したソフトウェア部品の関数(メソッド等)の数だけ繰り返し実行される(ステップＳ５０４)。そして、ステップＳ５０４で作成されたソフトウェア部品提案リストはソフトウェア部品情報表示部２０に送信される（ステップ５６１０）。作成されたソフトウェア部品提案リストには、ソフトウェア部品ＩＤ、ファイル名、関数名、関数開始行、関数終了行、カバレージの結果、結果一致率が記述される。関数開始行や関数終了行はテストドライバ作成時に、ソースコードから抽出される。
【００２２】
次に、ソフトウェア部品情報表示部２０の処理の流れについて説明する。
図６に示すように、ソフトウェア部品検索部１９から提案ソフトウェア部品のリストが取得される(ステップＳ６０１)。次に、取得されたリストに記載されているソフトウェア部品ＩＤをキーとして、部品情報データベース１３から提案ソフトウェア部品が依存するファイルとソフトウェア部品の仕様格納情報とが取得される(ステップＳ６０２)。次に、仕様格納情報を基に、部品構成管理リポジトリ１４からソフトウェア部品の仕様書が取得される(ステップＳ６０３)。
【００２３】
次に、提案ソフトウェア部品が依存するファイル名、仕様書の内容とソフトウェア部品のソースコードとが提案部品表示画面３８のファイルリスト３９、提案部品仕様情報４０、ソースビュー４１に出力される(ステップＳ６０４)。提案部品表示画面３８に出力される際に、リストに記述された関数開始行から関数終了行のソースコードがソースビュー４１に、また関数の仕様情報が提案部品仕様情報４０に表示されるようにする。
【００２４】
次に、ソフトウェア部品送信部２２の処理の流れについて説明する。
図７に示すように、開発者によってダウンロードボタン４８が押下されたときに、画面上に表示されているソフトウェア部品のソフトウェア部品ＩＤが取得される(ステップＳ７０１)。次に、取得されたソフトウェア部品ＩＤをキーとして、部品情報データベース１３から該当するソフトウェア部品のソフトウェア部品と依存関係のあるファイルが取得される(ステップＳ７０２)。
【００２５】
次に、取得された格納情報を基に、部品構成管理リポジトリ１４からソフトウェア部品のソースコード及び仕様書が取得される(ステップＳ７０３)。次に、部品構成管理リポジトリ１４から取得されたファイルに対して、開発者が必要とするソフトウェア部品のソースコードのみが抽出される（ステップＳ８０４）。そして、開発者が必要とするソフトウェア部品のファイル一式は開発者端末１１へと送信される(ステップＳ７０５)。
【００２６】
次に、ソフトウェア部品検索時に取得したカバレージの情報から開発者が必要とするソースコードを抽出する流れについて説明する。
図８に示すように、ソフトウェア部品ＩＤに基づいて、対象ソフトウェア部品のカバレージ情報が部品情報データベース１３から取得される（ステップＳ８０１）。また、カバレージ情報に基づいて依存関係のあるクラスが把握される。次に、部品構成管理リポジトリ１４から対象ソフトウェア部品のソースコードが取得される（ステップＳ８０２）。次に、ステップＳ８０２で取得されたソースコードからインポート文、パッケージ文、クラス名の宣言が抽出される（ステップＳ８０４）。
【００２７】
次に、ステップＳ８０４で宣言されたクラス内でカバレージが取得されたメソッドについて抽出される(ステップＳ８０６）。次に、ステップＳ８０６で追加されたメソッド内でカバレージを取得することができなかったソースコードの対象行番号、開始列番号から抽出処理を行う位置情報が取得される(ステップＳ８０８）。次に、ステップＳ８０８で取得された位置情報から、開始列番号から終了列番号の文字数分の命令処理が半角スペースに置き換えられる (ステップＳ８０９)。
【００２８】
抽出されたソースコードから、不要な処理が取り除かれる（ステップＳ８１０）。ステップＳ８０４からステップＳ８０９までの処理は、カバレージが取得されたクラス数の数だけ繰り返し実行される（ステップＳ８０３）。また、ステップＳ８０６からステップＳ８０９までの処理は、カバレージが取得されたメソッド数のだけ繰り返し実行される（ステップＳ８０５）。そして、ステップＳ８０８及びステップＳ８０９の処理は、追加されたメソッド内の除外対象の命令数の数だけ繰り返し実行される（ステップＳ８０７）。
【００２９】
次に、ソフトウェア部品のソースコードを抽出した中で不要な処理を取り除く作業の中でｉｆ文の命令除去処理の流れについて説明する。
図９に示すように、抽出されたソースコードの中でｉｆ文、else-if文、else節が宣言されている行番号がネストの深い順に抽出される。抽出されたｉｆ文もしくはelse-if文、else節の開始行番号、開始列番号、開始括弧、閉じ括弧の行番号、列番号が取得される。そして、ｉｆ文もしくはelse-if文、else節の開始行番号、開始列番号が現在の処理行番号、列番号とされる（ステップＳ９０３）。次に、ｉｆ文の括弧内で命令処理が記述されているか否かチェックされる（ステップＳ９０４）。
【００３０】
ステップＳ９０４において、命令処理が記述されていた場合、ｉｆ文の開始位置から閉じ括弧までの文字が半角スペースに置き換えられる（ステップＳ９０５）。次に、ステップＳ９０５において処理された内容は、ｉｆ文の置換処理であったか否かがチェックされる（ステップＳ９０６）。ｉｆ文の置換処理であった場合、このｉｆ文にelse-if文が含まれているか否かがチェックされる（ステップＳ９０７）。else-if文が含まれていた場合には、else-if文に書かれている文字列「else」が半角スペースに置き換えられ（ステップＳ９０８）。
【００３１】
ステップＳ９０８では、例えば文字列「else if {log("Error")}」となっていた場合、「    if {log("Error")}」というように文字列「else」が半角スペースに置き換えられる。ステップＳ９０７において、else-if文が含まれていなかった場合には、else節が含まれているか否かがチェックされる（ステップＳ９０９）。else節が含まれていた場合には、else節が半角スペースに置き換えられる（ステップＳ９１０）。ステップＳ９１０では、例えば文字列「else {k++;)}」となっていた場合、「     k++; 」というようにelse節が半角スペースに置き換えられる。ステップＳ９０３からステップＳ９１０までの処理は、ｉｆ文の分岐の数だけ繰り返し実行される（ステップＳ９０２）。
【００３２】
ｉｆ文のソースコードを整理するアルゴリズムに沿って抽出されたソースコードを整理をしたときの、ソースコード整理前とソースコード整理後との結果例を図１０に示す。ソースコード整理前でelse節の中身が空であったときに、else節の開始括弧から終了括弧まで内容を除去する処理が実行される。図９、図１０では条件分岐を例にしたが、他にもwhile文やfor文、switch文などの処理に対してもソースコードの整理が行われる。
【００３３】
次に、ソフトウェア部品情報が格納されるソフトウェア部品情報テーブル５１の構造について説明する。
図１１に示すように、ソフトウェア部品情報テーブル５１は、部品ＩＤ列５２、分類列５３、概要列５４、部品格納場所５５、仕様書格納情報５６で構成される。
部品ＩＤ列５２には、ソフトウェア部品毎に一意のＩＤが記録される。当該部品ＩＤ列５２は主キーであり、ソフトウェア部品を登録する際に、一意な値が自動的に発番される。分類列５３は、ソフトウェア部品がどの分野のソフトウェア部品であるのかについての情報が記録される。
【００３４】
概要列５４には、ソフトウェア部品の概要が記録される。部品格納場所５５には、部品構成管理リポジトリ１４内におけるソフトウェア部品のソースコードの格納先が記録される。仕様書格納情報５６には、部品構成管理リポジトリ１４におけるソフトウェア部品の仕様書の格納先が記録される。
【００３５】
次に、ソフトウェア部品検索時に取得されたソフトウェア部品のカバレージ情報を格納するカバレージ情報格納テーブル５７のテーブル構造について説明する。
図１２に示すように、カバレージ情報格納テーブル５７は、ＩＤ列５８、メソッド名５９、依存部品ＩＤ６０、依存クラス名６１、依存メソッド名６２、パッケージ名６３、開始行番号６４、そして終了行番号６５で構成されている。
【００３６】
ＩＤ列５８には、検索対象となるソフトウェア部品のＩＤ列が記録される。メソッド名５９には、開発者の要求するソフトウェア部品のメソッド名が記録される。依存部品ＩＤ６０には、メソッド名５９と依存関係のあるソフトウェア部品のＩＤが記録される。依存クラス名６１には、メソッド名５９と依存関係のある名称が記録される。依存メソッド名６２には、依存関係があるクラス内のどのメソッドと依存関係があるか表す名称が記録される。
【００３７】
パッケージ名６３には、依存クラス名６１のパッケージ構成を表す名称が記録される。開始行番号６４には、依存メソッド名６２のソースコード中の開始行が記録される。そして、終了行番号６５には、依存メソッド名６２のソースコード中の終了行が記録される。なお、ソフトウェア部品ＩＤ５８、メソッド名５９、依存クラス名６１、依存メソッド名６２、パッケージ名６３で主キーを表す。
【００３８】
次に、ソフトウェア部品検索時にカバレージを取得しなかったソースコードの情報を格納するカバレージ未取得情報テーブル６６のテーブル構造について説明する。
図１４に示すように、カバレージ未取得情報テーブル６６は、部品ＩＤ列６７、メソッド名６８、対象クラス名６９、対象メソッド名７０、パッケージ名７１、対象行番号７２、開始列番号７３、終了列番号７４で構成されている。
【００３９】
部品ＩＤ列６７には、検索対象となるソフトウェア部品のＩＤが記録される。メソッド名６８には、開発者の要求するソフトウェア部品のメソッド名が記録される。対象クラス名６９には、カバレージ情報格納テーブル５７で登録された対象メソッドの中でカバレージが未取得のソースコードが存在するクラス名が記録される。対象メソッド名７０には、カバレージ情報格納テーブル５７で登録された対象メソッドの中でカバレージが未取得のソースコードが存在するメソッドが記録される。
【００４０】
パッケージ名７１には、対象クラス名６９のパッケージ構成が記録される。対象行番号７２には、対象メソッド名７０の中でカバレージが未取得であるソースコードの行が記録される。開始列番号７３には、対象メソッド名７０の中でカバレージが未取得であるソースコードの開始列番号が記録される。そして、終了列番号７４には、対象メソッド名７０の中でカバレージが未取得のソースコードの終了列番号が記録される。なお、部品ＩＤ６７、メソッド名６８、対象クラス名６９、対象メソッド名７０、パッケージ名７１、対象行番号７２、開始列番号７３で主キーを表す。
【００４１】
以上のように、本実施形態におけるソフトウェア部品ソースコード生成システムによれば、次のような効果がある。
・開発者が要求するソフトウェア部品のソースコードから必要とするソースコードのみを命令単位で抽出し、抽出したソースコードを実行可能な状態で開発者へ提供することができる。
・開発者がシステムにテストデータを与え、自動で開発者が必要とするソースコードを提供することでソフトウェア部品の入手が容易になる。
【図面の簡単な説明】
【００４２】
【図１】ソフトウェア部品ソースコード生成システムの概要図。
【図２】ソフトウェア部品検索依頼画面の説明図。
【図３】提案部品表示画面の説明図。
【図４】部品支援装置における処理の概要を示すフローチャート。
【図５】ソフトウェア部品検索部の処理の流れを示すフローチャート。
【図６】ソフトウェア部品情報表示部の処理の流れを示すフローチャート。
【図７】ソフトウェア部品送信部の処理の流れを示すフローチャート。
【図８】開発者が必要とするソースコードを抽出する流れを示すフローチャート。
【図９】ｉｆ文の命令除去処理の流れを示すフローチャート。
【図１０】ソースコード整理前とソースコード整理後との結果例。
【図１１】ソフトウェア部品情報テーブルの構造。
【図１２】カバレージ取得情報テーブルのテーブル構造。
【図１３】カバレージ未取得情報テーブルのテーブル構造。
【符号の説明】
【００４３】
１１…開発者端末、１２…部品支援装置、１３…部品情報データベース、１４…部品構成管理リポジトリ、１５…記憶装置、１７…データ受信部と１８…ソフトウェア部品提案部、１９…ソフトウェア部品検索部、２０…ソフトウェア部品情報表示部、２１…ソースコード抽出部、２２…ソフトウェア部品送信部。
【図１】
2008242811.tif 000003
【図２】
2008242811.tif 000004
【図３】
2008242811.tif 000005
【図４】
2008242811.tif 000006
【図５】
2008242811.tif 000007
【図６】
2008242811.tif 000008
【図７】
2008242811.tif 000009
【図８】
2008242811.tif 000010
【図９】
2008242811.tif 000011
【図１０】
2008242811.tif 000012
【図１１】
2008242811.tif 000013
【図１２】
2008242811.tif 000014
【図１３】
2008242811.tif 000015