軟件工程學習筆記

一、軟件過程:

 需求-->分析-->設計-->實現-->發版,維護(測試需要伴隨着每一個環節,而不是開發完成之後再參與)

二、需求獲取&分析:

 側重於業務端,也包括簡單類圖(只包括類名),產出分別是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設計:美觀性、易用性

  數據庫設計:另起文章說明

  面向對象設計:順序圖;詳細類圖(包括數據結構&方法&算法)











發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章