JP2005056183A - ルール検査システム、ルール検査装置、ルール検査方法、及びルール検査プログラム - Google Patents
ルール検査システム、ルール検査装置、ルール検査方法、及びルール検査プログラム Download PDFInfo
- Publication number
- JP2005056183A JP2005056183A JP2003286850A JP2003286850A JP2005056183A JP 2005056183 A JP2005056183 A JP 2005056183A JP 2003286850 A JP2003286850 A JP 2003286850A JP 2003286850 A JP2003286850 A JP 2003286850A JP 2005056183 A JP2005056183 A JP 2005056183A
- Authority
- JP
- Japan
- Prior art keywords
- rule
- unit
- analysis
- application
- conditional expression
- 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
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
【解決手段】ルール定義解析部11は、利用者により定義されるルール定義データ400を解析し、ルール定義データ400中の対象指定部と論理式から構成される条件式を一つ取り出して字句解析部12に送る。字句解析部12は、条件式をトークンに分割する。構文解析部13は、切り出したトークンの抽象構文木を作成する。解釈部14は、作成された抽象構文木と、検査対象のアプリケーションとを読み込み、プログラム解析部15の機能を用いて、アプリケーションに対し条件式を評価し、その評価結果をルール定義解析部11に返す。ルール定義解析部11は、返り値が偽の場合はルール違反が発生したことを出力装置31上に表示し、返り値が真の場合、未評価の条件式がなくなるまで同様の処理を繰り返す。
【選択図】 図1
Description
(第一の実施形態)
図1は、本実施形態のルール検査システムの全体構成を示すブロック図である。
「c1=implements("java.io.Serializable"),c2=extends("java.lang.Thread")」
といった記述の場合、「c1」という変数はjava.io.Serializableを実装したクラスの集合と関連付けられ、「c2」という変数はjava.lang.Threadを継承したクラスの集合と関連付けられる。
「c=implements(java.io.Serializable) ∪ extends(java.lang.Thread)」
といった記述の場合、「c」という変数は、implements(java.io.Serializable)と、extends(java.lang.Thread)との双方の関数から得られる集合の和集合が代入される。この場合、「c」という変数は、与えられたアプリケーションに含まれるクラスのうち、java.io.Serializableを実装したクラスの集合と、java.lang.Threadを継承したクラスの集合とを足し合わせた集合と関連付けられる。
「∀ c ∈ implements("java.io.Serializable")」と
「∃ c ∈ implements("java.io.Serializable")」の2つの記述例を用いて説明をする。
(第二の実施形態)
次に、本発明の第二の実施形態について詳細に説明する。
2、2b 記憶装置
11 ルール定義解釈部
12 字句解析部
13 構文解析部
14、14b 解釈部
15 プログラム解析部
16 プログラム変換部
21 ルール定義情報記憶部
22 条件解析情報記憶部
23、23b アプリケーション情報記憶部
24 変換プログラム記憶部
31 出力装置
32 永続記憶装置
81 ルール定義入力部
82 アプリケーション入力部
90 記録媒体
141 パターン解析部
142 解析対象特定部
143、143b 論理式解釈部
151 クラス構造解析部
152 クラス定義解析部
153 制御フロー解析部
154 データフロー解析部
400 ルール定義データ
410 条件式
Claims (12)
- 所定のプログラミング言語で記述された検査対象のアプリケーションにおけるプログラムコードの記述が所定の性質を満たしているか否かを予め設定されたルールに従い検査するルール検査システムにおいて、
ルール検査装置と、
該ルール検査装置に接続される記憶装置とを備え、
前記ルール検査装置は、
前記ルールを定義するデータとして、前記プログラムコードの解析対象を指定する対象指定部と、論理演算子で接続される述語からなる論理式とから構成される条件式を含むルール定義データを入力し、該ルール定義データ内に含まれる条件式を字句解析してトークンに分解する字句解析部と、
前記トークンに分解された前記条件式の構文を解析して抽象構文木を作成する構文解析部と、
前記抽象構文木に基づき、前記対象指定部を解析し、論理式を評価する解釈部と、
前記条件式の論理式中に記述される述語に応じて、前記検査対象のアプリケーションを解析するプログラム解析部とを備え、
前記記憶装置は、
前記検査対象のアプリケーションを記憶するアプリケーション情報記憶部と、
前記条件式の解析結果を格納する条件解析情報記憶部とを備えることを特徴とするルール検査システム。 - 前記ルール検査装置は、
複数の条件式を含むルール定義データを解析し、該ルール定義データを前記字句解析部に送信し、前記解釈部から該ルール定義データ内の各条件式における論理式の評価結果を取得するルール定義解析部をさらに備え、
前記記憶装置は、
前記ルール定義データの解析結果を格納するルール定義情報記憶部をさらに備えることを特徴とする請求項1に記載のルール検査システム。 - 前記解釈部は、
前記条件式に含まれる前記対象指定部で指定された解析対象を前記アプリケーション情報記憶部の情報を用いて計算する解析対象特定部と、
前記条件式に含まれる論理式を前記プログラム解析部の機能を用いて評価する論理式解釈部とを備えることを特徴とする請求項1又は2に記載のルール検査システム。 - 前記解釈部は、
前記条件式の対象指定部に含まれるパターンを展開するパターン解析部と、
前記条件式に含まれる対象指定部で指定された解析対象を前記アプリケーション情報記憶部の情報を用いて計算する解析対象特定部と、
前記条件式に含まれる論理式を前記プログラム解析部の機能を用いて評価する論理式解釈部とを備えることを特徴とする請求項1から3のいずれか1項に記載のルール検査システム。 - 前記プログラム解析部は、
前記解釈部からの処理要求を受け付け、前記アプリケーション情報記憶部の情報を利用して、前記アプリケーションを構成するクラス間の構造に関する解析を行なうクラス構造解析部と、
前記アプリケーションを構成するクラスのうち少なくとも一つのクラス中に定義された情報を解析するクラス定義解析部と、
前記アプリケーションの制御の流れを解析する制御フロー解析部と、
前記アプリケーションの中に現れる変数に格納されるデータの流れを解析するデータフロー解析部とを備えることを特徴とする請求項1から4のいずれか1項に記載のルール検査システム。 - 前記ルール検査装置は、
ルール検査コードを挿入した新しいアプリケーションを生成するプログラム変換部をさらに備え
前記記憶装置は、
前記新しく生成されたアプリケーションを記憶する変換プログラム記憶部をさらに備えることを特徴とする請求項1から5のいずれか1項に記載のルール検査システム。 - 所定のプログラミング言語で記述された検査対象のアプリケーションにおけるプログラムコードの記述が所定の性質を満たしているか否かを予め設定されたルールに従い検査するルール検査装置において、
前記ルールを定義するデータとして、前記プログラムコードの解析対象を指定する対象指定部と、論理演算子で接続される述語からなる論理式とから構成される条件式を含むルール定義データを入力し、該ルール定義データ内に含まれる条件式を字句解析してトークンに分解する字句解析部と、
前記トークンに分解された前記条件式の構文を解析して抽象構文木を作成する構文解析部と、
前記抽象構文木に基づき、前記対象指定部を解析し、論理式を評価する解釈部と、
前記条件式の論理式中に記述される述語に応じて、前記検査対象のアプリケーションを解析するプログラム解析部とを備えることを特徴とするルール検査装置。 - 複数の条件式を含むルール定義データを解析し、該ルール定義データを前記字句解析部に送信し、前記解釈部から該ルール定義データ内の各条件式における論理式の評価結果を取得するルール定義解析部をさらに備えることを特徴とする請求項7に記載のルール検査装置。
- 所定のプログラミング言語で記述された検査対象のアプリケーションにおけるプログラムコードの記述が所定の性質を満たしているか否かを予め設定されたルールに従い検査するルール検査方法において、
前記ルールを定義するデータとして、前記プログラムコードの解析対象を指定する対象指定部と、論理演算子で接続される述語からなる論理式とから構成される条件式を含むルール定義データを入力し、該ルール定義データ内に含まれる条件式を字句解析するステップと、
前記トークンに分解された前記条件式の構文を解析して抽象構文木を作成するステップと、
前記抽象構文木に基づき、前記対象指定部を解析し、前記条件式の論理式中に記述される述語に応じて、前記検査対象のアプリケーションを解析して該論理式を評価するステップとを備えることを特徴とするルール検査方法。 - 複数の条件式を含むルール定義データを解析し、該ルール定義データ内の各条件式における前記論理式の評価結果を取得するステップをさらに備えることを特徴とする請求項9に記載のルール検査方法。
- 所定のプログラミング言語で記述された検査対象のアプリケーションにおけるプログラムコードの記述が所定の性質を満たしているか否かを予め設定されたルールに従い検査するためのルール検査プログラムにおいて、
コンピュータに、
前記ルールを定義するデータとして、前記プログラムコードの解析対象を指定する対象指定部と、論理演算子で接続される述語からなる論理式とから構成される条件式を含むルール定義データを入力し、該ルール定義データ内に含まれる条件式を字句解析するステップと、
前記トークンに分解された前記条件式の構文を解析して抽象構文木を作成するステップと、
前記抽象構文木に基づき、前記対象指定部を解析し、前記条件式の論理式中に記述される述語に応じて、前記検査対象のアプリケーションを解析して該論理式を評価するステップとを実行させることを特徴とするルール検査プログラム。 - 前記コンピュータに、
複数の条件式を含むルール定義データを解析し、該ルール定義データ内の各条件式における前記論理式の評価結果を取得するステップをさらに実行させることを特徴とする請求項11に記載のルール検査プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003286850A JP2005056183A (ja) | 2003-08-05 | 2003-08-05 | ルール検査システム、ルール検査装置、ルール検査方法、及びルール検査プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003286850A JP2005056183A (ja) | 2003-08-05 | 2003-08-05 | ルール検査システム、ルール検査装置、ルール検査方法、及びルール検査プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005056183A true JP2005056183A (ja) | 2005-03-03 |
Family
ID=34366031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003286850A Pending JP2005056183A (ja) | 2003-08-05 | 2003-08-05 | ルール検査システム、ルール検査装置、ルール検査方法、及びルール検査プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005056183A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009524875A (ja) * | 2006-01-26 | 2009-07-02 | マイクロソフト コーポレーション | バイナリコード解析 |
JP2010140407A (ja) * | 2008-12-15 | 2010-06-24 | Nomura Research Institute Ltd | ソースコード検査装置 |
CN102804147A (zh) * | 2010-03-29 | 2012-11-28 | 株式会社软4软 | 执行abap源代码的代码检查的代码检查执行系统 |
WO2014115189A1 (en) | 2013-01-28 | 2014-07-31 | Nec Corporation | Method and system for transforming specification scripts to program code |
US9164980B2 (en) | 2011-06-03 | 2015-10-20 | Fujitsu Limited | Name identification rule generating apparatus and name identification rule generating method |
JP2019028723A (ja) * | 2017-07-31 | 2019-02-21 | 日本電信電話株式会社 | 設計確認装置及び設計確認方法 |
-
2003
- 2003-08-05 JP JP2003286850A patent/JP2005056183A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009524875A (ja) * | 2006-01-26 | 2009-07-02 | マイクロソフト コーポレーション | バイナリコード解析 |
JP2010140407A (ja) * | 2008-12-15 | 2010-06-24 | Nomura Research Institute Ltd | ソースコード検査装置 |
CN102804147A (zh) * | 2010-03-29 | 2012-11-28 | 株式会社软4软 | 执行abap源代码的代码检查的代码检查执行系统 |
JP2013522790A (ja) * | 2010-03-29 | 2013-06-13 | ソフトフォーソフト カンパニーリミテッド | アバップソースコードのコード検査遂行システム |
US9164980B2 (en) | 2011-06-03 | 2015-10-20 | Fujitsu Limited | Name identification rule generating apparatus and name identification rule generating method |
WO2014115189A1 (en) | 2013-01-28 | 2014-07-31 | Nec Corporation | Method and system for transforming specification scripts to program code |
JP2019028723A (ja) * | 2017-07-31 | 2019-02-21 | 日本電信電話株式会社 | 設計確認装置及び設計確認方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Pawlak et al. | Spoon: A library for implementing analyses and transformations of java source code | |
JP4619698B2 (ja) | コードセグメント作成方法及びそのシステム | |
US8543379B1 (en) | System and method for parsing a text buffer using a graphical user interface | |
Patra et al. | Learning to fuzz: Application-independent fuzz testing with probabilistic, generative models of input data | |
US8122440B1 (en) | Method and apparatus for enumerating external program code dependencies | |
Zhai et al. | C2S: translating natural language comments to formal program specifications | |
KR100692172B1 (ko) | 종합 문자열 분석기 및 그 분석 방법 | |
US20070113221A1 (en) | XML compiler that generates an application specific XML parser at runtime and consumes multiple schemas | |
JP2007052625A (ja) | ソースコード脆弱性検査装置 | |
CN106371997A (zh) | 一种代码检查方法及装置 | |
Morgan et al. | A static aspect language for checking design rules | |
Faria et al. | A toolset for conformance testing against UML sequence diagrams based on event-driven colored Petri nets | |
JP2008299723A (ja) | プログラム検証方法、プログラム検証装置 | |
Bossung et al. | Automated data mapping specification via schema heuristics and user interaction | |
Samuel et al. | A novel test case design technique using dynamic slicing of UML sequence diagrams | |
Agarwal et al. | Copilot Evaluation Harness: Evaluating LLM-Guided Software Programming | |
Grent et al. | Automatically identifying parameter constraints in complex web APIs: A case study at adyen | |
US8359579B2 (en) | Monitoring dynamic aspect oriented applications at execution time | |
JP2005056183A (ja) | ルール検査システム、ルール検査装置、ルール検査方法、及びルール検査プログラム | |
EP2972880B1 (en) | Kernel functionality checker | |
US20060168566A1 (en) | Pattern matching documentation | |
JP2013030017A (ja) | テストプログラム生成方法、テストプログラム生成装置、及びテストプログラム生成プログラム | |
EP2535813B1 (en) | Method and device for generating an alert during an analysis of performance of a computer application | |
Yusuf et al. | An automatic approach to measure and visualize coupling in object-oriented programs | |
Zhang et al. | A declarative approach for Java code instrumentation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060713 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20080422 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081118 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090624 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090818 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090908 |