軟件危機
軟件危機是指計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。(考試中名詞解釋或者選擇題為主)
軟件危機的典型表現
(1)對軟件開發成本和進度的估計常常很不準確。
(2)用戶對“已完成的”軟件系統不滿意的現象經常發生。
(3)軟件產品的質量往往靠不住。
(4)軟件通常沒有適當的文檔資料。
(5)軟件成本在計算機系統總成本中所占的比例逐年上升。
(6)軟件常常是不可維護等等。
(7)軟件開發生產率提高的速度,遠遠跟不上計算機應用迅速普及深入的趨勢。
?? 總之開發成本高,周期長,質量差,滿足不了市場需求。
產生軟件危機的原因
(1)軟件規模龐大,而且程序復雜性將隨著程序規模的增加而呈指數上升。
(2)軟件開發的管理困難。
(3)輕視軟件維護的重要性。(軟件維護的費用占軟件總費用的55%-70%)
(4)軟件開發費用增加。
(5)軟件開發技術落后。
消除軟件危機的途徑
(1)首先應該對計算機軟件有一個正確的認識。
(2)必須充分認識到軟件開發不是某個個體的神秘技巧,而是一種組織良好,管理嚴密,各類人員協調配合,共同完成的工程項目。
(3)必須充分吸收和借鑒人類長期以來從事各種工程項目所累積的行之有效的原理,概念,技術和方法,特別要吸收幾十年來人類從事計算機硬件研究和開發的經驗教訓。
(4)應該開發和使用更好的軟件工具。
為了解決軟件危機,既要有技術措施(方法和工具),又要有必要的組織管理措施。
軟件工程介紹
1968年在第一屆NATO會議上提出了軟件工程的一個早期定義:軟件工程介紹為了經濟地獲得可靠的且能在實際機器上有效地運行的軟件,而建立和使用完善的工程原理。
1993年IEEE進一步給出了一個更全面更具體的定義:軟件工程是:①把系統的、規范的、可度量的途徑應用于軟件開發、運行和維護的過程,也就是把工程應用于軟件;②研究①中提到的途徑。
軟件工程的本質特性
(1)軟件工程的中心課題是控制復雜性
(2)軟件經常變化。
(3)開發軟件的效率非常重要。
(4)和諧地合作是開發軟件的關鍵。
(5)軟件必須有效地支持它的用戶。
(6)軟件工程關注于大型程序的構造。
(7)在軟件工程領域中通常由具有一種文化背景的人替具有另一種文化背景的人創造產品。
軟件工程三個觀點
技術觀點:
軟件項目的分析,設計,編碼,測試,維護等方法。依據軟件技術理論,以開發高效,健壯,可復用,可維護的軟件為目標。研究軟件體系結構,組成成本以及構造方式等。
工程觀點:
包括軟件項目的招標,投標,合同,實施,監督,驗收,推廣等方面,以經濟管理科學的理論為依據,研究軟件工程的規劃策略和經濟收益等工程問題。
管理觀點:
包括軟件開發的人員組織,過程控制進度,風險分析和質量保證體系等方面,以科學性,合理性,高效運行及可測量性為目標,來研究工程項目管理。
軟件工程的基本原理
(1)用分階段的生命周期計劃嚴格管理。
(2)堅持進行階段評審。
(3)實行嚴格的產品控制。
(4)采用現代程序設計技術。
(5)結果應能清楚地審查。
(6)開發小組的人員應該少而精。
(7)承認不斷改進軟件工程實踐的必要性。
軟件工程包括技術和管理兩個方面的內容,是技術與管理緊密結合所形成的工程學科。
所謂管理就是通過計劃、組織和控制等一系列活動,合理地配置和使用各種資源,以達到既定目標的過程。
通常把在軟件生命周期全過程中使用的一整套技術方法的集合稱為方法學,也稱為范型
軟件工程方法學包含3個要素:方法、工具和過程。
方法是完成軟件開發的各項任務的技術方法,回答”怎么做“的問題。
工具是為運用方法而提高的自動的或半自動的軟件工程支撐環境。
過程是為了獲得高質量軟件所需要完成的一系列的框架,他規定了完成各項任務的工作步驟。
目前使用最廣泛的軟件工程方法學,分別是傳統方法學,面向對象方法學
軟件生命周期
由軟件定義,軟件開發和運行維護3個時期組成,每個時期進一步分成若干個階段。
定義階段:問題定義,可行性分析,需求分析。
開發階段:軟件設計,程序編碼,軟件測試
維護階段:運行維護,交付
?