JP4914609B2 - ソースコード問題予測プログラム - Google Patents
ソースコード問題予測プログラム Download PDFInfo
- Publication number
- JP4914609B2 JP4914609B2 JP2005380256A JP2005380256A JP4914609B2 JP 4914609 B2 JP4914609 B2 JP 4914609B2 JP 2005380256 A JP2005380256 A JP 2005380256A JP 2005380256 A JP2005380256 A JP 2005380256A JP 4914609 B2 JP4914609 B2 JP 4914609B2
- Authority
- JP
- Japan
- Prior art keywords
- function
- source code
- information
- execution frequency
- call
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Description
低コストでソフトウェアを高品質化する技術としては、ソフトウェア静的解析がある。ソフトウェア静的解析は、ソースコード(以下ソース)を解析し様々な問題検出を行うものである。
これらのテスト技術とは異なり、ソフトウェア静的解析では、ソースを対象とするため、開発工程のより上流の設計・コーディング工程での問題検出作業に利用できる。すなわち、シミュレーションや実機テスト前に問題の発見が可能である。このように早期にプログラムの問題を発見できる分、修正コストを削減でき、ソフトウェアの低コスト化、高性能化が見込める。
さらに、肝心の問題部分の出力結果が、大量の問題にならない部分の出力情報に埋もれてしまい、視認性や操作性が低下するため、支援プログラム自体の利用率も低くなる。
本発明の他の目的は、ソフトウェア開発の設計工程およびレビュー工程における工数の削減を実現することが可能なソースコード問題予測技術を提供することにある。
関数の呼出し列中に含まれる前記繰返し構造と前記条件分岐構造の各々の数を計測し、予め定義された重み定義情報に基づき、各々の前記数の計測値に重みを乗算することで予測される実行頻度を計算する処理と、
前記実行頻度から前記プログラムの実行時に高頻度で繰返し実行される特定領域を予測する処理と、
前記特定領域について、予め与えられた特定の関数の呼出しが存在するか調べ、存在した前記特定の関数を予測された当該特定領域の実行頻度に基づいてランク付けして表示する処理と、
をコンピュータに実行させるソースコード問題予測プログラムを提供する。
また、ソフトウェア開発の設計工程およびレビュー工程における工数の削減を実現することが可能となる。
また、ソフトウェア開発の設計工程およびレビュー工程を支援するソースコード問題予測プログラムの視認性や操作性を向上させることができる。
図1Aは、本発明の一実施の形態であるソースコード問題予測プログラムおよび方法の作用の一例を示す概念図である。
図2は、本発明の一実施の形態であるソースコード問題予測プログラムおよび方法の作用の一例を示すフローチャートである。
まず、図1Bを参照して、本実施の形態のソースコード問題予測装置を構成する情報処理装置10(コンピュータ)の一例について説明する。
主記憶12は、たとえば半導体メモリで構成され、中央処理装置11が実行するソフトウェアやデータが格納される。
ソースコード問題予測プログラム20は、オペレーティングシステム18の配下で稼働するアプリケーションプログラムである。
外部記憶装置13は、不揮発性の記憶媒体で構成される記憶装置からなる。
情報入力装置15は、たとえば、キーボード、マウス等のユーザ入力機器からなる。本実施の形態の場合には、ソースコード問題予測プログラム20を制御するための各種情報が必要に応じてユーザから入力される。
たとえば、外部記憶装置13に格納される情報は、必要に応じて、ネットワークインタフェース16を介して情報ネットワーク17から取得するようにしてもよい。
一方、図1Aに例示されるように、本実施の形態のソースコード問題予測プログラム20は、字句・構文解析部21、検出部22、関数呼出し列抽出部23、ループ情報抽出部24、条件分岐抽出部25、例外処理情報抽出部26、関数呼出し関係情報生成部27、実行頻度予測部28、レポート出力部29、の各機能ブロックを含んでいる。
検出部22は、ソースコード解析情報30と、検出関数一覧表41から検出結果表36を出力する。
ループ情報抽出部24は、ソースコード解析情報30を解析してループ情報表32を出力する。
例外処理情報抽出部26は、ソースコード解析情報30を解析して例外処理情報表34を出力する。
レポート出力部29は、検出結果表36、実行頻度情報表37と、ランク定義表43を入力して検出結果レポート50を出力する。
まず、字句・構文解析部21によってソースコード40を解析して図4に例示されるソースコード解析情報30を出力する(ステップ100)。
次に、関数呼出し列抽出部23によって、ソースコード解析情報30から、関数呼出し列情報31を抽出する(ステップ300)。
最後に、実行頻度情報表37、検出結果表36、ランク定義表43から、検出結果レポート50を出力する(ステップ700)。
まず、上述のステップ100では、字句・構文解析部21によって、ソースコード40を解析する。字句・構文解析自体は、ソースコード40に記述されたプログラム言語のパーサ等の解析技術を用いることができる。
図5は、本実施の形態における検出関数一覧表41の構成例を示す概念図である。検出関数一覧表41には、クラス名41a、メソッド名41b、引数型41cが対応付けて格納される。この検出関数一覧表41には、後述のような非推奨関数が設定される。
そして、検出関数一覧表41の中で未処理の検出関数が存在する場合(ステップ203)、その未処理の関数を処理対象として選択し(ステップ204)、ソースコード解析情報30の中から対象関数の呼出しを検索し(ステップ205)、対象関数の呼出しが存在するか判別する(ステップ206)。
この図6に示すフローチャートの処理により、図7に例示される検出結果表36の情報が得られる。
呼出しID36aは検出した関数に順に割当てた識別子である。検出関数36cで特定される各関数には、その呼出しの存在位置(ファイル中の行番号)も抽出し、存在箇所36bとして検出結果表36に記憶している。
次に、ステップ300では、ソースコード解析情報30から、関数呼出し列情報31を抽出する。図8は、本処理のフローチャートである。
作成済みの場合には、呼び出す関数(@2)を取得し(ステップ306)、上述の関数(@1)から関数(@2)へのリンク31bを作成して(ステップ307)、ステップ301に戻る。
これにより図9に例示される関数呼出し列情報31が得られる。この関数呼出し列情報31は、ソースコード40に含まれる関数の呼出し関係を、検出結果表36の各検出関数に注目して生成したものである。例えば、呼出しID36aが#3の呼出しは、それに至る関数の呼出し関係のリンク31bをたどっていくと、図9のような形で、「f0→f1→f102→#3」と「f2→f102→#3」の二本の呼出し列となる。
[ステップ400の詳細]
ステップ400により、ソースコード解析情報30からは、ループ情報表32や条件分岐情報表33も抽出する。図10は、ステップ400の詳細を示す本処理のフローチャートである。
存在する場合には、ソースコード解析情報30から未処理の関数(@1)を取得し(ステップ403)、当該関数内にさらに関数呼出しが存在するか判別する(ステップ404)。
この処理により、得られるループ情報表32および条件分岐情報表33は、図11および図12のようになる。
このようにループ情報表32、条件分岐情報表33は、関数の呼出しにおいて、関数間に存在するループ(for文やwhile文)や、条件分岐(if文やswitch文)の有無・数を表したものである。
[ステップ500の詳細]
上述のステップ500の処理では、関数呼出し列情報31に対して、ループ情報や条件分岐情報を追加し、図14に例示される関数呼出し関係情報35を生成する。
そして、存在する場合は、条件分岐情報表33から未取得のキーを取得し(ステップ507)、条件分岐情報表33からキーの該当する条件分岐情報を取得する(ステップ508)。
[ステップ600の詳細]
上述のステップ600では、上記の関数呼出し関係情報35と、図15に例示される重み定義(重み定義表42)から、図16に例示されるフローチャートの処理により、図18に例示される実行頻度情報表37を生成する。各呼出し列において、含まれるループや条件分岐に対し、重み定義表42で指定された重みを付加する。図17は、この処理における関数呼出し関係情報35の状態を例示した概念図である。
図15に例示されるように、重み定義表42は、種別42a、構文42b、重み42cを対応付けて保持する。
図19に例示されるように、ランク定義表43は、ランク43a、重み合計43bを対応付けて保持する。
そして、未処理の「末端呼出しに至る呼出し列」が存在するか判別する(ステップ605)。ここで、「末端呼出しに至る呼出し列」とは、図14の関数呼出し関係情報35で、#nで示した呼出しが最後に来る呼出し列を意味する。たとえば、図14の例では、#3の場合は、f0→while→f1→for→f102→#3、とf2→for→f102→#3、の二つである。
そして、呼出し列を先頭からたどり、重み定義表42の重み定義に従って、各ノード35cに重みを付加する(ステップ607)。
各呼出し列の値(@1)を、重み合計(@2)に加算した後(ステップ609)、ステップ605に戻る。
[ステップ700の詳細]
最後に、上述のステップ700では、図19に例示されるランク定義表43のランク定義を用いて、実行頻度情報表37の実行頻度情報と、検出結果表36の関数検出結果(図7)から、図21に例示される検出結果レポート50を生成する。
求めた実行頻度について、ランク定義表43の重み合計43bを検索し、該当するランクを取得する(ステップ704)。
生成された検出結果レポート50は、たとえばディスプレイ14に表示される。
このように、本実施の形態の場合には、検出結果レポート50には、検出関数一覧表41で指定した関数の中から、実行頻度の高い(問題のありそうな)ものが自動的に選択され、ランク付けされて表示されるため、検出結果レポート50の視認性は極めて高い。
再帰呼出し(関数が自身を内部で呼出す形)は、プログラムの実行が繰返し起きる点で、for文やwhile文と同様に、ループの一種としてみなすことができる。
図24(a)のように、関数f10が末端呼出し#6に連なる場合、関数呼出し関係情報35では、再帰呼出しを示す“RC”のノード35cが設定される。
この結果、図24(c)に例示されるように、呼出し列37aが#6に連なる実行頻度は、“RC”の重みを反映した値となる。
従って、継承を使ったクラスの関数呼出しは、一種の分岐処理ともみなすことができる。ここでは、前記のif文やswitch文と同様に、重み付けを行う。本処理を図26、図27、図28に示す。
この関数呼出し関係情報35では、f20それ自身のノード35aの他に承継に該当するノード35dとして、3つの“Inh”が追加されている。
条件分岐の条件値を実行頻度予測の重み付けに用いることもできる。すなわち、if文やswitch文の条件値も考慮した重み付けを行う。
この条件分岐がエラー処理部分か否かの判定には、ソースコード解析情報30から、条件値の変数名または定数名を取得する。そして、“ERR”や“ERROR”などの文字列とのマッチングを行う。このマッチングで条件値が類似の文字列と判断した場合は、上述の図29(b)の関数呼出し列情報31に対応して、図30のように関数呼出し関係情報35を生成する。この場合、関数呼出し関係情報35には、評価対象となる条件値に対応した“Val”のノード35dが追加されている。
一般に、たとえば、過去の経験やプログラムの用途等から、プログラム中で高頻度で実行される関数がどれか、ユーザが事前に分かっているケースがある。
従来の参考技術の場合は、ソースコード中から一律で関数呼出しを検出するため、それを用いた設計レビューでは、全ての関数を同様にレビューする必要があり、多大な工数を必要とする。また、結果の視認性も劣る。
本実施の形態の場合、単に、ディスプレイ14に検出結果レポート50を表示するだけでなく、ユーザが当該検出結果レポート50を評価し、その評価結果を各種の重みの設定にフィードバックして、一層、ソースコード40における問題の検出精度を向上させることができる。
チェック項目61aの「実害なし」がチェックされた場合には、検出結果レポート50の側における検出ID50aの関数は、現在のままでも実害がないと判定され、問題検出の観点からは、検出結果レポート50におけるノイズとみなすことができる。
この結果、図36に例示されるように、実行頻度情報表37は、変更の前後で、図36(a)から図36(b)に変化する。そして、これに応じて、出力される検出結果レポート50においては、検出ID50aが#2の問題ランク50bが、Dから最低のEに変化する。
なお、本発明は、上述の実施の形態に例示した構成に限らず、その趣旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
プログラムのソースコードに含まれる関数の呼出し関係、繰返し構造、条件分岐構造の少なくとも一つに関する制御構造情報を抽出する処理と、
前記制御構造情報から前記プログラムの実行時に高頻度で繰返し実行される特定領域を予測する処理と、
前記特定領域について、予め与えられた特定の関数の呼出しが存在するか調べ、存在した前記特定の関数を予測された当該特定領域の実行頻度に基づいてランク付けして表示する処理と、
をコンピュータに実行させることを特徴とするソースコード問題予測プログラム。
(付記2)
付記1記載のソースコード問題予測プログラムにおいて、
前記関数の呼出し列中に含まれる前記繰返し構造と前記条件分岐構造の各々の数を計測し、予め定義された重み定義情報に基づき、各々の前記数の計測値に重みを乗算することで予測される前記実行頻度を計算する処理を、さらに前記コンピュータに実行させることを特徴とするソースコード問題予測プログラム。
(付記3)
付記1記載のソースコード問題予測プログラムにおいて、
再帰呼出しを行う前記関数を抽出し、当該関数内の処理を実行頻度が高い前記特定領域として予測する処理、
オブジェクト指向型プログラムにおける継承の関係にあるクラス群を抽出し、各クラスに宣言されている同一名の前記関数について、クラス数に反比例する実行頻度を割当てる処理、
前記条件分岐構造の条件値となっている変数及び定数について、前記変数及び定数の文字列表現を予め定義されたエラー処理を表す文字列と照合し、類似性が高ければ条件一致時に実行される処理領域に対して低い実行頻度を割当てる処理、
前記関数の呼出し列中に含まれる例外処理の数を計測し、前記例外処理の数に反比例する実行頻度を個々の前記関数に割当てる処理、
特定の前記関数に対するユーザからの重み定義を受け付け、前記重み定義も用いて実行頻度を個々の前記関数に割当てる処理、
の少なくとも一つを、さらに前記コンピュータに実行させることを特徴とするソースコード問題予測プログラム。
(付記4)
プログラムのソースコードに含まれる関数の呼出し関係、繰返し構造、条件分岐構造の少なくとも一つに関する制御構造情報を抽出するステップと、
前記制御構造情報から前記プログラムの実行時に高頻度で繰返し実行される特定領域を予測するステップと、
前記特定領域について、予め与えられた特定の関数の呼出しが存在するか調べ、存在した前記特定の関数を予測された当該特定領域の実行頻度に基づいてランク付けして表示するステップを、
含むことを特徴とするソースコード問題予測方法。
(付記5)
プログラムのソースコードに含まれる関数の呼出し関係、繰返し構造、条件分岐構造の少なくとも一つに関する制御構造情報を抽出する第1手段と、
前記制御構造情報から前記プログラムの実行時に高頻度で繰返し実行される特定領域を予測する第2手段と、
前記特定領域について、予め与えられた特定の関数の呼出しが存在するか調べ、存在した前記特定の関数を予測された当該特定領域の実行頻度に基づいてランク付けして表示する第3手段と、
を含むことを特徴とするソースコード問題予測装置。
(付記6)
付記5記載のソースコード問題予測装置において、
前記第2手段では、前記関数の呼出し列中に含まれる前記繰返し構造と前記条件分岐構造の各々の数を計測し、予め定義された重み定義情報に基づき、各々の前記数の計測値に重みを乗算することで予測される前記実行頻度を計算することを特徴とするソースコード問題予測装置。
(付記7)
付記5記載のソースコード問題予測装置において、
前記第2手段では、再帰呼出しを行う前記関数を抽出し、当該関数内の処理を実行頻度が高い前記特定領域として予測することを特徴とするソースコード問題予測装置。
(付記8)
付記5記載のソースコード問題予測装置において、
前記第2手段では、オブジェクト指向型プログラムにおける継承の関係にあるクラス群を抽出し、各クラスに宣言されている同一名の前記関数について、クラス数に反比例する実行頻度を割当てることを特徴とするソースコード問題予測装置。
(付記9)
付記5記載のソースコード問題予測装置において、
前記第2手段では、前記条件分岐構造の条件値となっている変数及び定数について、前記変数及び定数の文字列表現を予め定義されたエラー処理を表す文字列と照合し、類似性が高ければ条件一致時に実行される処理領域に対して低い実行頻度を割当てることを特徴とするソースコード問題予測装置。
(付記10)
付記5記載のソースコード問題予測装置において、
前記第2手段では、前記関数の呼出し列中に含まれる例外処理の数を計測し、前記例外処理の数に反比例する実行頻度を個々の前記関数に割当てることを特徴とするソースコード問題予測装置。
(付記11)
付記5記載のソースコード問題予測装置において、
特定の前記関数に対するユーザからの重み定義を受け付け、前記第2手段は前記重み定義も用いて実行頻度を個々の前記関数に割当てることを特徴とするソースコード問題予測装置。
11 中央処理装置
12 主記憶
13 外部記憶装置
14 ディスプレイ
15 情報入力装置
16 ネットワークインタフェース
17 情報ネットワーク
18 オペレーティングシステム
20 ソースコード問題予測プログラム
21 字句・構文解析部
22 検出部
23 関数呼出し列抽出部
24 ループ情報抽出部
25 条件分岐抽出部
26 例外処理情報抽出部
27 関数呼出し関係情報生成部
28 実行頻度予測部
29 レポート出力部
30 ソースコード解析情報
30a ノード
31 関数呼出し列情報
31a ノード
31b リンク
32 ループ情報表
32a 関数ペア
32b 種別
33 条件分岐情報表
33a 関数ペア
33b 種別
34 例外処理情報表
34a 関数ペア
34b 種別
35 関数呼出し関係情報
35a ノード
35b リンク
35c ノード
35d ノード
36 検出結果表
36a 呼出しID
36b 存在箇所
36c 検出関数
37 実行頻度情報表
37a 呼出し列
37b 重み合計
40 ソースコード
40−1 ソースコード
40−2 ソースコード
40−3 ソースコード
41 検出関数一覧表
41a クラス名
41b メソッド名
41c 引数型
42 重み定義表
42a 種別
42b 構文
42c 重み
43 ランク定義表
43a ランク
43b 重み合計
44 関数重み定義表
44a 関数名
44b 重み
50 検出結果レポート
50a 検出ID
50b 問題ランク
50c 存在箇所
50d 検出関数
60 ユーザ評価入力領域
61 チェック欄
61a チェック項目
61b チェック項目
62 コメント欄
Claims (2)
- プログラムのソースコードに含まれる関数の呼出し関係、繰返し構造、条件分岐構造の少なくとも一つに関する制御構造情報を抽出する処理と、
関数の呼出し列中に含まれる前記繰返し構造と前記条件分岐構造の各々の数を計測し、予め定義された重み定義情報に基づき、各々の前記数の計測値に重みを乗算することで予測される実行頻度を計算する処理と、
前記実行頻度から前記プログラムの実行時に繰返し実行される特定領域を予測する処理と、
前記特定領域について、予め与えられた特定の関数の呼出しが存在するか調べ、存在した前記特定の関数を予測された当該特定領域の実行頻度に基づいてランク付けして表示する処理と、
をコンピュータに実行させることを特徴とするソースコード問題予測プログラム。 - プログラムのソースコードに含まれる関数の呼出し関係、繰返し構造、条件分岐構造の少なくとも一つに関する制御構造情報を抽出する処理と、
実行頻度を割当てる処理と、
前記実行頻度から前記プログラムの実行時に繰返し実行される特定領域を予測する処理と、
前記特定領域について、予め与えられた特定の関数の呼出しが存在するか調べ、存在した前記特定の関数を予測された当該特定領域の実行頻度に基づいてランク付けして表示する処理とを、ソースコード問題予測プログラムがコンピュータに実行させ、
前記実行頻度を割当てる処理は、
オブジェクト指向型プログラムにおける継承の関係にあるクラス群を抽出し、各クラスに宣言されている同一名の前記関数について、クラス数に反比例する実行頻度を割当てる処理、
前記条件分岐構造の条件値となっている変数及び定数について、前記変数及び定数の文字列表現を予め定義されたエラー処理を表す文字列と照合し、類似性が高ければ条件一致時に実行される処理領域に対して低い実行頻度を割当てる処理、
関数の呼出し列中に含まれる例外処理の数を計測し、前記例外処理の数に反比例する実行頻度を個々の前記関数に割当てる処理、
特定の前記関数に対するユーザからの重み定義を受け付け、前記重み定義も用いて実行頻度を個々の前記関数に割当てる処理、
の少なくとも一つを行うことを特徴とするソースコード問題予測プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005380256A JP4914609B2 (ja) | 2005-12-28 | 2005-12-28 | ソースコード問題予測プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005380256A JP4914609B2 (ja) | 2005-12-28 | 2005-12-28 | ソースコード問題予測プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007179488A JP2007179488A (ja) | 2007-07-12 |
JP4914609B2 true JP4914609B2 (ja) | 2012-04-11 |
Family
ID=38304579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005380256A Expired - Fee Related JP4914609B2 (ja) | 2005-12-28 | 2005-12-28 | ソースコード問題予測プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4914609B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107357733A (zh) * | 2017-07-17 | 2017-11-17 | 万帮充电设备有限公司 | 提高代码质量的方法及装置 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5073767B2 (ja) * | 2010-02-10 | 2012-11-14 | 株式会社エクサ | Cobolソースコードチェックプログラム、cobolソースコードチェックシステム |
JP5572619B2 (ja) * | 2011-12-02 | 2014-08-13 | 株式会社日立製作所 | トレース情報の数を算出する計算機、トレース情報の数を算出する方法及びトレース情報の数を算出させるプログラム |
US9542176B2 (en) * | 2012-08-20 | 2017-01-10 | Microsoft Technology Licensing, Llc | Predicting software build errors |
CN105320591B (zh) * | 2014-07-25 | 2019-08-27 | 腾讯科技(深圳)有限公司 | 代码检测方法及装置 |
CN106293676B (zh) * | 2015-06-08 | 2019-05-10 | 东元电机股份有限公司 | 产生整体检测程序的方法及系统 |
JP6512032B2 (ja) * | 2015-08-21 | 2019-05-15 | 富士通株式会社 | スタブ化対象判定装置、方法、及びプログラム |
JP6548836B2 (ja) | 2016-11-22 | 2019-07-24 | 三菱電機株式会社 | 情報処理装置、情報処理方法及び情報処理プログラム |
JP7068752B2 (ja) * | 2018-03-22 | 2022-05-17 | 三菱電機株式会社 | ソースコード解析装置およびソースコード解析プログラム |
US11281566B2 (en) | 2018-07-23 | 2022-03-22 | Mitsubishi Electric Corporation | Scoring device, computer readable medium, and scoring method |
CN111611153B (zh) * | 2019-02-26 | 2023-05-16 | 阿里巴巴集团控股有限公司 | 一种用户界面过度绘制的检测方法和装置 |
KR102245386B1 (ko) * | 2019-07-16 | 2021-04-27 | 서울과학기술대학교 산학협력단 | 사회연결망과 자료포락을 이용한 소프트웨어 함수 분석 시스템 및 그 방법 |
CN114328168B (zh) * | 2020-10-09 | 2024-07-02 | 腾讯科技(深圳)有限公司 | 异常检测方法、装置、计算机设备和存储介质 |
KR102295868B1 (ko) * | 2021-02-01 | 2021-09-01 | (주)제스아이앤씨 | 네트워크 장애예측 시스템 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09282173A (ja) * | 1996-04-10 | 1997-10-31 | Hitachi Ltd | プログラムの静的解析方法 |
JP2000330782A (ja) * | 1999-05-25 | 2000-11-30 | Nec Microcomputer Technology Ltd | ソースへのヒント記述による静的性能解析装置および方法 |
JP2001273169A (ja) * | 2000-03-24 | 2001-10-05 | Toshiba Corp | プログラムテスト仕様書生成装置 |
JP3961787B2 (ja) * | 2000-06-12 | 2007-08-22 | 富士通株式会社 | オブジェクト指向プログラム性能改善支援装置、記録媒体及びプログラム |
JP2004086319A (ja) * | 2002-08-23 | 2004-03-18 | Hitachi Information Systems Ltd | ソフトウェアの品質評価方法及び品質評価システム |
-
2005
- 2005-12-28 JP JP2005380256A patent/JP4914609B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107357733A (zh) * | 2017-07-17 | 2017-11-17 | 万帮充电设备有限公司 | 提高代码质量的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2007179488A (ja) | 2007-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4914609B2 (ja) | ソースコード問題予測プログラム | |
US7975256B2 (en) | Optimizing application performance through data mining | |
Hölzle et al. | Reconciling responsiveness with performance in pure object-oriented languages | |
US6205555B1 (en) | Processor power consumption estimating system, processor power consumption estimating method, and storage medium storing program for executing the processor power consumption estimating method | |
US7707386B2 (en) | Program segment searching for extension instruction determination to design a processor that meets performance goal | |
US8627287B2 (en) | Prioritizing quality improvements to source code | |
US6658643B1 (en) | Method and apparatus for computer software analysis | |
CN110287702B (zh) | 一种二进制漏洞克隆检测方法及装置 | |
Sandoval Alcocer et al. | Learning from source code history to identify performance failures | |
US8881116B2 (en) | Identifying and triaging software bugs through backward propagation of under-approximated values and empiric techniques | |
US8839210B2 (en) | Program performance analysis apparatus | |
CN111104335B (zh) | 一种基于多层次分析的c语言缺陷检测方法及装置 | |
US20140359566A1 (en) | Resolution of textual code in a graphical hierarchical model of a technical computing environment | |
US8387001B2 (en) | Method for finding an impact on a computer generated code | |
US20110271250A1 (en) | Software Development Tool | |
US20150378724A1 (en) | Identifying code that exhibits ideal logging behavior | |
EP3835944A1 (en) | Apparatus and method for source code optimisation | |
US8065565B2 (en) | Statistical debugging using paths and adaptive profiling | |
US8898649B2 (en) | Application program analysis method, analysis system and recording medium for identifying a contributing factor for an invalid operation of an application program | |
CN116406459A (zh) | 一种代码处理方法、装置、设备及介质 | |
US10839124B1 (en) | Interactive compilation of software to a hardware language to satisfy formal verification constraints | |
Nguyen et al. | Recommending exception handling code | |
Park et al. | A survey of parametric static analysis | |
US7647581B2 (en) | Evaluating java objects across different virtual machine vendors | |
CN108415836B (zh) | 利用应用程序检测计算机系统性能变化的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080911 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110531 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111025 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111220 |
|
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: 20120117 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120123 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150127 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |