Can you summarize the following document?
        
  以最低階的角度來看,執行檔中包括了針對特定微處理器(一般會是CPU)的機械碼,機械碼包括了一連串二進位制的數值,使處理器從目前的狀態變換到下一個狀態。例如指令可能會修改電腦內一特定位置中的數值,其效果是使用者無法直接觀測到的,指令也可能讓螢幕上顯示特定資料,這種狀態變換是使用者可以看到的。處理器會依照順序處理收到的指令,不過處理器的處理也可能受到中斷,或是因為流程控制指令而改變其要處理的指令。  機械碼是許多二進位制的數值,不方便工程師閱讀及開發程式,因此有組合語言,將機械碼轉換為人可以看懂的助憶碼。不過現在多半的軟體是用高階語言撰寫,比較類似自然語言,對人類而言比機械碼或組合語言要簡單,方便人類使用。高階語言一般會用直譯或編譯的方式,將軟體的原始碼轉換為機械碼。  原始碼是指以程式語言所撰寫的一系列人類可閱讀的電腦指令,以實作出軟體的行為和功能。

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

  系統軟體負責管理計算機系統中各種獨立的硬體,使得它們可以協調工作,提供基本的功能,併為正在執行的應用軟體提供平臺。系統軟體使得計算機使用者和其他軟體將計算機當作一個整體而不需要顧及到底層每個硬體是如何工作的。而各個硬體工作的細節則由驅動程式處理。  一般來說,系統軟體包括作業系統(例如BSD、DOS、Linux、macOS、iOS、OS/2、QNX、Unix、Windows等)和一系列基本的工具(比如編譯器,資料庫管理,儲存器格式化,檔案系統管理,作業系統管理,使用者身份驗證,驅動管理,網路連線等方面的工具)。

  應用軟體是為了某種特定的用途而被開發的軟體。它可以是一個特定的程式,比如一個影象瀏覽器。也可以是一組功能聯絡緊密,可以互相協作的程式的集合,比如微軟的Office軟體。也可以是一個由眾多獨立程式組成的龐大的軟體系統,比如資料庫管理系統。  較常見的有

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

  

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

  軟體在載入到電腦的資料存貯器(例如硬碟或記憶體)後,電腦就可以執行該軟體。「執行」指的是將指令集由軟體移到電腦硬體中,硬體會處理指令集對應的機器碼。每一個指令都會讓電腦執行特定的動作,包括搬移資料、執行運算或是改變控制流程。  資料搬移一般會由記憶體的一個位置移到另一個位置,有時資料搬移會用到中央處理器中允許較快速資料處理的暫存器。大量的資料搬移會用去不少的系統資源,因此有時會用「指標」來處理資料。執行運算的範圍很廣,簡單的可以包括將某位置的資料加一,複雜的可能包括許多資料及對應的處理。  軟體的執行多半是一個指令接一個指令的循序進行,但有時會需要改變軟體中指令執行的順序,例如有可以使某一段程式執行數次的迴圈,或是依特定條件執行兩段程式中的一段的分支指令,甚至是可以執行子程式,執行完成後再回到原來程式,而有些語言也支援無條件的跳躍指令。  軟體可以以許多不同的方式運作,包括執行檔、原始碼、指令碼及電腦組態。

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

  不同的軟體一般都有對應的軟體授權,軟體的使用者必須在同意所使用軟體的許可證的情況下才能夠合法的使用軟體。從另一方面來講,特定軟體的許可條款也不能夠與法律相牴觸。  依據許可方式的不同,大致可將軟體區分為幾類:

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

  軟體開發是根據使用者要求建造出軟體系統或者系統中的軟體部分的過程。軟體開發是一項包括需求捕捉,需求分析,設計,實現和測試的系統工程,其中可能包括研究、新的開發工作、修改、複用、重新設計(再工程)、維護,或者任何最終獲得軟體產品的其他活動。  軟體開發過程是指軟體從起始到完成過程中如何進行計劃、控制和監控的模型。有以下不同的幾種:

  軟體開發工具是指軟體開發人員用來建立,除錯,維護,或以其他方式支援的軟體程式或應用程式的形式。軟體由一種或多種程式語言所寫成。現在存在有很多種程式語言,並且每種都具有至少一種編寫的方式,其中包括它自己的一套程式設計工具。這些工具包含相對獨立自足的程式,如編譯器,偵錯程式,直譯器,連結器和文字編輯器,可以結合共同完成一個任務,很像一個人可以使用多個手握工具來固定一個物理物件。這套工具也有可能是一個整合開發環境(IDE ),它結合了許多這種工具或它們的全部功能。無論是通過呼叫程式設計師等有關人士的工具,或通過以一種新的方式重新實現它們的功能,IDE可以做到這一點。幾乎所有的程式語言為編寫提供了使用單獨的工具,而不是一個IDE,因為有些程式設計師由於各種原因不喜歡使用IDE,或是因為IDE通常需要更長的時間才能發展形成一個可接受的標準,而不是一個個人工具。事實上,最初,新的程式語言通常不會有提供他們 的IDE 。

  軟體產業是由許多軟體公司及程式設計者所組成的產業,其性質較類似服務業。由於其產業特性,毛利率較其他產業要高。軟體產業的獲利相當高,像微軟的創始人比爾·蓋茨就因為銷售Microsoft Windows及Microsoft Office而數次成為美國首富。不過隨著時代的變化,軟體產業的分工及專業化也越來越細。例如電子遊戲產業及辦公室軟體都屬於軟體產業,而兩者就有不少的差異。  有許多非營利的軟體組織,例如自由軟體基金會、GNU計劃及Mozilla基金會。像全球資訊網協會(W3C)及因特網工程任務組(IETF)等組織發展許多軟體標準,因此不同的軟體可以藉由這些標準互相溝通,這種標準包括例如XML、HTML、HTTP及FTP等。  其他著名的軟體公司有Google、Novell、SAP、Symantec、Adobe Systems、Corel,不過其中也有許多小公司有一些創新的產品。
軟體(英語:software)是一系列按照特定順序組織的電腦資料和指令,是電腦中的非有形部分。電腦中的有形部分稱為硬體,由電腦的外殼及各零件及電路所組成。電腦軟體需有硬體才能運作,反之亦然,軟體和硬體都無法在不互相配合的情形下進行實際的運作。