...

Title 協調動作するオブジェクト群に着目したJavaプログラム の実行履歴

by user

on
Category: Documents
55

views

Report

Comments

Transcript

Title 協調動作するオブジェクト群に着目したJavaプログラム の実行履歴
Title
協調動作するオブジェクト群に着目したJavaプログラム
の実行履歴分割手法の提案
Author(s)
大平, 直宏; 谷口, 考治; 石尾, 隆; 神谷, 年洋; 楠本, 真二; 井
上, 克郎
Citation
Issue Date
電子情報通信学会総合大会講演論文集. 2005(1) P.25-P.25
2005-03-07
Text Version publisher
URL
http://hdl.handle.net/11094/51100
DOI
Rights
copyright©2005 IEICE
Osaka University
2005年 電 子 情 報 通 信 学 会 総 合 大 会
0
35
但
協調動作するオブジェクト群に着目した
J
a
v
aプログラムの実行履歴分割手法の提案
D
i
v
i
s
i
o
nofJ
a
v
aE
x
e
c
u
t
i
o
nT
r
a
c
eBasedonC
o
l
l
a
b
o
r
a
t
i
o
nofO
b
j
e
c
t
s
大平直宏↑
谷口考 r~t
石 尾 隆f
神谷年洋I
橋本真二T
井上克郎T
tK
tT
tT
tS
N
a
o
h
i
r
oO
h
i
r
a
o
j
iT
a
r
註g
u
c
h
i
a
k
a
s
h
iI
s
h
i
o
o
s
h
i
h
i
r
oKam
i
y
a
h
i
n
j
iKusumotot K
a
t
s
u
r
oI
n
o
u
e
↑
?大阪大学大学院情報科学研究科
t
O
r
a
d
u
a
t
eS
c
h
o
o
lof
I
n
f
o
r
m
a
t
i
o
nS
c
i
e
n
c
ea
n
dT
e
c
h
n
o
l
o
g
y,
OsakaU
n
i
v
e
r
s
i
t
y
t
科学技術後輿機構さきがけ
t
p
r
e
s
t
o,
J
a
p
a
nS
c
i
e
n
c
ea
n
dT
e
c
h
n
o
l
o
g
yAgency
1.まえがき
-・ァタタ〈オブジェタト)
我々は, J
a
v
aプログラムの振る舞い理解を支援するため
に,実行プログラムのメソッド呼び出し旗涯を取得し,こ
の実行履歴を基にシーケンス図を生成する手法を提案して
いる[1]. しかし,生成されるシーケンス図は実行蔵援のサ
して巨大なものになっている.そこで,実行中
イズに比伊l
に協調動作するオブジェクト群に注思し,実行履歴を意味
のある複数ブロックに分割した上で,各ブロック単位にシ
ーケンス屈を表示することを考えている.本稿では,実行
履歴を分割する手法の概略と手法の適用事例について述べ
る.
時間
図 1:複数のフェイズを含むシ}ケンス図の伊i
2. 協誤動作するオブジヱクトの時罰変化伊l
一般にプログラムの lつの実行履歴は,初期化部やユー
ザ入力部,内部計算部, OUI出力部など,システムの複数
のフェイズを含んでおり,各フェイズではそのフェイズ国
有のオブジェクト群が協調動作していると考えられる(例
えば図 1は,ユーザ入力部と OUI出カ部では,そのフェイ
ズで協調動作するオブジェクト群が異なることを示す).
そこで,実際のプログラム(著者らの l人が作成した,入
a
v
aプログラムを解析してプログラム依存グラフ
力された J
を出カするツーノレ)の実行履涯を用いて,待問の経過とと
もにオブジェクトの動作状況が変化する様子をグラフ化し
た.図 2は,時刻 t(実行履康中の t番密)のメソッド呼び出
しに関して,呼び出し元と呼び出し先のオブジェクト ID
をそれぞれプロットしたものである.この図より,約 500
番目, 2600番自のメソッド呼び出しを境にメッセージ通信
に関わるオブジェクト群が急激に変化しているのが分かる.
例えば, 500番目以前のメソッド呼び出しで動作したオブ
ジェクトはその後ほとんど動作していない.実際に, 1~
500番目, 500~2600 悉畏までの部分は 2 j
匿の入力データ
をそれぞれ個別に処淫する部分であり,さらに 2600番良
以降の部分はファイノレ出カ部に対応していることが磯認で
きた.
3. 実行翠歴の分割
2.で調べたように,プログラムの実行履庭を時間煩に
追跡すると,プログラムの異なるフェイズに入った部分で
協調動作しているオブジェクト鮮が大きく変化すると予想
される.そこで,メッセージ通信 i
こ関わるオブジェクト群
の変化に注隠することで実行履療を複数のブロックに分割
する方法を検討した.具体的には,メソッド呼び出しに関
係していたオブジェクトをキャッシュに記憶しておき,キ
ャッシュ中のオブジェクトの入れ務わ 9頻度が大きくなる
部分で実行履歴を分苦手!するというアプローチである.
5
叩
口
J
4三平ミよ;
200
.
ム
、
々
担曲
-r
250
1
5
0
H
,~
t
- 1凹
和
回
面泌
1
0
0
0
19
語
2.
.
泌
2500
3
<
J
(
刻
。
時刻 I
(
実行厩度中由 1
番目白メソッド呼び出し}
図 2:協瀦動作するオブジェクトの時間による変化
護1 ! ? - 2 ? l
様 。a
ト
寸
喫 0.61 1 - ハ 」
!
?
hi内」同~l 吋
什
G
珊
1
醐
1
闘
訓
制
3棚
時刻1(実行憲摩中国 t
番目白メソッド呼び出し)
図 3・キャッシュの更新頻度
関 2で使用した実行履歴に対し,実際に実行履歴の分割
を試みた.その一例として,キャッシュサイズを 50 とし,
J
でのメソッド呼び出し毎に過去 20泊分のオブジェ
各時tJ
クトの入れ苓わり頻度(0~1) をグラフ化した結果を ~3 の
折れ線グラフに示す この例からは,システムの異なるフ
ェイズに処理が移行したと考えられる部分で実際にキャッ
シュの更新頻度が高くなっていることが確認できた.
今後,様々な種類のプログラムの実行履歴に対して適用
を行い,提案手法の詳純化・一般化を行う予定である.
参考文献
[
1
] 谷口,石尾,神谷,橋本,井上:“J
a
v
aプログラムの実
行履歴に基づくシーケンス図の作成", FOSE2004
予稿集, ppふ 1
5(N
o
v
.2
0
0
4
)
.
2
5
Fly UP