Simple Science

最先端の科学をわかりやすく解説

# コンピューターサイエンス# ソフトウェア工学# 機械学習

機械学習でプロジェクト見積もりを改善する

機械学習の技術がソフトウェアプロジェクトの工数見積もりをどのように向上させるかを学ぼう。

― 1 分で読む


ソフトウェアプロジェクトのソフトウェアプロジェクトの工数見積もりもりの精度を向上させる。機械学習はソフトウェアプロジェクトの見積
目次

ますます多くのソフトウェア会社が、自分たちのプロジェクトデータを追跡することの価値に気づいているんだ。この情報は、将来のプロジェクトに必要な作業を見積もるためのより良い計画を立てるのに役立つ。過去のデータを分析することで、これらの会社は自分たちのチームがプロジェクトを終えるのにどれくらいの時間がかかるかをより良く見積もる方法を開発できる。この文章では、機械学習を使った新しい技術が、柔軟(アジャイル)と伝統的(非アジャイル)な方法の両方でソフトウェア開発に必要な労力を見積もるのにどう役立つかを見ていくよ。

労力見積もりの課題

ソフトウェアプロジェクトのマネージャーは、プロジェクトを終えるのにどれくらいの作業が必要か良い見積もりを出したいと思っている。しかし、一部の人はこのタスクはほぼ不可能だと考えていて、他の人は十分な過去データがあればできると考えている。各社が作業を見積もるアプローチは、彼らが作るソフトウェアのタイプによって異なる。この記事では、作業労力を見積もるための最新の機械学習技術について話し、非アジャイルとアジャイルの方法に分けてまとめる。

機械学習の役割

機械学習は、顔認識から製品推薦までさまざまな問題に役立つツールになってるんだ。ソフトウェア工学にも大きな影響を与えている。最近の研究では、設計、実装、テスト、メンテナンス、管理を含むいくつかのソフトウェア活動が機械学習を使った研究の対象になっていることが示されている。これらの活動は特定のテーマを伴うことが多く、ソフトウェア管理はソフトウェアリポジトリの分析やコスト予測などの分野に焦点を当てている。

ソフトウェアプロジェクトにおける労力見積もりは簡単じゃない。できるだけ良い見積もりを出すためには、過去の情報を使う必要がある。研究によると、類似プロジェクトに関連する歴史的データがあると、より良い見積もりが可能になるんだ。ただし、知られていることと、ソフトウェア開発の労力見積もりの課題を克服するために学ぶ必要があることとの間にはギャップが残っている。

非アジャイルな労力予測

20年前、大規模な研究が147のプロジェクトを見て、その労力とタイムラインを理解しようとした。その結果、見積もりの63%が実際の結果の25%以内だったんだ。この発見は、正確な見積もりを得ることが可能であることを示唆している。ソフトウェアの労力見積もりにおける機械学習を使った初期の研究の一つは、さまざまなアルゴリズムを従来の方法と比較したもので、結果は機械学習技術が競争力を持っていることを示した。これらのアルゴリズムの一つの大きな利点は、時間とともに新しい情報に適応できることだ。

別の研究では、ソフトウェアコスト見積もりに関連する304の論文がレビューされた。著者たちは、この分野の研究を向上させるために調整を推奨した。労力見積もりに通常分析される異なるモデルがあり、単純な線形回帰や、より複雑なニューラルネットワークモデルなどがある。最近の比較では、ニューラルネットワークが単純なモデルよりも良い精度を提供する傾向があることが示された。

最近の別の研究では、93のプロジェクトを含む有名なデータセットを使って3つの機械学習モデルが評価された。この研究では、最も先進的ではないが、良い出発点となる3つの方法を比較した。その結果、全ての方法が確立されたCOCOMOモデルよりも良いパフォーマンスを示し、その中の一つが最も優れていることが分かった。

チームサイズに基づく労力予測も調査され、伝統的なコストモデルとサポートベクター回帰などの現代的手法が組み合わされた。

アジャイルな労力予測

