開発が完了してからソフトウェアの問題点を見つけて修正するには、100 ~ 1000 倍も費用がかかります。プロジェクトのライフサイクルを通して品質の検証と管理を行うことは、適切な時点で必要な目標を達成するために不可欠です。

トピック

ライフサイクルを通した品質の検証とは ページの先頭へ

すべての成果物の品質は、成果物が完成するごとにプロジェクトのライフサイクルのさまざまな時点で評価することが重要です。成果物は、それぞれの反復の最後に、成果物を完成する作業として評価する必要があります。特に、実行可能なソフトウェアを作成する際は、重要なシナリオの実演とテストをそれぞれの反復で実行する必要があります。これにより、設計上の妥協策についてより明確な理解を得たり、アーキテクチャ上の欠陥を早期に修正することができます。これは、プロジェクトのライフサイクルの終盤になってから統合されたソフトウェアのテストを行う、従来の手法とは対照的です。

品質とは ページの先頭へ

概論 ページの先頭へ

品質は、誰もが、製品、プロセス、サービスに対してその確保に努めます。ただし、「品質とは何か」と質問されると、人によって意見はさまざまです。一般的な答えは次のいずれかまたはそれ以外になります。

  • 「説明するのは難しいけれど見れば分かるよ」
  • 「要求を満たすもの」

特にソフトウェアに関して、おそらく品質について最もよく述べられるのは、次に示すような品質の欠如についてです。

「どうしてこんなに品質が低いものをリリースできるのか」

こうしたよくある反応に対しては、厳密に品質を検査してその動作を改善する余地はほとんどないと説明されます。これらの説明は、品質を測定して達成できる方法を明確にする必要があることを示します。

ただし、品質は単一の特性または属性ではありません。品質は複数の基準を持ち、製品またはプロセスごとに処理される場合があります。製品の品質は基準を満たす製品を作成することの一点にありますが、プロセスの品質は製品を正しく作成することに重点があります。詳しくは、「../../process/workflow/test/co_rqlty.htm -- このハイパーリンクは、生成されたこの Web サイト内に存在しません概念: 製品の品質」と「../../process/workflow/environm/co_sqlty.htm -- このハイパーリンクは、生成されたこの Web サイト内に存在しません概念: プロセスの品質」を参照してください。

品質の定義 ページの先頭へ

品質の定義は、"The American Heritage Dictionary of the English Language" 第 3 版、Houghton Mifflin Co.,© 1992 年、1996 年、に次のように記載されています。

