ウィンターワークショップ2015・イン・宜野湾

セッション紹介：開発者とツールのインタラクション
石 尾隆†1畑秀明†2小 林隆

志†3プログラム解析やソフトウェア開発状況の分析などによって得られる様々な情報は，最終的には開発者が利用する開発環境，ツールを通して開発者に提供される．そのため，開発者とツールがインタラクションを行う方法も，技術の有効性や有用性を決める重要な要素の１つとなっている．本セッショ
ンでは，「開発者がツールを使う」ことに関する参加者の知見を共有し，望ましいツールの形や今後取り組むべき課題について議論したい．

Session: Interaction between Software Developers and Tools
Takashi Ishio ,†1 Hideaki Hata †2 and Takashi Kobayashi †3Analysis techniques for program artifacts and developers’ activity provide various information to software developers through development environments and tools. Consequently, howdevelopers interact with tools is an important factor aﬀecting the eﬀectiveness and usefulnessof analysis techniques. In this session, we would like to discuss challenges for interaction
between developers and tools.

キング形式で抽出する Fault Localization 技術の出力

1. は じ め にを開発者に提供する実験を行った．その結果，開発者

ソフトウェア工学分野では，ソフトウェア開発者のは与えられたランキング自体をキーワード検索するこ

コード読解やデバッグといった個別の作業や，ソフトとによって閲覧しており，既存研究の評価指標であっウェアの開発状況，開発者の活動の分析などを支援すたランキングの良し悪しの多少の差は，開発者の作業るために，様々な解析や可視化に関する技術が提案さに影響しなかったと報告している．また，Cuddeback

れている．これらの技術の多くは，開発者が利用する

ら3) は，追跡性回復（Traceability Recovery）の作業開発環境の一部としてツールの形で開発者に提供されにおいて，作業開始時に与えられた追跡性リンクの正る．ツールの多くは何らかの使用方法を想定した設計確さによって，その結果を検査する作業者の行動が変となっているが，その想定と開発者の状況が合致するわることを報告している．コードクローン検出手法にとは限らない．開発者が自身の状況に合わせて，ツー

ついては，使用方法のトレーニングなしではバグ修正

ルに対し適切なインタラクションを行うことが，技術作業には活用されなかったという事例が報告されていを効果的に利用する上で重要となっている．

る4) ほか，ソースコード検査ツールとの組み合わせに開発者がツールを利用する方法に対する研究者の注

よって潜在的な欠陥の確認作業を行うという利用法も目は既に高まっている．あるソフトウェアがどのよう報告されている5) ．これらの研究は，開発者とツールに使われているか，どの機能が好まれているのかを簡のインタラクションの方法と，開発者やツールを取り単に知る方法というのは現状では存在していない1) た

巻く環境に対して注目することの重要性を示している

め，様々な解析技術について個別の実験や報告がなさと考えられる．

れている．たとえば，Parnin ら2) は，デバッグ作業を本セッションでは，開発者がツールを使うという活対象として，バグの原因である可能性が高い文をラン動に注目し，対話的な解析・可視化ツールのアイディ
アや開発の経験，開発者のツールの使い方に関する分
析や考察など，多様な視点から開発者とツールのイン†1 大阪大学
Osaka University†2 奈良先端科学技術大学院大学
Nara Institute of Science and Technology†3 東京工業大学
Tokyo Institute of Technology

タラクションに関する議論を行い，開発者の活動に対する理解を深めるとともに，今後の課題を明らかにしたい．

1

ウィンターワークショップ2015・イン・宜野湾

る上で重要な課題である．

2. 議論の準備

ツール利用者間での情報共有．ツールは，開発者がソフトウェア開発には様々な人間，ソフトウェアが単独で利用するだけでなく，様々な立場の人間の作業関係しており，また，ツール自体もソフトウェアであのやり方，協調の方法にも影響を与える．たとえば，ることから，議論における混乱を避けるため，議論にプログラムの実行ログを詳細に収集すると，エンド登場するであろう用語をここに整理する．

