(57)【要約】【目的】  プログラマがプログラミングの作業工程で現在作成中のプログラムについて予め規定されたルールの中からどのルールを適用すればよいかを容易に知ることができるようにする。【構成】  ソースコードルールチェック装置の制御装置は、Ｓ１で通信装置によってＰＣからプログラムのソースコードＡを受信すると、Ｓ２で第１データベースにアクセスし、ソースコードＡの内容をチェックし、Ｓ３で第１データベースのコーディングルールからソースコードＡの内容に該当する項目をリストアップし、Ｓ４でそのリストアップした項目のルールからなる結果ファイルＡを作成してＲＡＭに保存し、Ｓ５で通信装置によってＰＣへ結果ファイルＡを送信し、この処理を終了する。【選択図】        図２
2006260165.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを作成する際の各種のルールを記憶したデータベースと、プログラムのソースコードを受信し、前記データベースから前記受信したソースコードの内容に該当するルールをリストアップし、該リストアップしたルールからなる結果ファイルを作成する手段とからなることを特徴とするプログラムルールチェック装置。
【請求項２】
プログラムを作成する際の各種のルールを記憶したデータベースと、２種類のプログラムのソースコードを受信し、該受信した各ソースコードの差分を取った差分ファイルを作成し、前記データベースから前記作成した差分ファイルの内容に該当するルールをリストアップし、該リストアップしたルールからなる結果ファイルを作成する手段とからなることを特徴とするプログラムルールチェック装置。
【請求項３】
請求項１記載のプログラムルールチェック装置において、前記プログラムとは異なるプログラムのソースコードを受信し、該受信したソースコードと前記作成された結果ファイルの差分を取った差分ファイルを作成し、前記データベースから前記作成した差分ファイルの内容に該当するルールをリストアップし、該リストアップしたルールからなる結果ファイルを作成する手段を設けたことを特徴とするプログラムルールチェック装置。
【請求項４】
請求項３記載のプログラムルールチェック装置において、前記データベースに前記作成した差分ファイルの内容に該当するルールがなかったとき、その該当するルールがなかった結果ファイルを作成し、該結果ファイルを解析して新たなルールを作成し、該作成した新たなルールを前記データベースに登録する手段を設けたことを特徴とするプログラムルールチェック装置。
【請求項５】
請求項４記載のプログラムルールチェック装置において、前記新たなルールを作成できなかったとき、前記ソースコード又は前記差分ファイルから新たなルールを作成できない箇所を抽出し、該抽出した箇所からなる結果ファイルを作成し、該作成した結果ファイルを保存する手段を設けたことを特徴とするプログラムルールチェック装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プログラムの作成に適用するコーディングルールを含むルールを容易に参照可能にするプログラムルールチェック装置に関する。
【背景技術】
【０００２】
近年、ソフトウェアプログラム（以下「プログラム」という）の内容が大規模化且つ複雑化しており、プログラマがプログラミングの作業工程で記述の間違いを含む誤りを犯すことが増えている。
その誤りを犯す原因としては、プログラマがプログラム言語やコーディングの知識を十分に備えていなかったり、プログラムの再利用の繰り返しでソースコードが複雑になっていることが指摘されている。
プログラミングの作業工程で誤りを防止する方法として、ソースコードのレビューとソースコードのモジュールテストを実施する手法があるが、それらの手法ではプログラミングの工程での誤りを防止することは困難になりつつある。
【０００３】
そこで、静的解析でプログラムを作成する際の各種のルールの項目からなるコーディングルールを規定し、プログラマはそのコーディングルールに従ってプログラミングすることによりプログラミングの作業工程での誤りを防止する方法が考案されている。
従来、作成されたプログラムのコーディングスタイルを自動的にチェックする装置（例えば、特許文献１参照）があった。
【特許文献１】特開平６−２８１６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の装置では、チェック結果に基づいてプログラマがどのコーディングルールを適用すればよいかを容易に判断することができないという問題があった。
この発明は上記の点に鑑みてなされたものであり、プログラマがプログラミングの作業工程で現在作成中のプログラムについて予め規定されたルールの中からどのルールを適用すればよいかを容易に知ることができるようにすることを目的とする。
【課題を解決するための手段】
【０００５】
この発明は上記の目的を達成するため、次の各プログラムルールチェック装置を提供する。
（１）プログラムを作成する際の各種のルールを記憶したデータベースと、プログラムのソースコードを受信し、上記データベースから上記受信したソースコードの内容に該当するルールをリストアップし、そのリストアップしたルールからなる結果ファイルを作成する手段とからなるプログラムルールチェック装置。
【０００６】
（２）プログラムを作成する際の各種のルールを記憶したデータベースと、２種類のプログラムのソースコードを受信し、その受信した各ソースコードの差分を取った差分ファイルを作成し、上記データベースから上記作成した差分ファイルの内容に該当するルールをリストアップし、そのリストアップしたルールからなる結果ファイルを作成する手段とからなるプログラムルールチェック装置。
【０００７】
（３）上記（１）のプログラムルールチェック装置において、上記プログラムとは異なるプログラムのソースコードを受信し、その受信したソースコードと上記作成された結果ファイルの差分を取った差分ファイルを作成し、上記データベースから上記作成した差分ファイルの内容に該当するルールをリストアップし、そのリストアップしたルールからなる結果ファイルを作成する手段を設けたプログラムルールチェック装置。
（４）上記（３）のプログラムルールチェック装置において、上記データベースに上記作成した差分ファイルの内容に該当するルールがなかったとき、その該当するルールがなかった結果ファイルを作成し、その結果ファイルを解析して新たなルールを作成し、上記作成した新たなルールを前記データベースに登録する手段を設けたプログラムルールチェック装置。
【０００８】
（５）上記（４）のプログラムルールチェック装置において、上記新たなルールを作成できなかったとき、上記ソースコード又は上記差分ファイルから新たなルールを作成できない箇所を抽出し、その抽出した箇所からなる結果ファイルを作成し、その作成した結果ファイルを保存する手段を設けたプログラムルールチェック装置。
【発明の効果】
【０００９】
この発明によるプログラムルールチェック装置は、プログラマがプログラミングの作業工程で現在作成中のプログラムについて予め規定されたルールの中からどのルールを適用すればよいかを容易に知ることができる。
【発明を実施するための最良の形態】
【００１０】
以下、この発明を実施するための最良の形態を図面に基づいて具体的に説明する。
〔実施例〕
図１は、この発明の実施例のシステムの構成を示すブロック図である。
このシステムは、この発明に係るプログラムルールチェック装置に相当するソースコードルールチェック装置１と、パーソナルコンピュータ（以下「ＰＣ」と略称する）２とがインターネット、ローカルエリアネットワークを含むネットワーク３を介してデータ通信可能に接続されている。
ソースコードルールチェック装置１は、ＲＯＭ１０、ＲＡＭ１１、第１データベース（以下「第１ＤＢ」と略称もする）１２、第２データベース（以下「第２ＤＢ」と略称もする）１３、通信装置１４、制御装置１５からなる。
【００１１】
ＲＯＭ１０は、コンピュータにプログラムのソースコードについて予め第１ＤＢ１２に記憶されたソースコードルールをチェックする手順を実行させるためのプログラムＡ１６と、コンピュータに結果ファイルに基づいて新たなルールを作成し、その新たなルールが作成できないときには、新たなルールが作成できないソースコードの箇所からなる結果ファイルを作成する手順を実行させるためのプログラムＢ１７を記憶するメモリである。
ＲＡＭ１１は、制御装置１５がＲＯＭ１０のプログラムＡ１６、プログラムＢ１７を含むプログラムを実行するときに使用する作業領域と、プログラムのソースコード、差分ファイル、結果ファイルを一時的に記憶するメモリである。
【００１２】
第１ＤＢ１２は、プログラムＡ１６及びプログラムＢ１７の実行によって生成される結果ファイル、差分ファイル、ソースコード、プログラムを作成する際の各種のルールの項目からなるコーディングルール１８を記憶するハードディスク装置（ＨＤＤ）を含む記憶装置である。すなわち、この発明に係るデータベースに相当する。
第２ＤＢ１３は、プログラムＢ１７の実行によって新たなルールを作成できなかったソースコードの箇所からなる結果ファイルＥ１９を記憶するハードディスク装置（ＨＤＤ）を含む記憶装置である。すなわち、この発明に係る新たなルールを作成できなかったソースコードの箇所からなる結果ファイルＥ１９を記憶する手段に相当する。
通信装置１４は、ＰＣ２との間のネットワーク３を介したデータ通信の制御を司り、ＰＣ２からのプログラムのソースコードの受信、ＰＣ２への結果ファイルの送信を含む処理を実行する。
【００１３】
制御装置１５は、ＣＰＵによって実現され、ＲＡＭ１１を使用してＲＯＭ１０の各プログラムを実行することによってこの装置全体の制御を司り、プログラムＡ１６によってプログラムルールチェック処理を実行し、プログラムＢ１７によって新ルール作成処理を実行する。すなわち、この発明に係る各手段の機能を果たす。
一方、ＰＣ２は、ＣＰＵ、ＲＯＭ及びＲＡＭからなるマイクロコンピュータによって実現される制御装置を内蔵し、ソースコードルールチェック装置１へコーディングルールのチェックを行わせるプログラムのソースコードを送信し、そのチェック結果である結果ファイルを受信し、その結果ファイルの情報を図示を省略した表示装置に表示したり、同じく図示を省略した印刷装置によって印刷したりする処理を行う。
【００１４】
図２は、図１に示すソースコードルールチェック装置１の制御装置１５によるプログラムルールチェック処理を示すフローチャート図である。
制御装置１５は、ステップ（図中「Ｓ」で示す）１で通信装置によってＰＣからプログラムのソースコードＡを受信すると、ステップ２で第１データベースにアクセスし、ソースコードＡの内容をチェックし、ステップ３で第１データベースのコーディングルールからソースコードＡの内容に該当する項目をリストアップし、ステップ４でそのリストアップした項目のルールからなる結果ファイルＡを作成してＲＡＭに保存し（第１ＤＢにも保存するようにしても良い）、ステップ５で通信装置によってＰＣへ結果ファイルＡを送信し、この処理を終了する。
【００１５】
このようにして、第１ＤＢに登録されているコーディングルールをソースコードから検出して得ることができるので、その検出結果を参照することによって品質のよいソースコードを作成することが容易になる。
【００１６】
図３は、図１に示すソースコードルールチェック装置１の制御装置１５による他のプログラムルールチェック処理を示すフローチャート図である。
制御装置１５は、ステップ（図中「Ｓ」で示す）１１で通信装置によってＰＣから修正前のプログラムのソースコードＡを受信し、ステップ１２で通信装置によってＰＣから修正後のプログラムのソースコードＢを受信すると、ステップ１３でソースコードＡとソースコードＢの差分ファイルＢを作成し、ステップ１４で第１データベースにアクセスし、差分ファイルＢの内容をチェックし、ステップ１５で第１データベースのコーディングルールから差分ファイルＢの内容に該当する項目をリストアップし、ステップ１６でそのリストアップした項目のルールからなる結果ファイルＢを作成してＲＡＭに保存し（第１ＤＢにも保存するようにしても良い）、ステップ１７で通信装置によってＰＣへ結果ファイルＢを送信し、この処理を終了する。
【００１７】
このようにして、ソースコードの差分ファイルを作成し、第１ＤＢに登録されているコーディングルールをソースコードの差分ファイルから検出するので、その検出結果を参照することによってソースコードの修正点に対する問題点が的確に把握することができ、誤りの原因の把握が容易になる。
【００１８】
図４は、図２に示すプログラムルールチェック処理の続きの処理を示すフローチャート図である。
制御装置１５は、ステップ（図中「Ｓ」で示す）２１で通信装置によってＰＣから修正後のプログラムのソースコードＢを受信し、ステップ２２で通信装置によってＰＣから結果ファイルＡを受信すると、ステップ２３でソースコードＢと結果ファイルＡの差分ファイルＣを作成し、ステップ２４で第１データベースにアクセスし、差分ファイルＣの内容をチェックし、ステップ２５で第１データベースに差分ファイルＣの内容に該当するコーディングルールの項目が有るか否かを判断し、有れば、ステップ２６で第１データベースのコーディングルールから差分ファイルＣの内容に該当する項目をリストアップし、ステップ２７でそのリストアップした項目のルールからなる結果ファイルＣを作成してＲＡＭに保存し（第１ＤＢにも保存するようにしても良い）、ステップ２８で通信装置によってＰＣへ結果ファイルＣを送信し、この処理を終了する。
【００１９】
一方、ステップ２５の判断で第１データベースに差分ファイルＣの内容に該当するコーディングルールの項目が無かったとき、ステップ２９でその該当するルールがなかった結果ファイルＤを作成してＲＡＭに保存し（第１ＤＢにも保存するようにしても良い）、ステップ３０で通信装置によってＰＣへ結果ファイルＤを送信し、ステップ３１で新ルール作成処理へ結果ファイルＤを送り、この処理を終了する。
【００２０】
図５は、図１に示すソースコードルールチェック装置１の制御装置１５による新ルール作成処理を示すフローチャート図である。
制御装置１５は、ステップ（図中「Ｓ」で示す）４１でプログラムルールチェック処理から結果ファイルＤを受け取ると、ステップ４２で結果ファイルＤの内容を解析し、ステップ４３で新ルールを作成できるか否かを判断し、作成できるなら、ステップ４４で結果ファイルＤの内容を解析結果に基づいて新ルールＤを作成して第１データベースに登録し、この処理を終了する。
【００２１】
一方、ステップ４３の判断で新ルールを作成できないとき、ステップ４５でプログラムルールチェック処理に差分ファイルＣ又はソースコードＢの保存場所を問い合わせ、ステップ４６で差分ファイルＣ又はソースコードＢを参照し、差分ファイルＣ又はソースコードＢから新ルールが作成できないソースコードの箇所を抽出し、ステップ４７で差分ファイルＣ又はソースコードＢから抽出した新ルールが作成できない箇所からなる結果ファイルＥを作成して第２データベースに保存し、ステップ４８で通信装置によってＰＣへ結果ファイルＥを送信し、ステップ４９で通信装置によってＰＣに結果ファイルＥに該当する変更を行った理由の入力を促す指示を送信し、ステップ５０で通信装置によってＰＣから結果ファイルＥに該当する変更を行った理由を受信すると、ステップ５１で第２データベースの結果ファイルＥに対応させて結果ファイルＥに該当する変更を行った理由を登録すし、この処理を終了する。
【００２２】
このようにして、第１ＤＢに登録されているコーディングルールを結果ファイルとソースコードから検出するので、ソースコードの修正点に対する問題点を的確に把握することができ、原因の把握が容易になる。また、作成された結果ファイルを利用することにより、ユーザの作業を軽減することができる。
さらに、結果ファイルを解析して、新たなルールを作成し、その新たなルールを第１ＤＢに登録するので、第１ＤＢに登録されていコーディングルールの精度を向上させることができ、より品質の高いソースコードを作成することが容易になる。
さらにまた、新たなルールが生成できないソースコードの箇所を抽出し、その抽出した箇所の情報を第２ＤＢに登録するので、第１ＤＢでは救うことができない事例でも、知識、ノウハウ（Ｋｎｏｗｌｅｄｇｅ）として残すことができ、ソースコード以外に起因する問題の把握が可能になる。
【産業上の利用可能性】
【００２３】
この発明によるルールチェック装置は、デスクトップパソコン，ノートブックパソコン等のパーソナルコンピュータにおいても適用することができる。
【図面の簡単な説明】
【００２４】
【図１】この発明の実施例のシステムの構成を示すブロック図である。
【図２】図１に示すソースコードルールチェック装置１の制御装置１５によるプログラムルールチェック処理を示すフローチャート図である。
【図３】図１に示すソースコードルールチェック装置１の制御装置１５による他のプログラムルールチェック処理を示すフローチャート図である。
【図４】図２に示すプログラムルールチェック処理の続きの処理を示すフローチャート図である。
【図５】図１に示すソースコードルールチェック装置１の制御装置１５による新ルール作成処理を示すフローチャート図である。
【符号の説明】
【００２５】
１：ソースコードルールチェック装置    ２：ＰＣ    ３：ネットワーク    １０：ＲＯＭ    １１：ＲＡＭ    １２：第１データベース    １３：第２データベース    １４：通信装置    １５：制御装置    １６：プログラムＡ    １７：プログラムＢ    １８：コーディングルール    １９：結果ファイルＥ
【図１】
2006260165.tif 000003
【図２】
2006260165.tif 000004
【図３】
2006260165.tif 000005
【図４】
2006260165.tif 000006
【図５】
2006260165.tif 000007