天天看點

進階需求分析UML模組化設計模式筆記

1.REQ->HLR 分析 全系統性質->AD設計 Context,BOM,Conception
2.REQ->LLR 分析   子產品分析->DD設計 + 編碼 Feature,BRM,UC,UCD
3.DD設計->代碼結構設計 子產品内 30個功能 ->類/序列圖設計,反射/繼承/接口/設計模式/實體類/抽象/配置檔案

代碼結構設計: 

設計目标:正确性目标-> 

功能性需求目标:代碼結構能夠實作所有業務要求

非功能性需求目标:
複用性:避免代碼備援
可擴充性:滿足所有 業務功能 <->Feature 可變性要求
安全性:加密,身份認證,驗證,授權,XSS
性能:秒鐘計算,記憶體緩存
代碼穩定性:代碼結構設計後代碼平均每個月的重構次數;

分類->封裝類
依據業務+單一職責
30Featrue ->30類
Featrue->類/公有方法/私有方法 不需要依據業務設計
領域模型:實體資料

UC->KPC 關鍵功能點->公有方法

接口設計/基類的設計/抽象類/複用設計/繼承/委讓

1.接口設計原則:
a.用于子產品功能暴露,多用于子產品間
b.接口定義純虛,所有實作必須有個性實作
c.接口傳入參數與傳出參數盡量避免使用基本資料類型
d.接口傳參應盡量使用領域模型[實體資料]
e.接口名稱應盡量使用業務名稱
f.接口定義應由自身子產品定義,不能由調用方決定,自治
FindData(ID)
FindData(ID,Date) 如果添加請調用方自己添加日期解析
g.接口最小化/接口單一,通過組合複用進行接口複合調用

2.基礎類與繼承的設計:
Class:基礎類的最常用形式,無法強制子類個性化實作
Abstract Class: Class繼承代碼複用,定義純虛
Interface : 無法代碼複用,繼承樹,完整被暴露到外部

繼承與委讓/複用設計:代碼複用
使用委讓進行代碼複用


可擴充性設計:
1.分析Featrue可變性,共性
2.設計BaseClass,共性定義在基類中,可變性通過純虛定義在子類裡,設計出繼承體系/繼承樹
3.所有調用方,調用基類,不能直接調用子類
4.通過多态,由基類調用到子類
5.定義Factory,完成多态過程
6.多态業務邏輯定義在xml檔案


依賴倒置原則:
調用方應該調用抽象或者基類,而不是調用子類

裡氏替換原則:
檢驗可擴充性的繼承樹是不是有效


類的劃分:
資訊專家:業務邏輯類Service
資料實體:儲存資料 Entity結尾
建立者:可擴充性設計  Factory
管理者:管理子產品内的所有的類,Manager/緩存資料實體)
邊界類:接口實作Imp
界面類: View
控制器: Control


詳細設計的實踐原則:
1.分析Featrue,BRM(活動圖)
2.分析細節需求
3.依據設計核心原則[依據封裝+單一職責原則,從Featrue->類的劃分]
4.分析細節需求->方法的定義
5.分析BRM->類間關系定義
6.依據GRASP設計原則,将類劃分成7大類别
7.分析Feature可變性,逐一分析
8.根據Feature可變,分析共性與特性,共性形成繼承基類,特性形成了子類,完成繼承樹設計,依據開閉原則
9.修改調用方調用基類,依據的是依賴倒置原則
10.定義Factory+xml 實作擴充設計
11.依據裡氏替換原則,驗證繼承樹調用過程中是否存在風險
12.複用性設計
13.逐一分析Featrue,需要對外提供通路,設計為接口 依據[接口設計實踐原則,接口最小原則]
14.通過設計模式改良設計
15.完成類圖設計
16.完成序列圖(時序圖)設計
17.進行團隊間詳細設計評審
18.形成詳細設計文檔
19.未來應不斷監控設計的變更,由需求導緻設計的重構[采用72種重構方法,進行可擴充性重構]

規範
建立性設計模式:
抽象工廠模式:不直接New來生成類的執行個體
原型模式:
Builder模式:
Singleton單例模式:

結構性模式
面闆模式:複雜過程的封裝   可以跨類調用
擴充卡模式:對于外部組織封裝  不可以跨類調用
裝飾器模式:就是根據配置檔案進行for調用不同的清洗方法
代理模式:典型的webserver調用
           

繼續閱讀