fbpx
维基百科

软件

軟體(英語:software)是一系列按照特定顺序组织的電腦数据和指令,是電腦中的非有形部分。電腦中的有形部分稱為硬體,由電腦的外殼及各零件及電路所組成。電腦軟體需有硬體才能運作,反之亦然,軟體和硬體都無法在不互相配合的情形下進行實際的運作。

software」的各地常用譯名
中国大陸软件
臺灣軟體
香港軟件

一般来說,计算机软件划分为程式語言系统软件应用软件和介于这两者之间的中介軟體。其中系统软件为计算机使用提供最基本的功能,但是并不针对某一特定应用领域。而应用软件则恰好相反,不同的应用软件根据用户和所服务的领域提供不同的功能。

软件包括所有在電腦執行的程式,和其架構無關,例如執行檔函式庫腳本語言都屬於软件。軟體不分架構,有其共通的特性,在執行後可以讓硬體執行依設計時要求的機能。軟體儲存在記憶體中,軟體不是可以碰觸到的實體,可以碰觸到的都只是儲存軟體的零件(記憶體)或是媒介(光碟磁片等)。

软件并不一定只包括可以在计算机上运行的電腦程式,有些定義中,与電腦程式相关的文档,一般也被认为是软件的一部分。简单的说软件就是程式加文档的集合体。软件被应用于世界的各个领域,对人们的生活和工作都产生了深远的影响。

編程語言

以最低階的角度來看,執行檔中包括了針對特定微處理器(一般會是CPU)的機械碼,機械碼包括了一連串二進位的數值,使處理器從目前的狀態變換到下一個狀態。例如指令可能會修改電腦內一特定位置中的數值,其效果是使用者無法直接觀測到的,指令也可能讓螢幕上顯示特定資料,這種狀態變換是使用者可以看到的。處理器會依照順序處理收到的指令,不過處理器的處理也可能受到中斷,或是因為流程控制指令而改變其要處理的指令。

機械碼是許多二進位的數值,不方便工程師閱讀及開發程式,因此有組合語言,將機械碼轉換為人可以看懂的助憶碼。不過現在多半的軟體是用高階語言撰寫,比較類似自然語言,對人類而言比機械碼或組合語言要簡單,方便人類使用[1]。高階語言一般會用直譯或編譯的方式,將軟體的原始碼轉換為機械碼。

原始碼是指以程式語言所撰寫的一系列人類可閱讀的電腦指令,以實作出軟體的行為和功能。

軟體分類

 
一個說明電腦中作業系統應用軟體層次的示意圖,圖中的箭頭表示資訊流動方向。

軟體的分類方式有很多種,可以依軟體的目的分為以下幾種:

系统软件

系统软件负责管理计算机系统中各种独立的硬件,使得它们可以协调工作,提供基本的功能,並為正在運行的應用軟件提供平台[2]。系统软件使得计算机使用者和其他软件将计算机当作一个整体而不需要顾及到底层每个硬件是如何工作的。而各個硬件工作的細節則由驅動程式處理。

一般来说,系统软件包括操作系统(例如BSDDOSLinuxmacOSiOSOS/2QNXUnixWindows等)和一系列基本的工具(比如编译器,数据库管理,存储器格式化,文件系统管理,作業系統管理,用户身分验证,驱动管理,网络连接等方面的工具)。

应用软件

应用软件是为了某种特定的用途而被开发的软件。它可以是一个特定的程式,比如一个图像浏览器。也可以是一组功能联系紧密,可以互相协作的程式的集合,比如微软Office软件。也可以是一个由众多独立程式组成的庞大的软件系统,比如数据库管理系统。

