軟件工程是指應用計算機科學、數學及管理科學等原理,以工程化的原則和方法來解決軟件問題的工程,目的是提高軟件生產率、提高軟件質量、降低軟件成本。
美國軟件工程軟件B.W.Boehm於1983年提出了軟件工程的七條基本原理。它是確保軟件產品質量和開發效率的原理的最小集合。
一、用分階段的生命周期計划嚴格管理
統計發現,50%以上的失敗項目是由於計划不周造成的。
這條基本原理意味着,應該把軟件生命周期划分成若干個階段,並相應地制定出切實可行的計划,然后嚴格按照計划對軟件的開發與維護工作進行管理。軟件生命周期中應該制定並嚴格執行六類計划:項目概要計划,里程碑計划,項目控制計划,產品控制計划,驗證計划,運行維護計划。
二、堅持進行階段評審
統計發現,大部分錯誤是在編碼之前造成的:設計錯誤占軟件錯誤的63%,編碼僅占37%。並且,錯誤發現與改正得越晚,所需付出的代價也越高。所以,在每個階段都進行嚴格的評審,以便盡早發現錯誤。
三、實現嚴格的產品控制
在軟件開發過程中不應隨意改變需求,但是,在軟件開發過程中改變需求又是難免的。在改變需求時,為了保持軟件各個配置成分的一致性,必須實行嚴格的產品控制 —— 其中主要是實行基准配置管理(變動控制):一切有關修改軟件的請求,都必須按照嚴格的規程進行評審,獲得批准以后才能實施修改。
四、采用現代程序設計技術
實踐表明,“方法大於力氣” —— 采用先進的技術既可提高軟件開發的效率,又可提高軟件維護的效率,降低維護成本。
五、結果應能清楚地審查
軟件產品不同於一般的物理產品,它是看不見摸不着的邏輯產品。為了提高軟件開發過程的可見性,更好地進行管理,應該根據軟件開發項目的總目標及完成期限,規定開發組織的責任和產品標准,從而使得所得到的結果能夠清楚地審查。
六、開發小組的人員應少而精
開發小組人員的素質和數量是影響軟件產品質量和開發效率的重要因素。高素質的人員的開發效率比低素質的人員的開發效率可能高幾倍至幾十倍,並且所開發的軟件中的錯誤要少得多。
此外,隨着開發小組人員數目的增加,因為交流情況討論問題而造成的通信開銷也急劇增加。
七、承認不斷改進軟件工程實踐的必要性
遵循上述六條基本原理,就能夠按照當代軟件工程基本原理實現軟件的工程化生產,卻並不能保證軟件開發與維護的過程能趕上時代前進的步伐。因此,不僅要積極主動地采納新的軟件技術,而且要注意不斷總結經驗,例如,收集進度和資源耗費數據,收集出錯類型和問題報告數據等等。這些數據不僅可以用來評價新的軟件技術的效果,而且可以用來指明必須着重開發的軟件工具和應該優先研究的技術。