Softwear Engineering Laboratory

Paradigm/バグを自動で防ぐ

    • sample150
      田内 遥夏
      Yuki Ueda

      自然言語処理を用いた Self-admitted Technical Debts (SATD) の分類
      (Classification of Self-admitted Technical Debts (SATD) Using Natural Language Processing)

      SATD とは開発者などがソースコードを書く上で最適ではない技術的な解決策のうち、書き手が故意に行ったり、自覚があったりするもののことを言います。例えば、最適なコードの書き方が見つからないので一時的に可読性の低いコードを書いてコメントを残す、というようなものが挙げられます。SATD はバグの温床になるため、やむを得ない状況が終息すれば最適なコードの書き方に修正すべきです。そこで我々は、SATD が表出するコメントを自然言語処理で分類し、修正の優先順位をつけることで将来的なバグの増加の解決を試みています。

    • sample150

      Wang Dong

      Identify and Reduce Waste in Modern Code Review

      Software development is a complex socio-technical activity that provides ample opportunities for waste to emerge. Here, “waste” refers to “any activity that consumes resources but created no values” for customers. Modern Code Review(MCR) is a lightweight variant of code inspections which involves fewer formal requirements and prevails both in OSS and industries. However, due to the decentralized nature of MCR (i.e., where reviews are not conducted face-to-face), it is prone to cause those kinds of the waste. In this study, we identify and analyze different kinds of waste in MCR. Then we find practical solutions to reduce these wastes and improve MCR process.

    • sample150
      大神 勝也
      Katsuya Ogmami

      実行性能の問題を分析するためのプロファイラ開発
      (Profiler Development for Analyzing Execution Performance Problems)

      アプリケーションのパフォーマンスの低下や改善に関わる開発者は、プロファイラを使用して、実行時間を消費するボトルネックを素早く発見することができます。非リアルタイムプロファイラは既に実行されたスタックトレースの履歴を対象に分析を行うが、リアルタイムプロファイラはアプリケーションの実行と同時に結果を出力するため、ユーザは結果を瞬時に知ることが可能です。しかし、リアルタイムプロファイラは過度に大きく複雑な結果を出力することがあり、ユーザにとって分析が困難となる恐れがあります。本研究では、ユーザにとって理解が容易なリアルタイムプロファイラのパフォーマンス可視化手法を提案します。提案するプロファイラでは、アプリケーションの実行は3次元のコード都市として可視化され、アプリケーションのソフトウェア構造と実行のパフォーマンスが表現されます。提案するプロファイラを使用して実際のJavaアプリケーションおよびAndroidアプリケーションのプロファイリングを行い、提案するプロファイラの有用性と実用性を確認します。

      主な研究成果・外部発表等


      可視化された3次元のコード都市

      1. Katsuya Ogami, Raula Gaikovina Kula, Hideaki Hata, Takashi Ishio, and Kenichi Matsumoto, “Using High-Rising Cities to Visualize Performance in Real-Time,” In Proc. of 5th IEEE Working Conference on Software Visualization (VISSOFT 2017), pages 33-42 September 2017.
      2. Katsuya Ogami, Hideaki Hata, and Kenichi Matsumoto, “Development of a Real-Time 3D Java Profiler,” 8th IEEE International Workshop on Empirical Software Engineering in Practice (IWESEP 2017), Poster session, 2017.
    • sample150
      上田 裕己
      Yuki Ueda

      ソースコードのレビュー・添削の自動化
      (Automatic Review and Correction of Source Code)

      本研究は、人間と共同でソフトウェア開発を行うAIシステムを目指しています。そのために、ソフトウェア開発プロセスの一つであるコードレビューの自動化にむけた研究を行っています。コードレビューは、ソースコードの欠陥、読みやすさを検証、修正提案する作業であり、ソフトウェアの品質の保証に有効な手法です。しかし、大規模なソースコードの検証はすべて人間の手作業のため時間がかかり、開発全体で50%のコストが必要とされています。開発コストを削減するために、いままで手作業で行われていたコードレビューの効率化が求められています。我々は、GitHubなどに記録されたソフトウェアの修正履歴から、最適な修正パターンを学習し、自動的に修正提案を行うチャットボットの開発に取り組んでいます。

      主な研究成果・外部発表等

      1. 上田裕己, 伊原彰紀, 平尾俊貴, 石尾隆, 松本健一, “コーディング規約改定によるコードレビュー中の軽微な変更の分析,” ソフトウェアエンジニアリングシンポジウム2017 (SES2017), 2017年9月.
      2. 上田裕己, 伊原彰紀, 平尾俊貴, 石尾隆, 松本健一, “コードレビューを通して変更依頼されるIf文の分析,” ソフトウェアエンジニアリングシンポジウム2017 (SES2017), 2017年9月. インタラクティブ特別賞
      3. Yuki Ueda, Akinori Ihara, Toshiki Hirao, Takashi Ishio, and Kenichi Matsumoto, “How Is IF Statement Fixed Through Code Review? – a Case Study of Qt Project -,” In Proc. of 8th IEEE International Workshop on Program Debugging, October 2017.