軟件工程學概述

1.1 軟件危機

  1. 軟件危機:計算機軟件在開發和維護的過程中所遇到的一系列嚴重問題;

  2. 軟件危機的7項典型表現:

    a. 對軟件開發成本和進度的估計常常很不準確;

    b. 用戶對“已完成的”的軟件系統不滿意的現象經常發生;

    c. 軟件產品的質量往往靠不住;

    d. 軟件常常是不可維護的;

    e. 軟件通常沒有適當的文檔資料;

    f. 軟件成本在計算機系統成本中所占的比例逐年上升;

    g. 軟件開發生產率提高的速度,往往跟不上計算機應用迅速普及深入的趨勢。

  3. 軟件生命周期:一個軟件從定義、開發、使用和維護,直到最終被廢棄,要經歷的一個漫長時期。

  4. 為了解決軟件危機,既要有技術措施(方法和工具),又要有必要的組織管理措施。軟件工程正是從管理和技術兩方面研究如何更好的開發和維護計算機軟件的一門新興學科。


1.2 軟件工程

  1. 軟件工程是:①把系統的、可規范的、可度量的途徑應用于軟件開發、運行和維護過程,也就是把工程應用于軟件;②研究①中提到的途徑。

  2. 軟件工程的7條基本原理:

    a. 用分階段的生命周期計劃嚴格管理;

    b. 堅持進行階段評審;

    c. 實行嚴格的產品控制;

    d. 采用現代程序設計技術;

    e. 結果應能清楚地審查;

    f. 開發小組的人員應該少而精;

    g. 承認不斷改進軟件工程實踐的必要性。

  3. 軟件工程方法學:

    a. 軟件生命周期學(傳統方法學);

    b. 面對對象方法學。


1.3 軟件生命周期

軟件生命周期

1.4 軟件過程

  1. 軟件過程是為了獲得高質量軟件所需要完成的一系列任務的框架,規定了完成各項任務的工作步驟。(軟件過程必須科學有效)

  2. 生命周期模型規定了把生命周期劃分成哪些階段及各個階段的執行順序,因此也稱為過程模型。

  3. 瀑布模型:應用最廣泛的過程模型,有下述幾個特點

    a. 階段間具有順序性和依賴性;(前一階段的輸出文檔就是后一階段的輸入文檔)

    b. 推遲實現的觀點;(清楚地區分邏輯設計與物理設計,盡可能推遲程序的物理實現)

    c. 質量保證的觀點。(每個階段都必須完成規定的文檔并在結束前對文檔進行評審)

  4. 快速原型模型:快速原型是快速建立起來的可以在計算機上運行的程序,用戶試用原型系統后提出意見,開發人員快速修改,重復直到完成開發。

    a. 不帶反饋環,基本上做到線性順序開發;

    b. 本質是快速,軟件產品一旦交付給用戶使用之后,維護便開始了。

  5. 增量模型:也稱為漸增模型,把軟件產品作為一系列的增量構件來設計、編碼、集成和測試。

    a. 第一個增量構件往往實現軟件的基本需求,提供最核心的功能;

    b. 軟件產品分解成增量構件時唯一必須遵守的約束條件是,當把新構件集成到現有軟件中時,所形成的產品必須是可測試的;

    c. 優點1是能在較短的時間內向用戶提交可完成部分工作的產品,優點2是逐步增加產品功能可以使用戶有較充裕的時間學習的適應新產品,從而減少一個全新的軟件可能給用戶組織帶來的沖擊。

    d. 困難是,每個新的增量構件集成到現有軟件體系結構中時,必須不破壞原來已經開發出的產品。

  6. 螺旋模型:基本思想是使用原型及其他方法來盡量降低風險。(可以看作在每個階段前都增加了風險分析過程的快速原型模型)

    a. 螺旋模型有許多優點:對可選方案和約束條件的強調有利于已有軟件的重用,也有助于把軟件質量作為軟件開發的一個重要目標;減少了過多測試(浪費資金)或測試不足(產品故障多)所帶來的風險;更重要的是,在螺旋模型中維護只是模型的另一個周期,在維護和開發之間并沒有本質區別。

    b. 主要適用于內部開發的大規模軟件項目。(風險過大時方便中止項目)

    c. 主要優勢在于它是風險驅動的,也是一個弱點,需要開發人員有豐富的風險評估經驗。

6.噴泉模型:是典型的面向對象的軟件過程模型之一,體現了面向對象軟件開發過程迭代和無縫的特性。

  1. Rational 統一過程:(Rational Unified Process,RUP)是由Rational軟件公司推出的一種完整而且完美的軟件過程。

  2. RUP 總結的6條最有效的軟件開發經驗(最佳實踐)

    a. 迭代式開發;

    b. 管理需求;

    c. 使用基于構件的體系結構;

    d. 可視化建模;

    e. 驗證軟件質量;

    f. 控制軟件變更

  3. RUP 軟件開發生命周期:核心工作流、工作階段、RUP迭代式開發。

  4. 敏捷過程與極限編程

    a. 敏捷軟件開發宣言:個體的交互勝過過程和工具;可以工作的軟件勝過面面俱到的文檔;客戶合作勝過合同談判;響應變化勝過遵循計劃。

    b. 極限編程(eXtreme Programming,XP)是敏捷過程中最富盛名的一個,其中“極限”是指把好的開發實踐運用到極致。

  5. 微軟過程:作為一種適用于商業環境下具有有限資源和有限開發時間約束的項目的軟件過程模式,微軟綜合了 Rational 統一過程和敏捷過程的許多優點,但在方法、工具和產品等方面的論述不如RUP和敏捷過程全面。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容