JP2006260165A - プログラムルールチェック装置 - Google Patents

プログラムルールチェック装置 Download PDF

Info

Publication number
JP2006260165A
JP2006260165A JP2005076672A JP2005076672A JP2006260165A JP 2006260165 A JP2006260165 A JP 2006260165A JP 2005076672 A JP2005076672 A JP 2005076672A JP 2005076672 A JP2005076672 A JP 2005076672A JP 2006260165 A JP2006260165 A JP 2006260165A
Authority
JP
Japan
Prior art keywords
program
rule
created
source code
file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005076672A
Other languages
English (en)
Inventor
Hideaki Matsui
英明 松井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2005076672A priority Critical patent/JP2006260165A/ja
Publication of JP2006260165A publication Critical patent/JP2006260165A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【目的】 プログラマがプログラミングの作業工程で現在作成中のプログラムについて予め規定されたルールの中からどのルールを適用すればよいかを容易に知ることができるようにする。
【構成】 ソースコードルールチェック装置の制御装置は、S1で通信装置によってPCからプログラムのソースコードAを受信すると、S2で第1データベースにアクセスし、ソースコードAの内容をチェックし、S3で第1データベースのコーディングルールからソースコードAの内容に該当する項目をリストアップし、S4でそのリストアップした項目のルールからなる結果ファイルAを作成してRAMに保存し、S5で通信装置によってPCへ結果ファイルAを送信し、この処理を終了する。
【選択図】 図2

Description

