CodeZine(コードジン)

特集ページ一覧

品質の特定のためのパターン:「重要な品質の発見」「品質シナリオ」「品質ストーリー」

QA to AQ 第5回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2021/01/14 11:00

目次

品質シナリオ

  • パターン:品質シナリオ(原題Agile Quality Scenarios , 原著 Joseph Yoder, Rebecca Wirfs-Brock, Ademar Aguilar)[1]

 「品質は内側から始まる。その後は外側へと進んでいく」――Bob Moawad(教育コンサルタント)

 スプリント中に、プロダクトバックログ項目が取り出され、見積もられます。多くの場合、バックログ項目は機能要件に限られています。これらのバックログ項目をより詳細化する形でシナリオとユーザーストーリーが記述され、具体的なタスクを特定し、作業量を見積もれるようになります。これは、プロジェクトにおいて機能の開発を増分的に進める上で役立ちます。ただし、システムが進化するにつれて、セキュリティ、性能、信頼性、注意が必要なその他の品質特性など、システムの多くの他の重要な品質特性が出てくる可能性があります。通常、プロダクトバックログに機能要件のみが含まれる場合、これらの要件は特定されていません。

 システムの開発中に対処する必要がある重要な品質特性について、どのようにすればよりよい理解と大まかな見解を得ることができるでしょうか?

***

 システムの中核的な品質特性の検討と実装が遅れると、システムが激変し、アーキテクチャがぼろぼろになり、多くのリファクタリングが必要になったり、汚いコードになったりする可能性があります。

 早期に考慮すべき品質特性を特定することが重要であり、そうすることにより優先順位を付けることが可能になり、さらには「完成の定義」(Definition of Done:DoD)にも役立たせることができます。

 品質特性がシステムのさまざまな部分へどのように影響するのかを理解するのは困難かもしれません。アジャイルチームにとって、高いレベルの視点から重要な品質特性を示す方法を持つことは非常に有用です。

 アジャイルチームは多大で詳細な文書化作業を好まず、システムの品質特性を含む重要な要件を記述するために手軽(ライトウェイト)な方法を好みます。

***

 そこで、プロセスの早い段階で、手軽な方法を利用して、性能、負荷、信頼性、セキュリティなどの重要な非機能要件を扱う大まかな品質シナリオを作成し、記述します。特定の品質特性が重要な関心事であることがわかっている場合は、製品ロードマップの一部として優先順位を付け、関連するスプリント時に組み入れることができます。より多くの品質特性が明らかになると、必要に応じてそれらのシナリオを作成できます。品質シナリオは、2つの方法で利用できます。品質上の関心事に基づいてシステムの中核的な側面の設計を推進すること、および、システムのアーキテクチャがその特定の品質を満たしているかどうかを評価するための具体的なシナリオを捉えることです。

 最終的には品質シナリオを利用して、品質ストーリーを作成し、品質特性のテストと検証に役立てることができます。下図は、大まかな品質シナリオのテンプレートの例です(出典: SEI [BCK])。

品質シナリオ
品質シナリオ

 品質シナリオでは、特定の条件に対してソフトウェアがどのように応答するかを簡単に説明し、1つ以上のシステムの品質特性を表します。システム品質(またはシステム品質属性)という用語は、システムの非機能特性を意味します。これらの用語は、英語表記における接尾辞のため「イリティ(ilities)」と呼ばれることもあります。

 以下に、品質シナリオを作成する対象としての一般的な品質特性を示します。

  • 性能:ソフトウェアの応答性。
  • 可用性:システムが正常に稼働している時間、障害間の間隔の長さ、または、障害後に操作を再開するのに必要な時間の長さ。
  • 変更可能性:変更を迅速かつコスト効率よく行う能力。
  • 移植性:システムを異なるコンピューティング環境で実行できる能力。
  • 使いやすさ:ユーザーがシステムを操作してタスクを達成するための使いやすさ、または、トレーニングのしやすさ。
  • セキュリティ:システムの使用または変更の不正な試みに対抗する能力。

 品質シナリオを書き、以下の部分を持つ一般的なフォーマットに従って目的とする品質特性を記述できます: 刺激の発生源(または品質が表出されることの理由となるもの)、刺激(またはアクションや事象の簡単な要約)、成果物および環境(どのような動作条件下でのシステムのどの部分か)、応答(システムが反応したときに何が起こるか)、および応答測定(期待される具体的かつ感知できる結果)。

 さらに、各シナリオに意味のあるわかりやすい名前を付けます。

 例として、森林管理ソフトウェアシステムにおける期待される信頼性を示す2つの品質シナリオを以下に示します。ソフトウェアは、センサーによって報告される履歴データと現在の天候を使用して、火災の危険性を予測します。ここで、同じ品質に関する異なるシナリオを書き出して、わずかに異なる条件下でシステムがどのように動作するかを示すことができます。

