スライド 1

プログラム解析技術の
理解支援への応用に関する研究
大学院基礎工学研究科
情報数理系専攻ソフトウェア科学分野
井上研究室
横森 励士
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