アスペクト指向勉強会(第8回)
※以下の記述には勘違いが含まれているかも知れません。
基本情報
- Day/Time: 2005/10/30 Man. 10:00 - 13:45
- Place: 920 Training - Room @ OGIS-RI
- Person: 7(Taka, Miya, Tsuji, Itoh, Goh, Yone, Aka)
内容
- a) Designing Crosscutting Themes pp.177
- b) Changes to the UML pp.178
- b1) Crosscutting Behavior pp.178
- b2) Control Flow Restrictions on Triggers pp.179
- b3) Templete Operation Parameters pp.180
- b4) Listing the Templates for a Theme pp.181
- b5) Referencing Template Structure and Behavior pp.183
- c) Track-Enegry Theme pp.185
- d) P2P Communication Theme pp.190
- e) Summary pp.197
Designing Crosscutting Themes
ここからはシステム横断的なテーマ(Aspect)*1の設計の話です。
横断的な振る舞いをUMLのtemplete表記を拡張したもので表現します。
テンプレートの対象になるのは、class、operation、attributeです。
UMLのtemplateではattributeの型を対象にしたパラメータですが、operationもパラメータになります。
Changes to the UML
templeteの拡張についての話。
Control Flow Restrictions on Triggers
- control flow
- ApectJのポイントカット記述(cflow)のこと?。joinpointを選択し、アクションを呼び出すかどうかを制限するもの。
Fig5-15では、op1()の制御フローとして、op1()から呼び出されたop2()に制限して、befor()とafter()のアクションがあることを表現している。
Templete Operation Parameters
Parameter | Usage |
---|---|
op() | パラメータなし |
op(..) | パラメータあり |
op(.., Type, ..) | パタメータにType情報を持っていること |
Listing the Templates for a Theme
- template class
- templete operationまたはtemplate attributeを持ったクラスのこと。
- template operation
- ThemeをCompositeする時に置き換えられる(決定する)操作のこと。
- template attribute
- ThemeをCompositeする時に置き換えられる(決定する)属性のこと。
Crosscutting Themeは、UMLのパラメタライズドパッケージとして、template parameterにtemplate operationなどを使って表現します(Fig5-16)。
Track-Enegry Theme
省略。
P2P Communication Theme
- FooクラスをTFooクラスに分割する条件
- templete operationである操作とそうでない操作が含まれるクラスが存在した時には必ず分割するそうです。TFooのTはTempateの意味?。
Summary
Themeをbaseまはたaspect(Crosscutting)に識別しました。
baseテーマは通常通りにUMLで設計します。aspectテーマはTemplateを拡張して表現します。Crosscuttingな振る舞いについてもシーケンス図で表現できます。
次回
- 第9回 2005/10/20 10:00〜 Chap6 "Theme Composition" pp.199 - pp.223
- 第10回 2005/10/27 10:00〜 Chap6 "Theme Composition" pp.223 - 244