(57)【要約】【課題】  開発者に教育を徹底させることにより、高品質な開発物を効率的に製作することができるセキュアコーディング規約教育システムを提供する。【解決手段】  開発者端末が、コーディング規約教育のための教育用コンテンツの要求を送信し、又この教育用コンテンツ要求に対応した要求教育用コンテンツを実行し、開発者情報データベースが開発者情報と開発者を管理するための開発者管理ポリシとを格納し、教育用コンテンツデータベースが教育用コンテンツを格納し、開発者端末により教育用コンテンツ要求が送信されると、開発者情報データベースの開発者情報と開発者管理ポリシと自らが格納した教育用コンテンツとを基に教育用コンテンツ要求に対応した要求教育用コンテンツを取得し開発者端末に送信する。【選択図】        図１
2009151532.tif 000002
【特許請求の範囲】
【請求項１】
コーディング規約教育のための教育用コンテンツの要求を送信し、又この教育用コンテンツ要求に対応した要求教育用コンテンツを実行する開発者端末と、
開発者情報と開発者を管理するための開発者管理ポリシとを格納する開発者情報データベースと、
前記教育用コンテンツを格納し、前記開発者端末により前記教育用コンテンツ要求が送信されると、前記開発者情報データベースに格納された前記開発者情報と前記開発者管理ポリシと自らが格納した前記教育用コンテンツとを基に前記教育用コンテンツ要求に対応した要求教育用コンテンツを取得し前記開発者端末に送信する教育用コンテンツデータベースと、
を備えたことを特徴とするセキュアコーディング規約教育システム。
【請求項２】
前記教育用コンテンツデータベースは、前記開発者端末により前記教育用コンテンツ要求が送信されると、前記開発者情報データベースに開発者情報要求と開発者管理ポリシ要求とを送信し、又前記開発者情報データベースにより送信された前記開発者情報と前記開発者管理ポリシとを基に自らが格納した教育用コンテンツの中から前記要求教育用コンテンツを取得し前記開発者端末に送信し、
前記開発者情報データベースは、前記教育用コンテンツデータベースにより送信された前記開発者情報要求と前記開発者管理ポリシ要求とに対応した前記開発者情報と前記開発者管理ポリシとを自らが格納した前記開発者情報と前記開発者管理ポリシとの中から取得し、前記教育用コンテンツデータベースに送信することを特徴とする請求項１記載のセキュアコーディング規約教育システム。
【請求項３】
前記開発者情報データベースに格納された前記開発者情報は、開発者が開発用ツールを用いて作業する権限の有無を示す作業権限を含み、
前記開発者情報データベースは、自らが格納した前記開発者情報の中から前記開発者端末により送信された作業権限確認要求に対応した前記作業権限を取得し、
前記開発者端末は、前記作業権限確認要求を前記開発者情報データベースに送信し、又前記開発者情報データベースにより取得された前記作業権限を基に前記開発用ツールにより作業を実行するか或いは前記教育用コンテンツを実行するかを決定することを特徴とする請求項１又は請求項２記載のセキュアコーディング規約教育システム。
【請求項４】
前記開発者端末は、前記開発者情報データベースにより取得された前記作業権限が前記開発用ツールを用いて作業する権限のない場合は、前記教育用コンテンツデータベースにより送信された前記要求教育用コンテンツを実行することを特徴とする請求項３記載のセキュアコーディング規約教育システム。
【請求項５】
前記教育用コンテンツデータベースに教育用コンテンツ要求を送信し、又前記教育用コンテンツデータベースにより送信された前記要求教育用コンテンツを受信する管理者端末を備え、
前記教育用コンテンツデータベースは、前記管理者端末により送信された前記教育用コンテンツ要求に対応した前記要求教育用コンテンツを自らが格納した前記教育用コンテンツの中から取得し前記管理者端末に送信することを特徴とする請求項1〜請求項４のいずれかに記載のセキュアコーディング規約教育システム。
【請求項６】
前記管理者端末は、前記教育用コンテンツデータベースにより送信された前記要求教育用コンテンツの内容が管理者により更新された場合には、前記教育用コンテンツデータベースに更新済教育用コンテンツを送信し、
前記教育用コンテンツデータベースは、前記管理者端末により送信された前記更新済教育用コンテンツを基に自らが格納した前記教育用コンテンツを更新することを特徴とする請求項５記載のセキュアコーディング規約教育システム。
【請求項７】
前記管理者端末は、前記開発者情報データベースに開発者情報要求を送信し、又前記開発者情報データベースにより送信された開発者情報を受信し、
前記開発者情報データベースは、前記管理者端末により送信された前記開発者情報要求に対応した前記開発者情報を自らが格納した前記開発者情報の中から取得し前記管理者端末に送信することを特徴とする請求項５記載のセキュアコーディング規約教育システム。
【請求項８】
前記管理者端末は、前記開発者情報データベースにより送信された前記開発者情報の内容が管理者により更新された場合には、前記開発者情報データベースに更新済開発者情報を送信し、
前記開発者情報データベースは、前記管理者端末により送信された前記更新済開発者情報を基に自らが格納した前記開発者情報を更新することを特徴とする請求項７記載のセキュアコーディング規約教育システム。
【請求項９】
前記管理者端末は、前記開発者情報データベースに開発者管理ポリシ要求を送信し、又前記開発者情報データベースにより送信された前記開発者管理ポリシを受信し、
前記開発者情報データベースは、前記管理者端末により送信された前記開発者管理ポリシ要求に対応した前記開発者管理ポリシを自らが格納した前記開発者管理ポリシの中から取得し前記管理者端末に送信することを特徴とする請求項５記載のセキュアコーディング規約教育システム
【請求項１０】
前記管理者端末は、前記開発者情報データベースにより送信された前記開発者管理ポリシの内容が管理者により更新された場合には、前記開発者情報データベースに更新済開発者管理ポリシを送信し、
前記開発者情報データベースは、前記管理者端末により送信された前記更新済開発者管理ポリシを基に自らが格納した前記開発者管理ポリシを更新することを特徴とする請求項９記載のセキュアコーディング規約教育システム。
【請求項１１】
前記管理者端末により送信されたコーディング規約とオープンソースとを基に教育用コンテンツを生成する教育用コンテンツ生成装置を備え、
前記管理者端末は、管理者により設定された前記コーディング規約と前記オープンソースとを教育用コンテンツ生成装置に送信し、又前記教育用コンテンツ生成装置により生成された前記教育用コンテンツを受信することを特徴とする請求項５記載のセキュアコーディング規約教育システム。
【請求項１２】
前記管理者端末は、前記教育用コンテンツ生成装置に教育用コンテンツ生成規則要求を送信し、又前記教育用コンテンツ生成装置により送信された教育用コンテンツ生成規則を受信し、
前記教育用コンテンツ生成装置は、教育用コンテンツを生成するための教育用コンテンツ生成規則を格納した教育用コンテンツ生成規則格納手段を備え、前記管理者端末により前記教育用コンテンツ生成規則要求が送信されると、前記教育用コンテンツ生成規則格納手段の中から前記教育用コンテンツ生成規則要求に対応した前記教育用コンテンツ生成規則を選択し前記管理者端末に送信することを特徴とする請求項１１記載のセキュアコーディング規約教育システム。
【請求項１３】
前記管理者端末は、前記教育用コンテンツ生成装置により送信された前記教育用コンテンツ生成規則の内容が管理者により更新された場合には、前記教育用コンテンツ生成装置に更新済教育用コンテンツ生成規則を送信し、
前記教育用コンテンツ生成装置は、前記管理者端末により送信された前記更新済教育用コンテンツ生成規則を基に前記教育用コンテンツ生成規則格納手段に格納された前記教育用コンテンツ生成規則を更新することを特徴とする請求項１２記載のセキュアコーディング規約教育システム。
【請求項１４】
前記教育用コンテンツ生成装置は、コーディング規約の構成情報を取得するためのコーディング規約構成情報取得規則と、コーディング規約構成情報とオープンソースとにより教育用コンテンツを生成するための教育用コンテンツ構築規則と、を格納した教育用コンテンツ生成規則格納手段と、
前記教育用コンテンツ生成規則格納手段に格納された前記コーディング規約構成情報取得規則を基に管理者により設定されたコーディング規約からコーディング規約構成情報を抽出するコーディング規約構成情報抽出手段と、
オープンソースのコーディング規約をチェックし、コーディング規約チェック結果を送信するコーディング規約チェック手段と、
前記教育用コンテンツ構築規則と、前記コーディング規約構成情報と、前記コーディング規約チェック結果と、を基に前記教育用コンテンツを生成し、前記管理者端末に送信する教育用コンテンツ構築手段と、
を備えたことを特徴とする請求項１２又は請求項１３記載のセキュアコーディング規約教育システム。
【請求項１５】
前記管理者端末は、前記教育用コンテンツ構築手段により送信された前記教育用コンテンツの内容が管理者により更新された場合には、前記教育用コンテンツデータベースに更新済教育用コンテンツを送信し、
前記教育用コンテンツデータベースは、前記管理者端末により送信された前記更新済教育用コンテンツを基に自らが格納した前記教育用コンテンツを更新することを特徴とする請求項１４記載のセキュアコーディング規約教育システム。
【請求項１６】
前記管理者端末は、コーディング規約情報収集サイトＵＲＬリストを格納し、このコーディング規約情報収集サイトＵＲＬリストを含むコーディング規約自動収集要求を送信するコーディング規約情報収集サイトＵＲＬリスト格納手段と、
前記コーディング規約情報収集サイトＵＲＬリスト格納部により送信された前記コーディング規約情報収集サイトＵＲＬリストを基にコーディング規約情報を自動収集するコーディング規約情報自動収集手段とを備え、
前記コーディング規約情報自動収集部により自動収集した前記コーディング規約情報を基に前記教育用コンテンツを生成し前記管理者端末の送信することを特徴とする請求項５〜請求項１５のいずれかに記載のセキュアコーディング規約教育システム。
【請求項１７】
開発者端末からコーディング規約教育のための教育用コンテンツの要求が送信されると、開発者情報データベースに格納された開発者情報と開発者管理ポリシと、教育用コンテンツデータベースに格納された教育用コンテンツとを基に前記開発者端末からの要求に対応した要求教育用コンテンツを取得し前記開発者端末に送信するセキュアコーディング規約教育システムによるセキュアコーディング規約教育方法であって、
前記開発者端末が、コーディング規約教育のための教育用コンテンツの要求を前記教育用コンテンツデータベースに送信する第１の送信ステップと、
前記教育用コンテンツデータベースが、前記開発者端末により前記教育用コンテンツ要求が送信されると、前記開発者情報データベースに開発者情報要求と開発者管理ポリシ要求とを送信する第２の送信ステップと、
前記開発者情報データベースが、前記教育用コンテンツデータベースにより送信された前記開発者情報要求と前記開発者管理ポリシ要求とに対応した前記開発者情報と前記開発者管理ポリシとを自らが格納した前記開発者情報と前記開発者管理ポリシとの中から取得し、前記教育用コンテンツデータベースに送信する第３の送信ステップと、
教育用コンテンツデータベースが、前記開発者情報データベースにより送信された前記開発者情報と前記開発者管理ポリシとを基に自らが格納した教育用コンテンツの中から前記要求教育用コンテンツを取得し前記開発者端末に送信する第４の送信ステップと、
前記開発者端末が、教育用コンテンツデータベースにより送信された前記要求教育用コンテンツを実行する実行ステップと、
を備えたことを特徴とするセキュアコーディング規約教育方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア開発に携わる開発者に実施する教育に対して、セキュリティを考慮したコーディング規約に関する教育を開発者に徹底させる方法とコーディング規約やオープンソースから開発者に教育するためのコンテンツを自動的に生成する方法に関するものである。
【背景技術】
【０００２】
ソフトウェア開発は年々規模が拡大する傾向にあり、ソフトウェア開発に携わる開発者の数が増加している一方で、セキュリティや品質の向上、開発期間の短縮が求められている。
セキュリティや品質の高いソフトウェアを開発するためには、開発者に対して十分な教育を実施する必要がある。セキュリティ教育を行なう従来技術としては、例えば特許文献１のように、セキュリティ教育支援コンピュータが監視対象となる装置を監視し、予め定められた操作を検知するとインターネット接続とメール送信を遮断し、教育を要求するシステムがある。
【０００３】
また、開発者に対して実施するコーディング規約の教育には、コーディング規約内容を教育する教科書の役割を成す教科書用コンテンツと、教育の効果をテストするためのテスト用コンテンツが必要である（以下、教科書用コンテンツとテスト用コンテンツを合わせて教育用コンテンツと呼ぶ）。ただし、教育用コンテンツを手動で生成するには、コンテンツ生成のための知識と多大な時間が必要となる。ここで、コンテンツを自動生成する従来技術としては、例えば特許文献２のように、コンテンツ素材情報とルールとレイアウト情報を利用してコンテンツを自動生成するシステムがある。
【特許文献１】特開２００４−３０２５８５号公報
【特許文献２】特開２００６−４８４６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１の発明では、セキュリティ教育システムの内容を充分に理解し、実践できているかどうかを評価することができず、教育が不十分であるセキュリティ教育システム利用者である開発者が開発に関わることで、開発作業の効率や開発されたソフトウェアのセキュリティや品質が低下してしまう。
また、特許文献２の発明では、教科書用コンテンツは生成することができるが、テスト用コンテンツは自動的に作成することができない。そのため、特許文献１と同様に、教育が不十分であるセキュリティ教育システム利用者である開発者が開発に関わることで、開発作業の効率や開発されたソフトウェアのセキュリティや品質が低下してしまう。
本発明は、上記のような課題を解決するためになされたものであり、開発者に教育を徹底させることにより、高品質な開発物を効率的に製作することができるセキュアコーディング規約教育システムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
この発明に係るセキュアコーディング規約教育システムは、コーディング規約教育のための教育用コンテンツの要求を送信し、又この教育用コンテンツ要求に対応した要求教育用コンテンツを実行する開発者端末と、
開発者情報と開発者を管理するための開発者管理ポリシとを格納する開発者情報データベースと、
前記教育用コンテンツを格納し、前記開発者端末により前記教育用コンテンツ要求が送信されると、前記開発者情報データベースに格納された前記開発者情報と前記開発者管理ポリシと自らが格納した前記教育用コンテンツとを基に前記教育用コンテンツ要求に対応した要求教育用コンテンツを取得し前記開発者端末に送信する教育用コンテンツデータベースと、を備えたものである。
【発明の効果】
【０００６】
この発明は、開発者情報と開発者を管理するための開発者管理ポリシとに基づいて選択された教育用コンテンツに従って、開発者にシステム利用のための教育を受けさせることにより、教育の理解の低い、つまり開発レベルの低い開発者に教育を徹底させることができるので、高品質な開発物を効率的に製作することができる。
【発明を実施するための最良の形態】
【０００７】
実施の形態１．
図１は、実施の形態１のセキュアコーディング規約教育システム１０００の構成図である。
セキュアコーディング規約教育システム１０００は、管理者端末１００、開発者端末２００、開発者情報データベース３００、教育用コンテンツデータベース４００を備える。
さらに、管理者端末１００上では、管理者用エージェント１１０が稼動しており、開発者端末２００上では、開発者用エージェント２１０と開発用ツール２２０が稼動する。
開発者情報データベース３００上では、開発者に関する情報である開発者情報３１０と開発者を管理するための情報である開発者管理ポリシ３２０とが格納されており、管理者が設定した開発者管理ポリシに基づいて開発者を管理する。
【０００８】
開発者情報３１０は、開発者の名前やＩＤ、所属といった開発者を識別するための情報を表す基本情報３１１と、開発者が本システムを利用して教育用コンテンツを利用した進捗や成績を表す教育情報３１２と、開発者が本システムの監視する開発用ツール２２０を利用して行った作業の進捗やコーディング規約違反箇所、コーディング規約違反回数を表す作業情報３１３と、開発者の教育情報３１２と作業情報３１３と、後述する管理者が設定した開発レベル判定基準３２１から判定した開発者の開発レベル３１４と、開発者の開発用ツールで作業する権限の有無を表す作業権限３１５と、からなる。
【０００９】
開発者管理ポリシ３２０は、管理者が教育情報３１２や作業情報３１３から、開発者の開発能力を任意のレベルに分けるための基準を表す開発レベル判定基準３２１と、開発レベル３１４によって、開発者が作業権限を得るために達成すべき条件を表す開発レベル別達成条件３２２と、開発者の教育情報３１２と作業情報３１３から、開発者が実施すべき教育用コンテンツ４１０を選択する基準を表す教育用コンテンツ選択基準３２３と、からなる。
教育用コンテンツデータベース４００上では、開発者にコーディング規約を教育するための教育用コンテンツ４１０が格納されており、管理者が設定した教育用コンテンツ選択基準３２３を利用して、開発者に必要な教育用コンテンツ４１０を提供する。
【００１０】
図２は、管理者端末１００の構成図である。
管理者端末１００上で稼動する管理者用エージェント１１０は、開発者情報データベース３００、教育用コンテンツデータベース４００と通信する通信手段としての通信部１１１と、開発者情報データベース３００、教育用コンテンツデータベース４００から得た情報を表示、編集するデータ表示編集手段としてのデータ表示編集部１１２と、からなる。
【００１１】
図３は、開発者端末２００の構成図である。
開発者端末２００上で稼動する開発者用エージェント２１０は、開発者情報データベース３００と教育用コンテンツ４００との通信を行なう通信手段としての通信部２１１と、教育用コンテンツデータベース４００から取得した教育用コンテンツ４１０を実行する教育用コンテンツ実行手段としての教育用コンテンツ実行部２１２と、開発用ツール２２０上の作業の進捗やコーディング規約違反を監視する作業監視手段としての作業監視部２１３と、開発者情報データベース３００からの指示により、開発用ツール２２０の利用を制限する作業権限操作としての作業権限操作部２１４と、からなる。
開発用ツール２２０は、開発者が開発するために利用し、開発者用エージェント２１０が許可する場合のみ利用できる。また、開発用ツール２２０上では、コーディング規約違反を監視するコーディング規約チェック手段としてのコーディング規約チェック部２２１が稼動する。
【００１２】
図４は、開発者情報データベース３００の構成図である。
開発者情報データベース３００は、管理者端末１００や開発者端末２００や教育用コンテンツデータベース４００と通信する通信手段としての通信部３６０と、開発者情報３１０と開発者管理ポリシ３２０から、開発者の開発レベルを判定する開発レベル判定手段としての開発レベル判定部３３０と、開発者情報３１０を格納する開発者情報格納手段としての開発者情報格納部３４０と、開発者管理ポリシ３２０を格納する開発者管理ポリシ格納手段としての開発者管理ポリシ格納部３５０と、からなる。
図１で説明したとおり、開発者情報３１０は、基本情報３１１と、教育情報３１２と、作業情報３１３と、開発レベル３１４と、作業権限３１５と、からなる。開発者管理ポリシ３２０は、開発レベル判定基準３２１と、開発レベル別達成条件３２２と、教育用コンテンツ選択基準３２３と、からなる。
【００１３】
図５は、教育用コンテンツデータベース４００の構成図である。
教育用コンテンツデータベース４００は、管理者端末１００や開発者端末２００や開発者情報データベース３００と通信する通信手段としての通信部４４０と、教育用コンテンツ４１０を格納する教育用コンテンツ格納手段としての教育用コンテンツ格納部４２０と、開発者情報３１０と開発者管理ポリシ３２０を利用して開発者に必要な教育用コンテンツを選択する提供コンテンツ選択手段としての提供コンテンツ選択部４３０と、からなる。
【００１４】
次に、セキュアコーディング規約教育システム１０００の処理動作について説明する。
図６は、管理者がセキュアコーディング規約教育システム１０００を利用する際のセキュアコーディング規約教育システム１０００の処理動作を示すフローチャートである。
まず、管理者は、管理者端末１００上で管理者用エージェント１１０を起動する（ステップＳ１）。続いて、管理者は、教育用コンテンツ４１０の更新、開発者情報３１０の更新、開発者管理ポリシ３２０の更新の内、実行する処理を選択する（ステップＳ２）。
【００１５】
管理者により教育用コンテンツ４１０の更新の処理が選択された場合には、管理者用エージェント１１０は通信部１１１を利用して教育用コンテンツデータベース４００にアクセスし、認証を実施する（ステップＳ３）。
認証が成功した場合、管理者用エージェント１１０は、通信部１１１を利用して教育用コンテンツデータベース４００に教育用コンテンツ要求を送信する（ステップＳ４）。
教育用コンテンツデータベース４００は、管理者により要求され、管理者用エージェント１２０から送信された教育用コンテンツ要求に対応した教育用コンテンツ４１０を教育用コンテンツ格納部４２０から取得し、通信部４４０を利用して管理者端末１００に教育用コンテンツ応答を送信する。教育用コンテンツ応答には、管理者に要求された教育用コンテンツ４１０が含まれる（ステップＳ５）。
【００１６】
管理者は、データ表示編集部１１２を利用し、受信した教育用コンテンツ４１０を閲覧し、必要があれば更新する（ステップＳ６）。
内容を更新した場合、更新を反映させるために、管理者用エージェント１１０は、通信部１１１を利用して教育用コンテンツデータベース４００に教育用コンテンツ更新要求を送信する（ステップＳ７）。教育用コンテンツ更新要求には、更新された教育用コンテンツ４１０が含まれる。
教育用コンテンツデータベース４００は、受信した更新された教育用コンテンツ４１０を利用し、教育用コンテンツ格納部４２０を更新する（ステップＳ８）。なお、内容を更新しなかった場合はステップＳ２に戻る。
【００１７】
また、管理者により開発者情報３１０の更新の処理が選択された場合には、管理者用エージェント１１０は、通信部１１１を利用して開発者情報データベース３００にアクセスし、認証を実施する（ステップＳ９）。
認証が成功した場合、管理者用エージェント１１０は、通信部１１１を利用して開発者情報データベース３００に開発者情報要求を送信する（ステップＳ１０）。
開発者情報データベース３００は、開発者情報格納部３４０から、管理者に要求された開発者情報３１０を取得し、通信部３６０を利用して管理者端末１００に開発者情報応答を送信する（ステップＳ１１）。開発者情報応答には、管理者に要求された開発者情報３１０が含まれる。
【００１８】
管理者は、データ表示編集部１１２を利用し、受信した開発者情報３１０を閲覧し、必要があれば更新する（ステップＳ１２）。
内容を更新した場合、更新を反映させるために、管理者用エージェント１１０は、通信部１１１を利用して開発者情報データベース３００に開発者情報更新要求を送信する（ステップＳ１３）。開発者情報更新要求には、更新された開発者情報３１０が含まれる。
開発者情報データベース３００は、受信した更新された開発者情報３１０を利用し、開発者情報格納部３４０を更新する（ステップＳ１４）。なお、内容を更新しなかった場合はステップＳ２に戻る。
【００１９】
また、管理者により開発者管理ポリシ３２０の更新の処理が選択された場合には、管理者用エージェント１１０は、通信部１１１を利用して開発者情報データベース３００にアクセスし、認証を実施する（ステップＳ１５）。
認証が成功した場合、管理者用エージェント１１０は、通信部１１１を利用して開発者情報データベース３００に開発者管理ポリシ要求を送信する（ステップＳ１６）。
開発者情報データベース３００は、開発者管理ポリシ格納部３５０から、管理者に要求された開発者管理ポリシ３２０を取得し、通信部３６０を利用して管理者端末１００に開発者管理ポリシ応答を送信する（ステップＳ１７）。開発者管理ポリシ応答には、管理者に要求された開発者管理ポリシ３２０が含まれる。
【００２０】
管理者は、データ表示編集部１１２を利用し、受信した開発者管理ポリシ３２０を閲覧し、必要があれば更新する（ステップＳ１８）。
内容を更新した場合、更新を反映させるために、管理者用エージェント１１０は、通信部１１１を利用して開発者情報データベース３００に開発者管理ポリシ更新要求を送信する（ステップＳ１９）。開発者管理ポリシ更新要求には、更新された開発者管理ポリシ３２０が含まれる。
開発者情報データベース３００は、受信した更新された開発者管理ポリシ３２０を利用し、開発者管理ポリシ格納部３５０を更新する（ステップＳ２０）。なお、内容を更新しなかった場合はステップＳ２に戻る。
【００２１】
図７は、開発者がセキュアコーディング規約教育システム１０００を利用する際のセキュアコーディング規約教育システム１０００の処理動作を示すフローチャートである。
まず、開発者は、開発者端末２００上で開発者用エージェント２１０を起動する（ステップＳ３１）。
開発者用エージェント２１０は、通信部２１１を利用して開発者情報データベース３００にアクセスし、認証を実施する（ステップＳ３２）。
認証が成功した場合、開発者用エージェント２１０は、通信部２１１を利用して開発者情報データベース３００に作業権限確認要求を送信する（ステップＳ３３）。
【００２２】
開発者情報データベース３００は、開発者情報格納部３４０から開発レベル３１４と作業権限３１５を、開発者管理ポリシ格納部３５０から開発レベル別達成条件３２２を取得し、通信部３６０を利用して開発者端末２００に作業権限確認応答を送信する（ステップＳ３４）。作業権限確認応答には、開発レベル３１４と作業権限３１５と開発レベル別達成条件３２２が含まれる。
【００２３】
ステップＳ３５において、（分岐条件）作業権限３１５が「ある」場合はステップＳ３６以降の処理、即ち開発作業を実施し、作業権限３１５が「ない」場合はステップＳ４１以降の処理、即ち教育を実施する。
次に、作業権限３１５が「ある」場合と「ない」場合について説明する。
作業権限３１５がある場合、開発者用エージェント２１０は、作業権限操作部２１４を利用して開発用ツール２２０による開発作業を許可する（ステップＳ３６）。また、作業監視部２１３を利用して、開発用ツール２２０のコーディング規約チェック部２２１に、コーディング規約のチェックを行うよう指示をする。
開発者は、開発用ツール２２０を利用し、開発作業を実施する。
開発作業中、コーディング規約チェック部２２１は、定期的、もしくはリアルタイムにコーディング規約チェックを実施し、作業監視部２１３に作業監視応答を送信する（ステップＳ３７）。作業監視応答には、作業監視部２１３が取得した、開発者の作業進捗やコーディング規約違反箇所、コーディング規約違反回数といった作業情報３１３が含まれる。
【００２４】
開発者用エージェント２１０は、通信部２１１を利用して開発者情報データベース３００に作業情報更新要求を送信する（ステップＳ３８）。作業情報更新要求には、作業情報３１３が含まれる。
開発者情報データベース３００は、受信した作業情報３１３を利用し、開発者情報格納部３４０を更新する（ステップＳ３９）。
【００２５】
開発レベル判定部３３０は、開発者情報格納部３４０から開発者情報３１０を、開発者管理ポリシ格納部３５０から開発者管理ポリシ３２０を取得し、教育情報３１２、作業情報３１３、開発レベル判定基準３２１を利用して、開発者の開発レベル３１４と作業権限３１５を決定し、開発者情報格納部３４０を更新する（ステップＳ４０）。
作業権限３１５が更新された場合、通信部３６０を利用して開発者端末２００に作業権限変更要求を送信する。作業権限変更要求には、開発レベル３１４、作業権限３１５、開発レベル別達成条件３２２が含まれる。
ステップＳ３５で作業権限３１５がない場合、開発者用エージェント２１０は、開発用ツール２２０による開発作業を禁止する（ステップＳ４１）。
【００２６】
開発者用エージェント２１０は、通信部２１１を利用して教育用コンテンツデータベース４００にアクセスし、認証を行なう（ステップＳ４２）。
認証が成功した場合、開発者用エージェント２１０は、通信部２１１を利用して教育用コンテンツデータベース４００に教育用コンテンツ利用要求を送信する（ステップＳ４３）。
教育用コンテンツデータベース４００は、通信部４４０を利用して開発用情報データベース３００に開発者情報要求と開発者管理ポリシ要求を送信する（ステップＳ４４）。
【００２７】
開発者情報データベース３００は、開発者情報格納部３４０から開発者情報３１０を、開発者管理ポリシ格納部３５０から開発者管理ポリシ３２０を取得し、通信部３６０を利用して教育用コンテンツデータベース４００に開発者情報応答と開発者管理ポリシ応答を送信する（ステップＳ４５）。ここで、開発者情報応答には開発者情報３１０が、開発者管理ポリシ応答には開発者管理ポリシ３２０がそれぞれ含まれる。
【００２８】
提供用コンテンツ選択部４３０は、取得した開発者情報３１０と開発者管理ポリシ３２０から、開発者に提供する教育用コンテンツ４１０を選択し、通信部４４０を利用して開発者端末２００に教育用コンテンツ利用応答を送信する（ステップＳ４６）。教育用コンテンツ利用応答には、教育用コンテンツ４１０が含まれる。
開発者は、教育用コンテンツ実行部２１２を利用して、教育用コンテンツデータベース４００から受信した教育用コンテンツ４１０を実行する（ステップＳ４７）。
【００２９】
開発者用エージェント２１０は、通信部２１１を利用して開発者情報データベース３００に教育情報更新要求を送信する（ステップＳ４８）。教育情報更新要求には、教育情報３１２が含まれる。
開発者情報データベース３００は、受信した教育情報３１２を利用し、開発者情報格納部３４０を更新する（ステップＳ４９）。
なお、本実施の形態では、管理者端末１００、開発者情報データベース３００、教育用コンテンツデータベース４００をそれぞれ別々の装置の場合について説明したが、管理者端末１００、開発者情報データベース３００、教育用コンテンツデータベース４００を同じ装置上に実装しても、同様の効果を得ることができる。
【００３０】
以上のように本実施の形態によれば、開発者情報３１０と開発者を管理するための開発者管理ポリシ３２０とに基づいて選択された教育用コンテンツに従って、開発者にシステム利用のための教育を受けさせることにより、教育の理解の低い、つまり開発レベルの低い開発者に教育を徹底させることができ、その結果、安全で高品質な開発物を製作することができる。
また、開発者が教育を十分に理解し、実践できているか、開発者の教育の進捗や成績、開発作業の進捗やコーディング規約違反の指摘箇所やコーディング規約違反回数などから、開発者の開発スキルを評価し、教育が必要であると判断した開発者に対して、教育を完了するまで開発作業権限を剥奪することで、教育を徹底させることができる。
【００３１】
実施の形態２．
図８は、実施の形態２のセキュアコーディング規約教育システム１００１の構成図である。
セキュアコーディング規約教育システム１００１は、管理者端末１０１、開発者端末２００、開発者情報データベース３００、教育用コンテンツデータベース４００、教育用コンテンツ生成装置５００を備える。
ここで、開発者端末２００、開発者情報データベース３００、教育用コンテンツデータベース４００は機能、構造、動作については、実施の形態１と同じものであるため説明を省略する。管理者端末１０１は、管理者端末１０１上で稼動する管理用エージェント１２０を備える。
【００３２】
教育用コンテンツ生成装置５００は、教育用コンテンツ生成規則５１０を備える。教育用コンテンツ生成規則５１０は、コーディング規約構成情報取得規則５１１と教育用コンテンツ構築規則５１２からなる。
教育用コンテンツ生成装置５００は、管理者端末１０１から与えられたコーディング規約及びオープンソースから、自動的に教育用コンテンツ４１０を生成する。即ち、管理者が管理者端末１０１に設定したコーディング規約及びオープンソースから教育用コンテンツ４１０を生成する。
【００３３】
図９は、管理者端末１０１の構成図である。
管理者用エージェント１２０は、実施の形態１の管理者端末１００の通信部１１１に、教育用コンテンツ生成装置５００と通信する機能を加えた通信手段としての通信部１２１と、実施の形態１の管理者端末１００のデータ表示編集手段としてのデータ表示編集部１１２に、教育用コンテンツ生成装置５００から得た情報を表示、編集できるデータ表示編集手段としてのデータ表示編集部１２２と、を備える。
ここで、管理者端末１０１は、実施の形態１の管理者端末の機能に加えて、教育用コンテンツ生成装置５００にコーディング規約およびオープンソースを送信することで、教育用コンテンツ生成装置５００に教育用コンテンツ４１０を自動生成させることができる機能を付加している。
【００３４】
図１０は、教育用コンテンツ生成装置５００の構成図である。
教育用コンテンツ生成装置５００は、教育用コンテンツ生成規則５１０を格納する教育用コンテンツ生成規則格納手段としての教育用コンテンツ生成規則格納部５２０と、教育用コンテンツを生成する教育用コンテンツ生成手段としての教育用コンテンツ生成部５３０と、管理者端末１０１と通信するための通信手段としての通信部５４０と、からなる。
教育用コンテンツ生成規則５１０は、コーディング規約からコーディング規約の構成情報を取得するための規則であるコーディング規約構成情報取得規則５１１と、コーディング規約の構成情報やオープンソースから教育用コンテンツ４１０を生成するための規則である教育用コンテンツ構築規則５１２と、からなる。
【００３５】
教育用コンテンツ生成部５３０は、管理者端末１０１から送信されたコーディング規約とコーディング規約構成情報取得規則５１１からコーディング規約構成情報を抽出するコーディング規約構成情報抽出部５３１と、管理者端末１０１から送信されたオープンソースのコーディング規約チェックを行なうコーディング規約チェック部５３２と、コーディング規約構成情報抽出部５３１から得たコーディング構成情報とコーディング規約チェック部５３２から得たオープンソースの規約チェック結果と教育用コンテンツ構築規則５１２とから教育用コンテンツ４１０を生成する教育用コンテンツ構築部５３３と、により構成される。
【００３６】
次に、セキュアコーディング規約教育システム１００１の処理動作について説明する。
図１１は、管理者がセキュアコーディング規約教育システム１００１を利用する際のセキュアコーディング規約教育システム１００１の処理動作を示すフローチャートである。
なお、開発者がセキュアコーディング規約教育システム１００１を利用する際の処理動作は実施の形態１の図７と同一であるため説明を省略する。
まず、管理者は、管理者端末１０１上で管理者用エージェント１２０を起動する（ステップＳ５１）。続いて、管理者は、教育用コンテンツ４１０の更新、開発者情報３１０の更新、開発者管理ポリシ３２０の更新、教育用コンテンツ生成規則５１０の更新、教育用コンテンツ生成要求の内、実行する処理を選択する（ステップＳ２）。
【００３７】
教育用コンテンツ４１０の更新、開発者情報３１０の更新、開発者管理ポリシ３２０の更新に関しては、実施の形態１の管理者端末１００を管理者端末１０１、管理者用エージェント１１０を管理者用エージェント１２０と置き換えた上で、管理者端末１０１が、実施の形態１の図６のフローチャートと同様の処理を実施する（ステップＳ５２）。
【００３８】
管理者用エージェント１２０は、通信部１２１を利用して、教育用コンテンツ生成装置５００にアクセスし、認証を実施する（ステップＳ５３）。
認証が成功した場合、管理者用エージェント１２０は、通信部１２１を利用して教育用コンテンツ生成装置５００に教育用コンテンツ生成規則要求を送信する（ステップＳ５４）。
【００３９】
教育用コンテンツ生成装置５００は、管理者により要求され、管理者用エージェント１２０から送信された教育用コンテンツ生成規則要求に対応した教育用コンテンツ生成規則５１０を教育用コンテンツ生成規則格納部５２０から取得し、通信部５４０を利用して管理者端末１０１に教育用コンテンツ生成規則応答を送信する（ステップＳ５５）。教育用コンテンツ生成規則応答には、管理者に要求された教育用コンテンツ生成規則５１０が含まれる。
管理者は、データ表示編集部１２２を利用し、受信した教育用コンテンツ生成規則５１０を閲覧し、必要があれば更新する（ステップＳ５６）。
【００４０】
内容を更新した場合、更新を反映させるために、管理者用エージェント１２０は、通信部１２１を利用して教育用コンテンツ生成装置５００に教育用コンテンツ生成規則更新要求を送信する（ステップＳ５７）。教育用コンテンツ生成規則更新要求には、更新された教育用コンテンツ生成規則５１０が含まれる。
教育用コンテンツ生成装置５００は、受信した更新された教育用コンテンツ生成規則５１０を利用し、教育用コンテンツ生成規則格納部５２０を更新する（ステップＳ５８）。
【００４１】
管理者用エージェント１２０は、通信部１２１を利用して教育用コンテンツ生成装置５００にアクセスし、認証を実施する（ステップＳ５９）。
認証が成功した場合、管理用エージェント１２０は、通信部１２１を利用して教育用コンテンツ生成装置５００に教育用コンテンツ生成要求を送信する（ステップＳ６０）。教育用コンテンツ生成要求には、コーディング規約及びオープンソースが含まれる。
教育用コンテンツ生成部５３０は、教育用コンテンツ生成規則格納部５２０からコーディング規約構成情報取得規則５１１と教育用コンテンツ構築規則５１２とを含む教育用コンテンツ生成規則５１０を取得する（ステップＳ６１）。
【００４２】
コーディング規約構成情報抽出部５３１は、教育用コンテンツ生成規則５１０に含まれているコーディング規約構成情報取得規則５１１を利用し、管理者から与えられたコーディング規約から、コーディング規約構成情報を抽出する。即ち、管理者が管理者端末１０１に設定したコーディング規約からコーディング規約構成情報を抽出する。
さらに、コーディング規約構成情報抽出部５３１は、抽出したコーディング規約構成情報を教育用コンテンツ構築部５３３に送信する（ステップＳ６２）。
【００４３】
コーディング規約チェック部５３２は、オープンソースに対してコーディング規約チェックを実施し、コーディング規約チェック結果を教育用コンテンツ構築部５３３に送信する（ステップＳ６３）。コーディング規約チェック結果には、修正前のソースコード（コーディング違反のあるソースコード例）、修正後のソースコード（修正例）、コーディング違反内容（テストの項目に関係する）が含まれる。
教育用コンテンツ構築部５３３は、教育用コンテンツ生成規則５１０に含まれている教育用コンテンツ構築規則５１２を利用してコーディング規約構成情報とコーディングチェック結果とから教育用コンテンツ４１０を自動生成し、通信部５４０を利用して管理者端末１０１に教育用コンテンツ生成応答を送信する（ステップＳ６４）。教育用コンテンツ生成応答には、生成した教育用コンテンツ４１０が含まれる。
【００４４】
管理者は、データ表示編集部１２２を利用し、受信した教育用コンテンツ４１０を閲覧し、必要があれば更新する（ステップＳ６５）。
管理者用エージェント１２０は、通信部１２１を利用して教育用コンテンツデータベース４００にアクセスし、認証を実施する（ステップＳ６６）。
認証が成功した場合、管理者用エージェント１２０は、通信部１２１を利用して教育用コンテンツデータベース４００に教育用コンテンツ更新要求を送信する（ステップＳ６７）。教育用コンテンツ更新要求には、教育用コンテンツ４１０が含まれる。
教育用コンテンツデータベース４００は、受信した教育用コンテンツ４１０を利用し、教育用コンテンツ格納部４２０を更新する（ステップＳ６８）。
【００４５】
以上のように本実施の形態によれば、実施の形態１で得られた効果に加え、コーディング規約やオープンソースから自動的に教育用コンテンツを生成することにより、コンテンツ作成能力が無くても教育用コンテンツを容易に、かつ短時間で作成できるため、教育用コンテンツ作成にかかる時間を大幅に短縮でき、開発者の教育に利用できる時間を増加させることができ、開発者に早期に教育を開始することができる。
【００４６】
実施の形態３．
図１２は、実施の形態３のセキュアコーディング規約教育システム１００２の構成図である。
セキュアコーディング規約教育システム１００２は、管理者端末１０２、開発者端末２００、開発者情報データベース３００、教育用コンテンツデータベース４００、教育用コンテンツ生成装置５００を備える。
ここで、開発者端末２００、開発者情報データベース３００、教育用コンテンツデータベース４００、教育用コンテンツ生成装置５００は機能、構造、動作、全て実施の形態２と同じものであるため説明を省略する。
管理者端末１０２は、管理者端末１０２上で稼動する管理用エージェント１３０を備えており、インターネットに接続している。
インターネット上には、コーディング規約を取り扱っているサイトやコーディング規約についてコメントをしてあるブログや掲示板があり、そこには、コーディング規約の更新情報やコーディング規約の例や不具合に関する情報、オープンソースといったコーディング規約情報６００が存在している。
【００４７】
図１３は、管理者端末１０２の構成図である。
管理者用エージェント１３０は、実施の形態２の管理者端末１０１の通信部１２１に、コーディング規約情報自動収集部１３２から得たコーディング規約やオープンソースを扱うことのできる通信手段としての通信部１３１、実施の形態２で説明したのと同様なデータ表示編集手段としてのデータ表示編集部１２２、コーディング規約に関する情報を自動収集するコーディング規約情報自動収集手段としてのコーディング規約情報自動収集部１３２、コーディング規約情報を収集するサイトのＵＲＬのリストを格納するコーディング規約情報収集サイトＵＲＬリスト格納手段としてのコーディング規約情報収集サイトＵＲＬリスト格納部１３３からなる。
【００４８】
次に、セキュアコーディング規約教育システム１００２の処理動作について説明する。
図１４は、管理者がセキュアコーディング規約教育システム１００２の処理動作を利用する際のセキュアコーディング規約教育システム１００２の処理動作を示すフローチャートである。
なお、開発者がセキュアコーディング規約教育システム１００２を利用する際の処理動作は実施の形態１の図７と同一であるため説明を省略する。
【００４９】
管理者は、管理者端末１０２上で管理者用エージェント１３０を起動する（ステップＳ７１）。
管理者は、ステップＳ７２で実行する教育用コンテンツ４１０の更新、開発者情報３１０の更新、開発者管理ポリシ３２０の更新、教育用コンテンツ生成要求、教育用コンテンツ生成規則５１０の更新、又はステップＳ７３〜ステップＳ７５で実行するコーディング規約情報自動収集の内、実行する処理を選択する（ステップＳ２）。
【００５０】
教育用コンテンツ４１０の更新、開発者情報３１０の更新、開発者管理ポリシ３２０の更新、教育用コンテンツ生成、教育用コンテンツ生成規則５１０の更新は、実施の形態２の管理者端末１０１を管理者端末１０２、管理者用エージェント１２０を管理者用エージェント１３０と置き換えた上で、実施の形態２と同様の処理を実施する（ステップＳ７２）。
【００５１】
コーディング規約情報収集サイトＵＲＬリスト格納部１３３は、自らが格納するコーディング規約情報収集サイトＵＲＬリストを含むコーディング規約自動収集要求をコーディング規約情報自動収集部１３２に送信する（ステップＳ７３）。
【００５２】
コーディング規約情報自動収集部１３２は、コーディング規約情報収集サイトＵＲＬリストに記載されているサイトを探索し、コーディング規約に関する情報として、コーディング規約の更新情報やオープンソースを自動的に収集する（ステップＳ７４）。
管理者用エージェント１３０は、収集したコーディング規約の更新情報やオープンソースを元に教育用コンテンツを生成する（ステップＳ７５）。
【００５３】
以上のように本実施の形態によれば、実施の形態１、２で得られた効果に加え、コーディング規約に関する情報を自動的に収集し、さらに、収集した情報を利用することにより、教育用コンテンツを自動生成することができ、教育用コンテンツを生成するために必要な時間を大幅に短縮することができる。
【図面の簡単な説明】
【００５４】
【図１】実施の形態１のセキュアコーディング規約教育システム１０００の構成図。
【図２】実施の形態１における管理者端末１００の構成図。
【図３】実施の形態１における開発者端末２００の構成図。
【図４】実施の形態１における開発者情報データベース３００の構成図。
【図５】実施の形態１における教育用コンテンツデータベース４００の構成図。
【図６】実施の形態１におけるセキュアコーディング規約教育システム１０００の処理動作を示すフローチャート。
【図７】実施の形態１におけるセキュアコーディング規約教育システム１０００の処理動作を示すフローチャート。
【図８】実施の形態２のセキュアコーディング規約教育システム１００１の構成図。
【図９】実施の形態２における管理者端末１０１の構成図。
【図１０】実施の形態２における教育用コンテンツ生成装置５００の構成図。
【図１１】実施の形態２におけるセキュアコーディング規約教育システム１００１の処理動作を示すフローチャート。
【図１２】実施の形態３のセキュアコーディング規約教育システム１００２の構成図。
【図１３】実施の形態３における管理者端末１０２の構成図。
【図１４】実施の形態３におけるセキュアコーディング規約教育システム１００２の処理動作を示すフローチャート。
【符号の説明】
【００５５】
１００、１０１、１０２  管理者端末、１１０  管理者用エージェント、１１１  通信部、１１２  データ表示編集部、１２０  管理者用エージェント、１２１  通信部、１２２  データ表示編集部、１３０  管理者用エージェント、１３１  通信部、１３２  コーディング規約情報自動収集部、１３３  コーディング規約情報収集サイトＵＲＬリスト格納部、２００  開発者端末、２１０  開発者用エージェント、２１１  通信部、２１２  教育用コンテンツ実行部、２１３  作業監視部、２１４  作業権限操作部、２２０  開発用ツール、２２１  コーディング規約チェック部、３００  開発者情報データベース、３１０  開発者情報、３１１  基本情報、３１２  教育情報、３１３  作業情報、３１４  開発レベル、３１５  作業権限、３２０  開発者管理ポリシ、３２１  開発レベル判定基準、３２２  開発レベル別達成条件、３２３  教育用コンテンツ選択基準、３３０  開発レベル判定部、３４０  開発者情報格納部、３５０  開発者管理ポリシ格納部、３６０  通信部、４００  教育用コンテンツデータベース、４１０  教育用コンテンツ、４２０  教育用コンテンツ格納部、４３０  提供コンテンツ選択部、４４０  通信部、５００  教育用コンテンツ生成装置、５１０  教育用コンテンツ生成規則、５１１  コーディング規約構成情報取得規則、５１２  教育用コンテンツ構築規則、５２０  教育用コンテンツ生成規則格納部、５３０  教育用コンテンツ生成部、５３１  コーディング規約構成情報抽出部、５３２  コーディング規約チェック部、５３３  教育用コンテンツ構築部、６００  コーディング規約情報、１０００、１００１、１００２  セキュアコーディング規約教育システム。
【図１】
2009151532.tif 000003
【図２】
2009151532.tif 000004
【図３】
2009151532.tif 000005
【図４】
2009151532.tif 000006
【図５】
2009151532.tif 000007
【図６】
2009151532.tif 000008
【図７】
2009151532.tif 000009
【図８】
2009151532.tif 000010
【図９】
2009151532.tif 000011
【図１０】
2009151532.tif 000012
【図１１】
2009151532.tif 000013
【図１２】
2009151532.tif 000014
【図１３】
2009151532.tif 000015
【図１４】
2009151532.tif 000016