(前NTTデータ フェロー システム科学研究所長)山本 修一郎
前回は要求変化について考えた。また、前々回は成功する競争戦略にはよい物語があることを紹介した。今回は、Rinzlerが著書TELLING STORIES-A SHORT PATH TO WRITING BETTER SOFTWARE REQUIREMENTSで提案している、要求を物語のように記述する方法を紹介する。この方法はもともとテクニカルライターだったRinzlerが、開発者にいくら説明されても理解できなかったあるソフトウェアの要求文書を、物語のストーリーのように説明させることで簡単に理解できた体験から生まれた。
以下では、まず要求と物語の関係について考えてみる。次いで要求を記述するための項目を整理する。また、要求の記述構文の類型を紹介する。最後に要求を帳票形式で記述するための方法を紹介する。
物語と要求の関係
物語には、①対立、②主題、③背景、④筋書き、⑤登場人物、⑥視点がある[1]。
◆対立
主人公の心の葛藤が物語には必要である。
◆主題
対立点としての心の葛藤に対する主人公の挑戦が、物語の主題としての中心テーマになる。
◆背景
物語には、いつの時代にどんな場所での話なのかという時間的空間的状況が背景として設定されている。
◆筋書き
物語では、主人公が遭遇する一連の出来事が語られる。
◆登場人物
物語には、主人公が心の葛藤に挑戦して成長する過程で経験する出来事の中で出会う、さまざまな人物が登場する。
◆視点
物語を語るためには、語り手が必要である。この語り手の立場が視点である。
これらの物語構成要素を、要求を記述する要素として捉えると、次のようになる[1]
まず、ソフトウェアで解決すべき問題が対立点である。ソフトウェアが提供する、解決策の中心概念としての最上位の要求が主題である。ビジネスが抱える問題状況が背景である。この問題状況を解決するためにソフトウェアが導入される。システムで発生する処理の系列が筋書きである。物語を要求に、出来事をプロセスに置き換えると、要求を一連のプロセスで記述することになる。ソフトウェア要求の記述でよく使うシナリオという用語の意味は、もともと筋書きのことである。人物、機械、ソフトウェアなど活動する主体が登場人物である。ユースケースで使われるアクターも、日常生活では俳優、つまり登場人物という意味で使われている。主体から見た処理の系列が視点である。アクティビティ図や業務フロー図では、アクターの視点ごとに時間的な順序に従って処理を記述する。
したがって、要求と物語の構成要素を比較すると表1のようになる。
表1 物語と要求の関係(クリックで拡大)
要求には物語(ストーリー)がある
物語には一連の出来事についての記述がある。たとえば、イソップ物語にあるウサギとカメの話だと、まずウサギがカメの足が遅いことを笑い物にする。怒ったカメがウサギと競争しようと提案する。競争が始まると、カメの姿が見えなくなるほど最初はウサギが先行する。気が緩んだウサギが昼寝すると、カメが着実に進行して、目的地の山のふもとに到着する。ウサギが目を覚ますと大喜びするカメの姿を見て落胆する。
ウサギがカメの足が遅いことを笑い物にすることで、物語の対立点が最初に紹介される。この物語の主題は明示されてはいないが、「努力が才能に勝利する」ことであろう。この世の中にはウサギがいかに多いことか。イソップ物語が書かれた時代から何千年も経つというのに、人類はあまり進歩していないということかもしれない。それはさておき、背景は出発点と目的地(ゴール)となる山のふもとがある場所である。筋書きは前述した通り。登場人物はウサギとカメだ。物語の視点はウサギとカメを客観的にみる第三者ということになる。
この物語には、①問題の識別、②対決策の提案と合意、③着実な実行、④勝利による問題の解決という4つの出来事がある。データフロー図では、ウサギとカメの心理状態と競争上の位置の変化がデータフローのラベルになる。
データフロー図では、外部環境としてウサギとカメを記述することができる。ウサギとカメの物語に対するデータフロー図を図1に示す。ここで、データフローを曲線ではなく縦と横の直線で記述している点を注意しておく。これはRinzlerが、曲線を使わないほうが余分なことを考える必要がなくなり作図が効率化できるようになるだけでなく、属人性を排除できると主張しているためである。筆者もデータフローは曲線を使いたい方なので、この主張には半信半疑だったが、作図してみると確かに悪くないと思うようになった。データフロー図は美しいかどうかが問題なのではなく、データフロー図として妥当かどうかが大切だからである。なお、本稿ではウサギとカメの話を例にデータフロー図を説明したが、Rinzlerの本では、赤ずきんを例にしているので注意しておく。
図1 ウサギとカメ(クリックで拡大)
このように、データフロー図で全体の筋書きを図式的に記述しておき、データフロー図に現れた各プロセスを文章で記述することにより、物語を記述できる。この物語をシステムとして捉えると、足の速いウサギと足の遅いカメを入力として、落胆するウサギと笑うカメを出力することがわかる。つまりウサギとカメの物語は、ウサギとカメの状態を変化させるためのシステムなのである。
続きは本誌でご覧頂けます。→本誌を購入する
ご購入のお申込みは電話(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:保証ケース作成支援ツールの概要