フレームワークとアプリケーションをまたがる
利用関係の分布に関する考察
2009SE146 前田章良
指導教員：横森励士

1

はじめに長期間保守活動が行われたソフトウェアでは，さまざま3出力辺の分布に関する考察

3.1

1 部品あたりの平均出力辺数の調査な活動を通じて機能追加や修正が加えられ，内部の利用関

最初に先行研究 [1] で得られた (2) の傾向を考察するた係は次第に複雑化していく．先行研究 [1] では，開発を通めに，フレームワークへの出力辺をもつアプリケーション

じてフレームワークとアプリケーション間の利用関係がど側の部品群，アプリケーションからの入力辺をもつフレーのような傾向で複雑化するか分析したが，その結果がなぜムワーク側の部品群を抽出し，それらに含まれる部品の 1得られたのかについての考察が行われていなかった．

部品あたりの辺数がバージョンが進むにつれてどのように今日のソフトウェア工学では，利用関係に基づく分析の推移するか調査した．Renew について，フレームワーク環境が整っておらず，得られた事象に関する理由付けが必への出力辺をもつアプリケーション側の部品の 1 部品あた

要な状況である．本研究では，アプリケーション部品におりの平均出力辺数，アプリケーションからの入力辺をもつける利用部品の分布状況，フレームワーク部品の被利用部

フレームワーク側の部品の 1 部品あたりの入力辺数のバー品の分布状況を分析し，分布の違いについて考察を行う． ジョン毎の推移を図 2 に示す．バージョンが進むにつれて得られた結果に対する意味付けを行うことで，利用関係に 1 部品あたりの入力辺数は開発全体を通じて増加したが，1基づく分析をより普及させ，ソフトウェアに対する多面的部品あたりの出力辺数には大きな変化は見られなかった．

な分析を推進できると考えられる．

この結果から次の仮説を推察した．

2(a) 既存部品の出力辺数の変化による影響は追加部品の出研究の背景力辺数の変化による影響より小さい．

先行研究 [1] では，フレームワークとそれを利用する複数のアプリケーションを対象に，図 1 のような部品グラ(b) 追加部品の出力変数の分布は開発を通じてあまり変わらない．

フとしてモデル化を行った上で，フレームワークとアプリケーションをまたがる利用関係をそれぞれのバージョン毎に調査し，それらの利用関係がどのように複雑化するかを調査した．これらの傾向を確認したが，それらがなぜ起こったのかについての考察は行っていなかった．

(1) フレームワーク側の各部品への入力辺の総数と入力辺の最大数はバージョンが進むにつれて増加した．

(2) アプリケーション側の各部品からの出力辺の総数はバージョンが進むにつれて増加するが，出力辺の最大

図 2 ”1 部品あたりの辺数の推移”数には大きな変化が見られなかった．

(3) 入力辺の最大数は出力辺の最大数に比べて多い．
本研究では，先行研究 [1] で分析が行われた Renew を中心にアプリケーション部品における出力辺の分布状況およびフレームワーク部品の入力辺の分布状況に的を絞り分析を行い，それらがなぜ起こったのか考察する．

3.2

既存部品の出力辺数と新しく追加された部品の出力辺数の増減

次に (a) の仮説を確認するために，アプリケーション側に新しく追加された部品と既存部品についてのそれぞれの出力辺数の変化を調査した．図 3 は Renew について各バージョンの利用関係総数と既存部品からの出力辺数と新しく追加された部品からの出力辺数の変化を調査した結果である．バージョン毎の既存部品の出力辺数は renew1.3，renew1.5.2，renew2.3 の 3 バージョンでは僅かな増加があったのみで，多くのバージョンでは減少した．その一方で，追加部品は全てのバージョン間で出力辺数が増加した．
図 1 ”利用関係”

この結果からはバージョンが進んだときに新しく増える出
力辺は追加部品から出るものがほとんどで，既存部品による影響は小さいと考えられる．

数の型として利用されている．このような利用は全体の 5 割ほどだった．

• 継承関係に基づく利用
Figure クラスの機能を継承して，新たなクラスを定義している．このような利用は全体の 3 割ほどだった．
このように多くのクラスが Figure クラスの機能を継承して構築されている他，Figure クラスはデータの受け渡しや処理などにおいて，基盤的なクラスとして利用されて
図 3 ”出力辺数の増減”いる．

4.2
3.3

各バージョンにおける追加部品の出力辺数の調査次に (b) の仮説を確認するために，新しく追加された部Figure クラスの利用率

新しく追加された部品群で Figure クラスがどの程度利用されているかを図 5 に示した．横軸は利用している部品の出力変数，縦軸は Figure クラスが使われている割合を品の 1 部品あたりの平均出力辺数とその分布を調査した． 示す．この図から基本的に広い範囲で Figure クラスが利Renew では追加部品の出力辺数に多少の増減が見られた 用されていること，出力辺数が多くなればなるほど利用さが，開発全体を通じて出力辺数は 3〜5 本と一定の本数をれやすくなることがわかる．これらの結果から，利用関係示した．次に出力辺数の分布を調査した結果を図 4 に示の増加の原因である新しく追加されたクラスから広く利用す．追加部品をその辺数から 7 つに区分したときの分布状されていることで，Figure クラスの入力辺数 (入力辺の最況は多くのバージョンにおいて同じような傾向を示した．

大数) が増加していることがわかる．

以上の結果から，新しく増える利用関係は主に新しく追加された部品からの出力辺で，既存部品の変化は追加部品の変化よりも小さいので，出力辺の最大数は大きく変化しなかったことがわかる．

図 5 ”Figure と Drawing の利用率”

5

まとめ
本研究では，アプリケーション側の部品群からの出力辺

図 4 ”フレームワークへの出力辺数の分布”の分布状況，フレームワーク側の部品群への入力辺の分布状況を調査し，先行研究 [1] で得られた分布の傾向がなぜ

4

入力辺の分布に関する考察

4.1

Figure クラスの利用のされ方起こったのか考察し，次のことを確認した．

• 出力辺数の増加は，主に新しく追加された部品によるもので，出力辺の最大数の増加にはつながりにくい．

次に先行研究 [1] で得られた (1) と (3) の傾向を考察す• 入力辺数の増加は，主にアプリケーション側に新しくるためにアプリケーションからの入力辺が多く集まる部品追加された部品によるもので，それらの部品が利用すを調査した．もっとも入力辺を集めた部品は Figure クラる基盤的なクラスの入力辺は大きく増加する傾向がスであった．Figure クラスがアプリケーション内でどのある．

ように利用されているかを調べたところ，大きく分けて次の 3 通りの利用のされ方を示した．

• メソッド間のデータの受け渡しに利用メソッドの引数や返り値に Figure クラスの参照変数が利用されている．このような利用は全体の 2 割ほどだった．

• データ群中の個々の処理に利用

今後の課題として，複数のアプリケーションについても同様の調査を行い，本研究で考察したことが他のアプリケーションでも説明できることを確認したい．

6

参考文献

[1] 小池，坂井，清瀧．”開発履歴に基づく GUI フレームワークとアプリケーション間の利用関係の構築過程のデータ群として受け取った個々のデータを while 文で調査”．南山大学情報理工学部 2012 年度卒業論文，要処理する際などに一つ一つのデータを表現する参照変

旨集：2013.