一、軟件過程:
需求-->分析-->設計-->實現-->發版,維護(測試需要伴隨着每一個環節,而不是開發完成之後再參與)
二、需求獲取&分析:
側重於業務端,也包括簡單類圖(只包括類名),產出分別是PRD文檔和需求規格說明書(需求分析文檔)
三、面向對象泛型(OOP)
模塊內部,高內聚(cohesion)
low-->high
共同特點:可重用性&可擴展性。
偶然性(concidental
)內聚:模塊內部雜亂;解決方法:拆分成多個模塊
邏輯性內聚:調用&被調用關係錯亂,調用模塊依賴被調用模塊,被調用模塊內部功能較多。可重用性差。
時間性內聚:
過程性內聚;
通信性內聚:
功能性內聚:一個模塊只有一個功能。
信息性內聚:
模塊之間,低耦合(coupling):
bad-->good
內容耦合;
公共耦合;
控制耦合;
印記(stamp)耦合
數據耦合
類之間的關係:
繼承(父類&子類)
聚合(整體&部分):注意實心菱形代表整體銷燬了,部分也銷燬了,如人&腿;空心菱形不一定,如PC&CPU
關聯(主語&賓語)、
多態與動態綁定
面向對象泛型:是相對於結構化泛型而言的;
做法:
屬性&行爲放在一起(既面向行爲,也面向數據);
數據封裝&信息隱藏;
職責驅動設計(合同設計)
VS結構化泛型:
OOA階段:決定產品做什麼;提取Objects
OOD階段:詳細設計
OOP階段:編碼階段,使用合適的面向對象編程語言
UML
常用的UML圖;
軟件過程每個階段需要使用的UML圖:
這塊需要細化
四、面向對象分析(OOA)
用例建模;
類建模(CRC卡片法;名詞抽取法);產出:類圖,包括實體類、邊界類、控制類
動態建模:產出是狀態圖;
測試OOA:這塊需要細化
五、面向對象設計(OOD)
高層設計--架構設計,產出是架構設計文檔
詳細設計--UI、數據庫設計、詳細類設計、數據結構&算法
UI設計:美觀性、易用性
數據庫設計:另起文章說明
面向對象設計:順序圖;詳細類圖(包括數據結構&方法&算法)