Java 2000 Software Engineering Research Group Graduate School
- Slides: 22
静的情報と動的情報を用いた Javaプログラムスライス計算法 広瀬 航也 井上研究室 2000年度修士論文発表会 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University
プログラムスライス ある文のある変数(スライス基準)の値に 影響を与えうる文の集合 1: 2: 3: 4: 5: 6: 7: scanf("%d", &a); scanf("%d", &b); max = a; min = b; if ( a < b) { max = b; min = a; } 8: printf("%d", max); maxの値が誤っている maxをスライス基準に指定 maxに関係ある部分を抽出 10/19/2021 4 2000年度修士論文発表会 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University
Dependence Cache(DC)スライス† データ依存関係解析: 動的 制御依存関係解析: 静的 配列の各要素を区別 ポインタの指す記憶域を区別 解析コストの増加を抑えることができる † Ashida Y. , Ohata F. and Inoue K. : "Slicing Methods Using Static and Dynamic Information'', Proceedings of the 6 th Asia Pacific Software Engineering Conference (APSEC'99) , pp. 344 -350, December 1999. 10/19/2021 7 2000年度修士論文発表会 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University
DD解析の適用例 P P P int 1: 2: 3: 4: 5: 6: 7: 8: 9: a; b; c; d; Cache a. Cache; = Cache b. Cache; = Cache c. Cache; = Cache d. Cache; = a = new P(); b = new P(); c = new Q(); a. data = 10; b. data = 20; c. data = 30; d = a. data + c. data; System. out. print(d); System. out. print(b. data); 1 2 3 7 data = 10 data. Cache =4 data = 20 data. Cache =5 class P int data; Cache data. Cache; class Q extends P data = 30 data. Cache =6 10/19/2021 13 2000年度修士論文発表会 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University
メソッド間CD解析の適用例 int a; Cache a. Cache; P b; Cache b. Cache; 1: 2: 3: 4: 5: 6: 7: a = read(); if (a > 0) b = new P(); else b = new Q(); b. data = 10; a = b. calc(); class P int data; Cache data. Cache; int calc() { return data*2; } class Q extends P int calc() { return data/2; } 10/19/2021 15 2000年度修士論文発表会 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University
評価 CGIプログラム 2クラス, 223行 スライスサイズ [行(全体に対する割合)] 静的スライス 本手法 動的スライス基準 1 26 (11. 7%) 15 ( 6. 7%) スライス基準 2 83 (37. 2%) 27 (12. 1%) スライス基準 3 37 (16. 6%) 24 (10. 8%) 実行時間 [ms] 通常実行 解析付実行 138 582 消費メモリ [Kbyte] 通常実行 解析付実行 478 645 (Celeron 500 MHz, 128 MB, Windows 98, Java 1. 3. 0_01) 10/19/2021 17 2000年度修士論文発表会 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University
GUIプログラムへの適用 class Draw. Panel extends Panel implements Mouse. Listener, Mouse. Motion. Listener { add. Mouse. Motion. Listener(this); add. Mouse. Listener(this); } void mouse. Dragged(Mouse. Event e) void mouse. Moved(Mouse. Event e) void mouse. Pressed(Mouse. Event e) void mouse. Released(Mouse. Event e) void mouse. Clicked(Mouse. Event e) class A{ data method() } class B{ data method() } class C{ data method() } class D{ data method() } class E{ data method() } 10/19/2021 19 2000年度修士論文発表会 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University
各スライス手法の比較 スライスサイズ (行) DC 15. 0 15. 7 61 P 2 P 3 静的 20. 7 182 187 P 1 P 2 P 3 静的解析時間 DC 静的 14 4. 5 219 19 710 48 動的 4. 7 5. 3 7. 7 P 1: カレンダー表示 (88行) P 2: 酒屋問題 (387行) P 3: 拡張酒屋問題 (941行) (Celeron-450 MHz, 128 MB) (ms) 動的 N/A N/A P 1 P 2 P 3 実行時間 (ms) DC 静的 動的 52 55 184 46 49 4, 649 4, 869 5, 274 38, 969 10/19/2021 20 2000年度修士論文発表会 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University
静的解析コスト 実行時間 [ms] 静的解析 命令付加 コンパイル 合計 通常 (スライス無し) 6, 480 消費メモリ [Kbyte] 通常 372 本手法 3, 207 本手法 6, 100 540 6, 760 13, 400 ソース [行] 通常 223 本手法 1, 754 10/19/2021 21 2000年度修士論文発表会 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University
依存関係解析命令の付加 1 2 3 4 5 : : : int a = 10; int b = 20; int c; c = a + b; println(c); 変換 ある文である変数が 定義される(def): 文番号を保存 使用される(ref): 最後に定義され た文から依存辺を引く 0 : ini. PDG(); 1’: def(a, 1); 1 : int a = 10; 2’: def(b, 2); 2 : int b = 20; 3’: def(c, 3); 3 : int c; 4’: ref(a, 4); 4’: ref(b, 4); 4’: def(c, 4); 4 : c = a + b; 5’: ref(c, 5); 5 : println(c); 10/19/2021 22 2000年度修士論文発表会 Software Engineering Research Group, Graduate School of Engineering Science, Osaka University
- Oussep
- Graduate institute of electronics engineering
- Graduate institute of electronics engineering
- Graduate institute of electronics engineering
- Graduate institute of electronics engineering
- Graduate institute of electronics engineering
- Computer based system engineering in software engineering
- Forward engineering and reverse engineering
- Software maintenance in software engineering ppt
- Who invented software engineering
- What is software metrics in software engineering
- Software crisis in software engineering
- Software measurement and metrics
- Real time software design in software engineering
- Design principles in software engineering
- Lsu thesis database
- Sgs upm thesis unit
- Kupid portal
- Georgia requirements for high school graduation
- Jesus seminary
- Uaf
- University of florida graduate school
- Nau online graduate programs