Posted on 2006-02-22 20:28
canonical 閱讀(903)
評論(0) 編輯 收藏 所屬分類:
設計理論
AOSD(Aspect-Oriented Software Development)可以看作是AOP技術思想在設計領域的一種投射. 采用Aspect的觀念之后, 我們在系統分析時應用如下的分解策略
base + extensionA + extensionB +... 而不僅僅是 partA + partB + ...
這種分解的基本理由在于base/extension的依賴關系與extension之間的依賴關系并不相同. 在理想情況下,
extension之間是完全正交的, 而它們通過base可以構成一個整體, 這是一種典型的star schema.
但是在實際的軟件構造過程中, 軟件各個元素之間的交互方式要復雜的多:
1. extension之間可能存在著相互作用, 最簡單的一種情況是extension執行時的序關系(order).
2. 一個結構上的extension可能分散到多個component上, 如何精確而有效的控制定位是一個非常困難的問題.
就目前的AOP技術而言,
對于extension的控制其實是非常乏力的(但這并不意味著AOP必然放棄對extension的控制), 我們尚需要積累更多的經驗.
在實做中, 更加穩健的方法往往是應用aspect的思想而采用傳統的實現方式.
AOSD在理論上存在一些價值, 例如它為use case的extension符號找到了技術對應, 因而使得這個概念變得更加明晰, 而在傳統中,
對于use case的extension的解釋一直是模糊而混亂的. 目前在真正的開發中, AOSD所描繪的全程建模仍然只是一個遙遠的夢想.