JP5791698B2 - アバップソースコードのコード検査遂行システム - Google Patents

アバップソースコードのコード検査遂行システム Download PDF

Info

Publication number
JP5791698B2
JP5791698B2 JP2013501169A JP2013501169A JP5791698B2 JP 5791698 B2 JP5791698 B2 JP 5791698B2 JP 2013501169 A JP2013501169 A JP 2013501169A JP 2013501169 A JP2013501169 A JP 2013501169A JP 5791698 B2 JP5791698 B2 JP 5791698B2
Authority
JP
Japan
Prior art keywords
code
source code
inspection
rule
defect
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.)
Expired - Fee Related
Application number
JP2013501169A
Other languages
English (en)
Other versions
JP2013522790A (ja
Inventor
ギ イ、フォン
ギ イ、フォン
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.)
SOFT4SOFT CO Ltd
Original Assignee
SOFT4SOFT 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 SOFT4SOFT CO Ltd filed Critical SOFT4SOFT CO Ltd
Publication of JP2013522790A publication Critical patent/JP2013522790A/ja
Application granted granted Critical
Publication of JP5791698B2 publication Critical patent/JP5791698B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding

Description

本発明は、アバップソースコードのコード検査を遂行するコード検査遂行システムに関するものである。詳細には、ドイツSAP会社で作ったABAP/4言語はクライアントサーバ環境であるSAP R/3基盤で企業の全社的資源管理パッケージシステム(ERP、Enterprise Resource Planning)などを開発するのに使う4世代言語だが、Java(登録商標)などの4世代言語と違うようにアバッププログラミングに対する整形化された大小文字区別(Case-sensitive)とコーディングフォーマット(Format)の制限がなくて、アバップ言語及びSAP R/3に対するアバップ開発者の誤解、誤用そして間違いなどにより発生するシステム故障及び止まり、データ損失及び変形、過大な性能低下、機能の違った行動及び結果、複雑なコード構造及び綴字間違いなどのコーディング欠陷を検査してアバップアプリケーションの維持保守性、性能性、正確性、安全性及び保安性などを信頼するようにするアバップ(ABAP)ソースコードのコード検査を遂行するコード検査遂行システムに関するものである。
アバップソフトウェアに含まれている多様なコード欠陷を検査することができる方法には、ソースコードだけで静的分析して実際実行の時発生することができるコード欠陷を前もって探知するコード検査と、ソースコードを行ってその結果値を基盤でコード欠陷を捜すテスティング技法がある。
コード検査技法は、テスティング以前にコード欠陷をとり除くことによって、開発期間短縮、テスティングの費用節減及び期間の短縮だけでなく、一貫性があるコーディングフォーマット基盤アプリケーション開発で今後の維持補修費用を節減することができるから特に效率的である。
従来のアバップコード検査は、コード開発の後(コンパイル後)、コード欠陷を手作業でコードを検討する方法と、プログラムを行ってリアルタイムで保安弱みを捜してくれるテスティング技法であるコードプロファイラー(Code Profiler)があるが、コード開発段階で(コンパイル以前)コードを行わなく、アバップコードそのものだけでアバップアプリケーションの維持保守性、性能性、正確性、安全性及び保安性などに違反したコードを探知することはできない。
そこで、本発明は、前記のような従来の問題に鑑みなされたものであり、アバップソースコードをあらかじめ定義されたアバップ文法(BNF)によって、語彙及び構文分析して抽象構文木のツリー資料構造を構築し、抽象構文木で意味分析してシンボルテーブルのテーブル資料構造を構築するアバップソースコードのコード検査を遂行するコード検査遂行システムの提供を課題とする。
本発明の他の目的は、アバップ コード検査道具のソースコード欠陷検査は多様なコーディング規則に係わるソースコードの欠陷を前記で構築されたテーブル及びツリー資料構造基盤によって検査して違反されたコード欠陷を修正するようにコード欠陷報告書を提供するアバップソースコードのコード検査を遂行するコード検査遂行システムの提供にある。
本発明が解決しようとする課題を果たすために、本発明の一実施例によるアバップソースコードのコード検査を遂行するコード検査遂行システムは、
コード検査対象であるアバップソースコードを語彙、構文及び意味分析してそれぞれ抽象構文木とシンボルテーブルの資料構造に保存するアバップソースコード文法分析部と、
アバップ規則管理モジュールから選択されたコーディング規則に係わるソースコード及び文法構造を前記資料構造基盤によってプログラム経路分析モジュールでコード欠陷を検査して違反されたコード欠陷を修正するようにコード欠陷報告書を生成するアバップソースコード欠陥検査部と、を含んで構成され本発明の課題を解決する。
以上の構成及び作用を持つ本発明によるアバップソースコードのコード検査を遂行するコード検査遂行システムは、アバップソフトウェアに含まれている多様なコード欠陷をソースコードだけで静的分析して実際実行の時発生することができるコード欠陷を前もって探知することができる效果を提供するようになる。
また、アバップ言語及びSAP R/3に対するアバップ開発者の誤解、誤用そして間違いなどで発生するシステム故障及び止まり、データ損失及び変形、過大な性能低下、機能の違った行動及び結果、複雑なコード構造及び綴字間違いなどのコーディング欠陷をテスティング以前にとり除くことによって、開発期間短縮、テスティングの費用節減及び期間の短縮だけでなく、一貫性があるコーディングフォーマット基盤アプリケーション開発で今後の維持補修費用を節減することができるより良い效果を得ることができる。
本発明の一実施例によるアバップソースコードのコード検査を遂行するコード検査遂行システムの全体ブロック図 本発明の一実施例によるアバップソースコードのコード検査を遂行するコード検査遂行システムの遂行方法を現わした流れ図 本発明の一実施例によるアバップソースコードのコード検査を遂行するコード検査遂行システムの検査対象であるアバップソースコードファイルを選択する画面の例示説明図 本発明の一実施例によるアバップソースコードのコード検査を遂行するコード検査遂行システムのコード検査対象アバップソースコードの例示説明図 本発明の一実施例によるアバップソースコードのコード検査を遂行するコード検査遂行システムの語彙分析モジュールの例示説明図 本発明の一実施例によるアバップソースコードのコード検査を遂行するコード検査遂行システムの構文分析モジュールの例示説明図 本発明の一実施例によるアバップソースコードのコード検査を遂行するコード検査遂行システムの抽象構文木の資料構造の例示説明図 本発明の一実施例によるアバップソースコードのコード検査を遂行するコード検査遂行システムの抽象構文木の例示説明図 本発明の一実施例によるアバップソースコードのコード検査を遂行するコード検査遂行システムのシンボルテーブル資料構造のクラスダイヤグラム 本発明の一実施例によるアバップソースコードのコード検査を遂行するコード検査遂行システムの構文及び意味分析を行うディスプレーのスクリーンショット 本発明の一実施例によるアバップソースコードのコード検査を遂行するコード検査遂行システムのコーディング規則を選択する画面の例示説明図 本発明の一実施例によるアバップソースコードのコード検査を遂行するコード検査遂行システムの制御流れ経路パターンのコード検査を行った後、コード欠陷報告書画面の例示説明図 本発明の一実施例によるアバップソースコードのコード検査を遂行するコード検査遂行システムの制御及び資料流れ経路パターンのコード検査を行った後、コード欠陷報告書画面を現わした例示説明図 本発明の一実施例によるアバップソースコードのコード検査を遂行するコード検査遂行システムの制御流れ及び呼び出し経路パターンのコード検査を行った後、コード欠陷報告書画面を現わした例示説明図
前記課題を果たすための本発明のアバップソースコードのコード検査を遂行するコード検査遂行システムは、
コード検査対象であるアバップソースコードを語彙、構文及び意味分析してそれぞれ抽象構文木とシンボルテーブルの資料構造に保存するアバップソースコード文法分析部と、
アバップ規則管理モジュールから選択されたコーディング規則に係わるソースコード及び文法構造を前記資料構造基盤によってプログラム経路分析モジュールでコード欠陷を検査して違反されたコード欠陷を修正するようにコード欠陷報告書を生成するアバップソースコード欠陥検査部と、を含んで構成されることを特徴とする。
この時、前記アバップソースコード文法分析部は、
検査対象であるアバップソースコードファイルをファイル単位で読んであらかじめ定義されたアバップ文法(BNF)によって、アバップソースコードを一連の文字列を意味するトークン単位(キーワード、識別子、シンボル識別子、定数、演算子)で分離する語彙分析モジュールと、
各ファイル単位で分離したトークンの構文(文法)があらかじめ定義されたアバップ文法に違反されるか否かを検査して文法間違いがあれば、関連ファイルの文法間違いメッセージを、文法間違いがなければ、文章の構文を分析して構文間の制御流れ関係の意味を付与して各ファイル単位の構文構造を抽出する構文分析モジュールと、
前記構文分析モジュールから抽出された情報を各ファイル単位でツリー資料構造に保存する抽象構文木貯蔵処理モジュールと、
前記抽象構文木貯蔵処理モジュールで各ファイルを構成するシンボル類型(クラス、メソッド、変数、型、関数、イベント、ダイアログ、処理ブロック)らとその間の連結関係情報及び欠陥検査に必要な各シンボル類型の欠陷パターン構造を抽出する意味分析モジュールと、
前記意味分析モジュールから抽出された情報を各ファイルの構成要素であるシンボルのテーブル資料構造に保存するシムボルテーブル貯蔵処理モジュールと、を含んで構成されることを特徴とする。
この時、前記アバップソースコード欠陥検査部は、
欠陥深刻度及びプログラミング特性によって多様なコーディング規則カテゴリー(アバップ及びSQLコーディングスタイル、コーディング標準、アキテクチャ標準、SQL標準、ラン-タイムエラー、保安弱み)らと各規則のシンボル類型、欠陷パターン構造類型、そして欠陷条件類型をアバップ規則管理モジュールの処理によって、保存及び管理されるアバップ規則データベースと、
前記アバップ規則データベースからコーディング規則を選択し、選択された規則と係わるシンボルと欠陷パターン構造に対応されるシンボルテーブルのシンボル値を各ファイル別に検索し、検索された各シンボル値別に対応されるすべての文法構造及びソースコードを抽象構文木から抽出してプログラム経路分析モジュールに伝達するアバップ規則管理モジュールと、
前記抽出された各シンボル値打ちの文法構造及びソースコードを選択された規則のプログラム経路パターン(制御流れ、制御及び資料流れ、または制御流れ及び呼び出し)、欠陷パターン構造と欠陥条件によって欠陥検査するプログラム経路分析モジュールと、
前記選択されたコード規則に違反された欠陷があれば、コード欠陷報告書を生成するコード欠陥報告書生成モジュールと、を含んで構成されることを特徴とする。
この時、前記アバップソースコード文法分析部は、
構文分析されたトークンを各ファイル単位で受けて上向き式構文分析技法(Bottom-up Syntax Analysis)であるLR(1)パーサアルゴリズムでトークンの文法的構造で分析して各ファイル単位で構文構造間の制御流れ関係を抽出して抽象構文木の資料構造に保存することを特徴とする。
この時、前記アバップソースコード文法分析部は、
抽象構文木の資料構造で各ファイルを構成するシンボル類型とその間のシンボル連結関係、タイプ(Type)情報、名連結関係を抽出し、欠陥検査に必要な各シンボル類型の欠陷パターン構造情報をシンボルテーブルの資料構造に保存することを特徴とする。
この時、前記アバップソースコード文法分析部は、
アバップソースコードを分析する時、アバップファイル(*.abap)がある上位ディレクトリを選択すれば、下位ディレクトリを含んだすべてのアバップファイルを検査対象で遂行するか、または一つのファイルを選択しても検査対象で遂行することを特徴とする。
この時、前記プログラム経路分析モジュールは、
アバップ規則データベースで定義されたコーディング規則のプログラム経路パターン、欠陷パターン構造と欠陥条件の下にアバップ規則管理ブによって抽出された各シンボル値打ちの文法構造及びソースコードで係わるコーディング規則のコード欠陷を識別する機能を遂行することを特徴とする。
この時、前記アバップ規則管理モジュールは、
アバップ規則データベースで各カテゴリー別コーディング規則を選択そして詳細オプションを設定し、選択された規則で係わるシンボルと欠陷パターン構造に対応されるシンボルテーブルのシンボル値を各ファイル別に検索し、検索された各シンボル値打ち別に対応されるすべての文法構造及びソースコードを抽象構文木から抽出してプログラム経路分析モジュールに伝達する機能を遂行することを特徴とする。
この時、前記アバップ
規則データベースは、
多様なカテゴリー(アバップ及びSQLコーディングスタイル、コーディング標準、アキテクチャ標準、SQL標準、ラン-タイムエラー、保安弱み)のコーディング規則を保存するデータベースとして、各規則別にカテゴリー類型、シンボル類型、プログラム経路パターン、欠陷パターン構造類型、欠陥条件、
規則名、規則ID、エラータイプ、エラーメッセージの資料構造で成り立っているし、アバップ規則管理モジュールによって規則の追加または変更を管理することを特徴とする。
以下、本発明によるアバップソースコードのコード検査を遂行するコード検査遂行システムを、実施例を挙げて詳しく説明する。
図1は、本発明の一実施例によるアバップソースコードのコード検査を遂行するコード検査遂行システムの全体ブロック図である。
図1に図示したように、本発明であるアバップソースコードのコード検査を遂行するコード検査遂行システムは、
コード検査対象であるアバップソースコードを語彙、構文及び意味分析してそれぞれ抽象構文木とシンボルテーブルの資料構造に保存するアバップソースコード文法分析部100と;
アバップ規則管理モジュールから選択されたコーディング規則に係わるソースコード及び文法構造を前記資料構造基盤によってプログラム経路分析モジュールでコード欠陷を検査して違反されたコード欠陷を修正するようにコード欠陷報告書を生成するアバップソースコード欠陥検査部200と;を含んで構成される。
この時、前記アバップソースコード文法分析部100は、
検査対象であるアバップソースコードファイルをファイル単位で読んであらかじめ定義されたアバップ文法(BNF)によって、アバップソースコードを一連の文字列を意味するトークン単位(キーワード、識別子、シンボル識別子、定数、演算子)で分離する語彙分析モジュール110と、
各ファイル単位で分離したトークンの構文(文法)があらかじめ定義されたアバップ文法に違反されるか否かを検査して文法間違いがあれば、関連ファイルの文法間違いメッセージを、
文法間違いがなければ、文章の構文を分析して構文間の制御流れ関係の意味を付与して、各ファイル単位の構文構造を抽出する構文分析モジュール120と、
前記構文分析モジュールから抽出された情報を各ファイル単位でツリー資料構造に保存する抽象構文木貯蔵処理モジュール130と、
前記抽象構文木貯蔵処理モジュールで各ファイルを構成するシンボル類型(クラス、メソッド、変数、型、関数、イベント、ダイアログ、処理ブロック)らとその間の連結関係情報及び欠陥検査に必要な各シンボル類型の欠陷パターン構造を抽出する意味分析モジュール140と、
前記意味分析モジュールから抽出された情報を各ファイルの構成要素であるシンボルのテーブル資料構造に保存するシムボルテーブル貯蔵処理モジュール150とを含んで構成されることを特徴とする。
この時、前記アバップソースコード欠陥検査部200は、
欠陥深刻度及びプログラミング特性によって、多様なコーディング規則カテゴリー(アバップ及びSQLコーディングスタイル、コーディング標準、アキテクチャ標準、SQL標準、 ラン-タイムエラー、保安弱み)らと各規則のシンボル類型、欠陷パターン構造類型、そして欠陷条件類型をアバップ規則管理モジュールの処理によって、保存及び管理されるアバップ規則データベース210と、
前記アバップ規則データベースからコーディング規則を選択し、選択された規則と係わるシンボルと欠陷パターン構造に対応されるシンボルテーブルのシンボル値を各ファイル別に検索し、検索された各シンボル値別に対応されるすべての文法構造及びソースコードを抽象構文木から抽出してプログラム経路分析モジュールに伝達するアバップ規則管理モジュール220と、
前記抽出された各シンボル値打ちの文法構造及びソースコードを選択された規則のプログラム経路パターン(制御流れ、制御及び資料流れ、または制御流れ及び呼び出し)、欠陷パターン構造と欠陥条件によって欠陥検査するプログラム経路分析モジュール230と、
前記選択されたコード規則に違反された欠陷があれば、コード欠陷報告書を生成するコード欠陥報告書生成モジュール240とを含んで構成されることを特徴とする。
本発明の検査対象であるアバップソースコードを語彙、構文及び意味分析して、それぞれ抽象構文木とシンボルテーブルの資料構造に保存するアバップソースコード文法分析部と、アバップ規則管理モジュールから選択されたコーディング規則に係わるソースコード及び文法構造を前記資料構造基盤によってプログラム経路分析モジュールでコード欠陷を検査して違反されたコード欠陷を修正するようにコード欠陷報告書を生成するアバップソースコード欠陥検査部とで大きく仕分けされられる。
前記アバップソースコード文法分析部の機能は次のようである。
図3のように、使用者によって図4のようなアバップファイル(*。abap)がある上位ディレクトリを選択すれば、下位ディレクトリを含んだすべてのアバップファイルを検査対象とし、または図4の例題アバップファイルのように、一つのファイルを選択して検査対象として、選択されたファイルを読んでインデックスを設定し、検査対象であるすべてのアバップソースコードファイルのインデックス手順で語彙分析モジュール110に伝達する。
参照的に、図4の左側の行番号は説明の便宜上、記録したものである。
この時、前記語彙分析モジュールは、図4の例題ソースのような検査対象であるアバップファイルをファイル単位で読んで、あらかじめ定義されたアバップ文法のアバップBackus標準形式(Backus Normal Form、BNF)によって、アバップソースコードを一連の文字列を意味するトークン単位で分離して構文分析モジュール120に伝達する。
前記機能を遂行するために、語彙分析モジュールのトークンは、文法的にこれ以上分けることができない基本的な言語要素を示し、キーワード(keyword)、識別子(identifier)、シンボル識別子(symbol-identifier)、定数(constant)、演算子(operator)の記号で仕分けされて各トークンに付与する。
図5に図示しように、入力された図4の一番目と四番目のラインの文章を文字列であるトークンで変換して各トークン別にトークンの記号を付与した例である。
ただ、線終決(end)、空白、そして注釈はトークンではない。
前記構文分析モジュールは、図5の例題のような構文分析されたトークンを各ファイル単位で受けてトークンの構文があらかじめ定義されたアバップ文法(BNF)に違反されるか否かを分析して文法間違いがあれば、関連ファイルの文法間違いメッセージをアバップ文法エラーメッセージで知らせ、文法間違いがなければ、上向き式構文分析技法(Bottom-up Syntax Analysis)であるLR(1)パーサアルゴリズムでトークンの文法的構造を分析して各ファイル単位で構文構造間の制御流れ関係を抽出して抽象構文木の資料構造に抽象構文木貯蔵処理モジュール130の処理によって保存し、生成された抽象構文木の文法構造情報を各ファイル単位で意味分析モジュールに伝達する。
前記文法検査の実施例として、図6はトークン化された図4の四番目ラインのクラス宣言文章でクラス BNFに違反された文法的エラーがないかを点検する。
追加的に、すべてのアバップの一文章の終りは、常に "。" 演算子の終決がいなければならない。
もし、アバップ文法に違反されたファイルは図10のように、エラーファイル(Erroneous Files)のファイル数及びエラー位置を表示して意味分析対象から除く。
前記抽象構文木生成の実施例として、図8は、図4の例題ソースを構文分析した後、生成されたツリー資料構造である。
前述したような抽象構文木の資料構造は、図7でよく見れば、各ファイルの各ノードは、意味的一単位である文章(Statement)を現わし、各文章は、ソースの物理的位置(ID)、表現式(Expression、文法構造及びソースコード)と文章の間の連結関係(親ノード(father、自分のノード深みより前にあるノード)、子ノード(child、自分のノード深みより次にあるノード)、次ノード(next、自分のノードと同じ深みにあるノード)、以前ノード(pervious、自分のノードと同じ深みにあるノード)、 羅列ノード (list、自分のノードと同じ深みにある同時に同一ソースラインにあるノード))の資料構造で成り立つ。
図8のように、ノード間の連結関係は、ノード間の制御流れを方向性グラフのように図式化したことであり、各ノードはノード間の制御流れの連結(link)を現わしているし、次のノード(next)のないノードは文章の終りを現わす。
前記意味分析モジュール140は、図8の抽象構文木の資料構造で各ファイルを構成するシンボル類型とその間のシンボル連結関係、タイプ(Type)情報、名連結関係を抽出し、シムボルテーブル貯蔵処理モジュール150によって欠陥検査に必要な各シンボル類型の欠陷パターン構造情報をシンボルテーブルの資料構造に保存する。
また、アバップ規則管理モジュール220から選択されたコーディング規則を遂行するために先にシンボルテーブルの資料構造を検索する。
前述したようなシンボルテーブルの資料構造をよく見れば、サブシステム (Subsystem)、ファイル(File)、クラス(Class)、メソッド(Method)、変数(Variable)、型(Form)、関数(Function)、イベント(Events)、ダイアログ(Dialog)、処理ブロック(Processing Block)のクラス資料構造で成り立つ。
図9のように、各クラスはクラス名、 属性名、メソッド名で構成されており、連結線はクラスとの関係を現わしている。
メソッドは各シンボル類型の文法構造及びソースコードを抽象構文木から読み出す機能を遂行する。
次は、アバップソースコード欠陥検査部200を具体的に説明するようにする。
前記アバップ規則データベース210は、図11のように、6個カテゴリーの多様なコーディング規則を保存したデータベースとして、アバップ規則管理モジュール220により規則の追加または変更などを管理するようになる。
前記アバップ規則データベースの構造をよく見れば、カテゴリー類型、シンボル類型、プログラム経路パターン、欠陷パターン構造類型、欠陥条件、規則名、規則ID、エラータイプ、エラーメッセージの資料構造で成り立つ。
また、コーディング規則のカテゴリーは、アバップ及びSQ コーディングスタイル、コーディング標準、アキテクチャ標準、SQ標準、ランタイムエラー、保安弱みで仕分けされる。
各カテゴリー別コーディング規則の名と説明に対する実施例は次のようである。
(1)アバップ及びSQLコーディングスタイル
-Indentation(単位ごとに引っ込みをしなければならない)
-Line Length(ライン当たり100以内で作成しなければならない)
-Hard-Coding(ハードコーディングしてはいけない)
(2)コーディング標準
-Variable Naming(変数命名規則を守らなければならない)
-Recursive Calls(再帰呼出してはいけない)
-Form Obsolete Statements (form文章は使用してはいけない)
(3)アキテクチャ標準
-Return Value Testing on SQL Statement(SQL文使用の後、errorに対する点検をしなければならない)
-Forbidden External Subroutine Invocation(他のプログラムのサブルーチンは呼び出してはいけない)
-Using Commit and Rollback on Try Block(Try文にcommit workを記述すれば、catch構文に rollback workを記述しなければならない)
(4)SQL 標準
-Forbidden Nested Select Statement(多重select文章は、記述してはいけない)
-Forbidden Multiple Table Join(3個以上のTableをjoinしてはいけない)
-Select Statement with an GroupBy Function(Select構文使用の時、groupby 関数を使ってはいけない)
(5)ランタイムエラー
-Division by zero(掛け算演算の時、0で分けてはいけない)
-Unassigned Field Symbol(Field symbolは使用前必ず初期化しなければならない)
-Infinite Loops(ループ文作成の時、必ずexitコードを記述しなければならない)
(6)保安弱み
-Call of System Function(システム関数は使ってはいけない)
-Call of Transactions(Call Transaction文章は使ってはいけない)
-Use of Database Hints(Select文章使用の時、hints構文を使ってはいけない)
アバップ規則管理モジュール220は、図11のように、アバップ規則データベースで各カテゴリー別コーディング規則を選択そして詳細オプションを設定し、選択された規則から係わるシンボルと欠陷パターン構造に対応されるシンボルテーブルのシンボル値を各ファイル別に検索し、検索された各シンボル値打ち別に対応されるすべての文法構造及びソースコードを抽象構文木から抽出してプログラム経路分析モジュール230に伝達する。
前記プログラム経路分析モジュールは、アバップ規則データベースで定義されたコーディング規則のプログラム経路パターン、欠陷パターン構造と欠陥条件の下に前記アバップ規則管理モジュールによって抽出された各シンボル値打ちの文法構造及びソースコードで係わるコーディング規則のコード欠陷を識別する機能を遂行し、検出された欠陷はそれぞれソースコードの位置と繋がれたコード欠陷報告書に伝達して最終使用者に図12、13、14のように実施例のコード欠陷情報を提供する。
前記のような機能を遂行するために、プログラム経路分析モジュールのプログラム経路パターンは制御流れ、制御及び資料流れ、そして制御流れ及び呼び出しで仕分けされ、アバップ規則データベースで定義されたすべてのコーディング規則はただ一つのプログラム経路パターンに属する。
前記各プログラム経路パターンによってプログラム経路分析モジュールで欠陷を検査する実施例は次のようである。
(1) 制御流れのプログラム経路パターン基盤欠陥検査(図12 参照)
- 規則名及び欠陥条件(Infinite Loops、ループ文作成の時、必ずexitコードを記述しなければならない):アバップ規則データベース
- Fromシンボルでループ文があるかどうかを検索:アバップ規則管理モジュール及びシンボルテーブル
- Fromシンボルに関連文法構造及びソースコードを読み出し: 抽象構文木
- ループ文でExitコードがあるかどうかを制御流れ経路で分析:プログラム経路分析モジュール
- ループ文でExitコードがなければ、コード欠陷で識別して欠陥報告書の生成:コード 欠陥報告書生成モジュール
- アバップソースの例題
FORM foo。
data i type i value1。
data sum type i value 0。
do。"Violation:shall be exited from loops。
if sum>10。
sum = sum + i。
endif。
enddo。
ENDFORM。
(2)制御及び資料流れのプログラム経路パターン基盤欠陥検査(図13参照)
- 規則名及び欠陥条件(Unassigned
Field Symbol、Field symbolは使用前必ず初期化しなければならない):アバップ規則データベース
- From シンボルでField-symbolがあるかどうかを検索 : アバップ規則管理モジュール及びシンボルテーブル
- From シンボルに関連文法構造及びソースコードを読み出し:抽象構文木
- 文章中にあるField-symbolが初期化したのかを制御及び資料流れ経路で分析: プログラム経路分析モジュール
- 宣言文に初期化されなかったら、コード欠陷で識別して欠陥報告書の生成
: コード欠陷報告で
-アバップソースの例題
FORM foo。
FIELD-SYMBOLS:<fs1> type any。"Violation : shall be assigned。
data:tp_value type string value'any valueis acceptable
data:tp_fieldname type string value'tp_value'。
if<fs1>is ASSIGNED。
write/'assigned'。
else。
write/'unassinged'。
endif。
write<fs1>。
ENDFORM。
(3)制御流れ及び呼び出しのプログラム経路パターン基盤欠陥検査(図14参照)
- 規則名及び欠陥条件(Recursive Calls、再帰呼出してはいけない):アバップ規則データベース
- Methodシンボルで再帰呼び出しがあるかどうかを検索: アバップ規則管理モジュール及びシンボルテーブル
- Methodシンボルに関連文法構造及びソースコードを読み出し:抽象構文木
- メソッド内部で自分自身を呼び出すメソッドがあるかどうかを制御流れ及び呼び出し経路で分析 : プログラム経路分析モジュール
-再帰呼び出しがあったら、コード欠陷に識別して欠陷報告書の生成:コード欠陷報告書
-アバップ ソースの例題
METHOD foo。
data i type i value1。
data sum type i value 0。
write/'unassinged'。
foo()。"Violation:shall not be recursive
ENDMETHOD。
図2は、本発明の一実施例によるアバップソースコードのコード検査を遂行するコード検査遂行システムの遂行方法を現わした流れ図である。
すなわち、アバップ規則管理モジュールのアバップ及びSQLコーディングスタイル、コーディング標準、アキテクチャ標準、SQL標準、ランタイムエラー、保安弱みの規則の中から選択された規則に対する欠陥検査を遂行してコード欠陷報告書を生成する詳細処理流れ図である。
S101は、図1のアバップ規則管理モジュールから選択されたアバップ規則を規則インデックスを設定する。
S102は、S101の設定されたコーディング規則のインデックス手順で検査対象であるすべてのファイルに対してS103からS119までコード欠陷検査を繰り返し遂行し、規則インデックスの終わりまで上の過程を繰り返し的に遂行する。
S103は、S102で一つの規則に対するカテゴリー類型、シンボル類型、プログラム経路パターン、欠陷パターン構造類型、欠陥条件、規則名、規則ID、エラータイプ、エラーメッセージの資料構造情報を受ける。
受けた一つのプログラム経路パターンをS109、S111、または S113に知らせ、シンボル類型、欠陷パターン構造類型及び欠陥条件はS106に伝達する。
S104は、シンボルテーブルのファイルクラスで検索されたファイルをアバップファイルインデックスで設定する。
S105は、S104の検索されたアバップファイルインデックス手順で検査対象であるすべてのシンボルに対してS106からS118までコード欠陷検査を繰り返し遂行し、ファイルインデックスの終わりまで上の過程を繰り返し的に遂行する。
S106は、S103の一規則のシンボル類型及び欠陷パターン構造類型の情報と S105で伝達した一つのファイル名に根拠してそのファイルで構成されているシンボルの値をシンボルテーブルで検索してシンボル値インデックスを設定する。
S107は、S106のシンボル値インデックス手順で値打ちを読み出してS108に伝達し、S108は、シンボル値に係わるすべての文法構造及びソースコードを抽象構文木で検索し、またS103から受けた欠陷パターン構造類型をS110、S112またはS114に伝達する。
S109がS103から制御流れの経路パターンをもらったら、S110は、S108から検索されたシンボル値の文法構造及びソースコードを対象としてS103から受けた欠陷パターン構造類型及び欠陥条件の下でコード検査した結果をS115に知らせる。
S111がS103から制御及び資料流れの経路パターンをもらったら、S112は S108から検索されたシンボル値の文法構造及びソースコードを対象としてS103から受けた欠陷パターン構造類型及び欠陥条件の下でコード検査した結果をS115に知らせる。
S113がS103から制御流れ及び呼び出しの経路パターンをもらったら、S114は、S108から検索されたシンボル値の文法構造及びソースコードを対象としてS103から受けた欠陷パターン構造類型及び欠陥条件の下でコード検査した結果をS115に知らせる。
前記S115は、検査したシンボル値のソースコードで欠陷があったら、S116に伝達し、欠陷がなければ、S118へ移動する。
S116は、発見された各欠陷のソース位置を抽象構文木の物理的位置(ID)で検索してS117に伝達する。
S117は、S116により伝達した欠陷とソース位置を欠陷保存所に保存し、S118に移動する。
S118は、S106のシンボル値インデックスで次のシンボル値があれば、S107に移動し、なければ、次のファイルのコード検査のためにS119に移動する。
S119は、S104のファイルインデックスで次のファイルがあれば、S105に移動して、なければ、次の規則を適用するためにS120に移動する。
S120は、S101の規則インデックスで次の規則があれば、S102に移動し、なければ、コード欠陥検査を終了する。
前記のような構成及び動作を通じてアバップソフトウェアに含まれている多様なコード欠陷をソースコードだけで静的分析して実際実行の時、発生することができるコード欠陷を前もって探知することができる效果を提供するようになる。
なお、本発明は実施例によって限定されず、本発明が属する技術分野において通常の知識を有するものであれば本発明の趣旨から逸脱しない範囲で、修正または変更できる。
本発明は、アバップソースコードをあらかじめ定義されたアバップ文法(BNF)によって、語彙及び構文分析して抽象構文木のツリー資料構造を構築し、抽象構文木で意味分析してシンボルテーブルのテーブル資料構造を構築することができる。
100 アバップソースコード文法分析部
110 語彙分析モジュール
120 構文分析モジュール
130 抽象構文木貯蔵処理モジュール
140 意味分析モジュール
150 シムボルテーブル貯蔵処理モジュール
200 アバップソースコード欠陥検査部
210 アバップ 規則データベース
220 アバップ規則管理モジュール
230 プログラム経路分析モジュール
240 コード 欠陥報告書生成モジュール