较常见的有:

  1. 文書處理軟體Microsoft OfficeGNOME OfficeKOfficeLibreOfficeGoogle DocsWPS Office
  2. 關聯式資料庫Oracle Database数据库、SQL Server数据库
  3. 電腦輔助設計CATIAAutoCADFreeCAD
  4. 電腦程式設計C/C++組合語言BASICSwiftJavaScriptJava
  5. P2P軟體BitTorrentµTorrentFoxy比特精靈VuzeFree Download Manager
  6. 影像處理軟體PhotoshopCorelDRAWCorel painterGIMPMAYASoftimage3ds MaxBlenderxsilightwaveCinema 4DHoudiniKrita
  7. 動態圖形視覺特效After Effectsshake
  8. 網頁瀏覽軟體Internet ExplorerEdgeFirefoxChromeSafariOperaKonqueror
  9. 網路通訊軟體LineICQWindows Live MessengerUUcallSkypeYahoo! MessengerQQAOL Instant Messenger
  10. 媒體播放器MPC-HCMPlayerRealPlayerGOMVLCWMP暴风影音、风雷影音、WinampFoobar2000
  11. 下载管理软件Free Download ManagerIDM
  12. 電子郵件Outlook.comWindows Live MailOutlook ExpressFoxmailThunderBirdDreammailKMail
  13. 資訊安全軟體ESET360安全衛士德國小紅傘卡巴斯基PC-cillin諾頓防毒BitDefender瑞星杀毒金山毒霸
  14. 虛擬機器VMwareVirtualBoxMicrosoft Virtual PCBochs
  15. 輸入法軟件如新酷音輸入法谷歌拼音输入法
  16. 實時控制系統
  17. 教育軟體

惡意軟件

恶意软件是發展到危害和破壞計算機的計算機軟件,因此,惡意軟件是不受欢迎的。惡意軟件與計算機相關的犯罪相關聯,儘管一些惡意程序可能被設計為用于惡作劇。

軟體相關主題

軟體架構

用戶常會看到一些程式設計者不會注意的事物。使用現代通用型電腦(相對於嵌入式系統類比電腦超級電腦)的用戶常會用以下三層的軟體架構來進行不同的任務:系統平台、應用程式及用戶軟體。

  • 應用軟體:應用軟體也就是大部分用戶認為的軟體,常見的例子包括辦公室套件及遊戲等。應用軟體一般會和硬體分開來販售,偶爾會和硬體一起販售。應用軟體多半是獨立於系統平台的軟體,只是在設計時仍會針對某些特定的系統平台開發,有些人則將像編輯器、資料庫等「系統軟體」也視為是應用軟體。
  • 用戶撰寫的軟體:終端用戶開發英语End-user development目的是讓軟體符合用戶等特定的需求,一般包括試算表及文字處理器的範本或巨集,甚至連郵件的過濾器也可以視為是一種用戶撰寫的軟體。依照用戶撰寫的軟體整合到預設應用軟體的程度不同,其他用戶可能不會知道哪些是應用軟體原有的機能,哪些是用戶擴充的機能。

軟體執行

軟體在載入到電腦的數據存貯器(例如硬碟記憶體)後,電腦就可以執行該軟體。「執行」指的是將指令集由軟體移到電腦硬體中,硬體會處理指令集對應的機器碼。每一個指令都會讓電腦執行特定的動作,包括搬移資料、執行運算或是改變控制流程

資料搬移一般會由記憶體的一個位置移到另一個位置,有時資料搬移會用到中央處理器中允許較快速資料處理的暫存器。大量的資料搬移會用去不少的系統資源,因此有時會用「指標」來處理資料。執行運算的範圍很廣,簡單的可以包括將某位置的資料加一,複雜的可能包括許多資料及對應的處理。

軟體的執行多半是一個指令接一個指令的循序進行,但有時會需要改變軟體中指令執行的順序,例如有可以使某一段程式執行數次的迴圈,或是依特定條件執行兩段程式中的一段的分支指令,甚至是可以執行子程式,執行完成後再回到原來程式,而有些語言也支援無條件的跳躍指令。

軟體可以以許多不同的方式運作,包括執行檔原始碼腳本電腦組態英语computer configuration

質量及可靠度

