Software Engineering Laboratory Department of Computer Science Graduate
プログラム解析技術の 理解支援への応用に関する研究 大学院基礎 学研究科 情報数理系専攻ソフトウェア科学分野 井上研究室 横森 励士 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1
プログラムスライシングを利用した 情報漏洩解析手法の提案と実現 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 8
情報フローとは プログラム中の変数間に存在するデータ授受関係 explicit flow : 変数の定義~参照間に存在 implicit flow : 分岐(繰り返し)命令の条件節と内部の文の間に存在 1: 2: 3: 4: 5: b : = 5; c : = 5; if ( c > 0 ) then begin a=b end; Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 11
情報漏洩解析の問題点 情報フローを用いた情報漏洩解析に関しては, 手法の提案および健全性の証明のみで,実現が なされていない 情報漏洩解析手法の実現が必要 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 13
情報漏洩解析システムの実現(1/2) 既存のスライス抽出システム(Osaka Slicing System)に機能追加の形で実現 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 19
まとめ PDGを利用した情報漏洩解析手法を提案し,実 現した 情報漏洩解析の効率化と、汎用性の向上 適用事例を紹介し,手法の有効性を確認 SC制約機能による現実的な利用度の向上 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 24
利用実績に基づくソフトウェア 部品重要度評価システム Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 25
部品グラフの生成 部品間の利用関係を部品グラフ化して表現 頂点:ソフトウェア部品 有向辺:利用関係 利用する側からされる側に有向辺を引く c 4 c 5 c 1' c 2' c 3 (a) 部品間の関係 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 30
部品群グラフの生成(1) 実際に部品を抽出した場合、コピーした部品やコ ピーして一部変更した部品が多く存在する コピーされたと判断できる部品は一緒の部品群とみ なす c 4 c 5 c. C 44 c 1' c 1 c 2' c 3 c 2 C 2 c. C 55 c 1' C 1 c 2' C 3 c 3 (a) 部品間の関係 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 31
部品群グラフの生成(2) 所属する部品同士に利用関係があれば、部品 群間にも利用関係がある 部品グラフから部品群グラフを生成 c 4 c 5 c 1' c 2' (a) 部品間の関係 C 4 C 5 C 1 c 3 C 2 C 3 (b) 部品群間の関係 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 32
適用実験 実現したシステムをもとに,Javaソースコードに 対して適用実験を行う 提案手法が利用実績を反映しているか 適用対象 JDK 1. 3. 0 研究室内で開発したソースコード Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 35
JDKへの適用 JDK (Java Development Kit) 1. 3. 0のソースコード へ適用(1877 files, 18. 4 MB) 言語仕様上、直接的、間接的に利用しなければなら ないクラスが上位を占めている Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 36
終 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 42
評価値の計算例 相対的再利用性評価値を求める計算は行列の固 有ベクトルを求める計算に帰着される C 1 50% 0. 200 v 1 0. 400 100% C 2 v 2 C 2 0. 200 100% 0. 200 0. 400 C 3 v 3 V = D・V λ=1(絶対値最大)の固有ベクトル 0. 200 C 3 0. 400 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 43
ソフトウェア部品検索への利用 利用実績に基づくソフトウェア部品検索システム SPARS(Software Product Archiving, analyzing and Retrieving System) 現在,Java を対象として,SPARS-J を構築中 公開されているJavaソースファイルを収集し,解析を行い, 解析情報を元に検索システムを構築 Component Rankを検索結果の表示順位に利用 利用実績の高い汎用的な部品を容易に検索可能 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 45
一般的なセキュリティモデルへの対応 束上の任意の 2元の最小上界を二次元行列で記述 二次元行列を参照することで、最小上界が求められる 一般的なセキュリティモデルへの対応 5 3 4 1 2 0 セキュリティモデル 0 1 2 3 4 5 0 0 1 2 3 4 5 1 1 1 3 3 5 5 2 2 3 4 5 3 3 3 5 5 4 4 5 4 5 5 5 5 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 48
- Slides: 48