(57)【要約】【課題】開発工数を削減することができる開発支援システム、開発支援方法及び開発支援プログラムを提供すること【解決手段】本発明にかかる開発支援システム７０は、複数の検査用ソースコードと、検査用ソースコードのライセンス形態を示すライセンス情報を相互に関連付けて格納する記憶部７１と、作成段階にある作成段階ソースコードを取得し、記憶部７１に格納された情報に基づいて、当該作成段階ソースコードの検査を行う検査部７２を備える。また、検査部７２は、作成段階ソースコードを取得する取得手段８１と、取得された作成段階ソースコードと、所定値以上の一致度を有し、かつ、予め定められた利用制限に該当するライセンス形態と関連付けられた検査用ソースコードを検出する検査手段８２とを有する。【選択図】図１
2010217950.tif 000002
【特許請求の範囲】
【請求項１】
複数の検査用ソースコードと、前記検査用ソースコードのライセンス形態を示すライセンス情報を相互に関連付けて格納する記憶部と、
作成段階にある作成段階ソースコードを取得し、前記記憶部に格納された情報に基づいて、当該作成段階ソースコードの検査を行う検査部を備え、
前記検査部は、前記作成段階ソースコードを取得する取得手段と、
取得された作成段階ソースコードと、所定値以上の一致度を有し、かつ、予め定められた利用制限に該当するライセンス形態と関連付けられた検査用ソースコードを検出する検査手段とを有する開発支援システム。
【請求項２】
前記検査手段は、前記一致度を前記ソースコードに含まれる文字列を比較することによって判断する請求項１に記載の開発支援システム。
【請求項３】
前記検査手段は、前記一致度を前記ソースコードに基づいて生成したハッシュ値を比較することによって判断する請求項１に記載の開発支援システム。
【請求項４】
前記記憶部は、さらに前記複数の検査用ソースコードのそれぞれに関連付けて検索用タグを格納し、
前記開発支援システムは、さらに作業者によって入力された検索キーワードを取得する手段と、
取得された検索キーワードと、前記検索用タグとを比較することにより、検索対象となる前記検査用ソースコードを検出する手段とを有する検索部を備えた請求項１乃至３のいずれかに記載の開発支援システム。
【請求項５】
前記開発支援システムは、さらに前記検査用ソースコードをインターネット又はイントラネットのサイトから取得して前記記憶部に格納するとともに、当該サイトから取得した情報に基づいて、前記検索用タグ及び前記ライセンス情報を生成し、前記記憶部に格納する手段を有する自動収集部を備えた請求項４のいずれかに記載の開発支援システム。
【請求項６】
前記自動収集部は、さらに前記作成段階ソースコードを前記検査部から取得し、取得した作成段階ソースコードを前記記憶部に格納する手段を有し、
前記記憶部は、さらに前記記憶部に格納した作成段階ソースコードのそれぞれに対応する検索用タグを格納し、
前記検索部は、さらに前記検索キーワードと、前記検索用タグとを比較することにより、検索対象となる前記作成段階ソースコードを検出する手段を有する請求項５に記載の開発支援システム。
【請求項７】
前記開発支援システムは、さらに作業者が作成したプログラムを取得する手段と、
取得したプログラムのソースコードに関連付けられたライセンス情報に基づいて、当該プログラムのインストール媒体データを作成する手段とを有するインストール媒体データ作成部を備えた請求項１乃至６のいずれかに記載の開発支援システム。
【請求項８】
前記作成段階ソースコード、前記検索キーワード及び前記作業者が作成したプログラムは、前記開発支援システムの外部に備えられた作業者端末が有する統合開発環境に組み込まれるプラグインモジュールから取得される請求項７に記載の開発支援システム。
【請求項９】
前記記憶部は、前記開発支援システムの外部に備えられた請求項１乃至８のいずれかに記載の開発支援システム。
【請求項１０】
複数の検査用コンポーネントと、前記検査用コンポーネントのライセンス形態を示すライセンス情報を相互に関連付けて格納する記憶部と、
プログラムの生成に用いるために統合開発環境に登録された登録コンポーネントを、当該登録に応じて取得し、前記記憶部に格納された情報に基づいて、当該登録コンポーネントの検査を行う検査部を備え、
前記検査部は、前記登録コンポーネントを取得する手段と、
取得された前記登録コンポーネントと、所定値以上の一致度を有し、かつ、予め定められた利用制限に該当するライセンス形態と関連付けられた前記検査用コンポーネントを検出する手段とを有する開発支援システム。
【請求項１１】
複数の検査用ソースコードと、前記複数の検査用ソースコードのそれぞれに関連付けられ、前記検査用ソースコードのライセンス形態を示すライセンス情報とに基づいて、作成段階にある作成段階ソースコードの検査を行う開発支援方法であって、
前記作成段階ソースコードを取得するステップと、
取得された作成段階ソースコードと、所定値以上の一致度を有し、かつ、予め定められた利用制限に該当するライセンス形態と関連付けられた検査用ソースコードを検出するステップとを有する開発支援方法。
【請求項１２】
複数の検査用コンポーネントと、前記複数の検査用コンポーネントのそれぞれに関連付けられ、前記検査用コンポーネントのライセンス形態を示すライセンス情報とに基づいて、プログラムの生成に用いるために統合開発環境に登録された登録コンポーネントの検査を行う開発支援方法であって、
前記登録コンポーネントを前記登録に応じて取得するステップと、
取得された登録コンポーネントと、所定値以上の一致度を有し、かつ、予め定められた利用制限に該当するライセンス形態と関連付けられた検査用コンポーネントを検出するステップとを有する開発支援方法。
【請求項１３】
複数の検査用ソースコードと、前記複数の検査用ソースコードのそれぞれに関連付けられ、前記検査用ソースコードのライセンス形態を示すライセンス情報とに基づいて、作成段階にある作成段階ソースコードの検査を行う開発支援プログラムであって、
前記作成段階ソースコードを取得するステップと、
取得された作成段階ソースコードと、所定値以上の一致度を有し、かつ、予め定められた利用制限に該当するライセンス形態と関連付けられた検査用ソースコードを検出するステップとをコンピュータに実行させる開発支援プログラム。
【請求項１４】
複数の検査用コンポーネントと、前記複数の検査用コンポーネントのそれぞれに関連付けられ、前記検査用コンポーネントのライセンス形態を示すライセンス情報とに基づいて、プログラムの生成に用いるために統合開発環境に登録された登録コンポーネントの検査を行う開発支援プログラムであって、
前記登録コンポーネントを前記登録に応じて取得するステップと、
取得された登録コンポーネントと、所定値以上の一致度を有し、かつ、予め定められた利用制限に該当するライセンス形態と関連付けられた検査用コンポーネントを検出するステップとをコンピュータに実行させる開発支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、開発支援システム、開発支援方法及び開発支援プログラムに関する。
【背景技術】
【０００２】
特許文献１には、ユーザによるソースコードのビルド時に、開発端末内にあるライセンスチェックプログラムによって、ビルド対象となるソースコードがライセンスに違反していないかチェックすることにより、ライセンスのチェック漏れを防ぐことができる技術が開示されている。
しかし、上述の技術は、プログラム開発における開発工程の下流工程であるビルド直前にソースコードのライセンスの検査を行っているため、ライセンス違反が検出された場合、ライセンス違反を取り除くため、ソースコードを書き直すための後戻り作業が大量に発生してしまい、そのための開発工数が増加してしまうという問題がある。
【０００３】
なお、特許文献２には、記憶媒体に正当性の確認が容易なライセンス情報および起動プログラムを記録することにより、記録媒体に記録されたプログラムの安全性を確保しつつ、記録媒体からのプログラムの起動および更新を可能とする技術が開示されている。
また、特許文献３には、開発者によって作成されたテストデータ及びソフトウェア部品のカテゴリ情報から開発者の要求するソフトウェア部品を検索し、ソフトウェア部品を提案する際に開発者に提案するソフトウェア部品が開発者の要求を満たしたものであることを容易に理解することが可能となる技術が開示されている。
【０００４】
さらに、特許文献４には、ネットワーク上のサーバが保持する文書を自動収集し、自動収集した文書中から、文書の検索に必要な各種属性情報を自動抽出し、文書及び自動抽出された各種属性情報をデータベースに自動登録することにより、検索対象になるシステムや文書に制約がなく、それらを一括検索することができる技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−１９１８８９号公報
【特許文献２】特開２００４−３０３２２１号公報
【特許文献３】特開２００８−０４０９６９号公報
【特許文献４】特開平１１−２９６５３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
背景技術として説明したように、ソースコードのビルド時にライセンスの検査を行う技術では、開発工数が増加してしまうという問題がある。
【０００７】
本発明の目的は、上述のような問題を解決するためになされたものであり、開発工数を削減することができる開発支援システム、開発支援方法及び開発支援プログラムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明にかかる開発支援システムは、複数の検査用ソースコードと、前記検査用ソースコードのライセンス形態を示すライセンス情報を相互に関連付けて格納する記憶部と、作成段階にある作成段階ソースコードを取得し、前記記憶部に格納された情報に基づいて、当該作成段階ソースコードの検査を行う検査部を備え、前記検査部は、前記作成段階ソースコードを取得する取得手段と、取得された作成段階ソースコードと、所定値以上の一致度を有し、かつ、予め定められた利用制限に該当するライセンス形態と関連付けられた検査用ソースコードを検出する検査手段とを有するものである。
【０００９】
他方、本発明にかかる開発支援システムは、複数の検査用コンポーネントと、前記検査用コンポーネントのライセンス形態を示すライセンス情報を相互に関連付けて格納する記憶部と、プログラムの生成に用いるために統合開発環境に登録された登録コンポーネントを、当該登録に応じて取得し、前記記憶部に格納された情報に基づいて、当該登録コンポーネントの検査を行う検査部を備え、前記検査部は、前記登録コンポーネントを取得する手段と、取得された前記登録コンポーネントと、所定値以上の一致度を有し、かつ、予め定められた利用制限に該当するライセンス形態と関連付けられた前記検査用コンポーネントを検出する手段とを有するものである。
【００１０】
本発明にかかる開発支援方法は、複数の検査用ソースコードと、前記複数の検査用ソースコードのそれぞれに関連付けられ、前記検査用ソースコードのライセンス形態を示すライセンス情報とに基づいて、作成段階にある作成段階ソースコードの検査を行う開発支援方法であって、前記作成段階ソースコードを取得するステップと、取得された作成段階ソースコードと、所定値以上の一致度を有し、かつ、予め定められた利用制限に該当するライセンス形態と関連付けられた検査用ソースコードを検出するステップとを有するものである。
【００１１】
他方、本発明にかかる開発支援方法は、複数の検査用コンポーネントと、前記複数の検査用コンポーネントのそれぞれに関連付けられ、前記検査用コンポーネントのライセンス形態を示すライセンス情報とに基づいて、プログラムの生成に用いるために統合開発環境に登録された登録コンポーネントの検査を行う開発支援方法であって、前記登録コンポーネントを前記登録に応じて取得するステップと、取得された登録コンポーネントと、所定値以上の一致度を有し、かつ、予め定められた利用制限に該当するライセンス形態と関連付けられた検査用コンポーネントを検出するステップとを有するものである。
【００１２】
本発明にかかる開発支援プログラムは、複数の検査用ソースコードと、前記複数の検査用ソースコードのそれぞれに関連付けられ、前記検査用ソースコードのライセンス形態を示すライセンス情報とに基づいて、作成段階にある作成段階ソースコードの検査を行う開発支援プログラムであって、前記作成段階ソースコードを取得するステップと、取得された作成段階ソースコードと、所定値以上の一致度を有し、かつ、予め定められた利用制限に該当するライセンス形態と関連付けられた検査用ソースコードを検出するステップとをコンピュータに実行させるものである。
【００１３】
他方、本発明にかかる開発支援プログラムは、複数の検査用コンポーネントと、前記複数の検査用コンポーネントのそれぞれに関連付けられ、前記検査用コンポーネントのライセンス形態を示すライセンス情報とに基づいて、プログラムの生成に用いるために統合開発環境に登録された登録コンポーネントの検査を行う開発支援プログラムであって、前記登録コンポーネントを前記登録に応じて取得するステップと、取得された登録コンポーネントと、所定値以上の一致度を有し、かつ、予め定められた利用制限に該当するライセンス形態と関連付けられた検査用コンポーネントを検出するステップとをコンピュータに実行させるものである。
【発明の効果】
【００１４】
本発明により、開発工数を削減することができる開発支援システム、開発支援方法及び開発支援プログラムを提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態にかかる開発支援システムの概要を示す構成図である。
【図２】本発明の実施の形態にかかる開発支援システムの構成図である。
【図３】本発明の実施の形態にかかる開発支援システムの他の構成例を示す構成図である。
【発明を実施するための形態】
【００１６】
まず、図１を参照して、本発明の実施の形態にかかる開発支援システムの概要について説明する。図１は、本発明の実施の形態にかかる開発支援システムの概要を示す構成図である。
【００１７】
開発支援システム７０は、記憶部７１及び検査部７２を備える。また、検査部７２は、取得手段８１及び検査手段８２を有する。
記憶部７１は、複数の検査用ソースコードと、検査用ソースコードのライセンス形態を示すライセンス情報を相互に関連付けて格納する。また、記憶部７１は、複数の検査用コンポーネントと、検査用コンポーネントのライセンス形態を示すライセンス情報を相互に関連付けて格納する。
検査部７２の取得手段８１は、作成段階にある作成段階ソースコードもしくはプログラムの生成に用いるために統合開発環境に登録された登録コンポーネントを取得する。
検査部７２の検査手段８２は、記憶部７１に格納された情報に基づいて、作成段階ソースコードもしくは登録コンポーネントの検査を行う。
【００１８】
続いて、本発明の実施の形態にかかる開発支援システムの処理の概要について説明する。
まず、検査部７２の取得手段８１は、作成段階にある作成段階ソースコードを取得する。また、取得手段８１は、統合開発環境に登録された登録コンポーネントをその登録に応じて取得する。そして、取得手段８１は、取得した作成段階ソースコードもしくは登録コンポーネントを検査手段８２に出力する。
次に、検査部７２の検査手段８２は、取得手段８１から出力された作成段階ソースコードもしくは登録コンポーネントを取得する。
検査手段８２は、作成段階ソースコードを取得した場合、取得した作成段階ソースコードと、所定値以上の一致度を有し、かつ、予め定められた利用制限に該当するライセンス形態と関連付けられた検査用ソースコードを検出する。
または、検査手段８２は、登録コンポーネントを取得した場合、取得した登録コンポーネントと、所定値以上の一致度を有し、かつ、予め定められた利用制限に該当するライセンス形態と関連付けられた検査用コンポーネントを検出する。
【００１９】
続いて、図２を参照して、本発明の実施の形態にかかる開発支援システムについて詳細に説明する。図２は、本発明の実施の形態にかかる開発支援システムの構成図である。
【００２０】
開発支援システム１０は、自動収集システム１１、コード検査システム１２、ソースコード／コンポーネント検索システム１３、ソースコード／コンポーネント情報データベース１４及び出荷用インストール媒体データ作成システム１５を備える。
開発支援システム１０は、作業者端末２０、出荷用インストール媒体データ３０及びインターネット上のサイト/リポジトリ４０及びイントラネット上のサイト/リポジトリ５０と、インターネット、イントラネット又は電話回線網等の任意の通信手段を介して、相互に接続されている。開発支援システム１０は、例えば、サーバのような１つ又は複数の情報処理装置から構成される。
【００２１】
自動収集システム１１は、インターネットやイントラネット等のネットワーク上のサイトやリポジトリからソースコードやソフトウェアコンポーネント(以下、「コンポーネント」とする)を収集する。そして、自動収集システム１１は、収集したソースコードやコンポーネントと、それらに関する情報を相互に関連付けて、ソースコード/コンポーネント情報データベース１２に格納する。
【００２２】
コード検査システム１２は、統合開発環境２１に組み込まれているプラグインモジュール２２と通信を行い、作業者が統合開発環境２１のエディタによって作成しているソースコードを取得する。また、コード検査システム１２は、統合開発環境２１に登録されたコンポーネントをその登録に応じて取得する。コード検査システム１２は、ソースコード/コンポーネント情報データベース１５に格納される情報や開発支援システム１０の管理者が予め設定した情報に基づいて、取得したソースコード又はコンポーネントを検査する。また、コード検査システム１２は、統合開発環境２１のエディタに記述されたソースコードを取得した場合に、自動収集システム１１にソースコードを出力する。
【００２３】
ソースコード/コンポーネント検索システム１４は、統合開発環境２１に組み込まれているプラグインモジュール２２と通信を行い、作業者が作業者端末２０に入力した検索対象を特定する検索キーワードを統合開発環境２１から取得し、取得した検索キーワードに基づいて、ソースコード/コンポーネント情報データベース１５に格納される情報を検索し、該当するソースコードやコンポーネントに関する情報をプラグインモジュール２２を介して、統合開発環境に送信する。
【００２４】
出荷用インストール媒体データ作成システム１４は、出荷用インストール媒体データの作成指示と統合開発環境２１においてビルド済みのプログラムのバイナリファイルを、統合開発環境２１に組み込まれているプラグインモジュール２２から取得するとともに、このプログラムの出荷用インストール媒体に記憶する情報をソースコード/コンポーネント情報データベース１５から取得する。そして、取得した情報やプログラムのバイナリファイルに基づいて、出荷用インストール媒体データを作成する。
ソースコード／コンポーネント情報データベース１５は、自動収集システム１１がネットワーク上から収集したソースコードやコンポーネントと、それらに関する情報を相互に関連付けて格納する。ソースコード／コンポーネント情報データベース１５は、例えば、メモリやＨＤＤ(Hard Disc Drive)等から構成される。
【００２５】
作業者端末２０は、作業者がプログラム開発を行う端末であり、統合開発環境２１が動作する。作業者端末２０は、例えば、ＰＣのような任意の情報処理装置である。作業者は、作業者端末２０の統合開発環境２１によって、ソースコードの作成やビルド等のプログラム開発を行う。
統合開発環境２１は、例えば、Ｅｃｌｉｐｓｅ(登録商標)又はＶｉｓｕａｌ Ｓｔｄｉｏ(登録商標)等のプラグインモジュールが組み込み可能な統合開発環境である。
プラグインモジュール２２は、統合開発環境２１に組み込まれたプラグインであり、開発支援システム１０と統合開発環境２１間のインタフェースとして機能する。
出荷用インストール媒体データベース３０は、出荷用インストール媒体データ作成システム１４が作成した出荷用インストール媒体のデータを格納する。出荷用インストール媒体データベース３０は、例えば、メモリやＨＤＤ(Hard Disc Drive)等から構成される。
【００２６】
続いて、図２を参照して、本発明の実施の形態にかかる開発支援システムの処理について説明する。
【００２７】
まず、自動収集システム１１における処理について説明する。
自動収集システム１１は、ＨＴＴＰ(HyperText Transfer Protocol)プロトコルやＦＴＰ(File Transfer Protocol)プロトコル等のプロトコル、ＣＶＳ(Concurrent Versions System)プロトコルやＳＶＮ(Subversion)プロトコル等のバージョン管理システムにおけるプロトコル等によって、インターネット上に存在するソースコードやコンポーネントをクローリングして収集する(Ｓ１)。同様に、自動収集システム１１は、イントラネット上に存在するソースコードやコンポーネントをクローリングして収集する(Ｓ２)。また、自動収集システム１１は、クローリング時に、取得したソースコードやコンポーネントを配布するＷＥＢ(World Wide Web)サイトのＨＴＭＬファイルやドキュメント等の情報も同時に収集する。
【００２８】
ここで、自動収集システム１１が収集するソースコードは、一定の形態に限定されることはない。例えば、ネットワーク上のサイトにおいて配布されるソースコードのファイルであってもよく、ソースコードパッケージであってもよく、ネットワーク上のリポジトリに格納されるソースコードであってもよい。なお、ソースコードと同様に、コンポーネントについても、一定の形態に限定されることはない。ここで、コンポーネントには、例えば、ライブラリである。
【００２９】
自動収集システム１１は、収集したソースコードやコンポーネントと、それらを配布するＷＥＢサイトのＨＴＭＬファイルやドキュメント等を相互に関連付けてソースコード/コンポーネント情報データベース１５に格納する(Ｓ３)。ここで、ソースコード/コンポーネント情報データベース１５は、例えば、ＰｏｓｔｇｒｅＳＱＬやＭｙＳＱＬ(登録商標)等のリレーショナルデータベースマネージメントシステムにより管理されており、自動収集システム１１は、ＳＱＬを用いることによって上述のソースコード等を格納する。
【００３０】
また、自動収集システム１１は、収集したソースコードやコンポーネントをソースコード/コンポーネント情報データベース１５に格納する場合、自動収集システム１１が収集したＨＴＭＬファイルやドキュメントに含まれる文字列情報を形態素解析や構文解析することによって、ライセンス形態を示すライセンス情報と、ソースコードやコンポーネントの検索用タグとなる文字列とを生成する。そして、自動収集システム１１は、収集したソースコードやコンポーネントと、それらを配布するＷＥＢサイトから取得したＨＴＭＬファイルやドキュメントに基づいて生成したライセンス情報および検索用タグを関連付けてソースコード/コンポーネント情報データベース１５に格納する(Ｓ３)。なお、このときに生成する検索用タグは、例えば、ソースコードやコンポーネントの名称、特徴、機能又はライセンス形態等の任意の種類の文字列を定義してよい。
【００３１】
また、イントラネット上のリポジトリサイトのように配布サイトのＨＴＭＬファイルやドキュメントが存在せず、クローリング時にＨＴＭＬファイルやドキュメントが取得不可能で検索用タグを生成できない場合、開発支援システム１０の管理者が任意の検索用タグを作成し、ソースコード/コンポーネント情報データベース１５に格納する。また、このような場合、自動収集システム１１は、予め定められた検索用タグを格納するようにしてもよい。なお、ここでの管理者による検索用タグの作成は、例えば、開発支援システム１０に任意の通信手段によって接続される管理者端末(図示せず)から検索用タグをソースコード/コンポーネント情報データベース１５に格納することによって行う。
【００３２】
続いて、コード検査システム１２における処理について説明する。
作業者が統合開発環境２１においてソースコードを作成している場合、コード検査システム１２は、統合開発環境２１に組み込まれたプラグインモジュール２２により、統合開発環境２１と常に通信を行っており、オンラインの状態にある。ここでの通信は、例えば、ＴＣＰ／ＩＰ(Transmission Control Protocol/Internet Protocol)プロトコルによって行われる。
コード検査システム１２は、作業者が統合開発環境２１のエディタによってソースコードを作成しているときに、この作成段階にあるソースコードを任意のタイミングでプラグインモジュール２２を介して取得する。ここでのタイミングは、どのように定めてもよく、作業者が予め定められた行数を入力したときであってもよく、予め定めた時間毎としてもよく、予め定めた文字数を入力したときとしてもよい。このように、コード検査システム１２は、作成段階にあるソースコードを任意のタイミングで取得する(Ｓ６)。
また、コード検査システム１２は、作業者が統合開発環境２１にコンポーネントを登録したときに、登録されたコンポーネントをプラグインモジュール２２を介して取得する(Ｓ６)。
【００３３】
続いて、コード検査システム１２は、ソースコード又はコンポーネントを取得すると、取得したソースコード又はコンポーネントと、ソースコード/コンポーネント情報データベース１５に格納されるコンポーネントとを順次比較していくことにより、所定値以上の一致度を有するソースコード又はコンポーネントを検出する。
ここで、一致度は、例えば、それぞれのソースコードに含まれる文字列をパターンマッチングして、全てが一致する、もしくは部分的に一致するかどうか等により判断してもよい。または、例えば、それぞれのソースコード又はコンポーネントを任意の長さで区切ったものから生成したハッシュ値を比較し、その一致度合いが予め定めた度合い以上となるかどうか等の手法により判断する。なお、このときに、コード検査システム１２は、例えば、ＳＱＬを用いて、ソースコード/コンポーネント情報データベース１５から、ソースコード又はコンポーネントを順次取得する(Ｓ４)。
【００３４】
そして、コード検査システム１２は、所定値以上の一致度を有するソースコード又はコンポーネントを検出した場合は、それに関連付けられたライセンス形態を示すライセンス情報をソースコード/コンポーネント情報データベース１５から取得する(Ｓ４)。
コード検査システム１２は、取得したライセンス情報と、開発支援システム１０の管理者によって予め定められ、利用を制限しているライセンス形態を示す利用制限情報とを比較する。ここで、利用制限情報は、例えば、コード検査システム１２が有してもよく、ソースコード/コンポーネント情報データベース１５に格納していてもよい。また、利用制限情報は、例えば、管理者が管理者端末(図示せず)から入力することによって設定を行う。
【００３５】
そして、コード検査システム１２は、比較した結果が一致する場合は、作業者が統合開発環境２１のエディタにおいて、利用制限しているライセンス形態のソースコードを利用していると判断し、プラグインモジュール２２を介して統合開発環境２１に、作業者に対する警告または注意内容を示した情報を送信する(Ｓ７)。そして、その情報を取得した統合開発環境２１は、作業者に対して警告また注意内容を表示する。
なお、ここでの比較を具体的に説明すると、例えば、管理者がＧＰＬでライセンスされているオープンソースソフトウェアのソースコード又はコンポーネントの利用を制限する場合は、その旨を示す情報を利用制限情報として格納する。そして、取得したライセンス情報が示すライセンス形態がＧＰＬである旨を示している場合には、比較した結果が一致することとなる。
【００３６】
このように、コード検査システム１２が取得したソースコード又はコンポーネントと、所定値以上の一致度を有するソースコード又はコンポーネントが、利用制限されているライセンス形態である場合、言い換えると、取得したソースコード又はコンポーネントと、所定値以上の一致度を有し、かつ、利用制限されているライセンス形態に該当するソースコード又はコンポーネントがソースコード/コンポーネント情報データベース１５から検出された場合は、取得したソースコード又はコンポーネントは、利用制限されているライセンス形態のソースコード又はコンポーネントを利用したものであると判断することができる。
【００３７】
続いて、ソースコード/コンポーネント検索システム１３の処理について説明する。
作業者は、所望のソースコード又はコンポーネントがソースコード/コンポーネント情報データベース１５にあるかどうかを検索したい場合は、統合開発環境２１に対して検索キーワードを入力する。
ソースコード/コンポーネント検索システム１３は、統合開発環境２１は、検索キーワードを入力されると、入力された検索キーワードを自身に組み込まれたプラグインモジュール２２を介して、ソースコード/コンポーネント検索システム１３に送信する(Ｓ９)。
ソースコード/コンポーネント検索システム１３は、ネットワークを介して、検索キーワードを受信すると、受信した検索キーワードと、ソースコード/コンポーネント情報データベース１５に格納される検索用タグとを順次比較していき、一致する検索用タグを検出する。なお、ここでの比較は、例えば、ソースコード/コンポーネント検索システム１３がＳＱＬを用いることにより行う。
【００３８】
そして、ソースコード/コンポーネント検索システム１３は、一致する検索用タグを検出した場合、その検索用タグに関連付けられたソースコード又はコンポーネントの情報をソースコード/コンポーネント情報データベース１５から取得し(Ｓ５)、取得した情報をプラグインモジュール２２を介して、統合開発環境２１に送信する(Ｓ８)。そして、統合開発環境２１は、受信した情報を作業者端末２０に表示する。ここで、ソースコード又はコンポーネントの情報とは、そのソースコード又はコンポーネントを特定できる情報であればどのようなものであってもよく、例えば、ソースコード又はコンポーネントやそれらに関連付けられてソースコード/コンポーネント情報データベース１５に格納されている情報等である。
【００３９】
これにより、作業者は、統合開発環境２１に表示される検索結果に基づいて、ネットワーク介してソースコード/コンポーネント情報データベース１５に格納される所望のソースコードパッケージやコンポーネントを取得して、利用することができる。
また、開発支援システム１０は、統合開発環境２１において作成したソースコードも検索対象とすることができる。統合開発環境２１からコード検査システム１３に作成段階のソースコードのデータが送信された場合(Ｓ６)、ソースコード検査システム１３は、自動収集システム１１に作成段階のソースコードを出力する(Ｓ１０)。そして、自動収集システム１１は、作成段階のソースコードの出力を受けると、作成段階のソースコードをソースコード/コンポーネント情報データベース１５に格納する(Ｓ３)。なお、このソースコードの検索用タグは、例えば、管理者が管理者端末(図示せず)から入力して設定するようにしてもよく、作業者が作業者端末２０から入力して設定するようにしてもよく、自動収集システム１１が予め定められた検索用タグを格納するようにしてもよい。
【００４０】
続いて、出荷用インストール媒体データ作成システム１４の処理について説明する。
作業者は全てのプログラミング作業を完了し、プログラムをソフトウェア製品として出荷用インストール媒体に記憶するデータを作成する場合、統合開発環境２１に組み込まれているプラグインモジュール２２を介して、出荷用インストール媒体データ作成システム１４に出荷用インストール媒体データの作成指示を送信するとともに、統合開発環境２１でビルド済みのプログラムのバイナリファイルを送信する(Ｓ１２)。ここで、出荷用インストール媒体データの作成指示には、プログラムのビルドに利用されているソースコードやコンポーネントを示す情報を含む。
【００４１】
出荷用インストール媒体データ作成システム１４は、荷用インストール媒体データの作成指示およびプログラムのバイナリファイルを取得すると、取得した作成指示に基づいて、プログラムに利用されているソースコードやコンポーネントに関連付けられたライセンス情報を取得する(Ｓ１１)。
そして、出荷用インストール媒体データ作成システム１４は、取得したライセンス情報に応じて、ライセンス文の添付やソースコードの添付等を行い、ライセンス義務事項を満たした出荷用インストール媒体データを自動作成し、作成したデータを出荷用インストール媒体データベース３０に格納する(Ｓ１３)。
【００４２】
なお、ここでのライセンス文やソースコード等の各情報の添付の要否は、自動収集システム１１がソースコードやコンポーネントを収集したときに、収集したソースコードやコンポーネントおよびそれらを取得したサイトのＨＴＭＬファイルやドキュメントに含まれる文字列情報を形態素解析や構文解析することによって、ライセンス文の添付が必要か否か、ソースコードの添付が必要か否か等のライセンス義務事項を示す情報をライセンス情報に含めておくことによって判断可能とする。また、ライセンス文のように出荷用インストール媒体データに添付される情報も、自動収集システム１１がソースコードやコンポーネントと関連付けてソースコード/コンポーネント情報データベース１５に格納しておく。
そして、作業者はネットワークを介して、出荷用インストール媒体データベース３０から出荷用インストール媒体のデータを取得することができ、取得したデータに基づいて、出荷用インストール媒体を作成することができる。
【００４３】
なお、本発明は上述した実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、図３に示すように、開発支援システム１０の外部にデータベースサーバ６０を備え、データベースサーバ６０にソースコード／コンポーネント情報データベース６１を有するようにし、開発支援システム１０が任意の通信手段を介して、ソースコード／コンポーネント情報データベース６１にアクセスするような形態としてもよい。データベースサーバは、例えば、サーバのような情報処理装置である。
【００４４】
以上に説明したように、本実施の形態では、作成段階におけるソースコードについて随時ライセンスの検査を行うとともに、コンポーネントを登録したときにライセンスの検査を行い、検査結果に問題があった場合は、作業者に通知を行う。そのため、作業者が利用制限されているソースコードやコンポーネントを利用していることに早期に気づくことができ、ソースコードの書き直し等の後戻り作業の発生を無くすことができ、計画通りにソフトウェア開発を進めることができるようになるため、開発工数を削減することが可能となる。
【００４５】
また、本実施の形態では、ソースコードパッケージやコンポーネントに検索用タグを付けてデータベース化しているため、作業者が所望のソースコードやコンポーネントが既にあるかどうかを検索することができる。そのため、既に存在する機能を有するソースコードやコンポーネントの再開発を防止するとともに、それらの再利用を促進することができ、効率的なプログラム開発が行えるため、開発工数を削減することが可能となる。
【００４６】
さらに、本実施の形態では、プログラミング作業を行う統合開発環境から直接ソースコードやコンポーネントの検索を行うことができる。そのため、検索を容易に行うことができるため、作業工数を削減することが可能となる。
【００４７】
また、本実施の形態では、ソフトウェア製品出荷に必要なライセンス義務事項を満たした出荷用インストール媒体データを自動的に作成する。そのため、作業者が出荷用インストール媒体データを作成する作業が不要となり、作業工数を削減すること可能となる。また、ライセンス文の添付忘れ等のヒューマンエラーによるライセンス違反を未然に防ぐことが可能となる。
【００４８】
以上に説明した本発明にかかる開発支援システムは、上述の実施の形態の機能を実現するプログラムを記憶した記憶媒体をシステムもしくは装置に供給し、システムあるいは装置の有するコンピュータ又はＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）がこのプログラムを実行することによって、構成することが可能である。
また、このプログラムは様々な種類の記憶媒体に格納することが可能であり、通信媒体を介して伝達されることが可能である。ここで、記憶媒体には、例えば、フレキシブルディスク、ハードディスク、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＤＶＤ（Digital Versatile Disc）、ＢＤ（Blu-ray Disc）、ＲＯＭ（Read Only Memory）カートリッジ、バッテリバックアップ付きＲＡＭ（Random Access Memory）メモリカートリッジ、フラッシュメモリカートリッジ、不揮発性ＲＡＭカートリッジを含む。また、通信媒体には、電話回線の有線通信媒体、マイクロ波回線の無線通信媒体を含み、インターネットも含まれる。
【００４９】
また、コンピュータが上述の実施の形態の機能を実現するプログラムを実行することにより、上述の実施の形態の機能が実現されるだけではなく、このプログラムの指示に基づき、コンピュータ上で稼動しているＯＳ（Operating System）もしくはアプリケーションソフトと共同して上述の実施の形態の機能が実現される場合も、発明の実施の形態に含まれる。
さらに、このプログラムの処理の全てもしくは一部がコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットにより行われて上述の実施の形態の機能が実現される場合も、発明の実施の形態に含まれる。
【符号の説明】
【００５０】
１０、７０    開発支援システム
１１    自動収集システム
１２    コード検査システム
１３    ソースコード/コンポーネント検索システム
１４    出荷用インストール媒体データ作成システム
１５、６１    ソースコード/コンポーネント情報データベース
２０    作業者端末
２１    統合開発環境
２２    プラグインモジュール
３０    出荷用インストール媒体データベース
４０    インターネット上のサイト/リポジトリ
５０    イントラネット上のサイト/リポジトリ
６０    データベースサーバ
７１    記憶部
７２    検査部
８１    取得手段
８２    検査手段
【図１】
2010217950.tif 000003
【図２】
2010217950.tif 000004
【図３】
2010217950.tif 000005