この発明は、プログラムの作成に適用するコーディングルールを含むルールを容易に参照可能にするプログラムルールチェック装置に関する。
近年、ソフトウェアプログラム(以下「プログラム」という)の内容が大規模化且つ複雑化しており、プログラマがプログラミングの作業工程で記述の間違いを含む誤りを犯すことが増えている。
その誤りを犯す原因としては、プログラマがプログラム言語やコーディングの知識を十分に備えていなかったり、プログラムの再利用の繰り返しでソースコードが複雑になっていることが指摘されている。
プログラミングの作業工程で誤りを防止する方法として、ソースコードのレビューとソースコードのモジュールテストを実施する手法があるが、それらの手法ではプログラミングの工程での誤りを防止することは困難になりつつある。
そこで、静的解析でプログラムを作成する際の各種のルールの項目からなるコーディングルールを規定し、プログラマはそのコーディングルールに従ってプログラミングすることによりプログラミングの作業工程での誤りを防止する方法が考案されている。
従来、作成されたプログラムのコーディングスタイルを自動的にチェックする装置(例えば、特許文献1参照)があった。
特開平6−28165号公報
しかしながら、従来の装置では、チェック結果に基づいてプログラマがどのコーディングルールを適用すればよいかを容易に判断することができないという問題があった。
この発明は上記の点に鑑みてなされたものであり、プログラマがプログラミングの作業工程で現在作成中のプログラムについて予め規定されたルールの中からどのルールを適用すればよいかを容易に知ることができるようにすることを目的とする。
この発明は上記の目的を達成するため、次の各プログラムルールチェック装置を提供する。
(1)プログラムを作成する際の各種のルールを記憶したデータベースと、プログラムのソースコードを受信し、上記データベースから上記受信したソースコードの内容に該当するルールをリストアップし、そのリストアップしたルールからなる結果ファイルを作成する手段とからなるプログラムルールチェック装置。
(2)プログラムを作成する際の各種のルールを記憶したデータベースと、2種類のプログラムのソースコードを受信し、その受信した各ソースコードの差分を取った差分ファイルを作成し、上記データベースから上記作成した差分ファイルの内容に該当するルールをリストアップし、そのリストアップしたルールからなる結果ファイルを作成する手段とからなるプログラムルールチェック装置。
(3)上記(1)のプログラムルールチェック装置において、上記プログラムとは異なるプログラムのソースコードを受信し、その受信したソースコードと上記作成された結果ファイルの差分を取った差分ファイルを作成し、上記データベースから上記作成した差分ファイルの内容に該当するルールをリストアップし、そのリストアップしたルールからなる結果ファイルを作成する手段を設けたプログラムルールチェック装置。
(4)上記(3)のプログラムルールチェック装置において、上記データベースに上記作成した差分ファイルの内容に該当するルールがなかったとき、その該当するルールがなかった結果ファイルを作成し、その結果ファイルを解析して新たなルールを作成し、上記作成した新たなルールを前記データベースに登録する手段を設けたプログラムルールチェック装置。
(5)上記(4)のプログラムルールチェック装置において、上記新たなルールを作成できなかったとき、上記ソースコード又は上記差分ファイルから新たなルールを作成できない箇所を抽出し、その抽出した箇所からなる結果ファイルを作成し、その作成した結果ファイルを保存する手段を設けたプログラムルールチェック装置。
この発明によるプログラムルールチェック装置は、プログラマがプログラミングの作業工程で現在作成中のプログラムについて予め規定されたルールの中からどのルールを適用すればよいかを容易に知ることができる。
以下、この発明を実施するための最良の形態を図面に基づいて具体的に説明する。
〔実施例〕
図1は、この発明の実施例のシステムの構成を示すブロック図である。
このシステムは、この発明に係るプログラムルールチェック装置に相当するソースコードルールチェック装置1と、パーソナルコンピュータ(以下「PC」と略称する)2とがインターネット、ローカルエリアネットワークを含むネットワーク3を介してデータ通信可能に接続されている。
ソースコードルールチェック装置1は、ROM10、RAM11、第1データベース(以下「第1DB」と略称もする)12、第2データベース(以下「第2DB」と略称もする)13、通信装置14、制御装置15からなる。
ROM10は、コンピュータにプログラムのソースコードについて予め第1DB12に記憶されたソースコードルールをチェックする手順を実行させるためのプログラムA16と、コンピュータに結果ファイルに基づいて新たなルールを作成し、その新たなルールが作成できないときには、新たなルールが作成できないソースコードの箇所からなる結果ファイルを作成する手順を実行させるためのプログラムB17を記憶するメモリである。
RAM11は、制御装置15がROM10のプログラムA16、プログラムB17を含むプログラムを実行するときに使用する作業領域と、プログラムのソースコード、差分ファイル、結果ファイルを一時的に記憶するメモリである。
第1DB12は、プログラムA16及びプログラムB17の実行によって生成される結果ファイル、差分ファイル、ソースコード、プログラムを作成する際の各種のルールの項目からなるコーディングルール18を記憶するハードディスク装置(HDD)を含む記憶装置である。すなわち、この発明に係るデータベースに相当する。
第2DB13は、プログラムB17の実行によって新たなルールを作成できなかったソースコードの箇所からなる結果ファイルE19を記憶するハードディスク装置(HDD)を含む記憶装置である。すなわち、この発明に係る新たなルールを作成できなかったソースコードの箇所からなる結果ファイルE19を記憶する手段に相当する。
通信装置14は、PC2との間のネットワーク3を介したデータ通信の制御を司り、PC2からのプログラムのソースコードの受信、PC2への結果ファイルの送信を含む処理を実行する。
制御装置15は、CPUによって実現され、RAM11を使用してROM10の各プログラムを実行することによってこの装置全体の制御を司り、プログラムA16によってプログラムルールチェック処理を実行し、プログラムB17によって新ルール作成処理を実行する。すなわち、この発明に係る各手段の機能を果たす。
一方、PC2は、CPU、ROM及びRAMからなるマイクロコンピュータによって実現される制御装置を内蔵し、ソースコードルールチェック装置1へコーディングルールのチェックを行わせるプログラムのソースコードを送信し、そのチェック結果である結果ファイルを受信し、その結果ファイルの情報を図示を省略した表示装置に表示したり、同じく図示を省略した印刷装置によって印刷したりする処理を行う。
図2は、図1に示すソースコードルールチェック装置1の制御装置15によるプログラムルールチェック処理を示すフローチャート図である。
制御装置15は、ステップ(図中「S」で示す)1で通信装置によってPCからプログラムのソースコードAを受信すると、ステップ2で第1データベースにアクセスし、ソースコードAの内容をチェックし、ステップ3で第1データベースのコーディングルールからソースコードAの内容に該当する項目をリストアップし、ステップ4でそのリストアップした項目のルールからなる結果ファイルAを作成してRAMに保存し(第1DBにも保存するようにしても良い)、ステップ5で通信装置によってPCへ結果ファイルAを送信し、この処理を終了する。
このようにして、第1DBに登録されているコーディングルールをソースコードから検出して得ることができるので、その検出結果を参照することによって品質のよいソースコードを作成することが容易になる。
図3は、図1に示すソースコードルールチェック装置1の制御装置15による他のプログラムルールチェック処理を示すフローチャート図である。
制御装置15は、ステップ(図中「S」で示す)11で通信装置によってPCから修正前のプログラムのソースコードAを受信し、ステップ12で通信装置によってPCから修正後のプログラムのソースコードBを受信すると、ステップ13でソースコードAとソースコードBの差分ファイルBを作成し、ステップ14で第1データベースにアクセスし、差分ファイルBの内容をチェックし、ステップ15で第1データベースのコーディングルールから差分ファイルBの内容に該当する項目をリストアップし、ステップ16でそのリストアップした項目のルールからなる結果ファイルBを作成してRAMに保存し(第1DBにも保存するようにしても良い)、ステップ17で通信装置によってPCへ結果ファイルBを送信し、この処理を終了する。
このようにして、ソースコードの差分ファイルを作成し、第1DBに登録されているコーディングルールをソースコードの差分ファイルから検出するので、その検出結果を参照することによってソースコードの修正点に対する問題点が的確に把握することができ、誤りの原因の把握が容易になる。
図4は、図2に示すプログラムルールチェック処理の続きの処理を示すフローチャート図である。
制御装置15は、ステップ(図中「S」で示す)21で通信装置によってPCから修正後のプログラムのソースコードBを受信し、ステップ22で通信装置によってPCから結果ファイルAを受信すると、ステップ23でソースコードBと結果ファイルAの差分ファイルCを作成し、ステップ24で第1データベースにアクセスし、差分ファイルCの内容をチェックし、ステップ25で第1データベースに差分ファイルCの内容に該当するコーディングルールの項目が有るか否かを判断し、有れば、ステップ26で第1データベースのコーディングルールから差分ファイルCの内容に該当する項目をリストアップし、ステップ27でそのリストアップした項目のルールからなる結果ファイルCを作成してRAMに保存し(第1DBにも保存するようにしても良い)、ステップ28で通信装置によってPCへ結果ファイルCを送信し、この処理を終了する。
一方、ステップ25の判断で第1データベースに差分ファイルCの内容に該当するコーディングルールの項目が無かったとき、ステップ29でその該当するルールがなかった結果ファイルDを作成してRAMに保存し(第1DBにも保存するようにしても良い)、ステップ30で通信装置によってPCへ結果ファイルDを送信し、ステップ31で新ルール作成処理へ結果ファイルDを送り、この処理を終了する。
図5は、図1に示すソースコードルールチェック装置1の制御装置15による新ルール作成処理を示すフローチャート図である。
制御装置15は、ステップ(図中「S」で示す)41でプログラムルールチェック処理から結果ファイルDを受け取ると、ステップ42で結果ファイルDの内容を解析し、ステップ43で新ルールを作成できるか否かを判断し、作成できるなら、ステップ44で結果ファイルDの内容を解析結果に基づいて新ルールDを作成して第1データベースに登録し、この処理を終了する。
一方、ステップ43の判断で新ルールを作成できないとき、ステップ45でプログラムルールチェック処理に差分ファイルC又はソースコードBの保存場所を問い合わせ、ステップ46で差分ファイルC又はソースコードBを参照し、差分ファイルC又はソースコードBから新ルールが作成できないソースコードの箇所を抽出し、ステップ47で差分ファイルC又はソースコードBから抽出した新ルールが作成できない箇所からなる結果ファイルEを作成して第2データベースに保存し、ステップ48で通信装置によってPCへ結果ファイルEを送信し、ステップ49で通信装置によってPCに結果ファイルEに該当する変更を行った理由の入力を促す指示を送信し、ステップ50で通信装置によってPCから結果ファイルEに該当する変更を行った理由を受信すると、ステップ51で第2データベースの結果ファイルEに対応させて結果ファイルEに該当する変更を行った理由を登録すし、この処理を終了する。
このようにして、第1DBに登録されているコーディングルールを結果ファイルとソースコードから検出するので、ソースコードの修正点に対する問題点を的確に把握することができ、原因の把握が容易になる。また、作成された結果ファイルを利用することにより、ユーザの作業を軽減することができる。
さらに、結果ファイルを解析して、新たなルールを作成し、その新たなルールを第1DBに登録するので、第1DBに登録されていコーディングルールの精度を向上させることができ、より品質の高いソースコードを作成することが容易になる。
さらにまた、新たなルールが生成できないソースコードの箇所を抽出し、その抽出した箇所の情報を第2DBに登録するので、第1DBでは救うことができない事例でも、知識、ノウハウ(Knowledge)として残すことができ、ソースコード以外に起因する問題の把握が可能になる。
この発明によるルールチェック装置は、デスクトップパソコン,ノートブックパソコン等のパーソナルコンピュータにおいても適用することができる。
この発明の実施例のシステムの構成を示すブロック図である。 図1に示すソースコードルールチェック装置1の制御装置15によるプログラムルールチェック処理を示すフローチャート図である。 図1に示すソースコードルールチェック装置1の制御装置15による他のプログラムルールチェック処理を示すフローチャート図である。 図2に示すプログラムルールチェック処理の続きの処理を示すフローチャート図である。 図1に示すソースコードルールチェック装置1の制御装置15による新ルール作成処理を示すフローチャート図である。
符号の説明
1:ソースコードルールチェック装置 2:PC 3:ネットワーク 10:ROM 11:RAM 12:第1データベース 13:第2データベース 14:通信装置 15:制御装置 16:プログラムA 17:プログラムB 18:コーディングルール 19:結果ファイルE

