開発者育成支援システム、開発者育成支援方法及び開発者育成支援プログラム
【課題】プログラム開発者の育成を効率的に支援するための開発者育成支援システム、開発者育成支援方法及び開発者育成支援プログラムを提供する。
【解決手段】開発者育成サーバ20の対象者情報記憶部23には、育成対象者の性格識別子が記憶されている。更に、基準情報記憶部24には、性格識別子に対応した基準値が記憶されている。そして、開発者育成サーバ20の制御部21は、育成対象者の性格情報の取得処理を実行する。進捗状況が基準値に達していない場合、制御部21は、アラーム出力処理を実行する。更に、制御部21は、性格識別子基準値を用いて、ソースコードの評価処理を実行する。コンパイルエラー評価処理においては、エラー履歴におけるエラー種類に応じて許容回数を特定する。そして、エラー回数が許容回数以上の場合、制御部21は、支援情報の出力処理を実行する。
【解決手段】開発者育成サーバ20の対象者情報記憶部23には、育成対象者の性格識別子が記憶されている。更に、基準情報記憶部24には、性格識別子に対応した基準値が記憶されている。そして、開発者育成サーバ20の制御部21は、育成対象者の性格情報の取得処理を実行する。進捗状況が基準値に達していない場合、制御部21は、アラーム出力処理を実行する。更に、制御部21は、性格識別子基準値を用いて、ソースコードの評価処理を実行する。コンパイルエラー評価処理においては、エラー履歴におけるエラー種類に応じて許容回数を特定する。そして、エラー回数が許容回数以上の場合、制御部21は、支援情報の出力処理を実行する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム開発者の育成を支援するための開発者育成支援システム、開発者育成支援方法及び開発者育成支援プログラムに関する。
【背景技術】
【0002】
システム開発を行なう場合、まず、システムやソフトウェアの開発において、要求されている機能や、実装されるべき機能を明確にしていく要件定義を行なう。そして、機能設計、プログラム設計を経てコーディングを行なう。このコーディングにおいては、プログラミング言語を用いてソースコードを記述する。そして、プログラミング言語で書かれたプログラムを、コンピュータが直接実行可能な機械語のプログラム(オブジェクトコード)に変換するコンパイルを行なう。このように生成されたプログラムについては、多様なテストケースを想定したテストデータを利用して動作確認が行なわれる。
【0003】
また、コンパイラ、テキストエディタ、デバッガ等を統合して対話型操作環境から利用できるようにした統合開発環境を利用する場合もある(例えば、特許文献1を参照。)。この統合開発環境を使うことによって、巨大かつ複雑なソフトウェアでも、効率的に開発することが可能になる。
【0004】
このようなシステム開発においては、開発者を育成する教育が必要である。このため、高品質な開発物を製作するための教育システムも検討されている(例えば、特許文献2を参照。)。この文献に記載されたシステムは、開発者情報と開発者管理ポリシとを格納した開発者情報データベース、教育用コンテンツを格納した教育用コンテンツデータベースを備える。開発者端末から教育用コンテンツ要求を受信した場合、開発者情報データベースの開発者情報、開発者管理ポリシ、教育用コンテンツに対応したコンテンツを開発者端末に送信する。
【0005】
また、プログラムの解析時又は実行時に発生したエラーについての情報を利用して、プログラム作成の経験を生かすためのシステムも検討されている(例えば、特許文献3を参照。)。この文献に記載されたシステムにおいては、プログラムの解析時及び実行時に発生したエラーの情報を記憶するエラー情報エリアを設ける。そして、プログラムの解析時及び実行時にエラーが発生したときに、蓄積されたエラー情報エリアを検索して表示する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2008−234466号公報(第1頁、図2)
【特許文献2】特開2009−151532号公報(第1頁、図1)
【特許文献3】特開平6−266547号公報(第1頁、図7)
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献2に記載されているように、システム開発者を育成する場合、育成対象者に課題を提供し、この課題に対する試行錯誤を通じて、スキル向上を図ることがある。ここで、作成したプログラムにエラーが発生した場合、特許文献3に記載されているようにこのエラーから学習することも多い。一方で、育成対象者だけでは、エラーの原因を特定できず、進捗が遅れてしまうこともある。又、プログラム作成への取り組みは、育成対象者の
性格によって異なってくる。従って、育成対象者の状況や性格に応じて的確な指導を行なう必要がある。
【0008】
本発明は、上記問題点を解決するためになされたものであり、その目的は、システム開発者の育成を効率的に支援するための開発者育成支援システム、開発者育成支援方法及び開発者育成支援プログラムを提供することにある。
【課題を解決するための手段】
【0009】
上記問題点を解決するために、請求項1に記載の発明は、育成対象者の対象者識別子を記憶した対象者情報記憶手段と、エラー種類に対応した支援情報を記憶した支援情報記憶手段と、支援情報を出力するための基準回数を記憶した基準情報記憶手段と、育成対象者の作成したプログラムにおいて、発生したエラー履歴を対象者識別子毎に記録するエラー情報記憶手段と、育成対象者端末に接続されるとともに、育成対象者の作成したプログラムにおいて発生したエラー情報を取得する制御手段とを備え、開発者の育成を支援するためのシステムであって、前記制御手段が、育成対象者の作成したプログラムにおいてエラーを検知した場合、対象者識別子に関連付けて、発生したエラーを前記エラー情報記憶手段に記録するとともに、このエラー種類を特定する手段と、同じ種類のエラーの発生回数を算出する手段と、同じ種類のエラーの発生回数が前記基準情報記憶手段に記憶された基準回数を超えている場合には、このエラー種類に対応した支援情報を支援情報記憶手段から抽出して出力する手段とを備えたことを要旨とする。
【0010】
請求項2に記載の発明は、請求項1に記載の開発者育成支援システムにおいて、前記制御手段は、更に指導者端末に接続されており、前記制御手段が、支援情報を抽出できない場合には、エラー情報を指導者端末に送信する手段を更に備えたことを要旨とする。
【0011】
請求項3に記載の発明は、請求項1又は2に記載の開発者育成支援システムにおいて、前記対象者情報記憶手段には、対象者識別子に関連付けられて、育成対象者の性格を分類した性格識別子が記憶されており前記基準情報記憶手段には、性格識別子に関連付けられて基準回数が記憶されており、前記制御手段が、育成対象者の性格識別子を取得して、この性格識別子に関連付けられた支援情報を出力することを要旨とする。
【0012】
請求項4に記載の発明は、請求項3に記載の開発者育成支援システムにおいて、前記基準情報記憶手段には、性格識別子に関連付けられて、コーディング量についての進捗基準値が記録されており、前記制御手段が、育成対象者の作成したプログラムのコーディング量を取得し、コーディング量が、前記育成対象者の性格識別子に対応する進捗基準量に達していない場合には、アラームを出力する手段を更に備えたことを要旨とする。
【0013】
請求項5に記載の発明は、請求項3又は4に記載の開発者育成支援システムにおいて、前記基準情報記憶手段には、性格識別子に関連付けられて、育成対象者の作成したプログラムに含まれるメソッド数についてのメソッド数許容範囲が記録されており、前記制御手段が、育成対象者の作成したプログラムに含まれるメソッド数を算出し、前記メソッド数が、前記育成対象者の性格識別子に対応するメソッド数許容範囲を超えている場合には、アラームを出力する手段を更に備えたことを要旨とする。
【0014】
請求項6に記載の発明は、請求項3〜5のいずれか一つに記載の開発者育成支援システムにおいて、前記基準情報記憶手段には、性格識別子に関連付けられて、育成対象者の作成したプログラムに含まれる特定命令の数についての命令数許容範囲が記録されており、前記制御手段が、一つのメソッドの中に含まれる特定命令の数を算出し、前記命令数が、前記育成対象者の性格識別子に対応する命令数許容範囲を超えている場合には、アラームを出力する手段を更に備えたことを要旨とする。
【0015】
請求項7に記載の発明は、育成対象者の対象者識別子を記憶した対象者情報記憶手段と、エラー種類に対応した支援情報を記憶した支援情報記憶手段と、支援情報を出力するための基準回数を記憶した基準情報記憶手段と、育成対象者の作成したプログラムにおいて、発生したエラー履歴を対象者識別子毎に記録するエラー情報記憶手段と、育成対象者端末に接続されるとともに、育成対象者の作成したプログラムにおいて発生したエラー情報を取得する制御手段とを備えたシステムを用いて、開発者の育成を支援するための方法であって、前記制御手段が、育成対象者の作成したプログラムにおいてエラーを検知した場合、対象者識別子に関連付けて、発生したエラーを前記エラー情報記憶手段に記録するとともに、このエラー種類を特定する段階と、同じ種類のエラーの発生回数を算出する段階と、同じ種類のエラーの発生回数が前記基準情報記憶手段に記憶された基準回数を超えている場合には、このエラー種類に対応した支援情報を支援情報記憶手段から抽出して出力する段階とを実行することを要旨とする。
【0016】
請求項8に記載の発明は、育成対象者の対象者識別子を記憶した対象者情報記憶手段と、エラー種類に対応した支援情報を記憶した支援情報記憶手段と、支援情報を出力するための基準回数を記憶した基準情報記憶手段と、育成対象者の作成したプログラムにおいて、発生したエラー履歴を対象者識別子毎に記録するエラー情報記憶手段と、育成対象者端末に接続されるとともに、育成対象者の作成したプログラムにおいて発生したエラー情報を取得する制御手段とを備えたシステムを用いて、開発者の育成を支援するためのプログラムであって、前記制御手段を、育成対象者の作成したプログラムにおいてエラーを検知した場合、対象者識別子に関連付けて、発生したエラーを前記エラー情報記憶手段に記録するとともに、このエラー種類を特定する手段、同じ種類のエラーの発生回数を算出する手段、同じ種類のエラーの発生回数が前記基準情報記憶手段に記憶された基準回数を超えている場合には、このエラー種類に対応した支援情報を支援情報記憶手段から抽出して出力する手段として機能させることを要旨とする。
【0017】
(作用)
請求項1、7、8に記載の発明によれば、制御手段が、育成対象者の作成したプログラムにおいてエラーを検知した場合、対象者識別子に関連付けて、発生したエラーを前記エラー情報記憶手段に記録するとともに、このエラー種類を特定する。次に、同じ種類のエラーの発生回数を算出する。そして、同じ種類のエラーの発生回数が前記基準情報記憶手段に記憶された基準回数を超えている場合には、このエラー種類に対応した支援情報を支援情報記憶手段から抽出して出力する。育成対象者の検討状況に応じて、エラーの発生状況が異なってくる。この発生状況に応じて、検討状況に対応した支援を行なうことができる。
【0018】
請求項2に記載の発明によれば、制御手段が、支援情報を抽出できない場合には、エラー情報を指導者端末に送信する。これにより、支援情報記憶手段に記録された支援情報を提供できない場合には、指導者に対して、育成対象者への支援を促すことができる。
【0019】
請求項3に記載の発明によれば、制御手段が、育成対象者の性格識別子を取得して、この性格識別子に関連付けられた支援情報を出力する。これにより、育成対象者の性格に応じた支援を行なうことができる。
【0020】
請求項4に記載の発明によれば、制御手段が、育成対象者の作成したプログラムのコーディング量を取得する。そして、コーディング量が、育成対象者の性格識別子に対応する進捗基準量に達していない場合には、アラームを出力する。これにより、育成対象者の性格に応じた進捗状況を考慮して、指導を行なうことができる。
【0021】
請求項5に記載の発明によれば、制御手段が、育成対象者の作成したプログラムに含まれるメソッド数を算出する。そして、メソッド数が、育成対象者の性格識別子に対応するメソッド数許容範囲を超えている場合には、アラームを出力する。これにより、育成対象者の性格に応じたメソッド数の許容範囲を考慮して、指導を行なうことができる。
【0022】
請求項6に記載の発明によれば、制御手段が、一つのメソッドの中に含まれる特定命令の数を算出する。そして、命令数が、育成対象者の性格識別子に対応する命令数許容範囲を超えている場合には、アラームを出力する。これにより、育成対象者の性格に応じた命令数の許容範囲を考慮して、指導を行なうことができる。
【発明の効果】
【0023】
本発明によれば、プログラム開発者の育成を効率的に支援するための開発者育成支援システム、開発者育成支援方法及び開発者育成支援プログラムを提供することができる。
【図面の簡単な説明】
【0024】
【図1】本発明の実施形態のシステム概略図。
【図2】本発明の各データ記憶部に記録されたデータの説明図であって、(a)は課題情報記憶部、(b)は対象者情報記憶部、(c)は基準情報記憶部、(d)は評価用辞書記憶部に記録されたデータの説明図。
【図3】本発明の各データ記憶部に記録されたデータの説明図であって、(a)は支援情報記憶部、(b)は作成履歴記憶部、(c)はエラー履歴記憶部に記録されたデータの説明図。
【図4】本発明における開発者育成支援の手順の説明図。
【図5】本発明における開発者育成支援の手順の説明図。
【図6】本発明における開発者育成支援の手順の説明図。
【図7】本発明における開発者育成支援の手順の説明図。
【図8】本発明における開発者育成支援の手順の説明図。
【図9】本発明における開発者育成支援の手順の説明図。
【図10】本発明における開発者育成支援の手順の説明図。
【発明を実施するための形態】
【0025】
以下、本発明を具体化した一実施形態を、図1〜図10を用いて説明する。本実施形態では、システム開発においてプログラムを作成する開発者の育成を支援する場合を想定する。本実施形態では、図1に示すように、クライアント端末10、開発者育成サーバ20、統合開発環境サーバ30を用いる。本実施形態では、育成対象者がクライアント端末10においてプログラムを作成するとともに、このプログラムを統合開発環境サーバ30においてコンパイルする。そして、開発者育成サーバ20が、育成対象者に対する育成を支援する。
【0026】
クライアント端末10は、育成対象者や指導者が使用するコンピュータ端末(育成対象者端末、指導者端末)である。育成対象者は、このクライアント端末10を用いて、指導者から与えられた課題についてのプログラムを作成する。また、指導者は、クライアント端末10を用いて、育成対象者の進捗状況を確認したり、育成対象者に対してアドバイスを行なったりする。クライアント端末10は、ネットワークを介してデータを送信する機能や、受信したデータを表示する機能等を有する。このため、クライアント端末10は、図示しない制御部、キーボード、マウス等の入力手段、ディスプレイ等の出力手段、通信手段等を備えている。
【0027】
統合開発環境サーバ30は、公知のコンパイラ、テキストエディタ、デバッガの各機能を備えている。
開発者育成サーバ20は、制御部21、課題情報記憶部22、対象者情報記憶部23、基準情報記憶部24、評価用辞書記憶部25、支援情報記憶部26、作成履歴記憶部27、エラー履歴記憶部28を備えている。
【0028】
この制御部21は、図示しないCPU等の制御手段、RAM及びROM等のメモリを有し、開発者育成支援を実行する。具体的には、後述する各処理(データ取得段階、進捗評価段階、評価管理段階、エラー評価段階、作法評価段階、機能評価段階、テスト評価段階等の各処理)を実行する。このための開発者育成支援プログラムを実行することにより、開発者育成サーバ20の制御部21は、図1に示すように、データ取得手段211、進捗評価手段212、評価管理手段213、エラー評価手段214、作法評価手段215、機能評価手段216、テスト評価手段217として機能する。
【0029】
データ取得手段211は、クライアント端末10において作成されたソースコードや、統合開発環境サーバ30においてコンパイルされたオブジェクトコード、テストに用いるテストデータの取得処理を実行する。ソースコードについては、クライアント端末10において、コーディングされたところまでのコードを、統合開発環境サーバ30から定期的に取得して、作成履歴記憶部27に記録する。オブジェクトコードについては、統合開発環境サーバ30においてコンパイルされたときに記録する。テストデータは複数の項目値から構成されている。そして、クライアント端末10において作成されたところまでのテストデータを、統合開発環境サーバ30から定期的に取得して、作成履歴記憶部27に記録する。
【0030】
進捗評価手段212は、育成対象者における課題の進捗状況を評価する処理を実行する。
評価管理手段213は、育成対象者が作成したプログラム(ソースコード)についての評価を管理する処理を実行する。
【0031】
エラー評価手段214は、育成対象者が作成したソースコードのコンパイル時に発生したエラーを評価する処理を実行する。
作法評価手段215は、育成対象者が作成したソースコードにおけるプログラミング作法(ソースコード作成時の規則やガイドライン)の遵守状況についての評価処理を実行する。
【0032】
機能評価手段216は、育成対象者が作成したソースコードに含まれる機能ブロックについての評価処理を実行する。
テスト評価手段217は、育成対象者が作成したプログラムにおけるテスト状況を評価する処理を実行する。
【0033】
課題情報記憶部22には、図2(a)に示すように、育成対象者に提供される課題を管理するための課題管理レコード220が記憶されている。この課題管理レコード220は、育成対象者に提供される課題が登録された場合に記録される。課題管理レコード220は、課題識別子、内容、作成進捗確認時期、テスト進捗確認時期、テストケース数許容範囲、カバレージ基準値に関するデータを含んで構成される。
【0034】
課題識別子データ領域には、各課題を特定するための識別子に関するデータが記録されている。
内容データ領域には、この課題の内容に関するデータが記録されている。
【0035】
作成進捗確認時期データ領域には、この課題について、プログラム作成の進捗状況を確認するタイミングに関するデータが記録されている。本実施形態では、プログラム作成の
進捗状況に応じた所要時間が記録されている。
【0036】
テスト進捗確認時期データ領域には、この課題について、プログラムテストの進捗状況を確認するタイミングに関するデータが記録されている。本実施形態では、プログラムテストの進捗状況に応じた所要時間が記録されている。
【0037】
テストケース数許容範囲データ領域には、この課題についてのプログラムをテストするために必要なテストケースの許容範囲(最低数〜上限数)に関するデータが記録されている。
【0038】
カバレージ基準値データ領域には、この課題についてのプログラムをテストするために必要なテストケースを評価するための指標に関するデータが記録されている。本実施形態では、指標として、テストケースによりテストできる網羅率(カバレージ)の目標値が記録されている。
【0039】
対象者情報記憶部23は対象者情報記憶手段として機能するとともに、図2(b)に示すように、育成対象者を管理するための対象者管理レコード230が記憶されている。この対象者管理レコード230は、育成対象者が登録された場合に記録される。対象者管理レコード230は、育成対象者識別子、性格識別子、進捗状況に関するデータを含んで構成される。
【0040】
育成対象者識別子データ領域には、各育成対象者を特定するための識別子に関するデータが記録されている。
性格識別子データ領域には、この育成対象者の性格を特定するための識別子に関するデータが記録されている。本実施形態では、この性格識別子として、着実性評価値及び積極性評価値が記録されている。着実性評価値においては、作成速度が遅い場合であっても、エラーの少ないプログラムを作成する性格を評価する。積極性評価値においては、エラーが多い場合であっても、色々な試行錯誤を行ないながらプログラムを作成する性格を評価する。
進捗状況データ領域には、この育成対象者に与えられている課題を特定するための識別子(課題識別子)に関するデータが記録されている。
【0041】
基準情報記憶部24は基準情報記憶手段として機能するとともに、図2(c)に示すように、性格に対応した基準値を管理するための基準値管理レコード240が記憶されている。この基準値管理レコード240は、登録された場合に記録される。基準値管理レコード240は、性格識別子、基準値に関するデータを含んで構成される。
【0042】
性格識別子データ領域には、育成対象者の性格を特定するための識別子(着実性評価値や積極性評価値)に関するデータが記録されている。
基準値データ領域には、この性格の育成対象者の評価に用いる基準値に関するデータが記録されている。本実施形態では、基準値として、進捗基準値、メソッド数基準値、命令文数基準値、メソッド行数基準値、異種類許容回数、同種類許容回数が記録されている。
【0043】
進捗基準値は、プログラムにおけるコーディング量についての進捗基準値を規定している。
メソッド数基準値は、プログラムに含まれるメソッド数についての上限値を規定している。
【0044】
命令文数基準値は、プログラムに含まれる特定命令の数についての上限値を規定している。
メソッド行数基準値は、プログラムに含まれるメソッドの行数の上限値を規定している。
異種類許容回数、同種類許容回数は、それぞれ、異種類又は同種類のエラーについて、支援情報の出力要否を判定するための基準回数を規定している。
【0045】
評価用辞書記憶部25には、図2(d)に示すように、育成対象者が作成したソースコードを評価するための名称管理レコード251や特定命令管理レコード252が記憶されている。この名称管理レコード251や特定命令管理レコード252は、メソッド名や変数名として用いることが可能な名称が登録された場合に記録される。名称管理レコード251は、見出語、関連語に関するデータを含んで構成される。
【0046】
見出語データ領域には、メソッド名や変数名として用いることが可能な名称に関するデータが記録されている。
関連語データ領域には、この見出語に関連する他の名称に関するデータが記録されている。本実施形態では、組み合わせて使用できない使用不可単語(例えば、競合する類義語や、類義語と対になる対語)を登録しておく。更に、見出語と対にして記載すべき必須単語を登録しておく。
特定命令管理レコード252は、評価対象の命令を特定するためのコマンドに関するデータを含んで構成される。
【0047】
支援情報記憶部26は支援情報記憶手段として機能するとともに、図3(a)に示すように、エラーが発生した場合に育成対象者に対して提供される支援情報を管理するための支援情報管理レコード260が記憶されている。この支援情報管理レコード260は、支援情報が登録された場合に記録される。支援情報管理レコード260は、エラー識別子、支援内容に関するデータを含んで構成される。
【0048】
エラー識別子データ領域には、ソースコードのコンパイル時に発生したエラーを特定するための識別子に関するデータが記録されている。
支援内容データ領域には、このエラーを解消するために、育成対象者に提供される助言に関するデータが記録されている。
【0049】
作成履歴記憶部27には、図3(b)に示すように、育成対象者が作成したプログラム(ソースコードやオブジェクトコード)を管理するための作成履歴管理レコード270が記憶される。この作成履歴管理レコード270は、ソースコードやオブジェクトコードが生成された場合に記録される。作成履歴管理レコード270は、育成対象者識別子、課題識別子、作成開始日、作成終了日、テスト開始日、評価終了日に関するデータを含んで構成される。更に、作成履歴管理レコード270には、育成対象者識別子、課題識別子に関連付けて、成果登録レコード271が記録されている。
【0050】
育成対象者識別子データ領域には、各育成対象者を特定するための識別子に関するデータが記録される。
課題識別子データ領域には、各育成対象者が取り組んでいる課題を特定するための識別子に関するデータが記録される。
【0051】
作成開始日データ領域、作成終了日データ領域には、この育成対象者が、この課題のプログラムの作成を開始した年月日や作成を終了した年月日に関するデータが記録される。この作成開始日には、クライアント端末10に課題を提供した日付を用いる。作成終了日には、クライアント端末10からプログラム完成報告を受信した日付を用いる。
【0052】
テスト開始日データ領域、評価終了日データ領域には、この育成対象者が、この課題の
プログラムのテストを開始した年月日やテストを終了した年月日に関するデータが記録される。このテスト開始日には、クライアント端末10からテスト開始報告を受信した日付を用いる。評価終了日には、後述するテスト評価処理を完了した日付を用いる。
【0053】
成果登録レコード271は、登録日、作成物に関するデータを含んで構成される。この成果登録レコード271は、課題に対するプログラムについての進捗があった場合に記録される。
【0054】
登録日データ領域には、課題についての成果物を登録した年月日に関するデータが記録される。
作成物データ領域には、生成されたソースコードやオブジェクトコード、テストデータが記録される。
【0055】
エラー履歴記憶部28はエラー情報記憶手段として機能するとともに、図3(c)に示すように、育成対象者が作成したプログラムにおいて発生したエラーを管理するためのエラー履歴管理レコード280が記憶されている。このエラー履歴管理レコード280は、育成対象者が作成したプログラムにおいてエラーを検知した場合に記録される。エラー履歴管理レコード280は、育成対象者識別子、課題識別子、発生日、エラー内容、再コンパイル目的に関するデータを含んで構成される。
【0056】
育成対象者識別子データ領域には、各育成対象者を特定するための識別子に関するデータが記録される。
課題識別子データ領域には、エラーが発生した課題を特定するための識別子に関するデータが記録される。
【0057】
発生日データ領域には、エラーが発生した年月日に関するデータが記録されている。
エラー内容データ領域には、発生したエラーのエラー種類を特定するための識別子(エラー識別子)に関するデータが記録されている。
再コンパイル目的データ領域には、育成対象者が入力した再コンパイルの目的に関するデータが記録される。
【0058】
上記のように構成されたシステムを用いて、開発者の育成を支援するための処理手順を、図4〜図10に従って説明する。ここでは、進捗評価処理(図4)、コンパイル時処理(図5)、プログラミング作法の評価処理(図6)、機能ブロック評価処理(図7、図8)、コンパイルエラー評価処理(図9)、テスト評価処理(図10)の順番に説明する。
【0059】
(進捗評価処理)
まず、進捗評価処理を、図4に従って説明する。この進捗評価処理においては、対象者情報記憶部23に登録された各育成対象者を特定し、以下の処理を育成対象者毎に繰り返す。
【0060】
開発者育成サーバ20の制御部21は、作業開始からの経過時間の取得処理を実行する(ステップS1−1)。具体的には、制御部21の進捗評価手段212は、作成履歴記憶部27において、作成履歴管理レコード270の中で作成開始日が記録されるとともに、作成終了日が記録されていないレコードを取得する。そして、進捗評価手段212は、作成開始日からの経過時間を算出する。
【0061】
次に、開発者育成サーバ20の制御部21は、作成進捗確認時期が到来したかどうかについての判定処理を実行する(ステップS1−2)。具体的には、制御部21の進捗評価手段212は、課題情報記憶部22から、この課題についての作成進捗確認時期を取得す
る。そして、進捗評価手段212は、経過時間と作成進捗確認時期とを比較する。
【0062】
経過時間が作成進捗確認時期に達していない場合(ステップS1−2において「NO」の場合)には、開発者育成サーバ20の制御部21は、この育成対象者についての進捗評価処理を終了する。
【0063】
一方、経過時間が作成進捗確認時期に達している場合(ステップS1−2において「YES」の場合)には、開発者育成サーバ20の制御部21は、進捗状況の取得処理を実行する(ステップS1−3)。具体的には、制御部21のデータ取得手段211は、作成履歴記憶部27の成果登録レコード271に記録された直近日のソースコードを取得する。そして、このソースコードに記録されたコーディング量(行数)を取得する。
【0064】
次に、開発者育成サーバ20の制御部21は、育成対象者の性格情報の取得処理を実行する(ステップS1−4)。具体的には、制御部21の評価管理手段213は、対象者情報記憶部23の対象者管理レコード230から、この育成対象者の性格識別子(着実性評価値)を取得する。
【0065】
次に、開発者育成サーバ20の制御部21は、性格に応じた基準値の特定処理を実行する(ステップS1−5)。具体的には、制御部21の評価管理手段213は、基準情報記憶部24から、取得した性格識別子(着実性評価値)に対応する進捗基準値を取得する。
【0066】
次に、開発者育成サーバ20の制御部21は、進捗状況が基準値より低いかどうかについての判定処理を実行する(ステップS1−6)。具体的には、制御部21の進捗評価手段212は、ステップS1−3において取得したコーディング量とステップS1−5において取得した基準値とを比較する。
【0067】
進捗状況が基準値以上の場合(ステップS1−6において「NO」の場合)、開発者育成サーバ20の制御部21は、進捗評価処理を終了する。
一方、進捗状況が基準値に達していない場合(ステップS1−6において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS1−7)。具体的には、制御部21の進捗評価手段212は、この対象者のクライアント端末10に対して、進捗の遅れを示すメッセージを含めたアラームを出力する。
以上の処理を育成対象者毎に繰り返す。
【0068】
(コンパイル時処理)
次に、コンパイル時処理を、図5に従って説明する。
【0069】
クライアント端末10は、コンパイル指示処理を実行する(ステップS2−1)。具体的には、ソースコードを完成した場合、育成対象者はクライアント端末10においてコンパイル指示を入力する。この場合、クライアント端末10は、開発者育成サーバ20に対して、コンパイル指示を送信する。このコンパイル指示には、クライアント端末10において作成したソースコードを含める。
【0070】
次に、クライアント端末10は、ソースコードの登録処理を実行する(ステップS2−2)。具体的には、制御部21のデータ取得手段211は、クライアント端末10から取得したソースコードを含めた成果登録レコード271を生成し、作成履歴記憶部27に記録する。この場合、データ取得手段211は、登録日として現在日付を記録する。
【0071】
次に、開発者育成サーバ20の制御部21は、ソースコードの評価処理を実行する(ステップS2−3)。ここでは、制御部21は、後述するように、作法評価手段215にお
いてプログラミング作法の評価処理(ステップS2−3a)、機能評価手段216において機能ブロック評価処理(ステップS2−3b)を実行する。そして、制御部21の評価管理手段213は、作法評価手段215、機能評価手段216から評価結果を取得する。
【0072】
次に、開発者育成サーバ20の制御部21は、評価結果に問題がないかどうかについての判定処理を実行する(ステップS2−4)。具体的には、制御部21の評価管理手段213は、各評価手段(215,216)から取得した評価結果に基づいて判定する。
【0073】
各評価手段(215,216)から取得した評価結果において問題があった場合(ステップS2−4において「NO」の場合)、開発者育成サーバ20の制御部21は、ソースコードの修正指示処理を実行する(ステップS2−5)。具体的には、制御部21の評価管理手段213は、クライアント端末10に対して、修正指示を送信する。この修正指示には、各評価手段(215,216)から取得した評価結果を含める。この場合、育成対象者は、この指示に基づいてソースコードの修正を行なう。
【0074】
各評価手段(215,216)から取得した評価結果に問題がなかった場合(ステップS2−4において「YES」の場合)、開発者育成サーバ20の制御部21は、ソースコードの修正指示処理(ステップS2−5)をスキップする。
【0075】
次に、開発者育成サーバ20の制御部21は、コンパイル処理を実行する(ステップS2−6)。具体的には、制御部21のデータ取得手段211は、統合開発環境サーバ30に対して、コンパイル要求を送信する。このコンパイル要求には、クライアント端末10から取得したソースコードを含める。
【0076】
統合開発環境サーバ30は、クライアント端末10において作成されたソースコードのコンパイルを実行する。そして、統合開発環境サーバ30は、コンパイル成果物を開発者育成サーバ20に返信する。このコンパイル成果物には、生成したオブジェクトコード、コンパイル結果を含める。コンパイル時にエラーが発生した場合には、エラー内容をコンパイル結果に含める。
【0077】
次に、開発者育成サーバ20の制御部21は、オブジェクトコードの登録処理を実行する(ステップS2−7)。具体的には、制御部21のデータ取得手段211は、統合開発環境サーバ30から取得したオブジェクトコードを、作成履歴記憶部27に登録する。
【0078】
次に、開発者育成サーバ20の制御部21は、コンパイルエラーの有無についての判定処理を実行する(ステップS2−8)。具体的には、制御部21の評価管理手段213は、統合開発環境サーバ30から取得したコンパイル結果に基づいて、エラーの有無を判定する。
【0079】
コンパイルエラーが発生している場合(ステップS2−8において「YES」の場合)、開発者育成サーバ20の制御部21は、コンパイルエラー評価処理を実行する(ステップS2−9)。具体的には、制御部21のエラー評価手段214が、後述するコンパイルエラー評価処理を実行する。
一方、コンパイルエラーがない場合(ステップS2−8において「NO」の場合)、開発者育成サーバ20の制御部21は、コンパイル時処理を終了する。
【0080】
(プログラミング作法の評価処理)
次に、プログラミング作法の評価処理(ステップS2−3a)を、図6に従って説明する。
【0081】
ここでは、開発者育成サーバ20の制御部21は、ソースコードから変数名、メソッド名の抽出処理を実行する(ステップS3−1)。具体的には、制御部21の作法評価手段215は、作成履歴記憶部27に記録されたソースコードのフォーマットに応じて変数やメソッドを抽出する。そして、変数やメソッドに付与されている名称を特定する。
【0082】
次に、抽出した名称毎に、以下の処理を繰り返す。
開発者育成サーバ20の制御部21は、名称に対応するコメント文の抽出処理を実行する(ステップS3−2)。具体的には、制御部21の作法評価手段215は、ソースコードから、変数やメソッドについてのコメント文を抽出する。
【0083】
次に、開発者育成サーバ20の制御部21は、抽出した名称について曖昧検索処理を実行する(ステップS3−3)。具体的には、制御部21の作法評価手段215は、抽出した変数名やメソッド名を検索対象語として、評価用辞書記憶部25において曖昧検索を行なう。この曖昧検索においては、検索対象語に対して、所定の割合以上の構成文字や文字配列が共通している見出語(共通見出語)を検索する。
【0084】
次に、開発者育成サーバ20の制御部21は、名称の利用を許容できるかどうかについての判定処理を実行する(ステップS3−4)。具体的には、制御部21の作法評価手段215は、曖昧検索における共通見出語の抽出の有無により判定する。
【0085】
曖昧検索において共通見出語を抽出できないため、名称利用を許容できないと判定した場合(ステップS3−4において「NO」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS3−5)。具体的には、制御部21の作法評価手段215は、クライアント端末10に対して、曖昧検索において候補を抽出できなかった名称を出力する。この場合、この名称について、ソースコードから取得したコメント文も併せて出力する。
【0086】
一方、曖昧検索において共通見出語を抽出できたため、名称利用を許容できると判定した場合(ステップS3−4において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理(ステップS3−5)をスキップする。
【0087】
次に、開発者育成サーバ20の制御部21は、名称の関連語の取得処理を実行する(ステップS3−6)。具体的には、制御部21の作法評価手段215は、評価用辞書記憶部25の名称管理レコード251を用いて、共通見出語に関連付けられた関連語を取得する。
【0088】
次に、開発者育成サーバ20の制御部21は、問題がある関連語が存在するかどうかについての判定処理を実行する(ステップS3−7)。具体的には、制御部21の作法評価手段215は、このソースコードから取得した名称の中に、名称管理レコード251に記録された関連語と所定の割合以上の構成文字や文字配列が共通している名称が含まれるかどうかを判定する。ここで、組み合わせて使用できない使用不可単語を抽出した場合や、見出語と対にして記載すべき必須単語を抽出できなかった場合は、問題があることになる。
【0089】
問題がある関連語が存在する場合(ステップS3−7において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS3−8)。具体的には、制御部21の作法評価手段215は、関連語を抽出できなかった名称について、関連語及びコメント文をクライアント端末10に出力する。
【0090】
一方、問題がある関連語が存在しない場合(ステップS3−7において「NO」の場合
)、開発者育成サーバ20の制御部21は、アラーム出力処理(ステップS3−8)をスキップする。
【0091】
次に、開発者育成サーバ20の制御部21は、各名称の相互比較処理を実行する(ステップS3−9)。具体的には、制御部21の作法評価手段215は、ソースコードから取得した他の変数名やメソッド名を構成するアルファベットの配列の比較を行なう。
【0092】
そして、開発者育成サーバ20の制御部21は、紛らわしい名称があるかどうかについての判定処理を実行する(ステップS3−10)。具体的には、制御部21の作法評価手段215は、所定の割合以上の構成文字が共通しており、途中で異なるアルファベットが含まれる他の名称の有無により判定する。
【0093】
紛らわしい名称を検出した場合(ステップS3−10において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS3−11)。具体的には、制御部21の作法評価手段215は、クライアント端末10に対して、類似する名称を出力する。この場合、各名称について、ソースコードから取得したコメント文も併せて出力する。一方、紛らわしい名称を検出しなかった場合(ステップS3−10において「NO」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理(ステップS3−11)をスキップする。
以上の処理を、名称毎に繰り返す。
【0094】
(機能ブロック評価処理)
次に、機能ブロック評価処理(ステップS2−3b)を、図7に従って説明する。
【0095】
ここでは、開発者育成サーバ20の制御部21は、字下げスタイルの構文の抽出処理を実行する(ステップS4−1)。具体的には、制御部21の機能評価手段216は、ソースコードにおいて、字下げ行を検索する。
【0096】
次に、開発者育成サーバ20の制御部21は、自動生成を利用しているかどうかについての判定処理を実行する(ステップS4−2)。具体的には、制御部21の機能評価手段216は、クライアント端末10から取得したソースコードに含まれるコードを用いて、字下げの自動生成を行なう。そして、字下げの自動生成においても、クライアント端末10から取得したソースコードに変化がない場合には自動生成を利用していると判定する。
【0097】
クライアント端末10において自動生成を利用していないと判定した場合(ステップS4−2において「NO」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS4−3)。具体的には、制御部21の機能評価手段216は、クライアント端末10において、字下げの自動生成を推奨するメッセージを出力する。一方、自動生成を利用していると判定した場合(ステップS4−2において「YES」の場合)、アラーム出力処理(ステップS4−3)をスキップする。
【0098】
次に、開発者育成サーバ20の制御部21は、命令文の行跨ぎの検索処理を実行する(ステップS4−4)。具体的には、制御部21の機能評価手段216は、クライアント端末10から取得したソースコードにおいて、一連の命令文が記述された行の行数を算出する。
【0099】
次に、開発者育成サーバ20の制御部21は、命令の行跨ぎがあるかどうかについての判定処理を実行する(ステップS4−5)。具体的には、制御部21の機能評価手段216は、一連の命令文が複数行にわたっている場合には、行跨ぎと判定する。
【0100】
命令文の行跨ぎがある場合(ステップS4−5において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS4−6)。具体的には、制御部21の機能評価手段216は、クライアント端末10において、行跨ぎがあることを示すメッセージを出力する。一方、命令の行跨ぎがない場合(ステップS4−5において「NO」の場合)、アラーム出力処理(ステップS4−6)をスキップする。
【0101】
次に、開発者育成サーバ20の制御部21は、性格に対応した許容範囲の特定処理を実行する(ステップS4−7)。具体的には、制御部21の機能評価手段216は、対象者情報記憶部23に記録された対象者管理レコード230から性格識別子(着実性評価値)を取得する。次に、機能評価手段216は、基準情報記憶部24から取得した性格識別子(着実性評価値)に対応するメソッド数基準値、命令文数基準値、メソッド行数基準値を取得する。
【0102】
次に、開発者育成サーバ20の制御部21は、メソッド数の算出処理を実行する(ステップS4−8)。具体的には、制御部21の機能評価手段216は、クライアント端末10から取得したソースコードに含まれるメソッドを検索する。そして、機能評価手段216は、検出したメソッドの数をカウントする。
【0103】
次に、開発者育成サーバ20の制御部21は、許容範囲外かどうかについての判定処理を実行する(ステップS4−9)。具体的には、制御部21の機能評価手段216は、ソースコードから抽出したメソッド数と、性格識別子(着実性評価値)に対応して取得したメソッド数基準値とを比較する。
【0104】
メソッド数基準値を超えており、許容範囲外の場合(ステップS4−9において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS4−10)。具体的には、制御部21の機能評価手段216は、クライアント端末10において、メソッド数が許容範囲を超えていることを示すメッセージを出力する。一方、メソッド数がメソッド数基準値以下であり、許容範囲内の場合(ステップS4−9において「NO」の場合)、アラーム出力処理(ステップS4−10)をスキップする。
【0105】
次に、抽出したメソッド毎に、図8に示す処理を繰り返す。
ここでは、開発者育成サーバ20の制御部21は、各メソッドに含まれる特定の命令の抽出処理を実行する(ステップS5−1)。具体的には、制御部21の機能評価手段216は、評価用辞書記憶部25に記録された特定命令管理レコード252から特定命令文を取得する。次に、機能評価手段216は、クライアント端末10から取得したソースコードにおいて、この特定命令文を抽出する。そして、機能評価手段216は、検出した特定命令文の数をカウントする。
【0106】
次に、開発者育成サーバ20の制御部21は、許容範囲外かどうかについての判定処理を実行する(ステップS5−2)。具体的には、制御部21の機能評価手段216は、ソースコードから抽出した特定命令文数と、性格識別子(着実性評価値)に対応して取得した命令文数基準値とを比較する。
【0107】
特定命令文数が命令文数基準値を超えており、許容範囲外の場合(ステップS5−2において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS5−3)。具体的には、制御部21の機能評価手段216は、クライアント端末10において、特定命令文数が許容範囲を超えていることを示すメッセージを出力する。一方、特定命令文数が許容範囲内の場合(ステップS5−2において「NO」の場合)、アラーム出力処理(ステップS5−3)をスキップする。
【0108】
次に、開発者育成サーバ20の制御部21は、各メソッドの行数の算出処理を実行する(ステップS5−4)。具体的には、制御部21の機能評価手段216は、クライアント端末10から取得したソースコードに含まれる各メソッドのブロックを特定する。そして、機能評価手段216は、各ブロックの行数をカウントする。
【0109】
次に、開発者育成サーバ20の制御部21は、許容範囲外かどうかについての判定処理を実行する(ステップS5−5)。具体的には、制御部21の機能評価手段216は、ソースコードから抽出したメソッド行数と、性格識別子(着実性評価値)に対応して取得したメソッド行数基準値とを比較する。
【0110】
メソッド行数が許容範囲を超えており、許容範囲外の場合(ステップS5−5において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS5−6)。具体的には、制御部21の機能評価手段216は、メソッド行数が許容範囲を超えていることを示すメッセージを出力する。一方、メソッド行数が許容範囲内の場合(ステップS5−5において「NO」の場合)、アラーム出力処理(ステップS5−6)をスキップする。
以上の処理を、メソッド毎に繰り返す。
【0111】
(コンパイルエラー評価処理)
次に、コンパイルエラー評価処理を、図9に従って説明する。
【0112】
ここでは、開発者育成サーバ20の制御部21は、エラー情報の登録処理を実行する(ステップS6−1)。具体的には、制御部21のエラー評価手段214は、育成対象者識別子、課題識別子に関連付けて、発生日、エラー内容を含めたエラー履歴管理レコード280を生成し、エラー履歴記憶部28に登録する。
【0113】
次に、開発者育成サーバ20の制御部21は、先行のエラー履歴の検索処理を実行する(ステップS6−2)。具体的には、制御部21のエラー評価手段214は、エラー履歴記憶部28において、今回のエラーと同じ育成対象者識別子、課題識別子に関連付けられた先行のエラー履歴管理レコード280を検索する。
【0114】
次に、開発者育成サーバ20の制御部21は、育成対象者の性格情報の取得処理を実行する(ステップS6−3)。具体的には、制御部21のエラー評価手段214は、対象者情報記憶部23の対象者管理レコード230から性格識別子(積極性評価値)を取得する。
【0115】
次に、開発者育成サーバ20の制御部21は、積極性が低いかどうかについての判定処理を実行する(ステップS6−4)。具体的には、制御部21のエラー評価手段214は、取得した性格識別子(積極性評価値)と積極性基準値とを比較する。
【0116】
積極性評価値が積極性基準値より低い場合(ステップS6−4において「YES」の場合)、開発者育成サーバ20の制御部21は、再コンパイルの目的入力画面の表示処理を実行する(ステップS6−5)。具体的には、制御部21のエラー評価手段214は、クライアント端末10のディスプレイに目的入力画面を出力する。この場合、育成対象者は、この画面に再コンパイルの目的を入力する。そして、エラー評価手段214は、目的入力画面において入力された再コンパイル目的を取得して、エラー履歴管理レコード280に記録する。一方、積極性評価値が積極性基準値以上の場合(ステップS6−4において「NO」の場合)、開発者育成サーバ20の制御部21は、再コンパイルの目的入力画面の表示処理(ステップS6−5)をスキップする。
【0117】
次に、開発者育成サーバ20の制御部21は、同じ種類のエラー履歴があるかどうかについての判定処理を実行する(ステップS6−6)。具体的には、制御部21のエラー評価手段214は、エラー履歴記憶部28から取得した先行のエラー履歴管理レコード280において、今回のエラーと同じ内容が記録されたレコードを検索する。
【0118】
同じ種類のエラー履歴がない場合(ステップS6−6において「NO」の場合)、開発者育成サーバ20の制御部21は、性格に基いて異種類許容回数の特定処理を実行する(ステップS6−7)。具体的には、制御部21のエラー評価手段214は、対象者管理レコード230に記録された性格識別子(積極性評価値)に対応する異種類許容回数を、基準情報記憶部24から取得する。
【0119】
次に、開発者育成サーバ20の制御部21は、エラー回数が許容回数以上かどうかについての判定処理を実行する(ステップS6−8)。具体的には、制御部21のエラー評価手段214は、同じ種類のエラー履歴管理レコード280のレコード数をカウントする。そして、エラー評価手段214は、レコード数と異種類許容回数とを比較する。
【0120】
エラー回数が許容回数未満の場合(ステップS6−8において「NO」の場合)、開発者育成サーバ20の制御部21は、コンパイルエラー評価処理を終了する。
一方、同じ種類のエラー履歴がある場合(ステップS6−6において「YES」の場合)、開発者育成サーバ20の制御部21は、性格に基いて同種類許容回数の特定処理を実行する(ステップS6−9)。具体的には、制御部21のエラー評価手段214は、対象者管理レコード230に記録された性格識別子(積極性評価値)に対応する同種類許容回数を、基準情報記憶部24から取得する。
【0121】
次に、開発者育成サーバ20の制御部21は、エラー回数が許容回数以上かどうかについての判定処理を実行する(ステップS6−10)。具体的には、制御部21のエラー評価手段214は、レコード数と同種類許容回数とを比較する。
【0122】
エラー回数が許容回数未満の場合(ステップS6−10において「NO」の場合)、開発者育成サーバ20の制御部21は、コンパイルエラー評価処理を終了する。
一方、エラー回数が許容回数以上の場合(ステップS6−8又はS6−10において「YES」の場合)、開発者育成サーバ20の制御部21は、支援パターンの検索処理を実行する(ステップS6−11)。具体的には、制御部21のエラー評価手段214は、支援情報記憶部26において、エラー識別子に対応する支援内容を検索する。
【0123】
次に、開発者育成サーバ20の制御部21は、該当パターンがあるかどうかについての判定処理を実行する(ステップS6−12)。具体的には、制御部21のエラー評価手段214は、今回のエラー識別子に対応する支援情報管理レコード260を抽出できた場合には、該当パターンがあることになる。
【0124】
該当パターンが登録されている場合(ステップS6−12において「YES」の場合)、開発者育成サーバ20の制御部21は、支援情報の出力処理を実行する(ステップS6−13)。具体的には、制御部21のエラー評価手段214は、支援情報記憶部26から取得した支援情報を、育成対象者のクライアント端末10に対して出力する。
【0125】
該当パターンが登録されていない場合(ステップS6−12において「NO」の場合)、開発者育成サーバ20の制御部21は、指導者に対して修正履歴の送信処理を実行する(ステップS6−14)。具体的には、制御部21のエラー評価手段214は、エラーが発生したソースコード及びオブジェクトコードを作成履歴記憶部27から取得する。そして、エラー評価手段214は、指導者のクライアント端末10に対して、発生したエラー
識別子、作成物(ソースコード及びオブジェクトコード)を送信する。この場合、指導者は、エラー内容や作成物を確認して、育成対象者に対して指導を行なう。
【0126】
(テスト評価処理)
次に、テスト評価処理を、図10に従って説明する。このテスト評価処理においては、対象者情報記憶部23に登録された各育成対象者を特定し、以下の処理を育成対象者毎に繰り返す。
【0127】
開発者育成サーバ20の制御部21は、テスト開始からの経過時間の取得処理を実行する(ステップS7−1)。具体的には、制御部21のテスト評価手段217は、作成履歴記憶部27において、作成履歴管理レコード270の中でテスト開始日が記録されるとともに、評価終了日が記録されていないレコードを取得する。そして、進捗評価手段212は、テスト開始日からの経過時間を算出する。
【0128】
次に、開発者育成サーバ20の制御部21は、テスト進捗確認時期が到来したかどうかについての判定処理を実行する(ステップS7−2)。具体的には、制御部21のテスト評価手段217は、課題情報記憶部22から、この課題についてのテスト進捗確認時期を取得する。そして、進捗評価手段212は、経過時間とテスト進捗確認時期とを比較する。
【0129】
経過時間がテスト進捗確認時期に達していない場合(ステップS7−2において「NO」の場合)には、開発者育成サーバ20の制御部21は、この育成対象者についてのテスト評価処理を終了する。
【0130】
一方、経過時間がテスト進捗確認時期に達している場合(ステップS7−2において「YES」の場合)には、開発者育成サーバ20の制御部21は、テストケース数の算出処理を実行する(ステップS7−3)。具体的には、制御部21のテスト評価手段217は、作成履歴記憶部27の成果登録レコード271に記録されたテストデータを取得する。そして、テスト評価手段217は、テストデータに対応したテストケース数をカウントする。
【0131】
次に、開発者育成サーバ20の制御部21は、テストケース数許容範囲内かどうかについての判定処理を実行する(ステップS7−4)。具体的には、制御部21のテスト評価手段217は、課題情報記憶部22から、この課題についてのテストケース数許容範囲を取得する。そして、進捗評価手段212は、テストケースの数とテストケース数許容範囲とを比較する。
【0132】
テストケース数がテストケース数許容範囲外となっている場合(ステップS7−4において「NO」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS7−5)。具体的には、制御部21のテスト評価手段217は、育成対象者のクライアント端末10に対して、テストケース数が許容範囲外になっていることを示すメッセージを含めたアラームを出力する。
【0133】
一方、テストケース数が許容範囲内の場合(ステップS7−4において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理(ステップS7−5)をスキップする。
【0134】
次に、開発者育成サーバ20の制御部21は、テストケースのカバレージの算出処理を実行する(ステップS7−6)。具体的には、制御部21のテスト評価手段217は、作成履歴記憶部27の成果登録レコード271に記録されたテストデータを取得する。そし
て、テスト評価手段217は、公知の方法によりカバレージを算出する。
【0135】
次に、開発者育成サーバ20の制御部21は、算出したカバレージがカバレージ基準値以下かどうかについての判定処理を実行する(ステップS7−7)。具体的には、制御部21のテスト評価手段217は、課題情報記憶部22から、この課題についてのカバレージ基準値を取得する。そして、テスト評価手段217は、算出したカバレージとカバレージ基準値とを比較する。
【0136】
算出したカバレージがカバレージ基準値以下の場合(ステップS7−7において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS7−8)。具体的には、制御部21のテスト評価手段217は、育成対象者のクライアント端末10に対して、多様なテストケースが想定されていないことを示すメッセージを含めたアラームを出力する。
【0137】
一方、カバレージがカバレージ基準値を超えている場合(ステップS7−7において「YES」の場合)、開発者育成サーバ20の制御部21は、評価終了日の記録処理を実行する(ステップS7−9)。具体的には、制御部21のテスト評価手段217は、作成履歴記憶部27において、この育成対象者、課題についての作成履歴管理レコード270に評価終了日を記録する。
【0138】
以上の処理を育成対象者毎に繰り返す。
本実施形態によれば、以下のような効果を得ることができる。
(1)本実施形態においては、経過時間が作成進捗確認時期に達している場合(ステップS1−2において「YES」の場合)には、開発者育成サーバ20の制御部21は、進捗状況の取得処理を実行する(ステップS1−3)。次に、開発者育成サーバ20の制御部21は、育成対象者の性格情報の取得処理(ステップS1−4)、性格に応じた基準値の特定処理(ステップS1−5)を実行する。そして、進捗状況が基準値に達していない場合(ステップS1−6において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS1−7)。育成対象者の性格により、プログラムの作成方法は異なる。例えば、作成速度が遅くても、着実にプログラムを作成する人もいれば、作成速度が速くてもミスが多い人もいる。従って、育成対象者の性格に応じて、進捗状況を評価することにより、的確な指導を行なうことができる。
【0139】
(2)本実施形態においては、開発者育成サーバ20の制御部21は、作法評価手段215においてプログラミング作法の評価処理を実行する(ステップS2−3a)。ここでは、開発者育成サーバ20の制御部21は、ソースコードから変数名、メソッド名の抽出処理(ステップS3−1)、抽出した名称について曖昧検索処理(ステップS3−3)を実行する。曖昧検索において共通見出語を抽出できないため、名称利用を許容できないと判定した場合(ステップS3−4において「NO」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS3−5)。内容を特定できない名称を用いると、後からプログラム内容を理解し難くなる。理解しやすい名称を辞書に登録しておくことにより、適切な名称を用いてコーディングを行なうことができる。これにより、後から内容を理解しやすくなるとともに、コーディング間違いを抑制できるプログラムの作成を指導することができる。
【0140】
更に、開発者育成サーバ20の制御部21は、名称の関連語の取得処理を実行する(ステップS3−6)。問題がある関連語が存在する場合(ステップS3−7において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS3−8)。これにより、競合する異義語を混在させたり、対になるべき関連語を記載し忘れたりしている場合に注意喚起することができる。
【0141】
更に、開発者育成サーバ20の制御部21は、各名称の相互比較処理を実行する(ステップS3−9)。紛らわしい名称を検出した場合(ステップS3−10において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS3−11)。紛らわしい名称の記載を抑制することにより、引用すべき変数やメソッドの間違いを防止できるプログラムの作成を指導することができる。
【0142】
(3)本実施形態においては、開発者育成サーバ20の制御部21は、作法評価手段215において機能ブロック評価処理を実行する(ステップS2−3b)。ここでは、開発者育成サーバ20の制御部21は、字下げスタイルの構文の抽出処理を実行する(ステップS4−1)。クライアント端末10において自動生成を利用していないと判定した場合(ステップS4−2において「NO」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS4−3)。これにより、自動字下げの利用を遵守させることができる。そして、制御フローやコードのブロックを識別しやすいプログラムの作成を指導することができる。
【0143】
更に、開発者育成サーバ20の制御部21は、命令文の行跨ぎの検索処理を実行する(ステップS4−4)。命令文の行跨ぎがある場合(ステップS4−5において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS4−6)。これにより、行跨ぎを抑制して、作成者以外の人間においても読みやすく理解しやすいプログラムの作成を指導することができる。
【0144】
更に、開発者育成サーバ20の制御部21は、性格に対応した許容範囲の特定処理を実行する(ステップS4−7)。開発者育成サーバ20の制御部21は、メソッド数の算出処理を実行する(ステップS4−8)。メソッド数基準値を超えており、許容範囲外の場合(ステップS4−9において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS4−10)。メソッドが少ない場合には、一つのメソッドに機能を盛り込みすぎている可能性がある。又、育成対象者の性格によっては、メソッドが少ない場合でも、的確なコーディングが行なわれていることもある。これにより、育成対象者の性格に応じて、的確な指導を行なうことができる。
【0145】
更に、開発者育成サーバ20の制御部21は、各メソッドに含まれる特定の命令の抽出処理を実行する(ステップS5−1)。特定命令文数が命令文数基準値を超えており、許容範囲外の場合(ステップS5−2において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS5−3)。特定の命令が多すぎる場合、命令が重複している可能性がある。これにより、育成対象者の性格に応じて、的確な指導を行なうことができる。
【0146】
更に、開発者育成サーバ20の制御部21は、各メソッドの行数の算出処理を実行する(ステップS5−4)。メソッド行数が許容範囲を超えており、許容範囲外の場合(ステップS5−5において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS5−6)。一つのメソッドが長すぎる場合には、一つのメソッドに機能を盛り込みすぎている可能性がある。又、育成対象者の性格によっては、メソッドが長い場合でも、的確なコーディングが行なわれていることもある。これにより、育成対象者の性格に応じて、的確な指導を行なうことができる。
【0147】
(4)本実施形態においては、開発者育成サーバ20の制御部21は、育成対象者の性格情報の取得処理を実行する(ステップS6−3)。積極性評価値が積極性基準値より低い場合(ステップS6−4において「YES」の場合)、開発者育成サーバ20の制御部21は、再コンパイルの目的入力画面の表示処理を実行する(ステップS6−5)。育成
対象者によっては、積極的に多様なコーディングを試していることがある。一方で、育成対象者によっては、再コンパイルの目的を意識せずに試行錯誤していることもある。この場合、再コンパイルの目的(例えば、ミスの修正、新たに作成したメソッドの試験等)を入力させることにより、コーディングの狙いを意識させることができる。
【0148】
(5)本実施形態においては、開発者育成サーバ20の制御部21は、同じ種類のエラー履歴があるかどうかについての判定処理を実行する(ステップS6−6)。同じ種類のエラー履歴がない場合(ステップS6−6において「NO」の場合)、開発者育成サーバ20の制御部21は、性格に基いて異種類許容回数の特定処理を実行する(ステップS6−7)。一方、同じ種類のエラー履歴がある場合(ステップS6−6において「YES」の場合)、開発者育成サーバ20の制御部21は、性格に基いて同種類許容回数の特定処理を実行する(ステップS6−9)。エラー回数が許容回数以上の場合(ステップS6−8又はS6−10において「YES」の場合)、開発者育成サーバ20の制御部21は、支援パターンの検索処理を実行する(ステップS6−11)。該当パターンが登録されている場合(ステップS6−12において「YES」の場合)、開発者育成サーバ20の制御部21は、支援情報の出力処理を実行する(ステップS6−13)。同じ種類のエラーが発生している場合には、エラーの原因を把握できていない可能性がある。一方、異なる種類のエラーが発生している場合には、多様な試みを行なっている可能性がある。従って、同じ課題について、エラーの発生状況に応じて、的確な指導を行なうことができる。
【0149】
更に、該当パターンが登録されていない場合(ステップS6−12において「NO」の場合)、開発者育成サーバ20の制御部21は、指導者に対して修正履歴の送信処理を実行する(ステップS6−14)。これにより、開発者育成サーバ20において対応できない場合に、育成対象者に対して、指導者による支援を行なうことができる。
【0150】
(6)本実施形態においては、経過時間がテスト進捗確認時期に達している場合(ステップS7−2において「YES」の場合)には、開発者育成サーバ20の制御部21は、テストケース数の算出処理を実行する(ステップS7−3)。テストケース数がテストケース数許容範囲外の場合(ステップS7−4において「NO」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS7−5)。これにより、育成対象者の性格に応じた進捗を考慮して、より的確な指導を行なうことができる。
【0151】
更に、開発者育成サーバ20の制御部21は、テストケースのカバレージの算出処理を実行する(ステップS7−6)。テストケースのカバレージがカバレージ基準値以下のものが含まれる場合(ステップS7−7において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS7−8)。育成対象者の性格によっては、少ないテストケースで広い範囲をカバーできている場合もあれば、多くのテストケースを準備しなければならない場合もある。従って、育成対象者の性格を考慮して、より的確な指導を行なうことができる。
【0152】
なお、上記各実施形態は以下のように変更してもよい。
・ 上記実施形態では、複数の基準値を用いて、複数の評価処理を実行した。基準値の種類や評価処理の種類は、これらに限定されるものではなく、一部の基準値や評価処理を用いたり、他の評価処理を組み合わせたりすることも可能である。
【0153】
・ 上記実施形態では、作成履歴記憶部27には、育成対象者が作成したプログラム(ソースコードやオブジェクトコード)を管理するための作成履歴管理レコード270が記憶される。作成物を管理する記憶部を設けるハードウェアは、これに限定されるものではない。例えば、統合開発環境サーバ30において、育成対象者識別子及び課題識別子に関連付けて記憶させておくようにしてもよい。この場合には、開発者育成サーバ20の制御
部21が、評価時に統合開発環境サーバ30から作成物を取得する。
【0154】
・ 上記実施形態では、対象者情報記憶部23には、育成対象者を管理するための対象者管理レコード230が記憶されている。この対象者管理レコード230は、育成対象者識別子、性格識別子、進捗状況に関するデータを含んで構成される。この性格識別子を、育成対象者が作成した作成物に対する評価に基づいて記録するようにしてもよい。例えば、開発者育成サーバ20の制御部21が、各評価におけるアラーム種別に対応させた性格識別子を記録した性格決定テーブルを準備しておく。そして、アラームの出力時に、制御部21がアラーム種別に応じて性格識別子を変更する。
【0155】
又、コンパイルエラーのエラー識別子に対応させた性格識別子を記録した性格決定テーブルを準備しておく。そして、制御部21が、コンパイルエラーの発生時に性格決定テーブルを用いて、エラー識別子に対応した性格識別子を特定して、対象者情報記憶部23に登録する。これにより、課題に対する対応状況に基づいて、性格を特定していくことができる。
【0156】
・ 上記実施形態では、支援情報記憶部26には、エラーが発生した場合に育成対象者に対して提供される支援情報を管理するための支援情報管理レコード260が記憶されている。この支援情報は、性格識別子に対応させて登録しておくようにしてもよい。これにより、育成対象者の性格に応じた支援情報を提供することができる。
【0157】
・ 上記実施形態では、基準情報記憶部24には、性格に対応した基準値を管理するための基準値管理レコード240が記憶されている。この基準情報記憶部24に記録されている同種類許容回数は、エラー識別子毎に記録するようにしてもよい。
【0158】
・ 上記実施形態では、課題情報記憶部22には、育成対象者に提供される課題を管理するための課題管理レコード220が記憶されている。この課題管理レコード220は、課題識別子、内容に関するデータを含んで構成される。ここで、育成対象者に提供する課題を、育成対象者の性格によって特定するようにしてもよい。この場合には、課題管理レコード220に性格識別子を登録しておき、開発者育成サーバ20の制御部21は、育成対象者の性格識別子に関連付けられた課題を提供する。
【0159】
また、育成対象者の苦手な領域について課題を提供するようにしてもよい。この場合には、課題管理レコード220において、エラー履歴により特定できるエラー内容に課題を関連付けて記録しておく。そして、開発者育成サーバ20の制御部21は、エラー履歴記憶部28に記録されたエラー内容に基づいて、育成対象者に提供する課題を特定する。
【0160】
・ 上記実施形態では、課題管理レコード220は、カバレージ基準値に関するデータを含んで構成される。このカバレージ基準値は、メソッド数、パラメータ数に応じて変更してもよい。この場合には、課題管理レコード220に、メソッド数やパラメータ数等のように、プログラムに含まれるコードに応じてカバレージ基準値を算出する関数(基準値算出関数)を記録しておく。そして、開発者育成サーバ20の制御部21は、育成対象者が作成したソースコードを解析して、メソッド数やパラメータ数を算出する。次に、制御部21は、基準値算出関数を用いてカバレージ基準値を算出する。そして、このカバレージ基準値を用いて、テストケースのカバレージについての判定処理を実行する(ステップS7−7)。
【符号の説明】
【0161】
10…クライアント端末、20…開発者育成支援サーバ、21…制御部、211…データ取得手段、212…進捗評価手段、213…評価管理手段、214…エラー評価手段、
215…作法評価手段、216…機能評価手段、217…テスト評価手段、22…課題情報記憶部、23…対象者情報記憶部、24…基準情報記憶部、25…評価用辞書記憶部、26…支援情報記憶部、27…作成履歴記憶部、28…エラー履歴記憶部、30…統合開発環境サーバ。
【技術分野】
【0001】
本発明は、プログラム開発者の育成を支援するための開発者育成支援システム、開発者育成支援方法及び開発者育成支援プログラムに関する。
【背景技術】
【0002】
システム開発を行なう場合、まず、システムやソフトウェアの開発において、要求されている機能や、実装されるべき機能を明確にしていく要件定義を行なう。そして、機能設計、プログラム設計を経てコーディングを行なう。このコーディングにおいては、プログラミング言語を用いてソースコードを記述する。そして、プログラミング言語で書かれたプログラムを、コンピュータが直接実行可能な機械語のプログラム(オブジェクトコード)に変換するコンパイルを行なう。このように生成されたプログラムについては、多様なテストケースを想定したテストデータを利用して動作確認が行なわれる。
【0003】
また、コンパイラ、テキストエディタ、デバッガ等を統合して対話型操作環境から利用できるようにした統合開発環境を利用する場合もある(例えば、特許文献1を参照。)。この統合開発環境を使うことによって、巨大かつ複雑なソフトウェアでも、効率的に開発することが可能になる。
【0004】
このようなシステム開発においては、開発者を育成する教育が必要である。このため、高品質な開発物を製作するための教育システムも検討されている(例えば、特許文献2を参照。)。この文献に記載されたシステムは、開発者情報と開発者管理ポリシとを格納した開発者情報データベース、教育用コンテンツを格納した教育用コンテンツデータベースを備える。開発者端末から教育用コンテンツ要求を受信した場合、開発者情報データベースの開発者情報、開発者管理ポリシ、教育用コンテンツに対応したコンテンツを開発者端末に送信する。
【0005】
また、プログラムの解析時又は実行時に発生したエラーについての情報を利用して、プログラム作成の経験を生かすためのシステムも検討されている(例えば、特許文献3を参照。)。この文献に記載されたシステムにおいては、プログラムの解析時及び実行時に発生したエラーの情報を記憶するエラー情報エリアを設ける。そして、プログラムの解析時及び実行時にエラーが発生したときに、蓄積されたエラー情報エリアを検索して表示する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2008−234466号公報(第1頁、図2)
【特許文献2】特開2009−151532号公報(第1頁、図1)
【特許文献3】特開平6−266547号公報(第1頁、図7)
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献2に記載されているように、システム開発者を育成する場合、育成対象者に課題を提供し、この課題に対する試行錯誤を通じて、スキル向上を図ることがある。ここで、作成したプログラムにエラーが発生した場合、特許文献3に記載されているようにこのエラーから学習することも多い。一方で、育成対象者だけでは、エラーの原因を特定できず、進捗が遅れてしまうこともある。又、プログラム作成への取り組みは、育成対象者の
性格によって異なってくる。従って、育成対象者の状況や性格に応じて的確な指導を行なう必要がある。
【0008】
本発明は、上記問題点を解決するためになされたものであり、その目的は、システム開発者の育成を効率的に支援するための開発者育成支援システム、開発者育成支援方法及び開発者育成支援プログラムを提供することにある。
【課題を解決するための手段】
【0009】
上記問題点を解決するために、請求項1に記載の発明は、育成対象者の対象者識別子を記憶した対象者情報記憶手段と、エラー種類に対応した支援情報を記憶した支援情報記憶手段と、支援情報を出力するための基準回数を記憶した基準情報記憶手段と、育成対象者の作成したプログラムにおいて、発生したエラー履歴を対象者識別子毎に記録するエラー情報記憶手段と、育成対象者端末に接続されるとともに、育成対象者の作成したプログラムにおいて発生したエラー情報を取得する制御手段とを備え、開発者の育成を支援するためのシステムであって、前記制御手段が、育成対象者の作成したプログラムにおいてエラーを検知した場合、対象者識別子に関連付けて、発生したエラーを前記エラー情報記憶手段に記録するとともに、このエラー種類を特定する手段と、同じ種類のエラーの発生回数を算出する手段と、同じ種類のエラーの発生回数が前記基準情報記憶手段に記憶された基準回数を超えている場合には、このエラー種類に対応した支援情報を支援情報記憶手段から抽出して出力する手段とを備えたことを要旨とする。
【0010】
請求項2に記載の発明は、請求項1に記載の開発者育成支援システムにおいて、前記制御手段は、更に指導者端末に接続されており、前記制御手段が、支援情報を抽出できない場合には、エラー情報を指導者端末に送信する手段を更に備えたことを要旨とする。
【0011】
請求項3に記載の発明は、請求項1又は2に記載の開発者育成支援システムにおいて、前記対象者情報記憶手段には、対象者識別子に関連付けられて、育成対象者の性格を分類した性格識別子が記憶されており前記基準情報記憶手段には、性格識別子に関連付けられて基準回数が記憶されており、前記制御手段が、育成対象者の性格識別子を取得して、この性格識別子に関連付けられた支援情報を出力することを要旨とする。
【0012】
請求項4に記載の発明は、請求項3に記載の開発者育成支援システムにおいて、前記基準情報記憶手段には、性格識別子に関連付けられて、コーディング量についての進捗基準値が記録されており、前記制御手段が、育成対象者の作成したプログラムのコーディング量を取得し、コーディング量が、前記育成対象者の性格識別子に対応する進捗基準量に達していない場合には、アラームを出力する手段を更に備えたことを要旨とする。
【0013】
請求項5に記載の発明は、請求項3又は4に記載の開発者育成支援システムにおいて、前記基準情報記憶手段には、性格識別子に関連付けられて、育成対象者の作成したプログラムに含まれるメソッド数についてのメソッド数許容範囲が記録されており、前記制御手段が、育成対象者の作成したプログラムに含まれるメソッド数を算出し、前記メソッド数が、前記育成対象者の性格識別子に対応するメソッド数許容範囲を超えている場合には、アラームを出力する手段を更に備えたことを要旨とする。
【0014】
請求項6に記載の発明は、請求項3〜5のいずれか一つに記載の開発者育成支援システムにおいて、前記基準情報記憶手段には、性格識別子に関連付けられて、育成対象者の作成したプログラムに含まれる特定命令の数についての命令数許容範囲が記録されており、前記制御手段が、一つのメソッドの中に含まれる特定命令の数を算出し、前記命令数が、前記育成対象者の性格識別子に対応する命令数許容範囲を超えている場合には、アラームを出力する手段を更に備えたことを要旨とする。
【0015】
請求項7に記載の発明は、育成対象者の対象者識別子を記憶した対象者情報記憶手段と、エラー種類に対応した支援情報を記憶した支援情報記憶手段と、支援情報を出力するための基準回数を記憶した基準情報記憶手段と、育成対象者の作成したプログラムにおいて、発生したエラー履歴を対象者識別子毎に記録するエラー情報記憶手段と、育成対象者端末に接続されるとともに、育成対象者の作成したプログラムにおいて発生したエラー情報を取得する制御手段とを備えたシステムを用いて、開発者の育成を支援するための方法であって、前記制御手段が、育成対象者の作成したプログラムにおいてエラーを検知した場合、対象者識別子に関連付けて、発生したエラーを前記エラー情報記憶手段に記録するとともに、このエラー種類を特定する段階と、同じ種類のエラーの発生回数を算出する段階と、同じ種類のエラーの発生回数が前記基準情報記憶手段に記憶された基準回数を超えている場合には、このエラー種類に対応した支援情報を支援情報記憶手段から抽出して出力する段階とを実行することを要旨とする。
【0016】
請求項8に記載の発明は、育成対象者の対象者識別子を記憶した対象者情報記憶手段と、エラー種類に対応した支援情報を記憶した支援情報記憶手段と、支援情報を出力するための基準回数を記憶した基準情報記憶手段と、育成対象者の作成したプログラムにおいて、発生したエラー履歴を対象者識別子毎に記録するエラー情報記憶手段と、育成対象者端末に接続されるとともに、育成対象者の作成したプログラムにおいて発生したエラー情報を取得する制御手段とを備えたシステムを用いて、開発者の育成を支援するためのプログラムであって、前記制御手段を、育成対象者の作成したプログラムにおいてエラーを検知した場合、対象者識別子に関連付けて、発生したエラーを前記エラー情報記憶手段に記録するとともに、このエラー種類を特定する手段、同じ種類のエラーの発生回数を算出する手段、同じ種類のエラーの発生回数が前記基準情報記憶手段に記憶された基準回数を超えている場合には、このエラー種類に対応した支援情報を支援情報記憶手段から抽出して出力する手段として機能させることを要旨とする。
【0017】
(作用)
請求項1、7、8に記載の発明によれば、制御手段が、育成対象者の作成したプログラムにおいてエラーを検知した場合、対象者識別子に関連付けて、発生したエラーを前記エラー情報記憶手段に記録するとともに、このエラー種類を特定する。次に、同じ種類のエラーの発生回数を算出する。そして、同じ種類のエラーの発生回数が前記基準情報記憶手段に記憶された基準回数を超えている場合には、このエラー種類に対応した支援情報を支援情報記憶手段から抽出して出力する。育成対象者の検討状況に応じて、エラーの発生状況が異なってくる。この発生状況に応じて、検討状況に対応した支援を行なうことができる。
【0018】
請求項2に記載の発明によれば、制御手段が、支援情報を抽出できない場合には、エラー情報を指導者端末に送信する。これにより、支援情報記憶手段に記録された支援情報を提供できない場合には、指導者に対して、育成対象者への支援を促すことができる。
【0019】
請求項3に記載の発明によれば、制御手段が、育成対象者の性格識別子を取得して、この性格識別子に関連付けられた支援情報を出力する。これにより、育成対象者の性格に応じた支援を行なうことができる。
【0020】
請求項4に記載の発明によれば、制御手段が、育成対象者の作成したプログラムのコーディング量を取得する。そして、コーディング量が、育成対象者の性格識別子に対応する進捗基準量に達していない場合には、アラームを出力する。これにより、育成対象者の性格に応じた進捗状況を考慮して、指導を行なうことができる。
【0021】
請求項5に記載の発明によれば、制御手段が、育成対象者の作成したプログラムに含まれるメソッド数を算出する。そして、メソッド数が、育成対象者の性格識別子に対応するメソッド数許容範囲を超えている場合には、アラームを出力する。これにより、育成対象者の性格に応じたメソッド数の許容範囲を考慮して、指導を行なうことができる。
【0022】
請求項6に記載の発明によれば、制御手段が、一つのメソッドの中に含まれる特定命令の数を算出する。そして、命令数が、育成対象者の性格識別子に対応する命令数許容範囲を超えている場合には、アラームを出力する。これにより、育成対象者の性格に応じた命令数の許容範囲を考慮して、指導を行なうことができる。
【発明の効果】
【0023】
本発明によれば、プログラム開発者の育成を効率的に支援するための開発者育成支援システム、開発者育成支援方法及び開発者育成支援プログラムを提供することができる。
【図面の簡単な説明】
【0024】
【図1】本発明の実施形態のシステム概略図。
【図2】本発明の各データ記憶部に記録されたデータの説明図であって、(a)は課題情報記憶部、(b)は対象者情報記憶部、(c)は基準情報記憶部、(d)は評価用辞書記憶部に記録されたデータの説明図。
【図3】本発明の各データ記憶部に記録されたデータの説明図であって、(a)は支援情報記憶部、(b)は作成履歴記憶部、(c)はエラー履歴記憶部に記録されたデータの説明図。
【図4】本発明における開発者育成支援の手順の説明図。
【図5】本発明における開発者育成支援の手順の説明図。
【図6】本発明における開発者育成支援の手順の説明図。
【図7】本発明における開発者育成支援の手順の説明図。
【図8】本発明における開発者育成支援の手順の説明図。
【図9】本発明における開発者育成支援の手順の説明図。
【図10】本発明における開発者育成支援の手順の説明図。
【発明を実施するための形態】
【0025】
以下、本発明を具体化した一実施形態を、図1〜図10を用いて説明する。本実施形態では、システム開発においてプログラムを作成する開発者の育成を支援する場合を想定する。本実施形態では、図1に示すように、クライアント端末10、開発者育成サーバ20、統合開発環境サーバ30を用いる。本実施形態では、育成対象者がクライアント端末10においてプログラムを作成するとともに、このプログラムを統合開発環境サーバ30においてコンパイルする。そして、開発者育成サーバ20が、育成対象者に対する育成を支援する。
【0026】
クライアント端末10は、育成対象者や指導者が使用するコンピュータ端末(育成対象者端末、指導者端末)である。育成対象者は、このクライアント端末10を用いて、指導者から与えられた課題についてのプログラムを作成する。また、指導者は、クライアント端末10を用いて、育成対象者の進捗状況を確認したり、育成対象者に対してアドバイスを行なったりする。クライアント端末10は、ネットワークを介してデータを送信する機能や、受信したデータを表示する機能等を有する。このため、クライアント端末10は、図示しない制御部、キーボード、マウス等の入力手段、ディスプレイ等の出力手段、通信手段等を備えている。
【0027】
統合開発環境サーバ30は、公知のコンパイラ、テキストエディタ、デバッガの各機能を備えている。
開発者育成サーバ20は、制御部21、課題情報記憶部22、対象者情報記憶部23、基準情報記憶部24、評価用辞書記憶部25、支援情報記憶部26、作成履歴記憶部27、エラー履歴記憶部28を備えている。
【0028】
この制御部21は、図示しないCPU等の制御手段、RAM及びROM等のメモリを有し、開発者育成支援を実行する。具体的には、後述する各処理(データ取得段階、進捗評価段階、評価管理段階、エラー評価段階、作法評価段階、機能評価段階、テスト評価段階等の各処理)を実行する。このための開発者育成支援プログラムを実行することにより、開発者育成サーバ20の制御部21は、図1に示すように、データ取得手段211、進捗評価手段212、評価管理手段213、エラー評価手段214、作法評価手段215、機能評価手段216、テスト評価手段217として機能する。
【0029】
データ取得手段211は、クライアント端末10において作成されたソースコードや、統合開発環境サーバ30においてコンパイルされたオブジェクトコード、テストに用いるテストデータの取得処理を実行する。ソースコードについては、クライアント端末10において、コーディングされたところまでのコードを、統合開発環境サーバ30から定期的に取得して、作成履歴記憶部27に記録する。オブジェクトコードについては、統合開発環境サーバ30においてコンパイルされたときに記録する。テストデータは複数の項目値から構成されている。そして、クライアント端末10において作成されたところまでのテストデータを、統合開発環境サーバ30から定期的に取得して、作成履歴記憶部27に記録する。
【0030】
進捗評価手段212は、育成対象者における課題の進捗状況を評価する処理を実行する。
評価管理手段213は、育成対象者が作成したプログラム(ソースコード)についての評価を管理する処理を実行する。
【0031】
エラー評価手段214は、育成対象者が作成したソースコードのコンパイル時に発生したエラーを評価する処理を実行する。
作法評価手段215は、育成対象者が作成したソースコードにおけるプログラミング作法(ソースコード作成時の規則やガイドライン)の遵守状況についての評価処理を実行する。
【0032】
機能評価手段216は、育成対象者が作成したソースコードに含まれる機能ブロックについての評価処理を実行する。
テスト評価手段217は、育成対象者が作成したプログラムにおけるテスト状況を評価する処理を実行する。
【0033】
課題情報記憶部22には、図2(a)に示すように、育成対象者に提供される課題を管理するための課題管理レコード220が記憶されている。この課題管理レコード220は、育成対象者に提供される課題が登録された場合に記録される。課題管理レコード220は、課題識別子、内容、作成進捗確認時期、テスト進捗確認時期、テストケース数許容範囲、カバレージ基準値に関するデータを含んで構成される。
【0034】
課題識別子データ領域には、各課題を特定するための識別子に関するデータが記録されている。
内容データ領域には、この課題の内容に関するデータが記録されている。
【0035】
作成進捗確認時期データ領域には、この課題について、プログラム作成の進捗状況を確認するタイミングに関するデータが記録されている。本実施形態では、プログラム作成の
進捗状況に応じた所要時間が記録されている。
【0036】
テスト進捗確認時期データ領域には、この課題について、プログラムテストの進捗状況を確認するタイミングに関するデータが記録されている。本実施形態では、プログラムテストの進捗状況に応じた所要時間が記録されている。
【0037】
テストケース数許容範囲データ領域には、この課題についてのプログラムをテストするために必要なテストケースの許容範囲(最低数〜上限数)に関するデータが記録されている。
【0038】
カバレージ基準値データ領域には、この課題についてのプログラムをテストするために必要なテストケースを評価するための指標に関するデータが記録されている。本実施形態では、指標として、テストケースによりテストできる網羅率(カバレージ)の目標値が記録されている。
【0039】
対象者情報記憶部23は対象者情報記憶手段として機能するとともに、図2(b)に示すように、育成対象者を管理するための対象者管理レコード230が記憶されている。この対象者管理レコード230は、育成対象者が登録された場合に記録される。対象者管理レコード230は、育成対象者識別子、性格識別子、進捗状況に関するデータを含んで構成される。
【0040】
育成対象者識別子データ領域には、各育成対象者を特定するための識別子に関するデータが記録されている。
性格識別子データ領域には、この育成対象者の性格を特定するための識別子に関するデータが記録されている。本実施形態では、この性格識別子として、着実性評価値及び積極性評価値が記録されている。着実性評価値においては、作成速度が遅い場合であっても、エラーの少ないプログラムを作成する性格を評価する。積極性評価値においては、エラーが多い場合であっても、色々な試行錯誤を行ないながらプログラムを作成する性格を評価する。
進捗状況データ領域には、この育成対象者に与えられている課題を特定するための識別子(課題識別子)に関するデータが記録されている。
【0041】
基準情報記憶部24は基準情報記憶手段として機能するとともに、図2(c)に示すように、性格に対応した基準値を管理するための基準値管理レコード240が記憶されている。この基準値管理レコード240は、登録された場合に記録される。基準値管理レコード240は、性格識別子、基準値に関するデータを含んで構成される。
【0042】
性格識別子データ領域には、育成対象者の性格を特定するための識別子(着実性評価値や積極性評価値)に関するデータが記録されている。
基準値データ領域には、この性格の育成対象者の評価に用いる基準値に関するデータが記録されている。本実施形態では、基準値として、進捗基準値、メソッド数基準値、命令文数基準値、メソッド行数基準値、異種類許容回数、同種類許容回数が記録されている。
【0043】
進捗基準値は、プログラムにおけるコーディング量についての進捗基準値を規定している。
メソッド数基準値は、プログラムに含まれるメソッド数についての上限値を規定している。
【0044】
命令文数基準値は、プログラムに含まれる特定命令の数についての上限値を規定している。
メソッド行数基準値は、プログラムに含まれるメソッドの行数の上限値を規定している。
異種類許容回数、同種類許容回数は、それぞれ、異種類又は同種類のエラーについて、支援情報の出力要否を判定するための基準回数を規定している。
【0045】
評価用辞書記憶部25には、図2(d)に示すように、育成対象者が作成したソースコードを評価するための名称管理レコード251や特定命令管理レコード252が記憶されている。この名称管理レコード251や特定命令管理レコード252は、メソッド名や変数名として用いることが可能な名称が登録された場合に記録される。名称管理レコード251は、見出語、関連語に関するデータを含んで構成される。
【0046】
見出語データ領域には、メソッド名や変数名として用いることが可能な名称に関するデータが記録されている。
関連語データ領域には、この見出語に関連する他の名称に関するデータが記録されている。本実施形態では、組み合わせて使用できない使用不可単語(例えば、競合する類義語や、類義語と対になる対語)を登録しておく。更に、見出語と対にして記載すべき必須単語を登録しておく。
特定命令管理レコード252は、評価対象の命令を特定するためのコマンドに関するデータを含んで構成される。
【0047】
支援情報記憶部26は支援情報記憶手段として機能するとともに、図3(a)に示すように、エラーが発生した場合に育成対象者に対して提供される支援情報を管理するための支援情報管理レコード260が記憶されている。この支援情報管理レコード260は、支援情報が登録された場合に記録される。支援情報管理レコード260は、エラー識別子、支援内容に関するデータを含んで構成される。
【0048】
エラー識別子データ領域には、ソースコードのコンパイル時に発生したエラーを特定するための識別子に関するデータが記録されている。
支援内容データ領域には、このエラーを解消するために、育成対象者に提供される助言に関するデータが記録されている。
【0049】
作成履歴記憶部27には、図3(b)に示すように、育成対象者が作成したプログラム(ソースコードやオブジェクトコード)を管理するための作成履歴管理レコード270が記憶される。この作成履歴管理レコード270は、ソースコードやオブジェクトコードが生成された場合に記録される。作成履歴管理レコード270は、育成対象者識別子、課題識別子、作成開始日、作成終了日、テスト開始日、評価終了日に関するデータを含んで構成される。更に、作成履歴管理レコード270には、育成対象者識別子、課題識別子に関連付けて、成果登録レコード271が記録されている。
【0050】
育成対象者識別子データ領域には、各育成対象者を特定するための識別子に関するデータが記録される。
課題識別子データ領域には、各育成対象者が取り組んでいる課題を特定するための識別子に関するデータが記録される。
【0051】
作成開始日データ領域、作成終了日データ領域には、この育成対象者が、この課題のプログラムの作成を開始した年月日や作成を終了した年月日に関するデータが記録される。この作成開始日には、クライアント端末10に課題を提供した日付を用いる。作成終了日には、クライアント端末10からプログラム完成報告を受信した日付を用いる。
【0052】
テスト開始日データ領域、評価終了日データ領域には、この育成対象者が、この課題の
プログラムのテストを開始した年月日やテストを終了した年月日に関するデータが記録される。このテスト開始日には、クライアント端末10からテスト開始報告を受信した日付を用いる。評価終了日には、後述するテスト評価処理を完了した日付を用いる。
【0053】
成果登録レコード271は、登録日、作成物に関するデータを含んで構成される。この成果登録レコード271は、課題に対するプログラムについての進捗があった場合に記録される。
【0054】
登録日データ領域には、課題についての成果物を登録した年月日に関するデータが記録される。
作成物データ領域には、生成されたソースコードやオブジェクトコード、テストデータが記録される。
【0055】
エラー履歴記憶部28はエラー情報記憶手段として機能するとともに、図3(c)に示すように、育成対象者が作成したプログラムにおいて発生したエラーを管理するためのエラー履歴管理レコード280が記憶されている。このエラー履歴管理レコード280は、育成対象者が作成したプログラムにおいてエラーを検知した場合に記録される。エラー履歴管理レコード280は、育成対象者識別子、課題識別子、発生日、エラー内容、再コンパイル目的に関するデータを含んで構成される。
【0056】
育成対象者識別子データ領域には、各育成対象者を特定するための識別子に関するデータが記録される。
課題識別子データ領域には、エラーが発生した課題を特定するための識別子に関するデータが記録される。
【0057】
発生日データ領域には、エラーが発生した年月日に関するデータが記録されている。
エラー内容データ領域には、発生したエラーのエラー種類を特定するための識別子(エラー識別子)に関するデータが記録されている。
再コンパイル目的データ領域には、育成対象者が入力した再コンパイルの目的に関するデータが記録される。
【0058】
上記のように構成されたシステムを用いて、開発者の育成を支援するための処理手順を、図4〜図10に従って説明する。ここでは、進捗評価処理(図4)、コンパイル時処理(図5)、プログラミング作法の評価処理(図6)、機能ブロック評価処理(図7、図8)、コンパイルエラー評価処理(図9)、テスト評価処理(図10)の順番に説明する。
【0059】
(進捗評価処理)
まず、進捗評価処理を、図4に従って説明する。この進捗評価処理においては、対象者情報記憶部23に登録された各育成対象者を特定し、以下の処理を育成対象者毎に繰り返す。
【0060】
開発者育成サーバ20の制御部21は、作業開始からの経過時間の取得処理を実行する(ステップS1−1)。具体的には、制御部21の進捗評価手段212は、作成履歴記憶部27において、作成履歴管理レコード270の中で作成開始日が記録されるとともに、作成終了日が記録されていないレコードを取得する。そして、進捗評価手段212は、作成開始日からの経過時間を算出する。
【0061】
次に、開発者育成サーバ20の制御部21は、作成進捗確認時期が到来したかどうかについての判定処理を実行する(ステップS1−2)。具体的には、制御部21の進捗評価手段212は、課題情報記憶部22から、この課題についての作成進捗確認時期を取得す
る。そして、進捗評価手段212は、経過時間と作成進捗確認時期とを比較する。
【0062】
経過時間が作成進捗確認時期に達していない場合(ステップS1−2において「NO」の場合)には、開発者育成サーバ20の制御部21は、この育成対象者についての進捗評価処理を終了する。
【0063】
一方、経過時間が作成進捗確認時期に達している場合(ステップS1−2において「YES」の場合)には、開発者育成サーバ20の制御部21は、進捗状況の取得処理を実行する(ステップS1−3)。具体的には、制御部21のデータ取得手段211は、作成履歴記憶部27の成果登録レコード271に記録された直近日のソースコードを取得する。そして、このソースコードに記録されたコーディング量(行数)を取得する。
【0064】
次に、開発者育成サーバ20の制御部21は、育成対象者の性格情報の取得処理を実行する(ステップS1−4)。具体的には、制御部21の評価管理手段213は、対象者情報記憶部23の対象者管理レコード230から、この育成対象者の性格識別子(着実性評価値)を取得する。
【0065】
次に、開発者育成サーバ20の制御部21は、性格に応じた基準値の特定処理を実行する(ステップS1−5)。具体的には、制御部21の評価管理手段213は、基準情報記憶部24から、取得した性格識別子(着実性評価値)に対応する進捗基準値を取得する。
【0066】
次に、開発者育成サーバ20の制御部21は、進捗状況が基準値より低いかどうかについての判定処理を実行する(ステップS1−6)。具体的には、制御部21の進捗評価手段212は、ステップS1−3において取得したコーディング量とステップS1−5において取得した基準値とを比較する。
【0067】
進捗状況が基準値以上の場合(ステップS1−6において「NO」の場合)、開発者育成サーバ20の制御部21は、進捗評価処理を終了する。
一方、進捗状況が基準値に達していない場合(ステップS1−6において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS1−7)。具体的には、制御部21の進捗評価手段212は、この対象者のクライアント端末10に対して、進捗の遅れを示すメッセージを含めたアラームを出力する。
以上の処理を育成対象者毎に繰り返す。
【0068】
(コンパイル時処理)
次に、コンパイル時処理を、図5に従って説明する。
【0069】
クライアント端末10は、コンパイル指示処理を実行する(ステップS2−1)。具体的には、ソースコードを完成した場合、育成対象者はクライアント端末10においてコンパイル指示を入力する。この場合、クライアント端末10は、開発者育成サーバ20に対して、コンパイル指示を送信する。このコンパイル指示には、クライアント端末10において作成したソースコードを含める。
【0070】
次に、クライアント端末10は、ソースコードの登録処理を実行する(ステップS2−2)。具体的には、制御部21のデータ取得手段211は、クライアント端末10から取得したソースコードを含めた成果登録レコード271を生成し、作成履歴記憶部27に記録する。この場合、データ取得手段211は、登録日として現在日付を記録する。
【0071】
次に、開発者育成サーバ20の制御部21は、ソースコードの評価処理を実行する(ステップS2−3)。ここでは、制御部21は、後述するように、作法評価手段215にお
いてプログラミング作法の評価処理(ステップS2−3a)、機能評価手段216において機能ブロック評価処理(ステップS2−3b)を実行する。そして、制御部21の評価管理手段213は、作法評価手段215、機能評価手段216から評価結果を取得する。
【0072】
次に、開発者育成サーバ20の制御部21は、評価結果に問題がないかどうかについての判定処理を実行する(ステップS2−4)。具体的には、制御部21の評価管理手段213は、各評価手段(215,216)から取得した評価結果に基づいて判定する。
【0073】
各評価手段(215,216)から取得した評価結果において問題があった場合(ステップS2−4において「NO」の場合)、開発者育成サーバ20の制御部21は、ソースコードの修正指示処理を実行する(ステップS2−5)。具体的には、制御部21の評価管理手段213は、クライアント端末10に対して、修正指示を送信する。この修正指示には、各評価手段(215,216)から取得した評価結果を含める。この場合、育成対象者は、この指示に基づいてソースコードの修正を行なう。
【0074】
各評価手段(215,216)から取得した評価結果に問題がなかった場合(ステップS2−4において「YES」の場合)、開発者育成サーバ20の制御部21は、ソースコードの修正指示処理(ステップS2−5)をスキップする。
【0075】
次に、開発者育成サーバ20の制御部21は、コンパイル処理を実行する(ステップS2−6)。具体的には、制御部21のデータ取得手段211は、統合開発環境サーバ30に対して、コンパイル要求を送信する。このコンパイル要求には、クライアント端末10から取得したソースコードを含める。
【0076】
統合開発環境サーバ30は、クライアント端末10において作成されたソースコードのコンパイルを実行する。そして、統合開発環境サーバ30は、コンパイル成果物を開発者育成サーバ20に返信する。このコンパイル成果物には、生成したオブジェクトコード、コンパイル結果を含める。コンパイル時にエラーが発生した場合には、エラー内容をコンパイル結果に含める。
【0077】
次に、開発者育成サーバ20の制御部21は、オブジェクトコードの登録処理を実行する(ステップS2−7)。具体的には、制御部21のデータ取得手段211は、統合開発環境サーバ30から取得したオブジェクトコードを、作成履歴記憶部27に登録する。
【0078】
次に、開発者育成サーバ20の制御部21は、コンパイルエラーの有無についての判定処理を実行する(ステップS2−8)。具体的には、制御部21の評価管理手段213は、統合開発環境サーバ30から取得したコンパイル結果に基づいて、エラーの有無を判定する。
【0079】
コンパイルエラーが発生している場合(ステップS2−8において「YES」の場合)、開発者育成サーバ20の制御部21は、コンパイルエラー評価処理を実行する(ステップS2−9)。具体的には、制御部21のエラー評価手段214が、後述するコンパイルエラー評価処理を実行する。
一方、コンパイルエラーがない場合(ステップS2−8において「NO」の場合)、開発者育成サーバ20の制御部21は、コンパイル時処理を終了する。
【0080】
(プログラミング作法の評価処理)
次に、プログラミング作法の評価処理(ステップS2−3a)を、図6に従って説明する。
【0081】
ここでは、開発者育成サーバ20の制御部21は、ソースコードから変数名、メソッド名の抽出処理を実行する(ステップS3−1)。具体的には、制御部21の作法評価手段215は、作成履歴記憶部27に記録されたソースコードのフォーマットに応じて変数やメソッドを抽出する。そして、変数やメソッドに付与されている名称を特定する。
【0082】
次に、抽出した名称毎に、以下の処理を繰り返す。
開発者育成サーバ20の制御部21は、名称に対応するコメント文の抽出処理を実行する(ステップS3−2)。具体的には、制御部21の作法評価手段215は、ソースコードから、変数やメソッドについてのコメント文を抽出する。
【0083】
次に、開発者育成サーバ20の制御部21は、抽出した名称について曖昧検索処理を実行する(ステップS3−3)。具体的には、制御部21の作法評価手段215は、抽出した変数名やメソッド名を検索対象語として、評価用辞書記憶部25において曖昧検索を行なう。この曖昧検索においては、検索対象語に対して、所定の割合以上の構成文字や文字配列が共通している見出語(共通見出語)を検索する。
【0084】
次に、開発者育成サーバ20の制御部21は、名称の利用を許容できるかどうかについての判定処理を実行する(ステップS3−4)。具体的には、制御部21の作法評価手段215は、曖昧検索における共通見出語の抽出の有無により判定する。
【0085】
曖昧検索において共通見出語を抽出できないため、名称利用を許容できないと判定した場合(ステップS3−4において「NO」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS3−5)。具体的には、制御部21の作法評価手段215は、クライアント端末10に対して、曖昧検索において候補を抽出できなかった名称を出力する。この場合、この名称について、ソースコードから取得したコメント文も併せて出力する。
【0086】
一方、曖昧検索において共通見出語を抽出できたため、名称利用を許容できると判定した場合(ステップS3−4において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理(ステップS3−5)をスキップする。
【0087】
次に、開発者育成サーバ20の制御部21は、名称の関連語の取得処理を実行する(ステップS3−6)。具体的には、制御部21の作法評価手段215は、評価用辞書記憶部25の名称管理レコード251を用いて、共通見出語に関連付けられた関連語を取得する。
【0088】
次に、開発者育成サーバ20の制御部21は、問題がある関連語が存在するかどうかについての判定処理を実行する(ステップS3−7)。具体的には、制御部21の作法評価手段215は、このソースコードから取得した名称の中に、名称管理レコード251に記録された関連語と所定の割合以上の構成文字や文字配列が共通している名称が含まれるかどうかを判定する。ここで、組み合わせて使用できない使用不可単語を抽出した場合や、見出語と対にして記載すべき必須単語を抽出できなかった場合は、問題があることになる。
【0089】
問題がある関連語が存在する場合(ステップS3−7において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS3−8)。具体的には、制御部21の作法評価手段215は、関連語を抽出できなかった名称について、関連語及びコメント文をクライアント端末10に出力する。
【0090】
一方、問題がある関連語が存在しない場合(ステップS3−7において「NO」の場合
)、開発者育成サーバ20の制御部21は、アラーム出力処理(ステップS3−8)をスキップする。
【0091】
次に、開発者育成サーバ20の制御部21は、各名称の相互比較処理を実行する(ステップS3−9)。具体的には、制御部21の作法評価手段215は、ソースコードから取得した他の変数名やメソッド名を構成するアルファベットの配列の比較を行なう。
【0092】
そして、開発者育成サーバ20の制御部21は、紛らわしい名称があるかどうかについての判定処理を実行する(ステップS3−10)。具体的には、制御部21の作法評価手段215は、所定の割合以上の構成文字が共通しており、途中で異なるアルファベットが含まれる他の名称の有無により判定する。
【0093】
紛らわしい名称を検出した場合(ステップS3−10において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS3−11)。具体的には、制御部21の作法評価手段215は、クライアント端末10に対して、類似する名称を出力する。この場合、各名称について、ソースコードから取得したコメント文も併せて出力する。一方、紛らわしい名称を検出しなかった場合(ステップS3−10において「NO」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理(ステップS3−11)をスキップする。
以上の処理を、名称毎に繰り返す。
【0094】
(機能ブロック評価処理)
次に、機能ブロック評価処理(ステップS2−3b)を、図7に従って説明する。
【0095】
ここでは、開発者育成サーバ20の制御部21は、字下げスタイルの構文の抽出処理を実行する(ステップS4−1)。具体的には、制御部21の機能評価手段216は、ソースコードにおいて、字下げ行を検索する。
【0096】
次に、開発者育成サーバ20の制御部21は、自動生成を利用しているかどうかについての判定処理を実行する(ステップS4−2)。具体的には、制御部21の機能評価手段216は、クライアント端末10から取得したソースコードに含まれるコードを用いて、字下げの自動生成を行なう。そして、字下げの自動生成においても、クライアント端末10から取得したソースコードに変化がない場合には自動生成を利用していると判定する。
【0097】
クライアント端末10において自動生成を利用していないと判定した場合(ステップS4−2において「NO」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS4−3)。具体的には、制御部21の機能評価手段216は、クライアント端末10において、字下げの自動生成を推奨するメッセージを出力する。一方、自動生成を利用していると判定した場合(ステップS4−2において「YES」の場合)、アラーム出力処理(ステップS4−3)をスキップする。
【0098】
次に、開発者育成サーバ20の制御部21は、命令文の行跨ぎの検索処理を実行する(ステップS4−4)。具体的には、制御部21の機能評価手段216は、クライアント端末10から取得したソースコードにおいて、一連の命令文が記述された行の行数を算出する。
【0099】
次に、開発者育成サーバ20の制御部21は、命令の行跨ぎがあるかどうかについての判定処理を実行する(ステップS4−5)。具体的には、制御部21の機能評価手段216は、一連の命令文が複数行にわたっている場合には、行跨ぎと判定する。
【0100】
命令文の行跨ぎがある場合(ステップS4−5において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS4−6)。具体的には、制御部21の機能評価手段216は、クライアント端末10において、行跨ぎがあることを示すメッセージを出力する。一方、命令の行跨ぎがない場合(ステップS4−5において「NO」の場合)、アラーム出力処理(ステップS4−6)をスキップする。
【0101】
次に、開発者育成サーバ20の制御部21は、性格に対応した許容範囲の特定処理を実行する(ステップS4−7)。具体的には、制御部21の機能評価手段216は、対象者情報記憶部23に記録された対象者管理レコード230から性格識別子(着実性評価値)を取得する。次に、機能評価手段216は、基準情報記憶部24から取得した性格識別子(着実性評価値)に対応するメソッド数基準値、命令文数基準値、メソッド行数基準値を取得する。
【0102】
次に、開発者育成サーバ20の制御部21は、メソッド数の算出処理を実行する(ステップS4−8)。具体的には、制御部21の機能評価手段216は、クライアント端末10から取得したソースコードに含まれるメソッドを検索する。そして、機能評価手段216は、検出したメソッドの数をカウントする。
【0103】
次に、開発者育成サーバ20の制御部21は、許容範囲外かどうかについての判定処理を実行する(ステップS4−9)。具体的には、制御部21の機能評価手段216は、ソースコードから抽出したメソッド数と、性格識別子(着実性評価値)に対応して取得したメソッド数基準値とを比較する。
【0104】
メソッド数基準値を超えており、許容範囲外の場合(ステップS4−9において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS4−10)。具体的には、制御部21の機能評価手段216は、クライアント端末10において、メソッド数が許容範囲を超えていることを示すメッセージを出力する。一方、メソッド数がメソッド数基準値以下であり、許容範囲内の場合(ステップS4−9において「NO」の場合)、アラーム出力処理(ステップS4−10)をスキップする。
【0105】
次に、抽出したメソッド毎に、図8に示す処理を繰り返す。
ここでは、開発者育成サーバ20の制御部21は、各メソッドに含まれる特定の命令の抽出処理を実行する(ステップS5−1)。具体的には、制御部21の機能評価手段216は、評価用辞書記憶部25に記録された特定命令管理レコード252から特定命令文を取得する。次に、機能評価手段216は、クライアント端末10から取得したソースコードにおいて、この特定命令文を抽出する。そして、機能評価手段216は、検出した特定命令文の数をカウントする。
【0106】
次に、開発者育成サーバ20の制御部21は、許容範囲外かどうかについての判定処理を実行する(ステップS5−2)。具体的には、制御部21の機能評価手段216は、ソースコードから抽出した特定命令文数と、性格識別子(着実性評価値)に対応して取得した命令文数基準値とを比較する。
【0107】
特定命令文数が命令文数基準値を超えており、許容範囲外の場合(ステップS5−2において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS5−3)。具体的には、制御部21の機能評価手段216は、クライアント端末10において、特定命令文数が許容範囲を超えていることを示すメッセージを出力する。一方、特定命令文数が許容範囲内の場合(ステップS5−2において「NO」の場合)、アラーム出力処理(ステップS5−3)をスキップする。
【0108】
次に、開発者育成サーバ20の制御部21は、各メソッドの行数の算出処理を実行する(ステップS5−4)。具体的には、制御部21の機能評価手段216は、クライアント端末10から取得したソースコードに含まれる各メソッドのブロックを特定する。そして、機能評価手段216は、各ブロックの行数をカウントする。
【0109】
次に、開発者育成サーバ20の制御部21は、許容範囲外かどうかについての判定処理を実行する(ステップS5−5)。具体的には、制御部21の機能評価手段216は、ソースコードから抽出したメソッド行数と、性格識別子(着実性評価値)に対応して取得したメソッド行数基準値とを比較する。
【0110】
メソッド行数が許容範囲を超えており、許容範囲外の場合(ステップS5−5において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS5−6)。具体的には、制御部21の機能評価手段216は、メソッド行数が許容範囲を超えていることを示すメッセージを出力する。一方、メソッド行数が許容範囲内の場合(ステップS5−5において「NO」の場合)、アラーム出力処理(ステップS5−6)をスキップする。
以上の処理を、メソッド毎に繰り返す。
【0111】
(コンパイルエラー評価処理)
次に、コンパイルエラー評価処理を、図9に従って説明する。
【0112】
ここでは、開発者育成サーバ20の制御部21は、エラー情報の登録処理を実行する(ステップS6−1)。具体的には、制御部21のエラー評価手段214は、育成対象者識別子、課題識別子に関連付けて、発生日、エラー内容を含めたエラー履歴管理レコード280を生成し、エラー履歴記憶部28に登録する。
【0113】
次に、開発者育成サーバ20の制御部21は、先行のエラー履歴の検索処理を実行する(ステップS6−2)。具体的には、制御部21のエラー評価手段214は、エラー履歴記憶部28において、今回のエラーと同じ育成対象者識別子、課題識別子に関連付けられた先行のエラー履歴管理レコード280を検索する。
【0114】
次に、開発者育成サーバ20の制御部21は、育成対象者の性格情報の取得処理を実行する(ステップS6−3)。具体的には、制御部21のエラー評価手段214は、対象者情報記憶部23の対象者管理レコード230から性格識別子(積極性評価値)を取得する。
【0115】
次に、開発者育成サーバ20の制御部21は、積極性が低いかどうかについての判定処理を実行する(ステップS6−4)。具体的には、制御部21のエラー評価手段214は、取得した性格識別子(積極性評価値)と積極性基準値とを比較する。
【0116】
積極性評価値が積極性基準値より低い場合(ステップS6−4において「YES」の場合)、開発者育成サーバ20の制御部21は、再コンパイルの目的入力画面の表示処理を実行する(ステップS6−5)。具体的には、制御部21のエラー評価手段214は、クライアント端末10のディスプレイに目的入力画面を出力する。この場合、育成対象者は、この画面に再コンパイルの目的を入力する。そして、エラー評価手段214は、目的入力画面において入力された再コンパイル目的を取得して、エラー履歴管理レコード280に記録する。一方、積極性評価値が積極性基準値以上の場合(ステップS6−4において「NO」の場合)、開発者育成サーバ20の制御部21は、再コンパイルの目的入力画面の表示処理(ステップS6−5)をスキップする。
【0117】
次に、開発者育成サーバ20の制御部21は、同じ種類のエラー履歴があるかどうかについての判定処理を実行する(ステップS6−6)。具体的には、制御部21のエラー評価手段214は、エラー履歴記憶部28から取得した先行のエラー履歴管理レコード280において、今回のエラーと同じ内容が記録されたレコードを検索する。
【0118】
同じ種類のエラー履歴がない場合(ステップS6−6において「NO」の場合)、開発者育成サーバ20の制御部21は、性格に基いて異種類許容回数の特定処理を実行する(ステップS6−7)。具体的には、制御部21のエラー評価手段214は、対象者管理レコード230に記録された性格識別子(積極性評価値)に対応する異種類許容回数を、基準情報記憶部24から取得する。
【0119】
次に、開発者育成サーバ20の制御部21は、エラー回数が許容回数以上かどうかについての判定処理を実行する(ステップS6−8)。具体的には、制御部21のエラー評価手段214は、同じ種類のエラー履歴管理レコード280のレコード数をカウントする。そして、エラー評価手段214は、レコード数と異種類許容回数とを比較する。
【0120】
エラー回数が許容回数未満の場合(ステップS6−8において「NO」の場合)、開発者育成サーバ20の制御部21は、コンパイルエラー評価処理を終了する。
一方、同じ種類のエラー履歴がある場合(ステップS6−6において「YES」の場合)、開発者育成サーバ20の制御部21は、性格に基いて同種類許容回数の特定処理を実行する(ステップS6−9)。具体的には、制御部21のエラー評価手段214は、対象者管理レコード230に記録された性格識別子(積極性評価値)に対応する同種類許容回数を、基準情報記憶部24から取得する。
【0121】
次に、開発者育成サーバ20の制御部21は、エラー回数が許容回数以上かどうかについての判定処理を実行する(ステップS6−10)。具体的には、制御部21のエラー評価手段214は、レコード数と同種類許容回数とを比較する。
【0122】
エラー回数が許容回数未満の場合(ステップS6−10において「NO」の場合)、開発者育成サーバ20の制御部21は、コンパイルエラー評価処理を終了する。
一方、エラー回数が許容回数以上の場合(ステップS6−8又はS6−10において「YES」の場合)、開発者育成サーバ20の制御部21は、支援パターンの検索処理を実行する(ステップS6−11)。具体的には、制御部21のエラー評価手段214は、支援情報記憶部26において、エラー識別子に対応する支援内容を検索する。
【0123】
次に、開発者育成サーバ20の制御部21は、該当パターンがあるかどうかについての判定処理を実行する(ステップS6−12)。具体的には、制御部21のエラー評価手段214は、今回のエラー識別子に対応する支援情報管理レコード260を抽出できた場合には、該当パターンがあることになる。
【0124】
該当パターンが登録されている場合(ステップS6−12において「YES」の場合)、開発者育成サーバ20の制御部21は、支援情報の出力処理を実行する(ステップS6−13)。具体的には、制御部21のエラー評価手段214は、支援情報記憶部26から取得した支援情報を、育成対象者のクライアント端末10に対して出力する。
【0125】
該当パターンが登録されていない場合(ステップS6−12において「NO」の場合)、開発者育成サーバ20の制御部21は、指導者に対して修正履歴の送信処理を実行する(ステップS6−14)。具体的には、制御部21のエラー評価手段214は、エラーが発生したソースコード及びオブジェクトコードを作成履歴記憶部27から取得する。そして、エラー評価手段214は、指導者のクライアント端末10に対して、発生したエラー
識別子、作成物(ソースコード及びオブジェクトコード)を送信する。この場合、指導者は、エラー内容や作成物を確認して、育成対象者に対して指導を行なう。
【0126】
(テスト評価処理)
次に、テスト評価処理を、図10に従って説明する。このテスト評価処理においては、対象者情報記憶部23に登録された各育成対象者を特定し、以下の処理を育成対象者毎に繰り返す。
【0127】
開発者育成サーバ20の制御部21は、テスト開始からの経過時間の取得処理を実行する(ステップS7−1)。具体的には、制御部21のテスト評価手段217は、作成履歴記憶部27において、作成履歴管理レコード270の中でテスト開始日が記録されるとともに、評価終了日が記録されていないレコードを取得する。そして、進捗評価手段212は、テスト開始日からの経過時間を算出する。
【0128】
次に、開発者育成サーバ20の制御部21は、テスト進捗確認時期が到来したかどうかについての判定処理を実行する(ステップS7−2)。具体的には、制御部21のテスト評価手段217は、課題情報記憶部22から、この課題についてのテスト進捗確認時期を取得する。そして、進捗評価手段212は、経過時間とテスト進捗確認時期とを比較する。
【0129】
経過時間がテスト進捗確認時期に達していない場合(ステップS7−2において「NO」の場合)には、開発者育成サーバ20の制御部21は、この育成対象者についてのテスト評価処理を終了する。
【0130】
一方、経過時間がテスト進捗確認時期に達している場合(ステップS7−2において「YES」の場合)には、開発者育成サーバ20の制御部21は、テストケース数の算出処理を実行する(ステップS7−3)。具体的には、制御部21のテスト評価手段217は、作成履歴記憶部27の成果登録レコード271に記録されたテストデータを取得する。そして、テスト評価手段217は、テストデータに対応したテストケース数をカウントする。
【0131】
次に、開発者育成サーバ20の制御部21は、テストケース数許容範囲内かどうかについての判定処理を実行する(ステップS7−4)。具体的には、制御部21のテスト評価手段217は、課題情報記憶部22から、この課題についてのテストケース数許容範囲を取得する。そして、進捗評価手段212は、テストケースの数とテストケース数許容範囲とを比較する。
【0132】
テストケース数がテストケース数許容範囲外となっている場合(ステップS7−4において「NO」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS7−5)。具体的には、制御部21のテスト評価手段217は、育成対象者のクライアント端末10に対して、テストケース数が許容範囲外になっていることを示すメッセージを含めたアラームを出力する。
【0133】
一方、テストケース数が許容範囲内の場合(ステップS7−4において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理(ステップS7−5)をスキップする。
【0134】
次に、開発者育成サーバ20の制御部21は、テストケースのカバレージの算出処理を実行する(ステップS7−6)。具体的には、制御部21のテスト評価手段217は、作成履歴記憶部27の成果登録レコード271に記録されたテストデータを取得する。そし
て、テスト評価手段217は、公知の方法によりカバレージを算出する。
【0135】
次に、開発者育成サーバ20の制御部21は、算出したカバレージがカバレージ基準値以下かどうかについての判定処理を実行する(ステップS7−7)。具体的には、制御部21のテスト評価手段217は、課題情報記憶部22から、この課題についてのカバレージ基準値を取得する。そして、テスト評価手段217は、算出したカバレージとカバレージ基準値とを比較する。
【0136】
算出したカバレージがカバレージ基準値以下の場合(ステップS7−7において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS7−8)。具体的には、制御部21のテスト評価手段217は、育成対象者のクライアント端末10に対して、多様なテストケースが想定されていないことを示すメッセージを含めたアラームを出力する。
【0137】
一方、カバレージがカバレージ基準値を超えている場合(ステップS7−7において「YES」の場合)、開発者育成サーバ20の制御部21は、評価終了日の記録処理を実行する(ステップS7−9)。具体的には、制御部21のテスト評価手段217は、作成履歴記憶部27において、この育成対象者、課題についての作成履歴管理レコード270に評価終了日を記録する。
【0138】
以上の処理を育成対象者毎に繰り返す。
本実施形態によれば、以下のような効果を得ることができる。
(1)本実施形態においては、経過時間が作成進捗確認時期に達している場合(ステップS1−2において「YES」の場合)には、開発者育成サーバ20の制御部21は、進捗状況の取得処理を実行する(ステップS1−3)。次に、開発者育成サーバ20の制御部21は、育成対象者の性格情報の取得処理(ステップS1−4)、性格に応じた基準値の特定処理(ステップS1−5)を実行する。そして、進捗状況が基準値に達していない場合(ステップS1−6において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS1−7)。育成対象者の性格により、プログラムの作成方法は異なる。例えば、作成速度が遅くても、着実にプログラムを作成する人もいれば、作成速度が速くてもミスが多い人もいる。従って、育成対象者の性格に応じて、進捗状況を評価することにより、的確な指導を行なうことができる。
【0139】
(2)本実施形態においては、開発者育成サーバ20の制御部21は、作法評価手段215においてプログラミング作法の評価処理を実行する(ステップS2−3a)。ここでは、開発者育成サーバ20の制御部21は、ソースコードから変数名、メソッド名の抽出処理(ステップS3−1)、抽出した名称について曖昧検索処理(ステップS3−3)を実行する。曖昧検索において共通見出語を抽出できないため、名称利用を許容できないと判定した場合(ステップS3−4において「NO」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS3−5)。内容を特定できない名称を用いると、後からプログラム内容を理解し難くなる。理解しやすい名称を辞書に登録しておくことにより、適切な名称を用いてコーディングを行なうことができる。これにより、後から内容を理解しやすくなるとともに、コーディング間違いを抑制できるプログラムの作成を指導することができる。
【0140】
更に、開発者育成サーバ20の制御部21は、名称の関連語の取得処理を実行する(ステップS3−6)。問題がある関連語が存在する場合(ステップS3−7において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS3−8)。これにより、競合する異義語を混在させたり、対になるべき関連語を記載し忘れたりしている場合に注意喚起することができる。
【0141】
更に、開発者育成サーバ20の制御部21は、各名称の相互比較処理を実行する(ステップS3−9)。紛らわしい名称を検出した場合(ステップS3−10において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS3−11)。紛らわしい名称の記載を抑制することにより、引用すべき変数やメソッドの間違いを防止できるプログラムの作成を指導することができる。
【0142】
(3)本実施形態においては、開発者育成サーバ20の制御部21は、作法評価手段215において機能ブロック評価処理を実行する(ステップS2−3b)。ここでは、開発者育成サーバ20の制御部21は、字下げスタイルの構文の抽出処理を実行する(ステップS4−1)。クライアント端末10において自動生成を利用していないと判定した場合(ステップS4−2において「NO」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS4−3)。これにより、自動字下げの利用を遵守させることができる。そして、制御フローやコードのブロックを識別しやすいプログラムの作成を指導することができる。
【0143】
更に、開発者育成サーバ20の制御部21は、命令文の行跨ぎの検索処理を実行する(ステップS4−4)。命令文の行跨ぎがある場合(ステップS4−5において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS4−6)。これにより、行跨ぎを抑制して、作成者以外の人間においても読みやすく理解しやすいプログラムの作成を指導することができる。
【0144】
更に、開発者育成サーバ20の制御部21は、性格に対応した許容範囲の特定処理を実行する(ステップS4−7)。開発者育成サーバ20の制御部21は、メソッド数の算出処理を実行する(ステップS4−8)。メソッド数基準値を超えており、許容範囲外の場合(ステップS4−9において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS4−10)。メソッドが少ない場合には、一つのメソッドに機能を盛り込みすぎている可能性がある。又、育成対象者の性格によっては、メソッドが少ない場合でも、的確なコーディングが行なわれていることもある。これにより、育成対象者の性格に応じて、的確な指導を行なうことができる。
【0145】
更に、開発者育成サーバ20の制御部21は、各メソッドに含まれる特定の命令の抽出処理を実行する(ステップS5−1)。特定命令文数が命令文数基準値を超えており、許容範囲外の場合(ステップS5−2において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS5−3)。特定の命令が多すぎる場合、命令が重複している可能性がある。これにより、育成対象者の性格に応じて、的確な指導を行なうことができる。
【0146】
更に、開発者育成サーバ20の制御部21は、各メソッドの行数の算出処理を実行する(ステップS5−4)。メソッド行数が許容範囲を超えており、許容範囲外の場合(ステップS5−5において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS5−6)。一つのメソッドが長すぎる場合には、一つのメソッドに機能を盛り込みすぎている可能性がある。又、育成対象者の性格によっては、メソッドが長い場合でも、的確なコーディングが行なわれていることもある。これにより、育成対象者の性格に応じて、的確な指導を行なうことができる。
【0147】
(4)本実施形態においては、開発者育成サーバ20の制御部21は、育成対象者の性格情報の取得処理を実行する(ステップS6−3)。積極性評価値が積極性基準値より低い場合(ステップS6−4において「YES」の場合)、開発者育成サーバ20の制御部21は、再コンパイルの目的入力画面の表示処理を実行する(ステップS6−5)。育成
対象者によっては、積極的に多様なコーディングを試していることがある。一方で、育成対象者によっては、再コンパイルの目的を意識せずに試行錯誤していることもある。この場合、再コンパイルの目的(例えば、ミスの修正、新たに作成したメソッドの試験等)を入力させることにより、コーディングの狙いを意識させることができる。
【0148】
(5)本実施形態においては、開発者育成サーバ20の制御部21は、同じ種類のエラー履歴があるかどうかについての判定処理を実行する(ステップS6−6)。同じ種類のエラー履歴がない場合(ステップS6−6において「NO」の場合)、開発者育成サーバ20の制御部21は、性格に基いて異種類許容回数の特定処理を実行する(ステップS6−7)。一方、同じ種類のエラー履歴がある場合(ステップS6−6において「YES」の場合)、開発者育成サーバ20の制御部21は、性格に基いて同種類許容回数の特定処理を実行する(ステップS6−9)。エラー回数が許容回数以上の場合(ステップS6−8又はS6−10において「YES」の場合)、開発者育成サーバ20の制御部21は、支援パターンの検索処理を実行する(ステップS6−11)。該当パターンが登録されている場合(ステップS6−12において「YES」の場合)、開発者育成サーバ20の制御部21は、支援情報の出力処理を実行する(ステップS6−13)。同じ種類のエラーが発生している場合には、エラーの原因を把握できていない可能性がある。一方、異なる種類のエラーが発生している場合には、多様な試みを行なっている可能性がある。従って、同じ課題について、エラーの発生状況に応じて、的確な指導を行なうことができる。
【0149】
更に、該当パターンが登録されていない場合(ステップS6−12において「NO」の場合)、開発者育成サーバ20の制御部21は、指導者に対して修正履歴の送信処理を実行する(ステップS6−14)。これにより、開発者育成サーバ20において対応できない場合に、育成対象者に対して、指導者による支援を行なうことができる。
【0150】
(6)本実施形態においては、経過時間がテスト進捗確認時期に達している場合(ステップS7−2において「YES」の場合)には、開発者育成サーバ20の制御部21は、テストケース数の算出処理を実行する(ステップS7−3)。テストケース数がテストケース数許容範囲外の場合(ステップS7−4において「NO」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS7−5)。これにより、育成対象者の性格に応じた進捗を考慮して、より的確な指導を行なうことができる。
【0151】
更に、開発者育成サーバ20の制御部21は、テストケースのカバレージの算出処理を実行する(ステップS7−6)。テストケースのカバレージがカバレージ基準値以下のものが含まれる場合(ステップS7−7において「YES」の場合)、開発者育成サーバ20の制御部21は、アラーム出力処理を実行する(ステップS7−8)。育成対象者の性格によっては、少ないテストケースで広い範囲をカバーできている場合もあれば、多くのテストケースを準備しなければならない場合もある。従って、育成対象者の性格を考慮して、より的確な指導を行なうことができる。
【0152】
なお、上記各実施形態は以下のように変更してもよい。
・ 上記実施形態では、複数の基準値を用いて、複数の評価処理を実行した。基準値の種類や評価処理の種類は、これらに限定されるものではなく、一部の基準値や評価処理を用いたり、他の評価処理を組み合わせたりすることも可能である。
【0153】
・ 上記実施形態では、作成履歴記憶部27には、育成対象者が作成したプログラム(ソースコードやオブジェクトコード)を管理するための作成履歴管理レコード270が記憶される。作成物を管理する記憶部を設けるハードウェアは、これに限定されるものではない。例えば、統合開発環境サーバ30において、育成対象者識別子及び課題識別子に関連付けて記憶させておくようにしてもよい。この場合には、開発者育成サーバ20の制御
部21が、評価時に統合開発環境サーバ30から作成物を取得する。
【0154】
・ 上記実施形態では、対象者情報記憶部23には、育成対象者を管理するための対象者管理レコード230が記憶されている。この対象者管理レコード230は、育成対象者識別子、性格識別子、進捗状況に関するデータを含んで構成される。この性格識別子を、育成対象者が作成した作成物に対する評価に基づいて記録するようにしてもよい。例えば、開発者育成サーバ20の制御部21が、各評価におけるアラーム種別に対応させた性格識別子を記録した性格決定テーブルを準備しておく。そして、アラームの出力時に、制御部21がアラーム種別に応じて性格識別子を変更する。
【0155】
又、コンパイルエラーのエラー識別子に対応させた性格識別子を記録した性格決定テーブルを準備しておく。そして、制御部21が、コンパイルエラーの発生時に性格決定テーブルを用いて、エラー識別子に対応した性格識別子を特定して、対象者情報記憶部23に登録する。これにより、課題に対する対応状況に基づいて、性格を特定していくことができる。
【0156】
・ 上記実施形態では、支援情報記憶部26には、エラーが発生した場合に育成対象者に対して提供される支援情報を管理するための支援情報管理レコード260が記憶されている。この支援情報は、性格識別子に対応させて登録しておくようにしてもよい。これにより、育成対象者の性格に応じた支援情報を提供することができる。
【0157】
・ 上記実施形態では、基準情報記憶部24には、性格に対応した基準値を管理するための基準値管理レコード240が記憶されている。この基準情報記憶部24に記録されている同種類許容回数は、エラー識別子毎に記録するようにしてもよい。
【0158】
・ 上記実施形態では、課題情報記憶部22には、育成対象者に提供される課題を管理するための課題管理レコード220が記憶されている。この課題管理レコード220は、課題識別子、内容に関するデータを含んで構成される。ここで、育成対象者に提供する課題を、育成対象者の性格によって特定するようにしてもよい。この場合には、課題管理レコード220に性格識別子を登録しておき、開発者育成サーバ20の制御部21は、育成対象者の性格識別子に関連付けられた課題を提供する。
【0159】
また、育成対象者の苦手な領域について課題を提供するようにしてもよい。この場合には、課題管理レコード220において、エラー履歴により特定できるエラー内容に課題を関連付けて記録しておく。そして、開発者育成サーバ20の制御部21は、エラー履歴記憶部28に記録されたエラー内容に基づいて、育成対象者に提供する課題を特定する。
【0160】
・ 上記実施形態では、課題管理レコード220は、カバレージ基準値に関するデータを含んで構成される。このカバレージ基準値は、メソッド数、パラメータ数に応じて変更してもよい。この場合には、課題管理レコード220に、メソッド数やパラメータ数等のように、プログラムに含まれるコードに応じてカバレージ基準値を算出する関数(基準値算出関数)を記録しておく。そして、開発者育成サーバ20の制御部21は、育成対象者が作成したソースコードを解析して、メソッド数やパラメータ数を算出する。次に、制御部21は、基準値算出関数を用いてカバレージ基準値を算出する。そして、このカバレージ基準値を用いて、テストケースのカバレージについての判定処理を実行する(ステップS7−7)。
【符号の説明】
【0161】
10…クライアント端末、20…開発者育成支援サーバ、21…制御部、211…データ取得手段、212…進捗評価手段、213…評価管理手段、214…エラー評価手段、
215…作法評価手段、216…機能評価手段、217…テスト評価手段、22…課題情報記憶部、23…対象者情報記憶部、24…基準情報記憶部、25…評価用辞書記憶部、26…支援情報記憶部、27…作成履歴記憶部、28…エラー履歴記憶部、30…統合開発環境サーバ。
【特許請求の範囲】
【請求項1】
育成対象者の対象者識別子を記憶した対象者情報記憶手段と、
エラー種類に対応した支援情報を記憶した支援情報記憶手段と、
支援情報を出力するための基準回数を記憶した基準情報記憶手段と、
育成対象者の作成したプログラムにおいて、発生したエラー履歴を対象者識別子毎に記録するエラー情報記憶手段と、
育成対象者端末に接続されるとともに、育成対象者の作成したプログラムにおいて発生したエラー情報を取得する制御手段とを備え、開発者の育成を支援するためのシステムであって、
前記制御手段が、
育成対象者の作成したプログラムにおいてエラーを検知した場合、対象者識別子に関連付けて、発生したエラーを前記エラー情報記憶手段に記録するとともに、このエラー種類を特定する手段と、
同じ種類のエラーの発生回数を算出する手段と、
同じ種類のエラーの発生回数が前記基準情報記憶手段に記憶された基準回数を超えている場合には、このエラー種類に対応した支援情報を支援情報記憶手段から抽出して出力する手段と
を備えたことを特徴とする開発者育成支援システム。
【請求項2】
前記制御手段は、更に指導者端末に接続されており、
前記制御手段が、支援情報を抽出できない場合には、エラー情報を指導者端末に送信する手段を更に備えたことを特徴とする請求項1に記載の開発者育成支援システム。
【請求項3】
前記対象者情報記憶手段には、対象者識別子に関連付けられて、育成対象者の性格を分類した性格識別子が記憶されており
前記基準情報記憶手段には、性格識別子に関連付けられて基準回数が記憶されており、
前記制御手段が、育成対象者の性格識別子を取得して、この性格識別子に関連付けられた支援情報を出力することを特徴とする請求項1又は2に記載の開発者育成支援システム。
【請求項4】
前記基準情報記憶手段には、性格識別子に関連付けられて、コーディング量についての進捗基準値が記録されており、
前記制御手段が、
育成対象者の作成したプログラムのコーディング量を取得し、
コーディング量が、前記育成対象者の性格識別子に対応する進捗基準量に達していない場合には、アラームを出力する手段を更に備えたことを特徴とする請求項3に記載の開発者育成支援システム。
【請求項5】
前記基準情報記憶手段には、性格識別子に関連付けられて、育成対象者の作成したプログラムに含まれるメソッド数についてのメソッド数許容範囲が記録されており、
前記制御手段が、
育成対象者の作成したプログラムに含まれるメソッド数を算出し、
前記メソッド数が、前記育成対象者の性格識別子に対応するメソッド数許容範囲を超えている場合には、アラームを出力する手段を更に備えたことを特徴とする請求項3又は4に記載の開発者育成支援システム。
【請求項6】
前記基準情報記憶手段には、性格識別子に関連付けられて、育成対象者の作成したプログラムに含まれる特定命令の数についての命令数許容範囲が記録されており、
前記制御手段が、
一つのメソッドの中に含まれる特定命令の数を算出し、
前記命令数が、前記育成対象者の性格識別子に対応する命令数許容範囲を超えている場合には、アラームを出力する手段を更に備えたことを特徴とする請求項3〜5のいずれか一つに記載の開発者育成支援システム。
【請求項7】
育成対象者の対象者識別子を記憶した対象者情報記憶手段と、
エラー種類に対応した支援情報を記憶した支援情報記憶手段と、
支援情報を出力するための基準回数を記憶した基準情報記憶手段と、
育成対象者の作成したプログラムにおいて、発生したエラー履歴を対象者識別子毎に記録するエラー情報記憶手段と、
育成対象者端末に接続されるとともに、育成対象者の作成したプログラムにおいて発生したエラー情報を取得する制御手段とを備えたシステムを用いて、開発者の育成を支援するための方法であって、
前記制御手段が、
育成対象者の作成したプログラムにおいてエラーを検知した場合、対象者識別子に関連付けて、発生したエラーを前記エラー情報記憶手段に記録するとともに、このエラー種類を特定する段階と、
同じ種類のエラーの発生回数を算出する段階と、
同じ種類のエラーの発生回数が前記基準情報記憶手段に記憶された基準回数を超えている場合には、このエラー種類に対応した支援情報を支援情報記憶手段から抽出して出力する段階と
を実行することを特徴とする開発者育成支援方法。
【請求項8】
育成対象者の対象者識別子を記憶した対象者情報記憶手段と、
エラー種類に対応した支援情報を記憶した支援情報記憶手段と、
支援情報を出力するための基準回数を記憶した基準情報記憶手段と、
育成対象者の作成したプログラムにおいて、発生したエラー履歴を対象者識別子毎に記録するエラー情報記憶手段と、
育成対象者端末に接続されるとともに、育成対象者の作成したプログラムにおいて発生したエラー情報を取得する制御手段とを備えたシステムを用いて、開発者の育成を支援するためのプログラムであって、
前記制御手段を、
育成対象者の作成したプログラムにおいてエラーを検知した場合、対象者識別子に関連付けて、発生したエラーを前記エラー情報記憶手段に記録するとともに、このエラー種類を特定する手段、
同じ種類のエラーの発生回数を算出する手段、
同じ種類のエラーの発生回数が前記基準情報記憶手段に記憶された基準回数を超えている場合には、このエラー種類に対応した支援情報を支援情報記憶手段から抽出して出力する手段
として機能させることを特徴とする開発者育成支援プログラム。
【請求項1】
育成対象者の対象者識別子を記憶した対象者情報記憶手段と、
エラー種類に対応した支援情報を記憶した支援情報記憶手段と、
支援情報を出力するための基準回数を記憶した基準情報記憶手段と、
育成対象者の作成したプログラムにおいて、発生したエラー履歴を対象者識別子毎に記録するエラー情報記憶手段と、
育成対象者端末に接続されるとともに、育成対象者の作成したプログラムにおいて発生したエラー情報を取得する制御手段とを備え、開発者の育成を支援するためのシステムであって、
前記制御手段が、
育成対象者の作成したプログラムにおいてエラーを検知した場合、対象者識別子に関連付けて、発生したエラーを前記エラー情報記憶手段に記録するとともに、このエラー種類を特定する手段と、
同じ種類のエラーの発生回数を算出する手段と、
同じ種類のエラーの発生回数が前記基準情報記憶手段に記憶された基準回数を超えている場合には、このエラー種類に対応した支援情報を支援情報記憶手段から抽出して出力する手段と
を備えたことを特徴とする開発者育成支援システム。
【請求項2】
前記制御手段は、更に指導者端末に接続されており、
前記制御手段が、支援情報を抽出できない場合には、エラー情報を指導者端末に送信する手段を更に備えたことを特徴とする請求項1に記載の開発者育成支援システム。
【請求項3】
前記対象者情報記憶手段には、対象者識別子に関連付けられて、育成対象者の性格を分類した性格識別子が記憶されており
前記基準情報記憶手段には、性格識別子に関連付けられて基準回数が記憶されており、
前記制御手段が、育成対象者の性格識別子を取得して、この性格識別子に関連付けられた支援情報を出力することを特徴とする請求項1又は2に記載の開発者育成支援システム。
【請求項4】
前記基準情報記憶手段には、性格識別子に関連付けられて、コーディング量についての進捗基準値が記録されており、
前記制御手段が、
育成対象者の作成したプログラムのコーディング量を取得し、
コーディング量が、前記育成対象者の性格識別子に対応する進捗基準量に達していない場合には、アラームを出力する手段を更に備えたことを特徴とする請求項3に記載の開発者育成支援システム。
【請求項5】
前記基準情報記憶手段には、性格識別子に関連付けられて、育成対象者の作成したプログラムに含まれるメソッド数についてのメソッド数許容範囲が記録されており、
前記制御手段が、
育成対象者の作成したプログラムに含まれるメソッド数を算出し、
前記メソッド数が、前記育成対象者の性格識別子に対応するメソッド数許容範囲を超えている場合には、アラームを出力する手段を更に備えたことを特徴とする請求項3又は4に記載の開発者育成支援システム。
【請求項6】
前記基準情報記憶手段には、性格識別子に関連付けられて、育成対象者の作成したプログラムに含まれる特定命令の数についての命令数許容範囲が記録されており、
前記制御手段が、
一つのメソッドの中に含まれる特定命令の数を算出し、
前記命令数が、前記育成対象者の性格識別子に対応する命令数許容範囲を超えている場合には、アラームを出力する手段を更に備えたことを特徴とする請求項3〜5のいずれか一つに記載の開発者育成支援システム。
【請求項7】
育成対象者の対象者識別子を記憶した対象者情報記憶手段と、
エラー種類に対応した支援情報を記憶した支援情報記憶手段と、
支援情報を出力するための基準回数を記憶した基準情報記憶手段と、
育成対象者の作成したプログラムにおいて、発生したエラー履歴を対象者識別子毎に記録するエラー情報記憶手段と、
育成対象者端末に接続されるとともに、育成対象者の作成したプログラムにおいて発生したエラー情報を取得する制御手段とを備えたシステムを用いて、開発者の育成を支援するための方法であって、
前記制御手段が、
育成対象者の作成したプログラムにおいてエラーを検知した場合、対象者識別子に関連付けて、発生したエラーを前記エラー情報記憶手段に記録するとともに、このエラー種類を特定する段階と、
同じ種類のエラーの発生回数を算出する段階と、
同じ種類のエラーの発生回数が前記基準情報記憶手段に記憶された基準回数を超えている場合には、このエラー種類に対応した支援情報を支援情報記憶手段から抽出して出力する段階と
を実行することを特徴とする開発者育成支援方法。
【請求項8】
育成対象者の対象者識別子を記憶した対象者情報記憶手段と、
エラー種類に対応した支援情報を記憶した支援情報記憶手段と、
支援情報を出力するための基準回数を記憶した基準情報記憶手段と、
育成対象者の作成したプログラムにおいて、発生したエラー履歴を対象者識別子毎に記録するエラー情報記憶手段と、
育成対象者端末に接続されるとともに、育成対象者の作成したプログラムにおいて発生したエラー情報を取得する制御手段とを備えたシステムを用いて、開発者の育成を支援するためのプログラムであって、
前記制御手段を、
育成対象者の作成したプログラムにおいてエラーを検知した場合、対象者識別子に関連付けて、発生したエラーを前記エラー情報記憶手段に記録するとともに、このエラー種類を特定する手段、
同じ種類のエラーの発生回数を算出する手段、
同じ種類のエラーの発生回数が前記基準情報記憶手段に記憶された基準回数を超えている場合には、このエラー種類に対応した支援情報を支援情報記憶手段から抽出して出力する手段
として機能させることを特徴とする開発者育成支援プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【公開番号】特開2011−215756(P2011−215756A)
【公開日】平成23年10月27日(2011.10.27)
【国際特許分類】
【出願番号】特願2010−81757(P2010−81757)
【出願日】平成22年3月31日(2010.3.31)
【出願人】(592131906)みずほ情報総研株式会社 (187)
【公開日】平成23年10月27日(2011.10.27)
【国際特許分類】
【出願日】平成22年3月31日(2010.3.31)
【出願人】(592131906)みずほ情報総研株式会社 (187)
[ Back to top ]