引言:文章是按照markdown格式寫的,可直接複製到markdown上進行查看
#第一章 軟件工程學概述#
------------------
###1.1 軟件危機###
軟件危機的介紹:軟件危機是指在計算機開發和維護過程中所遇到的一系列嚴重的問題
主要包含以下兩個問題:
1.如何開發軟件,以滿足對軟件日益增長的需求
2.如何維護數量不斷膨脹的已有軟件
軟件危機的典型表現:
1.對軟件開發成本和進度的估計常常不準確
2.用戶對“已完成的”軟件系統不滿意的現象經常發生
3.軟件產品的質量往往靠不住
4.軟件常常是不可維護的
5.軟件通常沒有適當的文檔資料
6.軟件成本在計算機系統總成本中所佔的比例逐年上升
7.軟件開發生產的速率,跟不上計算機應用迅速普及深入的趨勢
產生軟件危機的原因
一方面與軟件本身的特點有關,另一方面也與軟件開發與維護的方法不正確。
消除軟件危機的途徑
1.對計算機軟件有一個正確的認識。必須充分認識到軟件開發不是某種個體勞動的神祕技巧,而應該是一種組織良好,管理嚴格,各類人員協同配合,共同完成的工程項目。
2.應該推廣使用在實踐中總結出來的開發軟件的成功的技術和方法,並且研究探索更好更有效的技術和方法,儘快消除在計算機系統早期發展階段行程的一些錯誤概念和做法。
3.應該開發和使用更好的軟件工具。
4.綜上,既要有技術措施,又要有必要的組織管理措施。
###1.2 軟件工程###
軟件工程的介紹:軟件工程是指導計算機軟件開發和維護的一門工程學科。
軟件工程的出現原因:軟件工程是爲了解決軟件危機而出現的
軟件工程的本質特性
(1)軟件工程關注於大型程序的構造
(2)軟件工程的中心課題是控制複雜性
(3)軟件經常變化
(4)開發軟件的效率非常重要
(5)和諧地合作是開發軟件的關鍵
(6)軟件必須有效地支持它的用戶
(7)軟件工程領域中通常由具有一種文化背景的人代替具有另一種文化背景的人創造產品。
軟件工程的基本原理
1.用分階段的生命週期計劃嚴格管理
2.堅持進行階段評審
3.實行嚴格的產品控制
4.採用現代程序技術
5.結果應能清楚地審查
6.開發小組人員應該少而精
7.承認不斷改進軟件工程實踐的必要性
二、軟件工程三要素
軟件工程是以提高軟件質量和生產率爲目標,由過程,方法,工具,三個要素組成。
1、軟件工程方法:解決軟件開發“如何做”的問題。
2、軟件工程過程:管理和控制產品質量的關鍵。
3、軟件工程工具:提供軟件支撐環境,輔助軟件開發過程的完成。
4、軟件工程中的質量是最重要的,它是軟件工程的目標。
軟件工程方法學
1.傳統方法學
傳統方法學也稱爲生命週期方法學或結構化範型。它採用結構化技術(結構化分析,結構化設計,結構化實現)來完成軟件開發的各項任務,並使用適當的軟件工具或軟件工程環境來支持結構化技術的運用。
2.面向對象方法學
面向對象方法把數據和行爲看成是同等重要的,它是一種以數據爲主線,把數據和對數據操作緊密地結合起來的方法。
它的出發點和基本原則是儘量模擬人類習慣的思維方式,使開發軟件的方法與過程儘可能接近人類認識世界,解決問題的方法與過程,從而使描述問題的問題控件與實現問題的解控件在結構上儘可能的一致。
###1.3軟件生命週期###
軟件生命週期的概念:
軟件生命週期由軟件定義,軟件開發和運行維護(也稱運行維護)3個時期組成,每個時期又進一步劃分爲若干個階段。
每個時期的任務
1.軟件定義時期的任務:確定軟件開發工程必須完成的總目標;確定工程的可行性;導出實現工程目標應該採用的策略以及系統必須完成的功能;估計完成該項工程需要的資源和成本,並且制定工程進度表。
2.開發時期的任務:具體設計和實現在前一個時期定義的軟件。
3.維護時期的任務:使軟件持久地滿足用戶的需要。
###1.4軟件過程###
1.軟件過程的定義
軟件過程描述爲了開發出客戶需要的軟件,什麼人,在什麼時候,做什麼事以及怎樣做這些事以實現某一個特定的具體目標。
2.生命週期模型
生命週期模型簡潔地描述軟件過程。生命週期軟件模型規定了把生命週期劃分成那些階段以及各個階段的執行順序。
3.常見的生命週期模型
(1)瀑布模型 (2)快速還原模型(3)增量模型 (4)快速增量模型 (4)螺旋模型 (5)噴泉模型
4.Rational統一過程
Rational統一過程是由Rational軟件公司推出的一種完整而且完美的軟件開發過程。
5.敏捷過程與極限編程
敏捷過程主要是爲了使軟件開發團隊具有高效工作和快速響應變化的能力。
極限編程是把好的開發實踐運用到極致。
6.微軟過程
微軟過程是微軟公司自己獨特的軟件開發過程。
7.常見三種週期模型的優點
瀑布模型的優點:
1.可強迫開發人員採用規範的方法(例如:結構化技術)
2.嚴格地規定了每個階段必須提交的文檔;
3.要求每個階段交出的所有產品都必須經過質量保證小組的仔細驗證
快速原形模型的優點:
1.有助於保證用戶的真實需要得到滿足
增量模型的優點:
1.能在較短的時間內向用戶提交可完成部分工作的產品
2.逐步增加產品功能可以使用戶有較充裕的時間學習和適應新產品,從而減少
一個全新的軟件可能給客戶組織帶來的衝擊。
3.軟件的可維護性明顯好於封閉結構的軟件