一、需求分析
(一)需求的三個層次
1.業務需求——企業或用戶高層次的目標∶宏觀角度
2.用戶需求——企業或用戶的具體目標∶微觀角度
3.系統需求——軟件需求∶系統開發角度
(1)功能需求∶需要用戶明確
(2)非功能需求∶不需要用戶明確(軟件效率、容易維護等)
(3)設計約束∶限制條件(必須運行在linux操作系統下)
(二)質量功能部署
1.概念:用戶要求轉化成軟件需求的技術
2.分類:
(1)常規需求∶用戶認為應該達到的功能或性質
(2)期望需求∶不需要用戶明確,系統就應具備的功能或性能
(3)意外需求∶用戶要求之外的功能或性能
(三)需求開發活動的流程——需求獲取、需求分析、需求規格說明書(目的∶開發團隊與項目干系人對系統有一個共同的理解)、需求驗證(需求確認)
(四)uml
1.一種可視化的建模語言,但不是可視化的程序設計語言
2.uml事物之間的四種關系
(1)關聯∶a與b之間有連接關系
(2)依賴∶a變化則b變化
(3)泛化∶a與b之間是一般與特殊的關系(繼承)
(4)實現∶a與b之間的契約關系(通過接口實現)
3.14種圖
關圖、對象圖、構件圖、組合結構圖、用例圖、順序圖、通信圖、定時圖、狀態圖、活動圖、部署圖、制品圖、包圖、交互概覽圖(活動圖+順序圖的混合物)
4.5種視圖
邏輯視圖、進程視圖、實現視圖、部署視圖、用例視圖
二、軟件架構
(一)架構風格
1.數據流(批處理、管道過濾器)
2.調用/返回風格(主/子程序、數據抽象、層次結構)
3.獨立構件風格(進程通信和事件驅動)
4.虛擬機風格(基于規則、解釋器)
5.倉庫風格(超文本、數據庫、黑板)
(二)架構評估(系統質量)
1.敏感點(系統的某一個質量特性,例如安全或性能)
2.權衡點(影響多個質量特性的某一個質量特性,例如提高加密級別)
三、面向對象的分析、設計與開發
(一)面向對象方法的特點——符合人關思維習慣、更好的復用性、高內聚、低耦合、繼承、封裝、多態三大特征
(二)分析階段的核心工作
1.用例模型——識別參與者、合并需求獲得用例、細化用例描述、調整用例模型
2.分析模型
(1)關聯關系∶a與b之間有連接關系
(2)依賴關系∶a變化則b變化
(3)泛化關系∶a與b之間是一般與特殊的關系(繼承)
(4)實現關系∶a與b之間的契約關系(通過接口實現)
(5)共享聚焦∶群體與個體的關系(類與對象的關系)
(6)組合聚焦∶整體與部分的關系(類與屬性的關系)
(三)設計階段的設計模式
1.設計模式包含模式名稱、問題、目的、解決方案、效果、實例代碼和相關設計模式等基本要素
2.根據處理范圍不同——類模式(靜態關系)、對象模式(動態性)
3.根據目的和用途不同——創建型模式、結構型模式、行為型模式
四、軟件工程的過程管理
能力成熟度模型集成(cmmi)
1.階段式表示方法(組織成熟度)
(1)cmmi1∶初始級(軟件過程雜亂無章,幾乎沒有定義過程)
(2)cmmi2∶已管理級(計配置、監管合同質量、度量需求(除了需求開發))
(3)cmmi3∶已定義級(需求開發,及其他)
(4)cmmi4∶已量化管理級(定量性能)
(5)cmmi5∶持續優化級(改革因果)
2.連續式表示方法(過程能力等級)
(1)過程管理——組織(除了組織級集成環境)
(2)項目管理——項目團隊、供應商風臉
(3)工程——驗證確認需求、技術集成(除了組織級集成環境
(4)支持——組織級集成環境、及其他
五、軟件測試
(一)分類
1.靜態測試
(1)不在機器上運行軟件的測試
(2)包括桌面檢查、代碼走查、代碼審查
2.動態測試
(1)在機器上運行的功能測試
(2)黑盒測試——不看程序內部邏輯軟件測試 思維導圖,不看程序代碼
(3)白盒測試——查看程序內部邏輯
(二)國家標準
1.單元測試——模塊內部的測試
2.集成測試——模塊之間的測試
3.確認測試
(1)軟件開發組織的內部確認測試
(2)用戶參與的測試環境
①alpha測試∶用戶在開發環境下的測試
②beta測試∶用戶在實際環境下的測試
(3)驗收測試
4.系統測試——軟件開發組織在實際運行環境的測試
5.配置測試——配置項測試的對象是軟件配置項
6.回歸測試——軟件變更之后軟件測試 思維導圖,對原有正確的功能、性能和其他規定的要求的不損害性
(三)軟件測試的管理
1.過程管理
(1)測試資源管理
(2)測試活動管理
2.配置管理——應按照軟件配置管理的要求,將測試過程中產生的各種工作產品納入配置管理
3.評審工作——測試就緒評審(測試前評審)和測試評審(測試后有效性評審)
六、軟件集成技術與管理
(一)表示集成——黑盒集成∶界面集成,不考慮內部構造
(二)數據集成——白盒集成∶數據標識、然后編目錄、確定元數據模型
(三)控制集成——黑盒集成∶業務邏輯,通過api接口訪問
(四)業務流程集成——標準的、統一格式的數據流組成
(五)企業應用集成eai——eai技術可以適用于大多數要實施電子商務的企業,以及企業之間的應用集成