(57)【要約】【課題】プログラム開発者の育成を効率的に支援するための開発者育成支援システム、開発者育成支援方法及び開発者育成支援プログラムを提供する。【解決手段】開発者育成サーバ２０の対象者情報記憶部２３には、育成対象者の性格識別子が記憶されている。更に、基準情報記憶部２４には、性格識別子に対応した基準値が記憶されている。そして、開発者育成サーバ２０の制御部２１は、育成対象者の性格情報の取得処理を実行する。進捗状況が基準値に達していない場合、制御部２１は、アラーム出力処理を実行する。更に、制御部２１は、性格識別子基準値を用いて、ソースコードの評価処理を実行する。コンパイルエラー評価処理においては、エラー履歴におけるエラー種類に応じて許容回数を特定する。そして、エラー回数が許容回数以上の場合、制御部２１は、支援情報の出力処理を実行する。【選択図】図１
2011215756.tif 000002
【特許請求の範囲】
【請求項１】
育成対象者の対象者識別子を記憶した対象者情報記憶手段と、
エラー種類に対応した支援情報を記憶した支援情報記憶手段と、
支援情報を出力するための基準回数を記憶した基準情報記憶手段と、
育成対象者の作成したプログラムにおいて、発生したエラー履歴を対象者識別子毎に記録するエラー情報記憶手段と、
育成対象者端末に接続されるとともに、育成対象者の作成したプログラムにおいて発生したエラー情報を取得する制御手段とを備え、開発者の育成を支援するためのシステムであって、
前記制御手段が、
育成対象者の作成したプログラムにおいてエラーを検知した場合、対象者識別子に関連付けて、発生したエラーを前記エラー情報記憶手段に記録するとともに、このエラー種類を特定する手段と、
同じ種類のエラーの発生回数を算出する手段と、
同じ種類のエラーの発生回数が前記基準情報記憶手段に記憶された基準回数を超えている場合には、このエラー種類に対応した支援情報を支援情報記憶手段から抽出して出力する手段と
を備えたことを特徴とする開発者育成支援システム。
【請求項２】
前記制御手段は、更に指導者端末に接続されており、
前記制御手段が、支援情報を抽出できない場合には、エラー情報を指導者端末に送信する手段を更に備えたことを特徴とする請求項１に記載の開発者育成支援システム。
【請求項３】
前記対象者情報記憶手段には、対象者識別子に関連付けられて、育成対象者の性格を分類した性格識別子が記憶されており
前記基準情報記憶手段には、性格識別子に関連付けられて基準回数が記憶されており、
前記制御手段が、育成対象者の性格識別子を取得して、この性格識別子に関連付けられた支援情報を出力することを特徴とする請求項１又は２に記載の開発者育成支援システム。
【請求項４】
前記基準情報記憶手段には、性格識別子に関連付けられて、コーディング量についての進捗基準値が記録されており、
前記制御手段が、
育成対象者の作成したプログラムのコーディング量を取得し、
コーディング量が、前記育成対象者の性格識別子に対応する進捗基準量に達していない場合には、アラームを出力する手段を更に備えたことを特徴とする請求項３に記載の開発者育成支援システム。
【請求項５】
前記基準情報記憶手段には、性格識別子に関連付けられて、育成対象者の作成したプログラムに含まれるメソッド数についてのメソッド数許容範囲が記録されており、
前記制御手段が、
育成対象者の作成したプログラムに含まれるメソッド数を算出し、
前記メソッド数が、前記育成対象者の性格識別子に対応するメソッド数許容範囲を超えている場合には、アラームを出力する手段を更に備えたことを特徴とする請求項３又は４に記載の開発者育成支援システム。
【請求項６】
前記基準情報記憶手段には、性格識別子に関連付けられて、育成対象者の作成したプログラムに含まれる特定命令の数についての命令数許容範囲が記録されており、
前記制御手段が、
一つのメソッドの中に含まれる特定命令の数を算出し、
前記命令数が、前記育成対象者の性格識別子に対応する命令数許容範囲を超えている場合には、アラームを出力する手段を更に備えたことを特徴とする請求項３〜５のいずれか一つに記載の開発者育成支援システム。
【請求項７】
育成対象者の対象者識別子を記憶した対象者情報記憶手段と、
エラー種類に対応した支援情報を記憶した支援情報記憶手段と、
支援情報を出力するための基準回数を記憶した基準情報記憶手段と、
育成対象者の作成したプログラムにおいて、発生したエラー履歴を対象者識別子毎に記録するエラー情報記憶手段と、
育成対象者端末に接続されるとともに、育成対象者の作成したプログラムにおいて発生したエラー情報を取得する制御手段とを備えたシステムを用いて、開発者の育成を支援するための方法であって、
前記制御手段が、
育成対象者の作成したプログラムにおいてエラーを検知した場合、対象者識別子に関連付けて、発生したエラーを前記エラー情報記憶手段に記録するとともに、このエラー種類を特定する段階と、
同じ種類のエラーの発生回数を算出する段階と、
同じ種類のエラーの発生回数が前記基準情報記憶手段に記憶された基準回数を超えている場合には、このエラー種類に対応した支援情報を支援情報記憶手段から抽出して出力する段階と
を実行することを特徴とする開発者育成支援方法。
【請求項８】
育成対象者の対象者識別子を記憶した対象者情報記憶手段と、
エラー種類に対応した支援情報を記憶した支援情報記憶手段と、
支援情報を出力するための基準回数を記憶した基準情報記憶手段と、
育成対象者の作成したプログラムにおいて、発生したエラー履歴を対象者識別子毎に記録するエラー情報記憶手段と、
育成対象者端末に接続されるとともに、育成対象者の作成したプログラムにおいて発生したエラー情報を取得する制御手段とを備えたシステムを用いて、開発者の育成を支援するためのプログラムであって、
前記制御手段を、
育成対象者の作成したプログラムにおいてエラーを検知した場合、対象者識別子に関連付けて、発生したエラーを前記エラー情報記憶手段に記録するとともに、このエラー種類を特定する手段、
同じ種類のエラーの発生回数を算出する手段、
同じ種類のエラーの発生回数が前記基準情報記憶手段に記憶された基準回数を超えている場合には、このエラー種類に対応した支援情報を支援情報記憶手段から抽出して出力する手段
として機能させることを特徴とする開発者育成支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム開発者の育成を支援するための開発者育成支援システム、開発者育成支援方法及び開発者育成支援プログラムに関する。
【背景技術】
【０００２】
システム開発を行なう場合、まず、システムやソフトウェアの開発において、要求されている機能や、実装されるべき機能を明確にしていく要件定義を行なう。そして、機能設計、プログラム設計を経てコーディングを行なう。このコーディングにおいては、プログラミング言語を用いてソースコードを記述する。そして、プログラミング言語で書かれたプログラムを、コンピュータが直接実行可能な機械語のプログラム（オブジェクトコード）に変換するコンパイルを行なう。このように生成されたプログラムについては、多様なテストケースを想定したテストデータを利用して動作確認が行なわれる。
【０００３】
また、コンパイラ、テキストエディタ、デバッガ等を統合して対話型操作環境から利用できるようにした統合開発環境を利用する場合もある（例えば、特許文献１を参照。）。この統合開発環境を使うことによって、巨大かつ複雑なソフトウェアでも、効率的に開発することが可能になる。
【０００４】
このようなシステム開発においては、開発者を育成する教育が必要である。このため、高品質な開発物を製作するための教育システムも検討されている（例えば、特許文献２を参照。）。この文献に記載されたシステムは、開発者情報と開発者管理ポリシとを格納した開発者情報データベース、教育用コンテンツを格納した教育用コンテンツデータベースを備える。開発者端末から教育用コンテンツ要求を受信した場合、開発者情報データベースの開発者情報、開発者管理ポリシ、教育用コンテンツに対応したコンテンツを開発者端末に送信する。
【０００５】
また、プログラムの解析時又は実行時に発生したエラーについての情報を利用して、プログラム作成の経験を生かすためのシステムも検討されている（例えば、特許文献３を参照。）。この文献に記載されたシステムにおいては、プログラムの解析時及び実行時に発生したエラーの情報を記憶するエラー情報エリアを設ける。そして、プログラムの解析時及び実行時にエラーが発生したときに、蓄積されたエラー情報エリアを検索して表示する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−２３４４６６号公報（第１頁、図２）
【特許文献２】特開２００９−１５１５３２号公報（第１頁、図１）
【特許文献３】特開平６−２６６５４７号公報（第１頁、図７）
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献２に記載されているように、システム開発者を育成する場合、育成対象者に課題を提供し、この課題に対する試行錯誤を通じて、スキル向上を図ることがある。ここで、作成したプログラムにエラーが発生した場合、特許文献３に記載されているようにこのエラーから学習することも多い。一方で、育成対象者だけでは、エラーの原因を特定できず、進捗が遅れてしまうこともある。又、プログラム作成への取り組みは、育成対象者の
性格によって異なってくる。従って、育成対象者の状況や性格に応じて的確な指導を行なう必要がある。
【０００８】
本発明は、上記問題点を解決するためになされたものであり、その目的は、システム開発者の育成を効率的に支援するための開発者育成支援システム、開発者育成支援方法及び開発者育成支援プログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上記問題点を解決するために、請求項１に記載の発明は、育成対象者の対象者識別子を記憶した対象者情報記憶手段と、エラー種類に対応した支援情報を記憶した支援情報記憶手段と、支援情報を出力するための基準回数を記憶した基準情報記憶手段と、育成対象者の作成したプログラムにおいて、発生したエラー履歴を対象者識別子毎に記録するエラー情報記憶手段と、育成対象者端末に接続されるとともに、育成対象者の作成したプログラムにおいて発生したエラー情報を取得する制御手段とを備え、開発者の育成を支援するためのシステムであって、前記制御手段が、育成対象者の作成したプログラムにおいてエラーを検知した場合、対象者識別子に関連付けて、発生したエラーを前記エラー情報記憶手段に記録するとともに、このエラー種類を特定する手段と、同じ種類のエラーの発生回数を算出する手段と、同じ種類のエラーの発生回数が前記基準情報記憶手段に記憶された基準回数を超えている場合には、このエラー種類に対応した支援情報を支援情報記憶手段から抽出して出力する手段とを備えたことを要旨とする。
【００１０】
請求項２に記載の発明は、請求項１に記載の開発者育成支援システムにおいて、前記制御手段は、更に指導者端末に接続されており、前記制御手段が、支援情報を抽出できない場合には、エラー情報を指導者端末に送信する手段を更に備えたことを要旨とする。
【００１１】
請求項３に記載の発明は、請求項１又は２に記載の開発者育成支援システムにおいて、前記対象者情報記憶手段には、対象者識別子に関連付けられて、育成対象者の性格を分類した性格識別子が記憶されており前記基準情報記憶手段には、性格識別子に関連付けられて基準回数が記憶されており、前記制御手段が、育成対象者の性格識別子を取得して、この性格識別子に関連付けられた支援情報を出力することを要旨とする。
【００１２】
請求項４に記載の発明は、請求項３に記載の開発者育成支援システムにおいて、前記基準情報記憶手段には、性格識別子に関連付けられて、コーディング量についての進捗基準値が記録されており、前記制御手段が、育成対象者の作成したプログラムのコーディング量を取得し、コーディング量が、前記育成対象者の性格識別子に対応する進捗基準量に達していない場合には、アラームを出力する手段を更に備えたことを要旨とする。
【００１３】
請求項５に記載の発明は、請求項３又は４に記載の開発者育成支援システムにおいて、前記基準情報記憶手段には、性格識別子に関連付けられて、育成対象者の作成したプログラムに含まれるメソッド数についてのメソッド数許容範囲が記録されており、前記制御手段が、育成対象者の作成したプログラムに含まれるメソッド数を算出し、前記メソッド数が、前記育成対象者の性格識別子に対応するメソッド数許容範囲を超えている場合には、アラームを出力する手段を更に備えたことを要旨とする。
【００１４】
請求項６に記載の発明は、請求項３〜５のいずれか一つに記載の開発者育成支援システムにおいて、前記基準情報記憶手段には、性格識別子に関連付けられて、育成対象者の作成したプログラムに含まれる特定命令の数についての命令数許容範囲が記録されており、前記制御手段が、一つのメソッドの中に含まれる特定命令の数を算出し、前記命令数が、前記育成対象者の性格識別子に対応する命令数許容範囲を超えている場合には、アラームを出力する手段を更に備えたことを要旨とする。
【００１５】
請求項７に記載の発明は、育成対象者の対象者識別子を記憶した対象者情報記憶手段と、エラー種類に対応した支援情報を記憶した支援情報記憶手段と、支援情報を出力するための基準回数を記憶した基準情報記憶手段と、育成対象者の作成したプログラムにおいて、発生したエラー履歴を対象者識別子毎に記録するエラー情報記憶手段と、育成対象者端末に接続されるとともに、育成対象者の作成したプログラムにおいて発生したエラー情報を取得する制御手段とを備えたシステムを用いて、開発者の育成を支援するための方法であって、前記制御手段が、育成対象者の作成したプログラムにおいてエラーを検知した場合、対象者識別子に関連付けて、発生したエラーを前記エラー情報記憶手段に記録するとともに、このエラー種類を特定する段階と、同じ種類のエラーの発生回数を算出する段階と、同じ種類のエラーの発生回数が前記基準情報記憶手段に記憶された基準回数を超えている場合には、このエラー種類に対応した支援情報を支援情報記憶手段から抽出して出力する段階とを実行することを要旨とする。
【００１６】
請求項８に記載の発明は、育成対象者の対象者識別子を記憶した対象者情報記憶手段と、エラー種類に対応した支援情報を記憶した支援情報記憶手段と、支援情報を出力するための基準回数を記憶した基準情報記憶手段と、育成対象者の作成したプログラムにおいて、発生したエラー履歴を対象者識別子毎に記録するエラー情報記憶手段と、育成対象者端末に接続されるとともに、育成対象者の作成したプログラムにおいて発生したエラー情報を取得する制御手段とを備えたシステムを用いて、開発者の育成を支援するためのプログラムであって、前記制御手段を、育成対象者の作成したプログラムにおいてエラーを検知した場合、対象者識別子に関連付けて、発生したエラーを前記エラー情報記憶手段に記録するとともに、このエラー種類を特定する手段、同じ種類のエラーの発生回数を算出する手段、同じ種類のエラーの発生回数が前記基準情報記憶手段に記憶された基準回数を超えている場合には、このエラー種類に対応した支援情報を支援情報記憶手段から抽出して出力する手段として機能させることを要旨とする。
【００１７】
（作用）
請求項１、７、８に記載の発明によれば、制御手段が、育成対象者の作成したプログラムにおいてエラーを検知した場合、対象者識別子に関連付けて、発生したエラーを前記エラー情報記憶手段に記録するとともに、このエラー種類を特定する。次に、同じ種類のエラーの発生回数を算出する。そして、同じ種類のエラーの発生回数が前記基準情報記憶手段に記憶された基準回数を超えている場合には、このエラー種類に対応した支援情報を支援情報記憶手段から抽出して出力する。育成対象者の検討状況に応じて、エラーの発生状況が異なってくる。この発生状況に応じて、検討状況に対応した支援を行なうことができる。
【００１８】
請求項２に記載の発明によれば、制御手段が、支援情報を抽出できない場合には、エラー情報を指導者端末に送信する。これにより、支援情報記憶手段に記録された支援情報を提供できない場合には、指導者に対して、育成対象者への支援を促すことができる。
【００１９】
請求項３に記載の発明によれば、制御手段が、育成対象者の性格識別子を取得して、この性格識別子に関連付けられた支援情報を出力する。これにより、育成対象者の性格に応じた支援を行なうことができる。
【００２０】
請求項４に記載の発明によれば、制御手段が、育成対象者の作成したプログラムのコーディング量を取得する。そして、コーディング量が、育成対象者の性格識別子に対応する進捗基準量に達していない場合には、アラームを出力する。これにより、育成対象者の性格に応じた進捗状況を考慮して、指導を行なうことができる。
【００２１】
請求項５に記載の発明によれば、制御手段が、育成対象者の作成したプログラムに含まれるメソッド数を算出する。そして、メソッド数が、育成対象者の性格識別子に対応するメソッド数許容範囲を超えている場合には、アラームを出力する。これにより、育成対象者の性格に応じたメソッド数の許容範囲を考慮して、指導を行なうことができる。
【００２２】
請求項６に記載の発明によれば、制御手段が、一つのメソッドの中に含まれる特定命令の数を算出する。そして、命令数が、育成対象者の性格識別子に対応する命令数許容範囲を超えている場合には、アラームを出力する。これにより、育成対象者の性格に応じた命令数の許容範囲を考慮して、指導を行なうことができる。
【発明の効果】
【００２３】
本発明によれば、プログラム開発者の育成を効率的に支援するための開発者育成支援システム、開発者育成支援方法及び開発者育成支援プログラムを提供することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施形態のシステム概略図。
【図２】本発明の各データ記憶部に記録されたデータの説明図であって、（ａ）は課題情報記憶部、（ｂ）は対象者情報記憶部、（ｃ）は基準情報記憶部、（ｄ）は評価用辞書記憶部に記録されたデータの説明図。
【図３】本発明の各データ記憶部に記録されたデータの説明図であって、（ａ）は支援情報記憶部、（ｂ）は作成履歴記憶部、（ｃ）はエラー履歴記憶部に記録されたデータの説明図。
【図４】本発明における開発者育成支援の手順の説明図。
【図５】本発明における開発者育成支援の手順の説明図。
【図６】本発明における開発者育成支援の手順の説明図。
【図７】本発明における開発者育成支援の手順の説明図。
【図８】本発明における開発者育成支援の手順の説明図。
【図９】本発明における開発者育成支援の手順の説明図。
【図１０】本発明における開発者育成支援の手順の説明図。
【発明を実施するための形態】
【００２５】
以下、本発明を具体化した一実施形態を、図１〜図１０を用いて説明する。本実施形態では、システム開発においてプログラムを作成する開発者の育成を支援する場合を想定する。本実施形態では、図１に示すように、クライアント端末１０、開発者育成サーバ２０、統合開発環境サーバ３０を用いる。本実施形態では、育成対象者がクライアント端末１０においてプログラムを作成するとともに、このプログラムを統合開発環境サーバ３０においてコンパイルする。そして、開発者育成サーバ２０が、育成対象者に対する育成を支援する。
【００２６】
クライアント端末１０は、育成対象者や指導者が使用するコンピュータ端末（育成対象者端末、指導者端末）である。育成対象者は、このクライアント端末１０を用いて、指導者から与えられた課題についてのプログラムを作成する。また、指導者は、クライアント端末１０を用いて、育成対象者の進捗状況を確認したり、育成対象者に対してアドバイスを行なったりする。クライアント端末１０は、ネットワークを介してデータを送信する機能や、受信したデータを表示する機能等を有する。このため、クライアント端末１０は、図示しない制御部、キーボード、マウス等の入力手段、ディスプレイ等の出力手段、通信手段等を備えている。
【００２７】
統合開発環境サーバ３０は、公知のコンパイラ、テキストエディタ、デバッガの各機能を備えている。
開発者育成サーバ２０は、制御部２１、課題情報記憶部２２、対象者情報記憶部２３、基準情報記憶部２４、評価用辞書記憶部２５、支援情報記憶部２６、作成履歴記憶部２７、エラー履歴記憶部２８を備えている。
【００２８】
この制御部２１は、図示しないＣＰＵ等の制御手段、ＲＡＭ及びＲＯＭ等のメモリを有し、開発者育成支援を実行する。具体的には、後述する各処理（データ取得段階、進捗評価段階、評価管理段階、エラー評価段階、作法評価段階、機能評価段階、テスト評価段階等の各処理）を実行する。このための開発者育成支援プログラムを実行することにより、開発者育成サーバ２０の制御部２１は、図１に示すように、データ取得手段２１１、進捗評価手段２１２、評価管理手段２１３、エラー評価手段２１４、作法評価手段２１５、機能評価手段２１６、テスト評価手段２１７として機能する。
【００２９】
データ取得手段２１１は、クライアント端末１０において作成されたソースコードや、統合開発環境サーバ３０においてコンパイルされたオブジェクトコード、テストに用いるテストデータの取得処理を実行する。ソースコードについては、クライアント端末１０において、コーディングされたところまでのコードを、統合開発環境サーバ３０から定期的に取得して、作成履歴記憶部２７に記録する。オブジェクトコードについては、統合開発環境サーバ３０においてコンパイルされたときに記録する。テストデータは複数の項目値から構成されている。そして、クライアント端末１０において作成されたところまでのテストデータを、統合開発環境サーバ３０から定期的に取得して、作成履歴記憶部２７に記録する。
【００３０】
進捗評価手段２１２は、育成対象者における課題の進捗状況を評価する処理を実行する。
評価管理手段２１３は、育成対象者が作成したプログラム（ソースコード）についての評価を管理する処理を実行する。
【００３１】
エラー評価手段２１４は、育成対象者が作成したソースコードのコンパイル時に発生したエラーを評価する処理を実行する。
作法評価手段２１５は、育成対象者が作成したソースコードにおけるプログラミング作法（ソースコード作成時の規則やガイドライン）の遵守状況についての評価処理を実行する。
【００３２】
機能評価手段２１６は、育成対象者が作成したソースコードに含まれる機能ブロックについての評価処理を実行する。
テスト評価手段２１７は、育成対象者が作成したプログラムにおけるテスト状況を評価する処理を実行する。
【００３３】
課題情報記憶部２２には、図２（ａ）に示すように、育成対象者に提供される課題を管理するための課題管理レコード２２０が記憶されている。この課題管理レコード２２０は、育成対象者に提供される課題が登録された場合に記録される。課題管理レコード２２０は、課題識別子、内容、作成進捗確認時期、テスト進捗確認時期、テストケース数許容範囲、カバレージ基準値に関するデータを含んで構成される。
【００３４】
課題識別子データ領域には、各課題を特定するための識別子に関するデータが記録されている。
内容データ領域には、この課題の内容に関するデータが記録されている。
【００３５】
作成進捗確認時期データ領域には、この課題について、プログラム作成の進捗状況を確認するタイミングに関するデータが記録されている。本実施形態では、プログラム作成の
進捗状況に応じた所要時間が記録されている。
【００３６】
テスト進捗確認時期データ領域には、この課題について、プログラムテストの進捗状況を確認するタイミングに関するデータが記録されている。本実施形態では、プログラムテストの進捗状況に応じた所要時間が記録されている。
【００３７】
テストケース数許容範囲データ領域には、この課題についてのプログラムをテストするために必要なテストケースの許容範囲（最低数〜上限数）に関するデータが記録されている。
【００３８】
カバレージ基準値データ領域には、この課題についてのプログラムをテストするために必要なテストケースを評価するための指標に関するデータが記録されている。本実施形態では、指標として、テストケースによりテストできる網羅率（カバレージ）の目標値が記録されている。
【００３９】
対象者情報記憶部２３は対象者情報記憶手段として機能するとともに、図２（ｂ）に示すように、育成対象者を管理するための対象者管理レコード２３０が記憶されている。この対象者管理レコード２３０は、育成対象者が登録された場合に記録される。対象者管理レコード２３０は、育成対象者識別子、性格識別子、進捗状況に関するデータを含んで構成される。
【００４０】
育成対象者識別子データ領域には、各育成対象者を特定するための識別子に関するデータが記録されている。
性格識別子データ領域には、この育成対象者の性格を特定するための識別子に関するデータが記録されている。本実施形態では、この性格識別子として、着実性評価値及び積極性評価値が記録されている。着実性評価値においては、作成速度が遅い場合であっても、エラーの少ないプログラムを作成する性格を評価する。積極性評価値においては、エラーが多い場合であっても、色々な試行錯誤を行ないながらプログラムを作成する性格を評価する。
進捗状況データ領域には、この育成対象者に与えられている課題を特定するための識別子（課題識別子）に関するデータが記録されている。
【００４１】
基準情報記憶部２４は基準情報記憶手段として機能するとともに、図２（ｃ）に示すように、性格に対応した基準値を管理するための基準値管理レコード２４０が記憶されている。この基準値管理レコード２４０は、登録された場合に記録される。基準値管理レコード２４０は、性格識別子、基準値に関するデータを含んで構成される。
【００４２】
性格識別子データ領域には、育成対象者の性格を特定するための識別子（着実性評価値や積極性評価値）に関するデータが記録されている。
基準値データ領域には、この性格の育成対象者の評価に用いる基準値に関するデータが記録されている。本実施形態では、基準値として、進捗基準値、メソッド数基準値、命令文数基準値、メソッド行数基準値、異種類許容回数、同種類許容回数が記録されている。
【００４３】
進捗基準値は、プログラムにおけるコーディング量についての進捗基準値を規定している。
メソッド数基準値は、プログラムに含まれるメソッド数についての上限値を規定している。
【００４４】
命令文数基準値は、プログラムに含まれる特定命令の数についての上限値を規定している。
メソッド行数基準値は、プログラムに含まれるメソッドの行数の上限値を規定している。
異種類許容回数、同種類許容回数は、それぞれ、異種類又は同種類のエラーについて、支援情報の出力要否を判定するための基準回数を規定している。
【００４５】
評価用辞書記憶部２５には、図２（ｄ）に示すように、育成対象者が作成したソースコードを評価するための名称管理レコード２５１や特定命令管理レコード２５２が記憶されている。この名称管理レコード２５１や特定命令管理レコード２５２は、メソッド名や変数名として用いることが可能な名称が登録された場合に記録される。名称管理レコード２５１は、見出語、関連語に関するデータを含んで構成される。
【００４６】
見出語データ領域には、メソッド名や変数名として用いることが可能な名称に関するデータが記録されている。
関連語データ領域には、この見出語に関連する他の名称に関するデータが記録されている。本実施形態では、組み合わせて使用できない使用不可単語（例えば、競合する類義語や、類義語と対になる対語）を登録しておく。更に、見出語と対にして記載すべき必須単語を登録しておく。
特定命令管理レコード２５２は、評価対象の命令を特定するためのコマンドに関するデータを含んで構成される。
【００４７】
支援情報記憶部２６は支援情報記憶手段として機能するとともに、図３（ａ）に示すように、エラーが発生した場合に育成対象者に対して提供される支援情報を管理するための支援情報管理レコード２６０が記憶されている。この支援情報管理レコード２６０は、支援情報が登録された場合に記録される。支援情報管理レコード２６０は、エラー識別子、支援内容に関するデータを含んで構成される。
【００４８】
エラー識別子データ領域には、ソースコードのコンパイル時に発生したエラーを特定するための識別子に関するデータが記録されている。
支援内容データ領域には、このエラーを解消するために、育成対象者に提供される助言に関するデータが記録されている。
【００４９】
作成履歴記憶部２７には、図３（ｂ）に示すように、育成対象者が作成したプログラム（ソースコードやオブジェクトコード）を管理するための作成履歴管理レコード２７０が記憶される。この作成履歴管理レコード２７０は、ソースコードやオブジェクトコードが生成された場合に記録される。作成履歴管理レコード２７０は、育成対象者識別子、課題識別子、作成開始日、作成終了日、テスト開始日、評価終了日に関するデータを含んで構成される。更に、作成履歴管理レコード２７０には、育成対象者識別子、課題識別子に関連付けて、成果登録レコード２７１が記録されている。
【００５０】
育成対象者識別子データ領域には、各育成対象者を特定するための識別子に関するデータが記録される。
課題識別子データ領域には、各育成対象者が取り組んでいる課題を特定するための識別子に関するデータが記録される。
【００５１】
作成開始日データ領域、作成終了日データ領域には、この育成対象者が、この課題のプログラムの作成を開始した年月日や作成を終了した年月日に関するデータが記録される。この作成開始日には、クライアント端末１０に課題を提供した日付を用いる。作成終了日には、クライアント端末１０からプログラム完成報告を受信した日付を用いる。
【００５２】
テスト開始日データ領域、評価終了日データ領域には、この育成対象者が、この課題の
プログラムのテストを開始した年月日やテストを終了した年月日に関するデータが記録される。このテスト開始日には、クライアント端末１０からテスト開始報告を受信した日付を用いる。評価終了日には、後述するテスト評価処理を完了した日付を用いる。
【００５３】
成果登録レコード２７１は、登録日、作成物に関するデータを含んで構成される。この成果登録レコード２７１は、課題に対するプログラムについての進捗があった場合に記録される。
【００５４】
登録日データ領域には、課題についての成果物を登録した年月日に関するデータが記録される。
作成物データ領域には、生成されたソースコードやオブジェクトコード、テストデータが記録される。
【００５５】
エラー履歴記憶部２８はエラー情報記憶手段として機能するとともに、図３（ｃ）に示すように、育成対象者が作成したプログラムにおいて発生したエラーを管理するためのエラー履歴管理レコード２８０が記憶されている。このエラー履歴管理レコード２８０は、育成対象者が作成したプログラムにおいてエラーを検知した場合に記録される。エラー履歴管理レコード２８０は、育成対象者識別子、課題識別子、発生日、エラー内容、再コンパイル目的に関するデータを含んで構成される。
【００５６】
育成対象者識別子データ領域には、各育成対象者を特定するための識別子に関するデータが記録される。
課題識別子データ領域には、エラーが発生した課題を特定するための識別子に関するデータが記録される。
【００５７】
発生日データ領域には、エラーが発生した年月日に関するデータが記録されている。
エラー内容データ領域には、発生したエラーのエラー種類を特定するための識別子（エラー識別子）に関するデータが記録されている。
再コンパイル目的データ領域には、育成対象者が入力した再コンパイルの目的に関するデータが記録される。
【００５８】
上記のように構成されたシステムを用いて、開発者の育成を支援するための処理手順を、図４〜図１０に従って説明する。ここでは、進捗評価処理（図４）、コンパイル時処理（図５）、プログラミング作法の評価処理（図６）、機能ブロック評価処理（図７、図８）、コンパイルエラー評価処理（図９）、テスト評価処理（図１０）の順番に説明する。
【００５９】
（進捗評価処理）
まず、進捗評価処理を、図４に従って説明する。この進捗評価処理においては、対象者情報記憶部２３に登録された各育成対象者を特定し、以下の処理を育成対象者毎に繰り返す。
【００６０】
開発者育成サーバ２０の制御部２１は、作業開始からの経過時間の取得処理を実行する（ステップＳ１−１）。具体的には、制御部２１の進捗評価手段２１２は、作成履歴記憶部２７において、作成履歴管理レコード２７０の中で作成開始日が記録されるとともに、作成終了日が記録されていないレコードを取得する。そして、進捗評価手段２１２は、作成開始日からの経過時間を算出する。
【００６１】
次に、開発者育成サーバ２０の制御部２１は、作成進捗確認時期が到来したかどうかについての判定処理を実行する（ステップＳ１−２）。具体的には、制御部２１の進捗評価手段２１２は、課題情報記憶部２２から、この課題についての作成進捗確認時期を取得す
る。そして、進捗評価手段２１２は、経過時間と作成進捗確認時期とを比較する。
【００６２】
経過時間が作成進捗確認時期に達していない場合（ステップＳ１−２において「ＮＯ」の場合）には、開発者育成サーバ２０の制御部２１は、この育成対象者についての進捗評価処理を終了する。
【００６３】
一方、経過時間が作成進捗確認時期に達している場合（ステップＳ１−２において「ＹＥＳ」の場合）には、開発者育成サーバ２０の制御部２１は、進捗状況の取得処理を実行する（ステップＳ１−３）。具体的には、制御部２１のデータ取得手段２１１は、作成履歴記憶部２７の成果登録レコード２７１に記録された直近日のソースコードを取得する。そして、このソースコードに記録されたコーディング量（行数）を取得する。
【００６４】
次に、開発者育成サーバ２０の制御部２１は、育成対象者の性格情報の取得処理を実行する（ステップＳ１−４）。具体的には、制御部２１の評価管理手段２１３は、対象者情報記憶部２３の対象者管理レコード２３０から、この育成対象者の性格識別子（着実性評価値）を取得する。
【００６５】
次に、開発者育成サーバ２０の制御部２１は、性格に応じた基準値の特定処理を実行する（ステップＳ１−５）。具体的には、制御部２１の評価管理手段２１３は、基準情報記憶部２４から、取得した性格識別子（着実性評価値）に対応する進捗基準値を取得する。
【００６６】
次に、開発者育成サーバ２０の制御部２１は、進捗状況が基準値より低いかどうかについての判定処理を実行する（ステップＳ１−６）。具体的には、制御部２１の進捗評価手段２１２は、ステップＳ１−３において取得したコーディング量とステップＳ１−５において取得した基準値とを比較する。
【００６７】
進捗状況が基準値以上の場合（ステップＳ１−６において「ＮＯ」の場合）、開発者育成サーバ２０の制御部２１は、進捗評価処理を終了する。
一方、進捗状況が基準値に達していない場合（ステップＳ１−６において「ＹＥＳ」の場合）、開発者育成サーバ２０の制御部２１は、アラーム出力処理を実行する（ステップＳ１−７）。具体的には、制御部２１の進捗評価手段２１２は、この対象者のクライアント端末１０に対して、進捗の遅れを示すメッセージを含めたアラームを出力する。
以上の処理を育成対象者毎に繰り返す。
【００６８】
（コンパイル時処理）
次に、コンパイル時処理を、図５に従って説明する。
【００６９】
クライアント端末１０は、コンパイル指示処理を実行する（ステップＳ２−１）。具体的には、ソースコードを完成した場合、育成対象者はクライアント端末１０においてコンパイル指示を入力する。この場合、クライアント端末１０は、開発者育成サーバ２０に対して、コンパイル指示を送信する。このコンパイル指示には、クライアント端末１０において作成したソースコードを含める。
【００７０】
次に、クライアント端末１０は、ソースコードの登録処理を実行する（ステップＳ２−２）。具体的には、制御部２１のデータ取得手段２１１は、クライアント端末１０から取得したソースコードを含めた成果登録レコード２７１を生成し、作成履歴記憶部２７に記録する。この場合、データ取得手段２１１は、登録日として現在日付を記録する。
【００７１】
次に、開発者育成サーバ２０の制御部２１は、ソースコードの評価処理を実行する（ステップＳ２−３）。ここでは、制御部２１は、後述するように、作法評価手段２１５にお
いてプログラミング作法の評価処理（ステップＳ２−３ａ）、機能評価手段２１６において機能ブロック評価処理（ステップＳ２−３ｂ）を実行する。そして、制御部２１の評価管理手段２１３は、作法評価手段２１５、機能評価手段２１６から評価結果を取得する。
【００７２】
次に、開発者育成サーバ２０の制御部２１は、評価結果に問題がないかどうかについての判定処理を実行する（ステップＳ２−４）。具体的には、制御部２１の評価管理手段２１３は、各評価手段（２１５，２１６）から取得した評価結果に基づいて判定する。
【００７３】
各評価手段（２１５，２１６）から取得した評価結果において問題があった場合（ステップＳ２−４において「ＮＯ」の場合）、開発者育成サーバ２０の制御部２１は、ソースコードの修正指示処理を実行する（ステップＳ２−５）。具体的には、制御部２１の評価管理手段２１３は、クライアント端末１０に対して、修正指示を送信する。この修正指示には、各評価手段（２１５，２１６）から取得した評価結果を含める。この場合、育成対象者は、この指示に基づいてソースコードの修正を行なう。
【００７４】
各評価手段（２１５，２１６）から取得した評価結果に問題がなかった場合（ステップＳ２−４において「ＹＥＳ」の場合）、開発者育成サーバ２０の制御部２１は、ソースコードの修正指示処理（ステップＳ２−５）をスキップする。
【００７５】
次に、開発者育成サーバ２０の制御部２１は、コンパイル処理を実行する（ステップＳ２−６）。具体的には、制御部２１のデータ取得手段２１１は、統合開発環境サーバ３０に対して、コンパイル要求を送信する。このコンパイル要求には、クライアント端末１０から取得したソースコードを含める。
【００７６】
統合開発環境サーバ３０は、クライアント端末１０において作成されたソースコードのコンパイルを実行する。そして、統合開発環境サーバ３０は、コンパイル成果物を開発者育成サーバ２０に返信する。このコンパイル成果物には、生成したオブジェクトコード、コンパイル結果を含める。コンパイル時にエラーが発生した場合には、エラー内容をコンパイル結果に含める。
【００７７】
次に、開発者育成サーバ２０の制御部２１は、オブジェクトコードの登録処理を実行する（ステップＳ２−７）。具体的には、制御部２１のデータ取得手段２１１は、統合開発環境サーバ３０から取得したオブジェクトコードを、作成履歴記憶部２７に登録する。
【００７８】
次に、開発者育成サーバ２０の制御部２１は、コンパイルエラーの有無についての判定処理を実行する（ステップＳ２−８）。具体的には、制御部２１の評価管理手段２１３は、統合開発環境サーバ３０から取得したコンパイル結果に基づいて、エラーの有無を判定する。
【００７９】
コンパイルエラーが発生している場合（ステップＳ２−８において「ＹＥＳ」の場合）、開発者育成サーバ２０の制御部２１は、コンパイルエラー評価処理を実行する（ステップＳ２−９）。具体的には、制御部２１のエラー評価手段２１４が、後述するコンパイルエラー評価処理を実行する。
一方、コンパイルエラーがない場合（ステップＳ２−８において「ＮＯ」の場合）、開発者育成サーバ２０の制御部２１は、コンパイル時処理を終了する。
【００８０】
（プログラミング作法の評価処理）
次に、プログラミング作法の評価処理（ステップＳ２−３ａ）を、図６に従って説明する。
【００８１】
ここでは、開発者育成サーバ２０の制御部２１は、ソースコードから変数名、メソッド名の抽出処理を実行する（ステップＳ３−１）。具体的には、制御部２１の作法評価手段２１５は、作成履歴記憶部２７に記録されたソースコードのフォーマットに応じて変数やメソッドを抽出する。そして、変数やメソッドに付与されている名称を特定する。
【００８２】
次に、抽出した名称毎に、以下の処理を繰り返す。
開発者育成サーバ２０の制御部２１は、名称に対応するコメント文の抽出処理を実行する（ステップＳ３−２）。具体的には、制御部２１の作法評価手段２１５は、ソースコードから、変数やメソッドについてのコメント文を抽出する。
【００８３】
次に、開発者育成サーバ２０の制御部２１は、抽出した名称について曖昧検索処理を実行する（ステップＳ３−３）。具体的には、制御部２１の作法評価手段２１５は、抽出した変数名やメソッド名を検索対象語として、評価用辞書記憶部２５において曖昧検索を行なう。この曖昧検索においては、検索対象語に対して、所定の割合以上の構成文字や文字配列が共通している見出語（共通見出語）を検索する。
【００８４】
次に、開発者育成サーバ２０の制御部２１は、名称の利用を許容できるかどうかについての判定処理を実行する（ステップＳ３−４）。具体的には、制御部２１の作法評価手段２１５は、曖昧検索における共通見出語の抽出の有無により判定する。
【００８５】
曖昧検索において共通見出語を抽出できないため、名称利用を許容できないと判定した場合（ステップＳ３−４において「ＮＯ」の場合）、開発者育成サーバ２０の制御部２１は、アラーム出力処理を実行する（ステップＳ３−５）。具体的には、制御部２１の作法評価手段２１５は、クライアント端末１０に対して、曖昧検索において候補を抽出できなかった名称を出力する。この場合、この名称について、ソースコードから取得したコメント文も併せて出力する。
【００８６】
一方、曖昧検索において共通見出語を抽出できたため、名称利用を許容できると判定した場合（ステップＳ３−４において「ＹＥＳ」の場合）、開発者育成サーバ２０の制御部２１は、アラーム出力処理（ステップＳ３−５）をスキップする。
【００８７】
次に、開発者育成サーバ２０の制御部２１は、名称の関連語の取得処理を実行する（ステップＳ３−６）。具体的には、制御部２１の作法評価手段２１５は、評価用辞書記憶部２５の名称管理レコード２５１を用いて、共通見出語に関連付けられた関連語を取得する。
【００８８】
次に、開発者育成サーバ２０の制御部２１は、問題がある関連語が存在するかどうかについての判定処理を実行する（ステップＳ３−７）。具体的には、制御部２１の作法評価手段２１５は、このソースコードから取得した名称の中に、名称管理レコード２５１に記録された関連語と所定の割合以上の構成文字や文字配列が共通している名称が含まれるかどうかを判定する。ここで、組み合わせて使用できない使用不可単語を抽出した場合や、見出語と対にして記載すべき必須単語を抽出できなかった場合は、問題があることになる。
【００８９】
問題がある関連語が存在する場合（ステップＳ３−７において「ＹＥＳ」の場合）、開発者育成サーバ２０の制御部２１は、アラーム出力処理を実行する（ステップＳ３−８）。具体的には、制御部２１の作法評価手段２１５は、関連語を抽出できなかった名称について、関連語及びコメント文をクライアント端末１０に出力する。
【００９０】
一方、問題がある関連語が存在しない場合（ステップＳ３−７において「ＮＯ」の場合
）、開発者育成サーバ２０の制御部２１は、アラーム出力処理（ステップＳ３−８）をスキップする。
【００９１】
次に、開発者育成サーバ２０の制御部２１は、各名称の相互比較処理を実行する（ステップＳ３−９）。具体的には、制御部２１の作法評価手段２１５は、ソースコードから取得した他の変数名やメソッド名を構成するアルファベットの配列の比較を行なう。
【００９２】
そして、開発者育成サーバ２０の制御部２１は、紛らわしい名称があるかどうかについての判定処理を実行する（ステップＳ３−１０）。具体的には、制御部２１の作法評価手段２１５は、所定の割合以上の構成文字が共通しており、途中で異なるアルファベットが含まれる他の名称の有無により判定する。
【００９３】
紛らわしい名称を検出した場合（ステップＳ３−１０において「ＹＥＳ」の場合）、開発者育成サーバ２０の制御部２１は、アラーム出力処理を実行する（ステップＳ３−１１）。具体的には、制御部２１の作法評価手段２１５は、クライアント端末１０に対して、類似する名称を出力する。この場合、各名称について、ソースコードから取得したコメント文も併せて出力する。一方、紛らわしい名称を検出しなかった場合（ステップＳ３−１０において「ＮＯ」の場合）、開発者育成サーバ２０の制御部２１は、アラーム出力処理（ステップＳ３−１１）をスキップする。
以上の処理を、名称毎に繰り返す。
【００９４】
（機能ブロック評価処理）
次に、機能ブロック評価処理（ステップＳ２−３ｂ）を、図７に従って説明する。
【００９５】
ここでは、開発者育成サーバ２０の制御部２１は、字下げスタイルの構文の抽出処理を実行する（ステップＳ４−１）。具体的には、制御部２１の機能評価手段２１６は、ソースコードにおいて、字下げ行を検索する。
【００９６】
次に、開発者育成サーバ２０の制御部２１は、自動生成を利用しているかどうかについての判定処理を実行する（ステップＳ４−２）。具体的には、制御部２１の機能評価手段２１６は、クライアント端末１０から取得したソースコードに含まれるコードを用いて、字下げの自動生成を行なう。そして、字下げの自動生成においても、クライアント端末１０から取得したソースコードに変化がない場合には自動生成を利用していると判定する。
【００９７】
クライアント端末１０において自動生成を利用していないと判定した場合（ステップＳ４−２において「ＮＯ」の場合）、開発者育成サーバ２０の制御部２１は、アラーム出力処理を実行する（ステップＳ４−３）。具体的には、制御部２１の機能評価手段２１６は、クライアント端末１０において、字下げの自動生成を推奨するメッセージを出力する。一方、自動生成を利用していると判定した場合（ステップＳ４−２において「ＹＥＳ」の場合）、アラーム出力処理（ステップＳ４−３）をスキップする。
【００９８】
次に、開発者育成サーバ２０の制御部２１は、命令文の行跨ぎの検索処理を実行する（ステップＳ４−４）。具体的には、制御部２１の機能評価手段２１６は、クライアント端末１０から取得したソースコードにおいて、一連の命令文が記述された行の行数を算出する。
【００９９】
次に、開発者育成サーバ２０の制御部２１は、命令の行跨ぎがあるかどうかについての判定処理を実行する（ステップＳ４−５）。具体的には、制御部２１の機能評価手段２１６は、一連の命令文が複数行にわたっている場合には、行跨ぎと判定する。
【０１００】
命令文の行跨ぎがある場合（ステップＳ４−５において「ＹＥＳ」の場合）、開発者育成サーバ２０の制御部２１は、アラーム出力処理を実行する（ステップＳ４−６）。具体的には、制御部２１の機能評価手段２１６は、クライアント端末１０において、行跨ぎがあることを示すメッセージを出力する。一方、命令の行跨ぎがない場合（ステップＳ４−５において「ＮＯ」の場合）、アラーム出力処理（ステップＳ４−６）をスキップする。
【０１０１】
次に、開発者育成サーバ２０の制御部２１は、性格に対応した許容範囲の特定処理を実行する（ステップＳ４−７）。具体的には、制御部２１の機能評価手段２１６は、対象者情報記憶部２３に記録された対象者管理レコード２３０から性格識別子（着実性評価値）を取得する。次に、機能評価手段２１６は、基準情報記憶部２４から取得した性格識別子（着実性評価値）に対応するメソッド数基準値、命令文数基準値、メソッド行数基準値を取得する。
【０１０２】
次に、開発者育成サーバ２０の制御部２１は、メソッド数の算出処理を実行する（ステップＳ４−８）。具体的には、制御部２１の機能評価手段２１６は、クライアント端末１０から取得したソースコードに含まれるメソッドを検索する。そして、機能評価手段２１６は、検出したメソッドの数をカウントする。
【０１０３】
次に、開発者育成サーバ２０の制御部２１は、許容範囲外かどうかについての判定処理を実行する（ステップＳ４−９）。具体的には、制御部２１の機能評価手段２１６は、ソースコードから抽出したメソッド数と、性格識別子（着実性評価値）に対応して取得したメソッド数基準値とを比較する。
【０１０４】
メソッド数基準値を超えており、許容範囲外の場合（ステップＳ４−９において「ＹＥＳ」の場合）、開発者育成サーバ２０の制御部２１は、アラーム出力処理を実行する（ステップＳ４−１０）。具体的には、制御部２１の機能評価手段２１６は、クライアント端末１０において、メソッド数が許容範囲を超えていることを示すメッセージを出力する。一方、メソッド数がメソッド数基準値以下であり、許容範囲内の場合（ステップＳ４−９において「ＮＯ」の場合）、アラーム出力処理（ステップＳ４−１０）をスキップする。
【０１０５】
次に、抽出したメソッド毎に、図８に示す処理を繰り返す。
ここでは、開発者育成サーバ２０の制御部２１は、各メソッドに含まれる特定の命令の抽出処理を実行する（ステップＳ５−１）。具体的には、制御部２１の機能評価手段２１６は、評価用辞書記憶部２５に記録された特定命令管理レコード２５２から特定命令文を取得する。次に、機能評価手段２１６は、クライアント端末１０から取得したソースコードにおいて、この特定命令文を抽出する。そして、機能評価手段２１６は、検出した特定命令文の数をカウントする。
【０１０６】
次に、開発者育成サーバ２０の制御部２１は、許容範囲外かどうかについての判定処理を実行する（ステップＳ５−２）。具体的には、制御部２１の機能評価手段２１６は、ソースコードから抽出した特定命令文数と、性格識別子（着実性評価値）に対応して取得した命令文数基準値とを比較する。
【０１０７】
特定命令文数が命令文数基準値を超えており、許容範囲外の場合（ステップＳ５−２において「ＹＥＳ」の場合）、開発者育成サーバ２０の制御部２１は、アラーム出力処理を実行する（ステップＳ５−３）。具体的には、制御部２１の機能評価手段２１６は、クライアント端末１０において、特定命令文数が許容範囲を超えていることを示すメッセージを出力する。一方、特定命令文数が許容範囲内の場合（ステップＳ５−２において「ＮＯ」の場合）、アラーム出力処理（ステップＳ５−３）をスキップする。
【０１０８】
次に、開発者育成サーバ２０の制御部２１は、各メソッドの行数の算出処理を実行する（ステップＳ５−４）。具体的には、制御部２１の機能評価手段２１６は、クライアント端末１０から取得したソースコードに含まれる各メソッドのブロックを特定する。そして、機能評価手段２１６は、各ブロックの行数をカウントする。
【０１０９】
次に、開発者育成サーバ２０の制御部２１は、許容範囲外かどうかについての判定処理を実行する（ステップＳ５−５）。具体的には、制御部２１の機能評価手段２１６は、ソースコードから抽出したメソッド行数と、性格識別子（着実性評価値）に対応して取得したメソッド行数基準値とを比較する。
【０１１０】
メソッド行数が許容範囲を超えており、許容範囲外の場合（ステップＳ５−５において「ＹＥＳ」の場合）、開発者育成サーバ２０の制御部２１は、アラーム出力処理を実行する（ステップＳ５−６）。具体的には、制御部２１の機能評価手段２１６は、メソッド行数が許容範囲を超えていることを示すメッセージを出力する。一方、メソッド行数が許容範囲内の場合（ステップＳ５−５において「ＮＯ」の場合）、アラーム出力処理（ステップＳ５−６）をスキップする。
以上の処理を、メソッド毎に繰り返す。
【０１１１】
（コンパイルエラー評価処理）
次に、コンパイルエラー評価処理を、図９に従って説明する。
【０１１２】
ここでは、開発者育成サーバ２０の制御部２１は、エラー情報の登録処理を実行する（ステップＳ６−１）。具体的には、制御部２１のエラー評価手段２１４は、育成対象者識別子、課題識別子に関連付けて、発生日、エラー内容を含めたエラー履歴管理レコード２８０を生成し、エラー履歴記憶部２８に登録する。
【０１１３】
次に、開発者育成サーバ２０の制御部２１は、先行のエラー履歴の検索処理を実行する（ステップＳ６−２）。具体的には、制御部２１のエラー評価手段２１４は、エラー履歴記憶部２８において、今回のエラーと同じ育成対象者識別子、課題識別子に関連付けられた先行のエラー履歴管理レコード２８０を検索する。
【０１１４】
次に、開発者育成サーバ２０の制御部２１は、育成対象者の性格情報の取得処理を実行する（ステップＳ６−３）。具体的には、制御部２１のエラー評価手段２１４は、対象者情報記憶部２３の対象者管理レコード２３０から性格識別子（積極性評価値）を取得する。
【０１１５】
次に、開発者育成サーバ２０の制御部２１は、積極性が低いかどうかについての判定処理を実行する（ステップＳ６−４）。具体的には、制御部２１のエラー評価手段２１４は、取得した性格識別子（積極性評価値）と積極性基準値とを比較する。
【０１１６】
積極性評価値が積極性基準値より低い場合（ステップＳ６−４において「ＹＥＳ」の場合）、開発者育成サーバ２０の制御部２１は、再コンパイルの目的入力画面の表示処理を実行する（ステップＳ６−５）。具体的には、制御部２１のエラー評価手段２１４は、クライアント端末１０のディスプレイに目的入力画面を出力する。この場合、育成対象者は、この画面に再コンパイルの目的を入力する。そして、エラー評価手段２１４は、目的入力画面において入力された再コンパイル目的を取得して、エラー履歴管理レコード２８０に記録する。一方、積極性評価値が積極性基準値以上の場合（ステップＳ６−４において「ＮＯ」の場合）、開発者育成サーバ２０の制御部２１は、再コンパイルの目的入力画面の表示処理（ステップＳ６−５）をスキップする。
【０１１７】
次に、開発者育成サーバ２０の制御部２１は、同じ種類のエラー履歴があるかどうかについての判定処理を実行する（ステップＳ６−６）。具体的には、制御部２１のエラー評価手段２１４は、エラー履歴記憶部２８から取得した先行のエラー履歴管理レコード２８０において、今回のエラーと同じ内容が記録されたレコードを検索する。
【０１１８】
同じ種類のエラー履歴がない場合（ステップＳ６−６において「ＮＯ」の場合）、開発者育成サーバ２０の制御部２１は、性格に基いて異種類許容回数の特定処理を実行する（ステップＳ６−７）。具体的には、制御部２１のエラー評価手段２１４は、対象者管理レコード２３０に記録された性格識別子（積極性評価値）に対応する異種類許容回数を、基準情報記憶部２４から取得する。
【０１１９】
次に、開発者育成サーバ２０の制御部２１は、エラー回数が許容回数以上かどうかについての判定処理を実行する（ステップＳ６−８）。具体的には、制御部２１のエラー評価手段２１４は、同じ種類のエラー履歴管理レコード２８０のレコード数をカウントする。そして、エラー評価手段２１４は、レコード数と異種類許容回数とを比較する。
【０１２０】
エラー回数が許容回数未満の場合（ステップＳ６−８において「ＮＯ」の場合）、開発者育成サーバ２０の制御部２１は、コンパイルエラー評価処理を終了する。
一方、同じ種類のエラー履歴がある場合（ステップＳ６−６において「ＹＥＳ」の場合）、開発者育成サーバ２０の制御部２１は、性格に基いて同種類許容回数の特定処理を実行する（ステップＳ６−９）。具体的には、制御部２１のエラー評価手段２１４は、対象者管理レコード２３０に記録された性格識別子（積極性評価値）に対応する同種類許容回数を、基準情報記憶部２４から取得する。
【０１２１】
次に、開発者育成サーバ２０の制御部２１は、エラー回数が許容回数以上かどうかについての判定処理を実行する（ステップＳ６−１０）。具体的には、制御部２１のエラー評価手段２１４は、レコード数と同種類許容回数とを比較する。
【０１２２】
エラー回数が許容回数未満の場合（ステップＳ６−１０において「ＮＯ」の場合）、開発者育成サーバ２０の制御部２１は、コンパイルエラー評価処理を終了する。
一方、エラー回数が許容回数以上の場合（ステップＳ６−８又はＳ６−１０において「ＹＥＳ」の場合）、開発者育成サーバ２０の制御部２１は、支援パターンの検索処理を実行する（ステップＳ６−１１）。具体的には、制御部２１のエラー評価手段２１４は、支援情報記憶部２６において、エラー識別子に対応する支援内容を検索する。
【０１２３】
次に、開発者育成サーバ２０の制御部２１は、該当パターンがあるかどうかについての判定処理を実行する（ステップＳ６−１２）。具体的には、制御部２１のエラー評価手段２１４は、今回のエラー識別子に対応する支援情報管理レコード２６０を抽出できた場合には、該当パターンがあることになる。
【０１２４】
該当パターンが登録されている場合（ステップＳ６−１２において「ＹＥＳ」の場合）、開発者育成サーバ２０の制御部２１は、支援情報の出力処理を実行する（ステップＳ６−１３）。具体的には、制御部２１のエラー評価手段２１４は、支援情報記憶部２６から取得した支援情報を、育成対象者のクライアント端末１０に対して出力する。
【０１２５】
該当パターンが登録されていない場合（ステップＳ６−１２において「ＮＯ」の場合）、開発者育成サーバ２０の制御部２１は、指導者に対して修正履歴の送信処理を実行する（ステップＳ６−１４）。具体的には、制御部２１のエラー評価手段２１４は、エラーが発生したソースコード及びオブジェクトコードを作成履歴記憶部２７から取得する。そして、エラー評価手段２１４は、指導者のクライアント端末１０に対して、発生したエラー
識別子、作成物（ソースコード及びオブジェクトコード）を送信する。この場合、指導者は、エラー内容や作成物を確認して、育成対象者に対して指導を行なう。
【０１２６】
（テスト評価処理）
次に、テスト評価処理を、図１０に従って説明する。このテスト評価処理においては、対象者情報記憶部２３に登録された各育成対象者を特定し、以下の処理を育成対象者毎に繰り返す。
【０１２７】
開発者育成サーバ２０の制御部２１は、テスト開始からの経過時間の取得処理を実行する（ステップＳ７−１）。具体的には、制御部２１のテスト評価手段２１７は、作成履歴記憶部２７において、作成履歴管理レコード２７０の中でテスト開始日が記録されるとともに、評価終了日が記録されていないレコードを取得する。そして、進捗評価手段２１２は、テスト開始日からの経過時間を算出する。
【０１２８】
次に、開発者育成サーバ２０の制御部２１は、テスト進捗確認時期が到来したかどうかについての判定処理を実行する（ステップＳ７−２）。具体的には、制御部２１のテスト評価手段２１７は、課題情報記憶部２２から、この課題についてのテスト進捗確認時期を取得する。そして、進捗評価手段２１２は、経過時間とテスト進捗確認時期とを比較する。
【０１２９】
経過時間がテスト進捗確認時期に達していない場合（ステップＳ７−２において「ＮＯ」の場合）には、開発者育成サーバ２０の制御部２１は、この育成対象者についてのテスト評価処理を終了する。
【０１３０】
一方、経過時間がテスト進捗確認時期に達している場合（ステップＳ７−２において「ＹＥＳ」の場合）には、開発者育成サーバ２０の制御部２１は、テストケース数の算出処理を実行する（ステップＳ７−３）。具体的には、制御部２１のテスト評価手段２１７は、作成履歴記憶部２７の成果登録レコード２７１に記録されたテストデータを取得する。そして、テスト評価手段２１７は、テストデータに対応したテストケース数をカウントする。
【０１３１】
次に、開発者育成サーバ２０の制御部２１は、テストケース数許容範囲内かどうかについての判定処理を実行する（ステップＳ７−４）。具体的には、制御部２１のテスト評価手段２１７は、課題情報記憶部２２から、この課題についてのテストケース数許容範囲を取得する。そして、進捗評価手段２１２は、テストケースの数とテストケース数許容範囲とを比較する。
【０１３２】
テストケース数がテストケース数許容範囲外となっている場合（ステップＳ７−４において「ＮＯ」の場合）、開発者育成サーバ２０の制御部２１は、アラーム出力処理を実行する（ステップＳ７−５）。具体的には、制御部２１のテスト評価手段２１７は、育成対象者のクライアント端末１０に対して、テストケース数が許容範囲外になっていることを示すメッセージを含めたアラームを出力する。
【０１３３】
一方、テストケース数が許容範囲内の場合（ステップＳ７−４において「ＹＥＳ」の場合）、開発者育成サーバ２０の制御部２１は、アラーム出力処理（ステップＳ７−５）をスキップする。
【０１３４】
次に、開発者育成サーバ２０の制御部２１は、テストケースのカバレージの算出処理を実行する（ステップＳ７−６）。具体的には、制御部２１のテスト評価手段２１７は、作成履歴記憶部２７の成果登録レコード２７１に記録されたテストデータを取得する。そし
て、テスト評価手段２１７は、公知の方法によりカバレージを算出する。
【０１３５】
次に、開発者育成サーバ２０の制御部２１は、算出したカバレージがカバレージ基準値以下かどうかについての判定処理を実行する（ステップＳ７−７）。具体的には、制御部２１のテスト評価手段２１７は、課題情報記憶部２２から、この課題についてのカバレージ基準値を取得する。そして、テスト評価手段２１７は、算出したカバレージとカバレージ基準値とを比較する。
【０１３６】
算出したカバレージがカバレージ基準値以下の場合（ステップＳ７−７において「ＹＥＳ」の場合）、開発者育成サーバ２０の制御部２１は、アラーム出力処理を実行する（ステップＳ７−８）。具体的には、制御部２１のテスト評価手段２１７は、育成対象者のクライアント端末１０に対して、多様なテストケースが想定されていないことを示すメッセージを含めたアラームを出力する。
【０１３７】
一方、カバレージがカバレージ基準値を超えている場合（ステップＳ７−７において「ＹＥＳ」の場合）、開発者育成サーバ２０の制御部２１は、評価終了日の記録処理を実行する（ステップＳ７−９）。具体的には、制御部２１のテスト評価手段２１７は、作成履歴記憶部２７において、この育成対象者、課題についての作成履歴管理レコード２７０に評価終了日を記録する。
【０１３８】
以上の処理を育成対象者毎に繰り返す。
本実施形態によれば、以下のような効果を得ることができる。
（１）本実施形態においては、経過時間が作成進捗確認時期に達している場合（ステップＳ１−２において「ＹＥＳ」の場合）には、開発者育成サーバ２０の制御部２１は、進捗状況の取得処理を実行する（ステップＳ１−３）。次に、開発者育成サーバ２０の制御部２１は、育成対象者の性格情報の取得処理（ステップＳ１−４）、性格に応じた基準値の特定処理（ステップＳ１−５）を実行する。そして、進捗状況が基準値に達していない場合（ステップＳ１−６において「ＹＥＳ」の場合）、開発者育成サーバ２０の制御部２１は、アラーム出力処理を実行する（ステップＳ１−７）。育成対象者の性格により、プログラムの作成方法は異なる。例えば、作成速度が遅くても、着実にプログラムを作成する人もいれば、作成速度が速くてもミスが多い人もいる。従って、育成対象者の性格に応じて、進捗状況を評価することにより、的確な指導を行なうことができる。
【０１３９】
（２）本実施形態においては、開発者育成サーバ２０の制御部２１は、作法評価手段２１５においてプログラミング作法の評価処理を実行する（ステップＳ２−３ａ）。ここでは、開発者育成サーバ２０の制御部２１は、ソースコードから変数名、メソッド名の抽出処理（ステップＳ３−１）、抽出した名称について曖昧検索処理（ステップＳ３−３）を実行する。曖昧検索において共通見出語を抽出できないため、名称利用を許容できないと判定した場合（ステップＳ３−４において「ＮＯ」の場合）、開発者育成サーバ２０の制御部２１は、アラーム出力処理を実行する（ステップＳ３−５）。内容を特定できない名称を用いると、後からプログラム内容を理解し難くなる。理解しやすい名称を辞書に登録しておくことにより、適切な名称を用いてコーディングを行なうことができる。これにより、後から内容を理解しやすくなるとともに、コーディング間違いを抑制できるプログラムの作成を指導することができる。
【０１４０】
更に、開発者育成サーバ２０の制御部２１は、名称の関連語の取得処理を実行する（ステップＳ３−６）。問題がある関連語が存在する場合（ステップＳ３−７において「ＹＥＳ」の場合）、開発者育成サーバ２０の制御部２１は、アラーム出力処理を実行する（ステップＳ３−８）。これにより、競合する異義語を混在させたり、対になるべき関連語を記載し忘れたりしている場合に注意喚起することができる。
【０１４１】
更に、開発者育成サーバ２０の制御部２１は、各名称の相互比較処理を実行する（ステップＳ３−９）。紛らわしい名称を検出した場合（ステップＳ３−１０において「ＹＥＳ」の場合）、開発者育成サーバ２０の制御部２１は、アラーム出力処理を実行する（ステップＳ３−１１）。紛らわしい名称の記載を抑制することにより、引用すべき変数やメソッドの間違いを防止できるプログラムの作成を指導することができる。
【０１４２】
（３）本実施形態においては、開発者育成サーバ２０の制御部２１は、作法評価手段２１５において機能ブロック評価処理を実行する（ステップＳ２−３ｂ）。ここでは、開発者育成サーバ２０の制御部２１は、字下げスタイルの構文の抽出処理を実行する（ステップＳ４−１）。クライアント端末１０において自動生成を利用していないと判定した場合（ステップＳ４−２において「ＮＯ」の場合）、開発者育成サーバ２０の制御部２１は、アラーム出力処理を実行する（ステップＳ４−３）。これにより、自動字下げの利用を遵守させることができる。そして、制御フローやコードのブロックを識別しやすいプログラムの作成を指導することができる。
【０１４３】
更に、開発者育成サーバ２０の制御部２１は、命令文の行跨ぎの検索処理を実行する（ステップＳ４−４）。命令文の行跨ぎがある場合（ステップＳ４−５において「ＹＥＳ」の場合）、開発者育成サーバ２０の制御部２１は、アラーム出力処理を実行する（ステップＳ４−６）。これにより、行跨ぎを抑制して、作成者以外の人間においても読みやすく理解しやすいプログラムの作成を指導することができる。
【０１４４】
更に、開発者育成サーバ２０の制御部２１は、性格に対応した許容範囲の特定処理を実行する（ステップＳ４−７）。開発者育成サーバ２０の制御部２１は、メソッド数の算出処理を実行する（ステップＳ４−８）。メソッド数基準値を超えており、許容範囲外の場合（ステップＳ４−９において「ＹＥＳ」の場合）、開発者育成サーバ２０の制御部２１は、アラーム出力処理を実行する（ステップＳ４−１０）。メソッドが少ない場合には、一つのメソッドに機能を盛り込みすぎている可能性がある。又、育成対象者の性格によっては、メソッドが少ない場合でも、的確なコーディングが行なわれていることもある。これにより、育成対象者の性格に応じて、的確な指導を行なうことができる。
【０１４５】
更に、開発者育成サーバ２０の制御部２１は、各メソッドに含まれる特定の命令の抽出処理を実行する（ステップＳ５−１）。特定命令文数が命令文数基準値を超えており、許容範囲外の場合（ステップＳ５−２において「ＹＥＳ」の場合）、開発者育成サーバ２０の制御部２１は、アラーム出力処理を実行する（ステップＳ５−３）。特定の命令が多すぎる場合、命令が重複している可能性がある。これにより、育成対象者の性格に応じて、的確な指導を行なうことができる。
【０１４６】
更に、開発者育成サーバ２０の制御部２１は、各メソッドの行数の算出処理を実行する（ステップＳ５−４）。メソッド行数が許容範囲を超えており、許容範囲外の場合（ステップＳ５−５において「ＹＥＳ」の場合）、開発者育成サーバ２０の制御部２１は、アラーム出力処理を実行する（ステップＳ５−６）。一つのメソッドが長すぎる場合には、一つのメソッドに機能を盛り込みすぎている可能性がある。又、育成対象者の性格によっては、メソッドが長い場合でも、的確なコーディングが行なわれていることもある。これにより、育成対象者の性格に応じて、的確な指導を行なうことができる。
【０１４７】
（４）本実施形態においては、開発者育成サーバ２０の制御部２１は、育成対象者の性格情報の取得処理を実行する（ステップＳ６−３）。積極性評価値が積極性基準値より低い場合（ステップＳ６−４において「ＹＥＳ」の場合）、開発者育成サーバ２０の制御部２１は、再コンパイルの目的入力画面の表示処理を実行する（ステップＳ６−５）。育成
対象者によっては、積極的に多様なコーディングを試していることがある。一方で、育成対象者によっては、再コンパイルの目的を意識せずに試行錯誤していることもある。この場合、再コンパイルの目的（例えば、ミスの修正、新たに作成したメソッドの試験等）を入力させることにより、コーディングの狙いを意識させることができる。
【０１４８】
（５）本実施形態においては、開発者育成サーバ２０の制御部２１は、同じ種類のエラー履歴があるかどうかについての判定処理を実行する（ステップＳ６−６）。同じ種類のエラー履歴がない場合（ステップＳ６−６において「ＮＯ」の場合）、開発者育成サーバ２０の制御部２１は、性格に基いて異種類許容回数の特定処理を実行する（ステップＳ６−７）。一方、同じ種類のエラー履歴がある場合（ステップＳ６−６において「ＹＥＳ」の場合）、開発者育成サーバ２０の制御部２１は、性格に基いて同種類許容回数の特定処理を実行する（ステップＳ６−９）。エラー回数が許容回数以上の場合（ステップＳ６−８又はＳ６−１０において「ＹＥＳ」の場合）、開発者育成サーバ２０の制御部２１は、支援パターンの検索処理を実行する（ステップＳ６−１１）。該当パターンが登録されている場合（ステップＳ６−１２において「ＹＥＳ」の場合）、開発者育成サーバ２０の制御部２１は、支援情報の出力処理を実行する（ステップＳ６−１３）。同じ種類のエラーが発生している場合には、エラーの原因を把握できていない可能性がある。一方、異なる種類のエラーが発生している場合には、多様な試みを行なっている可能性がある。従って、同じ課題について、エラーの発生状況に応じて、的確な指導を行なうことができる。
【０１４９】
更に、該当パターンが登録されていない場合（ステップＳ６−１２において「ＮＯ」の場合）、開発者育成サーバ２０の制御部２１は、指導者に対して修正履歴の送信処理を実行する（ステップＳ６−１４）。これにより、開発者育成サーバ２０において対応できない場合に、育成対象者に対して、指導者による支援を行なうことができる。
【０１５０】
（６）本実施形態においては、経過時間がテスト進捗確認時期に達している場合（ステップＳ７−２において「ＹＥＳ」の場合）には、開発者育成サーバ２０の制御部２１は、テストケース数の算出処理を実行する（ステップＳ７−３）。テストケース数がテストケース数許容範囲外の場合（ステップＳ７−４において「ＮＯ」の場合）、開発者育成サーバ２０の制御部２１は、アラーム出力処理を実行する（ステップＳ７−５）。これにより、育成対象者の性格に応じた進捗を考慮して、より的確な指導を行なうことができる。
【０１５１】
更に、開発者育成サーバ２０の制御部２１は、テストケースのカバレージの算出処理を実行する（ステップＳ７−６）。テストケースのカバレージがカバレージ基準値以下のものが含まれる場合（ステップＳ７−７において「ＹＥＳ」の場合）、開発者育成サーバ２０の制御部２１は、アラーム出力処理を実行する（ステップＳ７−８）。育成対象者の性格によっては、少ないテストケースで広い範囲をカバーできている場合もあれば、多くのテストケースを準備しなければならない場合もある。従って、育成対象者の性格を考慮して、より的確な指導を行なうことができる。
【０１５２】
なお、上記各実施形態は以下のように変更してもよい。
・  上記実施形態では、複数の基準値を用いて、複数の評価処理を実行した。基準値の種類や評価処理の種類は、これらに限定されるものではなく、一部の基準値や評価処理を用いたり、他の評価処理を組み合わせたりすることも可能である。
【０１５３】
・  上記実施形態では、作成履歴記憶部２７には、育成対象者が作成したプログラム（ソースコードやオブジェクトコード）を管理するための作成履歴管理レコード２７０が記憶される。作成物を管理する記憶部を設けるハードウェアは、これに限定されるものではない。例えば、統合開発環境サーバ３０において、育成対象者識別子及び課題識別子に関連付けて記憶させておくようにしてもよい。この場合には、開発者育成サーバ２０の制御
部２１が、評価時に統合開発環境サーバ３０から作成物を取得する。
【０１５４】
・  上記実施形態では、対象者情報記憶部２３には、育成対象者を管理するための対象者管理レコード２３０が記憶されている。この対象者管理レコード２３０は、育成対象者識別子、性格識別子、進捗状況に関するデータを含んで構成される。この性格識別子を、育成対象者が作成した作成物に対する評価に基づいて記録するようにしてもよい。例えば、開発者育成サーバ２０の制御部２１が、各評価におけるアラーム種別に対応させた性格識別子を記録した性格決定テーブルを準備しておく。そして、アラームの出力時に、制御部２１がアラーム種別に応じて性格識別子を変更する。
【０１５５】
又、コンパイルエラーのエラー識別子に対応させた性格識別子を記録した性格決定テーブルを準備しておく。そして、制御部２１が、コンパイルエラーの発生時に性格決定テーブルを用いて、エラー識別子に対応した性格識別子を特定して、対象者情報記憶部２３に登録する。これにより、課題に対する対応状況に基づいて、性格を特定していくことができる。
【０１５６】
・  上記実施形態では、支援情報記憶部２６には、エラーが発生した場合に育成対象者に対して提供される支援情報を管理するための支援情報管理レコード２６０が記憶されている。この支援情報は、性格識別子に対応させて登録しておくようにしてもよい。これにより、育成対象者の性格に応じた支援情報を提供することができる。
【０１５７】
・  上記実施形態では、基準情報記憶部２４には、性格に対応した基準値を管理するための基準値管理レコード２４０が記憶されている。この基準情報記憶部２４に記録されている同種類許容回数は、エラー識別子毎に記録するようにしてもよい。
【０１５８】
・  上記実施形態では、課題情報記憶部２２には、育成対象者に提供される課題を管理するための課題管理レコード２２０が記憶されている。この課題管理レコード２２０は、課題識別子、内容に関するデータを含んで構成される。ここで、育成対象者に提供する課題を、育成対象者の性格によって特定するようにしてもよい。この場合には、課題管理レコード２２０に性格識別子を登録しておき、開発者育成サーバ２０の制御部２１は、育成対象者の性格識別子に関連付けられた課題を提供する。
【０１５９】
また、育成対象者の苦手な領域について課題を提供するようにしてもよい。この場合には、課題管理レコード２２０において、エラー履歴により特定できるエラー内容に課題を関連付けて記録しておく。そして、開発者育成サーバ２０の制御部２１は、エラー履歴記憶部２８に記録されたエラー内容に基づいて、育成対象者に提供する課題を特定する。
【０１６０】
・  上記実施形態では、課題管理レコード２２０は、カバレージ基準値に関するデータを含んで構成される。このカバレージ基準値は、メソッド数、パラメータ数に応じて変更してもよい。この場合には、課題管理レコード２２０に、メソッド数やパラメータ数等のように、プログラムに含まれるコードに応じてカバレージ基準値を算出する関数（基準値算出関数）を記録しておく。そして、開発者育成サーバ２０の制御部２１は、育成対象者が作成したソースコードを解析して、メソッド数やパラメータ数を算出する。次に、制御部２１は、基準値算出関数を用いてカバレージ基準値を算出する。そして、このカバレージ基準値を用いて、テストケースのカバレージについての判定処理を実行する（ステップＳ７−７）。
【符号の説明】
【０１６１】
１０…クライアント端末、２０…開発者育成支援サーバ、２１…制御部、２１１…データ取得手段、２１２…進捗評価手段、２１３…評価管理手段、２１４…エラー評価手段、
２１５…作法評価手段、２１６…機能評価手段、２１７…テスト評価手段、２２…課題情報記憶部、２３…対象者情報記憶部、２４…基準情報記憶部、２５…評価用辞書記憶部、２６…支援情報記憶部、２７…作成履歴記憶部、２８…エラー履歴記憶部、３０…統合開発環境サーバ。
【図１】
2011215756.tif 000003
【図２】
2011215756.tif 000004
【図３】
2011215756.tif 000005
【図４】
2011215756.tif 000006
【図５】
2011215756.tif 000007
【図６】
2011215756.tif 000008
【図７】
2011215756.tif 000009
【図８】
2011215756.tif 000010
【図９】
2011215756.tif 000011
【図１０】
2011215756.tif 000012