軟件工程-讀書筆記
2015年5月22日
17:17
軟件工程包括3個要素:方法、工具和過程
- 軟件工程方法爲軟件開發提供了“如何做”的技術,是指導研製軟件的某種標準規範。它包括了多方面的任務,如項目計劃與估算、軟件系統需求分析、數據結構、系統總體結構的設計、算法的設計、編碼、測試以及維護等。軟件工程方法常採用某種特殊的語言或圖形的表達方法及一套質量保證標準。
- 軟件工具是指軟件開發、維護和分析中使用的程序系統,爲軟件工程方法提供自動的或半自動的軟件支撐環境。
- 軟件工程的過程則是將軟件工程的方法和工具綜合起來以達到合理、及時地進行計算機軟件開發的目的。過程定義了方法使用的順序、要求交付的文檔資料、爲保證質量和協調變化所需要的管理及軟件開發各個階段完成的“里程碑”。
軟件過程可概括爲三類:基本過程類、支持過程類和組織過程類。
- 基本過程類包括獲取過程、供應過程、開發過程、運作過程,維護過程和管理過程。
- 支持過程類包括文檔過程、配置管理過程、質量保證過程、驗證過程、確認過程、聯合評審過程、審計過程以及問題解決過程。
- 組織過程類包括基礎設施過程、改進過程以及培訓過程。
軟件生存週期:
制定計劃、需求分析、軟件設計、程序編碼、軟件測試、運行維護
瀑布模型:
|
文檔驅動 適用:在開發的早期階段需求被完全確定 缺點:
|
快速原型模型:需求的採集-快速設計-建造原型-用戶評價原型-對原型加工-產品樣品
|
關注滿足客戶需求 目的
缺點
適用
|
增量模型:體系結構設計驗證後,對構件進行開發 增量分析、增量設計、增量編碼、增量測試
|
先發布可運行的增量版本,發佈市場,看市場反應
產品的體系結構設計必須是開放的 優點
缺點
|
螺旋模型: 制定計劃、風險分析、實施開發、客戶評估
|
風險驅動 風險分析人員需要有經驗且經過充分訓練 優點
缺點
大系統 |
噴泉模型:需求分析、設計、實現、測試、維護
|
定義
優點
缺點
|
形式化方法模型:形式化方法模型是採用形式化的數學方法將系統描述轉換成可執行的程序。 變換模型和淨室軟件過程模型 |
適用
優點
缺點
|
基於組件的開發模型:基於組件的開發技術是使用可重用的組 件或商業組件建立複雜的軟件系統。
|
組件開發技術的兩個重要因素
優點
缺點
|
演化模型:開發一個核心繫統,投入運行後,精化系統 包含:快速原型模型、螺旋模型 |
|
智能模型: 基於知識的軟件開發模型,綜合上述模 型,結合專家系統,基於規則採用規約 和推理機制,軟件維護在規格說明一級 進行。 |
|
軟件開發:
軟個開發方法
結構化方法 SA SD
面向對象方法 OOA OOD
數據流圖DFD:
描繪信息流和數據從輸入移動到輸出的過程中所經受的變換的一種圖形化技術。
系統接受輸入的數據,經過一系列的變換(或稱加工),最後輸出結果數據。
詳設工具:
- 程序流程圖
- NS-S圖
- PAD圖
- PDL(過程設計語言)
- HIPO
- Jackson圖:Jackson設計方法以數據結構爲基來決定程序結構。
軟件測試:
白盒測試:邏輯覆蓋
1、語句覆蓋:使程序中的每個語句執行一次
2、判定覆蓋:使程序中的判定表達式的每個分支執行一次
3、條件覆蓋:使程序中的判定表達式的每個條件的可能取值至少執行一次
4、判定-條件覆蓋:使程序中的判定表達式的每個條件的可能取值至少執行一次,而且每個判定上
表達式的據有可能的判定結果至少執行一次。
5、條件組合覆蓋:使每個判定表達式的所有可能的條件取值組合至少執行一次。
6、路徑覆蓋:覆蓋程序中所有的路徑,也就是覆蓋每個判定可能取值的所有組合。
一般而言控制流圖中區域的數量對應於環形複雜度
測試用例 執行路徑 條件取值 覆蓋分支
T1 F2T3 F4 T F
黑盒測試:等價類劃分、邊界值分析法
單元測試、集成測試、驗收測試(a/B測試-開發是否在場)、系統測試