軟工:讀書筆記

軟件工程-讀書筆記

2015年5月22日

17:17

 

軟件工程包括3個要素:方法、工具和過程

  • 軟件工程方法爲軟件開發提供了“如何做”的技術,是指導研製軟件的某種標準規範。它包括了多方面的任務,如項目計劃與估算、軟件系統需求分析、數據結構、系統總體結構的設計、算法的設計、編碼、測試以及維護等。軟件工程方法常採用某種特殊的語言或圖形的表達方法及一套質量保證標準。
  • 軟件工具是指軟件開發、維護和分析中使用的程序系統,爲軟件工程方法提供自動的或半自動的軟件支撐環境。
  • 軟件工程的過程則是將軟件工程的方法和工具綜合起來以達到合理、及時地進行計算機軟件開發的目的。過程定義了方法使用的順序、要求交付的文檔資料、爲保證質量和協調變化所需要的管理及軟件開發各個階段完成的“里程碑”。

 

 

軟件過程可概括爲三類:基本過程類、支持過程類和組織過程類。

  • 基本過程類包括獲取過程、供應過程、開發過程、運作過程,維護過程和管理過程。
  • 支持過程類包括文檔過程、配置管理過程、質量保證過程、驗證過程、確認過程、聯合評審過程、審計過程以及問題解決過程。
  • 組織過程類包括基礎設施過程、改進過程以及培訓過程。

 

 

 

軟件生存週期:

制定計劃、需求分析、軟件設計、程序編碼、軟件測試、運行維護

 

 

瀑布模型:           

 

文檔驅動 

適用:在開發的早期階段需求被完全確定

缺點:

  1. 各個階段的劃分完全固定,階段之間產生大量的文 檔,極大地增加了工作量
  2. 開發過程中很難響應客戶的變更要求
  3. 早期的錯誤可能要等到開發後期的測試階段才能發 現,進而帶來嚴重的後果

快速原型模型:需求的採集-快速設計-建造原型-用戶評價原型-對原型加工-產品樣品   

     

 

關注滿足客戶需求

目的

  1. 減少開發風險和需求不確定性

缺點

  1. 原型系統的內部結構可能不好
  2. 開發人員需要掌握建立快速原型的開發技術和工具

適用

  1. 小型或中等規模的交互式系統
  2. 大型系統的某些部分,例如用戶界面
  3. 生命週期較短的系統

增量模型:體系結構設計驗證後,對構件進行開發

                      增量分析、增量設計、增量編碼、增量測試

 

先發布可運行的增量版本,發佈市場,看市場反應

 

產品的體系結構設計必須是開放的

 優點

  1. 整個產品被分解成若干個構件逐步交付,用戶可以不斷地看到所開發軟件的可運行中間版本
  2. 將早期增量作爲原型有助於明確後期增量的需求
  3. 降低開發風險
  4. 重要功能被首先交付,從而使其得到最多的測試

缺點

  1. 需要軟件具備開放式的體系結構
  2. 需求難以在增量實現之前詳細定義,因此增量與需求的準 確映射以及所有增量的有效集成可能會比較困難
  3. 容易退化爲邊做邊改方式,使軟件過程的控制失去整體性

 

螺旋模型: 制定計劃、風險分析、實施開發、客戶評估     

                                                                 

風險驅動   風險分析人員需要有經驗且經過充分訓練

優點

  1. 關注軟件的重用
  2. 關注早期錯誤的消除
  3. 將質量目標放在首位
  4. 將開發階段與維護階段結合在一起

缺點

  1. 契約開發通常需要事先指定過程模型和發佈產品
  2. 需要風險評估的經驗

 

大系統

噴泉模型:需求分析、設計、實現、測試、維護   

 

定義

  1. 噴泉模型是一種以用戶需求爲動力,以 對象爲驅動的模型,主要用於描述面向 對象的軟件開發過程。
  2. 該模型認爲軟件 開發過程自下而上週期的各階段是相互重疊和多次反覆的,各個開發階段沒有特定的次序要求,隨時補充其他任何開發階段中的遺漏。

優點

  1. 噴泉模型不像瀑布模型那樣,需要分析活動結束後才 開始設計活動,設計活動結束後纔開始編碼活動。該 模型的各個階段沒有明顯的界限,開發人員可以同步進行開發。其優點是可以提高軟件項目開發效率,節 省開發時間,適應於面向對象的軟件開發過程。

缺點

  1. 由於噴泉模型在各個開發階段是重疊的,因此在開發過程中需要大量的開發人員,因此不利於項目的管理。此外這種模型要求嚴格管理文檔,使得審覈的難度加大,尤其是面對可能隨時加入各種信息、需求與資料的情況。

形式化方法模型:形式化方法模型是採用形式化的數學方法將系統描述轉換成可執行的程序。

變換模型和淨室軟件過程模型

適用

  1. 特別適合於那些對安全性、可靠性和保密性要求極高的軟件系統,這些系統需要在投入運行前進行驗證

優點

  1. 由於數學方法具有嚴密性和準確性,形式化方法開發過程所 交付的軟件系統具有較少的缺陷和較高的安全性

缺點

  1. 開發人員需要具備一定技能並經過特殊訓練形式化描述和轉換是一項費時費力的工作
  2. 現實應用的系統大多數是交互性強的軟件,但是這些系統難 以用形式化方法進行描述

基於組件的開發模型:基於組件的開發技術是使用可重用的組 件或商業組件建立複雜的軟件系統。

 

組件開發技術的兩個重要因素

  1. 基於組件的軟件體系結構
  2. 基於組件的開發過程

優點

  1. 充分體現軟件複用的思想
  2. 實現快速交付軟件

缺點

  1. 商業組件的修改受到限制,影響系統的演化

演化模型:開發一個核心繫統,投入運行後,精化系統

包含:快速原型模型、螺旋模型

 

智能模型:

基於知識的軟件開發模型,綜合上述模 型,結合專家系統,基於規則採用規約 和推理機制,軟件維護在規格說明一級 進行。

 

 

 

軟件開發

軟個開發方法

結構化方法      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測試-開發是否在場)、系統測試

 

 

 

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