(57)【要約】      （修正有）【課題】プログラミングの質問に対する回答の評価を提示し、もって信頼性が高くかつ高品質な回答を質問者が選択できるようにする。【解決手段】プログラミング回答提示装置１０は、審査依頼情報として質問に対する回答を該回答の内容に対して審査を行う審査者端末４０に通知する審査依頼通知部と、審査者端末４０から受け付けた回答に対する審査結果を当該質問者端末２０に提示する評価結果提示部と、複数の回答の中から質問者端末２０によって選択された回答の内容を提示する回答内容提示部とを備える。【選択図】図１
2006236366.tif 000002
【特許請求の範囲】
【請求項１】
プログラミングの質問に対する回答を複数の回答者の端末から受け付け、該受け付けた複数の回答の中から質問者の端末によって選択された回答の内容を提示するプログラミング回答提示方法であって、
前記回答のソースコードに対してリファクタリングを行うリファクタリング工程と、
前記リファクタリング工程によってリファクタリングが行われたソースコードの行数と、前記回答者の端末から受け付けた回答のソースコードの行数とを当該質問者の端末に提示するリファクタリング結果提示工程と、
前記複数の回答の中から前記質問者の端末によって選択された回答の内容を提示する回答内容提示工程と、
を含んだことを特徴とするプログラミング回答提示方法。
【請求項２】
プログラミングの質問に対する回答を複数の回答者の端末から受け付け、該受け付けた複数の回答の中から質問者の端末によって選択された回答の内容を提示するプログラミング回答提示装置であって、
前記回答のソースコードに対してリファクタリングを行うリファクタリング手段と、
前記リファクタリング手段によってリファクタリングが行われたソースコードの行数と、前記回答者の端末から受け付けた回答のソースコードの行数とを当該質問者の端末に提示するリファクタリング結果提示手段と、
前記複数の回答の中から前記質問者の端末によって選択された回答の内容を提示する回答内容提示手段と、
を備えたことを特徴とするプログラミング回答提示装置。
【請求項３】
プログラミングの質問に対する回答を複数の回答者の端末から受け付け、該受け付けた複数の回答の中から質問者の端末によって選択された回答の内容を提示するプログラミング回答提示プログラムであって、
前記回答のソースコードに対してリファクタリングを行うリファクタリング手順と、
前記リファクタリング手順によってリファクタリングが行われたソースコードの行数と、前記回答者の端末から受け付けた回答のソースコードの行数とを当該質問者の端末に提示するリファクタリング結果提示手順と、
前記複数の回答の中から前記質問者の端末によって選択された回答の内容を提示する回答内容提示手順と、
をコンピュータに実行させることを特徴とするプログラミング回答提示プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラミングの質問に対する回答を複数の回答者の端末から受け付け、該受け付けた複数の回答の中から質問者の端末によって選択された回答の内容を提示するプログラミング回答提示方法、プログラミング回答提示装置およびプログラミング回答提示プログラムに関し、特に、回答者のスキルに基づく回答内容の評価基準を提示し、もって信頼性が高くかつ高品質な回答を質問者に選択させることができるプログラミング回答提示方法、プログラミング回答提示装置およびプログラミング回答提示プログラムに関する。
【背景技術】
【０００２】
従来より、プログラマーは、プログラムを組む際に技術的に不明な点が生じた場合、質問しようとするプログラム言語に係るメーリングリストに加入し、かかる質問をメーリングリスト内の有志に行うことによって質問に対する回答を得て疑問点を解消していた。
【０００３】
そして、近年では、質問者に提示する回答を有償とすることで、回答者の回答に対する動機付けを向上させようという試みが行われており、プログラミングの質問に対する回答が入札（オークション）形式で行われるようになってきた。
【０００４】
例えば、特許文献１では、質問に対する回答を示す回答情報を送信する場合に、回答情報を必要に応じて有償とし、該回答情報の価格を回答情報を送信する回答者に決定させ、質問者が有償の回答を閲覧した場合には、決定された価格に基づく決済処理をおこなう問答方法が開示されている。
【０００５】
ところが、質問者が複数の回答者の中から希望の回答者を選択する逆入札方式を採用しようとすると、質問に対する回答という「情報」が取引対象となるため、かかる「情報」そのものを質問者に提示して回答者を選択させることができず、回答内容の評価を示す仕組みが必要となってくる。
【０００６】
そこで、特許文献２では、各回答者の有償情報ごとに、該有償情報に対するアクセス状況を管理し、このアクセス状況を参照して各有償情報の相対評価ポイントを算出し、該算出された相対評価ポイントをもとに各有償情報の相対評価を決定する有償情報提供システムが開示されている。
【０００７】
【特許文献１】特開２００３−２４２２３７号公報
【特許文献２】特開２００２−２４５３６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記の従来技術（特許文献１および２）では、信頼性が高くかつ高品質な回答を質問者に選択させることができないという問題点があった。すなわち、上記の特許文献１は、回答者自身が回答の「価格」を主観的に決定するものであるため、質問者は、かかる「価格」から回答内容の評価を示唆するものを何ら得ることができず、回答内容が本当に正しいのか、また、複数の回答のうちどの回答が高品質であるのかを判断することができない。このため、上記の特許文献１では、信頼性が高くかつ高品質な回答を質問者に選択させることができなかった。
【０００９】
また、上記の特許文献２は、回答に対するアクセス状況にもとに回答の相対評価を決定するものであるため、自作自演などの不正行為が行われることによってアクセス数が操作された場合、特定の回答について評価が評価を呼ぶこととなり、回答の品質が低くても評価が高くなるという事態が発生する。このため、回答の信頼性および品質を判断する際の評価基準としてかかる相対評価を採用した場合、質問者は、回答の信頼性および品質を誤って判断してしまうこととなるため、上記の特許文献２では、信頼性が高くかつ高品質な回答を質問者に選択させることができなかった。
【００１０】
そこで、本発明は、上述した従来技術による課題（問題点）を解消するためになされたものであり、回答者のスキルに基づく回答内容の評価基準を提示し、もって信頼性が高くかつ高品質な回答を質問者に選択させることができるプログラミング回答提示方法、プログラミング回答提示装置およびプログラミング回答提示プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するために、本発明に係るプログラミング回答提示方法は、プログラミングの質問に対する回答を複数の回答者の端末から受け付け、該受け付けた複数の回答の中から質問者の端末によって選択された回答の内容を提示するプログラミング回答提示方法であって、前記回答のソースコードに対してリファクタリングを行うリファクタリング工程と、前記リファクタリング工程によってリファクタリングが行われたソースコードの行数と、前記回答者の端末から受け付けた回答のソースコードの行数とを当該質問者の端末に提示するリファクタリング結果提示工程と、前記複数の回答の中から前記質問者の端末によって選択された回答の内容を提示する回答内容提示工程と、を含んだことを特徴とする。
【００１２】
また、本発明に係るプログラミング回答提示装置は、プログラミングの質問に対する回答を複数の回答者の端末から受け付け、該受け付けた複数の回答の中から質問者の端末によって選択された回答の内容を提示するプログラミング回答提示装置であって、前記回答のソースコードに対してリファクタリングを行うリファクタリング手段と、前記リファクタリング手段によってリファクタリングが行われたソースコードの行数と、前記回答者の端末から受け付けた回答のソースコードの行数とを当該質問者の端末に提示するリファクタリング結果提示手段と、前記複数の回答の中から前記質問者の端末によって選択された回答の内容を提示する回答内容提示手段と、を備えたことを特徴とする。
【００１３】
また、本発明に係るプログラミング回答提示プログラムは、プログラミングの質問に対する回答を複数の回答者の端末から受け付け、該受け付けた複数の回答の中から質問者の端末によって選択された回答の内容を提示するプログラミング回答提示プログラムであって、前記回答のソースコードに対してリファクタリングを行うリファクタリング手順と、前記リファクタリング手順によってリファクタリングが行われたソースコードの行数と、前記回答者の端末から受け付けた回答のソースコードの行数とを当該質問者の端末に提示するリファクタリング結果提示手順と、前記複数の回答の中から前記質問者の端末によって選択された回答の内容を提示する回答内容提示手順と、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、回答のソースコードに対してリファクタリングを行い、リファクタリングが行われたソースコードの行数と、回答者の端末から受け付けた回答のソースコードの行数とを当該質問者の端末に提示し、複数の回答の中から質問者の端末によって選択された回答の内容を提示することとしたので、回答者のスキルに基づく回答内容の評価基準を提示し、もって信頼性が高くかつ高品質な回答を質問者に選択させることが可能なプログラミング回答提示方法、プログラミング回答提示装置およびプログラミング回答提示プログラムが得られるという効果を奏する。
【発明を実施するための最良の形態】
【００１５】
以下に図面を添付して、本発明に係るプログラミング回答提示装置（プログラミング回答提示方法）の好適な実施例を詳細に説明する。なお、以下では、本発明に係る概要および特徴を説明した後に、本実施例１に係るプログラミング回答提示装置（プログラミング回答提示方法）を説明し、その後、本実施例２に係るプログラミング回答提示プログラムを実行するコンピュータシステムを説明し、最後に、他の実施例として種々の変形例（実施例３）を説明することとする。
【００１６】
まず最初に、本発明に係るプログラミング回答提示装置の概要および特徴を説明する。図１は、本実施例１に係るプログラミング質問オークションシステムの構成を示すシステム構成図であり、図２は、本実施例１に係るプログラミング回答提示装置の構成を示すブロック図である。
【００１７】
このプログラミング質問オークションシステム１は、図１に示すように、プログラミング回答提示装置１０を中心にして、質問者端末２０と、回答者端末３０−１〜３０−３（以下、適宜これらを回答者端末３０と言う。）と、審査者端末４０−１〜４０−２（以下、適宜これらを審査者端末４０と言う。）とを公衆電話網やインターネットなどのネットワーク２を介して相互に通信可能に接続して構成される。なお、質問者端末２０、回答者端末３０および審査者端末４０は、既知のパーソナルコンピュータ、ワークステーション、ＰＨＳ端末、携帯端末、移動体通信端末またはＰＤＡなどの情報処理装置である。
【００１８】
このシステムにおいて、プログラミング回答提示装置１０は、質問者端末２０から受け付けたプログラミングの質問の内容を回答依頼情報として複数の回答者端末３０に通知し、このプログラミングの質問に対する回答を複数の回答者端末３０から受け付け、該受け付けた複数の回答の中から質問者端末２０によって選択された回答の内容を提示するものである。
【００１９】
ここで、かかるプログラミング回答提示装置１０は、審査依頼情報として質問に対する回答を該回答の内容に対して審査を行う審査者端末４０に通知し、審査者端末４０から受け付けた回答に対する審査結果を当該質問者端末２０に提示し、複数の回答の中から質問者端末２０によって選択された回答の内容を提示する点に特徴があり、かかる一連の処理によって、プログラミングの質問に対する回答の評価を提示し、もって信頼性が高くかつ高品質な回答を質問者に選択させることができるようにしている。
【００２０】
これを具体的に説明すると、このプログラミング回答提示装置１０は、審査依頼情報として質問に対する回答を該回答の内容に対して審査を行う審査者端末４０に通知する。これを受けて、審査者端末４０では、回答者によって回答された回答内容に対して審査が行われることとなる。このように、審査者に回答内容の審査を行わせることで、回答内容の信頼性および品質を評価させることができる。
【００２１】
そして、審査者から受け付けた回答に対する審査結果を当該質問者に提示することで、プログラミングの質問に対する回答の評価を提示し、複数の回答の中から質問者によって選択された回答の内容を提示することで、信頼性が高くかつ高品質な回答を質問者に選択させることができるようにしている。
【００２２】
したがって、上記した従来技術の例で言えば、回答に対するアクセス状況にもとに回答の相対評価を決定することで、質問者に回答の品質を誤認識させる相対評価を提示するのではなく、審査者端末から受け付けた回答に対する審査結果を当該質問者に提示し、複数の回答の中から質問者によって選択された回答の内容を提示することで、上記した特徴のように、プログラミングの質問に対する回答の評価を提示し、もって信頼性が高くかつ高品質な回答を質問者に選択させることが可能になる。
【００２３】
また、本発明に係るプログラミング回答提示装置１０は、上記した特徴とは並列して以下に示すような特徴を有する。このプログラミング回答提示装置１０は、回答のソースコードに対してリファクタリングを行い、リファクタリングが行われたソースコードの行数と、回答者端末３０から受け付けた回答のソースコードの行数とを当該質問者端末２０に提示し、複数の回答の中から質問者端末２０によって選択された回答の内容を提示する点に特徴があり、かかる一連の処理によって、回答者のスキルに基づく回答内容の評価基準を提示し、もって信頼性が高くかつ高品質な回答を質問者に選択させることができるようにしている。
【００２４】
かかる「リファクタリング」とは、ソフトウェアの外部的振る舞いを保ちつつ、理解や修正が容易になるように、内部構造を改善する処理を示し、本来的には、ソフトウェア設計の向上、ソフトウェア設計の劣化の防止、バグの早期発見並びにプログラミングの効率化を目的として行われる処理である。
【００２５】
ここで、このプログラミング回答提示装置１０では、回答者のスキルに基づく回答内容の評価基準を提示するために、回答者によって回答された回答のソースコードに対してリファクタリングを行い、リファクタリングが行われたソースコードの行数と、回答者端末３０から受け付けた元の回答のソースコードの行数とを当該質問者端末２０に提示する。
【００２６】
すなわち、リファクタリングが行われたソースコードは、最適化されたコード列の行数になるため、回答者によって回答された元の回答のソースコードの行数と比較することにより、質問者は、回答者のスキルに基づく回答内容の評価を行うことができる（図１０参照）。そして、かかる回答内容の評価基準をもとに、複数の回答の中から質問者によって選択された回答の内容を提示することで、信頼性が高くかつ高品質な回答を質問者に選択させることが可能になる。
【００２７】
また、本発明に係るプログラミング回答提示装置１０は、質問に対する回答の内容が単一のソースコードで記述可能である場合に、該ソースコードからライブラリ名を、若しくは質問に対する回答の内容が複数のソースコードで記述可能である場合に、オブジェクト間の処理構造を当該回答の内容に係る評価指標として抽出し、当該回答の内容に係る評価指標として抽出されたライブラリ名若しくはオブジェクト間の処理構造を提示し、複数の回答の中から質問者の端末によって選択された回答の内容を提示する点に特徴があり、かかる一連の処理によって、プログラミングの質問に対する回答内容の評価指標を提示し、もって信頼性が高くかつ高品質な回答を質問者に選択させることができるようにしている。
【００２８】
これを具体的に説明すると、このプログラミング回答提示装置１０は、質問の内容がプログラムの処理（単一のソースコードで記述可能なもの）である場合に、ソースコードの中から使用されているライブラリ名、関数名を取り出す。例えば、「Ｊａｖａ（登録商標）」の場合には、使用されているクラス名（例えば、「ｊａｖａ．ｌａｎｇ．ＳｔｒｉｎｇＢｕｆｆｅｒ」など）、クラスのメソッド名（例えば、「ＳｔｒｉｎｇＢｕｆｆｅｒ．ａｐｐｅｎｄ（Ｓｔｒｉｎｇ  ｓｔｒ）」）をキーワードとして抽出する。
【００２９】
すなわち、質問に対する回答の内容が単一のソースコードで記述可能である場合に、該ソースコードからライブラリ名を当該回答の内容に係る評価指標として抽出し、質問者に提示することで、質問者が複数の回答から閲覧を希望する回答を選択する際の判断材料として、既存のライブラリが使用された「回答」であるか（図１１参照）、或いは個人またはサードパーティ製のライブラリが使用された「回答」であるか（図１２参照）を提示することができるようにしている。
【００３０】
より詳細には、質問者は、図１１に示すクラス名「ｊａｖａ．ｌａｎｇ．ＳｔｒｉｎｇＢａｆｆｅｒ」からＡ社版のＪａｖａ（登録商標）環境で利用可能な関数であることを知ることができる。また、図１２に示すクラス名「ｔｅｓｔ．ｔｅｓｔ０１．ＳｔｒｉｎｇＢｕｆｆｅｒ」からＢ社版のＪａｖａ（登録商標）環境で利用可能な関数であることを知ることができる。
【００３１】
このため、質問者の開発環境がＡ社版のＪａｖａ（登録商標）環境である場合、質問者は、かかるキーワード（すなわち、図１１および図１２に示したクラス名）をもとに、図１２に示す回答がＢ社版のＪａｖａ（登録商標）環境でしか動かない関数を用いた回答であると判断することができ、回答内容を購読しても現在自分が抱える問題点の解決には活用できないと判断することができる。
【００３２】
また、このプログラミング回答提示装置１０は、質問の内容がプログラムで実現する機能（複数のソースコードで記述可能なもの）である場合に、ソースコードの処理を順次解析し、処理の手順が分かる設計書（例えば、ＵＭＬ（Unified Modeling Language）を例に取れば、図１３および図１４に示すシーケンス図に相当する。）を生成する。
【００３３】
すなわち、質問者は、図１３および図１４に示すシーケンス図を参照することで、図１４に示す回答者の回答内容が単純な処理で出来るもの（図１３参照）を複雑に処理しているものであり、処理のレスポンスの劣化やバグの発生を招き易いプログラムであると判断することができる。
【００３４】
このように、質問に対する回答の内容が単一のソースコードで記述可能である場合に、該ソースコードからライブラリ名を当該回答の内容に係る評価指標として抽出し、若しくは質問に対する回答の内容が複数のソースコードで記述可能である場合に、オブジェクト間の処理構造（例えば、ＵＭＬのシーケンス図）を生成し、質問者に提示することで、質問者に回答内容を開示することなく、回答内容の評価指標を提示することができる。そして、回答内容の評価指標をもとに、複数の回答の中から質問者によって選択された回答の内容を提示することで、信頼性が高くかつ高品質な回答を質問者に選択させることが可能になる。
【実施例１】
【００３５】
次に、本実施例１に係るプログラミング回答提示装置（プログラミング回答提示方法）について説明する。なお、ここでは、本実施例１に係るプログラミング回答提示装置の構成を説明した後に、このプログラミング回答提示装置の各種処理の手順を説明することとする。
【００３６】
（プログラミング回答提示装置の構成）
図２は、本実施例１に係るプログラミング回答提示装置の構成を示すブロック図である。このプログラミング回答提示装置１０は、同図に示すように、当該プログラミング回答提示装置１０とネットワーク２との間の通信の制御を行う通信制御ＩＦ部１１と、回答スキルポイント管理テーブル１２と、スキルポイント単金テーブル１３と、回答者スキル・履歴管理テーブル１４と、記憶部１５と、制御部１８とを備える。
【００３７】
このうち、回答スキルポイント管理テーブル１２は、プログラミングの質問の回答に必要なスキルポイントを管理するテーブルであり、図３に示すように、質問のカテゴリごとに、質問の回答に必要なスキルポイントを対応付けて記憶している。例えば、「サーバアプリケーション」には、必要なスキルポイントとして「１０」を、「クライアントアプリケーション」には、必要なスキルポイントとして「５」を対応付けて記憶している。なお、かかる「スキルポイント」とは、回答者の技術レベルを示す指標であり、プログラム言語などの所定のカテゴリごとに設定されるものである。
【００３８】
スキルポイント単金テーブル１３は、回答者が回答を行う対価として登録することができる金額の上限を記憶するテーブルであり、図４に示すように、質問の各カテゴリにおけるスキルポイントごとに、上限単金を対応付けて記憶している。例えば、質問のプログラム言語が「Ｊａｖａ（登録商標）」である場合には、「Ｊａｖａ（登録商標）」のスキルポイント「０〜５０」に、上限単金として「￥５００」を、「Ｊａｖａ（登録商標）」のスキルポイント「５１〜１００」に、上限単金として「￥７５０」を対応付けて記憶している。
【００３９】
回答者スキル・履歴管理テーブル１４は、回答者のプログラミングの経験情報、回答者のスキルポイント、回答の評価ポイント（審査結果）および回答者の履歴を記憶するテーブルである。例えば、図５に示すように、回答者のプログラミングの経験情報として、各プログラム言語（例えば、「Ｊａｖａ（登録商標）」、「ＶＢ」、「Ｃ＃」、「ＶＢ．ＮＥＴ」「ＣＯＢＯＬ」および「Ｃ＋＋」など）ごとに、経験年数を対応付けて記憶し、各プログラム言語ごとに、スキルポイントおよび平均評価ポイントを対応付けて記憶している。
【００４０】
記憶部１５は、制御部１８による各種処理に必要なデータおよびプログラムを格納する格納手段（記憶手段）であり、回答格納ＤＢ１６と、評価結果ＤＢ１７を備える。このうち、回答格納ＤＢ１６は、回答者端末３０から受信したプログラミングの質問に対する回答を記憶するデータベースであり、具体的には、回答者によって図７に示す回答内容入力画面２００に入力された回答を記憶している。
【００４１】
また、評価結果ＤＢ１７は、審査者端末４０から受信した審査結果、並びにリファクタリング処理部１８ｅおよび評価指標抽出部１８ｆの処理結果を記憶するデータベースであり、具体的には、図１０に示すように、審査者によって図８に示す審査結果入力画面３００に入力された審査結果、リファクタリング処理部１８ｅの処理結果および評価指標抽出部１８ｆの処理結果（図１１〜図１４参照）を記憶している。
【００４２】
制御部１８は、ＯＳ（OperatingSystem）などの制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する処理部であり、特に本発明に密接に関連するものとしては、回答スキルポイント算出部１８ａと、回答者検索部１８ｂと、回答依頼通知部１８ｃと、審査依頼通知部１８ｄと、リファクタリング処理部１８ｅと、評価指標抽出部１８ｆと、評価結果提示部１８ｇと、回答内容提示部１８ｈとを備える。
【００４３】
回答スキルポイント算出部１８ａは、質問者端末２０から受信した回答依頼情報をもとに、回答スキルポイント管理テーブル１２を参照して質問の回答に必要なスキルポイント（レベル）を算出する処理部である。具体的には、質問者によって図６に示す質問内容入力画面１００に入力された質問のカテゴリ（例えば、プログラム言語が「Ｊａｖａ（登録商標）」である場合、環境「サーバアプリケーション」および要素技術「ＥＪＢ」）をもとに、回答スキルポイント管理テーブル１２を参照して質問の回答に必要なスキルポイント（すなわち、サーバアプリケーション「１０」＋ＥＪＢ「１５」＝「２５」）を算出する。
【００４４】
なお、図６に示す質問内容入力画面１００における「要素技術」、「使用製品」および「質問内容」は、プログラム言語により変動するものであり、随時変動するカテゴリについて選択入力されることとなる。
【００４５】
回答者検索部１８ｂは、回答スキルポイント算出部１８ａによって算出されたスキルポイント以上の回答者を回答者スキル・履歴管理テーブル１４から検索する処理部である。このように、質問の回答に必要なスキルポイントを有する回答者を選別することで、質問内容に応じて質問の回答に必要なスキルを有する回答者のみが回答を行うこととなり、回答の信頼性を担保することができる。
【００４６】
回答依頼通知部１８ｃは、回答者検索部１８ｂによって検索された回答者端末３０に回答依頼情報を送信する処理部である。具体的には、質問者端末２０から受信したプログラミングの質問の内容（質問者によって図６に示す質問内容入力画面１００に入力された内容）を回答依頼情報として回答者端末３０に送信する。
【００４７】
審査依頼通知部１８ｄは、審査依頼情報として回答格納ＤＢ１６に記憶されたプログラミングの質問に対する回答を審査者端末４０に送信する処理部である。具体的には、回答者端末３０から受信したプログラミングの質問に対する回答（回答者によって図７に示す回答内容入力画面２００に入力された内容）を審査依頼情報として審査者端末４０に送信する。
【００４８】
リファクタリング処理部１８ｅは、回答格納ＤＢ１６に記憶されたプログラミングの質問に対する回答のソースコードに対してリファクタリングを行う処理部である。なお、かかる「リファクタリング」とは、ソフトウェアの外部的振る舞いを保ちつつ、理解や修正が容易になるように、内部構造を改善する処理である。
【００４９】
評価指標抽出部１８ｆは、回答格納ＤＢ１６に記憶されたプログラミングの質問に対する回答の内容が単一のソースコードで記述可能である場合に、該ソースコードからライブラリ名を、若しくは質問に対する回答の内容が複数のソースコードで記述可能である場合に、オブジェクト間の処理構造を当該回答の内容に係る評価指標として抽出する処理部である。
【００５０】
これを具体的に説明すると、質問の内容がプログラムの処理（単一のソースコードで記述可能なもの）である場合に、ソースコードの中から使用されているライブラリ名、関数名を取り出す。例えば、「Ｊａｖａ（登録商標）」の場合には、使用されているクラス名（例えば、「ｊａｖａ．ｌａｎｇ．ＳｔｒｉｎｇＢｕｆｆｅｒ」など）、クラスのメソッド名（例えば、「ＳｔｒｉｎｇＢｕｆｆｅｒ．ａｐｐｅｎｄ（Ｓｔｒｉｎｇ  ｓｔｒ）」）をキーワードとして抽出する。
【００５１】
また、質問の内容がプログラムで実現する機能（複数のソースコードで記述可能なもの）である場合に、ソースコードの処理を順次解析し、処理の手順が分かる設計書（例えば、ＵＭＬ（Unified Modeling Language）を例に取れば、図１３および図１４に示すシーケンス図に相当する。）を生成する。
【００５２】
評価結果提示部１８ｇは、評価結果ＤＢ１７によって記憶された審査結果、並びにリファクタリング処理部１８ｅおよび評価指標抽出部１８ｆの処理結果を質問者端末２０に提示する処理部である。具体的には、図１０に示すように、審査者によって図８に示す審査結果入力画面３００に入力された審査結果、リファクタリング処理部１８ｅの処理結果および評価指標抽出部１８ｆの処理結果（図１１〜図１４参照）を質問者端末２０に提示する。
【００５３】
回答内容提示部１８ｈは、回答格納ＤＢ１６に記憶された複数の回答の中から質問者端末２０によって選択された回答の内容を提示する処理部である。質問者端末２０によって選択された回答（回答者によって図７に示す回答内容入力画面２００に入力された内容）を提示する。
【００５４】
（プログラミング回答提示装置の処理手順）
次に、本実施例１に係るプログラミング回答提示装置の処理手順を説明する。図１５は、本実施例１に係るプログラミング回答提示装置の処理手順を示すフローチャートである。同図に示すように、質問者端末２０では、図６に示す質問内容入力画面１００において質問者から質問内容の入力を受け付け（ステップＳ１５０１）、質問内容入力画面１００に入力された情報を回答依頼情報として送信する（ステップＳ１５０２）。
【００５５】
例えば、図６に示す質問内容入力画面１００では、プログラム言語として「Ｊａｖａ（登録商標）」、環境として「サーバアプリケーション」、要素技術として「ＥＪＢ」、使用製品として「Ｉｎｔｅｒｓｔａｇｅ」が選択入力されている。なお、このとき、希望回答金額および回答期限も入力されることとなる。
【００５６】
続いて、プログラミング回答提示装置１０では、質問者端末２０から回答依頼情報（質問内容入力画面１００に入力された情報）を受信し（ステップＳ１５０３）、回答スキルポイント算出部１８ａは、質問者によって質問内容入力画面１００に入力された質問のカテゴリ（例えば、プログラム言語が「Ｊａｖａ（登録商標）」である場合、環境「サーバアプリケーション」および要素技術「ＥＪＢ」）をもとに、回答スキルポイント管理テーブル１２を参照して質問の回答に必要なスキルポイント（すなわち、サーバアプリケーション「１０」＋ＥＪＢ「１５」＝「２５」）を算出する（ステップＳ１５０４）。
【００５７】
そして、回答者検索部１８ｂは、回答スキルポイント算出部１８ａによって算出されたスキルポイント以上の回答者を回答者スキル・履歴管理テーブル１４から検索し（ステップＳ１５０５）、回答依頼通知部１８ｃは、回答者検索部１８ｂによって検索された回答者端末３０に回答依頼情報（質問者によって質問内容入力画面１００に入力された内容）を送信する(ステップＳ１５０６）。
【００５８】
続いて、回答者端末３０では、回答依頼情報（質問者によって質問内容入力画面１００に入力された内容）を受信したならば（ステップＳ１５０７）、図７に示す回答内容入力画面２００において、回答者から回答内容の入力を受け付け（ステップＳ１５０８）、回答内容入力画面２００に入力された情報をプログラミング回答提示装置１０に返信する（ステップＳ１５０９）。なお、このとき、回答者が登録することができる価格の上限は、スキルポイント単金テーブル１３に基づき回答者が保有するスキルポイントによって制限されることとなる。
【００５９】
その後、プログラミング回答提示装置１０では、回答者端末３０からプログラミングの質問に対する回答（回答内容入力画面２００に入力された情報）を受信して回答格納ＤＢ１６に登録する（ステップＳ１５１０）。
【００６０】
続いて、審査依頼通知部１８ｄは、審査依頼情報として回答格納ＤＢ１６に記憶されたプログラミングの質問に対する回答（回答者によって回答内容入力画面２００に入力された内容）を審査依頼情報として審査者端末４０に送信する（ステップＳ１５１１）。
【００６１】
そして、審査者端末４０では、審査依頼情報（回答者によって回答内容入力画面２００に入力された内容）を受信したならば（ステップＳ１５１２）、図８に示す審査結果入力画面３００において、審査者から審査結果の入力を受け付け（ステップＳ１５１３）、該受け付けられた審査結果（審査結果入力画面３００に入力された情報）をプログラミング回答提示装置１０に返信する（ステップＳ１５１４）。
【００６２】
その後、プログラミング回答提示装置１０では、審査者端末４０から審査結果（審査結果入力画面３００に入力された情報）を受信して評価結果ＤＢ１７に登録する（ステップＳ１５１５）。
【００６３】
ここで、リファクタリング処理部１８ｅは、回答格納ＤＢ１６に記憶されたプログラミングの質問に対する回答のソースコードに対してリファクタリングを行い（ステップＳ１５１６）、リファクタリング結果を評価結果ＤＢ１７に格納する（ステップＳ１５１７）。
【００６４】
また、評価指標抽出部１８ｆは、回答格納ＤＢ１６に記憶されたプログラミングの質問に対する回答の内容が単一のソースコードで記述可能である場合に、該ソースコードからライブラリ名を、若しくは質問に対する回答の内容が複数のソースコードで記述可能である場合に、オブジェクト間の処理構造を当該回答の内容に係る評価指標として抽出し（ステップＳ１５１８）、該抽出された当該回答の内容に係る評価指標を評価結果ＤＢ１７に登録する（ステップＳ１５１９）。
【００６５】
これを具体的に説明すると、質問の内容がプログラムの処理（単一のソースコードで記述可能なもの）である場合に、ソースコードの中から使用されているライブラリ名、関数名を取り出す。例えば、「Ｊａｖａ（登録商標）」の場合には、使用されているクラス名（例えば、「ｊａｖａ．ｌａｎｇ．ＳｔｒｉｎｇＢｕｆｆｅｒ」など）、クラスのメソッド名（例えば、「ＳｔｒｉｎｇＢｕｆｆｅｒ．ａｐｐｅｎｄ（Ｓｔｒｉｎｇ  ｓｔｒ）」）をキーワードとして抽出する。
【００６６】
また、質問の内容がプログラムで実現する機能（複数のソースコードで記述可能なもの）である場合に、ソースコードの処理を順次解析し、処理の手順が分かる設計書（例えば、ＵＭＬ（Unified Modeling Language）を例に取れば、図１３および図１４に示すシーケンス図に相当する。）を生成する。
【００６７】
図１５の説明に戻り、評価結果提示部１８ｇは、図１０に示すように、審査者によって審査結果入力画面３００に入力された審査結果、リファクタリング処理部１８ｅの処理結果および評価指標抽出部１８ｆの処理結果（図１１〜図１４参照）を質問者端末２０に提示する（ステップＳ１５２０）。なお、図１０では、キーワードとして、使用されているクラス名（例えば、「ｊａｖａ．ｌａｎｇ．ＳｔｒｉｎｇＢｕｆｆｅｒ」など）が提示されているが、処理の手順が分かる設計書（例えば、ＵＭＬ（Unified Modeling Language）を例に取れば、図１３および図１４に示すシーケンス図に相当する。）へのリンクを貼り付けておき、新たなページでＵＭＬのシーケンス図を質問者端末２０に表示するようにしても良い。
【００６８】
これを受けて、質問者端末２０では、審査者によって審査結果入力画面３００に入力された審査結果、リファクタリング処理部１８ｅの処理結果および評価指標抽出部１８ｆの処理結果（図１１〜図１４参照）が表示され（ステップＳ１５２１）、図９に示す回答評価一覧画面４００において、複数の回答の中から購入対象の回答の選択を質問者から受け付けてプログラミング回答提示装置１０に送信する（ステップＳ１５２２）。
【００６９】
そして、プログラミング回答提示装置１０では、質問者端末２０から受信した購入対象の回答の選択を受け付け（ステップＳ１５２３）、回答内容提示部１８ｈは、回答格納ＤＢ１６に記憶された複数の回答の中から質問者端末２０によって選択された回答（回答者によって図７に示す回答内容入力画面２００に入力された内容）を提示する（ステップＳ１５２４）。その後、質問者端末２０では、質問者から受け付けた回答の内容が提示されることとなる（ステップＳ１５２５）。
【００７０】
上述してきたように、本実施例１に係るプログラミング回答提示装置１０によれば、審査者端末から受け付けた回答に対する審査結果を当該質問者に提示し、複数の回答の中から質問者によって選択された回答の内容を提示することとしたので、プログラミングの質問に対する回答の評価を提示し、もって信頼性が高くかつ高品質な回答を質問者に選択させることが可能になる。
【００７１】
また、本実施例１に係るプログラミング回答提示装置１０によれば、回答のソースコードに対してリファクタリングを行い、リファクタリングが行われたソースコードの行数と、回答者端末３０から受け付けた回答のソースコードの行数とを当該質問者端末２０に提示し、複数の回答の中から質問者端末２０によって選択された回答の内容を提示することとしたので、回答者のスキルに基づく回答内容の評価基準を提示し、もって信頼性が高くかつ高品質な回答を質問者に選択させることが可能になる。
【００７２】
すなわち、リファクタリングが行われたソースコードは、最適化されたコード列の行数になるため、回答者によって回答された元の回答のソースコードの行数と比較することにより、質問者は、回答者のスキルに基づく回答内容の評価を行うことができる（図１０参照）。
【００７３】
また、本実施例１に係るプログラミング回答提示装置１０によれば、質問に対する回答の内容が単一のソースコードで記述可能である場合に、該ソースコードからライブラリ名を、若しくは質問に対する回答の内容が複数のソースコードで記述可能である場合に、オブジェクト間の処理構造を当該回答の内容に係る評価指標として抽出し、当該回答の内容に係る評価指標として抽出されたライブラリ名若しくはオブジェクト間の処理構造を提示し、複数の回答の中から質問者の端末によって選択された回答の内容を提示することとしたので、プログラミングの質問に対する回答内容の評価指標を提示し、もって信頼性が高くかつ高品質な回答を質問者に選択させることが可能になる。
【００７４】
すなわち、質問に対する回答の内容が単一のソースコードで記述可能である場合に、該ソースコードからライブラリ名を当該回答の内容に係る評価指標として抽出し、質問者に提示することで、質問者が複数の回答から閲覧を希望する回答を選択する際の判断材料として、既存のライブラリが使用された「回答」であるか（図１１参照）、或いは個人またはサードパーティ製のライブラリが使用された「回答」であるか（図１２参照）を提示することができるようにしている。
【００７５】
より詳細には、質問者は、図１１に示すクラス名「ｊａｖａ．ｌａｎｇ．ＳｔｒｉｎｇＢａｆｆｅｒ」からＡ社版のＪａｖａ（登録商標）環境で利用可能な関数であることを知ることができる。また、図１２に示すクラス名「ｔｅｓｔ．ｔｅｓｔ０１．ＳｔｒｉｎｇＢｕｆｆｅｒ」からＢ社版のＪａｖａ（登録商標）環境で利用可能な関数であることを知ることができる。
【００７６】
このため、質問者の開発環境がＡ社版のＪａｖａ（登録商標）環境である場合、質問者は、かかるキーワード（すなわち、図１１および図１２に示したクラス名）をもとに、図１２に示す回答がＢ社版のＪａｖａ（登録商標）環境でしか動かない関数を用いた回答であると判断することができ、回答内容を購読しても現在自分が抱える問題点の解決には活用できないと判断することができる。
【００７７】
また、質問の内容がプログラムで実現する機能（複数のソースコードで記述可能なもの）である場合に、ソースコードの処理を順次解析し、処理の手順が分かる設計書（例えば、ＵＭＬ（Unified Modeling Language）を例に取れば、図１３および図１４に示すシーケンス図に相当する。）を生成する。
【００７８】
すなわち、質問者は、図１３および図１４に示すシーケンス図を参照することで、図１４に示す回答者の回答内容が単純な処理で出来るもの（図１３参照）を複雑に処理しているものであり、処理のレスポンスの劣化やバグの発生を招き易いプログラムであると判断することができる。
【実施例２】
【００７９】
ところで、上記実施例１で説明したプログラミング回答提示装置およびプログラミング回答提示方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、本実施例２では、上記実施例１で説明したプログラミング回答提示装置（プログラミング回答提示方法）と同様の機能を有するプログラミング回答提示プログラムを実行するコンピュータシステムについて説明する。
【００８０】
図１６は、本実施例２に係るコンピュータシステムの構成を示すシステム構成図であり、図１７は、このコンピュータシステムにおける本体部の構成を示すブロック図である。図１６に示すように、本実施例２に係るコンピュータシステム１００は、本体部１０１と、本体部１０１からの指示によって表示画面１０２ａに画像などの情報を表示するためのディスプレイ１０２と、このコンピュータシステム１００に種々の情報を入力するためのキーボード１０３と、ディスプレイ１０２の表示画面１０２ａ上の任意の位置を指定するためのマウス１０４とを備える。
【００８１】
また、このコンピュータシステム１００における本体部１０１は、図１７に示すように、ＣＰＵ１２１と、ＲＡＭ１２２と、ＲＯＭ１２３と、ハードディスクドライブ（ＨＤＤ）１２４と、ＣＤ−ＲＯＭ１０９を受け入れるＣＤ−ＲＯＭドライブ１２５と、フレキシブルディスク（ＦＤ）１０８を受け入れるＦＤドライブ１２６と、ディスプレイ１０２、キーボード１０３並びにマウス１０４を接続するＩ／Ｏインターフェース１２７と、ローカルエリアネットワークまたは広域エリアネットワーク（ＬＡＮ／ＷＡＮ）１０６に接続するＬＡＮインターフェース１２８とを備える。
【００８２】
さらに、このコンピュータシステム１００には、インターネットなどの公衆回線１０７に接続するためのモデム１０５が接続されるとともに、ＬＡＮインターフェース１２８およびＬＡＮ／ＷＡＮ１０６を介して、他のコンピュータシステム（ＰＣ）１１１、サーバ１１２並びにプリンタ１１３などが接続される。
【００８３】
そして、このコンピュータシステム１００は、所定の記録媒体に記録されたプログラミング回答提示プログラムを読み出して実行することでプログラミング回答提示装置（プログラミング回答提示方法）を実現する。ここで、所定の記録媒体とは、フレキシブルディスク（ＦＤ）１０８、ＣＤ−ＲＯＭ１０９、ＭＯディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」の他に、コンピュータシステム１００の内外に備えられるハードディスクドライブ（ＨＤＤ）１２４や、ＲＡＭ１２２、ＲＯＭ１２３などの「固定用の物理媒体」、さらに、モデム１０５を介して接続される公衆回線１０７や、他のコンピュータシステム１１１並びにサーバ１１２が接続されるＬＡＮ／ＷＡＮ１０６などのように、プログラムの送信に際して短期にプログラムを保持する「通信媒体」など、コンピュータシステム１００によって読み取り可能なプログラミング回答提示プログラムを記録する、あらゆる記録媒体を含むものである。
【００８４】
すなわち、プログラミング回答提示プログラムは、上記した「可搬用の物理媒体」、「固定用の物理媒体」、「通信媒体」などの記録媒体に、コンピュータ読み取り可能に記録されるものであり、コンピュータシステム１００は、このような記録媒体からプログラミング回答提示プログラムを読み出して実行することでプログラミング回答提示装置およびプログラミング回答提示方法を実現する。なお、プログラミング回答提示プログラムは、コンピュータシステム１００によって実行されることに限定されるものではなく、他のコンピュータシステム１１１またはサーバ１１２がプログラミング回答提示プログラムを実行する場合や、これらが協働してプログラミング回答提示プログラムを実行するような場合にも、本発明を同様に適用することができる。
【実施例３】
【００８５】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、上記特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施例にて実施されてもよいものである。
【００８６】
例えば、本実施例１では、審査結果の提示機能、リファクタリング結果の提示機能および評価指標抽出結果の提示機能を統括して備えるプログラミング回答提示装置について説明したが、本発明はこれに限定されるものではなく、それぞれの提示機能を独立して実施するようにしても良い。
【００８７】
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００８８】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００８９】
（付記１）プログラミングの質問に対する回答を複数の回答者の端末から受け付け、該受け付けた複数の回答の中から質問者の端末によって選択された回答の内容を提示するプログラミング回答提示方法であって、
審査依頼情報として前記質問に対する回答を該回答の内容に対して審査を行う審査者の端末に通知する審査依頼通知工程と、
前記審査者の端末から受け付けた前記回答に対する審査結果を当該質問者の端末に提示する審査結果提示工程と、
前記複数の回答の中から前記質問者の端末によって選択された回答の内容を提示する回答内容提示工程と、
を含んだことを特徴とするプログラミング回答提示方法。
【００９０】
（付記２）プログラミングの質問に対する回答を複数の回答者の端末から受け付け、該受け付けた複数の回答の中から質問者の端末によって選択された回答の内容を提示するプログラミング回答提示方法であって、
前記回答のソースコードに対してリファクタリングを行うリファクタリング工程と、
前記リファクタリング工程によってリファクタリングが行われたソースコードの行数と、前記回答者の端末から受け付けた回答のソースコードの行数とを当該質問者の端末に提示するリファクタリング結果提示工程と、
前記複数の回答の中から前記質問者の端末によって選択された回答の内容を提示する回答内容提示工程と、
を含んだことを特徴とするプログラミング回答提示方法。
【００９１】
（付記３）プログラミングの質問に対する回答を複数の回答者の端末から受け付け、該受け付けた複数の回答の中から質問者の端末によって選択された回答の内容を提示するプログラミング回答提示方法であって、
前記質問に対する回答の内容が単一のソースコードで記述可能である場合に、該ソースコードからライブラリ名を、若しくは前記質問に対する回答の内容が複数のソースコードで記述可能である場合に、オブジェクト間の処理構造を当該回答の内容に係る評価指標として抽出する評価指標抽出工程と、
前記評価指標抽出工程によって当該回答の内容に係る評価指標として抽出されたライブラリ名若しくはオブジェクト間の処理構造を提示する評価指標提示工程と、
前記複数の回答の中から前記質問者の端末によって選択された回答の内容を提示する回答内容提示工程と、
を含んだことを特徴とするプログラミング回答提示方法。
【００９２】
（付記４）プログラミングの質問に対する回答を複数の回答者の端末から受け付け、該受け付けた複数の回答の中から質問者の端末によって選択された回答の内容を提示するプログラミング回答提示装置であって、
審査依頼情報として前記質問に対する回答を該回答の内容に対して審査を行う審査者の端末に通知する審査依頼通知手段と、
前記審査者の端末から受け付けた前記回答に対する審査結果を当該質問者の端末に提示する審査結果提示手段と、
前記複数の回答の中から前記質問者の端末によって選択された回答の内容を提示する回答内容提示手段と、
を備えたことを特徴とするプログラミング回答提示装置。
【００９３】
（付記５）プログラミングの質問に対する回答を複数の回答者の端末から受け付け、該受け付けた複数の回答の中から質問者の端末によって選択された回答の内容を提示するプログラミング回答提示装置であって、
前記回答のソースコードに対してリファクタリングを行うリファクタリング手段と、
前記リファクタリング手段によってリファクタリングが行われたソースコードの行数と、前記回答者の端末から受け付けた回答のソースコードの行数とを当該質問者の端末に提示するリファクタリング結果提示手段と、
前記複数の回答の中から前記質問者の端末によって選択された回答の内容を提示する回答内容提示手段と、
を備えたことを特徴とするプログラミング回答提示装置。
【００９４】
（付記６）プログラミングの質問に対する回答を複数の回答者の端末から受け付け、該受け付けた複数の回答の中から質問者の端末によって選択された回答の内容を提示するプログラミング回答提示装置であって、
前記質問に対する回答の内容が単一のソースコードで記述可能である場合に、該ソースコードからライブラリ名を、若しくは前記質問に対する回答の内容が複数のソースコードで記述可能である場合に、オブジェクト間の処理構造を当該回答の内容に係る評価指標として抽出する評価指標抽出手段と、
前記評価指標抽出手段によって当該回答の内容に係る評価指標として抽出されたライブラリ名若しくはオブジェクト間の処理構造を提示する評価指標提示手段と、
前記複数の回答の中から前記質問者の端末によって選択された回答の内容を提示する回答内容提示手段と、
を備えたことを特徴とするプログラミング回答提示装置。
【００９５】
（付記７）プログラミングの質問に対する回答を複数の回答者の端末から受け付け、該受け付けた複数の回答の中から質問者の端末によって選択された回答の内容を提示するプログラミング回答提示プログラムであって、
審査依頼情報として前記質問に対する回答を該回答の内容に対して審査を行う審査者の端末に通知する審査依頼通知手順と、
前記審査者の端末から受け付けた前記回答に対する審査結果を当該質問者の端末に提示する審査結果提示手順と、
前記複数の回答の中から前記質問者の端末によって選択された回答の内容を提示する回答内容提示手順と、
をコンピュータに実行させることを特徴とするプログラミング回答提示プログラム。
【００９６】
（付記８）プログラミングの質問に対する回答を複数の回答者の端末から受け付け、該受け付けた複数の回答の中から質問者の端末によって選択された回答の内容を提示するプログラミング回答提示プログラムであって、
前記回答のソースコードに対してリファクタリングを行うリファクタリング手順と、
前記リファクタリング手順によってリファクタリングが行われたソースコードの行数と、前記回答者の端末から受け付けた回答のソースコードの行数とを当該質問者の端末に提示するリファクタリング結果提示手順と、
前記複数の回答の中から前記質問者の端末によって選択された回答の内容を提示する回答内容提示手順と、
をコンピュータに実行させることを特徴とするプログラミング回答提示プログラム。
【００９７】
（付記９）プログラミングの質問に対する回答を複数の回答者の端末から受け付け、該受け付けた複数の回答の中から質問者の端末によって選択された回答の内容を提示するプログラミング回答提示プログラムであって、
前記質問に対する回答の内容が単一のソースコードで記述可能である場合に、該ソースコードからライブラリ名を、若しくは前記質問に対する回答の内容が複数のソースコードで記述可能である場合に、オブジェクト間の処理構造を当該回答の内容に係る評価指標として抽出する評価指標抽出手順と、
前記評価指標抽出手順によって当該回答の内容に係る評価指標として抽出されたライブラリ名若しくはオブジェクト間の処理構造を提示する評価指標提示手順と、
前記複数の回答の中から前記質問者の端末によって選択された回答の内容を提示する回答内容提示手順と、
をコンピュータに実行させることを特徴とするプログラミング回答提示プログラム。
【図面の簡単な説明】
【００９８】
【図１】本実施例１に係るプログラミング質問オークションシステムの構成を示すシステム構成図である。
【図２】本実施例１に係るプログラミング回答提示装置の構成を示すブロック図である。
【図３】回答スキルポイント管理テーブルに記憶される情報の構成例を示す図である。
【図４】スキルポイント単金テーブルに記憶される情報の構成例を示す図である。
【図５】回答者スキル・履歴管理テーブルに記憶される情報の構成例を示す図である。
【図６】質問内容入力画面の一例を示す図である。
【図７】回答内容入力画面の一例を示す図である。
【図８】審査結果入力画面の一例を示す図である。
【図９】回答評価一覧画面の一例を示す図である。
【図１０】回答評価詳細画面の一例を示す図である。
【図１１】キーワードの一例を示す図である。
【図１２】キーワードの一例を示す図である。
【図１３】ＵＭＬのシーケンス図の一例を示す図である。
【図１４】ＵＭＬのシーケンス図の一例を示す図である。
【図１５】本実施例１に係るプログラミング回答提示装置の処理手順を示すフローチャートである。
【図１６】本実施例２に係るコンピュータシステムの構成を示すシステム構成図である。
【図１７】図１６に示したコンピュータシステムにおける本体部の構成を示すブロック図である。
【符号の説明】
【００９９】
１    プログラミング質問オークションシステム
２    ネットワーク
１０    プログラミング回答提示装置
１１    通信制御ＩＦ部
１２    回答スキルポイント管理テーブル
１３    スキルポイント単金テーブル
１４    回答者スキル・履歴管理テーブル
１５    記憶部
１６    回答格納ＤＢ
１７    評価結果ＤＢ
１８    制御部
１８ａ  回答スキルポイント算出部
１８ｂ  回答者検索部
１８ｃ  回答依頼通知部
１８ｄ  審査依頼通知部
１８ｅ  リファクタリング処理部
１８ｆ  評価指標抽出部
１８ｇ  評価結果提示部
１８ｈ  回答内容提示部
【図１】
2006236366.tif 000003
【図２】
2006236366.tif 000004
【図３】
2006236366.tif 000005
【図４】
2006236366.tif 000006
【図５】
2006236366.tif 000007
【図６】
2006236366.tif 000008
【図７】
2006236366.tif 000009
【図８】
2006236366.tif 000010
【図９】
2006236366.tif 000011
【図１０】
2006236366.tif 000012
【図１１】
2006236366.tif 000013
【図１２】
2006236366.tif 000014
【図１３】
2006236366.tif 000015
【図１４】
2006236366.tif 000016
【図１５】
2006236366.tif 000017
【図１６】
2006236366.tif 000018
【図１７】
2006236366.tif 000019