天天看點

軟體工程的七條基本原理

自從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提出應把承認不斷改進軟體工程實踐的必要性作為軟體工程的第七條原理。根據這條原理,不僅要積極采納新的軟體開發技術,還要注意不斷總結經驗,收集進度和消耗等資料,進行出錯類型和問題報告統計。這些資料既可以用來評估新的軟體技術的效果,也可以用來指明必須着重注意的問題和應該優先進行研究的工具和技術。

繼續閱讀