Claims (5)

  1. アバップ(ABAP)ソースコードのコード検査を遂行するコード検査遂行システムであって、
    コード検査対象であるアバップソースコードを、語彙、構文及び意味分析して、それぞれ抽象構文木とシンボルテーブルの資料構造に保存するアバップソースコード文法分析部と、
    ソースコード及び文法構造を欠陷検査して、コード欠陷報告を生成するアバップソースコード欠陥検査部と、を備え、
    前記アバップソースコード文法分析部は、
    検査対象であるアバップソースコードファイルをファイル単位で読んであらかじめ定義されたアバップ文法(BNF)によって、アバップソースコードを一連の文字列を意味するトークン単位で分離する語彙分析モジュールと、
    各ファイル単位で分離したトークンの構文(文法)があらかじめ定義されたアバップ文法に違反されるか否かを検査して文法間違いがあれば、関連ファイルの文法間違いメッセージを、文法間違いがなければ、文章の構文を分析して構文間の制御流れ関係の意味を付与して各ファイル単位の構文構造を抽出する構文分析モジュールと、
    前記構文分析モジュールから抽出された情報を各ファイル単位でツリー資料構造に保存する抽象構文木貯蔵処理モジュールと、
    前記抽象構文木貯蔵処理モジュールで各ファイルを構成するシンボル類型とその間の連結関係情報及び欠陥検査に必要な各シンボル類型の欠陷パターン構造を抽出する意味分析モジュールと、
    前記意味分析モジュールから抽出された情報を、各ファイルの構成要素であるシンボルのテーブル資料構造に保存するシムボルテーブル貯蔵処理モジュールと、を含み、
    前記アバップソースコード欠陥検査部は、
    アバップ規則管理モジュールから選択されたコーディング規則に係わるソースコード及び文法構造を、前記資料構造によってプログラム経路分析モジュールでコード欠陷を検査するものであり、
    欠陥深刻度及びプログラミング特性によって多様なコーディング規則カテゴリーらと各規則のシンボル類型、 欠陷パターン構造類型、そして欠陷条件類型をアバップ規則管理モジュールの処理によって、保存及び管理されるアバップ規則データベースと、
    前記アバップ規則データベースからコーディング規則を選択し、選択された規則と係わるシンボルと欠陷パターン構造に対応されるシンボルテーブルのシンボル値を各ファイル別に検索し、検索された各シンボル値別に対応されるすべての文法構造及びソースコードを抽象構文木から抽出してプログラム経路分析モジュールに伝達するアバップ規則管理モジュールと、
    前記抽出された各シンボル値打ちの文法構造及びソースコードを選択された規則のプログラム経路パターン、欠陷パターン構造と欠陥条件によって欠陥検査するプログラム経路分析モジュールと、
    前記選択されたコード規則に違反された欠陷があれば、コード欠陷報告書を生成するコード欠陥報告書生成モジュールと、を含む
    ことを特徴とするアバップソースコードのコード検査を遂行するコード検査遂行システム。
  2. 前記アバップソースコード文法分析部は、
    上向き式構文分析技法(Bottom−up Syntax Analysis)であるLR(1)パーサアルゴリズムでトークンの文法的構造分析する
    請求項1に記載のアバップソースコードのコード検査を遂行するコード検査遂行システム。
  3. 前記アバップソースコード文法分析部は、
    タイプ(Type) 情報、名連結関係を抽出する
    請求項1に記載のアバップソースコードのコード検査を遂行するコード検査遂行システム。
  4. 前記アバップソースコード文法分析部は、
    アバップソースコードある上位ディレクトリを選択すれば、下位ディレクトリを含んだすべてのアバップファイルを検査対象とするか、または一つのファイルを選択しても検査対象とする
    請求項1に記載のアバップソースコードのコード検査を遂行するコード検査遂行システム。
  5. 前記アバップ規則データベースは
    アバップ規則管理モジュールによって規則の追加または変更を管理される
    請求項1に記載のアバップソースコードのコード検査を遂行するコード検査遂行システム。
