JP6011988B2 - 影響範囲調査方法及び影響範囲調査装置 - Google Patents
影響範囲調査方法及び影響範囲調査装置 Download PDFInfo
- Publication number
- JP6011988B2 JP6011988B2 JP2015210674A JP2015210674A JP6011988B2 JP 6011988 B2 JP6011988 B2 JP 6011988B2 JP 2015210674 A JP2015210674 A JP 2015210674A JP 2015210674 A JP2015210674 A JP 2015210674A JP 6011988 B2 JP6011988 B2 JP 6011988B2
- Authority
- JP
- Japan
- Prior art keywords
- influence
- statement
- instruction
- command
- range
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title description 47
- 238000011835 investigation Methods 0.000 description 18
- 238000012545 processing Methods 0.000 description 9
- 230000015572 biosynthetic process Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000005574 cross-species transmission Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000009418 renovation Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Description
依存関係分析手段が、前記抽象構文木に含まれる命令文を検索し命令文同士の繋がりを分析することで、前記命令文の依存関係を生成する依存関係分析工程と、
影響波及分析手段が、影響元の命令文と影響先の命令文を特定した前記依存関係に基づいて、影響元の命令文から影響先の命令文を辿り、さらに当該影響先の命令文を影響元の命令文として他の命令文を影響先の命令文として辿ることを、抽象構文木内の命令文について基点から繰り返すことで、影響波及範囲を特定する影響範囲分析工程と、
を行う影響範囲調査方法を提供する。
前記抽象構文木に含まれる命令文を検索し命令文同士の繋がりを分析することで、前記命令文の依存関係を生成する依存関係分析手段と、
影響元の命令文から前記依存関係に基づいて影響先の命令文を特定し、当該影響先の命令文を影響元の命令文として前記依存関係に基づいて他の命令文を影響先の命令文として特定することを、抽象構文木内の命令文について基点から繰り返すことで、影響波及範囲を特定する影響範囲分析手段と、
を備えた影響範囲調査装置を提供する。
・抽出構文木分析
・命令文検索
・命令文繋がりの形成
・共有命令文の抽出
・命令文による依存関係
・グラフの形成
・影響範囲の設定
・影響範囲の特定
出力手段3は、
・依存関係の辿り
・設定された影響範囲
・特定された影響範囲
を出力し、画面表示装置7の画面8に表示する。
(1)構文解析に基づいて抽象構文木を形成し(S2)、(2)依存関係分析を行う(S3)。この分析結果により依存関係を形成し(S4)、影響の基点を基に、(3)影響波及分析を行う(S5)。この分析結果により影響波及結果を生成する(S6)。
〔UserInfoクラスの影響波及〕
1.nameプロパティは、getName()メソッドおよびsetName(String)メソッドで用いられている。
⇒UtilityクラスのmakeKey(Date, String)メソッドへ。
2.setName(String)メソッドでは、setName(String)メソッドの引数の値をnameプロパティに上書きするため、nameプロパティの変更に対する影響はなく、これ以上の波及はしない。
〔Utilityクラスの影響波及〕
1.userInfo.getName()の値に影響があるため、その値を用いた計算結果を格納するstring変数に影響が波及する。
2.string変数は、encryption.encrypt(String)メソッドに渡されるため、その計算結果であるencryptedString変数、およびencrypt(String)メソッドに影響が波及する
⇒Encryptionクラスのencrypt(String)メソッドへ。
3.encryptedString変数はmakeKey(Date, String)メソッドの戻り値となるため、makeKey(Date, String)メソッドの呼出元へ影響が波及する。
⇒Logicクラスのlogic()メソッドへ。
〔Encryptionクラスの影響波及〕
1.encrypt(String)メソッドのstring引数に影響があるため、その値を用いた命令文「process(string)」の引数に影響がある。
2.process(String)メソッドの引数のstring変数に影響があるため、その値を用いている「return string」命令文に影響がある。return文に影響があるため、process(String)メソッドの戻り値に影響するため、process(String)メソッドの呼出元に影響が波及する。
⇒Encryptionクラスのencrypt(String)メソッド(3)へ。
3.encryptedString変数をreturn文で返却しているため、encrypt(String)メソッドの呼出元に影響が波及する。
⇒UtilityクラスのmakeKey(Date, String)メソッドへ。
〔Logicクラスの影響波及〕
UtilityクラスのmakeKey(Date, String)の戻り値に影響があるため、その値をセットしているkey変数に影響がある。
key変数はその後に用いられていないため、ここで影響波及は終了となる。
・命令文同士の依存関係を分析できる
・処理の流れを分析できる
という特徴を得ることができる。これにより、影響する命令文を辿ることができ、例えば「呼出関係」を中心とした影響波及調査の問題を解決できる。そして、図6、図7に示すように、影響の終着点を機械的に判断することができる。スパゲティコードのような場合にあっても必要な命令文関係を抽出することができる。
Claims (2)
- 構文解析手段が、ソースコードの命令文の意味を解析して抽象構文木を生成する構文解析工程と、
依存関係分析手段が、前記抽象構文木に含まれる命令文を検索し命令文同士の繋がりを分析することで、前記命令文の依存関係を生成する依存関係分析工程と、
影響波及分析手段が、影響元の命令文と影響先の命令文を特定した前記依存関係に基づいて、影響元の命令文から影響先の命令文を辿り、さらに当該影響先の命令文を影響元の命令文として他の命令文を影響先の命令文として辿ることを、抽象構文木内の命令文について基点から繰り返すことで、影響波及範囲を特定する影響範囲分析工程と、
を行う影響範囲調査方法。 - ソースコードの文法を解析して抽象構文木を生成する構文解析手段と、
前記抽象構文木に含まれる命令文を検索し命令文同士の繋がりを分析することで、前記命令文の依存関係を生成する依存関係分析手段と、
影響元の命令文から前記依存関係に基づいて影響先の命令文を特定し、当該影響先の命令文を影響元の命令文として前記依存関係に基づいて他の命令文を影響先の命令文として特定することを、抽象構文木内の命令文について基点から繰り返すことで、影響波及範囲を特定する影響範囲分析手段と、
を備えた影響範囲調査装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015210674A JP6011988B2 (ja) | 2015-10-27 | 2015-10-27 | 影響範囲調査方法及び影響範囲調査装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015210674A JP6011988B2 (ja) | 2015-10-27 | 2015-10-27 | 影響範囲調査方法及び影響範囲調査装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011077018A Division JP2012212281A (ja) | 2011-03-31 | 2011-03-31 | プログラムの影響範囲設定装置、並びにこれを用いた影響範囲特定方法及び影響波及のあるプログラムの抽出方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016015175A JP2016015175A (ja) | 2016-01-28 |
JP6011988B2 true JP6011988B2 (ja) | 2016-10-25 |
Family
ID=55231248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015210674A Active JP6011988B2 (ja) | 2015-10-27 | 2015-10-27 | 影響範囲調査方法及び影響範囲調査装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6011988B2 (ja) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08328904A (ja) * | 1995-03-31 | 1996-12-13 | Hitachi Software Eng Co Ltd | プログラム開発支援装置 |
JPH09101880A (ja) * | 1995-10-04 | 1997-04-15 | Fujitsu Ltd | プログラム分析装置 |
JP2008191963A (ja) * | 2007-02-06 | 2008-08-21 | Nec Corp | ソースコード検証システム、ソースコード検証方法、およびソースコード検証用プログラム |
-
2015
- 2015-10-27 JP JP2015210674A patent/JP6011988B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2016015175A (ja) | 2016-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200293293A1 (en) | Pruning Engine | |
US9389849B2 (en) | Test case pattern matching | |
US20130179863A1 (en) | Bug variant detection using program analysis and pattern identification | |
Svajlenko et al. | Fast and flexible large-scale clone detection with CloneWorks. | |
US9569177B2 (en) | Service extraction and application composition | |
US11775414B2 (en) | Automated bug fixing using deep learning | |
Androutsopoulos et al. | State-based model slicing: A survey | |
Nguyen et al. | Cross-language program slicing for dynamic web applications | |
US9311058B2 (en) | Jabba language | |
CN110059006B (zh) | 代码审计方法及装置 | |
Solanki et al. | Comparative study of software clone detection techniques | |
Rahimian et al. | RESource: a framework for online matching of assembly with open source code | |
KR101583932B1 (ko) | 프로그램의 시그니처를 생성하는 시그니처 생성 장치 및 방법, 시그니처의 악성 코드를 검출하는 악성 코드 검출 장치 및 방법 | |
WO2012133606A1 (ja) | プログラムの影響範囲設定装置、並びにこれを用いた影響範囲特定方法及び影響波及のあるプログラムの抽出方法 | |
Anderson et al. | Supporting analysis of SQL queries in PHP AiR | |
JP6011988B2 (ja) | 影響範囲調査方法及び影響範囲調査装置 | |
Pirapuraj et al. | Analyzing source code identifiers for code reuse using NLP techniques and WordNet | |
US8819645B2 (en) | Application analysis device | |
JP6502044B2 (ja) | データ解析装置、データ解析方法、および、プログラム。 | |
Ali et al. | An enhanced generic pipeline model for code clone detection | |
Mubarak-Ali et al. | Enhancing Generic Pipeline Model for Code Clone Detection using Divide and Conquer Approach. | |
Grigorev et al. | String-embedded language support in integrated development environment | |
WO2018116522A1 (ja) | 判定装置、判定方法及び判定プログラム | |
JP2015035174A (ja) | 制御プログラム分割装置、制御プログラム分割方法及びその記録媒体 | |
Farah et al. | Analysis of intercrossed open-source software repositories data in GitHub |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20151118 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160817 |
|
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: 20160823 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160909 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6011988 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |