プログラム解析技術の 理解支援への応用に関する研究 大学院基礎工学研究科 情報数理系専攻ソフトウェア科学分野 井上研究室 横森 励士 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 2 プログラム解析 プログラム解析とは プログラム内の関係や性質を グラフ化 数値化(記号化) することにより抽象化し,抽象化した情報を利用して目 的に応じた解析を行うこと 開発者にとって必要な「プログラムの特徴」の みの抽出が容易となり,作業支援に役立つ Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 3 プログラムのグラフ化 プログラム解析におけるグラフ化とは 解析対象内の個々の要素間の関係を抽出し,抽象 Class A{ A ………} 化して表現すること Class B extends A{ ………} グラフ化の例 Class C extend B{ – 手続き,メソッドなどの呼び出し関係のグラフ化 ………} Class D extend B{ – クラス階層構造のグラフ化 ………} – プログラム依存グラフの構築 B C D 必要な関係だけを抽出 利用目的に応じて解析技術が提案されている 自動生成 対象の限定 検証 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 4 プログラムの数値化(記号化) プログラム解析における数値化(記号化)とは 解析対象における個々の要素を抽象化し,性質を取り出す 解析対象における個々の要素を列挙し,全体の性質を表現 する 数値化(記号化)の例 – クラス数,メソッド数,LOCなどのメトリクスの抽出 – トークンの記号化 グラフ化した情報を利用することもある Class A{ A ………} 利用目的に応じて解析技術が提案されている 総クラス数:4 Class B extends A{ クラス階層の深さ:3 プログラムの品質・再利用性評価B ………} 子の数の和:5 Class C extend B{ コピー(クローン)の把握 : ………} クラスタリング(分類) Class D extend B{ : C D ………} :性質を取り出す Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 5 研究の対象とその目的 研究の対象 プログラム内の関係のグラフ化を利用した解析 情報漏洩解析 影響波及解析 プログラムの性質の数値化 ソフトウェア部品の再利用性評価手法 研究の目的 プログラム理解支援への利用を考慮した手法の提案 構築したシステムの評価 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 6 論文の構成 第1章. まえがき 第2章.プログラムスライシングを利用した情報漏洩 解析手法の提案と実現 [1-a-1] 第3章.オブジェクト指向プログラムの変更作業を支 援する影響波及解析システム [1-a-2] 第4章.利用実績に基づくソフトウェア部品重要度評 価システム [1-a-3] 第5章.動的情報を利用したソフトウェア部品評価 手法の提案と評価 [1-a-4] 第6章. あとがき Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 7 プログラムスライシングを利用した 情報漏洩解析手法の提案と実現 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 8 情報漏洩解析 プログラムに入力される機密度の高い情報が,プログラ ムの実行を通してどのように処理・出力されるかを解析 与えられたセキュリティポリシーを満たさない文を検出する[1] プログラムの検証が目的 各出力文で出力されうるデータの機密度を情報フローを用い て解析[2] 検証だけではなく,「機密性の高い情報が,どの部分に出力されるの かを把握したい」などの場合に,プログラム理解支援にも利用できる [1]J.Bantre, C.Bryce and D.Le Metayer: ``Compile-Time Detection of Information Flow in Sequential Programs'', Proc.3rd ESORICS, LNCS 875, pp. 55--73, 1994. [2] 國信茂太, 高田喜朗, 関 浩之, 井上克郎: "束構造をもつセキュリティクラスに基づく再帰的プログラムに対 する情報フロー解析法", 電子情報通信学会論文誌D-I, Vol.J85-D-I, No.10, pp.961-973, 2002 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 9 セキュリティクラス(SC) データの持つ機密度や利用者のアクセス権限をセキュ リティクラスとよぶ 各SCを元とする束を用いて表される 一意な最大元、最小元が存在 任意の2元の最小上界,最大下界が 定義されている SCを用いて表されるモデル high(最大元) 高 3 1 SCを利用したアクセス制御 全てのデータに対してセキュリティクラスを設定 全ての利用者にアクセス権限を設定 2 0 low(最小元) 低 利用者は,自分の持つアクセス権限以下の セキュリティクラスを持つデータを参照可能 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 10 情報フローとは プログラム中の変数間に存在するデータ授受関係 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 情報フローを用いた解析の例 a (SC:1) のデータと b (SC:2) のデータが 3行目のc の値の決定に利用される 3 1 2 0 セキュリティモデル 代入後の c のデータを参照できるのは、a 、b 両方のデータを参照できる利用者であるべき 1: readln(a); 2: readln(b); 3: c = a + b; explicit flow 代入後の c のSCは a と b のSCの最小上界 として求められる(この場合SC 3) Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 12 情報漏洩解析の問題点 情報フローを用いた情報漏洩解析に関しては, 手法の提案および健全性の証明のみで,実現が なされていない 情報漏洩解析手法の実現が必要 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 13 情報漏洩解析の実現 プログラム依存グラフ(PDG)を利用した情報漏 洩解析手法 PDGの辺と情報フローの類似性に着目 2種類の実現手法 PDG構築ルーチンを流用して解析を行う手法 [1-a-1] – データフロー方程式に基いた,繰り返し計算による解析 PDGを利用して解析を行う手法 – プログラムスライスにおけるPDG探索ルールに基づいた解析 » PDGの利用による汎用性の向上 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 14 プログラム依存グラフ (Program Dependence Graph, PDG) プログラムの各文を頂点、文 間に存在する依存関係を有向 辺としたグラフ プログラムの文間の依存関係 データ依存関係 1: a=5; 2: b=3; 3: if (b>0) { 4: c=a; 5: }else{ 6: d=b; データ依存関係 7: } 制御依存関係 変数の定義~参照 制御依存関係 条件節~述部 PDG 情報フローとPDGが示す依存 1 関係には等価性がある 2 3 4 6 explicit flowとデータ依存関係, データ依存辺 implicit flowと制御依存関係を 制御依存辺 対応させる Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 15 PDGを利用した解析手法の利点 スライシング手法およびPDGを構築する手法は様々な言語にお いて提案されている 言語の違いを考慮して,PDGが構築されているため,スライスの計算時に は,グラフ上の辺をたどり到達可能な節点を求めるだけでよい 情報漏洩解析の実現においては プログラムスライスにおけるPDGをそのまま利用 辺をたどる際にプログラムスライスにおける探索手法を利用 情報漏洩解析手法の他言語への移植が容易に Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 16 PDGを利用した情報漏洩解析の実現 PDG 起点 起点 PDGを構築 SCの初期化 セキュリティモデルの読み込み 各入力文に対応する頂点に対 しSCの初期値を与える 各入力文を起点としてPDG を探索し、各頂点のSCを求 める 起点 入力文 すでに高いSCが与えられてい る頂点への辺はたどらない 探索が合流する頂点ではSC の最小上界をとる その他の文 データ依存辺 制御依存辺 セキュリティモデル 結果を出力 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 17 SC制約機能の追加 関数の戻り値データに対するSC制約機能を付加 情報漏洩解析の問題点 情報を隠蔽可能な暗号化通信路の存在や、情報の復元や類推が不 可能な状況は考慮されていない 現実的には問題がないデータのSCが過度に高くなってしまう場合があ る ユーザが「重要な情報の復元・類推が不可能である」と判断で きる関数の戻り値データに対し、そのSCをユーザが指定でき る 関数の戻り値は,ユーザが把握しやすい 現実的な情報漏洩解析を可能に Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 18 情報漏洩解析システムの実現(1/2) 既存のスライス抽出システム(Osaka Slicing System)に機能追加の形で実現 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 19 評価:成績管理システムへの適用(1/4) 事例: 学生の成績管理システム(約400行) main関数 入力 認証番号 利用者が可能な処理を実行 学生 ・入力によりユーザを識別 ・ユーザの種類を 戻り値として返す return 認証関数の戻り値を条件式として分岐 教養事務 認証関数 専門事務 教養事務の処理関数 学生の処理関数 専門事務の処理関数 ・全学生の教養科目の 成績の更新 ・自身の両科目の 成績の参照 ・全学生の専門科目の 成績の更新 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 20 評価:成績管理システムへの適用(2/4) 成績管理システム上でのセキュリティモデル 6 4 3 5 ユーザおよびそのアクセス権限 学生 :4 教養事務 : 3 専門事務 : 5 システム管理者: 6 主なデータ 1 2 0 セキュリティモデル 教養科目の成績 専門科目の成績 教養科目の事務の認証番号 学生の認証番号 専門科目の事務の認証番号 データのSC 1 2 3 4 5 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 21 評価:成績管理システムへの適用(3/4) SCが高い出力文が非常に多い 一つの認証関数で,3種類あるユーザ の種類を一度に判定する 認証関数の戻り値のSCが 教養科目の事務の認証番号 学生の認証番号 専門科目の事務の認証番号 の最小上界をとる 3 0 1 認証関数の戻り値を隠蔽した場合 を想定し,戻り値のSCをlowとして 設定 6 26 4 1 5 2 0 0 1 0 5 各SCの右下の数字: 結果そのSCとなった出力文の数 セキュリティモデル Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 22 評価:成績管理システムへの適用(4/4) 戻り値のSCをlowとして設定したとこ ろ,ほとんどの文のSCが0となった 各ユーザに対応した処理内で,データを 出力する部分のみが高くなった 認証の結果を隠蔽すれば,情報漏洩の危 険性は微々たるものに 6 SCを制約する機能を組み込む事で, 現実的な情報漏洩解析が可能となる 隠蔽すべきデータを判断する基準を与え る 3 4 0 1 0 5 1 2 2 0 1 2 27 各SCの右下の数字: 結果そのSCとなった出力文の数 セキュリティモデル Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 23 まとめ 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 背景 ソフトウェア開発効率を向上するための手法として、 再利用が注目されている 再利用とは既存のソフトウェア部品を同一システム内、他 のシステム内で用いること 開発者が再利用を行う単位をソフトウェア部品と呼ぶ 部品の例: ソースコード,ドキュメント, ソフトウェア… 部品が再利用に適しているか判断するために、再 利用性を定量的に示すことが必要 過去に開発した大量のソフトウェア部品から再利用しや すい部品を見つけるのに役立つ ソフトウェア部品に対する理解支援 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 26 従来の再利用性評価手法 従来の再利用性評価手法は、部品単体の特性から評 価している コードメトリクスを足し合わせて再利用性を評価[1] インターフェース部分の情報から再利用性を評価[2] 部品単体の特性からは再利用性が低いと評価されていて も、実際には頻繁に再利用されている部品も存在する 利用実績に基づいた定量的な評価手法が必要 [1] L. Etzkorn et al.: ``Automated reusability quality analysis of OO legacy software,'' Information and Software Technology, Vol. 43, Issue 5, pp. 295-308 (2001). [2]山本 他: ``再利用特性に基づくコンポーネントメトリクスの提案と検証," FOSE2001, (2001). Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 27 研究の目的 利用実績に基づくソフトウェア部品評価手法 (Component Rank法)の提案 部品間の利用関係から利用実績を定量的に評価 提案手法による部品評価システムを実装 Javaソースコードに対して適用実験を行う 提案手法が利用実績を反映しているか Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 28 Component Rank法 利用関係から部品の利用実績(Component Rank)を評価する手法 開発者による部品の参照行為をモデル化 よく利用されている部品や重要な部品から利用されて いる部品の評価が高くなる 利用実績の定量的な評価が期待できる 計算手順 1. 部品間の利用関係をグラフとして表現 2. 利用関係に重みをつけ,各部品の利用実績を繰り返し 計算により求める Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 29 部品グラフの生成 部品間の利用関係を部品グラフ化して表現 頂点:ソフトウェア部品 有向辺:利用関係 利用する側からされる側に有向辺を引く c4 c5 c1 c1 ' c2 c2 ' c3 (a) 部品間の関係 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 30 部品群グラフの生成(1) 実際に部品を抽出した場合、コピーした部品やコ ピーして一部変更した部品が多く存在する コピーされたと判断できる部品は一緒の部品群とみ なす c4 c5 cC44 c1 c1 ' c1 c2 c2 ' c3 c2 C2 cC55 c1 ' C1 c2 ' C3 c3 (a) 部品間の関係 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 31 部品群グラフの生成(2) 所属する部品同士に利用関係があれば、部品 群間にも利用関係がある 部品グラフから部品群グラフを生成 c4 c5 c1 c1 ' c2 c2 ' (a) 部品間の関係 C4 C5 C1 c3 C2 C3 (b) 部品群間の関係 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 32 利用実績の計算 利用関係から部品のComponent Rankを求める 部品群グラフの利用 計算手順 C1 0.334 0.333 0.500 0.400 2. 各有向辺の重みを求める 0.1665 0.333 0.167 0.200 v0.1665 0.167 0.200 1×50% 1. 各頂点に適当な重みを与える 頂点の重みの総和は1 C2 v0.1665 0.167 0.200 1×50% v30.400 ×100% 0.333 0.500 頂点の重みを,その頂点から出ていく辺で分配する 3. 各頂点の重みを再計算 v20.200 ×100% 0.333 0.167 C3 0.3335 0.333 0.500 0.400 頂点に入ってくる辺の重みの総和を,その頂点の重みとして再定義する 4. 頂点の重みが収束するまで,2.3.を繰り返し計算する 5. 収束した頂点の重みを,その頂点に対応する部品群の評価値として求める – 部品の評価値は属する部品群の評価値とする – 評価値に基づいて順位付けした部品の順位をComponent Rankとする Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 33 Java部品評価システムの実現 Java ソースコード (N個) 類似度判定部 SMMT (SMMT) ソースコード間で ソースコードファイルを 部品として入力 ファイル間の関係 抽出部 部品間の利用関係: インターフェイスの実装 メソッド呼出,継承 一致する行の割合 クラスタリングによる 部品群化部 部品群間の関係 抽出部 ファイル順位決定部 繰り返し計算部 N個のファイルの順位 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 34 適用実験 実現したシステムをもとに,Javaソースコードに 対して適用実験を行う 提案手法が利用実績を反映しているか 適用対象 JDK1.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.4MB) 言語仕様上、直接的、間接的に利用しなければなら ないクラスが上位を占めている 順位 1 2 3 4 5 6 7 8 9 10 クラス名 java.lang.Object java.lang.Class java.lang.Throwable java.lang.Exception java.io.IOException java.lang.StringBuffer java.lang.SecurityManager java.io.InputStream java.lang.reflect.Field java.lang.reflect.Constructor 評価値 0.161269 0.087124 0.055101 0.031032 0.013438 0.012144 0.011700 0.010277 0.009483 0.009370 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 36 研究室内ソースコードへの適用 研究室内で作成したツールと、使用したパッケージの ソースコードへ適用(582 files, 6.1MB) 同一部品群にある部品は同一評価値を持っている(2,8位) 作成ツールより使用パッケージの方が評価が高い 使用パッケージ内のクラスが1~8位(上位9クラス)を占める 作成ツール内のクラスは10位が最上位 順位 1 2 2 4 5 6 7 8 8 10 クラス名 antlr.Token antlr.debug.Event antlr.debug.NewLineEvent antlr.collections.impl.Vector jp.gr.java_conf.keisuken.text.html.HtmlParameter jp.gr.java_conf.keisuken.net.server.ServerProperties Jama.Matrix jp.gr.java_conf.keisuken.util.IntegerArray jp.gr.java_conf.keisuken.util.LongArray jp.ac.osaka_u.es.ics.iip_lab.metrics.parser.java.IdentifierInfo 評価値 0.107270 0.061890 0.061890 0.054348 0.052461 0.036995 0.015649 0.013907 0.013907 0.013654 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 37 ソフトウェア部品検索への応用 CR法による順位付けをソフトウェア部品検索へ応用 インターネットを通じてソフトウェア部品を収集 あらかじめ,CR法で部品を順位付け 検索エンジンを通じて検索 検索結果をCR法による順位をもとに表示 CR-System インターネット 部品の収集 部品リポジトリ 順位付け 開発者は利用実績の高い部品を 手軽に取得できる 部品検索 エンジン 検索キー 検索結果 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 38 まとめ 部品間の利用関係から利用実績を評価する手 法(CR法)を提案した 提案する手法に基づいて利用実績の評価を行う システムを開発し、Javaソースコードを対象に適 用した 適用結果から、提案する評価手法が利用実績を反 映していることが示された Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 39 むすび プログラム理解支援を目的とした,プログラム解 析技術の応用化手法を提案した プログラムスライシングを利用した情報漏洩解析手 法 利用実績に基づくソフトウェア部品重要度評価手法 の提案 提案手法それぞれにおいて適用事例を示す事 で,有効性を確認した プログラムの保守工程や,テストにおいて利用するこ とで,ソフトウェア開発における生産性の向上が期待 できる Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 40 今後の研究方針 大規模なプログラムへの適用 情報漏洩解析 他言語への実装 大規模プログラムを想定した視覚化手法の利用 CR法 大量の部品に対するCR法の適用 保守工程やテスト工程における利用を想定した手法の 評価 CR法の評価 CR法と既存の再利用性評価手法との比較 部品検索システムSPARSにおける,CR法による順位付けの 評価 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 41 終 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 42 評価値の計算例 相対的再利用性評価値を求める計算は行列の 固有ベクトルを求める計算に帰着される C1 50% C1 50% 0.200 v1 0.400 100% 0.400 0.200 C3 v3 C3 0.400 C2 v2 C2 0.200 100% v1 V v2 v 3 0 0 1 D 0 .5 0 0 0 .5 1 0 V = D・V λ=1(絶対値最大)の固有ベクトル 0.200 0 .4 0 0 1 0 .4 0 .2 0 .5 0 0 0 .2 0 .4 0 .5 1 0 0 .4 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 43 評価値計算の補正 利用関係を投票とみなして,票の重みの偏りを分析す ることで相対的再利用性を評価している 票が全体に循環せず正しく評価できない場合がある 利用してない部品に対しても非常に低い重みの票を投票したとみなす この部品の評価値が0となり, この部品からの利用関係を 部品の利用関係を反映出来ない 評価値に反映 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 44 ソフトウェア部品検索への利用 利用実績に基づくソフトウェア部品検索システム 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 検索への適用例 XMLを利用しているアプリケーション群 (7171 ファイル)に対する検索 getNodetype というクエリーで検索 DOMツリーにおいてノードの種類を得るためのメソッド Grep を用いて検出できたクラス中で,コメントのみにgetNodetypeと いう単語が現れるクラスを削除 検索の結果128クラスを検出 Component Rank でソート Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 46 検索の結果 getNodetypeの定義に関するクラスが上位に (1位,2位) 定義クラスはこの二つのみ 一般的な利用例が上位に ノードの操作(3~5位,10位) スタイルシートなどのXML文書の解析(6~9位) 順位 1 2 3 4 5 6 7 8 9 10 クラス名(一部省略) 値 enhydra3.1..dom.Node 2.91E-02 saxon7_0..saxon.om.NodeInfo 9.69E-04 saxon7_0..saxon.pattern.NodeTest 4.37E-04 表示順位の決定にCR法を用いることで enhydra3.1..dom.DocumentImpl 3.68E-04 saxon7_0..saxon.pattern.Pattern 3.24E-04 • 大量の部品の中からでも部品定義に関する saxon7_0..saxon.Controller 2.96E-04 情報を取得しやすくなる enhydra3.1..xslt.XSLTEngineImpl 2.41E-04 • 利用方法を知りたい場合にも,一般的な利 enhydra3.1..dom.ElementImpl 2.35E-04 saxon7_0..saxon.style.StyleElement 用方法から参照できるようになる2.02E-04 saxon7_0..saxon.tree.NodeImpl 1.98E-04 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 47 一般的なセキュリティモデルへの対応 束上の任意の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 2 3 4 5 3 3 3 3 3 5 5 4 4 5 4 5 4 5 5 5 5 5 5 5 5 Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 48
© Copyright 2024 ExpyDoc