JP2013501169A 2010-03-29 2010-04-05 アバップソースコードのコード検査遂行システム Expired - Fee Related JP5791698B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR10-2010-0028128 2010-03-29
KR1020100028128A KR101051600B1 (ko) 2010-03-29 2010-03-29 아밥 소스코드의 코드 검사를 수행하는 코드검사 수행시스템
PCT/KR2010/002061 WO2011122724A1 (ko) 2010-03-29 2010-04-05 아밥 소스코드의 코드 검사를 수행하는 코드검사 수행시스템

Publications (2)

Publication Number Publication Date
JP2013522790A JP2013522790A (ja) 2013-06-13
JP5791698B2 true JP5791698B2 (ja) 2015-10-07

Family

ID=44720389

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013501169A Expired - Fee Related JP5791698B2 (ja) 2010-03-29 2010-04-05 アバップソースコードのコード検査遂行システム

Country Status (7)

Country Link
US (1) US8875110B2 (ja)
EP (1) EP2555117A4 (ja)
JP (1) JP5791698B2 (ja)
KR (1) KR101051600B1 (ja)
CN (1) CN102804147B (ja)
AU (1) AU2010350247B2 (ja)
WO (1) WO2011122724A1 (ja)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8776017B2 (en) * 2010-07-26 2014-07-08 Check Point Software Technologies Ltd Scripting language processing engine in data leak prevention application
KR101225577B1 (ko) * 2010-12-07 2013-01-24 한국과학기술연구원 어셈블리 언어 코드의 분석 장치 및 방법
US8666999B2 (en) * 2011-08-02 2014-03-04 Rockwell Automation Technologies, Inc. Search utility program for software developers
CN103377045B (zh) * 2012-04-27 2016-12-14 国际商业机器公司 用于翻译验证测试的方法和系统
GB2506162A (en) * 2012-09-24 2014-03-26 Ibm Searching source code
KR101470097B1 (ko) * 2012-12-17 2014-12-10 부산대학교 산학협력단 코딩 스타일에 기초한 소스코드 시각화 장치 및 방법
US9378377B1 (en) * 2013-03-13 2016-06-28 Hrl Laboratories, Llc System for information flow security inference through program slicing
US8984485B2 (en) * 2013-05-01 2015-03-17 International Business Machines Corporation Analysis of source code changes
US9569187B2 (en) * 2013-10-08 2017-02-14 International Business Machines Corporation Irreducible modules
US9298450B2 (en) 2013-10-25 2016-03-29 International Business Machines Corporation Associating a visualization of user interface with source code
CN103914304B (zh) * 2014-04-10 2017-02-22 国家电网公司 一种基于sap平台的不同结构类型参数转换方法
US9323742B2 (en) * 2014-06-09 2016-04-26 Xerox Corporation Method and apparatus for providing semantic data architecture
KR101623174B1 (ko) 2014-08-27 2016-05-20 주식회사 파수닷컴 소스 코드 분석 장치, 이를 위한 컴퓨터 프로그램, 그 기록매체
WO2016032234A1 (ko) * 2014-08-27 2016-03-03 주식회사 파수닷컴 소스 코드 분석 장치, 이를 위한 컴퓨터 프로그램, 그 기록매체
KR101507469B1 (ko) 2015-01-06 2015-04-03 (주)싸이버텍 소스 코드 분석 서비스 제공 방법
KR101579493B1 (ko) * 2015-01-08 2015-12-23 주식회사 파수닷컴 소스코드 이관제어 방법 및 이를 위한 컴퓨터 프로그램, 그 기록매체
CN106201861A (zh) * 2015-05-07 2016-12-07 阿里巴巴集团控股有限公司 一种代码质量的检测方法及装置
US11531539B2 (en) * 2015-10-28 2022-12-20 Qomplx, Inc. Automated compliance and testing framework for software development
US11531538B2 (en) * 2015-10-28 2022-12-20 Qomplx, Inc. Meta-indexing, search, compliance, and test framework for software development using smart contracts
US10740096B2 (en) * 2015-10-28 2020-08-11 Qomplx, Inc. Meta-indexing, search, compliance, and test framework for software development
CN106997320A (zh) * 2016-01-22 2017-08-01 阿里巴巴集团控股有限公司 代码评审过程中的代码显示方法和装置
US9723489B1 (en) * 2016-04-19 2017-08-01 Synack, Inc. Automated vulnerability discovery in mobile device applications
CN106294156B (zh) * 2016-08-11 2018-12-07 北京邮电大学 一种静态代码缺陷检测分析方法及装置
CN106293764B (zh) * 2016-08-22 2019-05-07 江苏电力信息技术有限公司 一种通过abap语法解析获取引用自定义对象的方法
KR101869008B1 (ko) 2016-09-02 2018-07-20 단국대학교 산학협력단 자바 어플리케이션의 바이트코드 기반 입력값 검증장치 및 그 방법
KR101850303B1 (ko) * 2016-09-13 2018-05-31 슈어소프트테크주식회사 소스 코드 위배 수정 방법 및 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
US10594574B2 (en) * 2016-11-07 2020-03-17 Hewlett Packard Enterprise Development Lp Middlebox modeling
CN106874386B (zh) * 2017-01-12 2020-07-28 深圳市汉云科技有限公司 文件解析方法及装置
CN107402764B (zh) * 2017-07-28 2020-09-08 南京南瑞继保电气有限公司 一种图形化页面程序功能特征码计算刷新方法
CN107678954A (zh) * 2017-09-22 2018-02-09 江苏海事职业技术学院 一种程序作业评测方法和装置
CN109857628A (zh) * 2017-11-30 2019-06-07 北京高德云图科技有限公司 动态ui业务端代码性能检测方法及装置
CN109213490B (zh) * 2018-09-05 2022-10-25 深圳市腾讯网络信息技术有限公司 一种程序处理方法、装置以及相关设备
KR102546424B1 (ko) * 2018-12-11 2023-06-23 한국전자통신연구원 학습용 데이터 생성 장치, 소스 코드 오류 분석 장치 및 방법
CN109871313A (zh) * 2018-12-30 2019-06-11 贝壳技术有限公司 基于特定时间的代码检查方法及装置
CN109871319A (zh) * 2019-01-18 2019-06-11 深圳壹账通智能科技有限公司 项目代码扫描方法、装置、计算机设备及存储介质
CN110109675A (zh) * 2019-04-30 2019-08-09 翟红鹰 智能合约处理方法、装置以及计算机可读存储介质
US11562090B2 (en) * 2019-05-28 2023-01-24 International Business Machines Corporation Enforcing sensitive data protection in security systems
US11182155B2 (en) * 2019-07-11 2021-11-23 International Business Machines Corporation Defect description generation for a software product
KR102243258B1 (ko) * 2019-08-09 2021-04-21 주식회사 한화 텍스트 및 키워드 마이닝을 통한 디버깅을 수행하는 장치 및 그 방법
CN110688307B (zh) * 2019-09-09 2023-11-17 国信金宏信息咨询有限责任公司 JavaScript代码检测方法、装置、设备和存储介质
CN110851139B (zh) * 2019-11-07 2023-04-18 北京字节跳动网络技术有限公司 用于检查代码的方法、装置和电子设备
CN111338929A (zh) * 2019-12-05 2020-06-26 国网辽宁省电力有限公司信息通信分公司 一种业务应用系统性能评测及其解析技术方法
CN111143204B (zh) * 2019-12-19 2021-06-29 支付宝(杭州)信息技术有限公司 一种小程序代码扫描方法和装置
KR102461532B1 (ko) * 2019-12-23 2022-11-03 충남대학교 산학협력단 프로그램 제어 흐름 그래프 재건 시스템 및 방법
CN111143330B (zh) * 2019-12-27 2023-10-03 湖南亚信软件有限公司 一种多模态数据库解析引擎的实现方法及装置
CN111209004B (zh) * 2019-12-30 2023-09-01 北京水滴科技集团有限公司 代码转换方法及装置
CN111552968B (zh) * 2020-04-21 2023-06-13 中国电力科学研究院有限公司 基于模型检查的嵌入式终端软件代码漏洞检测方法及装置
CN111610999A (zh) * 2020-05-26 2020-09-01 北京字节跳动网络技术有限公司 一种检查方法、装置、计算机设备及存储介质
CN111709026B (zh) * 2020-06-10 2023-10-24 深圳知释网络技术有限公司 静态安全检测方法、装置、计算机设备和存储介质
CN112035359B (zh) * 2020-08-31 2023-05-02 抖音视界有限公司 程序测试方法、装置、电子设备及存储介质
CN112231212B (zh) * 2020-10-16 2023-05-09 湖南皖湘科技有限公司 一种检测程序代码语法错误的方法
CN112416367B (zh) * 2020-11-19 2022-06-21 云南电网有限责任公司信息中心 基于软件逆向拆解和分析的应用资源变更影响分析系统
CN112632546A (zh) * 2020-12-31 2021-04-09 华数传媒网络有限公司 广电行业自动化代码分析方法
CN112733156B (zh) * 2021-01-29 2024-04-12 中国人民解放军国防科技大学 基于代码属性图的软件脆弱性智能检测方法、系统及介质
CN113791757B (zh) * 2021-07-14 2023-08-22 北京邮电大学 软件需求和代码映射方法及系统
US20230019933A1 (en) * 2021-07-15 2023-01-19 Watershed Informatics, Inc. User interface controls for visual software modification
CN113590129A (zh) * 2021-07-17 2021-11-02 西北工业大学 一种基于同步反应式构件的代码自动生成方法
CN117897694A (zh) * 2021-08-24 2024-04-16 超聚变数字技术有限公司 静态分析方法、装置和设备及计算机可读存储介质
CN113778899A (zh) * 2021-09-28 2021-12-10 广州四三九九信息科技有限公司 一种在Lua代码编译前检查语法错误和性能的方法
CN115543854A (zh) * 2022-11-24 2022-12-30 博智安全科技股份有限公司 源代码安全分析方法、装置、设备、可读存储介质
CN116049835B (zh) * 2023-03-08 2023-06-23 中汽智联技术有限公司 汽车固件的安全漏洞检测方法、设备和存储介质
CN116680705B (zh) * 2023-07-31 2023-12-12 中国人民解放军国防科技大学 基于特征提取的Rust程序缺陷自动检测方法及系统
CN117421009B (zh) * 2023-12-19 2024-04-19 深圳市航盛电子股份有限公司 信号代码生成方法、装置、终端设备以及存储介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6029002A (en) * 1995-10-31 2000-02-22 Peritus Software Services, Inc. Method and apparatus for analyzing computer code using weakest precondition
DE10041111A1 (de) * 2000-08-22 2002-03-14 Infineon Technologies Ag Verfahren zum Überarbeiten eines in einer Programmiersprache verfaßten Computerprogramms
US6873935B2 (en) * 2003-03-03 2005-03-29 Microsoft Corporation System and method for statically checking source code
KR100501936B1 (ko) 2003-05-07 2005-07-18 삼성전자주식회사 소스 코드 검사 시스템 및 방법
JP2005056183A (ja) * 2003-08-05 2005-03-03 Nec Corp ルール検査システム、ルール検査装置、ルール検査方法、及びルール検査プログラム
JP4693044B2 (ja) 2005-08-18 2011-06-01 株式会社日立ソリューションズ ソースコード脆弱性検査装置
US7958493B2 (en) * 2006-01-20 2011-06-07 Kevin Edward Lindsey Type inference system and method
US7945905B2 (en) * 2006-06-02 2011-05-17 Accenture Global Services Limited Quality inspector tool
US20080196012A1 (en) * 2007-02-12 2008-08-14 Panaya Ltd. System and methods for static analysis of large computer programs and for presenting the results of the analysis to a user of a computer program
KR100946417B1 (ko) * 2007-09-14 2010-03-09 주식회사 신한은행 프로그램 소스코드 테스트 방법
KR101014684B1 (ko) * 2007-09-14 2011-02-16 주식회사 신한은행 테스트 결과 로그를 이용한 프로그램 테스트 결과 분석방법 및 시스템과 이를 위한 프로그램 기록매체
US8261248B2 (en) * 2007-11-05 2012-09-04 Sap Ag System and method of executing a dynamic program in a structured environment
JP2009211503A (ja) 2008-03-05 2009-09-17 Nec Corp ソースコード検証装置、及びソースコード検証方法
US20100153933A1 (en) * 2008-12-17 2010-06-17 Karsten Bohlmann Path Navigation In Abstract Syntax Trees
EP2439926A4 (en) * 2009-06-19 2013-01-02 Shenzhen Tcl New Technology METHOD FOR EXPLORING FILES ON TELEVISION
US8527955B2 (en) * 2009-09-11 2013-09-03 International Business Machines Corporation System and method to classify automated code inspection services defect output for defect analysis
US8572566B2 (en) * 2010-05-11 2013-10-29 Smartshift Gmbh Systems and methods for analyzing changes in application code from a previous instance of the application code