软件的品質有一定的重要性,尤其在像Microsoft OfficeMicrosoft WindowsLinux等商用軟體或系統軟體更是如此。若軟體無法正確執行,可能會刪除用戶工作的成果,使電腦當機或是出現其他無預期的情形,這類情形稱為程式錯誤,俗稱bug。軟體也會受到软件退化英语software aging的影響,也就是因為許多未發現的程式錯誤造成的性能退化。藉由軟體測試可以找出並消除許多的程式錯誤,不過軟體測試很少可以完全消除程式錯誤。很多大型的軟體公司,例如微軟、Novell及昇陽電腦等,會有專門的軟體測試部門,其主要工作就是測試軟體。軟體可以用單元測試回歸測試及其他方式進行測試。測試可能用人工進行,若是大型的程式,更常見的是用電腦自動測試。像NASA就針對其作業系統及其通訊程序有特別嚴謹的測試流程。

使用許可

不同的软件一般都有对应的软件授權,软件的使用者必须在同意所使用软件的许可证的情况下才能够合法的使用软件。从另一方面来讲,特定软件的许可条款也不能够与法律相抵触。

依據許可方式的不同,大致可將軟體區分為幾類:

  • 專有軟體:此類授權通常不允許使用者隨意的複製、研究、修改或散佈該軟體。違反此類授權通常會有嚴重的法律責任。傳統的商業軟體公司會採用此類授權,例如微軟Windows和辦公軟體。專屬軟體的源碼通常被公司視為私有財產而予以嚴密的保護。
  • 自由軟體:此類授權正好與專屬軟體相反,賦予使用者複製、研究、修改和散佈該軟體的權利,並提供源碼供使用者自由使用,僅給予些許的其它限制。以LinuxFirefoxOpenOffice可做為此類軟體的代表。
  • 共享軟體:通常可免費的取得並使用其試用版,但在功能或使用期間上受到限制。開發者會鼓勵使用者付費以取得功能完整的商業版本。
  • 免費軟體:可免費的取得和散佈,但並不提供源碼,也無法修改。
  • 公共軟體:原作者已放棄權利,著作權過期,或作者已不可考的軟體。使用上無任何限制。

專利

有些國家可以申請軟體專利,有些國家不行,而是用著作權的觀點保護軟體[3]。不過在軟體產業中,軟體專利是個爭議性高的議題,各方人士有不同的立場。軟體專利爭議英语Software patent debate的主要爭議點是在軟體專利中,受保護不得複製的部分是其演算法還是其用到的技術。

软件开发

软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。软件开发是一项包括需求捕捉,需求分析设计,实现和测试系统工程,其中可能包括研究、新的开发工作、修改、复用、重新设计(再工程)、维护,或者任何最终获得软件产品的其他活动[4]

軟體開發過程是指軟體從起始到完成過程中如何進行計劃、控制和監控的模型。有以下不同的幾種:

  • 瀑布模型:依需求分析,設計,實現,測試 (確認), 集成,和維護這樣的步驟依序進行。
  • 迭代式开发:將開發工作被組織為一系列的短小的、固定長度(如3周)的小項目,被稱為一系列的疊代。在每一次疊代中進行需求分析、設計、實現與測試。
  • 敏捷软件开发:應對快速變化需求的軟體開發方式,強調設計師團隊與業務專家之間的協作、面對面的溝通、頻繁交付軟體版本、適應變化的代碼編寫等特點。
  • 極限編程:敏捷软件开发的一種,引入基本價值、原則、方法等概念來達到降低變更成本的目的,其主要目的是快速應用程式開發。
  • 快速應用程式開發,以最小幅度的規劃並迅速地將原形完成的軟體發展方法論,其軟體開發的規劃是和撰寫軟體本身交錯同時進行。
  • 螺旋模型:兼顧了快速原型的迭代特徵以及瀑布模型的系統化與嚴格監控,並且加入了其他模型不具備的風險分析英语risk analysis,使軟體在無法排除重大風險時有機會停止,以減小損失。

