アスペクト指向勉強会 - 実践編 (第12回)
Theme Relationship View で Shared Requirement に関連する Theme が Aspect かどうかを識別し、Crosscutting View を作成する。
Aspect かどうか見分ける基準 (手順?) は以下の4つ。
- Split the requirement if possible
- Dominance means association
- Base triggers aspect
- Is the Aspect Crosscutting Enough?
これが、いざやってみるとなかなか難しい。
この例だと、ログをとるが Aspect と識別されて、以下のような Crosscutting View*1 が作成される。
- 「ベットする」は「ゲームを開始する」から起動されるの?
- 起動と見なすと、循環してしまうんじゃない?
- ゲームのフローじゃない?
↓アクティビティ図*2で描くとこんな感じ。
その他にも、
- テーマがつながっていないのは、要件リストにもれがあるのでは?
- Aspect と識別されずに保留されたものは、そのままで設計に進んでいいか?
- Theme の粒度が小さすぎるのでは?
といろいろな問題点が出てきてしまった。
じゃあ、どうしようか? という話になって、それでももう少し先に進んでみたいという意見と、要件や Theme、手法の見直しをした方がよいのでは? という意見が出た。
その結果、次回は2チームに分かれて作業することに。さて、どうなることやら...