More Related Content
Similar to ゴール指向分析KAOSにおける依存性を考慮した要求抽出法の考察 (20)
More from Michitaro Okano (16)
ゴール指向分析KAOSにおける依存性を考慮した要求抽出法の考察
- 2. 背景と目的
• 本研究の対象
– 要求分析について
• 要求分析で求められること
– 設計・実装・テストに必要な情報が獲得されること
• 本研究の目標:以下の知見を得る
– 「設計・実装・テストに必要な情報」は何か
– その情報を獲得するには,どのような手法を用いれ
ばよいか
• 本研究のアプローチ
– 「要求の獲得手法」としてゴール指向要求分析のKA
OSを用いる:ゴールの詳細化により要求が得られる
2
- 5. 用語の説明(2)
ゴールとKAOS
• 「意図を含む文」の広さは
様々ある
– システムが満たすぺき大き
な目標
– 担当者が行う作業の目標
• 作業を行う人やシステム:
エージェント
• ゴール:
– エージェントの協調によって
満足すべき意図を示した規
範的な文[1]
– 本稿では「ある状態Pからあ
る状態Qになる(P→Q)」という
形(達成ゴール)を扱う
• KAOS[1]
– システムが満たす大目
標=トップゴール
• 現状→目標の状態へ
– トップゴールを詳細化し
て、サブゴールに分割
• 詳細化の手法は後述
– サブゴールをさらに詳細
化し・・・と詳細化を繰り
返す
– 最終的には、1エージェ
ントが達成可能なほど小
さなゴールとなる=要求
とする
[1] Axel van Lamsweerde,“Requirements Engineering:From System Goals to UML
Models to Software Specications ”,Wiley,2009. 5
- 6. 用語の説明
KAOSにおける詳細化の手法
• マイルストーン分解[1]
– P→Qに状態が変化(状態
遷移)する際に状態Mを
経るのであれば、P→M、
M→Qに分解する
• 要素分解[2]
– 事後状態Q がいくつかの要素
{Q1,Q2,・・・Qn}から成り立つとき
– P→Q1,P → Q2,…,P → Qnに分解
• それだけでは{Q1,Q2,・・・Qn}とい
う各要素が存在する状態になるだ
けで,Qになるとは限らないので
– さらに{Q1,Q2,・・・Qn}→Qも付加
する(こともある)分解法
ゴール: 現在の状態P 目標の状態Q
(事前状態) (事後状態)
ここを分解
マイルストーン分解
ここを分解
要素分解
ここは?
本稿の考察
[1] Axel van Lamsweerde,“Requirements
Engineering:From System Goals to UML Models to
Software Specications ”,Wiley,2009.
[2]岡野道太郎・中谷多哉子, 状態と状態遷移に着目した
ゴール指向要求分析手法の考察, 知能ソフトウェア工
学研究会(KBSE) , 電子情報通信学会技術研究報告
: 信学技報Vol.116 No.493,2017,pp25-30
要素は
様々*
*ユースケース、構成要素、機能・・・ 6
- 7. 詳細化の事例「酒屋倉庫問題」(1)
• 「酒屋倉庫問題」とは
– 情報処理[3] に記載されている「ある酒類販売会
社」(以下酒屋と記す)における「受付係」の仕事
(在庫なし連絡,出庫指示書作成,在庫不足リス
ト作成)のための計算機プログラムを作成する」
– 酒屋には倉庫係,受付係がある
– 業務:入庫、出庫
• 入庫(倉庫係)→積荷票を渡す(倉庫→受付)
• 出庫依頼受付(受付)→在庫有り:出庫指示/在庫な
し:在庫無し連絡&不足リスト作成
[3]山崎利治, 共通問題によるプログラム設計技法解説,情報処理Vol25 No9(1984).
7
- 11. 詳細化の事例:問題2
• 「L→G1:在庫なし連絡票のレイアウトが決まっている」
• G1に必要なこと
– 「N→L1:在庫なし連絡票の出力項目の求め方が決まっている」
– 「P→M1:在庫なし連絡票を出力するメディアが決まっている」
• ただし,両方同時並行で行っても構わない
– P→M,M→N,N→Lという表記は同時並行を認めない書き方
– →事前状態の成立条件が厳しくなってしまう
• 同時並行で処理している場合、確実に終了している必要のある依
存性の書き方の問題
複雑化した並列作業で重要:アジャイル 11
ウォー
ター
フォー
ル
- 12. 「依存性の表現」方法の提案
問題1(依存性の範囲の明示)
• P⊃P1→Q( ⊃で表現)
– 事前状態Pがいくつかの要素{P1,
P2,P3・・・Pn}に分解可能で,
– それらの要素の一部が成立すれ
ば事前状態が成立したとみなせる
場合,
– 事前状態Pの後に⊃をつけ,その
要素を列挙することにより,その列
挙した状態が成立すれば,事前状
態が成立したとみなす.
• 例えば,事前状態Pが{P1,P2,
P3}に分解可能で,P1を満たせ
ば事前状態が成立したとみなせ
る場合は,P⊃P1→Qと記述
問題2(依存要素全部の記述)
• M>P1→Q1(>で表現)
– 事前条件の前に成立していることを
明示したい場合は,
– 事前状態Pの後に>をつけ,明示し
たい状態を列挙する
• 例えば,
– P→Qが,P→M,M→Qと分解でき
– Pが{P1,P2,P3}
– Mが{M1,M2,M3}
– Qが{Q1,Q2,Q3}に分解可能な
時,
• M⊃M1→Q1の事前状態M1が成
立する前に,P1,P2が成立する
必要がある時、M⊃M1,M>{P1,
P2}→Q1と記述
M1>{P1,P2}→Q1と書く
方法も考えられる 12
- 14. 関連研究
• i*との比較
– i*は依存性を表現してい
るがトップゴールと要求
の関係を示していない
• UMLとの関係
– 振る舞い図
• アクティビティ図等
• プロセスを表している
• マイルストーン分解
– 構造図
• クラス図等
• データ構造を表す
• 要素分解
• 本稿の提案により、1つ
の図(KAOS[1])で依
存性・振る舞い・構造が
表現できる
– トップダウンから要求ま
での詳細化において、プ
ロセスと構造の分解を
繰り返し行う
– これを1つの図で表現し
たい場合に有効
*[1] Axel van Lamsweerde,
“Requirements Engineering:From System
Goals to UML Models to Software
Specications ”,Wiley,2009.
の表紙は「バベルの塔」が書かれている
14
- 15. 今後の研究
• ゴールの種類について
• 今回取り上げたのは
– 達成ゴール:機能要求中心
• 今後の課題:
– ソフトゴール・回避ゴール
• セイフティ・セキュリティ(悪
いことは起こらない)
• 非機能要求
• 酒屋倉庫問題に関して
– 酒屋倉庫問題で記述され
ていない要求について
• 注文番号は出庫指示書の
出力項目として挙げられて
いるが,どのように生成さ
れるか明示されていない
=要求の抜けを発見でき
るか?
• 積荷票からどのように出庫
を割り当てるか,明示され
ていない→WG13で、「AI
版酒屋倉庫問題」として議
論
15