本章目標
1、了解軟件的概念、特點及主要分類
2、了解軟件危機的產生原因及其表現
3、掌握軟件工程的概念軟件危機產生的原因是,以及軟件工程的基本原則
4、了解軟件開發的方法
5、了解與軟件開發項目相關的常用工具
1.1軟件
1.1.1軟件的概念及特點
概念:計算機軟件是由專業人員開發并長期維護的軟件產品。完整的軟件產品包括可以在不同容量和體系結構的計算機上執行的程序,運行過程中產生的各種結果軟件危機產生的原因是,以及硬復制和電子表格等多種方式存在的軟件文檔。
特點:
a.具有抽象性。b.沒有明顯的制造過程。c.存在退化問題。d.對計算機系統有不同程度的依賴性。e.至今尚未完全擺脫人工的開發方式。f.軟件本身是復雜的。g.成本相當昂貴。h.相當多的軟件工作涉及社會因素。
1.1.2軟件的分類
基于功能的不同:系統軟件、支撐軟件、應用軟件
軟件服務對象的不同:通用軟件、定制軟件
軟件產品規模的不同:小型軟件、中型軟件、大型軟件、超大型軟件
工作方式的不同:實時軟件、分時軟件、交互型軟件、批處理軟件
1.2軟件危機
1.2.1軟件危機的表現及原因
軟件危機是指落后的軟件生產方式無法滿足迅速增長的計算機軟件需求,從而導致軟件開發與維護過程中出現一系列嚴重問題的現象。
表現
a、軟件需求增長得不到滿足;
b、軟件生產高成本、價格昂貴;
c、軟件生產進度無法控制;
d、軟件需求定義不準確;
e、軟件質量不易保證;
f、軟件可維護性差
原因
a.忽視軟件開發前期的需求分析
b.開發過程缺乏統一的、規范化的方法論的指導
c.文檔資料不齊全或者不準確
d.忽視與用戶之間、開發組成員之間的交流
e.忽視測試的重要性
1.3軟件工程
1.3.1概念
軟件工程是以借鑒傳統工程的原則和方法,以提高質量、降低成本為目的指導計算機軟件開發的維護的工程學科。它是一種層次化的技術。
軟件工程三要素:過程、方法、工具。
1.3.2研究的內容
軟件開發技術。
軟件開發過程管理。
1.3.3軟件工程的目標與原則
目標:(1) 達到要求的軟件功能。 (2)取得較好的軟件性能。 (3)開發出高質量的軟件。 (4)付出較低的開發成本。 (5)需要較低的維護費用。 (6) 能按時完成開發工作,及時交付使用。
七條基本原則:
(1)用分階段的生存周期計劃進行嚴格的管理。(2)堅持進行階段評審。(3)實行嚴格的產品控制。(4)采用現代程序設計技術。(5)軟件工程結果應能清楚地審查。(6)開發小組的人員應該少而精。(7)承認不斷改進軟件工程實踐的必要性。
1.3.4軟件工程知識體系
1.4軟件開發方法
軟件開發方法是一種使用定義好的技術集及符號表示組織軟件開發的過程,它的目標是在規定的時間和成本內,開發出符合用戶需求的高質量的軟件。常見的軟件開發方法包括以下幾種:
結構化方法
面向數據結構方法
面向對象方法
形式化方法。此外還有問題分析法、可視化開發方法等。
1.5軟件工程工具
軟件工程的工具對軟件工程中的過程和方法提供自動的或半自動的支持。可以幫助軟件開發人員方便、簡捷、高效地進行軟件的分析、設計、開發、測試、維護和管理等工作。有效地利用工具軟件可以提高軟件開發的質量,減少成本,縮短工期,方便軟件項目的管理。
軟件工程工具通常有以下3種分類標準。
**按照功能劃分:**功能是對軟件進行分類的最常用的標準,按照功能劃分,軟件工程工具可分為可視化建模工具、程序開發工具、自動化測試工具、文檔編輯工具、配置管理工具和項目管理工具等。
按照支持的過程劃分:根據支持的過程,軟件工程工具可分為設計工具、編程工具和維護工具等。
**按照支持的范圍劃分:**根據支持的范圍,軟件工程工具可以分為窄支持、較寬支持和一般支持工具。窄支持工具支持軟件工程過程中的特定任務,一般將其稱為工具;持工具支持特定的過程階段,一般由多個工具集合而成,稱為工作臺;一般支持工具支持覆蓋軟件過程的全部或大部分階段,包含多個不同的工作臺,稱為環境。