Claims (5)

  1. プログラムを作成する際の各種のルールを記憶したデータベースと、プログラムのソースコードを受信し、前記データベースから前記受信したソースコードの内容に該当するルールをリストアップし、該リストアップしたルールからなる結果ファイルを作成する手段とからなることを特徴とするプログラムルールチェック装置。
  2. プログラムを作成する際の各種のルールを記憶したデータベースと、2種類のプログラムのソースコードを受信し、該受信した各ソースコードの差分を取った差分ファイルを作成し、前記データベースから前記作成した差分ファイルの内容に該当するルールをリストアップし、該リストアップしたルールからなる結果ファイルを作成する手段とからなることを特徴とするプログラムルールチェック装置。
  3. 請求項1記載のプログラムルールチェック装置において、前記プログラムとは異なるプログラムのソースコードを受信し、該受信したソースコードと前記作成された結果ファイルの差分を取った差分ファイルを作成し、前記データベースから前記作成した差分ファイルの内容に該当するルールをリストアップし、該リストアップしたルールからなる結果ファイルを作成する手段を設けたことを特徴とするプログラムルールチェック装置。
  4. 請求項3記載のプログラムルールチェック装置において、前記データベースに前記作成した差分ファイルの内容に該当するルールがなかったとき、その該当するルールがなかった結果ファイルを作成し、該結果ファイルを解析して新たなルールを作成し、該作成した新たなルールを前記データベースに登録する手段を設けたことを特徴とするプログラムルールチェック装置。
  5. 請求項4記載のプログラムルールチェック装置において、前記新たなルールを作成できなかったとき、前記ソースコード又は前記差分ファイルから新たなルールを作成できない箇所を抽出し、該抽出した箇所からなる結果ファイルを作成し、該作成した結果ファイルを保存する手段を設けたことを特徴とするプログラムルールチェック装置。