編程工具

軟體開發工具指的是軟件開發人員用來創建、調試維護或以其他方式支持的軟件程序或應用程序的形式。

軟件由一种或多种編程語言所写成。现在存在有很多种編程語言,並且每种都具有至少一种编写的方式,其中包括它自己的一套編程工具。這些工具包含相對独立自足的程序,如編譯器調試器直譯器鏈接器文本編輯器,可以結合共同完成一個任務,很像一個人可以使用多個手握工具來固定一個物理對象。

这套工具也有可能是一個集成開發環境(IDE),它結合了許多這種工具或它们的全部功能。無論是通過調用程序員等有關人士的工具,或通過以一種新的方式重新實現它們的功能,IDE可以做到這一點。幾乎所有的編程語言为编写提供了使用單獨的工具,而不是一個IDE,因為有些程序員由于各種原因不喜歡使用IDE,或是因为IDE通常需要更長的時間才能發展形成一個可接受的標準,而不是一个個人工具。事實上,新的編程語言最初通常不會提供他們​​的IDE 。

產業及組織

軟體產業是由許多軟體公司及程式設計者所組成的產業,其性質較類似服務業。由於其產業特性,毛利率較其他產業要高[5]。軟體產業的獲利相當高,像微軟的創始人比尔·盖茨就因為銷售Microsoft WindowsMicrosoft Office而數次成為美國首富[6]。不過隨著時代的變化,軟體產業的分工及專業化也越來越細。例如电子游戏产业辦公室軟體都屬於軟體產業,而兩者就有不少的差異。

有許多非營利的軟體組織,例如自由软件基金会GNU計劃Mozilla基金會。像全球資訊網協會(W3C)及網際網路工程任務組(IETF)等組織發展許多軟體標準,因此不同的軟體可以藉由這些標準互相溝通,這種標準包括例如XMLHTMLHTTPFTP等。

其他著名的軟體公司有GoogleNovellSAPSymantecAdobe SystemsCorel,不過其中也有許多小公司有一些創新的產品。

参考文献

  1. ^ Compiler construction. [2014-05-22]. (原始内容于2013-11-02). 
  2. ^ . Content.edu.tw. [2014-05-23]. (原始内容存档于2014-05-23). 
  3. ^ 吴汉东等. 知识产权基本问题研究(分论,第二版). 北京: 中国人民大学出版社. 2009年3月: 226. ISBN 9787300102771 (中文(简体)). 
  4. ^ DRM Associates. New Product Development Glossary. 2002 [2006-10-29]. (原始内容于2018-07-13). 
  5. ^ . Money.udn.com. [2014-05-24]. (原始内容存档于2014-05-25). 
  6. ^ . Ccin.com.cn. [2014-05-24]. (原始内容存档于2014-05-25). 

外部链接

参见

