発展・専門

ソフトウェア開発への応用PR用1分動画

ソフトウェア開発に従事しようとする学生又はすでに従事している技術者を対象に、
統計手法を用いたデータ分析・品質予測の技法や品質改善プロセスなどについて講義し、
より高品質なソフトウェアを開発するための知識と技術の習得を目指します。

第1回 ソフトウェア開発における測定と分析

担当講師

小笠原 秀人

(千葉工業大学 教授)

内容

ソフトウェア開発における測定と分析について解説する。最初にソフトウェア開発とデータサイエンスの関係について概説し、ソフトウェア開発にデータサイエンスが必要な理由、活用の実態、今後の方向を示す。次に、ソフトウェア開発の定量化・可視化を支える基本的な考え方であるソフトウェアメトリクスについて、その定義を行ったあと、様々なメトリクスを紹介する。最後に、メトリクスの測定と分析方法を学ぶ。メトリクスを用いて測定した結果は、ソフトウェアの品質の向上やプロジェクトでの生産性の向上の指針となることを、事例を用いて紹介する。

第2回 データ分析・品質予測の技法と統計手法

担当講師

小笠原 秀人

(千葉工業大学 教授)

内容

測定されたデータの活用方法に焦点をあて、データ分析・品質予測の技法と統計手法について学ぶ。最初にソフトウェア開発におけるデータ分析の技法を学ぶ。目的に応じてさまざまな技法があることを説明し、個々の技法の具体的な使い方を学ぶ。次に、ソフトウェアの品質予測に関する技法を学ぶ。品質予測で利用するモデルは、予測する対象と目的によって異なることを理解し、実用性や開発現場での使用頻度を考慮して分類された閾値モデル、ゾーンモデル、関数モデル、トレンドモデルについて学ぶ。最後に、ソフトウェアメトリクスと統計手法について講義する。ソフトウェア開発をより良くするためには、プロジェクトの実行中と次のプロジェクトに向けて、メトリクスの継続的な測定と分析が必要となる。測定された値を比較するために統計手法を適用する。この講義によって、データ分析・品質予測の技法や統計手法を適用して客観的な結論を見いだすことが重要であることを理解する。

第3回 ソフトウェアの品質改善

担当講師

片峯 恵一

(九州工業大学 准教授)

内容

ソフトウェアの品質改善におけるデータサイエンスの応用について講義する。ソフトウェアの不具合を取り除くためのソフトウェアのテストに、開発時間の3割から7割が当てられている例もある。最初に、ソフトウェアの品質について紹介する。続いて、ソフトウェアの品質を改善するための戦略を示す。この戦略を実践するための手法としてPSP、およびTSPがある。前者は個人における開発手法であり、後者はチーム開発における開発手法である。講義では両者における品質改善活動を説明し、複数の品質尺度に関してデータに基づいた事例を紹介する。これらの講義によって、ソフトウェアの品質改善には、データに基づいて評価基準や判断基準を活用し、レビューやインスペクションの効率を向上させることが重要であることを理解する。

第4回 レビューの測定と分析

担当講師

小笠原 秀人

(千葉工業大学 教授)

内容

レビューの測定と分析について講義する。最初にソフトウェア開発の概要を紹介し、品質計画として、開発中に埋め込まれる欠陥数とバグ数を予測する必要性を説明する。また、レビューレポートから収集したデータを用いて、バグ予測を行った分析事例も紹介する。次に、レビュー実施計画のポイントとレビューの実施プロセスを紹介する。ここではレビューの準備が重要であることを示す。最後に、プロジェクトで収集・蓄積したレビューデータの分析方法を説明し、データ分析の基本が予定と実績の比較であることを示す。ここでは、目的に応じて分析方法を決めて活用する必要があることを理解できるように、分析・可視化手法の特徴を紹介する。

第5回 テストの測定と分析

担当講師

小笠原 秀人

(千葉工業大学 教授)

内容

