kuri8iveにいきてこ。

仮面ライダーになりたい。

APSEC2019 参加レポート

こんにちは、@kuri8iveです。
2019年12月3~5日にプトラジャヤ(マレーシア)で開催された国際会議APSEC2019に参加してきたので簡単に報告します。

APSEC2019について

APSECはAsia-Pacific Software Engineering Conferenceの略称で、その名の通りソフトウェア工学分野の国際会議です。

f:id:kuri8ive:20191207180230j:plain:w500

今回が26回目の開催で、トップカンファレンスではないものの一定の水準にある会議として知られています。
(CORE rankはBソフトウェア工学分野ではICSEFSE、MSR、ASE、ICSMEに次ぐ位置づけのようです。)

APSEC2019ではアジア太平洋外も含む世界41カ国から193本の論文投稿があり、そのうち67本が採択されています。(採択率: 34.7%)
国別では中国の発表者が断然多く、次点で日本、他はちらほらといった感じでした。
日本からは筑波大学大阪大学早稲田大学JAISTの発表があったほか、日立の方の発表もありました。

会場はマレーシア・プトラジャヤにあるZenith Putrajaya Hotel
プトラジャヤはワシントンDCのように首都機能移転によってできた街のようで、クアラルンプールと比べるとこざっぱりとした印象を持ちました。

f:id:kuri8ive:20191207180205j:plain:w500

Keynote

キーノートはシドニー工科大学Zowghi教授による"The Role of Users in Contemporary Software Development and Digital Transformation"。 ソフトウェア開発やDXにおいて発生する様々なカオスを軽減するためにはユーザーを巻き込む必要がある、という主張のもと行われた文献レビューとケーススタディーを紹介する講演でした。

f:id:kuri8ive:20191207193308j:plain:w500

文献レビューでは、ユーザーのソフトウェア開発への関与がポジティブな変化をもたらしているとした研究が多いことや、文化や政治的な側面よりも心理やマネジメントの視点からの調査が多いことが明らかになったようです。ケーススタディーでは、オーストラリアの役所などで収集したデータを分析しユーザーの満足度がシステムの成功に大きく貢献するとした研究が紹介されました。

最後に、今後はより人に注意を向けていかねばならない、技術・ビジネス・人のバランスを取る必要があるというコメントで締めくくられました。

論文紹介

3つほど論文を紹介します。

Neural Comment Generation for Source Code with Auxiliary Code Classification Task

ソースコード内のコメントは開発者がコードの内容を理解するのに役立ちますが、適当ではないコメントがあったりそもそもコメントがないコードが多く存在します。そこで、本研究ではコメントの自動生成に焦点を当て、Seq2SeqモデルをベースにしたTree2Seqモデルを提案しています。提案手法は抽象構文木マルチタスク学習の枠組みを利用することで、コードの構造情報を考慮しより適切なコメントの生成を可能にしています。LuceneなどのJavaリポジトリで構成されたデータセットを用いた実験では、提案手法はARNetやNode2Seqといった SoTAの手法をBLEUやMETEORといった指標で上回ることが示されました。

Understanding the Effect of Developer Sentiment on Fix-Inducing Changes: An Exploratory Study on GitHub Pull Requests

感情は生産性に大きな影響を及ぼします。これまでの研究で、GitHubにおけるコミットログに開発者の感情が現れることは確認されているものの、ソフトウェア開発プロセスはこれまで感情の影響を考慮していませんでした。そこで、本研究では感情が開発者のパフォーマンスにどのように影響するのか、具体的には、バグを誤って入れ込んでしまう変更(FIC, Fix-inducing changes)との関係を分析しました。結果、FICの前のコミットメッセージは通常よりネガティブであり、一方FICには通常よりポジティブなコメントやレビューがつくことが明らかになりました。

An Algebraic Approach to Modeling and Verifying Policy-Driven Smart Devices in IoT Systems (Best paper)

IoTデバイスは事前に定義済みのポリシーに基づき環境の変化に応じて自動的に動作を調整できます。そして、ポリシーはユーザーによってカスタマイズが可能です。しかし、もしポリシー間に不整合があるとシステムの誤動作を引き起こす可能性があるため、そのリスクを事前に排除しておく必要があります。そこで、本研究ではポリシー駆動型スマートデバイスモデリングおよび検証するための新しい代数的アプローチを提案しています。このアプローチは、Maudeと呼ばれる効率的な書き換えシステムを用いて、PobSAM(ポリシーベースの自己適応モデル)と呼ばれるドメイン固有のモデリング言語の操作上のセマンティクスを形式化します。既存のアプローチと比較すると、検証ツールがサポートする特定の言語でシステムを形式化する必要がないという点で、従来のアプローチよりも一般的なアプローチとなっています。スマートホームのIoTシステムを用いたケーススタディーによって、アプローチの有効性を検証しました。

自分の発表

私が筆頭著者である論文"Class Name Recommendation based on Graph Embedding of Program Elements"が採択されたため、研究発表を行いました。

発表資料実装preprintはそれぞれ公開しています。

質疑ではアイルランド、マレーシア×2の3名の研究者からコメントを頂き、それなりに面白がってもらえたようで良かったです。さらに、うち1名とは発表後に直接お話をして実装のリンクを送ってほしいと言っていただけたので、pipenvや使ったことなかったmavenなど調べてちゃんと実験を再現できるように実装整理した甲斐があったなぁとぼんやりしました。

おわりに

他の分野にも言えることかもしれませんが、ソフトウェア工学と一口に言っても非常に幅広く、開発支援ツールやセキュリティ、マネジメントまで色々なトピックの研究発表があり勉強になりました(正直全然分からない発表も多々ありました)。応用にとても近い分野だと思うので、今回発表されていたような研究がそのうちIDEプラグインなどで実装されるといいなぁと願っています。

個人的なところでいうと、共著者のみなさんには本当に本当にたくさん助けていただいたので、国際会議論文採択という形で恩返しができてホッとしています。また、質疑のうち1つは意図を汲み取れず時間内に答えられなかったため悔しさが残りますが、それは次回以降の宿題ということに。発表は割と好評だったようなので、多少は成長しているのだなと感じられたのは収穫でした。

おまけ