説明

セキュアコーディング規約教育システム及びセキュアコーディング規約教育方法

【課題】 開発者に教育を徹底させることにより、高品質な開発物を効率的に製作することができるセキュアコーディング規約教育システムを提供する。
【解決手段】 開発者端末が、コーディング規約教育のための教育用コンテンツの要求を送信し、又この教育用コンテンツ要求に対応した要求教育用コンテンツを実行し、開発者情報データベースが開発者情報と開発者を管理するための開発者管理ポリシとを格納し、教育用コンテンツデータベースが教育用コンテンツを格納し、開発者端末により教育用コンテンツ要求が送信されると、開発者情報データベースの開発者情報と開発者管理ポリシと自らが格納した教育用コンテンツとを基に教育用コンテンツ要求に対応した要求教育用コンテンツを取得し開発者端末に送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェア開発に携わる開発者に実施する教育に対して、セキュリティを考慮したコーディング規約に関する教育を開発者に徹底させる方法とコーディング規約やオープンソースから開発者に教育するためのコンテンツを自動的に生成する方法に関するものである。
【背景技術】
【0002】
ソフトウェア開発は年々規模が拡大する傾向にあり、ソフトウェア開発に携わる開発者の数が増加している一方で、セキュリティや品質の向上、開発期間の短縮が求められている。
セキュリティや品質の高いソフトウェアを開発するためには、開発者に対して十分な教育を実施する必要がある。セキュリティ教育を行なう従来技術としては、例えば特許文献1のように、セキュリティ教育支援コンピュータが監視対象となる装置を監視し、予め定められた操作を検知するとインターネット接続とメール送信を遮断し、教育を要求するシステムがある。
【0003】
また、開発者に対して実施するコーディング規約の教育には、コーディング規約内容を教育する教科書の役割を成す教科書用コンテンツと、教育の効果をテストするためのテスト用コンテンツが必要である(以下、教科書用コンテンツとテスト用コンテンツを合わせて教育用コンテンツと呼ぶ)。ただし、教育用コンテンツを手動で生成するには、コンテンツ生成のための知識と多大な時間が必要となる。ここで、コンテンツを自動生成する従来技術としては、例えば特許文献2のように、コンテンツ素材情報とルールとレイアウト情報を利用してコンテンツを自動生成するシステムがある。
【特許文献1】特開2004−302585号公報
【特許文献2】特開2006−48465号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1の発明では、セキュリティ教育システムの内容を充分に理解し、実践できているかどうかを評価することができず、教育が不十分であるセキュリティ教育システム利用者である開発者が開発に関わることで、開発作業の効率や開発されたソフトウェアのセキュリティや品質が低下してしまう。
また、特許文献2の発明では、教科書用コンテンツは生成することができるが、テスト用コンテンツは自動的に作成することができない。そのため、特許文献1と同様に、教育が不十分であるセキュリティ教育システム利用者である開発者が開発に関わることで、開発作業の効率や開発されたソフトウェアのセキュリティや品質が低下してしまう。
本発明は、上記のような課題を解決するためになされたものであり、開発者に教育を徹底させることにより、高品質な開発物を効率的に製作することができるセキュアコーディング規約教育システムを提供することを目的とする。
【課題を解決するための手段】
【0005】
この発明に係るセキュアコーディング規約教育システムは、コーディング規約教育のための教育用コンテンツの要求を送信し、又この教育用コンテンツ要求に対応した要求教育用コンテンツを実行する開発者端末と、
開発者情報と開発者を管理するための開発者管理ポリシとを格納する開発者情報データベースと、
前記教育用コンテンツを格納し、前記開発者端末により前記教育用コンテンツ要求が送信されると、前記開発者情報データベースに格納された前記開発者情報と前記開発者管理ポリシと自らが格納した前記教育用コンテンツとを基に前記教育用コンテンツ要求に対応した要求教育用コンテンツを取得し前記開発者端末に送信する教育用コンテンツデータベースと、を備えたものである。
【発明の効果】
【0006】
この発明は、開発者情報と開発者を管理するための開発者管理ポリシとに基づいて選択された教育用コンテンツに従って、開発者にシステム利用のための教育を受けさせることにより、教育の理解の低い、つまり開発レベルの低い開発者に教育を徹底させることができるので、高品質な開発物を効率的に製作することができる。
【発明を実施するための最良の形態】
【0007】
実施の形態1.
図1は、実施の形態1のセキュアコーディング規約教育システム1000の構成図である。
セキュアコーディング規約教育システム1000は、管理者端末100、開発者端末200、開発者情報データベース300、教育用コンテンツデータベース400を備える。
さらに、管理者端末100上では、管理者用エージェント110が稼動しており、開発者端末200上では、開発者用エージェント210と開発用ツール220が稼動する。
開発者情報データベース300上では、開発者に関する情報である開発者情報310と開発者を管理するための情報である開発者管理ポリシ320とが格納されており、管理者が設定した開発者管理ポリシに基づいて開発者を管理する。
【0008】
開発者情報310は、開発者の名前やID、所属といった開発者を識別するための情報を表す基本情報311と、開発者が本システムを利用して教育用コンテンツを利用した進捗や成績を表す教育情報312と、開発者が本システムの監視する開発用ツール220を利用して行った作業の進捗やコーディング規約違反箇所、コーディング規約違反回数を表す作業情報313と、開発者の教育情報312と作業情報313と、後述する管理者が設定した開発レベル判定基準321から判定した開発者の開発レベル314と、開発者の開発用ツールで作業する権限の有無を表す作業権限315と、からなる。
【0009】
開発者管理ポリシ320は、管理者が教育情報312や作業情報313から、開発者の開発能力を任意のレベルに分けるための基準を表す開発レベル判定基準321と、開発レベル314によって、開発者が作業権限を得るために達成すべき条件を表す開発レベル別達成条件322と、開発者の教育情報312と作業情報313から、開発者が実施すべき教育用コンテンツ410を選択する基準を表す教育用コンテンツ選択基準323と、からなる。
教育用コンテンツデータベース400上では、開発者にコーディング規約を教育するための教育用コンテンツ410が格納されており、管理者が設定した教育用コンテンツ選択基準323を利用して、開発者に必要な教育用コンテンツ410を提供する。
【0010】
図2は、管理者端末100の構成図である。
管理者端末100上で稼動する管理者用エージェント110は、開発者情報データベース300、教育用コンテンツデータベース400と通信する通信手段としての通信部111と、開発者情報データベース300、教育用コンテンツデータベース400から得た情報を表示、編集するデータ表示編集手段としてのデータ表示編集部112と、からなる。
【0011】
図3は、開発者端末200の構成図である。
開発者端末200上で稼動する開発者用エージェント210は、開発者情報データベース300と教育用コンテンツ400との通信を行なう通信手段としての通信部211と、教育用コンテンツデータベース400から取得した教育用コンテンツ410を実行する教育用コンテンツ実行手段としての教育用コンテンツ実行部212と、開発用ツール220上の作業の進捗やコーディング規約違反を監視する作業監視手段としての作業監視部213と、開発者情報データベース300からの指示により、開発用ツール220の利用を制限する作業権限操作としての作業権限操作部214と、からなる。
開発用ツール220は、開発者が開発するために利用し、開発者用エージェント210が許可する場合のみ利用できる。また、開発用ツール220上では、コーディング規約違反を監視するコーディング規約チェック手段としてのコーディング規約チェック部221が稼動する。
【0012】
図4は、開発者情報データベース300の構成図である。
開発者情報データベース300は、管理者端末100や開発者端末200や教育用コンテンツデータベース400と通信する通信手段としての通信部360と、開発者情報310と開発者管理ポリシ320から、開発者の開発レベルを判定する開発レベル判定手段としての開発レベル判定部330と、開発者情報310を格納する開発者情報格納手段としての開発者情報格納部340と、開発者管理ポリシ320を格納する開発者管理ポリシ格納手段としての開発者管理ポリシ格納部350と、からなる。
図1で説明したとおり、開発者情報310は、基本情報311と、教育情報312と、作業情報313と、開発レベル314と、作業権限315と、からなる。開発者管理ポリシ320は、開発レベル判定基準321と、開発レベル別達成条件322と、教育用コンテンツ選択基準323と、からなる。
【0013】
図5は、教育用コンテンツデータベース400の構成図である。
教育用コンテンツデータベース400は、管理者端末100や開発者端末200や開発者情報データベース300と通信する通信手段としての通信部440と、教育用コンテンツ410を格納する教育用コンテンツ格納手段としての教育用コンテンツ格納部420と、開発者情報310と開発者管理ポリシ320を利用して開発者に必要な教育用コンテンツを選択する提供コンテンツ選択手段としての提供コンテンツ選択部430と、からなる。
【0014】
次に、セキュアコーディング規約教育システム1000の処理動作について説明する。
図6は、管理者がセキュアコーディング規約教育システム1000を利用する際のセキュアコーディング規約教育システム1000の処理動作を示すフローチャートである。
まず、管理者は、管理者端末100上で管理者用エージェント110を起動する(ステップS1)。続いて、管理者は、教育用コンテンツ410の更新、開発者情報310の更新、開発者管理ポリシ320の更新の内、実行する処理を選択する(ステップS2)。
【0015】
管理者により教育用コンテンツ410の更新の処理が選択された場合には、管理者用エージェント110は通信部111を利用して教育用コンテンツデータベース400にアクセスし、認証を実施する(ステップS3)。
認証が成功した場合、管理者用エージェント110は、通信部111を利用して教育用コンテンツデータベース400に教育用コンテンツ要求を送信する(ステップS4)。
教育用コンテンツデータベース400は、管理者により要求され、管理者用エージェント120から送信された教育用コンテンツ要求に対応した教育用コンテンツ410を教育用コンテンツ格納部420から取得し、通信部440を利用して管理者端末100に教育用コンテンツ応答を送信する。教育用コンテンツ応答には、管理者に要求された教育用コンテンツ410が含まれる(ステップS5)。
【0016】
管理者は、データ表示編集部112を利用し、受信した教育用コンテンツ410を閲覧し、必要があれば更新する(ステップS6)。
内容を更新した場合、更新を反映させるために、管理者用エージェント110は、通信部111を利用して教育用コンテンツデータベース400に教育用コンテンツ更新要求を送信する(ステップS7)。教育用コンテンツ更新要求には、更新された教育用コンテンツ410が含まれる。
教育用コンテンツデータベース400は、受信した更新された教育用コンテンツ410を利用し、教育用コンテンツ格納部420を更新する(ステップS8)。なお、内容を更新しなかった場合はステップS2に戻る。
【0017】
また、管理者により開発者情報310の更新の処理が選択された場合には、管理者用エージェント110は、通信部111を利用して開発者情報データベース300にアクセスし、認証を実施する(ステップS9)。
認証が成功した場合、管理者用エージェント110は、通信部111を利用して開発者情報データベース300に開発者情報要求を送信する(ステップS10)。
開発者情報データベース300は、開発者情報格納部340から、管理者に要求された開発者情報310を取得し、通信部360を利用して管理者端末100に開発者情報応答を送信する(ステップS11)。開発者情報応答には、管理者に要求された開発者情報310が含まれる。
【0018】
管理者は、データ表示編集部112を利用し、受信した開発者情報310を閲覧し、必要があれば更新する(ステップS12)。
内容を更新した場合、更新を反映させるために、管理者用エージェント110は、通信部111を利用して開発者情報データベース300に開発者情報更新要求を送信する(ステップS13)。開発者情報更新要求には、更新された開発者情報310が含まれる。
開発者情報データベース300は、受信した更新された開発者情報310を利用し、開発者情報格納部340を更新する(ステップS14)。なお、内容を更新しなかった場合はステップS2に戻る。
【0019】
また、管理者により開発者管理ポリシ320の更新の処理が選択された場合には、管理者用エージェント110は、通信部111を利用して開発者情報データベース300にアクセスし、認証を実施する(ステップS15)。
認証が成功した場合、管理者用エージェント110は、通信部111を利用して開発者情報データベース300に開発者管理ポリシ要求を送信する(ステップS16)。
開発者情報データベース300は、開発者管理ポリシ格納部350から、管理者に要求された開発者管理ポリシ320を取得し、通信部360を利用して管理者端末100に開発者管理ポリシ応答を送信する(ステップS17)。開発者管理ポリシ応答には、管理者に要求された開発者管理ポリシ320が含まれる。
【0020】
管理者は、データ表示編集部112を利用し、受信した開発者管理ポリシ320を閲覧し、必要があれば更新する(ステップS18)。
内容を更新した場合、更新を反映させるために、管理者用エージェント110は、通信部111を利用して開発者情報データベース300に開発者管理ポリシ更新要求を送信する(ステップS19)。開発者管理ポリシ更新要求には、更新された開発者管理ポリシ320が含まれる。
開発者情報データベース300は、受信した更新された開発者管理ポリシ320を利用し、開発者管理ポリシ格納部350を更新する(ステップS20)。なお、内容を更新しなかった場合はステップS2に戻る。
【0021】
図7は、開発者がセキュアコーディング規約教育システム1000を利用する際のセキュアコーディング規約教育システム1000の処理動作を示すフローチャートである。
まず、開発者は、開発者端末200上で開発者用エージェント210を起動する(ステップS31)。
開発者用エージェント210は、通信部211を利用して開発者情報データベース300にアクセスし、認証を実施する(ステップS32)。
認証が成功した場合、開発者用エージェント210は、通信部211を利用して開発者情報データベース300に作業権限確認要求を送信する(ステップS33)。
【0022】
開発者情報データベース300は、開発者情報格納部340から開発レベル314と作業権限315を、開発者管理ポリシ格納部350から開発レベル別達成条件322を取得し、通信部360を利用して開発者端末200に作業権限確認応答を送信する(ステップS34)。作業権限確認応答には、開発レベル314と作業権限315と開発レベル別達成条件322が含まれる。
【0023】
ステップS35において、(分岐条件)作業権限315が「ある」場合はステップS36以降の処理、即ち開発作業を実施し、作業権限315が「ない」場合はステップS41以降の処理、即ち教育を実施する。
次に、作業権限315が「ある」場合と「ない」場合について説明する。
作業権限315がある場合、開発者用エージェント210は、作業権限操作部214を利用して開発用ツール220による開発作業を許可する(ステップS36)。また、作業監視部213を利用して、開発用ツール220のコーディング規約チェック部221に、コーディング規約のチェックを行うよう指示をする。
開発者は、開発用ツール220を利用し、開発作業を実施する。
開発作業中、コーディング規約チェック部221は、定期的、もしくはリアルタイムにコーディング規約チェックを実施し、作業監視部213に作業監視応答を送信する(ステップS37)。作業監視応答には、作業監視部213が取得した、開発者の作業進捗やコーディング規約違反箇所、コーディング規約違反回数といった作業情報313が含まれる。
【0024】
開発者用エージェント210は、通信部211を利用して開発者情報データベース300に作業情報更新要求を送信する(ステップS38)。作業情報更新要求には、作業情報313が含まれる。
開発者情報データベース300は、受信した作業情報313を利用し、開発者情報格納部340を更新する(ステップS39)。
【0025】
開発レベル判定部330は、開発者情報格納部340から開発者情報310を、開発者管理ポリシ格納部350から開発者管理ポリシ320を取得し、教育情報312、作業情報313、開発レベル判定基準321を利用して、開発者の開発レベル314と作業権限315を決定し、開発者情報格納部340を更新する(ステップS40)。
作業権限315が更新された場合、通信部360を利用して開発者端末200に作業権限変更要求を送信する。作業権限変更要求には、開発レベル314、作業権限315、開発レベル別達成条件322が含まれる。
ステップS35で作業権限315がない場合、開発者用エージェント210は、開発用ツール220による開発作業を禁止する(ステップS41)。
【0026】
開発者用エージェント210は、通信部211を利用して教育用コンテンツデータベース400にアクセスし、認証を行なう(ステップS42)。
認証が成功した場合、開発者用エージェント210は、通信部211を利用して教育用コンテンツデータベース400に教育用コンテンツ利用要求を送信する(ステップS43)。
教育用コンテンツデータベース400は、通信部440を利用して開発用情報データベース300に開発者情報要求と開発者管理ポリシ要求を送信する(ステップS44)。
【0027】
開発者情報データベース300は、開発者情報格納部340から開発者情報310を、開発者管理ポリシ格納部350から開発者管理ポリシ320を取得し、通信部360を利用して教育用コンテンツデータベース400に開発者情報応答と開発者管理ポリシ応答を送信する(ステップS45)。ここで、開発者情報応答には開発者情報310が、開発者管理ポリシ応答には開発者管理ポリシ320がそれぞれ含まれる。
【0028】
提供用コンテンツ選択部430は、取得した開発者情報310と開発者管理ポリシ320から、開発者に提供する教育用コンテンツ410を選択し、通信部440を利用して開発者端末200に教育用コンテンツ利用応答を送信する(ステップS46)。教育用コンテンツ利用応答には、教育用コンテンツ410が含まれる。
開発者は、教育用コンテンツ実行部212を利用して、教育用コンテンツデータベース400から受信した教育用コンテンツ410を実行する(ステップS47)。
【0029】
開発者用エージェント210は、通信部211を利用して開発者情報データベース300に教育情報更新要求を送信する(ステップS48)。教育情報更新要求には、教育情報312が含まれる。
開発者情報データベース300は、受信した教育情報312を利用し、開発者情報格納部340を更新する(ステップS49)。
なお、本実施の形態では、管理者端末100、開発者情報データベース300、教育用コンテンツデータベース400をそれぞれ別々の装置の場合について説明したが、管理者端末100、開発者情報データベース300、教育用コンテンツデータベース400を同じ装置上に実装しても、同様の効果を得ることができる。
【0030】
以上のように本実施の形態によれば、開発者情報310と開発者を管理するための開発者管理ポリシ320とに基づいて選択された教育用コンテンツに従って、開発者にシステム利用のための教育を受けさせることにより、教育の理解の低い、つまり開発レベルの低い開発者に教育を徹底させることができ、その結果、安全で高品質な開発物を製作することができる。
また、開発者が教育を十分に理解し、実践できているか、開発者の教育の進捗や成績、開発作業の進捗やコーディング規約違反の指摘箇所やコーディング規約違反回数などから、開発者の開発スキルを評価し、教育が必要であると判断した開発者に対して、教育を完了するまで開発作業権限を剥奪することで、教育を徹底させることができる。
【0031】
実施の形態2.
図8は、実施の形態2のセキュアコーディング規約教育システム1001の構成図である。
セキュアコーディング規約教育システム1001は、管理者端末101、開発者端末200、開発者情報データベース300、教育用コンテンツデータベース400、教育用コンテンツ生成装置500を備える。
ここで、開発者端末200、開発者情報データベース300、教育用コンテンツデータベース400は機能、構造、動作については、実施の形態1と同じものであるため説明を省略する。管理者端末101は、管理者端末101上で稼動する管理用エージェント120を備える。
【0032】
教育用コンテンツ生成装置500は、教育用コンテンツ生成規則510を備える。教育用コンテンツ生成規則510は、コーディング規約構成情報取得規則511と教育用コンテンツ構築規則512からなる。
教育用コンテンツ生成装置500は、管理者端末101から与えられたコーディング規約及びオープンソースから、自動的に教育用コンテンツ410を生成する。即ち、管理者が管理者端末101に設定したコーディング規約及びオープンソースから教育用コンテンツ410を生成する。
【0033】
図9は、管理者端末101の構成図である。
管理者用エージェント120は、実施の形態1の管理者端末100の通信部111に、教育用コンテンツ生成装置500と通信する機能を加えた通信手段としての通信部121と、実施の形態1の管理者端末100のデータ表示編集手段としてのデータ表示編集部112に、教育用コンテンツ生成装置500から得た情報を表示、編集できるデータ表示編集手段としてのデータ表示編集部122と、を備える。
ここで、管理者端末101は、実施の形態1の管理者端末の機能に加えて、教育用コンテンツ生成装置500にコーディング規約およびオープンソースを送信することで、教育用コンテンツ生成装置500に教育用コンテンツ410を自動生成させることができる機能を付加している。
【0034】
図10は、教育用コンテンツ生成装置500の構成図である。
教育用コンテンツ生成装置500は、教育用コンテンツ生成規則510を格納する教育用コンテンツ生成規則格納手段としての教育用コンテンツ生成規則格納部520と、教育用コンテンツを生成する教育用コンテンツ生成手段としての教育用コンテンツ生成部530と、管理者端末101と通信するための通信手段としての通信部540と、からなる。
教育用コンテンツ生成規則510は、コーディング規約からコーディング規約の構成情報を取得するための規則であるコーディング規約構成情報取得規則511と、コーディング規約の構成情報やオープンソースから教育用コンテンツ410を生成するための規則である教育用コンテンツ構築規則512と、からなる。
【0035】
教育用コンテンツ生成部530は、管理者端末101から送信されたコーディング規約とコーディング規約構成情報取得規則511からコーディング規約構成情報を抽出するコーディング規約構成情報抽出部531と、管理者端末101から送信されたオープンソースのコーディング規約チェックを行なうコーディング規約チェック部532と、コーディング規約構成情報抽出部531から得たコーディング構成情報とコーディング規約チェック部532から得たオープンソースの規約チェック結果と教育用コンテンツ構築規則512とから教育用コンテンツ410を生成する教育用コンテンツ構築部533と、により構成される。
【0036】
次に、セキュアコーディング規約教育システム1001の処理動作について説明する。
図11は、管理者がセキュアコーディング規約教育システム1001を利用する際のセキュアコーディング規約教育システム1001の処理動作を示すフローチャートである。
なお、開発者がセキュアコーディング規約教育システム1001を利用する際の処理動作は実施の形態1の図7と同一であるため説明を省略する。
まず、管理者は、管理者端末101上で管理者用エージェント120を起動する(ステップS51)。続いて、管理者は、教育用コンテンツ410の更新、開発者情報310の更新、開発者管理ポリシ320の更新、教育用コンテンツ生成規則510の更新、教育用コンテンツ生成要求の内、実行する処理を選択する(ステップS2)。
【0037】
教育用コンテンツ410の更新、開発者情報310の更新、開発者管理ポリシ320の更新に関しては、実施の形態1の管理者端末100を管理者端末101、管理者用エージェント110を管理者用エージェント120と置き換えた上で、管理者端末101が、実施の形態1の図6のフローチャートと同様の処理を実施する(ステップS52)。
【0038】
管理者用エージェント120は、通信部121を利用して、教育用コンテンツ生成装置500にアクセスし、認証を実施する(ステップS53)。
認証が成功した場合、管理者用エージェント120は、通信部121を利用して教育用コンテンツ生成装置500に教育用コンテンツ生成規則要求を送信する(ステップS54)。
【0039】
教育用コンテンツ生成装置500は、管理者により要求され、管理者用エージェント120から送信された教育用コンテンツ生成規則要求に対応した教育用コンテンツ生成規則510を教育用コンテンツ生成規則格納部520から取得し、通信部540を利用して管理者端末101に教育用コンテンツ生成規則応答を送信する(ステップS55)。教育用コンテンツ生成規則応答には、管理者に要求された教育用コンテンツ生成規則510が含まれる。
管理者は、データ表示編集部122を利用し、受信した教育用コンテンツ生成規則510を閲覧し、必要があれば更新する(ステップS56)。
【0040】
内容を更新した場合、更新を反映させるために、管理者用エージェント120は、通信部121を利用して教育用コンテンツ生成装置500に教育用コンテンツ生成規則更新要求を送信する(ステップS57)。教育用コンテンツ生成規則更新要求には、更新された教育用コンテンツ生成規則510が含まれる。
教育用コンテンツ生成装置500は、受信した更新された教育用コンテンツ生成規則510を利用し、教育用コンテンツ生成規則格納部520を更新する(ステップS58)。
【0041】
管理者用エージェント120は、通信部121を利用して教育用コンテンツ生成装置500にアクセスし、認証を実施する(ステップS59)。
認証が成功した場合、管理用エージェント120は、通信部121を利用して教育用コンテンツ生成装置500に教育用コンテンツ生成要求を送信する(ステップS60)。教育用コンテンツ生成要求には、コーディング規約及びオープンソースが含まれる。
教育用コンテンツ生成部530は、教育用コンテンツ生成規則格納部520からコーディング規約構成情報取得規則511と教育用コンテンツ構築規則512とを含む教育用コンテンツ生成規則510を取得する(ステップS61)。
【0042】
コーディング規約構成情報抽出部531は、教育用コンテンツ生成規則510に含まれているコーディング規約構成情報取得規則511を利用し、管理者から与えられたコーディング規約から、コーディング規約構成情報を抽出する。即ち、管理者が管理者端末101に設定したコーディング規約からコーディング規約構成情報を抽出する。
さらに、コーディング規約構成情報抽出部531は、抽出したコーディング規約構成情報を教育用コンテンツ構築部533に送信する(ステップS62)。
【0043】
コーディング規約チェック部532は、オープンソースに対してコーディング規約チェックを実施し、コーディング規約チェック結果を教育用コンテンツ構築部533に送信する(ステップS63)。コーディング規約チェック結果には、修正前のソースコード(コーディング違反のあるソースコード例)、修正後のソースコード(修正例)、コーディング違反内容(テストの項目に関係する)が含まれる。
教育用コンテンツ構築部533は、教育用コンテンツ生成規則510に含まれている教育用コンテンツ構築規則512を利用してコーディング規約構成情報とコーディングチェック結果とから教育用コンテンツ410を自動生成し、通信部540を利用して管理者端末101に教育用コンテンツ生成応答を送信する(ステップS64)。教育用コンテンツ生成応答には、生成した教育用コンテンツ410が含まれる。
【0044】
管理者は、データ表示編集部122を利用し、受信した教育用コンテンツ410を閲覧し、必要があれば更新する(ステップS65)。
管理者用エージェント120は、通信部121を利用して教育用コンテンツデータベース400にアクセスし、認証を実施する(ステップS66)。
認証が成功した場合、管理者用エージェント120は、通信部121を利用して教育用コンテンツデータベース400に教育用コンテンツ更新要求を送信する(ステップS67)。教育用コンテンツ更新要求には、教育用コンテンツ410が含まれる。
教育用コンテンツデータベース400は、受信した教育用コンテンツ410を利用し、教育用コンテンツ格納部420を更新する(ステップS68)。
【0045】
以上のように本実施の形態によれば、実施の形態1で得られた効果に加え、コーディング規約やオープンソースから自動的に教育用コンテンツを生成することにより、コンテンツ作成能力が無くても教育用コンテンツを容易に、かつ短時間で作成できるため、教育用コンテンツ作成にかかる時間を大幅に短縮でき、開発者の教育に利用できる時間を増加させることができ、開発者に早期に教育を開始することができる。
【0046】
実施の形態3.
図12は、実施の形態3のセキュアコーディング規約教育システム1002の構成図である。
セキュアコーディング規約教育システム1002は、管理者端末102、開発者端末200、開発者情報データベース300、教育用コンテンツデータベース400、教育用コンテンツ生成装置500を備える。
ここで、開発者端末200、開発者情報データベース300、教育用コンテンツデータベース400、教育用コンテンツ生成装置500は機能、構造、動作、全て実施の形態2と同じものであるため説明を省略する。
管理者端末102は、管理者端末102上で稼動する管理用エージェント130を備えており、インターネットに接続している。
インターネット上には、コーディング規約を取り扱っているサイトやコーディング規約についてコメントをしてあるブログや掲示板があり、そこには、コーディング規約の更新情報やコーディング規約の例や不具合に関する情報、オープンソースといったコーディング規約情報600が存在している。
【0047】
図13は、管理者端末102の構成図である。
管理者用エージェント130は、実施の形態2の管理者端末101の通信部121に、コーディング規約情報自動収集部132から得たコーディング規約やオープンソースを扱うことのできる通信手段としての通信部131、実施の形態2で説明したのと同様なデータ表示編集手段としてのデータ表示編集部122、コーディング規約に関する情報を自動収集するコーディング規約情報自動収集手段としてのコーディング規約情報自動収集部132、コーディング規約情報を収集するサイトのURLのリストを格納するコーディング規約情報収集サイトURLリスト格納手段としてのコーディング規約情報収集サイトURLリスト格納部133からなる。
【0048】
次に、セキュアコーディング規約教育システム1002の処理動作について説明する。
図14は、管理者がセキュアコーディング規約教育システム1002の処理動作を利用する際のセキュアコーディング規約教育システム1002の処理動作を示すフローチャートである。
なお、開発者がセキュアコーディング規約教育システム1002を利用する際の処理動作は実施の形態1の図7と同一であるため説明を省略する。
【0049】
管理者は、管理者端末102上で管理者用エージェント130を起動する(ステップS71)。
管理者は、ステップS72で実行する教育用コンテンツ410の更新、開発者情報310の更新、開発者管理ポリシ320の更新、教育用コンテンツ生成要求、教育用コンテンツ生成規則510の更新、又はステップS73〜ステップS75で実行するコーディング規約情報自動収集の内、実行する処理を選択する(ステップS2)。
【0050】
教育用コンテンツ410の更新、開発者情報310の更新、開発者管理ポリシ320の更新、教育用コンテンツ生成、教育用コンテンツ生成規則510の更新は、実施の形態2の管理者端末101を管理者端末102、管理者用エージェント120を管理者用エージェント130と置き換えた上で、実施の形態2と同様の処理を実施する(ステップS72)。
【0051】
コーディング規約情報収集サイトURLリスト格納部133は、自らが格納するコーディング規約情報収集サイトURLリストを含むコーディング規約自動収集要求をコーディング規約情報自動収集部132に送信する(ステップS73)。
【0052】
コーディング規約情報自動収集部132は、コーディング規約情報収集サイトURLリストに記載されているサイトを探索し、コーディング規約に関する情報として、コーディング規約の更新情報やオープンソースを自動的に収集する(ステップS74)。
管理者用エージェント130は、収集したコーディング規約の更新情報やオープンソースを元に教育用コンテンツを生成する(ステップS75)。
【0053】
以上のように本実施の形態によれば、実施の形態1、2で得られた効果に加え、コーディング規約に関する情報を自動的に収集し、さらに、収集した情報を利用することにより、教育用コンテンツを自動生成することができ、教育用コンテンツを生成するために必要な時間を大幅に短縮することができる。
【図面の簡単な説明】
【0054】
【図1】実施の形態1のセキュアコーディング規約教育システム1000の構成図。
【図2】実施の形態1における管理者端末100の構成図。
【図3】実施の形態1における開発者端末200の構成図。
【図4】実施の形態1における開発者情報データベース300の構成図。
【図5】実施の形態1における教育用コンテンツデータベース400の構成図。
【図6】実施の形態1におけるセキュアコーディング規約教育システム1000の処理動作を示すフローチャート。
【図7】実施の形態1におけるセキュアコーディング規約教育システム1000の処理動作を示すフローチャート。
【図8】実施の形態2のセキュアコーディング規約教育システム1001の構成図。
【図9】実施の形態2における管理者端末101の構成図。
【図10】実施の形態2における教育用コンテンツ生成装置500の構成図。
【図11】実施の形態2におけるセキュアコーディング規約教育システム1001の処理動作を示すフローチャート。
【図12】実施の形態3のセキュアコーディング規約教育システム1002の構成図。
【図13】実施の形態3における管理者端末102の構成図。
【図14】実施の形態3におけるセキュアコーディング規約教育システム1002の処理動作を示すフローチャート。
【符号の説明】
【0055】
100、101、102 管理者端末、110 管理者用エージェント、111 通信部、112 データ表示編集部、120 管理者用エージェント、121 通信部、122 データ表示編集部、130 管理者用エージェント、131 通信部、132 コーディング規約情報自動収集部、133 コーディング規約情報収集サイトURLリスト格納部、200 開発者端末、210 開発者用エージェント、211 通信部、212 教育用コンテンツ実行部、213 作業監視部、214 作業権限操作部、220 開発用ツール、221 コーディング規約チェック部、300 開発者情報データベース、310 開発者情報、311 基本情報、312 教育情報、313 作業情報、314 開発レベル、315 作業権限、320 開発者管理ポリシ、321 開発レベル判定基準、322 開発レベル別達成条件、323 教育用コンテンツ選択基準、330 開発レベル判定部、340 開発者情報格納部、350 開発者管理ポリシ格納部、360 通信部、400 教育用コンテンツデータベース、410 教育用コンテンツ、420 教育用コンテンツ格納部、430 提供コンテンツ選択部、440 通信部、500 教育用コンテンツ生成装置、510 教育用コンテンツ生成規則、511 コーディング規約構成情報取得規則、512 教育用コンテンツ構築規則、520 教育用コンテンツ生成規則格納部、530 教育用コンテンツ生成部、531 コーディング規約構成情報抽出部、532 コーディング規約チェック部、533 教育用コンテンツ構築部、600 コーディング規約情報、1000、1001、1002 セキュアコーディング規約教育システム。