Also Published As

Publication number Publication date
EP2555117A1 (en) 2013-02-06
US8875110B2 (en) 2014-10-28
WO2011122724A1 (ko) 2011-10-06
AU2010350247A1 (en) 2012-10-11
AU2010350247B2 (en) 2015-02-12
CN102804147B (zh) 2015-11-25
US20130014093A1 (en) 2013-01-10
EP2555117A4 (en) 2013-02-06
KR101051600B1 (ko) 2011-07-22
JP2013522790A (ja) 2013-06-13
CN102804147A (zh) 2012-11-28

Similar Documents

Publication Publication Date Title
JP5791698B2 (ja) アバップソースコードのコード検査遂行システム
Bruntink et al. On the use of clone detection for identifying crosscutting concern code
Louridas Static code analysis
Kim et al. Memories of bug fixes
Buse et al. Automatically documenting program changes
Reder et al. Computing repair trees for resolving inconsistencies in design models
Zaidman et al. Applying webmining techniques to execution traces to support the program comprehension process
Sneed et al. Wsdltest-a tool for testing web services
CN103577168A (zh) 测试用例创建系统及方法
US20170270302A1 (en) Security remediation
Linares-Vásquez et al. Documenting database usages and schema constraints in database-centric applications
Annamaa et al. An interactive tool for analyzing embedded SQL queries
Sneed Testing against natural language requirements
Walkinshaw et al. Are 20% of files responsible for 80% of defects?
CN116431476A (zh) 一种基于代码上下文变异的jvm模糊测试方法
Huang et al. Protecting data integrity of web applications with database constraints inferred from application code
US20230236830A1 (en) Detecting duplicated code patterns in visual programming language code instances
Juergens Why and how to control cloning in software artifacts
CN111966578A (zh) 一种安卓兼容性缺陷修复效果的自动化评估方法
CN115080448B (zh) 一种软件代码不可达路径自动检测的方法和装置
Hotomski et al. Aligning requirements and acceptance tests via automatically generated guidance
CN111666216B (zh) 一种智能合约分析方法及装置
Sneed et al. The design and use of WSDL‐Test: a tool for testing Web services
Nooraei Abadeh et al. Delta‐based regression testing: a formal framework towards model‐driven regression testing
CN114691197A (zh) 代码分析方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131023

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131029

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140122

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140425

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20141119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150316

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20150320

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20150410

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150707

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150804

R150 Certificate of patent or registration of utility model

Ref document number: 5791698

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees