軟體工程的七條基本原理(轉)
自從1968年提出“軟體工程”這一術語以來,研究軟體工程的專家學者們陸續提出了100多條關於軟體工程的準則或信條。 美國著名的軟體工程專家 Boehm 綜合這些專家的意見,並總結了TRW公司多年的開發軟體的經驗,於1983年提出了軟體工程的七條基本原理。
Boehm 認為,這七條原理是確保軟體產品質量和開發效率的原理的最小集合。它們是相互獨立的,是缺一不可的最小集合;同時,它們又是相當完備的。
人們當然不能用數學方法嚴格證明它們是一個完備的集合,但是可以證明,在此之前已經提出的100多條軟體工程準則都可以有這七條原理的任意組合蘊含或派生。
下面簡要介紹軟體工程的七條原理:
1 用分階段的生命週期計劃嚴格管理
這一條是吸取前人的教訓而提出來的。統計表明,50%以上的失敗專案是由於計劃不周而造成的。在軟體開發與維護的漫長生命週期中,需要完成許多性質各異的工作。這條原理意味著,應該把軟體生命週期分成若干階段,並相應制定出切實可行的計劃,然後嚴格按照計劃對軟體的開發和維護進行管理。 Boehm 認為,在整個軟體生命週期中應指定並嚴格執行6類計劃:專案概要計劃、里程碑計劃、專案控制計劃、產品控制計劃、驗證計劃、執行維護計劃。
2 堅持進行階段評審
統計結果顯示: 大部分錯誤是在編碼之前造成的,大約佔63%; <2> 錯誤發現的越晚,改正它要付出的代價就越大,要差2到3個數量級。 因此,軟體的質量保證工作不能等到編碼結束之後再進行,應堅持進行嚴格的階段評審,以便儘早發現錯誤。
3 實行嚴格的產品控制
開發人員最痛恨的事情之一就是改動需求。但是實踐告訴我們,需求的改動往往是不可避免的。這就要求我們要採用科學的產品控制技術來順應這種要求。也就是要採用變動控制,又叫基準配置管理。當需求變動時,其它各個階段的文件或程式碼隨之相應變動,以保證軟體的一致性。
4 採納現代程式設計技術
從六、七時年代的結構化軟體開發技術,到最近的物件導向技術,從第一、第二代語言,到第四代語言,人們已經充分認識到:方法大似氣力。採用先進的技術即可以提高軟體開發的效率,又可以減少軟體維護的成本。
5 結果應能清楚地審查
軟體是一種看不見、摸不著的邏輯產品。軟體開發小組的工作進展情況可見性差,難於評價和管理。為更好地進行管理,應根據軟體開發的總目標及完成期限,儘量明確地規定開發小組的責任和產品標準,從而使所得到的標準能清楚地審查。
6 開發小組的人員應少而精
開發人員的素質和數量是影響軟體質量和開發效率的重要因素,應該少而精。這一條基於兩點原因:高素質開發人員的效率比低素質開發人員的效率要高几倍到幾十倍,開發工作中犯的錯誤也要少的多; 當開發小組為N人時,可能的通訊通道為N(N-1)/2, 可見隨著人數N的增大,通訊開銷將急劇增大。
7 承認不斷改進軟體工程實踐的必要性
遵從上述六條基本原理,就能夠較好地實現軟體的工程化生產。但是,它們只是對現有的經驗的總結和歸納,並不能保證趕上技術不斷前進發展的步伐。因此,Boehm提出應把承認不斷改進軟體工程實踐的必要性作為軟體工程的第七條原理。根據這條原理,不僅要積極採納新的軟體開發技術,還要注意不斷總結經驗,收集進度和消耗等資料,進行出錯型別和問題報告統計。這些資料既可以用來評估新的軟體技術的效果,也可以用來指明必須著重注意的問題和應該優先進行研究的工具和技術。
[@more@]
Boehm 認為,這七條原理是確保軟體產品質量和開發效率的原理的最小集合。它們是相互獨立的,是缺一不可的最小集合;同時,它們又是相當完備的。
人們當然不能用數學方法嚴格證明它們是一個完備的集合,但是可以證明,在此之前已經提出的100多條軟體工程準則都可以有這七條原理的任意組合蘊含或派生。
下面簡要介紹軟體工程的七條原理:
1 用分階段的生命週期計劃嚴格管理
這一條是吸取前人的教訓而提出來的。統計表明,50%以上的失敗專案是由於計劃不周而造成的。在軟體開發與維護的漫長生命週期中,需要完成許多性質各異的工作。這條原理意味著,應該把軟體生命週期分成若干階段,並相應制定出切實可行的計劃,然後嚴格按照計劃對軟體的開發和維護進行管理。 Boehm 認為,在整個軟體生命週期中應指定並嚴格執行6類計劃:專案概要計劃、里程碑計劃、專案控制計劃、產品控制計劃、驗證計劃、執行維護計劃。
2 堅持進行階段評審
統計結果顯示: 大部分錯誤是在編碼之前造成的,大約佔63%; <2> 錯誤發現的越晚,改正它要付出的代價就越大,要差2到3個數量級。 因此,軟體的質量保證工作不能等到編碼結束之後再進行,應堅持進行嚴格的階段評審,以便儘早發現錯誤。
3 實行嚴格的產品控制
開發人員最痛恨的事情之一就是改動需求。但是實踐告訴我們,需求的改動往往是不可避免的。這就要求我們要採用科學的產品控制技術來順應這種要求。也就是要採用變動控制,又叫基準配置管理。當需求變動時,其它各個階段的文件或程式碼隨之相應變動,以保證軟體的一致性。
4 採納現代程式設計技術
從六、七時年代的結構化軟體開發技術,到最近的物件導向技術,從第一、第二代語言,到第四代語言,人們已經充分認識到:方法大似氣力。採用先進的技術即可以提高軟體開發的效率,又可以減少軟體維護的成本。
5 結果應能清楚地審查
軟體是一種看不見、摸不著的邏輯產品。軟體開發小組的工作進展情況可見性差,難於評價和管理。為更好地進行管理,應根據軟體開發的總目標及完成期限,儘量明確地規定開發小組的責任和產品標準,從而使所得到的標準能清楚地審查。
6 開發小組的人員應少而精
開發人員的素質和數量是影響軟體質量和開發效率的重要因素,應該少而精。這一條基於兩點原因:高素質開發人員的效率比低素質開發人員的效率要高几倍到幾十倍,開發工作中犯的錯誤也要少的多; 當開發小組為N人時,可能的通訊通道為N(N-1)/2, 可見隨著人數N的增大,通訊開銷將急劇增大。
7 承認不斷改進軟體工程實踐的必要性
遵從上述六條基本原理,就能夠較好地實現軟體的工程化生產。但是,它們只是對現有的經驗的總結和歸納,並不能保證趕上技術不斷前進發展的步伐。因此,Boehm提出應把承認不斷改進軟體工程實踐的必要性作為軟體工程的第七條原理。根據這條原理,不僅要積極採納新的軟體開發技術,還要注意不斷總結經驗,收集進度和消耗等資料,進行出錯型別和問題報告統計。這些資料既可以用來評估新的軟體技術的效果,也可以用來指明必須著重注意的問題和應該優先進行研究的工具和技術。
[@more@]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7839396/viewspace-953503/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 軟體工程的七條基本原理 (轉)軟體工程
- 軟體開發的七條原則
- 防止軟體工程專案範圍蔓延的七個步驟(轉)軟體工程
- 軟體、軟體危機、軟體工程 (轉)軟體工程
- 學習進度條__軟體工程概論第七週學習計劃軟體工程
- 軟體工程管理(轉)軟體工程
- 軟體工程“36計”(轉)軟體工程
- 軟體工程進度報告——第七週軟體工程
- 軟體工程每週學習進度條軟體工程
- 軟體工程工具之二——PowerDesignerv12(七)軟體工程
- Martin Fowler:英國口音的軟體工程 (轉)軟體工程
- 軟體的工程化管理(二)(轉)
- 軟體工程實踐(一) (轉)軟體工程
- 中國軟體工程標準 (轉)軟體工程
- 軟體工程實踐(二) (轉)軟體工程
- 軟體工程只能是零碎工程 (轉)軟體工程
- 軟體專案管理的成功七法則(轉)專案管理
- 軟體工程專案管理的任務(轉)軟體工程專案管理
- 軟體工程能幫多大忙? (轉)軟體工程
- 專案管理與軟體工程(轉)專案管理軟體工程
- 現代軟體工程 習而學的軟體工程教育軟體工程
- 軟體工程的理解軟體工程
- 軟體工程-軟體工程層狀模型(EHM)軟體工程模型
- 軟體工程 第一章 軟體與軟體工程軟體工程
- 軟體工程 .軟體工程
- 軟體工程軟體工程
- 淨室軟體工程及發展 (轉)軟體工程
- 軟體工程文件規範--前景文件(轉)軟體工程
- 軟體工程實踐----初步接觸軟體工程的總結軟體工程
- 軟體行業的發展要尊重軟體工程的價值規律 (轉)行業軟體工程
- 軟體工程——軟體測試軟體工程
- 軟體工程——軟體計劃軟體工程
- [軟體工程]軟體中的量化問題軟體工程
- 軟體專案需求分析的20條法則(轉)
- 點評:ERP實施“軟體之外的七招”(轉)
- 軟體測試工程師的工作總結(轉)工程師
- 計算機軟體保護條例 (轉)計算機
- 軟體工程的變遷軟體工程