シナリオ分析
平成24年度シラバス
2012年1月5日
国立情報学研究所
トップエスイープロジェクト
代表者 本位田 真一
シナリオ分析
位野木万里,中谷多哉子
要求を定義するためのプロセスは,通常,要求獲得,要求記述,要求検証,要求管理という作業から構成される.本講座では,主に要求獲得を対象とし,要求を獲得する上で重要な技法となるシナリオ分析を取りあげる.
要求獲得は,要求定義プロセスの中の中核的な活動作業でありながら,最も困難な作業の1つであるとされている.要求獲得は,要求分析者とステークホルダとの共同作業により,現状業務の明確化,問題の特定,解決策の考案,新システムへの要求モデル化,要求仕様化などを行う.しかし,要求分析者とステークホルダでは,経験も知識も使用する言語も異なる.そのため,要求獲得のための各作業の実行において,両者のコミュニケーションを円滑にとりながら進めていくことは困難である.
こうした問題に対応するために,様々な技術や手法が提案されている.シナリオは,人々の活動に関する記述であり(参考文献(2)),シナリオを用いることで,開発されるシステムにより何が実行される/されないのか,どのような効果/弊害がもたらされるのかなどが記述できる.そして,要求分析者が理解した内容をシナリオとして記述することで,ステークホルダは,要求分析者がどの程度要求を理解しているのかを知ることができる(参考文献(5)).シナリオが自然言語で記述されていれば,特別な教育などなくとも,確認作業が行え,内容の理解や誤りの是正なども実施しやすくなる.シナリオ記述にダイアグラムなどを用いれば,要求分析者とステークホルダ間の理解の齟齬の防止も期待できる.
本講座では,シナリオ分析を中心とした求工学の基本的な技術を習得することを通して,受講者が要求を定義することの困難さを理解し,優れた要求分析者としての扉を開くことの手助けになることを目指している.
様々な要求工学手法が提案されているが,現実の世界は,単一の手法によって取り扱えるほど単純ではない.要求分析者を目指す技術者は,今後,多様な手法だけでなく,ビジネス活動における力学を知り,人間関係の調整能力なども身につけてゆく必要がある.言い換えれば,要求工学は,現実世界との接点に立つ技術であるものの,技術はそれを使えば問題が解決するという単純な道具ではない.問題を解決するには,適切な技術を,適切に適用し,自らの力で解を見つけることが必要となる.しかし,そうした能力は,受けみの学習だけでは身に付かない.本講座では,現実世界に近い具体的な問題と場の設定を通して,要求分析に関する基本的な技術の習得を目指す.
本講座で扱う難しさは2つある.それは,現実世界をモデル化するための抽象化に関する難しさと,要求者の意図を設計者に正確に伝達するための要求仕様化に関する難しさである.これらの難しさは,抽象化や仕様化の作業に明確な終わりや正解がない中で,定められた開発期間で要求の妥当性を判断し,次の設計に進まざるを得ないことに起因する.
モデリングという作業は,設計段階でも行われるが,そこで使用する技術は,既に存在している要求モデルを設計モデルに変換するという技術である.一方,要求モデルを作成するには,曖昧で,豊穣で,変化にとんだ現実世界から,クライアントが要求するソフトウェアを実現するために必要かつ十分な要素だけを抽出し,問題領域を再構築する必要がある.これが抽象化である.しかし,思考形態の違いや,視点の違いによって,見えるものや重要性の判断基準も異なる.それゆえ,抽象モデルに正解は無いといってよい.抽象化技術が教育や訓練によって,どこまで可能であるかという議論がいまだに続いている.
利用者の意図を見抜き,それを厳密に仕様化する作業には,相手の思いを推し量るための想像力と,それを図や文章を使って正確に記述するための表現力という2種類の異なった能力が必要とされる.こうした技術は,いわゆるソフトウェア工学技術とは異質の技術であり,要求工学という学際的な技術体系の中で培う必要がある.
本講座では,モデリング技法,要求の仕様化技法の基本的な技術を習得する.また,知識の習得に加えて,実践的な題材を用いた演習を,個人およびグループ間で繰り返すことで,抽象化力,想像力,表現力を醸成させながら,妥当な要求仕様とはどういうものなのかを体得していく.
本講座では,要求分析における重要な技術の1つであるシナリオ分析の技術について学習する.シナリオ分析では,問題領域内の動的な変化に焦点を当て,問題領域の構成要素の振る舞いを時系列に記述することによって問題領域をモデル化する.シナリオは,自然言語によるテキストに加えて,シーケンス図やアクティビティ図などでも表現することができる.
本講座では,ユースケース分析を中心にシナリオの記述方法について習得する.クレーム分析などを通して,要求が現実世界で実現された場合の効果と弊害の評価する技術についても学習する.さらに,レビューによりシナリオを推敲し,改善していくプロセスを,演習を通して体得する.
それぞれの技術について,演習によってその困難さ体験をし,作成されたそれぞれの成果物の発表と議論によって,技術の理解を深めることにする.
学習内容は,以下の通りである.
1.シナリオによる要求分析技法各論
・ シナリオ分析
・ ユースケース分析
・ クレーム分析
2.要求の仕様化とレビュー方法
・ ユースケースモデルとレビュー方法
・ シナリオ記述とレビュー方法
・ 要求の検証方法
前提知識
本講座の受講生は,以下の知識を習得済みであることが望ましい.
・ UML
・ astah*の使用法
(演習等の進捗により変更の場合有)
演習はレビュー等を実施するためグループに分かれて行うが,各自の課題の分担は講師より明確にする.(それぞれが手を動かして作成しないと体得できないため.)なお,演習中心の講座となるが,演習で扱う題材,その時間で何の作業をするのかはあらかじめ設定して進める.レビューを受けての改善の作業などの指導も含む.シナリオ分析とは何かを理解し,シナリオを「書ききる」ことを体得する.
第1回 ユースケース分析(1)
·
ユースケース分析とユースケースモデル
第2回 ユースケース分析(2)
·
ユースケース分析演習
第3回 クレーム分析(1)
·
クレーム分析によるシナリオの進化と要求評価
第4回 クレーム分析(2)
·
クレーム分析演習
第5回 シナリオ記述(1)
·
シナリオ記述のレビューと演習
第6回 シナリオ記述(2)
·
クレーム分析のレビューと演習
第7回 シナリオ分析まとめ
·
ユースケースモデル,シナリオ,仮定・依存・制約事項の演習
·
レポート作成(シナリオの改善のポイント,気づいた点,残件,リスクなど)
第8回 グループ討論
·
発表と討論
·
レポート作成
本講座を受講することにより,要求工学の難しさと多様さを体験し,要求分析者としての基礎技術を理解することができる.本講座を通して得られた技術は,実際の現場での経験を通して繰り返し磨きをかけることによって,本物の技術として定着するであろう.
また,本講座で得た知識は,要求定義講座をはじめとする他の講座を受講するための前提知識となる.
本講座では,次のツールを使用する.
・ astah*(旧Jude)
ユースケース図,クラス図の作成
・ ワードプロセッサー 又はText エディター
ユースケース記述,その他要求仕様の作成
・
ユースケースモデリング
・
シナリオ記述
・
クレーム分析
・
自己監査と相互レビュー
ユースケースモデル,シナリオ,クレーム記述などの作業成果物,グループ討論での貢献度,レポートの評点を総合して評価する.
(1) IEEE, Recommended Practice for Software Requirements Specifications. Std
830-1998, 1998.
(2)
Carroll, J. M. Making Use: Scenario-Based Design of Human-Computer
Interactions, MIT Press, 2000.
(邦訳:シナリオに基づく設計−ソフトウェア開発プロジェクト成功の秘訣―.共立出版)
(3) Cockburn, A. Writing Effective Use Case, Addison
Wesley, 2001.
(邦訳:ユースケース実践ガイド.翔泳社)
(4)
大西淳監修:要求工学概論,近代科学社,2009.