軟件
軟件(英語: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]。常見的許可模式包括:
參考文獻
編輯- ↑ 1.0 1.1 1.2 ISO/IEC/IEEE 24765:2017 Systems and software engineering — Vocabulary
- ↑ GB/T 11457-2006 信息技術 軟件工程術語
- ↑ Ada Lovelace | Biography, Computer, & Facts | Britannica
- ↑ 4.0 4.1 Computer History Museum - Timeline of Computer History
- ↑ 5.0 5.1 Naur, P., & Randell, B. (Eds.). (1969). Software Engineering: Report of a conference sponsored by the NATO Science Committee
- ↑ 6.0 6.1 The Open Source Definition | Open Source Initiative