アジャイルプロジェクトでの労力見積もりは、主にユーザーストーリーを完成させるのに必要な作業量を見積もることに関連している。新しいモデルは、高度な機械学習技術を混ぜた方法でストーリーポイントを見積もることを提案した。オープンソースプロジェクトでの実験では、このアプローチが他の方法を一貫して上回ることが示された。

いくつかの研究では、アジャイル環境での効果を評価するために異なるタイプのニューラルネットワークが探求された。研究者たちは、既存の技術と同等の結果を出すような、トレーニングしやすい方法を作り出そうとした。結果は、特定の種類のニューラルネットワークが、単語埋め込みモデルと共にうまく機能することを示した。

ソフトウェア見積もりの包括的な比較が標準データセットを使用して行われた。結果は、機械学習方法で適応された類推に基づくモデルが最も良いパフォーマンスを示したことが明らかになった。もう一つの革新的なアプローチは、過去の失敗から学ぶことに焦点を当てていた。専門家が犯した以前のエラーを分析することで、研究者は将来の見積もりを改善でき、エラーの種類と重大度は予測可能であることが示された。

アジャイル開発の労力見積もりに一般的に使用される2つのデータセットは、ChoetkiertikulデータセットとTAWOSデータセットだ。Choetkiertikulデータセットは、オープンソースプロジェクトからの何千もの問題を含み、ストーリーポイントの見積もりに役立つ貴重な情報を提供する。一方、TAWOSデータセットはアジャイルプロジェクトの情報で構成され、さまざまなソフトウェア工学の問題に使われる。

非アジャイルとアジャイルの違い

非アジャイルなプロジェクトで労力を見積もるときは、通常、全体のプロジェクトや大きなモジュールに焦点が当てられる。このアプローチは、多くの行のコードの複雑さからエラーが増える可能性がある。アジャイル開発では、より小さなスケールで予測ができ、個々のエンジニアやチームの見積もりが可能になる。

労力見積もりと実際に必要な労力を追跡することは、多くの利点を提供する。これにより、会社は各エンジニアの誤見積もり率を計算し、新しい見積もりにフィードバックを提供し、特定の作業でのトップパフォーマンスを発揮しているエンジニアを特定できる。時間が経つにつれて、エンジニアが経験を積むことで、見積もりがより正確になり、より良い設計スキルと少ない見積もりエラーにつながる。

現在と未来のトレンド

ソフトウェア開発の労力を見積もるために、4つの主要な技術が登場している。これには、進化アルゴリズム、決定木、浅いニューラルネットワーク、深層学習法が含まれる。様々なアプローチは、コードの行数、アプリケーションの種類、ユースケース名、およびユーザーストーリーの複雑さポイントなど、異なる歴史的データの特徴を使用している。

最近、データ予測に依存する多くの分野で深層学習が人気になっているけれど、線形回帰のような単純な方法もアジャイルストーリーの見積もりで効果的で、メンテナンスも容易だ。ただし、言語処理に使われるアテンションメカニズムに焦点を当てた新しいニューラルネットワークモデルも探求され続けるだろう。

最近では、より多くの会社がプロジェクト管理ソフトウェアを使ってタスクを追跡し始めている。この習慣は、より大きなデータセットを生み出し、将来の正確な予測モデルを作成するのに貴重になる。トレンドとして、個々のストーリー、チーム、全プロジェクトの労力見積もりを含む多様な予測能力を持った追跡と管理システムの使用が増えることが示唆されている。

ソフトウェア開発における労力見積もりは、単に可能なだけでなく、かなりの精度で行うことができる。高度なニューラルネットワークは、過去のプロジェクトデータから学び、より良い予測をするためのパターンを認識できるんだ。それでも、プロジェクトが歴史的データと大きく異なる場合、予測の精度が下がることがある。だから、これらの問題に対処し、見積もりモデルを改善するためには、さらなる研究が必要だ。

より多くの会社がアジャイルソフトウェア開発手法を採用するにつれて、個々のエンジニアの作業をターゲットにした見積もりの実践がより洗練されていく可能性がある。この変化は、最終的にはソフトウェアチームが自分たちの作業を効果的に見積もり、計画する能力を高めることにつながるだろう。

著者からもっと読む

類似の記事