JP2005076672A 2005-03-17 2005-03-17 プログラムルールチェック装置 Pending JP2006260165A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005076672A JP2006260165A (ja) 2005-03-17 2005-03-17 プログラムルールチェック装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005076672A JP2006260165A (ja) 2005-03-17 2005-03-17 プログラムルールチェック装置

Publications (1)

Publication Number Publication Date
JP2006260165A true JP2006260165A (ja) 2006-09-28

Family

ID=37099349

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005076672A Pending JP2006260165A (ja) 2005-03-17 2005-03-17 プログラムルールチェック装置

Country Status (1)

Country Link
JP (1) JP2006260165A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009098872A (ja) * 2007-10-16 2009-05-07 Toshiba Corp ソースプログラム解析装置、ソースプログラム解析方法及びコンピュータプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009098872A (ja) * 2007-10-16 2009-05-07 Toshiba Corp ソースプログラム解析装置、ソースプログラム解析方法及びコンピュータプログラム

Similar Documents

Publication Publication Date Title
US7650590B2 (en) Flexible code generation
EP2368189B1 (en) Debugging pipeline
US8302088B2 (en) Analysis of effects of a software maintenance patch on configuration items of a CMDB
US8285662B2 (en) Framework for delta analysis during automated builds
US8539026B2 (en) Source identification for multipart content validation
US20100077257A1 (en) Methods for disaster recoverability testing and validation
US9058190B2 (en) Comparing system engram with product engram to determine compatibility with system
US20140101756A1 (en) Remediation of security vulnerabilities in computer software
WO2022010563A1 (en) Software development autocreated suggestion provenance
JP5800657B2 (ja) ソフトウェア再利用支援装置、ソフトウェア再利用支援方法、及び、プログラム
US10019344B1 (en) Computer implemented system and method and computer program product for a test framework for orchestration workflows
WO2019200808A1 (zh) 测试案例推荐方法、电子装置及可读存储介质
US20050183033A1 (en) Apparatus and methods for displaying dialog box text messages including languages having different reading orders
US8245182B2 (en) Class selectable design sharing
JP4915362B2 (ja) 静的検証ツールのアノテーション自動挿入方法
US10599424B2 (en) Committed program-code management
KR20190020363A (ko) 동적 분석과 정적 분석을 연계한 프로그램을 분석하기 위한 방법 및 장치
JP4929121B2 (ja) ソースプログラム解析装置、ソースプログラム解析方法及びコンピュータプログラム
JP5188421B2 (ja) ソースコード解析方法およびソースコード解析支援システム
JP2006260165A (ja) プログラムルールチェック装置
CN116009852A (zh) 代码构建方法、装置、计算机设备及存储介质
CN109740131B (zh) 一种表单数据的处理方法及装置、终端设备及存储介质
US20050203911A1 (en) Management of inbound conflicts when merging data of distributed systems
US20130191813A1 (en) Metamodeling Contextual Navigation of Computer Software Applications
CN111930616B (zh) 数据处理方法、装置、电子设备和可读存储介质