Quality (品質) (kwol'i-te) 名詞、複数形 -ties、短縮語 qlty1.a. 本来備わっているか特徴づける特質、特性。b. 個人の特徴、特に性格の特徴。2. 欠かすことのできない特徴、本質。3.a. 質の優位性。b. 優秀さの段階または等級。

この定義が示すように、「Quality」は 1 つではなく複数の意味があります。この定義を使用してソフトウェア開発に適用するには、定義を手直しする必要があります。このため、Rational Unified Process (以下 RUP) では、「Quality」を次のように定義します。

「製品作成の到達度を示す特性。製品が、合意されたプロセスによって作成され、合意された尺度または基準に従って測定された結果、合意された要求を満足することを示す。」

品質基準の達成は単に「要求を満たす」こと、またはユーザーのニーズを満たしたり期待に応える製品を作成することではありません。品質には、品質基準が達成されていることを示す尺度と基準の決定と、プロセスを経て作成される製品が必要な品質の等級を達成し、繰り返し作成してもその品質を維持できることを保証するプロセスの実装も含まれます。

RUP における品質の概念の定義方法について詳しくは、次に示すページも参照してください。

品質の決定者 ページの先頭へ

一般的に品質は、1 つのグループが管理したり責務を負うものと誤解されています。この概念は、品質保証 (ほかに、検査、品質管理、品質工学など) と名付けられたグループを編成し、品質に関する特権と責務を与えることにより引き継がれる場合があります。

品質は、全員で責務を負う必要があります。品質基準を達成するには、個別の作業分野ではなく、ほとんどすべてのプロセスの作業を統合し、作成する製品 (または成果物) の品質と、担当する部分のプロセスの実装に対して、全員で責務を負う必要があります。

れぞれの役割が、次の方法で品質基準の達成に貢献します。

  • 製品の品質 — 作成する各成果物に対して総合的な品質基準の達成に貢献
  • プロセスの品質 — 担当するプロセスの作業について品質基準を達成

高品質な製品の達成に対しては全員が責務と賞賛を共有し、低品質な製品については全員で責任をとります。一方、特定のプロセス コンポーネントについては、その部分を直接担当する関係者のみがそのコンポーネント (および成果物) の品質に対する責務を負います。ただし、誰かが品質管理に対して責務を負う必要があります。この担当者は、監視の権限を与えられ、品質を確実に管理、測定、達成します。品質管理に対する責務を負う役割は、プロジェクト管理者が果たします。

品質に関する一般的な誤解 ページの先頭へ

品質に関して多くの誤解があります。最も一般的なものを次に示します。

品質は製品になってから追加したり「検査」できる

ある製品について、それが何か、必要な機能は何か、使用するのは誰か、どのように使用するか、などの説明がなければ、それを作成できません。これと同様に、品質とその達成について、説明、測定方法、製品を作成するプロセスの部分がなければ実現できません。

../../process/workflow/manageme/co_meqlty.htm -- このハイパーリンクは、生成されたこの Web サイト内に存在しません概念: 品質の測定」と、後に示す「品質は自然に決まる」を参照してください。

品質は 1 つの基準、属性、特性で、誰にでも同じ意味を持つ

品質は 1 つの基準、属性、特性ではありません。品質はさまざまな方法で測定します。品質のメトリクスと基準は、製品、組織、顧客のニーズを満たすために設定します。

品質は、プロセス品質に適用するもの、製品品質に適用するもの、その両方に適用するものなど、さまざまな基準に従って測定できます。次の基準で品質を測定できます。

  • 進捗状況 — デモンストレーションされたユース ケースまたは完了したマイルストーンなど
  • 差異 — スケジュール、予算、要員などに関する、計画と実際の相違
  • 信頼性 — 実行中の障害 (クラッシュ、ハング、メモリ リークなど) に対する耐性
  • 機能 — 成果物が、要求されているユース ケースを意図どおりに実装、実行
  • 性能 — 成果物が、タイムリーで容認できる形で実行および応答し、負荷、ストレス、そして長時間運用といった実世界の運用特性に当てはめた場合にも、許容範囲内で動作を継続

詳しくは、「概念: 品質特性」、「../../process/workflow/test/co_rqlty.htm -- このハイパーリンクは、生成されたこの Web サイト内に存在しません概念: 製品の品質」、「../../process/workflow/environm/co_sqlty.htm -- このハイパーリンクは、生成されたこの Web サイト内に存在しません概念: プロセスの品質」を参照してください。

品質は自動的に決まる

品質は自動的には決まりません。品質基準を達成するためには、プロセスを実装して遵守し、測定する必要があります。RUP の目的は、開発組織内でタスクや責務を割り当てるために、作業分野による手法を提供することにあります。Rational Unified Process の目標は、予想可能なスケジュールと予算の範囲内で、エンドユーザーのニーズに適合する品質の高いソフトウェアの生産を保証することです。RUP は、最新のソフトウェア開発においける幅広いプロジェクトと組織に合わせてカスタマイズが可能な形式で、多くの最善の実践原則を組み込んでいます。../../process/workflow/ovu_env.htm -- このハイパーリンクは、生成されたこの Web サイト内に存在しません環境の作業分野では、ニーズに最も合ったプロセスを構成する方法についての説明を示します。

さまざまな要因に基づいて、プロセスを構成し、品質 (受け入れの基準) を決めることができます。最も一般的な要因を次に示します。

  • リスク (債務を含む)
  • 市場機会
  • 収入の要求
  • 要員またはスケジュールの問題点
  • 予算

プロセスと受け入れ基準の変更は、プロジェクトの開始時に確認して同意する必要があります。

Rational Unified Process における品質の管理 ページの先頭へ

品質の管理は次の目的で実行します。

  • 受け入れ可能な品質の適切な指標 (メトリクス) を確認する
  • 品質の評価と査定に使用する適切な基準を確認する
  • 品質に影響する問題点をできるだけ早期かつ効果的に確認して適切に対処する

品質の管理は、RUP のすべての作業分野、ワークフロー、フェーズ、反復全体で実装します。一般的に、ライフサイクル全期間の品質の管理では、プロセスの品質と製品の品質の両方を実装、測定、評価します。各作業分野で品質を管理するための作業のいくつかを次に示します。

  • ../../process/workflow/ovu_req.htm -- このハイパーリンクは、生成されたこの Web サイト内に存在しません要求の作業分野における品質の管理には、要求の成果物セットの一貫性 (標準の成果物とその他の成果物間)、明確性 (株主、利害関係者、その他の役割すべてに対する明確な情報の伝達)、正確性 (適切なレベルの詳細度と精度) の分析が含まれます。
  • 分析と設計の作業分野における品質の管理には、設計モデルの一貫性、要求の成果物から変換した成果物、実装の成果物に変換する成果物を含む設計成果物セットの評価があります。
  • 実装の作業分野における品質の管理には、実装の成果物の評価と、該当する要求の成果物、設計の成果物、テストの成果物に対するソース コードまたは実行可能成果物の評価が含まれます。
  • ../../process/workflow/ovu_test.htm -- このハイパーリンクは、生成されたこの Web サイト内に存在しませんテストの作業分野では、この作業分野で実行する作業の大部分が、前に示した品質管理の 3 つの目的に対処するものであるため、品質の管理に最も重点を置きます。
  • ../../process/workflow/ovu_env.htm -- このハイパーリンクは、生成されたこの Web サイト内に存在しません環境の作業分野はテストの作業分野と同様に、品質管理の目的に対処するための多くの作業が含まれます。この作業分野では、ニーズに最も合ったプロセスを構成する方法についての説明が示されます。
  • における品質の管理には、実装の成果物と導入の成果物の評価、および顧客に製品を納入するために必要な要求、設計、テスト成果物に対する実行可能な成果物と導入の成果物の評価が含まれます。
  • ../../process/workflow/ovu_mgm.htm -- このハイパーリンクは、生成されたこの Web サイト内に存在しませんプロジェクト管理の作業分野には、開発プロセスの実装、遵守、進捗を評価するために必要なレビューと監査を含め、品質の管理に関する多くの作業の概要があります。


Rational Unified Process   2003.06.15