ユーザはソフトウェア開発者に問題発生の状況を直接ソフトウェアとツール． ソフトウェア開発を行ってい伝えることができ，同一の実行を複数人で共有して分る組織がエンドユーザに提供する開発目標を「ソ析することもできる．一方で，そのようなデータの共フトウェア」と呼ぶ．開発に関与する人間がその有を行えるようにするには，ツールの適切な配布や互目標の達成に使用する道具を「ツール」と呼び，換性の維持など，様々な努力も必要となる．ツールの開発目標のソフトウェアとは区別する．

設計が開発者の行動に与える影響も，重要な視点の１

ソフトウェア開発者． エンドユーザに提供するソフつである．

トウェアの開発を行っている人．

ツールの作業への定着．新しいツールは，作業者にツール開発者． ツールを作成し，他者に提供する人．

とっての興味や心理的な抵抗など，様々なバイアスをソフトウェア工学の研究者や，社内用ツールの開与える7) ．ツール利用者が日常的に使用するツールと発を行っている人が該当する．

して定着させる方法もまた議論のポイントである．

ツール利用者． ツールを使用する人．多くの場合はソ

4. む す び

フトウェア開発者であるが，ツールによってはエンドユーザや，開発組織のマネージャなどを含む．

開発者とツールのインタラクションについて議論を深めることで，ソフトウェア開発支援ツールの研究開

3. 議論のポイント

発の促進へとつなげていきたい．

議論の基点となるいくつかの視点を列挙する．

参

ツール自体の効果．個々のツールは，開発工程中の考文

献1) Begel, A. and Zimmermann, T.: Analyze This!
145 Questions for Data Scientists in Software
Engineering, Proc. ICSE, pp.12–23 (2014).
2) Parnin, C. and Orso, A.: Are AutomatedDebugging Techniques Actually Helping Programmers?, Proc. ISSTA, pp.199–209 (2011).
3) Cuddeback, D., Dekhtyar, A. and Hayes,
J. H.: Automated Requirements Traceability:
The Study of Human Analysts, Proc. RE, pp.
231–240 (2010).
4) Chatterji, D., Carver, J. C., Massengil, B.,
Oslin, J. and Kraft, N. A.: Measuring the Efficacy of Code Clone Information in a Bug
Localization Task: An Empirical Study, Proc.
ESEM, pp.20–29 (2011).
5) 野中 誠，郡司尚樹：コードクローン情報の利用による静的コード解析指摘のグループ化，プロ
ジェクトマネジメント学会 2011 年度春期研究発
表大会予稿集，pp.456–457 (2011).
6) 大垣昌夫，田中沙織：行動経済学: 伝統的経済学との統合による新しい経済学を目指して，有斐閣(2014).
7) Wholin, C., Runeson, P., Höst, M., Ohlsson, M. C. and Wesslén, A.: Experimentation in Software Engineering, the 2nd Edition,Springer (2012).

様々な作業に用いられる．ツールの効果をどう評価するか，評価の際に利用方法・状況を規定すべきかどうか，異なる手法間での比較をどのように行うか．ツー
ルごとに立場は異なると思われるが，その立場の妥当性をどう考えるかは重要な課題である，
人間の特性を考慮した情報提示．「利己的で合理的な経済人の仮定を置かない経済学」である行動経済学
は，人の選好が外部の操作で変動する，すなわち，状況によって我々の選択における好みが変わる，ということを明らかにしてきた6) ．情報提示のされ方によって同じ人でも選択が変わるということは，どのような提示をすべきかも考える必要があるということである．
ツール利用者の人間としての特性を考慮した情報提示も今後の重要な課題である．
理解・コラボレーション・意思決定のための新しいインタラクションシステム．従来のデスク上のキーボー
ドとディスプレイという作業環境は，プログラミングの生産性の上では効率的だが，大規模データの操作やコラボレーションには最適とはいえない．ツール利用者と大規模かつ多様なソフトウェア関連データ（ソースコード・ドキュメント・開発履歴・ユーザ利用状況データやソフトウェアそのものなど）との関わり方をデザインすることは，将来のソフトウェア開発を考え

2