(前NTTデータ フェロー システム科学研究所長)山本 修一郎
これまで本連載では、要求とアーキテクチャについて、2回にわたって紹介した。アーキテクチャ記述言語(連載第60回)と、非機能要求を用いたアーキテクチャ設計の評価(連載第76回)である。今回は、アーキテクチャ設計のための要求定義プロセスを紹介する。
要求定義は、それ自体で完結するプロセスではない。その後に続くアーキテクチャ設計が実行できなければ意味がない。したがって、アーキテクチャ設計を前提とした要求定義活動が必要になる。
注目されるアーキテクチャと要求の関係
最近、カーネギーメロンのSEIがアーキテクチャ中心工学ACE(Architecture-Centric Engineering)を提唱している[3]。ACEでは、ビジネスゴールに着目してアーキテクチャを設計してシステムを開発する。このプロセスで、アーキテクチャがビジネスゴールを満たすことと、システムがアーキテクチャ設計に適合することを確認する。つまり、ビジネスゴール、アーキテクチャ、システムの相互関係を確認しながら反復的にシステムを開発する方法論がACEである。ACEは、これまでのSEIの活動を集大成する実践的な取組みでもある。ここで注目すべき点は、ビジネスゴールを分析することとアーキテクチャ設計を関係付けていることである。本連載でもゴール指向要求工学について繰り返し紹介してきたが、ACEでもゴール指向要求工学を取り入れている。
またTOGAFでは、エンタープライズ・アーキテクチャを実現するためのADF(Architecture Development Framework)が中心で、要求管理になっている[4]。
そこで今回は、アーキテクチャ設計を前提とする要求定義プロセスについて、EelesとCrippsによる書籍[5]から要求定義プロセスのポイントを紹介する。
ところで、インターネットで「Architecture Centric Engineering」を検索したら、文献[6]がヒットした。やはりACE(Architecture Centric Engineering)という名称でソフトウェア工学研究会の資料だった。内容をみると、顧客要求に基づいてアーキテクチャを設計する手法である。しかし、SEIのACEのような包括的なエンジニアリング方法論ではないので注意しておく。SEIのACEのAとCの間にハイフンがあるが、日本のACEには、AとCの間にハイフンはない。日本のACEが先にあったからハイフンを入れたのかもしれないが、日本のACEにも先見性があったといえる。
要求定義プロセス
EelesとCrippsによるアーキテクチャ設計のための要求定義プロセスを、要求定義の内部と外部ならびに、要求の識別と定義の観点から4象限に分類してみると、図1のようになる。
要求の外部では、ステークホルダから要求を抽出して識別する要求準備プロセスと、定義された要求をステークホルダに定義して妥当性を確認する要求確認プロセスがある。このように外部としたのは、要求定義から見て、外側にいるステークホルダとの相互作用が必要だからである。そういう意味では、外部ではなく、ステークホルダとしたほうが良かったかもしれないが、長くなるので外部としたのである。
図1 要求定義プロセス(クリックで拡大)
要求の内部では、機能要求と非機能要求を識別して優先順位を設定する要求一覧プロセスと、詳細に機能要求と非機能要求を定義する要求定義プロセスがある。
これらの要求準備、要求一覧、要求定義、要求確認のプロセスを反復的に実施することにより、要求を段階的に具体化することになる。
ここでEelesとCrippsは、ステークホルダが提示するのは要望(Requests)であって、要求(Requirements)ではないと述べている。日本では、要求と要件を区別しているように、ステークホルダがシステムに期待することと、システムの仕様として定義されることには差異があるということだと解釈できる。同書を読んだ限りでは、ややこしい話だが、彼らの要望が要求であり、要求が要件だと理解してよい。
要求定義活動の生産物
EelesとCrippsらの要求定義活動には、図2に示すような入力と出力がある。要求定義活動への入力情報としては、ビジネス実体モデル、ビジネスプロセスモデル、ビジネスルール、EA(エンタープライズ・アーキテクチャ)方針、既存IT環境、ビジョンがある。ビジネス実体モデルでは、ビジネス領域の基本概念を定義する。ビジネスプロセスモデルでは、ビジネスによって実施される活動と、その役割を記述する。EA方針では、アーキテクチャを作成するために組織レベルで必要なルールとガイドラインを記述する。既存IT環境では、開発対象システムの制約条件となる既存のIT環境を定義する。ビジョンでは、ステークホルダから見たシステムのビュウを定義する。これらの情報がないと要求定義活動に着手できないのである。
要求定義活動からの出力情報には、機能要求、用語集、非機能要求、優先順位付き要求一覧、レビュ記録、ソフトウェアアーキテクチャ、ステークホルダ要望、システムコンテクストがある。ステークホルダ要望が要求定義活動の入力ではなく出力となっているのは、この活動によってステークホルダから要望を聞き出して明確にするためである。
図2 要求定義活動の入出力(クリックで拡大)
続きは本誌でご覧頂けます。→本誌を購入する
ご購入のお申込みは電話(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:保証ケース作成支援ツールの概要