(一)軟件工程學概述
(1) 什麽是軟件危機,具體表現,消除軟件危機的途徑(*)
軟件危機是指在計算機軟件的開發和維護過程中所遇到的一系列嚴重問題
答:“已完成”的軟件不滿足用戶的需求;開發進度不能保障;軟件開發成本和進度難以準確估算;軟件產品的質量沒有保證,軟件常常是不可維護的。
- 開發成本和進度難以估算和控制,大大超過預期
- 用戶對已完成的軟件不滿意,需求分析不夠充分
- 軟件產品的質量難保證
- 軟件維護困難
- 難以改正錯誤
- 難以增加新功能
- 軟件通常沒有配套文檔資料
- 軟件成本占計算機系統總成本中比例逐年上升
- 軟件開發生產率提升,落後於計算機普及速度。
產生軟件危機原因
一是軟件的特點
二是軟件開發與維護的方法不當
消除軟件危機的途徑
- 消除錯誤的“軟件就是程序”觀
正確的軟件概念是: 軟件=程序+文檔+數據
- 強調團隊協作:軟件開發應該是一種組織良好、管理嚴密、各類人員協同配合、共同完成的工程項目,個人英雄主義沒有作為
- 使用實踐中總結出來的成功的技術
- 發展更好的軟件工程工具。
(2) 軟件工程概念,定義,三要素(方法、工具、過程)(*)
軟件=程序+文檔+數據
軟件工程是采用工程的概念、原理、技術和方法來開發與維護軟件,把經過時間考驗而證明正確的管理方法和先進軟件開發技術結合起來,運用到軟件開發和維護過程中,來解決軟件危機。
實際上 軟件應該是程序、數據及相關文檔的完整集合
其中程序是能夠完成預定功能和性能的可執行的指令序列;數據是使程序能夠適當地處理信息的數據結構;文檔是開發、使用和維護程序需要的圖文資料。
- 方法
完成軟件開發任務所遵循的技術原理(理論、思想),回答“怎樣做”的問題; - 工具
自動的或半自動的,踐行方法的操作支撐環境(如CASE工具); - 過程
為了獲得高質量的軟件,所需完成的一系列任務框架,它規定了完成各項任務的工作序列。
(3) 軟件生命周期時期,階段劃分,(*)
指一個軟件從提出開發要求開始到該軟件報廢為止的整個時期。
進一步可將軟件的生命周期劃分為可行性研究、需求分析、設計、編碼、測試、集成、維護階段。
5階段劃分:需求定義;設計;編碼;測試;維護
(1) 軟件工程方法學的概念,內涵,要素,主要的範型
- 傳統方法學
ü 采用結構化技術(SA、SD、SP)
ü 對軟件生命周期劃分階段,按順序完成各階段任務
ü 每個階段開始和結束都有嚴格標準,相鄰的兩個階段,前一階段的結束標準即為後一階段的開始標準
ü 每階段結束前都需要進行正式而嚴格的技術審查和管理復審
ü 強調自頂而下順序地完成軟件開發各階段的任務
——基於瀑布模型
- 面向對象方法學
ü 把對象(Object)作為融合了數據及對數據的操作行為的統一的軟件構件。
ü 對象彼此間通過消息傳遞協同工作,共同完成系統的功能
ü 把相關對象分類(Class)
ü 借鑒自然界的遺傳變異的特性,提煉出繼承及多態機制,有效提高軟件構件重用性及改善軟件系統結構,從而提高了軟件生產效率及可維護性。
ü 主動多次反復叠代的演化過程
——基於叠代模型
(2) 軟件過程概念,各種軟件過程模型和特點(瀑布,快速原型,螺旋)
軟件過程——為獲得高質量軟件所需完成的一系列任務的框架,它規定了完成各項任務的工作步驟
軟件生命周期模型——從軟件項目需求定義之中軟件經使用後廢棄為止,跨越整個生存期的系統開發、運作和維護所實施的全部的過程、活動和任務的結構框架。
模型 |
優點 |
缺點 |
瀑布模型 |
文檔驅動 |
系統可能不滿足客戶的需求 |
快速原型模型 |
關註滿足客戶需求 |
可能導致系統設計差、效率低,難於維護 |
增量模型 |
開發早期反饋及時,易於維護 |
需要開放式體系結構,可能會設計差、效率低 |
螺旋模型 噴泉模型 |
風險驅動 叠代 無縫 適合OO |
風險分析人員需要有經驗且經過充分訓練 |
瀑布模型
特點
(1)階段間具有順序性和依賴性
(2)推遲實現的觀點
(3)質量保證的觀點
快速原型模型
特點
快速原型模型的第一步是快速建立一個能反映用戶主要需求的原型系統讓用戶
在計算機上試用它通過實踐來了解目標系統的概貌。
螺旋模型
特點
螺旋模型的基本思想是使用原型及其他方法來盡量降低風險。理解這種模型的一
個簡便方法是把它看作在每個階段之前都增加了風險分析過程的快速原型模型
(一)軟件工程學概述