軟體工程的七條基本原理(轉)
自從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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 軟體開發的七條原則
- 軟體工程進度報告——第七週軟體工程
- 軟體工程師必知的9條黃金定律軟體工程工程師
- 軟體工程-軟體工程層狀模型(EHM)軟體工程模型
- 如何從軟體工程師轉型到人工智慧工程師?軟體工程工程師人工智慧
- 軟體工程 第一章 軟體與軟體工程軟體工程
- 軟體工程軟體工程
- 軟體工程1軟體工程
- 軟體工程4.18軟體工程
- 軟體工程5.8軟體工程
- 軟體工程5.7軟體工程
- 軟體工程4.28軟體工程
- 軟體工程4.27軟體工程
- 軟體工程5.10軟體工程
- 軟體工程5.9軟體工程
- 軟體工程5.13軟體工程
- 軟體工程5.12軟體工程
- 軟體工程5.11軟體工程
- 軟體工程4.23軟體工程
- 軟體工程4.22軟體工程
- 軟體工程4.21軟體工程
- 軟體工程4.20軟體工程
- 軟體工程4.19軟體工程
- 軟體工程6軟體工程
- 譯:軟體工程師的軟技能(一)軟體工程工程師
- 【招聘】前端軟體工程師、高階前端軟體工程師前端軟體工程工程師
- 軟體工程的迷途和沉思軟體工程
- 程式碼中的軟體工程軟體工程
- 軟體工程估算的技巧 - shubhro軟體工程
- 軟體工程的最大難題軟體工程
- 學習高校課程-軟體工程-軟體工程(ch2)軟體工程
- 軟體工程-團隊-工程-溝通軟體工程
- 軟體工程日報軟體工程
- 軟體工程作業軟體工程
- 軟體工程學習軟體工程
- 20240516 軟體工程打卡軟體工程
- 軟體工程大作業軟體工程
- 軟體工程總結軟體工程
- 我是如何從通訊轉到Java軟體開發工程師的?Java工程師