ソフトウェア工学研究室2014

ソフトウェア工学研究室では、ソフトウェア開発に関わる様々な問題を研究しています。幅広い問題に取り組むため、国内外の研究者との連携に力を入れています(ソフトウェア工学研究室2013)。今回は現在取り組んでいる研究課題をいくつか紹介します。

ソフトウェア開発者の作業改善支援
本研究では、Personal Software Process(PSP)というソフトウェア開発者の作業を改善手法の研究に取り組んでいます。PSPでは開発者の作業履歴を記録し、実装(プログラミング)、テスト、ソフトウェア設計、会議といった個々の開発作業にどれだけの時間を費やしているか分析し、効率の改善やプロセス改善に役立てます。

我々はこのPSPに用いられるソフトウェア開発者の作業履歴を自動計測するためのツールTaskPitを開発しています。TaskPitでは、あらかじめPC上で動作するアプリケーション(例えば,Eclipse,Visual Studio,Word,Excel,SQLサーバ,コマンドプロンプトなど)とタスク(例えば,文章編集,表計算,実装,テストなど)を紐付けて、アプリケーションのアクティブ/非アクティブ状態を検知することで各タスクに費やした時間や作業量(クリック数、タスク数)を計測できます。

estimate

また、PSPでは「開発作業」という単位での作業記録が必要であるため、文書編集,表計算といったタスクを,その前後のタスクの実施状況から判断して「実装」「テスト」「設計」等の開発作業に自動的にマッピング(推定)する研究にも取り組んでいます。

人的リソースから見るオープンソースソフトウェアの健全性評価
オープンソースソフトウェア(OSS)は、ソースコードが無償で公開されている、だれでも改良や再配布が可能なソフトウェアです。OSSの普及に伴い、OSSを導入する企業が増加しています。企業がOSSを導入するメリットとして、経費を大幅に削減できるという点があります。しかし一方で、ボランティアが有志で開発を行っているというOSSの性質上、バグがすぐに修正されないという問題や、開発が突然打ち切られるというリスクがあります。そのため、企業は健全性の高いOSSを導入する必要があります。我々は人的リソースの観点からOSSの健全性を測ろうと試みています。

homebrew

次の図は、OSSプロジェクトの貢献者を、コメントやバグ報告などの議論を行う貢献者とコーディングを行う貢献者に分けて、貢献者の分布を人口ピラミッドで表したものです。このように可視化することで、プロジェクトが貢献者の獲得・維持ができているかが分かりやすくなります。

脳血流計測装置を用いたプログラム理解難度の測定
ソフトウェア開発において、プログラムのソースコードや設計書を読み、そのふるまいを理解すること(プログラム理解)は重要な作業のひとつです。たとえば、

  • ソフトウェアから欠陥を取り除く(デバッグ)ため
  • ソフトウェアの改良を行うため
  • 他者の書いたプログラムを再利用するため

などの工程において、開発者はプログラム理解を行う必要があります。

開発者がプログラム理解をうまく行えるかどうかは、対象となるプログラムの複雑さ開発者の能力などにかかっています。
したがって、経験年数が短い場合や新しい分野での開発において、開発者はしばしばプログラム理解が困難な状況に直面します。

このような開発者に対しては、適切なタイミングで手助けや教育を施したり、現在の仕事の割り振りを見直すことで作業の効率を上げることが出来る可能性があります。
また、プログラムが万人にとって理解しづらいようであれば設計を見直す必要があるとも考えられます。
しかしながら、プログラム理解とは開発者の頭の中で行われる処理であり、「困難な状況にある開発者」を見つけることはそう簡単ではありません。時によっては、開発者が困難を抱えているときに管理者が「開発者はうまく仕事に取り組んでいる」と勘違いするようなこともあるでしょう(図1)。

intro1

図1. プログラム理解に取り組む開発者の内心を知ることは難しい

本研究ではこの問題に取り組むため、プログラム理解を行う開発者の脳活動を観察するという率直なアプローチを採用しました。我々は、ウェアラブルNIRS(Near-InfraRed Spectroscopy; 近赤外分光法)装置(図2)と呼ばれる小型軽量な脳活動計測装置を用い、プログラム読解中の脳活動の推移や難度ごとの差を見ることで、プログラム理解の困難さを測定出来るのではないかと考えています。

intro2

図2. NIRS装置と原理

NIRS装置は、頭表面に向かって近赤外光のレーザーを射出し、その反射を捉えることで脳内の血中酸素濃度を測定し、そこから脳活動を推定する装置です。fMRIやPETのような他の脳活動計測機器と比べて精度は落ちますが、計測時の手間や身体動作への制約が少なく、また長時間の計測にも耐えうるという特徴があり、本研究に採用されました。

現在我々は、様々なレベルの難読化(プログラムをわざと理解しにくくするための処理)を施したプログラムをプログラミング経験者に読んでもらい、その理解中の脳活動を測定するという実験を行っています。実験の途中ではありますが、開発者にとって極端な困難が生じている間プログラム理解中の脳活動が強く活発化する傾向が確認できています。

