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