Skip to main content
QUICK REVIEW

[論文レビュー] Software Engineers vs. Machine Learning Algorithms: An Empirical Study Assessing Performance and Reuse Tasks.

Nathalia Nascimento, Carlos Lucena|arXiv (Cornell University)|Feb 4, 2018
Big Data and Business Intelligence参考文献 81被引用数 3
ひとこと要約

本論文は、自律走行灯アプリケーションの制御構造を合成するタスクにおいて、ソフトウェアエンジニアと機械学習(ML)アルゴリズムの性能と再利用性の観点からの実証的比較を実施している。結果として、MLアルゴリズムはエネルギー効率と安全性においてエンジニアを上回るが、コード再利用性と適応性の面ではエンジニアが優れていることが明らかになった。これにより、最適な人間を含むループ型ソフトウェア工学ワークフローの設計に寄与する。

ABSTRACT

Several papers have recently contained reports on applying machine learning (ML) to the automation of software engineering (SE) tasks, such as project management, modeling and development. However, there appear to be no approaches comparing how software engineers fare against machine-learning algorithms as applied to specific software development tasks. Such a comparison is essential to gain insight into which tasks are better performed by humans and which by machine learning and how cooperative work or human-in-the-loop processes can be implemented more effectively. In this paper, we present an empirical study that compares how software engineers and machine-learning algorithms perform and reuse tasks. The empirical study involves the synthesis of the control structure of an autonomous streetlight application. Our approach consists of four steps. First, we solved the problem using machine learning to determine specific performance and reuse tasks. Second, we asked software engineers with different domain knowledge levels to provide a solution to the same tasks. Third, we compared how software engineers fare against machine-learning algorithms when accomplishing the performance and reuse tasks based on criteria such as energy consumption and safety. Finally, we analyzed the results to understand which tasks are better performed by either humans or algorithms so that they can work together more effectively. Such an understanding and the resulting human-in-the-loop approaches, which take into account the strengths and weaknesses of humans and machine-learning algorithms, are fundamental not only to provide a basis for cooperative work in support of software engineering, but also, in other areas.

研究の動機と目的

  • ソフトウェアエンジニアとMLアルゴリズムがソフトウェア工学タスクを実行し、再利用する際の性能を実証的に評価すること。
  • 組み込みシステム開発の文脈において、人間のエンジニアとMLアルゴリズムのどちらがより適しているかを特定すること。
  • 人間とMLのソフトウェア工学における補完的強みを理解することで、効果的な人間を含むループ型システムの設計を支援すること。
  • 実世界の制御システムタスクにおいて、エネルギー消費、安全性、コード保守性といった性能基準と再利用基準を評価すること。

提案手法

  • 指定された要件に基づいて、自律走行灯システムの制御構造を自動的に生成するための機械学習モデルを開発した。
  • 分野の専門知識の程度が異なるソフトウェアエンジニアを参加させ、同じ制御構造を手動で設計してもらった。
  • 性能指標(例:エネルギー消費、安全性)と再利用指標(例:モジュラリティ、保守性)を定義し、解決策を定量的に比較した。
  • 定義された基準に基づいて、ML生成と人間生成の解決策を比較する制御された実証的研究を実施した。
  • 結果を分析し、タスクパフォーマンスのパターンを特定。人間またはアルゴリズムが優れている分野を特定した。
  • 得られた知見をもとに、人間とMLの補完的強みを活かす人間を含むループ型システムの設計原則を提言した。

実験結果

リサーチクエスチョン

  • RQ1自律走行灯システムの制御論理を実装する際、機械学習アルゴリズムはソフトウェアエンジニアに比べてエネルギー効率がどの程度優れているか。
  • RQ2同じタスクにおいて、ソフトウェアエンジニアはMLアルゴリズムに比べて、コード再利用性と保守性でどの程度優れているか。
  • RQ3ソフトウェアエンジニアの分野専門知識の程度の違いが、ML生成の解決策と比較してその解決策の質にどのような影響を及えるか。
  • RQ4最適化、モジュラリティ、安全性の検証といった特定のタスクにおいて、人間とMLアルゴリズムのどちらがより適しているか。
  • RQ5人間を含むループ型システムは、人間とMLの両者の強みを効果的に統合するように、どのように設計すべきか。

主な発見

  • 機械学習アルゴリズムが生成した解決策は、人間が生成した設計に比べて顕著に低いエネルギー消費量を示した。
  • MLが生成した解決策は、特にエッジケースの処理やフォールトトレランスの面で高い安全性適合性を示した。
  • 特に分野の専門知識が豊富なソフトウェアエンジニアは、より優れたモジュラリティと再利用可能性を持つコードを生成した。
  • エンジニアは、拡張性や保守性といった非機能的要件への適応において、より効果的であった。
  • MLとエンジニアのパフォーマンス格差は、安全性が重要な側面において最も顕著であり、MLが全参加者のエンジニアを上回った。
  • MLが初期解決策を生成し、エンジニアがそれを精錬するハイブリッドアプローチが、効率性と再利用性のバランスを取る最適な手法であると特定された。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。