テストの測定と分析について講義する。最初に、ソフトウェア開発における品質計画という作業の目的を位置づけるために、具体的な品質計画の例を示す。ここでは、テスト設計の重要性と収集したデータから理解すべき事項を理解する。次に、膨大な条件の組み合わせへ対処するために、合理的にテスト項目数を減らす必要があることを示し、組み合わせテスト設計プロセスを事例と共に紹介する。最後に、テストデータの分析方法を学ぶ。テストデータの分析の起点は、開発計画である。また、データ分析の基本は予定と実績の比較である。テストの進捗確認、バグ原因の特定、品質状況の把握といった目的に応じた分析方法を紹介することで、状況に応じて分析方法を選択できるようになることを目指す。

第6回 個人とチームの能力向上

担当講師

片峯 恵一

(九州工業大学 准教授)

内容

個人とチームの能力向上について講義する。最初にソフトウェア技術者に必要な能力を紹介し、ソフトウェアの品質を向上させるためには、個人とチームの能力を向上させる必要があることを示す。これによって、品質の改善には、ソフトウェアプロセスを定義し、活用することの重要性を理解する。次に、PSPで個人に求められる能力の向上として、プログラムの規模見積もりやスケジュール計画、タスク計画による計画立案と進捗管理、レビュー能力向上による品質改善への取り組みを示し、これらの活動の事例を紹介する。また、TSPによるチーム能力向上を目指すために、チームのゴールの設定と役割分担、チームによる開発計画の立案、次の開発サイクルに向けた改善提案について講義する。これによって、チームメンバー全員が定量的な評価に基づく継続的な改善を行えるようになることを示す。

第7回 ソフトウェア開発における統計モデル・機械学習の利用(1)

担当講師

阿萬 裕久

(愛媛大学 特任教授)

内容

ソフトウェア開発における統計モデル・機械学習の利用例として、最初にFault-Prone モジュール分析を紹介する。Fault-Prone モジュールとは、バグがありそうなプログラムという意味である。Fault-Prone モジュール分析によって、実際にフォールトが見つかったモジュールの特徴を定量的に観測し、どのような特徴や傾向を持ったモジュールに「フォールトが潜んでいそうなのか」を明らかにする。次にメトリクスによる特徴の定量化について講義する。ここでは基本的なメトリクスを紹介し、これらのメトリクスを適用して得た測定値を用いて行う決定木分析、およびロジスティック回帰モデルによる分析事例を紹介する。最後に、予測モデルの構築と評価を学ぶ。これによって、様々な分析のモデルが、予測モデルとして使えることを理解する。

第8回 ソフトウェア開発における統計モデル・機械学習の利用(2)

担当講師

阿萬 裕久

(愛媛大学 特任教授)

内容

リポジトリマイニングに関連する話題を紹介する。「ソフトウェアリポジトリ」には、ソフトウェア開発の成果物やそれに関するデータが蓄積されて管理されている。リポジトリマイニングでは、フォールトの修正で書き換えられた部分が、いつの時点で書かれたものであったのかを調べる。最初に、これらの用語の定義をして、リポジトリマイニングの意義を示す。次に、リポジトリマイニングによるフォールト混入予測の例を、基本的なプロセスメトリクスと共に紹介する。最後に、プログラム間の繋がりを分析する技術として、プログラム内の相関ルールマイニングを行って、ロジカルカップリングを検出する例を紹介する。

難易度参考指標
  • 初学者でも分かりやすい内容です
  • 一部に専門性のある内容を含みます
  • 専門性の高い内容です
コマ数
全 8 コマ(1コマ45分程度)
コマ数 担当講師 内 容
全 8 コマ
(1コマ45分程度)
小笠原 秀人(千葉工業大学 教授)
第1回 ソフトウェア開発における測定と分析
小笠原 秀人(千葉工業大学 教授)
第2回 データ分析・品質予測の技法と統計手法
片峯 恵一(九州工業大学 准教授)
第3回 ソフトウェアの品質改善
小笠原 秀人(千葉工業大学 教授)
第4回 レビューの測定と分析
小笠原 秀人(千葉工業大学 教授)
第5回 テストの測定と分析
片峯 恵一(九州工業大学 准教授)
第6回 個人とチームの能力向上
阿萬 裕久(愛媛大学 特任教授)
第7回 ソフトウェア開発における統計モデル・機械学習の利用(1)
阿萬 裕久(愛媛大学 特任教授)
第8回 ソフトウェア開発における統計モデル・機械学習の利用(2)
上に戻る