信頼性品質シナリオ

 80%未満のセンサー報告が得られている場合の火災危険性の予測。

 森林警備員は、センサー報告の履歴の量を指定して、森全体の火災危険性予測を要求します。システムは、センサーの80%未満が定期的に報告しているため、低い信頼度をもって火災危険性を「低い」「中程度」「高い」または「極端に高い」と予測します。

信頼性品質シナリオ

 80%以上のセンサー報告が得られている場合の火災危険性の予測。

 森林警備員は、センサー報告の履歴の量を指定して、森全体の火災危険性予測を要求します。システムは、センサーの80%以上が定期的に報告しているため、高い信頼度をもって火災危険性を「低い」「中程度」「高い」または「極端に高い」と予測します。

品質シナリオの例

 80%未満のセンサー報告により予測する

品質シナリオの例

 80%以上のセンサー報告により予測する


  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:QA to AQ:アジャイル品質パターンによる、伝統的な品質保証からアジャイル品質への変革

もっと読む

著者プロフィール

  • 鷲崎 弘宜(ワシザキ ヒロノリ)

     早稲田大学 研究推進部 副部長・グローバルソフトウェアエンジニアリング研究所所長・教授。国立情報学研究所 客員教授。株式会社システム情報 取締役(監査等委員)。株式会社エクスモーション 社外取締役。ガイオ・テクノロジー株式会社 技術アドバイザ。ビジネスと社会のためのソフトウェアエンジニアリングの研...

  • 長谷川 裕一(ハセガワ ユウイチ)

     合同会社Starlight&Storm 代表社員。日本Springユーザ会会長。株式会社フルネス社外取締役。  1986年、イリノイ州警察指紋システムのアセンブリ言語プログラマからスタートして、PL,PMと経験し、アーキテクト、コンサルタントへ。現在はオブジェクト指向やアジャイルを中心に...

  • 濱井 和夫(ハマイ カズオ)

     NTTコムウェア株式会社 技術企画部プロジェクトマネジメント部門、エンタープライズビジネス事業本部事業企画部PJ支援部門 兼務 担当部長、アセッサー。PMOとしてプロジェクトの適正運営支援、及びPM育成に従事。  IIBA日本支部 教育担当理事。BABOKガイド アジャイル拡張版v2翻訳メンバー...

  • 小林 浩(コバヤシ ヒロシ)

     株式会社システム情報 フェロー CMMコンサルティング室 室長。CMMI高成熟度リードアプレイザー(開発,サービス,供給者管理)。AgileCxO認定APH(Agile Performance Holarchy)コーチ・アセッサー・インストラクター。Scrum Alliance認定ScrumMas...

  • 長田 武徳(オサダ タケノリ)

     株式会社エヌ・ティ・ティ・データ シニアITアーキテクト。ITサービス・ペイメント事業本部所属。2006年入社以来、決済領域における各種プロジェクトを担当後、2018年よりプロダクトオーナ・製品マネージャとしてアジャイル開発を用いたプロジェクトを推進。現在は、アジャイル開発におけるQAプロセスの確...

  • 田村 英雅(タムラ ヒデノリ)

     合同会社 GuildHub 代表社員。日本 Spring ユーザー会スタッフ。大学で機械工学科を専攻。2001 年から多くのシステム開発プロジェクトに従事。現在では主に Java(特に Spring Framework を得意とする)を使用したシステムのアーキテクトとして活動している。英語を用いた...

  • 陳 凌峰(チン リョウホウ)

     フリーランサー。2003年に上海交通大学(ソフトウエア専門)を卒業後、2006年から日本でシステム開発作業に従事。技術好奇心旺盛、目標は世界で戦えるフルスタックエンジニア。現在はマイクロサービスを中心にアジャイル 、DevOpsを展開中。

あなたにオススメ

All contents copyright © 2005-2022 Shoeisha Co., Ltd. All rights reserved. ver.1.5