軟件(英語:Software)是一系列按照特定順序組織的計算機數據和指令的集合[1]。廣義上,軟件是計算機系統中與硬件相對應的組成部分,由程序代碼、運行規則及配套文檔構成,用於執行特定任務或實現功能需求。軟件並不限於計算機上運行的程序,與之相關的文檔通常也被視為軟件的一部分。「軟件」一詞是為了與計算機的物理部件——「硬件」相區分而創造的。

軟件
中文名軟件
外文名Software
定義計算機系統中與硬件相對應的邏輯部件,由程序、數據及相關文檔構成
主要分類系統軟件、應用軟件、中間件
開發流程需求分析、設計、編碼、測試、維護
相關概念硬件、固件、編程語言

定義

編輯

根據電氣與電子工程師協會(IEEE)在1983年的定義,軟件是程序、數據及相關文檔的完整集合,是計算機系統中的邏輯部件而非物理部件[1]。中國國家標準中對軟件的定義為:與計算機系統操作有關的電腦程式、規程、規則,以及可能有的文件、文檔及數據[2]。從運行層面來看,軟件是運行時能夠提供所要求功能和性能的指令或電腦程式集合[1]。簡而言之,軟件是程序加文檔的集合體。

分類

編輯

軟件的常見分類方式是根據其功能進行劃分。

系統軟件

編輯

系統軟件負責控制和管理計算機硬件資源,並為應用軟件提供運行平台。其核心是作業系統(Operating System),此外還包括設備驅動程序、實用程序等。

應用軟件

編輯

應用軟件是為解決特定應用問題而設計的程序,直接面向終端用戶。它根據用戶的指令處理數據,常見的例子包括文字處理器、電子表格、數據庫管理系統、工業軟件等。

中間件

編輯

中間件是介於系統軟件與應用軟件之間的軟件,旨在為應用軟件提供跨平台的數據交互和支持服務。

此外,根據用途和性質的不同,軟件還可被劃分為編程語言、網絡軟件、惡意軟件等類別。

歷史

編輯

軟件的歷史與計算機的發展緊密相連。一般認為,軟件伴隨着第一台電子計算機的問世而誕生。

早期(1940s-1950s)
最早的軟件通常是專門為特定硬件編寫的。世界上第一個程式設計師被認為是阿達·洛夫萊斯(Ada Lovelace),與查爾斯·巴貝奇(Charles Babbage)合作,為分析機設計了算法[3]。第一批獨立的專業軟件公司出現在1949年至1959年間,主要為客戶定製軟件和解決方案[4]。
程序系統時代(1960s-1970s)
隨着軟件複雜性的增加,「軟件危機」概念被提出,指許多大型軟件項目在預算和工期上出現嚴重問題[5]。1968年,在北大西洋公約組織(NATO)的計算機科學家會議上,「軟件工程」一詞被首次提出,旨在借鑑工程學的方法來系統化地開發和維護軟件[5]。
個人計算機時代(1980s-1990s)
IBM個人計算機(PC)的問世極大地推動了軟件產業的發展。微軟(Microsoft)在此時期崛起,其MS-DOS和Windows作業系統成為個人計算機的主流[4]。
互聯網與移動時代(1990s至今)
互聯網的普及催生了全新的軟件應用和服務模式,如雲計算、移動應用和軟件即服務(SaaS)。軟件技術進入了以網絡化、服務化和智能化為特徵的新發展時期。

開發過程

編輯

軟件開發是根據用戶需求構建軟件系統或其中部分的過程。一個典型的軟件生命周期通常包括以下階段:

軟件計劃
確定軟件開發的目標和範圍。
需求分析
捕捉和分析用戶的具體需求。
設計
包括軟件的總體結構設計和模塊的詳細設計。
編碼
使用特定的程序設計語言實現軟件的設計。
測試
對軟件進行測試以發現並修復缺陷。
部署與維護
將軟件交付用戶使用,並在後續進行維護、升級和更新。

許可模式

編輯

軟件的使用和分發通常受軟件許可證的約束,這是一種規定用戶在何種條件下可以使用、修改或分發軟件的法律協議[6]。常見的許可模式包括:

專有軟件
用戶獲得使用權,但原始碼通常不公開,修改和再分發受到嚴格限制。
開源軟件
原始碼對公眾開放,允許用戶自由使用、修改和分發,但必須遵守相應的開源許可證(如GPL、MIT License等)[6]。
免費軟件
用戶可以免費使用,但原始碼不一定開放,且使用可能受到其他限制。

參考文獻

編輯