【特許請求の範囲】
【請求項1】
コーディング規約教育のための教育用コンテンツの要求を送信し、又この教育用コンテンツ要求に対応した要求教育用コンテンツを実行する開発者端末と、
開発者情報と開発者を管理するための開発者管理ポリシとを格納する開発者情報データベースと、
前記教育用コンテンツを格納し、前記開発者端末により前記教育用コンテンツ要求が送信されると、前記開発者情報データベースに格納された前記開発者情報と前記開発者管理ポリシと自らが格納した前記教育用コンテンツとを基に前記教育用コンテンツ要求に対応した要求教育用コンテンツを取得し前記開発者端末に送信する教育用コンテンツデータベースと、
を備えたことを特徴とするセキュアコーディング規約教育システム。
【請求項2】
前記教育用コンテンツデータベースは、前記開発者端末により前記教育用コンテンツ要求が送信されると、前記開発者情報データベースに開発者情報要求と開発者管理ポリシ要求とを送信し、又前記開発者情報データベースにより送信された前記開発者情報と前記開発者管理ポリシとを基に自らが格納した教育用コンテンツの中から前記要求教育用コンテンツを取得し前記開発者端末に送信し、
前記開発者情報データベースは、前記教育用コンテンツデータベースにより送信された前記開発者情報要求と前記開発者管理ポリシ要求とに対応した前記開発者情報と前記開発者管理ポリシとを自らが格納した前記開発者情報と前記開発者管理ポリシとの中から取得し、前記教育用コンテンツデータベースに送信することを特徴とする請求項1記載のセキュアコーディング規約教育システム。
【請求項3】
前記開発者情報データベースに格納された前記開発者情報は、開発者が開発用ツールを用いて作業する権限の有無を示す作業権限を含み、
前記開発者情報データベースは、自らが格納した前記開発者情報の中から前記開発者端末により送信された作業権限確認要求に対応した前記作業権限を取得し、
前記開発者端末は、前記作業権限確認要求を前記開発者情報データベースに送信し、又前記開発者情報データベースにより取得された前記作業権限を基に前記開発用ツールにより作業を実行するか或いは前記教育用コンテンツを実行するかを決定することを特徴とする請求項1又は請求項2記載のセキュアコーディング規約教育システム。
【請求項4】
前記開発者端末は、前記開発者情報データベースにより取得された前記作業権限が前記開発用ツールを用いて作業する権限のない場合は、前記教育用コンテンツデータベースにより送信された前記要求教育用コンテンツを実行することを特徴とする請求項3記載のセキュアコーディング規約教育システム。
【請求項5】
前記教育用コンテンツデータベースに教育用コンテンツ要求を送信し、又前記教育用コンテンツデータベースにより送信された前記要求教育用コンテンツを受信する管理者端末を備え、
前記教育用コンテンツデータベースは、前記管理者端末により送信された前記教育用コンテンツ要求に対応した前記要求教育用コンテンツを自らが格納した前記教育用コンテンツの中から取得し前記管理者端末に送信することを特徴とする請求項1〜請求項4のいずれかに記載のセキュアコーディング規約教育システム。
【請求項6】
前記管理者端末は、前記教育用コンテンツデータベースにより送信された前記要求教育用コンテンツの内容が管理者により更新された場合には、前記教育用コンテンツデータベースに更新済教育用コンテンツを送信し、
前記教育用コンテンツデータベースは、前記管理者端末により送信された前記更新済教育用コンテンツを基に自らが格納した前記教育用コンテンツを更新することを特徴とする請求項5記載のセキュアコーディング規約教育システム。
【請求項7】
前記管理者端末は、前記開発者情報データベースに開発者情報要求を送信し、又前記開発者情報データベースにより送信された開発者情報を受信し、
前記開発者情報データベースは、前記管理者端末により送信された前記開発者情報要求に対応した前記開発者情報を自らが格納した前記開発者情報の中から取得し前記管理者端末に送信することを特徴とする請求項5記載のセキュアコーディング規約教育システム。
【請求項8】
前記管理者端末は、前記開発者情報データベースにより送信された前記開発者情報の内容が管理者により更新された場合には、前記開発者情報データベースに更新済開発者情報を送信し、
前記開発者情報データベースは、前記管理者端末により送信された前記更新済開発者情報を基に自らが格納した前記開発者情報を更新することを特徴とする請求項7記載のセキュアコーディング規約教育システム。
【請求項9】
前記管理者端末は、前記開発者情報データベースに開発者管理ポリシ要求を送信し、又前記開発者情報データベースにより送信された前記開発者管理ポリシを受信し、
前記開発者情報データベースは、前記管理者端末により送信された前記開発者管理ポリシ要求に対応した前記開発者管理ポリシを自らが格納した前記開発者管理ポリシの中から取得し前記管理者端末に送信することを特徴とする請求項5記載のセキュアコーディング規約教育システム
【請求項10】
前記管理者端末は、前記開発者情報データベースにより送信された前記開発者管理ポリシの内容が管理者により更新された場合には、前記開発者情報データベースに更新済開発者管理ポリシを送信し、
前記開発者情報データベースは、前記管理者端末により送信された前記更新済開発者管理ポリシを基に自らが格納した前記開発者管理ポリシを更新することを特徴とする請求項9記載のセキュアコーディング規約教育システム。
【請求項11】
前記管理者端末により送信されたコーディング規約とオープンソースとを基に教育用コンテンツを生成する教育用コンテンツ生成装置を備え、
前記管理者端末は、管理者により設定された前記コーディング規約と前記オープンソースとを教育用コンテンツ生成装置に送信し、又前記教育用コンテンツ生成装置により生成された前記教育用コンテンツを受信することを特徴とする請求項5記載のセキュアコーディング規約教育システム。
【請求項12】
前記管理者端末は、前記教育用コンテンツ生成装置に教育用コンテンツ生成規則要求を送信し、又前記教育用コンテンツ生成装置により送信された教育用コンテンツ生成規則を受信し、
前記教育用コンテンツ生成装置は、教育用コンテンツを生成するための教育用コンテンツ生成規則を格納した教育用コンテンツ生成規則格納手段を備え、前記管理者端末により前記教育用コンテンツ生成規則要求が送信されると、前記教育用コンテンツ生成規則格納手段の中から前記教育用コンテンツ生成規則要求に対応した前記教育用コンテンツ生成規則を選択し前記管理者端末に送信することを特徴とする請求項11記載のセキュアコーディング規約教育システム。
【請求項13】
前記管理者端末は、前記教育用コンテンツ生成装置により送信された前記教育用コンテンツ生成規則の内容が管理者により更新された場合には、前記教育用コンテンツ生成装置に更新済教育用コンテンツ生成規則を送信し、
前記教育用コンテンツ生成装置は、前記管理者端末により送信された前記更新済教育用コンテンツ生成規則を基に前記教育用コンテンツ生成規則格納手段に格納された前記教育用コンテンツ生成規則を更新することを特徴とする請求項12記載のセキュアコーディング規約教育システム。
【請求項14】
前記教育用コンテンツ生成装置は、コーディング規約の構成情報を取得するためのコーディング規約構成情報取得規則と、コーディング規約構成情報とオープンソースとにより教育用コンテンツを生成するための教育用コンテンツ構築規則と、を格納した教育用コンテンツ生成規則格納手段と、
前記教育用コンテンツ生成規則格納手段に格納された前記コーディング規約構成情報取得規則を基に管理者により設定されたコーディング規約からコーディング規約構成情報を抽出するコーディング規約構成情報抽出手段と、
オープンソースのコーディング規約をチェックし、コーディング規約チェック結果を送信するコーディング規約チェック手段と、
前記教育用コンテンツ構築規則と、前記コーディング規約構成情報と、前記コーディング規約チェック結果と、を基に前記教育用コンテンツを生成し、前記管理者端末に送信する教育用コンテンツ構築手段と、
を備えたことを特徴とする請求項12又は請求項13記載のセキュアコーディング規約教育システム。
【請求項15】
前記管理者端末は、前記教育用コンテンツ構築手段により送信された前記教育用コンテンツの内容が管理者により更新された場合には、前記教育用コンテンツデータベースに更新済教育用コンテンツを送信し、
前記教育用コンテンツデータベースは、前記管理者端末により送信された前記更新済教育用コンテンツを基に自らが格納した前記教育用コンテンツを更新することを特徴とする請求項14記載のセキュアコーディング規約教育システム。
【請求項16】
前記管理者端末は、コーディング規約情報収集サイトURLリストを格納し、このコーディング規約情報収集サイトURLリストを含むコーディング規約自動収集要求を送信するコーディング規約情報収集サイトURLリスト格納手段と、
前記コーディング規約情報収集サイトURLリスト格納部により送信された前記コーディング規約情報収集サイトURLリストを基にコーディング規約情報を自動収集するコーディング規約情報自動収集手段とを備え、
前記コーディング規約情報自動収集部により自動収集した前記コーディング規約情報を基に前記教育用コンテンツを生成し前記管理者端末の送信することを特徴とする請求項5〜請求項15のいずれかに記載のセキュアコーディング規約教育システム。
【請求項17】
開発者端末からコーディング規約教育のための教育用コンテンツの要求が送信されると、開発者情報データベースに格納された開発者情報と開発者管理ポリシと、教育用コンテンツデータベースに格納された教育用コンテンツとを基に前記開発者端末からの要求に対応した要求教育用コンテンツを取得し前記開発者端末に送信するセキュアコーディング規約教育システムによるセキュアコーディング規約教育方法であって、
前記開発者端末が、コーディング規約教育のための教育用コンテンツの要求を前記教育用コンテンツデータベースに送信する第1の送信ステップと、
前記教育用コンテンツデータベースが、前記開発者端末により前記教育用コンテンツ要求が送信されると、前記開発者情報データベースに開発者情報要求と開発者管理ポリシ要求とを送信する第2の送信ステップと、
前記開発者情報データベースが、前記教育用コンテンツデータベースにより送信された前記開発者情報要求と前記開発者管理ポリシ要求とに対応した前記開発者情報と前記開発者管理ポリシとを自らが格納した前記開発者情報と前記開発者管理ポリシとの中から取得し、前記教育用コンテンツデータベースに送信する第3の送信ステップと、
教育用コンテンツデータベースが、前記開発者情報データベースにより送信された前記開発者情報と前記開発者管理ポリシとを基に自らが格納した教育用コンテンツの中から前記要求教育用コンテンツを取得し前記開発者端末に送信する第4の送信ステップと、
前記開発者端末が、教育用コンテンツデータベースにより送信された前記要求教育用コンテンツを実行する実行ステップと、
を備えたことを特徴とするセキュアコーディング規約教育方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2009−151532(P2009−151532A)
【公開日】平成21年7月9日(2009.7.9)
【国際特許分類】
【出願番号】特願2007−328666(P2007−328666)
【出願日】平成19年12月20日(2007.12.20)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】