セッション紹介:
ソフトウェア工学における可視化の実践に向けて
小林 健一†1

石尾 隆†2

ソフトウェア工学において可視化は，ソフトウェアや開発プロセスに関する様々な情報を分析する
際の理解の促進や対話的な知識の精錬に有益である．しかし，可視化の効果についての定量的評価は少なく，研究者が可視化をデザインする上での指針が不足していた．そのため，本セッションでは，有用な可視化手法を構築し実践の場に届けるための指針に関する議論を行う．

Session:Toward Practical Visualizations in Software Engineering
Kenichi Kobayashi†1

Takashi Ishio†2

In software engineering, visualization plays an important role in understanding complex outputs ofvarious analyses extracted from software systems and their development processes. However, there
have been not enough guides or empirical evaluations to design a new visualization technique. In thissession, we will discuss how to design practical and effective visualization techniques.

1. はじめにソフトウェア工学の研究ではソースコードやプログラ
ムの構造，振る舞い，動的情報，開発履歴，開発プロセス，業務プロセス，開発者のネットワークなど様々なデータを対象として分析が行われることが多い．これらのデータは往々にして複雑かつ大規模なものであり，分析結果をユーザにとって容易に解釈できるような形で提供する可視化(Visualization)は必須の技術である．
優れた可視化は分析結果の正確かつ素早い理解を促し，深い洞察を可能にする．また，ユーザの知識を対話的に取り込むことで，分析結果のさらなる精錬を可能にする．
このように可視化が担う役割は大きいながらも，その効果についての評価はわずかばかりであった[1][2]．
理由としては，定量的な評価が難しく，アンケート収集や実証実験のコストが高いことなどが挙げられる．このような状況下では，研究者が新た分析手法のために可視化をデザインしようとしても，十分な指針や知見が用意されているとは言い難い．
本セッションは，有用な可視化手法を構築し実践の場に届けるための方法に関する議論や意見交換を行†1 富士通研究所
Fujitsu Laboratories LTD.
†2 大阪大学
Osaka Universityう場として設けた．ソフトウェア工学には様々な問題があり，取りうる可視化手法も様々なものがあるが，このセッションでは敢えて問題や手法は限定せず，「可視化の実践へ向けて」様々な手法に適用できるメタな知見を得ることを目的とし，ポジションペーパー募集に当たっては，特に以下の 2 点に焦点を当てた．
(1) 分析結果の可視化による反応・教訓：
学生や同僚，上司への説明，学会等のデモ，被験者実験，開発現場での適用など，可視化手法の案や結果を作者以外の人が見たときの反応や，そのとき得られた知見や教訓．
(2) 実務者から可視化手法に求めるニーズや望ましい性質の提案：
誰に対して，どのような情報を示したいか．また，そのときに望ましい表現形態や，そのほかに必要な性質は何か．

2. ソフトウェア工学と可視化
Diehl はソフトウェア可視化の定義として「ソフトウェアあるいはその開発プロセスに関する成果物の可視化」としている[1]．本セッションではその定義に沿いつつ，「可視化」という語を広義でとらえる．すなわち，ソフトウェアに関わる複雑なデータから潜在知識を抽出しユーザに提示する技術全般を議論の範囲とする．
図 1 は可視化のプロセスを，[1][3]など可視化に関する書籍やサーベイの最大公約数的に表したものである．可視化の手続きは，図 1(a)のように解決すべき問題に応じて，必要なデータを収集し，そのデータに対しモデル化・抽象化・統計処理などを行い，その処理されたデータをチャートやマトリクスなど，またはより高度な情報視覚化手法[4]を用いて表現してユーザに提示する流れとなる．可視化を用いた分析にユーザを介入させる場合は，図 1(b)のように可視化結果をユーザが吟味し，満足のいく結果が得られるまでフィードバックにより分析を精錬しながら反復する．図 1(b)ではユーザを，反復を行う分析者と最終成果物を利用するエンドユーザとに分けているが，この二者は同一の場合もある．
2.1. ユーザ中心の観点
本セッションの目的は，より実践的な可視化を設計するための指針を得ることであるから，可視化プロセス上の各要素（データ収集，データ処理，データ表現，反復の有無，インタラクティブ性など）について，ユーザへの効果，ユーザ視点からの要請，ユーザからの反応が重要な関心事となるだろう．前述のポジションペーパ
ー募集時の焦点がこれに対応する．
また，各可視化手法の対象となるユーザの属性を明確にしておくことも議論を簡潔に保つために有効だ
ろう．以下にユーザの属性軸の例を挙げる．
 職種・立場： 開発者（設計者，開発者，テスタなど），非開発者（CIO など上位意思決定者や営業担当，コンサルタントなど）
 専門知識： 分析手法の知識を持つ専任分析者，対象ソフトウェアの知識を持つ開発者，前提知識を仮定できない一般人
 プロセス上の役割： 最終成果物を利用するエンドユーザ，反復精錬を行う分析者
2.2. 新しい技術
近年，ビッグデータの興隆により，データ可視化やデータアナリストというスキルが注目されており，ユーザのデータに対するリテラシが急速に向上している．可視化の設計者側にとっても，新たな入出力手段が次々に提案されており，使用できる表現の選択肢が現在進行形で広がり続けていることは注目すべきであろう．

3. 投稿論文および参加者概要
今回，投稿および参加者は大学と企業が概ね半々の割合であり，理論と実践の均衡した議論が期待できる．ポジションペーパーは，コンセプトレベルの提案から，実践的な提案，評価，可視化の設計枠組みの提案まで広い範囲のトピックがバランスよく集まっている．

データ処理
データ収集

モデル化
抽象化
統計処理

データ表現
ユーザ

(a) 反復のない可視化プロセス

データ処理

データ収集

モデル化
抽象化
統計処理

データ表現
エンド
ユーザ
反復による精錬
分析者(b) 反復を含む可視化プロセス

図 1 可視化プロセス

4. セッションでの議論
本セッションでは，まず特定の目的や手法に絞り込
まず，各参加者の様々な立ち位置から持ち寄った可視化手法や実践経験の実例を題材にして，例えば以下のような話題について議論を行うことになるだろう．
 可視化（表現）手法
 目的とデータ・可視化手法のマッピング
 ユーザから有益な知識を引き出すためのインタラクションや反復プロセスのデザイン
 新しい可視化のムーブメント
次いで，これら個別の議論から，共通項を括り出し，実践の場で可視化手法が効果を挙げるための知見を得るための議論を深めていきたい．

参考文献
[1]

S. Diehl: Software Visualization - Visualizing theStructure, Behaviour, and Evolution of Software,Springer (2007).

[2]

R. Wettel, M. Lanza, and R. Robbes: Software systems
as cities : A controlled experiment, Proc. 33rd Int’l Conf.
on Software Engineering, pp. 551–560 (2011).

[3]

Ben Fry（著），増井俊之（監修），加藤慶彦（訳）：ビジュ
アライジング・データ ― Processing による情報視覚化手法，オライリー・ジャパン (2008)．

[4]

平川正人，安村通晃（編）：bit 別冊 ビジュアルインタフ
ェース - ポスト GUI を目指して，小池秀樹：ビジュアリ
ゼーション，第 2.2 章，共立出版 (1996)，電子版 htt
p://www.pitecan.com/presentations/DEWS
98/KoikeSurvey/bit.html （2013/12/18 参照）．