計算機軟體 “軟體”一詞於20世紀60年代初從國外傳來,英文“software”,有人譯為“軟製品”,也有人譯為“軟體”,現在人們大多統稱它為軟體。目前公認的解釋認為軟體是計算機系統中與硬體相互依存的另一部分,它是包括程式、資料及其相關文件的完整集合。其中,程式是按事先設計的功能和效能要求執行的指令序列;資料是使程式能正常操縱資訊的資料結構;文件是與程式開發、維護和使用有關的圖文材料。⑵在學者通常的論述中,計算機軟體一詞經常與計算機程式混用。但是,根據世界智慧財產權組織(WIPO)1978年公佈的《計算機軟體保護標準條款》中對計算機軟體的定義,計算機軟體包括三部分:(1)計算機程式:包括附者於任何媒介上的原始碼、目的碼、微碼等以任何語言、文字或符號所完成之計算機程式;(2)程式描述:包括資料結構、演繹法則、流程圖;(3)輔助資料:包括程式規格書、操作手冊、使用手冊。在中國,計算機軟體是指計算機程式及其有關文件。計算機程式,是指為了得到某種結果而可以由計算機等具有資訊處理能力的裝置執行的程式碼化指令序列,或者可以被自動轉換成程式碼化指令序列的符號化指令序列或者符號化語句序列。同一計算機程式的源程式和目標程式為同一作品。文件,是指用來描述程式的內容、組成、設計、功能、規格、開發情況、測試結果及使用方法的文字資料和圖表等,如程式設計說明書、流程圖、使用者手冊等。⑶因此,計算機軟體包含了計算機程式並且不侷限於計算機程式,還包括與之相關的程式描述和輔助資料。 計算機軟體具有以下特點: 1. 計算機軟體是一種邏輯實體,而不是具體的物理實體。計算機軟體具有抽象性,與計算機硬體和其他工程物件有著明顯的差別。人們可以把他記錄在紙面上或者儲存在計算機的儲存器內部,也可以儲存在磁碟、磁帶和光碟上,但卻無法看到軟體本身的形態,而必須透過專業人士的觀察、分析、思考、判斷,才能夠了解其功能、效能和其他特性。 2. 計算機軟體的產生與硬體不同。計算機軟體開發沒有明顯的製造過程,也不象硬體那樣,一旦研製成功,可以重複製造,並在製造過程中進行質量控制。軟體是透過人的智力活動,把知識與技術轉化成資訊產品。一旦某一軟體專案研製成功,即可大量複製,所以對軟體的質量控制,必須著重在軟體開發方面先工夫。也正是由於軟體的複製非常容易,因此才出現了對軟體產品的保護問題。 3. 計算機軟體的執行和使用不會出現硬體的機械磨損、老化問題。任何機械、電子裝置在使用過程中,其失效率大都遵循“浴盆曲線”:在剛投入使用時,各部件尚未作到配合良好、運轉靈活,容易出現問題,經過一段時間的執行,即可穩定下來。而當裝置經歷了相當長的時間運轉,就會出現磨損、老化,使失效率越來越大,當達到一定程度時,就達到了壽命的終點。而軟體不存在磨損和老化問題只存在退化問題。在軟體的生命週期中,為了使他能夠克服以前沒有發現的問題使他能夠適應硬體、軟體環境的變化以及使用者的新的要求,必須多次修改(維護)軟體,而每次修改又不可避免引入新的錯誤,導致軟體失效率升高,從而使軟體逐步退化。 4. 計算機軟體的開發和執行常常受到計算機系統的限制,很多軟體對計算機系統都有著不同程度的依賴性。軟體不能完全擺脫硬體而單獨活動。有些軟體依賴性大,常常為某個型號的計算機所專用,有些軟體依賴於某個作業系統。 5. 計算機軟體的開發至今尚未擺脫手工藝的開發方式。軟體產品大多是“定作”的,很少能作到利用現成的部件組裝所需的軟體。近年來,軟體技術雖然取得了很大進展,提出很多新的開發方法,例如利用現成軟體的複用技術、自動生成系統研製了一些有效的軟體開發工具和軟體開發環境,但在軟體專案中採用的比率仍然很低。由於傳統的手工藝開發方式仍然佔統治地位,軟體開發的效率自然受到很大限制。 6.軟體本身是非常複雜的。軟體的複雜性可能來自它所反映的實際問題的複雜性,例如,它所反映的自然規律,或是人類社會的事物,都具有一定的複雜性;另一方面,也可能來自程式邏輯結構的複雜性。軟體開發,特別是應用軟體的開發常常涉及到其它領域的專門知識,這對軟體開發人員提出了很高的要求。軟體的複雜性與軟體技術的發展不相適應的狀況越來越明顯。 7.軟體的開發成本相當昂貴。軟體的研製工作需要投入大量的、複雜的、高強度的腦力勞動,因此其成本比較高,美國每年投入軟體開發的費用要高達幾百億美元。 8.相當多的軟體工作涉及到社會因素。許多軟體的開發和執行涉及機構、體制及管理方式等問題,甚至涉及到人的觀念和心理。⑷ 計算機軟體按功能區分,包括系統軟體和應用軟體兩大類。 系統軟體的功能在於提供人與計算機的溝通橋樑,將使用者的命令轉換成計算機的可執行程式,驅使計算機執行工作,之後把結果輸出給使用者,系統軟體主要包括作業系統、翻譯程式、連結程式、載入程式、公用程式、程式語言、資料庫管理系統及監督程式。 應用軟體主要是用於解決某些特定問題,種類和用途年繁多。
計算機軟體 “軟體”一詞於20世紀60年代初從國外傳來,英文“software”,有人譯為“軟製品”,也有人譯為“軟體”,現在人們大多統稱它為軟體。目前公認的解釋認為軟體是計算機系統中與硬體相互依存的另一部分,它是包括程式、資料及其相關文件的完整集合。其中,程式是按事先設計的功能和效能要求執行的指令序列;資料是使程式能正常操縱資訊的資料結構;文件是與程式開發、維護和使用有關的圖文材料。⑵在學者通常的論述中,計算機軟體一詞經常與計算機程式混用。但是,根據世界智慧財產權組織(WIPO)1978年公佈的《計算機軟體保護標準條款》中對計算機軟體的定義,計算機軟體包括三部分:(1)計算機程式:包括附者於任何媒介上的原始碼、目的碼、微碼等以任何語言、文字或符號所完成之計算機程式;(2)程式描述:包括資料結構、演繹法則、流程圖;(3)輔助資料:包括程式規格書、操作手冊、使用手冊。在中國,計算機軟體是指計算機程式及其有關文件。計算機程式,是指為了得到某種結果而可以由計算機等具有資訊處理能力的裝置執行的程式碼化指令序列,或者可以被自動轉換成程式碼化指令序列的符號化指令序列或者符號化語句序列。同一計算機程式的源程式和目標程式為同一作品。文件,是指用來描述程式的內容、組成、設計、功能、規格、開發情況、測試結果及使用方法的文字資料和圖表等,如程式設計說明書、流程圖、使用者手冊等。⑶因此,計算機軟體包含了計算機程式並且不侷限於計算機程式,還包括與之相關的程式描述和輔助資料。 計算機軟體具有以下特點: 1. 計算機軟體是一種邏輯實體,而不是具體的物理實體。計算機軟體具有抽象性,與計算機硬體和其他工程物件有著明顯的差別。人們可以把他記錄在紙面上或者儲存在計算機的儲存器內部,也可以儲存在磁碟、磁帶和光碟上,但卻無法看到軟體本身的形態,而必須透過專業人士的觀察、分析、思考、判斷,才能夠了解其功能、效能和其他特性。 2. 計算機軟體的產生與硬體不同。計算機軟體開發沒有明顯的製造過程,也不象硬體那樣,一旦研製成功,可以重複製造,並在製造過程中進行質量控制。軟體是透過人的智力活動,把知識與技術轉化成資訊產品。一旦某一軟體專案研製成功,即可大量複製,所以對軟體的質量控制,必須著重在軟體開發方面先工夫。也正是由於軟體的複製非常容易,因此才出現了對軟體產品的保護問題。 3. 計算機軟體的執行和使用不會出現硬體的機械磨損、老化問題。任何機械、電子裝置在使用過程中,其失效率大都遵循“浴盆曲線”:在剛投入使用時,各部件尚未作到配合良好、運轉靈活,容易出現問題,經過一段時間的執行,即可穩定下來。而當裝置經歷了相當長的時間運轉,就會出現磨損、老化,使失效率越來越大,當達到一定程度時,就達到了壽命的終點。而軟體不存在磨損和老化問題只存在退化問題。在軟體的生命週期中,為了使他能夠克服以前沒有發現的問題使他能夠適應硬體、軟體環境的變化以及使用者的新的要求,必須多次修改(維護)軟體,而每次修改又不可避免引入新的錯誤,導致軟體失效率升高,從而使軟體逐步退化。 4. 計算機軟體的開發和執行常常受到計算機系統的限制,很多軟體對計算機系統都有著不同程度的依賴性。軟體不能完全擺脫硬體而單獨活動。有些軟體依賴性大,常常為某個型號的計算機所專用,有些軟體依賴於某個作業系統。 5. 計算機軟體的開發至今尚未擺脫手工藝的開發方式。軟體產品大多是“定作”的,很少能作到利用現成的部件組裝所需的軟體。近年來,軟體技術雖然取得了很大進展,提出很多新的開發方法,例如利用現成軟體的複用技術、自動生成系統研製了一些有效的軟體開發工具和軟體開發環境,但在軟體專案中採用的比率仍然很低。由於傳統的手工藝開發方式仍然佔統治地位,軟體開發的效率自然受到很大限制。 6.軟體本身是非常複雜的。軟體的複雜性可能來自它所反映的實際問題的複雜性,例如,它所反映的自然規律,或是人類社會的事物,都具有一定的複雜性;另一方面,也可能來自程式邏輯結構的複雜性。軟體開發,特別是應用軟體的開發常常涉及到其它領域的專門知識,這對軟體開發人員提出了很高的要求。軟體的複雜性與軟體技術的發展不相適應的狀況越來越明顯。 7.軟體的開發成本相當昂貴。軟體的研製工作需要投入大量的、複雜的、高強度的腦力勞動,因此其成本比較高,美國每年投入軟體開發的費用要高達幾百億美元。 8.相當多的軟體工作涉及到社會因素。許多軟體的開發和執行涉及機構、體制及管理方式等問題,甚至涉及到人的觀念和心理。⑷ 計算機軟體按功能區分,包括系統軟體和應用軟體兩大類。 系統軟體的功能在於提供人與計算機的溝通橋樑,將使用者的命令轉換成計算機的可執行程式,驅使計算機執行工作,之後把結果輸出給使用者,系統軟體主要包括作業系統、翻譯程式、連結程式、載入程式、公用程式、程式語言、資料庫管理系統及監督程式。 應用軟體主要是用於解決某些特定問題,種類和用途年繁多。