2. 模塊間關聯關系的分解和集成,如OSGi,ESB等
3. 不同系統的類型分解和集成,如Spring利用動態代理提供的Exporter模式。
4. 流程邏輯的分解和集成,如Spring Web Flow以及jBPM。
討論完手段,現在要轉身看看我們面臨的問題域了;問題域可分解為兩種類型,業務上和技術上。(又見分解,分而治之真是老祖宗傳下的靈丹妙藥啊)
1. 業務上。問題域分解為,邏輯的縱向抽象層次,以及邏輯的橫向模塊分解和集成。
2. 技術上。問題域分解為,縱向的技術主題,以及橫向的技術職責的分解和集成。
所以通常而言,領域模型設計中,模塊分解,抽象分層和職責分層都是重要手段。問題域為:流程,業務實體和計算(包括規則)。
對象的抽象分解和集成
對象的依賴分解和集成(模塊內和模塊外)
流程的分解和集成(頁面流,工作流以及計算流程)
進程邊界:用戶請求重定向,以及業務數據持久化等。
BTW:通常語言做為架構的基礎引入和更換是有巨大風險的;而通過提供強大的框架能力,框架盡可能多的完成技術問題,并通過元數據,模式以及約定降低業務和框架的耦合。避免因為框架升級帶來不必要的成本。
從技術手段上,提高開發效率的另外兩個手段是代碼生成和類庫引用。但代碼生成和類庫引用,都只解決了邏輯的分解能力,沒有提供集成能力,所以一般情況下需要提供框架集成,尤其代碼生成需要在系統的最外層,避免集成帶來的問題。
對于開發團隊來說,額外面臨一個問題,組織內部的學習成本問題。
文章來源于領測軟件測試網 http://www.kjueaiud.com/