研究課題/領域番号 |
15K12009
|
研究機関 | 奈良先端科学技術大学院大学 |
研究代表者 |
久米 出 奈良先端科学技術大学院大学, 情報科学研究科, 助手 (10301285)
|
研究期間 (年度) |
2015-04-01 – 2018-03-31
|
キーワード | デバッグ / ソフトウェア工学 / ソフトウェア開発環境 / プログラム理解 / 捜査地図 / 内面モデル / グラフデータベース |
研究実績の概要 |
ソフトウェア開発ではプログラムの不具合を特定・修正するデバッグ作業が不可欠である。デバッグは多大な労力と時間を費す作業であるため、その効率化に向けた支援の実現とその効果の評価は非常に重要である。本研究では作業者の知識や視点に合わせた表示によってデバッグを支援する新しいデバッガ(デバッグ支援を目的としたソフトウェア工学ツール)を開発・評価する。本デバッガはプログラムのトレース(実行履歴)を用いて任意の実行時点の参照を可能とする、逆回しデバッガ(Back-In-Time Debugger)の一種である。
平成28年度では本デバッガによる抽象化の仕様を決定するため、前年度(27年度)に実施した予備実験の内容を論文にまとめて国際会議(平成28年度発表確定報告済み)と国内の研究会で発表した。これらの成果はデバッグ作業者の内面の分析に関するものであり、東京大学、神戸大学、甲南大学の研究者、さらに民間のソフトウェア開発技術者(いずれも発表論文の共著者)の協力によって得られた。さらにグラフデータベースの導入によるトレース処理の効率化を確認し、その結果を国際会議と国内の研究会で発表した。これらの成果は同志社大学のデータ工学研究者(発表論文の共著者)の協力によって得られた。
一般に多くのソフトウェア工学ツールの評価実験では被験者が実施した作業の外形的なデータ(作業成績や消費時間)が評価に用いられる。外形的なデータに基づく評価では「何故作業の結果が向上したのか(被験者の能力が高いからではないか?)」という重要な疑問の解決が困難である。作業時の被験者の内面の分析はこの従来の評価方式の限界を突破する上で大きな役割を果たす。逆回しデバッガは扱うトレースのデータ量の大きさ故にその実用性が疑問視される事が多い。グラフデタータベースによる効率化は実用化の可能性を示す上で大きな意義を有している。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
3: やや遅れている
理由
平成28年度では評価実験の環境構築とデバッガの開発を実施していた。実験を支援する環境に当初予想していなかった機能が必要である事が判明した。そのために環境構築に遅延が発生している状況である。またデバッガの開発に関しても技術的な問題によって遅延が発生している。
我々の当初の計画では同時発話法を適用して被験者の内面表出を実現する予定であった。しかしながら前年度に実施した予備実験の結果より、デバッグ時の作業者の思考が極めて複雑かつ断片的なものであるために、通常の同時発話法では内面分析に必要な質の高いデータの採取が困難である事が判明した。我々は被験者の発話と発話時に参照している表示の内容を関連付ける事によってデータの質を向上させられると考えている。現在データの質を高めるための関連付け機能を新規に開発中である。この当初予期していなかった作業のために環境構築工程の遅延が発生している。
本デバッガではトレース処理の結果が、作業者の知識や視点に合わせる形でソースコードの表示に反映される。この表示を実現するためには Java のソースコードの構文要素をトレース内のバイトコード実行と対応させる必要が有る。我々は当初、Java の構文解析器(https://javacc.org/)と過去に開発した独自のトレース処理機能を組み合わせる事によってこうした対応を容易に実現出来ると考えていた。しかしながら、トレース処理の実装に用いていた第三者ライブラリ(https://commons.apache.org/proper/commons-bcel/)の制約によって当初想定したよりもやや長い開発期間が必要である事が判明した。こうした当初予想していなかった技術的な問題により、デバッガの開発に遅延が生じている状況である。
|
今後の研究の推進方策 |
引き続き実験環境の構築とデバッガの開発を続ける予定である。現在作業の遅れを取り戻すための評価実験の計画変更やデバッガの仕様の縮小を検討中である。検討のために本研究の目標である「作業者の知識や視点に合わせた抽象化」のうち、研究期間内で実装・検証すべきものを再確認する。さらに確認した内容に沿って評価実験に必要なデータの質を改めて検討する。検討のために必要であればさらに予備実験を実施する。
一般にデバッグ作業者は様々な視点からプログラム実行を理解し、その理解に基づいて様々な様式の作業を実施する。我々は現在、開発作業と並行して過去の予備実験で得られたデータから、作業者による理解や作業を分類し、本研究のデバッガが支援すべき対象を絞り込む作業を実施している。こうして絞り込まれた理解や作業のみに対応すべく支援機能の仕様を縮小し、実装を再開する予定である。
実験に関しても同様に、デバッグ作業者の内面的な理解や作業効率に関して絞り込まれたもののみを分析の対象とする。分析対象を絞り込む事によってデータの質の向上に費す労力の削減が期待される。絞り込みによってデータの質を向上させる一つの方法として、実験の正当性や妥当性を損わない形で被験者の発話に拘束を設ける事を検討している。同時発話法において発話の拘束が設けられる事は珍しくないが、その適切性や妥当性に関しては実験の趣旨や性質に依存する。こうした実験の適切性や妥当性に関する議論は心理学の知見が必用である。現在、この分野の専門家である岡山大学の杉原太郎准教授の協力を得て実験計画の適切性や妥当性の検討を既に開始している状況である。
|
次年度使用額が生じた理由 |
「現在までの進捗状況」の欄で説明したように現在実験環境の構築とデバッガの表示部分の開発にやや遅れが生じている。当初の計画では当該年度で環境構築や開発、及びこれらの作業に関連して得られた知見の発表に助成金を使用する予定であったが、こうした進捗の遅れのためにその一部が使用されなかった事が次年度使用額が生じた理由である。
|
次年度使用額の使用計画 |
「今後の推進方策」の欄で述べたように、プログラム理解とデバッグ作業に関する支援と評価の対象を絞り込む作業が必要となった。さらにこれと関連してデータの質を向上させるため、実験環境に新しい機能の追加が必要である事も判明した。当初の計画では想定していなかったこれらの作業を遂行するためには、新たな予備実験の実施が必要となる事が予想される。
翌年度分として請求した助成金は進捗が遅れている作業と、上記の新しい作業を遂行するために使用される予定である。新しい作業のうち特に予算を必要とするのは上記予備実験である。予備実験で必要とされる予算額はそれほど大きなものではないため、当初の使用計画を調整する事により新たな作業の発生に対応する事は十分可能であると考えている。
|