MILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">我們每天都說軟件測試、軟件開發、……,但是告真正全面理解什么是軟件,大多數
人不敢肯定。那軟件真正的含義是什么?
先看看一般教科書所給出的規范、科學的定義,即軟件是:
· 能夠完成預定功能和性能的、可執行的指令(計算機程序)。
· 使得程序能夠適當地操作信息的數據結構。
· 描述程序的操作和使用的文檔。
即“軟件=程序+數據(庫)+文檔” 在這里給山了軟件的最基本的組成成分。實際上,還少了一項內容:服務。我們可以用一個簡甲的公式給出軟件的定義:
軟件=程序+數據(庫)+文檔+服務
為了幫助讀者更好地理解軟件的含義,我們一起來看看軟件有哪些特征。軟件是相對
硬件而相對存在的。硬件是可以直觀感覺到、觸摸得到的物理產品。生產硬件時,人的創
造性的過程(設計、制作、測試)能夠完全轉換成物理的形式。例如,生產一個新的計算機,
初始的草圖、正式的設計圖紙和面板的原型一步步演化成為一個物理的產品,如模具、集
成芯片、集成電路、電源和掣料機箱等。
正如我們政府官員經常提到的,我們不僅要搞好投資的硬件環境,更要搞好軟件環境。
這里的硬件環境,包括交通、水電、辦公樓和廠房等,而軟件環境指的就是優惠政策、政
府職能轉變和服務等。
軟件則是邏輯的、知識性的產品集合,是對物理世界的一種抽象,或者是某種物理形態的虛擬化。因此,軟件具有與硬件完全不同的特征。其主要表現在以下3個方面。
1軟件是硬件的靈魂,硬件是軟件的基礎
計算機硬件必須靠軟件實現其功能,如果沒有軟件,硬件就好比一堆廢鐵,所以說軟件是硬件的靈魂。同時,軟件必須依賴于硬件,只有在特定的硬件環境上才能運行。
雖然“軟件工廠”的概念也已被引入,這并不是說硬件生產和軟件開發是一回事,而是引用軟件工廠這個概念促進軟件開發中模塊化設計、組件復用等意識的全面提升。
2軟件是智慧和知識的結晶
軟件是完全的智力產品,是通過技術員的大腦活動創造的結果。軟件現在被認為屬于高科技產品。軟件產業是一種知識密集型產業。
一個價值很高的軟件,可能就裝在幾張軟盤上,包括程序和文檔。少數不了解軟件價值的領導,不愿意為此付出幾十萬人民幣。他可能會說,幾十萬元錢可以買一大堆計算機,可以買一輛桑塔納或奧迪小轎車,幾張軟盤哪會值那么多錢?在這里,這位領導只看到了軟件的載體,也就是只看到其物理的表現形式,而沒有看到其實質的內容以及開發這個產品過程中所投入的、高技術的大量人力。軟件的主要成本在于先期的開發人力。軟件成為產品之后,其后期維護、服務成本也很高。而軟件載體的制作成本很低,如磁盤、光盤的復制是比較簡單的,所以軟件也就容易成為盜版的主要目標。
3軟件不會“磨損”,而是逐步完善
隨著時間的推移,硬件構件會由于各種原因受到不同程度的磨損,但軟件不會.新的硬件故障率很低,隨著長時問的改變,硬件會老化,故障率會越米越高。相反,隱藏的錯
誤會引起程序在其生命初期具有較高的故障率,隨著使用的不斷深入,所發現的問題會慢慢地被改正,其結果是程序越來越完善,故障率會越來越低。
從另一個側面看,硬件和軟件的維護差別很大。當一個硬件構件磨損時,可以用另外一個備用零件替換它,但對于軟件,不存在替換,而是通過開發補丁程序不斷地解決適用性問題,或擴充其功能。一般來說,軟件維護要比硬件維護復雜得多,而且軟件的維護周
期要長得多。軟件正是通過不斷的維護,改善功能,增加新功能,來提高軟件系統的穩定性和叫靠性的。
1.2軟件開發過程的特性
在了解軟件含義之后,我們就來了解軟件是通過一個什么樣的過程開發出來的,也就是了解軟件的開發過程。軟件開發過程是軟件工程中的重要內容,也是進行軟件測試的
基礎。
1.2.1軟件開發的基本過程
軟件開發的基本過程,可以被簡單地分為需求分析、設計(概要設計、詳細設計)、編程,測試和維護等幾個階段,即通常所說的“傳統生命周期”,也就是著名的軟件開發過程的“瀑布模型”,如圖1一I所示。通過這個模型,能比較直觀地理解軟件開發的全過程。
需求分析
設計
編程
測試
維護
時間
圖I-1軟件開發過程的瀑布模型
文章來源于領測軟件測試網 http://www.kjueaiud.com/