Automated framework for bug report categorization

This Automated framework focuses on reducing the amount of human effort required to obtain information from bug reports.

While bug report categorization can greatly help in understanding software development and improving its process, it is a daunting task because of the required amount of human effort to complete this task.

We propose a framework of automatic bug report categorization. It first applies topic modeling techniques to discover “topics” in the collection of bug reports, and then classifies them with the features of existing topics.

Result from our experiments demonstrated that our framework could automatically categorize bug reports with good results and much less human effort.

国際会議IWESEP2014を主催

10806318_852020818164601_5971084601057743100_n

実証的ソフトウェア工学(ソフトウェア開発における開発者の経験・ノウハウを観測し、将来のソフトウェア開発にフィードバックすることを目的とした学問)に関する研究を対象に、研究分野の発展や若手研究者育成を目指す国際会議International Workshop on Empirical Software Engineering in Practice (IWESEP) 2014を開催しました。若手研究者がオーガナイズする本会議は今年で6回目を迎えます.本研究室からも中川さん(D1)がChairメンバーの一人として活躍しています。また、本研究室から2件の論文発表(Limsetthoさん(D2)、伊原助教)、ポスター発表(湯月さん(M2)、藤原さん(M1)、藤野さん(M1)、若本さん(M1)、Jiarpakdeeさん(研究生)、伊原助教)があり、藤野さんらのポスターはBest Poster Awardを受賞しています!

10268412_852023471497669_667558884949701036_n

サミットMSR Asia Summit 2014を主催

35fb3ec8b65b475989f24f9cfd77c1d9

ソフトウェア工学分野において注目されているマイニングソフトウェアリポジトリ(MSR: ソフトウェア開発中にデータベースに蓄積される開発資産をデータマイニングし、開発者の感や経験に依存しない知識を見出すことを目的とした学問)分野で活躍するスーパースターを多数招聘し、プレゼンテーション、議論を通して日本のMSR研究の発展を目指すサミットです。ソフトウェア工学研究室の伊原助教、NAIST修了生の亀井助教(九州大学)がオーガナイザーとなり開催されています。今年で2回目の開催となるMSR Asia Summit 2014は、世界5カ国から研究者を招聘し、世界最先端の研究を学び、ソフトウェア工学の未来について思いを馳せました。

6230296cfe6a42dd9694d7364703cb0e

ソフトウェア工学研究室の最新情報はこちらから
http://se-naist.jp/
https://www.facebook.com/selabnaist

新たな対話の始まり

NAISTの知能コミュニケーション研究室で、コミュニケーションに関連する様々な技術を研究しています。今回の記事では、人とコンピュータのコミュニケーションを可能とする「対話システム」の研究について紹介します。対話システムはコールセンターの自動受付や雑談などの分野で既に実用化されているが、NAISTでは、今までにできなかった応用に取り組む新しい対話システムの枠組みを目指しています。

コミュニケーションの苦手を克服する「自動ソーシャルスキルトレーナー」

(田中宏季、D3)

私たちの生活において他の人と関わる状況というのは非常に多く存在します。例えば、雑談、プレゼンテーション、友達と遊ぶ、上司への報告など。皆さんはこれらのことが得意でしょうか、それとも不安に感じてしまうでしょうか。これらのコミュニケーションスキルは人との関係作りにおいて重要であり、生活の質(QoL)とも密接に関わっていることが近年わかってきています。一方で、コミュニケーションを苦手としている人々の傾向として、コンピュータなどの社会とは無関係なところにおいて高い能力を発揮することがわかっています。この背景から、対話システムをコミュニケーション支援に応用するような研究プロジェクトを奈良教育大学と共同で本年度からスタートさせました。

コミュニケーションを支援する対話システムを作るために、従来の認知行動療法の枠組みを参考にしました。ユーザが対話システム上の仮想的なエージェントと音声対話していく中で、コミュニケーションのスキルを学習していきます。本研究では、第一段階として「上手に話を伝えるトレーニング」を対話システムに実装しました。まずユーザがエージョントに向かって、「最近あった出来事」を伝えます。その際、エージェントは聞き役として頷きなどの反応をし、同時にユーザの音声と動画も収録します。収録したデータから、ユーザの言語•非言語情報を検出し、それを標準的なモデルと比較して、良かった点と改善点をリアルタイムでユーザに提示します。ユーザはフィードバックを見ることによって、自分の話の伝え方について客観的なアドバイスを受けることが可能になります。大学院生が本システムを使用したトレーニングを受けたところ、従来の本によるトレーニングを行った群と比較して、有意に話を伝えるスキルが向上していたことを確認しました。また自閉スペクトラム症(ASD)の児童1名が本システムを使用したところ、トレーニング前後でのスキルの向上が見られました。これらの結果から、対話システムを使用したコミュニケーション支援技術が有効であることがわかりました。下のビデオで、実際にシステムを使っている様子をご覧いただけます。

今後は、エージェントの振る舞いおよびトレーニングの仕方をより人間らしくするために、実際の人間による認知行動療法をデータ収録し、システムに反映していく研究を進めていく予定です。本研究が、コミュニケーションに困っている人々の助けになれば本当に嬉しく思います。

