(57)【要約】【課題】アプリケーションのソースコードに適用するコーディング規約を適切に選択することのできるコーディング規約選択プログラムの提供を目的とする。【解決手段】コンピュータに、アプリケーションの開発環境として定義されたプロジェクトのファイル構成に基づいて前記アプリケーションの種別を判定するファイル構成判定手順と、前記プロジェクトの種別に基づいて当該アプリケーションの種別を判定するプロジェクト種別判定手順と、前記アプリケーションの種別に応じて前記アプリケーションのソースコードに適用されるコーディング規約が定義された規約対応情報と、前記ファイル構成判定手順及び前記プロジェクト種別判定手順における少なくともいずれか一つの判定結果によって特定されるアプリケーションの種別とに基づいて、当該アプリケーションのソースコードに適用されるコーディング規約を判定する適用規約判定手順とを実行させることにより上記課題を解決する。【選択図】図６
2007200125.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
アプリケーションの開発環境として定義されたプロジェクトのファイル構成に基づいて前記アプリケーションの種別を判定するファイル構成判定手順と、
前記プロジェクトの種別に基づいて当該アプリケーションの種別を判定するプロジェクト種別判定手順と、
前記アプリケーションの種別に応じて前記アプリケーションのソースコードに適用されるコーディング規約が定義された規約対応情報と、前記ファイル構成判定手順及び前記プロジェクト種別判定手順における少なくともいずれか一つの判定結果によって特定されるアプリケーションの種別とに基づいて、当該アプリケーションのソースコードに適用されるコーディング規約を判定する適用規約判定手順とを実行させるためのコーディング規約選択プログラム。
【請求項２】
前記ファイル構成判定手順において前記アプリケーションの種別が一意に特定されない場合に、前記プロジェクト種別判定手順を実行させることを特徴とする請求項１記載のコーディング規約選択プログラム。
【請求項３】
前記プロジェクトにおいて前記アプリケーションのビルドに用いられるプログラムの構成に基づいて前記アプリケーションの種別を判定するビルドツール判定手順を有し、
前記適用規約判定手順は、前記規約対応情報と、前記ビルドツール判定手順、前記ファイル構成判定手順、及び前記プロジェクト種別判定手順における少なくともいずれか一つの判定結果によって特定されるアプリケーションの種別とに基づいて、当該アプリケーションのソースコードに適用されるコーディング規約を判定することを特徴とする請求項１又は２記載のコーディング規約選択プログラム。
【請求項４】
前記ビルドツール判定手順において前記アプリケーションの種別が一意に特定されない場合に、前記ファイル構成判定手順を実行させることを特徴とする請求項３記載のコーディング規約選択プログラム。
【請求項５】
前記プロジェクトを構成する所定のファイルの内容に基づいて前記アプリケーションの種別を判定するファイル内容判定手順を有し、
前記適用規約判定手順は、前記規約対応情報と、前記ファイル内容判定手順、前記ファイル構成判定手順、及び前記プロジェクト種別判定手順における少なくともいずれか一つの判定結果によって特定されるアプリケーションの種別とに基づいて、当該アプリケーションのソースコードに適用されるコーディング規約を判定することを特徴とする請求項１又は２記載のコーディング規約選択プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コーディング規約選択プログラムに関し、特にアプリケーションの開発環境において作成されたソースコードに適用するコーディング規約を判定するコーディング規約選択プログラムに関する。
【背景技術】
【０００２】
プログラムを開発する際に、開発プロジェクト内等においてコーディング規約が定められることが多い。各開発者がコーディング規約に沿ったコーディングを行うことにより、全体的に統一感のあるソースコードが作成され、プログラムの保守性の向上が期待される。但し、単にコーディング規約を定めただけでは、当該規約に沿って各ソースコードが作成されていることは保証されない。そこで、従来、ソースコードがコーディング規約に従っているかをチェックするためのソフトウェアが提供されている。
【０００３】
他方において、近年では、インターネット等の発展に応じて、例えば、クライアントアプリケーション、ライブラリ、アプレット、Ｗｅｂサービス、Ｗｅｂアプリケーション、及びＥＪＢ（登録商標）（Enterprise JavaBeans（登録商標））等、アプリケーションの種別も豊富なものとなっている。このようなアプリケーションの種別に応じてコーディング上の制約が異なる場合がある。かかる点に鑑みればコーディング規約はアプリケーションの種別に応じて定められ、チェックされることが望ましい。
【特許文献１】特開平０８−１０１７７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来、コーディング規約をチェックするソフトウェアは、ソフトウェアの開発環境を提供するソフトウェア（コーディング、コンパイル、及びリンク等の支援を行うソフトウェア）とは別個の製品として存在しているものが多かった。その場合、開発環境において記述されたソースコードについてコーディング規約のチェックを行うためには、当該開発環境とは別に改めてコーディング規約のチェックソフトを起動し、当該チェックソフトにソースコードの格納場所やアプリケーションの種別等の情報をユーザが入力する必要があった。
【０００５】
また、一部のチェックソフトでは、開発環境から呼び出されて自動的に起動するものもあるが、開発環境からはソースコード等の格納場所が受け渡されるだけで、アプリケーションの種別については、ユーザが判断しなければならなかった。
【０００６】
本発明は、上記の点に鑑みてなされたものであって、アプリケーションのソースコードに適用するコーディング規約を適切に選択することのできるコーディング規約選択プログラムの提供を目的とする。
【課題を解決するための手段】
【０００７】
そこで上記課題を解決するため、本発明は、コンピュータに、アプリケーションの開発環境として定義されたプロジェクトのファイル構成に基づいて前記アプリケーションの種別を判定するファイル構成判定手順と、前記プロジェクトの種別に基づいて当該アプリケーションの種別を判定するプロジェクト種別判定手順と、前記アプリケーションの種別に応じて前記アプリケーションのソースコードに適用されるコーディング規約が定義された規約対応情報と、前記ファイル構成判定手順及び前記プロジェクト種別判定手順における少なくともいずれか一つの判定結果によって特定されるアプリケーションの種別とに基づいて、当該アプリケーションのソースコードに適用されるコーディング規約を判定する適用規約判定手順とを実行させることを特徴とする。
【０００８】
このようなコーディング規約選択プログラムでは、アプリケーションのソースコードに適用するコーディング規約を適切に選択することができる。
【発明の効果】
【０００９】
本発明によれば、アプリケーションのソースコードに適用するコーディング規約を適切に選択することのできるコーディング規約選択プログラムを提供することができる。
【発明を実施するための最良の形態】
【００１０】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態におけるソフトウェア開発支援装置のハードウェア構成例を示す図である。
【００１１】
図１のソフトウェア開発支援装置１０は、それぞれバスBで相互に接続されているドライブ装置１００と、補助記憶装置１０２と、メモリ装置１０３と、演算処理装置１０４と、表示装置１０５と、入力装置１０６と等を有するように構成される。
【００１２】
ソフトウェア開発支援装置１０での処理を実現するプログラムは、CD―ROM等の記録媒体１０１によって提供される。プログラムを記録した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、プログラムの処理に必要な各種のデータを格納する。
【００１３】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。演算処理装置１０４は、メモリ装置１０３に格納されたプログラムに従ってソフトウェア開発支援装置１０に係る機能を実行する。表示装置１０５はプログラムによるＧＵＩ（Graphical User Interface）等を表示する。入力装置１０６はキーボード及びマウス等で構成され、様々な操作指示を入力させるために用いられる。
【００１４】
図２は、本発明の実施の形態におけるソフトウェア開発支援装置の機能構成例を示す図である。
【００１５】
図２において、ソフトウェア開発支援装置１０は、開発環境提供部１１と、各種のビルドツール１２等とを有する。
【００１６】
開発環境提供部１１は、アプリケーションの開発環境を提供するためのソフトウェアである。例えば、開発環境提供部１１は、ユーザフレンドリなＧＵＩによって、アプリケーションの設計、コーディング、デバッグ、及びテスト等を支援するための統合的な環境を提供する。開発環境提供部１１は、作成するアプリケーションの開発環境を「プロジェクト」という単位で管理する。ユーザは、アプリケーションを作成する際、開発環境提供部１１を用いて当該アプリケーションの開発環境としてのプロジェクトを定義し、そのプロジェクトにおいてソースコード等の編集を行う。本実施の形態では、プロジェクトにおいて作成される、アプリケーションのビルドに必要な情報をプロジェクト資産１１１という。
【００１７】
プロジェクト資産１１１には、例えば、ソースファイルや各種の定義ファイル（例えば、ファイルの対応関係が定義されたファイルや、メイクファイル等）が含まれる。なお、ビルドとは、プロジェクト資産１１１に基づいてアプリケーションの実行コードを生成することをいい、一般的にはコンパイル及びリンク等の過程を含む処理をいう。
【００１８】
ビルドツール１２は、プロジェクト資産１１１に基づいてアプリケーションをビルドするためのコンパイラ等のツール（プログラム）である。本実施の形態では、ビルドツールの一つとして、規約チェックツール１２ｃが含まれている。規約チェックツール１２ｃは、アプリケーションのソースコードが、予め定められたコーディング規約（又は「コーディング規則」ともいう。）に従っているか否かをチェックするためのツールである。
【００１９】
図３は、本発明の実施の形態における規約チェックツールの機能構成例を示す図である。図３において、規約チェックツール１２ｃは、主に、規約選択部１２１と規約チェック部１２２とから構成される。
【００２０】
規約選択部１２１は、プロジェクト資産１１１に基づいて、当該プロジェクトにおいて対象となっているアプリケーションの種別（アプリケーション種別）を判定し、そのアプリケーション種別に応じたコーディング規約を選択する。規約選択部１２１は、ソースファイル抽出部１２１１、アプリケーション種別判定部１２１２、適用規約判定部１２１３、規約対応情報管理テーブル１２１４、及びチェック対象出力部１２１５等より構成される。
【００２１】
ソースファイル抽出部１２１１は、コーディング規約のチェック対象とされるソースコードが格納されたソースファイル１１１０の一覧をプロジェクト資産１１１より抽出する。アプリケーション種別判定部１２１２は、プロジェクト資産１１１を検査して、そのプロジェクトにおいて対象となっているアプリケーションのアプリケーション種別を判定する。
【００２２】
適用規約判定部１２１３は、アプリケーション種別判定部１２１２によって判定されたアプリケーション種別と規約対応情報管理テーブル１２１４とに基づいて、当該アプリケーション種別に対応するコーディング規約１２１０を選択する。規約対応情報管理テーブル１２１４は、アプリケーション種別とコーディング規約との対応関係が管理されているテーブルであり、アプリケーション種別ごとに適用されるコーディング規約が定義されている。したがって、適用規約判定部１２１３は、アプリケーション種別をキーとして規約対応情報管理テーブル１２１４を検索することで、ソースファイル１１１０に適用するコーディング規約１２１０を判定する。
【００２３】
チェック対象出力部１２１５は、ソースファイル抽出部１２１１又は適用規約判定部１２１３から抽出されたソースファイル１１１０の一覧とコーディング規約１２１０とを規約チェック部１２２に出力する。
【００２４】
規約チェック部１２２は、ソースファイル１１１０に格納されているソースコードが、コーディング規約１２１０に従っているか否かをチェックする。なお、規約チェック部１２２によるチェック処理は、所定のものに限定されず、周知のものを用いればよい。したがって、コーディング規約１２１０の記述形式についても、所定のものに限定されない。
【００２５】
次に、アプリケーション種別判定部１２１２の詳細について説明する。図４は、アプリケーション種別判定部の機能構成例を示す図である。図４において、アプリケーション種別判定部１２１２は、プロジェクト種別判定部１２１２ａ、構成ファイル判定部１２１２ｂ、構成ファイル内容判定部１２１２ｃ、ビルドツール判定部１２１２ｄ、及びアプリケーション種別特定部１２１２ｅ等より構成される。
【００２６】
また、図４に示されるように、プロジェクト資産１１１は、その一部としてプロジェクト情報テーブル１１１１を含む。プロジェクト情報テーブル１１１１は、プロジェクト種別１１１１ａ、構成ファイル情報１１１１ｂ、及びビルドツール情報１１１１ｃ等の情報を保持するテーブルである。プロジェクト種別１１１１ａは、そのプロジェクトが対象とするアプリケーション種別等に応じて分類されるプロジェクトの種別であり、プロジェクトの作成時にどのようなアプリケーションを作成する予定であるかを示す情報に基づいて自動的に選択される。構成ファイル情報１１１１ｂは、当該プロジェクトを構成するファイルの情報である。ビルドツール情報１１１１ｃは、当該プロジェクトのビルド方法等に関する情報をいい、ビルドの各工程で利用されるビルドツール１２を識別するための情報を例えばテーブル形式によって保持している。
【００２７】
アプリケーション種別判定部１２１２は、このように構成されるプロジェクト資産１１１に基づいて当該プロジェクトのアプリケーション種別を判定する。すなわち、プロジェクト種別判定部１２１２ａは、プロジェクト情報テーブル１１１１のプロジェクト種別に基づいてアプリケーション種別を判定する。構成ファイル判定部１２１２ｂは、当該プロジェクトのファイル構成に基づいてアプリケーション種別を判定する。構成ファイル内容判定部１２１２ｃは、構成ファイルの一部であるソースファイルの内容を解析することによりアプリケーション種別を判定する。ビルドツール判定部１２１２ｄは、当該プロジェクトが用いるビルドツールに基づいてアプリケーション種別を判定する。また、アプリケーション種別特定部１２１２ｅは、プロジェクト種別判定部１２１２ａ、構成ファイル判定部１２１２ｂ、構成ファイル内容判定部１２１２ｃ及びビルドツール判定部１２１２ｄ等の判定結果に基づいて、アプリケーション種別を特定する。アプリケーション種別特定部１２１２ｅによって特定されたアプリケーション種別が、アプリケーション種別判定部１２１２の判定結果として出力される。
【００２８】
以下、ソフトウェア開発支援装置１０の処理手順について説明する。図５は、開発環境提供部によるビルド時の処理手順を説明するためのフローチャートである。
【００２９】
開発環境提供部１１のＧＵＩ（例えば、メニュー等）を介して、ユーザによってビルドの開始が指示されると、開発環境提供部１１は、プロジェクト資産１１１におけるビルドツール情報１１１１ｃに定義された順番で、ビルドツール１２を呼び出す（Ｓ１０１〜Ｓ１０４）。呼び出されたビルドツールは、当該ビルドツールに応じた処理を実行する。これによって、アプリケーションがビルドされる。なお、アプリケーションのビルドに必須でないビルドツール１２は、ユーザの任意によってプロジェクトへの追加又は削除が可能である。したがって、規約チェックツール１２ｃがプロジェクトに追加されている場合、ビルドにおける一連の処理の中で規約チェックツール１２の処理が実行される。すなわち、本実施の形態におけるソフトウェア開発支援装置１０は、コーディング規約のチェック作業をビルド作業の一つの処理として実行する。したがって、ユーザは、両作業を区別して行う必要はない。
【００３０】
次に、図３の規約チェックツール１２ｃの処理手順について説明する。図６は、規約チェックツールの処理手順を説明するためのフローチャートである。図６の処理は、図５のステップＳ１０４において、開発環境提供部１１より規約チェックツール１２ｃが呼び出された際に実行される。
【００３１】
まず、アプリケーション種別判定部１２１２が、プロジェクト資産１１１に基づいてアプリケーション種別を判定する（Ｓ２０１）。続いて、適用規約判定部１２１３は、アプリケーション種別判定部１２１２によって判定されたアプリケーション種別と規約対応情報管理テーブル１２１４とに基づいて、当該アプリケーション種別に対応するコーディング規約１２１０を判定する（Ｓ２０２）。
【００３２】
図７は、規約対応情報管理テーブルの構成例を示す図である。
【００３３】
図７において、規約対応情報管理テーブル１２１４には、アプリケーション種別ごとに、適用する規約（コーディング規約）が設定されている。例えば、図７によれば、アプリケーション種別がＥＪＢ（登録商標）（Enterprise JavaBeans（登録商標））の場合は、規約Ａ、規約Ｂ、規約Ｄ、及び規約Ｇが適用されることになる。また、Ｗｅｂアプリケーション（Ｗｅｂアプリ）には、規約Ａ、規約Ｃ、規約Ｄ及び規約Ｇが適用されることになる。なお、図７では、ＥＪＢ（登録商標）及びＷｅｂアプリ以外を「その他」として分類しているが、「その他」に含まれるアプリケーション種別を細分化し、細分化されたアプリケーション種別ごとに、適用する規約を定義してもよい。
【００３４】
続いて、ソースファイル抽出部１２１１は、プロジェクト資産１１１より、ソースファイル１１１０の一覧を抽出する（Ｓ２０３）。コーディング規約１２１０及びソースファイル１１１０の一覧は、チェック対象出力部１２１５によって規約チェック部１２２に出力される。規約チェック部１２２は、ソースファイル１１１０のソースコードが、コーディング規約１２１０に従ったものであるか否かのチェックを行う（Ｓ２０４）。
【００３５】
次に、ステップＳ２０１におけるアプリケーション種別判定部１２１２による処理の詳細について説明する。図８は、アプリケーション種別判定部によるアプリケーション種別の判定処理の処理手順を説明するためのフローチャートである。
【００３６】
まず、ビルドツール判定部１２１２ｄは、ビルドツール情報１１１１ｃに基づいてアプリケーション種別を判定する（Ｓ３０１）。すなわち、ビルドツール情報１１１１ｃには、プロジェクトに追加されているビルドツール１２が定義されている。また、アプリケーション種別は、プロジェクトが利用するビルドツールとある程度の対応関係を有する。そこで、ビルドツール判定部１２１２ｄは、この対応関係に基づいてアプリケーション種別を判定する。なお、一つのプロジェクトに対し、複数のビルドツールが追加され得る。
【００３７】
アプリケーション種別とビルドツールとの対応関係は、例えば、図９に示されるようなテーブル形式の情報として予め作成しておけばよい。
【００３８】
図９は、アプリケーション種別とビルドツールとの対応関係を管理するテーブルの構成例を示す図である。
【００３９】
図９において、テーブル１２１２ｄ−１には、ビルドツールごとに関連し得るアプリケーション種別が定義されている。図９の例では、Ｊａｖａ（登録商標）コンパイラは、全てのアプリケーション種別のビルドに用いられ得ることが定義されている。また、ＪａｖａＢｅａｎｓ（登録商標）情報生成ツールは、クライアントアプリケーション又はライブラリ（クライアント／ライブラリ）のビルドに用いられ得ることが定義されている。また、Ｊａｒパッケージツールは、クライアントライブラリ、ＥＪＢ（登録商標）、及びＷｅｂサービスのビルドに用いられ得ることが定義されている。
【００４０】
なお、アプリケーション種別とビルドツールとの対応関係を管理するテーブルは、図１０のように構成してもよい。図１０は、アプリケーション種別とビルドツールとの対応関係を管理するテーブルの第二の構成例を示す図である。
【００４１】
図１０において、テーブル１２１２ｄ−２には、アプリケーション種別ごとに通常使われるビルドツールが定義されている。図１０の例では、クライアントアプリケーション又はライブラリのビルドには、Ｊａｖａ（登録商標）コンパイラ、ＪａｖａＢｅａｎｓ（登録商標）情報生成ツール、ＪａｖａＢｅａｎｓ（登録商標）マニフェスト生成ツール、及びＪａｒパッケージツールが通常用いられることが定義されている。また、ＷｅｂアプリのビルドにはＪａｖａ（登録商標）コンパイラ、ＪＳＰ（登録商標）（JavaServer Pages（登録商標））コンパイラ、及びＷＡＲパッケージツールが通常用いられることが定義されている。
【００４２】
したがって、ビルドツール判定部１２１２ｄは、テーブル１２１２ｄ−１又はテーブル１２１２ｄ−２に基づいて、アプリケーション種別を判定する。例えば、Ｊａｖａ（登録商標）コンパイラ、ＪＳＰ（登録商標）コンパイラ、ＷＡＲパッケージがビルドツールとしてプロジェクトに設定されている場合は、アプリケーション種別は「Ｗｅｂアプリ」と一意に特定される。アプリケーション種別が一意に特定された場合、ビルドツール判定部１２１２ｄは、当該アプリケーション種別をアプリケーション種別特定部１２１２ｅに出力する。
【００４３】
ところで、ビルドツールに基づいて、アプリケーション種別が一意に特定できない場合がある。例えば、Ｊａｖａ（登録商標）コンパイラ、ＪＳＰ（登録商標）コンパイラ、ＥＪＢ（登録商標）仕様検査ツールがビルドツールとしてプロジェクトに設定されている場合は、アプリケーション種別は「ＥＪＢ（登録商標）」又は「Ｗｅｂアプリ」の可能性がある。この場合、ビルドツール判定部１２１２ｄは、当該複数のアプリケーション種別をアプリケーション種別特定部１２１２ｅに出力する。また、Ｊａｖａ（登録商標）コンパイラのみがビルドツールとしてプロジェクトに設定されている場合は、全てのアプリケーション種別に可能性がある。この場合、ビルドツール判定部１２１２ｄは、「判定不能」をアプリケーション種別特定部１２１２ｅに出力する。
【００４４】
ビルドツール判定部１２１２ｄによってアプリケーション種別が一意に特定できた場合（Ｓ３０２でＹｅｓ）、アプリケーション種別特定部１２１２ｅは、当該アプリケーション種別を適用規約判定部１２１３に出力し、当該処理を終了させる。
【００４５】
一方、ビルドツール判定部１２１２ｄによってアプリケーション種別が一意に特定できなかった場合（Ｓ３０２でＮｏ）、構成ファイル判定部１２１２ｂが構成ファイル情報１１１１ｂに基づいて、アプリケーション種別を判定する（Ｓ３０３）。すなわち、構成ファイル情報１１１１ｂには、プロジェクトのファイル構成が定義されている。また、アプリケーション種別は、プロジェクトのファイル構成（プロジェクトにどのようなファイルが含まれているか）とある程度の対応関係を有する。そこで、構成ファイル判定部１２１２ｂは、この対応関係に基づいて、アプリケーション種別を判定する。
【００４６】
図１１は、アプリケーション種別とファイル構成との対応関係の例を示す図である。
【００４７】
図１１では、ＥＪＢ（登録商標）の場合、ejb-jar.xmlが必須の構成ファイルであることが示されている。また、必須ではないが、ある特定のファイルが構成ファイルに含まれているとアプリケーション種別を特定できるものがある。例えば、図１１では、web.xmlがあれば、Ｗｅｂアプリケーションであることが示されている。
【００４８】
したがって、例えば、図１１のような対応関係に基づく場合、ejb-jar.xml及びweb.xmlのうちいずれか一方のみが構成ファイルに含まれている場合は、アプリケーション種別は「ＥＪＢ（登録商標）」又は「Ｗｅｂアプリ」のいずれか一方に特定される。したがって、この場合、構成ファイル判定部１２１２ｂは、一意に特定されたアプリケーション種別をアプリケーション種別特定部１２１２ｅに出力する。
【００４９】
また、ejb-jar.xml及びweb.xmlの双方が構成ファイルに含まれている場合、構成ファイル判定部１２１２ｅは、複数のアプリケーション種別（「ＥＪＢ（登録商標）」及び「Ｗｅｂアプリ」）をアプリケーション種別特定部１２１２ｅに出力する。
【００５０】
また、いずれのファイルも構成ファイルに含まれていない場合、構成ファイル判定部１２１２ｅは、「判定不能」をアプリケーション種別特定部１２１２ｅに出力する。
【００５１】
構成ファイル判定部１２１２ｂによってアプリケーション種別が一意に特定できた場合（Ｓ３０４でＹｅｓ）、アプリケーション種別特定部１２１２ｅは、当該アプリケーション種別を適用規約判定部１２１３に出力し、当該処理を終了させる。
【００５２】
一方、構成ファイル判定部１２１２ｂによってアプリケーション種別が一意に特定できなかった場合（Ｓ３０４でＮｏ）、構成ファイル内容判定部１２１２ｃが構成ファイルの内容に基づいて、アプリケーション種別を判定する（Ｓ３０５）。すなわち、アプリケーション種別は、構成ファイルの内容とある程度の対応関係を有する。そこで、構成ファイル内容判定部１２１２ｃは、この対応関係に基づいて、アプリケーション種別を判定する。
【００５３】
具体的には、例えば、ＥＪＢ（登録商標）であればインタフェース javax.ejb.EnterpriseBeanを実装したクラスが必要となる。したがって、構成ファイル内容判定部１２１２ｃは、ソースファイルの内容を解析し、どのインタフェースを実装しているのか、どのクラスを継承しているのか等を調べることで、アプリケーション種別を判定する。
【００５４】
図１２は、アプリケーション種別と構成ファイルの内容との対応関係の例を示す図である。
【００５５】
図１２によれば、「javax.servlet.http.HttpServletクラス」を継承しているクラスが存在する場合、アプリケーション種別の判定結果に「Ｗｅｂアプリ」が含まれる。また、「javax.ejb.EnterpriseBeanインタフェース」を実装しているクラスがある場合、アプリケーション種別の判定結果に「ＥＪＢ（登録商標）」が含まれる。また、「java.awt.Componentクラス」を継承しているクラスが存在する場合、アプリケーション種別の判定結果に「クライアントアプリ」が含まれる。いずれにも該当しない場合は、「判定不能」が判定結果とされる。構成ファイル内容判定部１２１２ｃによる判定結果は、アプリケーション種別特定部１２１２ｅに出力される。なお、クラス又はインタフェースの継承の有無は、ソースコード内に当該クラス又はインタフェースを継承することを示す文字列が含まれているか否かによって判定すればよい。
【００５６】
構成ファイル内容判定部１２１２ｃによってアプリケーション種別が一意に特定できた場合（Ｓ３０６でＹｅｓ）、アプリケーション種別特定部１２１２ｅは、当該アプリケーション種別を適用規約判定部１２１３に出力し、当該処理を終了させる。
【００５７】
一方、構成ファイル内容判定部１２１２ｃによってアプリケーション種別が一意に特定できなかった場合（Ｓ３０６でＮｏ）、プロジェクト種別判定部１２１２ａがプロジェクト種別１１１１ａに基づいて、アプリケーション種別を判定する（Ｓ３０７）。すなわち、プロジェクト種別１２１２ａは、当該プロジェクトを作成する際にどのようなアプリケーションを作成する予定であるかを示す情報に基づいて開発環境提供部１１１によって選択される情報であり、アプリケーション種別との間に対応関係を有する。そこで、プロジェクト種別判定部１２１２ａは、この対応関係に基づいて、アプリケーション種別を判定する。
【００５８】
図１３は、アプリケーション種別とプロジェクト種別との対応関係を示す図である。
【００５９】
図１３の例では、プロジェクト種別ごとに対応するアプリケーション種別の例が示されている。図１３の例では、アプリケーション種別の粒度はプロジェクト種別の粒度より大きい。したがって、この場合、プロジェクト種別に基づいてアプリケーション種別が一意に判定される。例えば、プロジェクト種別が「appletproject」の場合、アプリケーション種別は「アプレット」と判定される。また、プロジェクト種別が「soapproject」の場合、アプリケーション種別は「Ｗｅｂサービス」と判定される。したがって、プロジェクト種別判定部１２１２ａよりアプリケーション種別特定部１２１２ｅに出力されるアプリケーション種別は一意なものとなり、アプリケーション種別特定部１２１２ｅは、当該アプリケーション種別を適用規約判定部１２１３に出力する。
【００６０】
ところで、プロジェクト種別に応じてアプリケーション種別が一意に特定できるのであれば、プロジェクト種別のみに基づいてアプリケーション種別を判定すればよいと考えられる。しかしながら、本実施の形態では、プロジェクト種別とアプリケーション種別との対応関係が必ずしも保証されない場合をも考慮している。すなわち、プロジェクト種別は、プロジェクトの生成時に定まる情報であるところ、実際のアプリケーション種別は、その後の開発作業（ビルドツールの追加又は削除、構成ファイルの追加又は削除、コーディング等）によって変化し得る情報であることを想定しているのである。したがって、本実施の形態では、ビルドツール、ファイル構成、構成ファイルの内容、プロジェクト種別の順番でアプリケーション種別を判定しているのである。なお、判定の順番は、判定に用いる情報とアプリケーション種別との対応関係の強い順（すなわち、判定に用いる情報の信頼性の高い順）にすることが望ましい。信頼性の低い情報に基づいて一意に判定されたアプリケーション種別は、信頼性が低いからである。本実施の形態では、ビルドツール、ファイル構成、構成ファイルの内容、プロジェクト種別の順番で信頼性が高い場合を例としたのであり、この順番は、信頼性の高さに応じて適宜変更してもよい。
【００６１】
また、アプリケーション種別の判定は、常に上記４つの情報に基づいて行わなくてもよい。例えば、ファイル構成とプロジェクト種別に基づいて行ってもよい。但し、ファイル構成とプロジェクト種別に基づいてアプリケーション種別が一意に定まらないケースがある場合、ビルドツールや構成ファイルの内容等を用いることにより判定結果の精度を向上させることが望ましい。
【００６２】
上述したように、本発明の実施の形態におけるソフトウェア開発支援装置１０によれば、コーディング規約のチェック対象とするアプリケーションのアプリケーション種別を自動的に判定し、当該アプリケーション種別に応じたコーディング規約を自動的に選択することができる。したがって、アプリケーション種別の選択や適用するコーディング規約の選択等の煩雑な作業からユーザを解放することができ、生産性の向上を図ることができる。
【００６３】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【００６４】
以上の説明に関し、更に以下の項を開示する。
（付記１）  コンピュータに、
アプリケーションの開発環境として定義されたプロジェクトのファイル構成に基づいて前記アプリケーションの種別を判定するファイル構成判定手順と、
前記プロジェクトの種別に基づいて当該アプリケーションの種別を判定するプロジェクト種別判定手順と、
前記アプリケーションの種別に応じて前記アプリケーションのソースコードに適用されるコーディング規約が定義された規約対応情報と、前記ファイル構成判定手順及び前記プロジェクト種別判定手順における少なくともいずれか一つの判定結果によって特定されるアプリケーションの種別とに基づいて、当該アプリケーションのソースコードに適用されるコーディング規約を判定する適用規約判定手順とを実行させるためのコーディング規約選択プログラム。
（付記２）  前記ファイル構成判定手順において前記アプリケーションの種別が一意に特定されない場合に、前記プロジェクト種別判定手順を実行させることを特徴とする付記１記載のコーディング規約選択プログラム。
（付記３）  前記ファイル構成判定手順は、前記プロジェクトを構成するファイルにおける所定のファイルの有無に基づいて、前記アプリケーションの種別を判定することを特徴とする付記１又は２記載のコーディング規約選択プログラム。
（付記４）  前記プロジェクトにおいて前記アプリケーションのビルドに用いられるプログラムの構成に基づいて前記アプリケーションの種別を判定するビルドツール判定手順を有し、
前記適用規約判定手順は、前記規約対応情報と、前記ビルドツール判定手順、前記ファイル構成判定手順、及び前記プロジェクト種別判定手順における少なくともいずれか一つの判定結果によって特定されるアプリケーションの種別とに基づいて、当該アプリケーションのソースコードに適用されるコーディング規約を判定することを特徴とする付記１乃至３いずれか一項記載のコーディング規約選択プログラム。
（付記５）  前記ビルドツール判定手順において前記アプリケーションの種別が一意に特定されない場合に、前記ファイル構成判定手順を実行させることを特徴とする付記４記載のコーディング規約選択プログラム。
（付記６）  前記ビルドツール判定手順及び前記ファイル構成判定手順において前記アプリケーションの種別が一意に特定されない場合に、前記プロジェクト種別判定手順を実行させることを特徴とする付記５記載のコーディング規約選択プログラム。
（付記７）  前記プロジェクトを構成する所定のファイルの内容に基づいて前記アプリケーションの種別を判定するファイル内容判定手順を有し、
前記適用規約判定手順は、前記規約対応情報と、前記ファイル内容判定手順、前記ファイル構成判定手順、及び前記プロジェクト種別判定手順における少なくともいずれか一つの判定結果によって特定されるアプリケーションの種別とに基づいて、当該アプリケーションのソースコードに適用されるコーディング規約を判定することを特徴とする付記１乃至３いずれか一項記載のコーディング規約選択プログラム。
（付記８）  前記ファイル構成判定手順において前記アプリケーションの種別が一意に特定されない場合に、前記ファイル内容判定手順を実行させることを特徴とする付記７記載のコーディング規約選択プログラム。
（付記９）  前記ファイル構成判定手順及び前記ファイル内容判定手順において前記アプリケーションの種別が一意に特定されない場合に、前記プロジェクト種別判定手順を実行させることを特徴とする付記８記載のコーディング規約選択プログラム。
（付記１０）  前記プロジェクトを構成する所定のファイルの内容に基づいて前記アプリケーションの種別を判定するファイル内容判定手順を有し、
前記適用規約判定手順は、前記規約対応情報と、前記ファイル内容判定手順、前記ビルドツール判定手順、前記ファイル構成判定手順、及び前記プロジェクト種別判定手順における少なくともいずれか一つの判定結果によって特定されるアプリケーションの種別とに基づいて、当該アプリケーションのソースコードに適用されるコーディング規約を判定することを特徴とする付記４乃至６いずれか一項記載のコーディング規約選択プログラム。
（付記１１）  前記ファイル構成判定手順において前記アプリケーションの種別が一意に特定されない場合に、前記ファイル内容判定手順を実行させることを特徴とする付記１０記載のコーディング規約選択プログラム。
（付記１２）  前記ビルドツール判定手順、前記ファイル構成判定手順及び前記ファイル内容判定手順において前記アプリケーションの種別が一意に特定されない場合に、前記プロジェクト種別判定手順を実行させることを特徴とする付記１１記載のコーディング規約選択プログラム。
（付記１３）  前記ファイル内容判定手順は、前記アプリケーションのソースコードにおける所定の文字列の有無に基づいて前記アプリケーションの種別を判定することを特徴とする付記７乃至１２いずれか一項記載のコーディング規約選択プログラム。
（付記１４）  付記１乃至１３いずれか一項記載のコーディング規約選択プログラムを記録したコンピュータ読み取り可能な記録媒体。
（付記１５）  コンピュータを用いてアプリケーションのソースコードに適用するコーディング規約を選択するコーディング規約選択方法であって、
アプリケーションの開発環境として定義されたプロジェクトのファイル構成に基づいて前記アプリケーションの種別を判定するファイル構成判定手順と、
前記プロジェクトの種別に基づいて当該アプリケーションの種別を判定するプロジェクト種別判定手順と、
前記アプリケーションの種別に応じて前記アプリケーションのソースコードに適用されるコーディング規約が定義された規約対応情報と、前記ファイル構成判定手順及び前記プロジェクト種別判定手順における少なくともいずれか一つの判定結果によって特定されるアプリケーションの種別とに基づいて、当該アプリケーションのソースコードに適用されるコーディング規約を判定する適用規約判定手順とを有することを特徴とするコーディング規約選択方法。
（付記１６）    アプリケーションの開発環境として定義されたプロジェクトのファイル構成に基づいて前記アプリケーションの種別を判定するファイル構成判定手段と、
前記プロジェクトの種別に基づいて当該アプリケーションの種別を判定するプロジェクト種別判定手段と、
前記アプリケーションの種別に応じて前記アプリケーションのソースコードに適用されるコーディング規約が定義された規約対応情報と、前記ファイル構成判定手段及び前記プロジェクト種別判定手段による少なくともいずれか一つの判定結果によって特定されるアプリケーションの種別とに基づいて、当該アプリケーションのソースコードに適用されるコーディング規約を判定する適用規約判定手段とを有することを特徴とするコーディング規約選択装置。
【図面の簡単な説明】
【００６５】
【図１】本発明の実施の形態におけるソフトウェア開発支援装置のハードウェア構成例を示す図である。
【図２】本発明の実施の形態におけるソフトウェア開発支援装置の機能構成例を示す図である。
【図３】本発明の実施の形態における規約チェックツールの機能構成例を示す図である。
【図４】アプリケーション種別判定部の機能構成例を示す図である。
【図５】開発環境提供部によるビルド時の処理手順を説明するためのフローチャートである。
【図６】規約チェックツールの処理手順を説明するためのフローチャートである。
【図７】規約対応情報管理テーブルの構成例を示す図である。
【図８】アプリケーション種別判定部によるアプリケーション種別の判定処理の処理手順を説明するためのフローチャートである。
【図９】アプリケーション種別とビルドツールとの対応関係を管理するテーブルの構成例を示す図である。
【図１０】アプリケーション種別とビルドツールとの対応関係を管理するテーブルの第二の構成例を示す図である。
【図１１】アプリケーション種別とファイル構成との対応関係の例を示す図である。
【図１２】アプリケーション種別と構成ファイルの内容との対応関係の例を示す図である。
【図１３】アプリケーション種別とプロジェクト種別との対応関係を示す図である。
【符号の説明】
【００６６】
１０          ソフトウェア開発支援装置
１１          開発環境提供部
１２、１２ａ、１２ｂ          ビルドツール
１２ｃ        規約チェックツール
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        演算処理装置
１０５        表示装置
１０６        入力装置
１１１        プロジェクト資産
１２１        規約選択部
１２２        規約チェック部
１１１０      ソースファイル
１２１０      コーディング規約
１２１１      ソースファイル抽出部
１２１２      アプリケーション種別判定部
１２１２ａ    プロジェクト種別判定部
１２１２ｂ    構成ファイル判定部
１２１２ｃ    構成ファイル内容判定部
１２１２ｄ    ビルドツール判定部
１２１３      適用規約判定部
１２１４      規約対応情報管理テーブル
１２１５      チェック対象出力部
Ｂ            バス
【図１】
2007200125.tif 000003
【図２】
2007200125.tif 000004
【図３】
2007200125.tif 000005
【図４】
2007200125.tif 000006
【図５】
2007200125.tif 000007
【図６】
2007200125.tif 000008
【図７】
2007200125.tif 000009
【図８】
2007200125.tif 000010
【図９】
2007200125.tif 000011
【図１０】
2007200125.tif 000012
【図１１】
2007200125.tif 000013
【図１２】
2007200125.tif 000014
【図１３】
2007200125.tif 000015