(前NTTデータ フェロー システム科学研究所長)山本 修一郎
この連載も、今度の記事でとうとう120回になる。毎月書いてきたので、ちょうど10年である。これまで継続できたことはWebサイトで公開している本連載を多くの方々にご覧いただいていることの賜物であることに感謝したい。
先日も、ある大学院で保証ケースについて講義した際に、この連載をみているという社会人学生の方が、要求工学について質問したいことがあるというので聞いてみると、「操作性要求の曖昧さの原因」が知りたいということだった。そこで今回は、これまでの連載を横断的に振り返りながら、操作性要求の曖昧さを解消する方法について考えてみたい。
要求の曖昧さについての質問
いただいた質問は、およそ、次のような内容だった。
「操作性についての要求を明確に定義したい。そのためには、操作仕様の曖昧さを分析しないといけないと考えた。そこで、山本先生が連載されている要求工学 第38回『要求の曖昧さ』[1]をみたところ、『要求の曖昧さの原因』として、『用語、指示範囲、ドメイン知識、システム化、依存関係』の5個があり、操作仕様の曖昧さの原因がどれに該当するか考えたが、わからない。どれでしょうか?」
ところで、この話題をフェイスブックで紹介したところ、友人の一人から、次のような反応があった。
「インタラクションの意で依存関係でしょうか。」
そこで、以下のようにコメントした。
「なるほど、いい線ですね。でも、操作性とは何かが具体的定義されていれば、たとえば、操作時に関連する要求の依存関係が曖昧だということになるのですが、そもそも『操作性がよい』とはどういうことなのかが定義されていないので、ここでの回答は、『用語』に曖昧さの原因があるということになりますね。
ISO9126などでは、使用性を、理解性、習得性、運用性、魅力性に分解した上で、使用性基準に適合することで、使用性を評価します。いずれにしろ、操作性とは何かを、まず定義しないと始まらないのですが、曖昧さが生じないような定義の仕方がわからないということでしょうね。そのあたりは、連載42回の『品質要求工学』で解説しています。ですので、連載をよく調べれば、どうすればいいかがわかるとは思いますが、つないで読むのは難しいかもわかりませんね。」
ということで、連載第120回の記事『操作性要求の曖昧性』の解消方法について書くことにしたという次第である。
非機能要求の扱い
操作性要求は、非機能要求の一つである。
これまでの要求仕様化手法では、情報システムの機能要求を獲得し正確に記述することに主眼が置かれてきたこともあり、信頼性や安全性などの非機能要求についてはあまり留意されてこなかった[2]。このような現状に対して、経済産業省が平成18年4月4日に発表した「情報システムの信頼性向上に関するガイドライン(案)」では、「非機能要求」を明確に定義することが情報システムの信頼性を向上する上で重要であると指摘している[2]。
しかし、冒頭で紹介した質問からもわかるように、非機能要求を明確に定義することは難しい。要求工学の教科書でも非機能要求の分類については説明されているけれども、定義方法について明確に記述しているものは少ない。
非機能要求の定義について具体的に説明している文献として、BABOK[3]と、Robertsonらによる「要件プロセス完全修得法」[4]がある。以下では、これらについて紹介しよう。
BABOKでの扱い
BABOKでは、9.17 非機能要求の分析 .3 要素のカテゴリ(P190)で、操作性について触れて、以下のように記述している。
「ソフトウェアアプリケーションが、ユーザーにとってわかりやすいか。操作性の要求には、アプリケーションがニーズを本当に満たしているかどうかのユーザーの認識度や、アプリケーションの学習容易性、ユーザビリティが含まれる。」
また、非機能要求の測定について、以下のように述べている。
「非機能要求の定義には、それぞれの要求の成功をテストできるように、適切な測定方法を含めておくべきである。非機能要求の中には、主観に強く依存するもの(『直観的インターフェース』など)もあるが、注意深く考えれば、成功を測定する手段は見つかるはずである。」
このように、非機能要求については、「注意深く考えれば、成功を測定する手段は見つかる」のである。したがって、操作性要求も非機能要求なのだから、操作性要求が成功する手段を見つけることもできるはずである。
また、BABOKでは、非機能要求の文書化について、宣言的な文章で記述することを推奨している。宣言的な文章で非機能要求を記述する理由は、非機能要求の「成功を測定する手段」が必要だからである。たとえばBABOKでは、次のような例を挙げている。
例1:「6時間以内のトレーニングで、オペレータの90%がシステムのすべての機能性を使いこなせるようになる。」
例2:「システムの応答の90%は2秒以内に行われる」
このようにBABOKでは、非機能要求をテスト可能な文章で記述することとしている。テスト可能な文章であれば成功するかどうか測定できるわけである。
ところで、宣言的な文章で非機能要求を記述するということは、ゴール指向で非機能要求を記述することである。上述した2つの例文をゴール文とみなすことができることは明らかである。「操作性が良い」というトップゴールを、この2つの下位ゴールに分解することで段階的に、「操作性が良い」ということの意味を具体化できる。
RobertsonとRobertson[4]
非機能要件とは、システムがもたなければならない固有の属性である。RobertsonとRobertson(以下、R&Rと略す)は、非機能要件を次の8種類に分類している。
・ルック・アンド・フィール要件
・使用性要件
・パフォーマンス要件
・運用・操作要件
・保守性・可搬性要件
・セキュリティ要件
・文化的・政治的要件
・法的要件
和訳では、「要件」となっているが、原文は「要求(Requirement)」なので、以下では「要求」に読み替えることにする。
R&Rは、P186以降で、これらの非機能要求に対する適合基準について説明している。
非機能要求を定量的に測定できなければ、要求とは言えないと述べている。適合基準によって、非機能要求が満たされていることを確認することができる。
適合基準を説明する最初の例として、次の文を取り上げている。
「システムはユーザーフレンドリーであること。」
この要求文は明らかに曖昧である。曖昧さを解消するために、依頼主の意図を分析することによって、「ユーザーがシステムの使い方にすぐ慣れることができる」ことが、「ユーザーフレンドリー」という用語の意図であることになったとすると、標準的な作業を用意してその習得時間によって、「ユーザーフレンドリーであること」を測定できることになる。この考察によって、「システムはユーザーフレンドリーであること」という非機能要求の適合基準を次のように定義できるとしている。
続きは本誌でご覧頂けます。→本誌を購入する
ご購入のお申込みは電話(03-3507-0560)でも承っております。
- 60:要求とアーキテクチャ
- 61:要求と保守・運用
- 62:オープンソースソフトウェアと要求
- 63:要求工学のオープンな演習の試み
- 64:Web2.0と要求管理
- 65:ソフト製品開発の要求コミュニケーション
- 66:フィードバック型V字モデル
- 67:日本の要求定義の現状と要求工学への期待
- 68:活動理論と要求
- 69:ビジネスゴールと要求
- 緊急:今、なぜ第三者検証が必要か
- 71:BABOK2.0の知識構成
- 72:比較要求モデル論
- 73:第18回要求工学国際会議
- 74:クラウド時代の要求
- 75:運用要求定義
- 76:非機能要求とアーキテクチャ
- 77:バランス・スコアカードの本質
- 78:ゴール指向で考える競争戦略ストーリー
- 79:要求変化
- 80:物語指向要求記述
- 81:要求テンプレート
- 82:移行要求
- 83:要求抽出コミュニケーション
- 84:要求の構造化
- 85:アーキテクチャ設計のための要求定義
- 86:BABOKとREBOK
- 87:要求文の曖昧さの摘出法
- 88:システムとソフトウェアの保証ケースの動向
- 89:保証ケースのためのリスク分析手法
- 90:サービス保証ケース手法
- 91:保証ケースのレビュ手法
- 92:要求工学手法の再利用
- 93:SysML要求図をGSNと比較する
- 94:保証ケース作成上の落とし穴
- 95:ISO 26262に基づく安全性ケースの適用事例
- 96:大規模複雑なITシステムの要求
- 97:要求の創造
- 98:アーキテクチャと要求
- 99:保証ケース議論分解パターン
- 100:保証ケースの議論分解パターン[応用編]
- 101:要求発展型開発プロセスの事例
- 102:参照モデルに対する保証ケース
- 103:参SEMATの概要
- 104:参SEMATの活用
- 105:SEMATと保証ケース
- 106:Assure 2013の概要
- 107:要求の完全性
- 108:要求に基づくテストの十分性
- 109:システムの安全検証知識体系
- 110:機能要求の分類
- 111:IREB
- 112:IREB要求の抽出・確認・管理
- 113:IREB要求の文書化
- 114:安全要求の分析
- 115:Archimate 2.0のゴール指向要求
- 116:ゴール指向要求モデルの保証手法
- 117:要求テンプレートに基づく要求の作成手法
- 118:ビジネスゴールのテンプレート
- 119:持続可能性要求
- 120:操作性要求
- 121:安全性証跡の追跡性
- 122:要求仕様の保証性
- 123:システミグラムとドメインクラス図
- 124:機能的操作特性
- 125:セキュリティ要求管理
- 126:ソフトウェアプロダクトライン要求
- 127:システミグラムと安全分析
- 128:ITモダナイゼーションとITイノベーションにおける要求合意
- 129:ビジネスモデルに基づく要求
- 130:ビジネスゴール構造化記法
- 131:保証ケース導入上の課題
- 132:要求のまとめ方
- 133:要求整理学
- 134:要求分析手法の適切性
- 135:CROS法の適用例
- 136:保証ケース作成支援ツールの概要