1、軟件是一種邏輯的產品,與硬件產品有本質的區別。硬件是看得見、摸得著的物理部件或設備。在研制硬件產品時,人的創造性活動表現在把原材料轉變成有形的物理產品。而軟件產品是以程序和文檔的形式存在,通過在計算機上運行來體現他的作用。在研制軟件產品的過程中,人們的生產活動表現在要創造性地抽象出問題的求解模型,然後根據求解模型寫出程序,最後經過調試、運行程序得到求解問題的結果。整個生產、開發過程是在無形化方式下完成的,其能見度極差,這給軟件開發、生產過程的管理帶來瞭極大的困難。
2、軟件產品質量的體現方式與硬件產品不同。質量體現方式不同表現在兩個方面。硬件產品設計定型後可以批量生產,產品質量通過質量檢測體系可以得到保障。但是生產、加工過程一旦失誤。硬件產品可能就會因為質量問題而報廢。而軟件產品不能用傳統意義上的制造進行生產,就目前軟件開發技術而言,軟件生產還是“定制”的,隻能針對特定問題進行設計或實現。但是軟件愛你產品一旦實現後,其生產過程隻是復制而已,而復制生產出來的軟件質量是相同的。設計出來的軟件即使出現質量問題,產品也不會報廢,通過修改、測試,還可以將“報廢”的軟件“修復”,投入正常運行。可見軟件的質量保證機制比硬件具有更大的靈活性。
3、軟件產品的成本構成與硬件產品不同.硬件產品的成本構成中有形的物質占瞭相當大的比重。就硬件產品生存周期而言,成本構成中設計、生產環節占絕大部分,而售後服務隻占少部分。軟件生產主要靠腦力勞動。軟件產品的成本構成中人力資源占瞭相當大的比重。軟件產品的生產成本主要在開發和研制。研制成功後,產品生產就簡單瞭,通過復制就能批量生產。
4、軟件產品的失敗曲線與硬件產品不同.硬件產品存在老化和折舊問題。當一個硬件部件磨損時可以用一個新部件去替換他。硬件會因為主要部件的磨損而最終被淘汰。對於軟件而言,不存在折舊和磨損問題,如果需要的話可以永遠使用下去。但是軟件故障的排除要比硬件故障的排除復雜得多。軟件故障主要是因為軟件設計或編碼的錯誤所致,必須重新設計和編碼才能解決問題。軟件在其開發初始階段在很高的失敗率,這主要是由於需求分析不切合實際或設計錯誤等引起的。當開發過程中的錯誤被糾正後,其失敗率便下降到一定水平並保持相對穩定,直到該軟件被廢棄不用。在軟件進行大的改動時,也會導致失敗率急劇上升。
硬件產品一旦設計定型,其生產技術、加工工藝和流程管理也就確定下來,這樣便於實現硬件產品的標準化、系列化成批生產。由於硬件產品具有標準的框架和接口,不論哪個廠傢的產品,用戶買來都可以集成、組裝和替換使用。