软件, 关于軟體動物的特徵, 請見, 軟體動物, 軟體, 英語, software, 是一系列按照特定顺序组织的電腦数据和指令, 是電腦中的非有形部分, 電腦中的有形部分稱為硬體, 由電腦的外殼及各零件及電路所組成, 電腦軟體需有硬體才能運作, 反之亦然, 軟體和硬體都無法在不互相配合的情形下進行實際的運作, software, 的各地常用譯名中国大陸臺灣軟體香港軟件openoffice, writer, 一般来說, 计算机划分为程式語言, 系统, 应用和介于这两者之间的中介軟體, 其中系统为计算机使用提供最基本的. 关于軟體動物的特徵 請見 軟體動物 軟體 英語 software 是一系列按照特定顺序组织的電腦数据和指令 是電腦中的非有形部分 電腦中的有形部分稱為硬體 由電腦的外殼及各零件及電路所組成 電腦軟體需有硬體才能運作 反之亦然 軟體和硬體都無法在不互相配合的情形下進行實際的運作 software 的各地常用譯名中国大陸软件臺灣軟體香港軟件OpenOffice org Writer 一般来說 计算机软件划分为程式語言 系统软件 应用软件和介于这两者之间的中介軟體 其中系统软件为计算机使用提供最基本的功能 但是并不针对某一特定应用领域 而应用软件则恰好相反 不同的应用软件根据用户和所服务的领域提供不同的功能 软件包括所有在電腦執行的程式 和其架構無關 例如執行檔 函式庫及腳本語言都屬於软件 軟體不分架構 有其共通的特性 在執行後可以讓硬體執行依設計時要求的機能 軟體儲存在記憶體中 軟體不是可以碰觸到的實體 可以碰觸到的都只是儲存軟體的零件 記憶體 或是媒介 光碟或磁片等 软件并不一定只包括可以在计算机上运行的電腦程式 有些定義中 与電腦程式相关的文档 一般也被认为是软件的一部分 简单的说软件就是程式加文档的集合体 软件被应用于世界的各个领域 对人们的生活和工作都产生了深远的影响 目录 1 編程語言 2 軟體分類 2 1 系统软件 2 2 应用软件 2 3 惡意軟件 3 軟體相關主題 3 1 軟體架構 3 2 軟體執行 3 3 質量及可靠度 3 4 使用許可 3 5 專利 4 软件开发 5 編程工具 6 產業及組織 7 参考文献 8 外部链接 9 参见編程語言 编辑参见 编程语言 以最低階的角度來看 執行檔中包括了針對特定微處理器 一般會是CPU 的機械碼 機械碼包括了一連串二進位的數值 使處理器從目前的狀態變換到下一個狀態 例如指令可能會修改電腦內一特定位置中的數值 其效果是使用者無法直接觀測到的 指令也可能讓螢幕上顯示特定資料 這種狀態變換是使用者可以看到的 處理器會依照順序處理收到的指令 不過處理器的處理也可能受到中斷 或是因為流程控制指令而改變其要處理的指令 機械碼是許多二進位的數值 不方便工程師閱讀及開發程式 因此有組合語言 將機械碼轉換為人可以看懂的助憶碼 不過現在多半的軟體是用高階語言撰寫 比較類似自然語言 對人類而言比機械碼或組合語言要簡單 方便人類使用 1 高階語言一般會用直譯或編譯的方式 將軟體的原始碼轉換為機械碼 原始碼是指以程式語言所撰寫的一系列人類可閱讀的電腦指令 以實作出軟體的行為和功能 軟體分類 编辑 一個說明電腦中作業系統及應用軟體層次的示意圖 圖中的箭頭表示資訊流動方向 軟體的分類方式有很多種 可以依軟體的目的分為以下幾種 系统软件 编辑 主条目 操作系统 系统软件负责管理计算机系统中各种独立的硬件 使得它们可以协调工作 提供基本的功能 並為正在運行的應用軟件提供平台 2 系统软件使得计算机使用者和其他软件将计算机当作一个整体而不需要顾及到底层每个硬件是如何工作的 而各個硬件工作的細節則由驅動程式處理 一般来说 系统软件包括操作系统 例如BSD DOS Linux macOS iOS OS 2 QNX Unix Windows等 和一系列基本的工具 比如编译器 数据库管理 存储器格式化 文件系统管理 作業系統管理 用户身分验证 驱动管理 网络连接等方面的工具 应用软件 编辑 主条目 应用软件 应用软件是为了某种特定的用途而被开发的软件 它可以是一个特定的程式 比如一个图像浏览器 也可以是一组功能联系紧密 可以互相协作的程式的集合 比如微软的Office软件 也可以是一个由众多独立程式组成的庞大的软件系统 比如数据库管理系统 较常见的有 文書處理軟體如Microsoft Office GNOME Office KOffice LibreOffice Google Docs WPS Office 關聯式資料庫如Oracle Database数据库 SQL Server数据库 電腦輔助設計如CATIA AutoCAD FreeCAD 電腦程式設計如C C 組合語言 BASIC Swift JavaScript Java P2P軟體如BitTorrent µTorrent Foxy 比特精靈 Vuze Free Download Manager 影像處理軟體如Photoshop CorelDRAW Corel painter GIMP MAYA Softimage 3ds Max Blender xsi lightwave Cinema 4D Houdini Krita 動態圖形和視覺特效如After Effects shake 網頁瀏覽軟體如Internet Explorer Edge Firefox Chrome Safari Opera Konqueror 網路通訊軟體如Line ICQ Windows Live Messenger UUcall Skype Yahoo Messenger QQ AOL Instant Messenger 媒體播放器如MPC HC MPlayer RealPlayer GOM VLC WMP 暴风影音 风雷影音 Winamp Foobar2000 下载管理软件如Free Download Manager IDM 電子郵件如Outlook com Windows Live Mail Outlook Express Foxmail ThunderBird Dreammail KMail 資訊安全軟體如ESET 360安全衛士 德國小紅傘 卡巴斯基 PC cillin 諾頓防毒 BitDefender 瑞星杀毒 金山毒霸 虛擬機器如VMware VirtualBox Microsoft Virtual PC Bochs 輸入法軟件如新酷音輸入法 谷歌拼音输入法 實時控制系統 教育軟體惡意軟件 编辑 参见 恶意软件 恶意软件是發展到危害和破壞計算機的計算機軟件 因此 惡意軟件是不受欢迎的 惡意軟件與計算機相關的犯罪相關聯 儘管一些惡意程序可能被設計為用于惡作劇 軟體相關主題 编辑軟體架構 编辑 参见 软件架构 用戶常會看到一些程式設計者不會注意的事物 使用現代通用型電腦 相對於嵌入式系統 類比電腦或超級電腦 的用戶常會用以下三層的軟體架構來進行不同的任務 系統平台 應用程式及用戶軟體 系統平台 系統平台包括韌體 驅動程式 作業系統 可能也包括圖形使用者介面 其目的是讓用戶可以和電腦和其週邊互動 系統平台常會隨著電腦一起提供 一般而言在個人電腦上 可以更換其系統平台 應用軟體 應用軟體也就是大部分用戶認為的軟體 常見的例子包括辦公室套件及遊戲等 應用軟體一般會和硬體分開來販售 偶爾會和硬體一起販售 應用軟體多半是獨立於系統平台的軟體 只是在設計時仍會針對某些特定的系統平台開發 有些人則將像編輯器 資料庫等 系統軟體 也視為是應用軟體 用戶撰寫的軟體 終端用戶開發 英语 End user development 目的是讓軟體符合用戶等特定的需求 一般包括試算表及文字處理器的範本或巨集 甚至連郵件的過濾器也可以視為是一種用戶撰寫的軟體 依照用戶撰寫的軟體整合到預設應用軟體的程度不同 其他用戶可能不會知道哪些是應用軟體原有的機能 哪些是用戶擴充的機能 軟體執行 编辑 軟體在載入到電腦的數據存貯器 例如硬碟或記憶體 後 電腦就可以執行該軟體 執行 指的是將指令集由軟體移到電腦硬體中 硬體會處理指令集對應的機器碼 每一個指令都會讓電腦執行特定的動作 包括搬移資料 執行運算或是改變控制流程 資料搬移一般會由記憶體的一個位置移到另一個位置 有時資料搬移會用到中央處理器中允許較快速資料處理的暫存器 大量的資料搬移會用去不少的系統資源 因此有時會用 指標 來處理資料 執行運算的範圍很廣 簡單的可以包括將某位置的資料加一 複雜的可能包括許多資料及對應的處理 軟體的執行多半是一個指令接一個指令的循序進行 但有時會需要改變軟體中指令執行的順序 例如有可以使某一段程式執行數次的迴圈 或是依特定條件執行兩段程式中的一段的分支指令 甚至是可以執行子程式 執行完成後再回到原來程式 而有些語言也支援無條件的跳躍指令 軟體可以以許多不同的方式運作 包括執行檔 原始碼 腳本及電腦組態 英语 computer configuration 質量及可靠度 编辑 主条目 软件质量和软件测试 软件的品質有一定的重要性 尤其在像Microsoft Office Microsoft Windows 及Linux等商用軟體或系統軟體更是如此 若軟體無法正確執行 可能會刪除用戶工作的成果 使電腦當機或是出現其他無預期的情形 這類情形稱為程式錯誤 俗稱bug 軟體也會受到软件退化 英语 software aging 的影響 也就是因為許多未發現的程式錯誤造成的性能退化 藉由軟體測試可以找出並消除許多的程式錯誤 不過軟體測試很少可以完全消除程式錯誤 很多大型的軟體公司 例如微軟 Novell及昇陽電腦等 會有專門的軟體測試部門 其主要工作就是測試軟體 軟體可以用單元測試 回歸測試及其他方式進行測試 測試可能用人工進行 若是大型的程式 更常見的是用電腦自動測試 像NASA就針對其作業系統及其通訊程序有特別嚴謹的測試流程 使用許可 编辑 不同的软件一般都有对应的软件授權 软件的使用者必须在同意所使用软件的许可证的情况下才能够合法的使用软件 从另一方面来讲 特定软件的许可条款也不能够与法律相抵触 依據許可方式的不同 大致可將軟體區分為幾類 專有軟體 此類授權通常不允許使用者隨意的複製 研究 修改或散佈該軟體 違反此類授權通常會有嚴重的法律責任 傳統的商業軟體公司會採用此類授權 例如微軟的Windows和辦公軟體 專屬軟體的源碼通常被公司視為私有財產而予以嚴密的保護 自由軟體 此類授權正好與專屬軟體相反 賦予使用者複製 研究 修改和散佈該軟體的權利 並提供源碼供使用者自由使用 僅給予些許的其它限制 以Linux Firefox和OpenOffice可做為此類軟體的代表 共享軟體 通常可免費的取得並使用其試用版 但在功能或使用期間上受到限制 開發者會鼓勵使用者付費以取得功能完整的商業版本 免費軟體 可免費的取得和散佈 但並不提供源碼 也無法修改 公共軟體 原作者已放棄權利 著作權過期 或作者已不可考的軟體 使用上無任何限制 專利 编辑 主条目 軟體專利 有些國家可以申請軟體專利 有些國家不行 而是用著作權的觀點保護軟體 3 不過在軟體產業中 軟體專利是個爭議性高的議題 各方人士有不同的立場 軟體專利爭議 英语 Software patent debate 的主要爭議點是在軟體專利中 受保護不得複製的部分是其演算法還是其用到的技術 软件开发 编辑主条目 软件开发和軟體開發過程 软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程 软件开发是一项包括需求捕捉 需求分析 设计 实现和测试的系统工程 其中可能包括研究 新的开发工作 修改 复用 重新设计 再工程 维护 或者任何最终获得软件产品的其他活动 4 軟體開發過程是指軟體從起始到完成過程中如何進行計劃 控制和監控的模型 有以下不同的幾種 瀑布模型 依需求分析 設計 實現 測試 確認 集成 和維護這樣的步驟依序進行 迭代式开发 將開發工作被組織為一系列的短小的 固定長度 如3周 的小項目 被稱為一系列的疊代 在每一次疊代中進行需求分析 設計 實現與測試 敏捷软件开发 應對快速變化需求的軟體開發方式 強調設計師團隊與業務專家之間的協作 面對面的溝通 頻繁交付軟體版本 適應變化的代碼編寫等特點 極限編程 敏捷软件开发的一種 引入基本價值 原則 方法等概念來達到降低變更成本的目的 其主要目的是快速應用程式開發 快速應用程式開發 以最小幅度的規劃並迅速地將原形完成的軟體發展方法論 其軟體開發的規劃是和撰寫軟體本身交錯同時進行 螺旋模型 兼顧了快速原型的迭代特徵以及瀑布模型的系統化與嚴格監控 並且加入了其他模型不具備的風險分析 英语 risk analysis 使軟體在無法排除重大風險時有機會停止 以減小損失 編程工具 编辑主条目 软件开发工具 軟體開發工具指的是軟件開發人員用來創建 調試 維護或以其他方式支持的軟件程序或應用程序的形式 軟件由一种或多种編程語言所写成 现在存在有很多种編程語言 並且每种都具有至少一种编写的方式 其中包括它自己的一套編程工具 這些工具包含相對独立自足的程序 如編譯器 調試器 直譯器 鏈接器和文本編輯器 可以結合共同完成一個任務 很像一個人可以使用多個手握工具來固定一個物理對象 这套工具也有可能是一個集成開發環境 IDE 它結合了許多這種工具或它们的全部功能 無論是通過調用程序員等有關人士的工具 或通過以一種新的方式重新實現它們的功能 IDE可以做到這一點 幾乎所有的編程語言为编写提供了使用單獨的工具 而不是一個IDE 因為有些程序員由于各種原因不喜歡使用IDE 或是因为IDE通常需要更長的時間才能發展形成一個可接受的標準 而不是一个個人工具 事實上 新的編程語言最初通常不會提供他們 的IDE 產業及組織 编辑軟體產業是由許多軟體公司及程式設計者所組成的產業 其性質較類似服務業 由於其產業特性 毛利率較其他產業要高 5 軟體產業的獲利相當高 像微軟的創始人比尔 盖茨就因為銷售Microsoft Windows及Microsoft Office而數次成為美國首富 6 不過隨著時代的變化 軟體產業的分工及專業化也越來越細 例如电子游戏产业及辦公室軟體都屬於軟體產業 而兩者就有不少的差異 有許多非營利的軟體組織 例如自由软件基金会 GNU計劃及Mozilla基金會 像全球資訊網協會 W3C 及網際網路工程任務組 IETF 等組織發展許多軟體標準 因此不同的軟體可以藉由這些標準互相溝通 這種標準包括例如XML HTML HTTP及FTP等 其他著名的軟體公司有Google Novell SAP Symantec Adobe Systems Corel 不過其中也有許多小公司有一些創新的產品 参考文献 编辑 Compiler construction 2014 05 22 原始内容存档于2013 11 02 電腦軟體的介紹 Content edu tw 2014 05 23 原始内容存档于2014 05 23 吴汉东等 知识产权基本问题研究 分论 第二版 北京 中国人民大学出版社 2009年3月 226 ISBN 9787300102771 中文 简体 使用 accessdate 需要含有 url 帮助 DRM Associates New Product Development Glossary 2002 2006 10 29 原始内容存档于2018 07 13 10檔 上半年高毛利率股排行榜 Money udn com 2014 05 24 原始内容存档于2014 05 25 盖茨20度蝉联福布斯美国首富 8名华裔富豪上榜 Ccin com cn 2014 05 24 原始内容存档于2014 05 25 外部链接 编辑 维基词典中的词条 软件 参见 编辑 软件主题 自由软件主题 计算机程序设计主题 软件测试主题 信息技术主题 计算机科学主题 工程主题 计算 计算机 计算机科学 電腦程式設計 程序设计语言 源代碼 软件工程 軟體開發 算法 資訊業 数据结构 软件开发过程 软件开发工具 軟體度量 数字图像处理 计算机图形学 办公自动化 计算机网络 数据库 电子表格 密码学 Wiki 網誌 操作系统 软件许可证 开放源代码 自由软件 專有軟體 鸦片軟體 免費軟體 绿色软件 计算机软件列表 軟體生命周期 軟體版本週期 取自 https zh wikipedia org w index php title 软件 amp oldid 74532207, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。