研究の詳細については、教育工学研究会で報告しています。

人の心を動かす「説得する対話システム」

(平岡拓也、D2)

従来の対話システムは、ユーザの望み通りに、質問に答えたり、チケットを予約したり、雑談をしたりしてきました。しかし、実際に人間と話す時は、様々な意見を出し合ったり、議論したりすることもあります。我々の研究では、ユーザに合わせるだけではなく、ある目標に向かってユーザに働きかける「説得対話システム」を研究しています。実際の会話では説得が行われる状況は実に多様ですが、 本節では、相手を不快にさせずに説得を行う状況を想定した、2つのシステムについて紹介します。

研究室勧誘システム

最初に紹介するシステムの特徴は、別の話題から、システムがユーザに注目してほしい話題へと誘導を行うことです。このような誘導が必要な状況の一例として、NAISTに入学して、研究室を選ぼうとしている学生を特定の研究室へ勧誘する場面が考えられます。このような場合、研究室を探している学生はどのような研究をしたいかの大まかなイメージがあっても、具体的に各研究室でどのような研究が行われているかが分からない。その中で、システムが情報を提供し、学生のイメージとシステムの誘導したい研究室を結びつけることができれば、その学生が研究室に入る可能性が高くなります。我々は、その学生が興味の持つことと関連する別の話題を提示することで、システムが目標とする話題へと対象の興味を移す枠組みを提案しました。この枠組みの中では、会話を通して、ユーザの興味を逐次推定する手法や、話題間の関連についての知識の自動獲得に関する提案等も行われています。実際にシステムが使われている様子は下の映像にご覧いただけます。

カメラ販売システム

そして、二番目に紹介するシステムの特徴は説得のプロフェッショナルの良い点を積極的に反映していることです。 具体的には、説得のプロとして、セールスマンに着目しました。家電売店でのカメラ販売を想定して、実際に店員として働く方々に客がカメラを購入するように説得してもらいました。 そして、どの程度客を満足させつつ、カメラを販売できたかを基準に、店員の説得の上手さをスコアリングしました。この説得の分析を通して、会話中の特徴からこのスコアを予測するモデルを構築しました。この予測モデルのスコアが高くなるように会話を行えば、上手い説得が出来たといえるでしょう。我々は、強化学習と呼ばれる枠組みを使って、システムが高いスコアを出せるような会話の仕方を学習させることに成功しています。

説得対話の仕組みの詳細については、日本音響学会や自然言語処理の国際会議COLINGなどで発表しています。

ユーザの好みに合わせる「個人性を持った対話システム」

(水上雅博、D1)

Siriやしゃべってコンシェルを始めとした携帯端末向けの対話システムの普及、PepperやASIMOといった音声対話が可能なロボットの開発は、人間とコンピュータの関係を従来の「道具としてのコンピュータ」から「パートナーとしてのコンピュータ」へと変化させつつあります。ただ、今までどおりの機械的で無機質な会話をしても、対話システムが真のパートナーにはなれない。そこで我々は各ユーザに合わせるような「個人性」を持った対話システムに着目して、様々な研究を進めています。

まず、対話システムが持つ「個人性」を制御する個人性制御システムについて説明します。従来の対話システムでは、一つのシステムは、ユーザ、場所、時間、周囲の環境に関係なく単一の喋り方を行っていました。しかしながら、実際の人間同士の対話においては、人間は自分自身の固有の喋り方に加えて相手との関係や周囲の環境に合わせて喋り方を変えています。我々は、この行為が対話における関係構築に非常に重要な要素であると考え、対話システムに任意の話し方を行わせる枠組みを統計的機械翻訳の技術を用いて提案、実現しています。具体的には、実現したい喋り方のデータを用意して、このデータから個人性変換のモデルを統計的に構築します。この枠組みでは、単に話し方を制御するのみでなく、特定のキャラクタや有名人の話し方を再現することが可能です。このシステムのデモを下記の動画でご覧いただけます:

また、対話システムの応答戦略を個人に適応する研究も行っています。非タスク指向対話では「何を言われたら何と返すか」をパターン化した用例ベース対話という手法があります。この手法では、ユーザの発話に対して、最もそれらしい応答を対話システムが返します。しかしながら、「最もそれらしい応答」というのは、ユーザの好みや状況に合わせて変化するため、一意に決めることは困難です。そこで我々は、その対話で過去にユーザが行った反応とその履歴から、その時々、対話ごとに最適な応答をユーザごとに選択するという手法を提案しています。この手法は、ユーザが満足度を明示しなくても、反応の傾向からおおよその満足度を推定可能な新しい枠組みを持っています。そして、推定された満足度を用いて、ユーザが好む対話の傾向を予測し、複数の応答の中から各々のユーザに合わせて最良の応答を選ぶことに成功しました。これによって、対話システムはユーザにとって最も快適な対話を実現することができます。

これらの研究の仕組みの詳細は、情報処理学会の研究会、IWSDSを始めとする国際会議で発表しています。