軟件工程學概述
軟件危機
1、軟件危機是指在計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。
2、軟件危機的主要典型表現:
- 對軟件開發成本和進度的估計常常不准確
- 用戶對已完成的軟件系統不滿意現象經常發生
- 軟件產品的質量往往靠不住
- 軟件常常是不可維護的
- 軟件通常沒有適當的文檔資料
- 軟件成本在計算機系統中所占的比例逐年上升
- 軟件開發生成和計算機應用更新的速度不匹配
3、產生軟件危機的原因一方面與軟件本身的特點有關,另一方面也和軟件維護的方法不正確有關即人為因素
4、軟件的生命周期:軟件開發經歷的漫長周期。
5、軟件的定義:計算機程序、方法、規則、相關的文檔資料以及在計算機上運行時所必須的數據。
軟件工程
1、軟件工程的定義:
①早期定義:軟件工程就是為了經濟地獲得可靠的且能在實際機器上有效運行的軟件,而建立和使用完善的工程原理。
②把系統的、規范的、可度量的途徑應用於軟件開發、運行和維護過程,也就是把工程應用於軟件,以及研究以上提到的途徑。
2、軟件工程的本質特性:
- 軟件工程關注於大型程序的構造
- 軟件工程的中心課題是控制復雜性
- 軟件經常變化
- 開發軟件的效率非常重要
- 和諧的合作是開發軟件的關鍵
- 軟件必須有效地支持它的用戶
3、軟件工程的基本原理:
- 用分階段的生命周期計划嚴格管理
- 堅持進行階段評審
- 實行嚴格的產品控制
- 采用現代程序設計技術
- 結果應能清楚地審查
- 開發小組的人員應該少而精
- 承認不斷改進軟件工程實踐的必要性
4、軟件工程學方法的三要素:工具、方法和過程
5、目前使用廣泛的軟件工程學方法,分別是傳統方法學和面向對象方法學。
軟件生命周期
1、概況地說,軟件生命周期由軟件定義、軟件開發和運行維護三個時期組成
2、軟件生命周期每個階段的基本任務
- 軟件定義
1.1問題定義
1.2可行性研究
1.3需求分析
2.軟件開發
2.4總體設計
2.5詳細設計
2.6編碼和單元測試
2.7綜合測試
3.運行維護
3.8軟件維護
軟件工程
1、軟件開發設計模型:瀑布模型
- 特點:①階段間具有順序性和依賴性 ②推遲實現的特點 ③質量保證的特點
- 優點:可強迫開發人員采用規范的方法;嚴格規定了每個階段必須提交的文檔;要求每個階段交出的所有產品都必須經過質量;要求每個階段交出的所有產品都必須經過質量保證小組的仔細檢查。
- 缺點:不能應對需求的變化,由文檔驅動
2、Rational統一過程由RUP公司提出
最佳實踐:
- 迭代式開發
- 管理需求
- 使用基於構件的體系結構
- 可視化建模
- 驗證軟件質量
- 控制軟件變更