玻姆認(rèn)為,這七條原理是確保軟件產(chǎn)品質(zhì)量和開發(fā)效率的原理的最小集合。它們是相互獨(dú)立的,是缺一不可的最小集合;同時(shí),它們又是相當(dāng)完備的。人們當(dāng)然不能用數(shù)學(xué)方法嚴(yán)格證明它們是一個(gè)完備的集合,但是可以證明,在此之前已經(jīng)提出的100多條軟件工程準(zhǔn)則都可以有這七條原理的任意組合蘊(yùn)含或派生。
下面簡(jiǎn)要介紹軟件工程的七條原理:用分階段的生命周期計(jì)劃嚴(yán)格管理
這一條是吸取前人的教訓(xùn)而提出來的。統(tǒng)計(jì)表明,50%以上的失敗項(xiàng)目是由于計(jì)劃不周而造成的。在軟件開發(fā)與維護(hù)的漫長(zhǎng)生命周期中,需要完成許多性質(zhì)各異的工作。這條原理意味著,應(yīng)該把軟件生命周期分成若干階段,并相應(yīng)制定出切實(shí)可行的計(jì)劃,然后嚴(yán)格按照計(jì)劃對(duì)軟件的開發(fā)和維護(hù)進(jìn)行管理。
玻姆認(rèn)為,在整個(gè)軟件生命周期中應(yīng)指定并嚴(yán)格執(zhí)行6類計(jì)劃:
項(xiàng)目概要計(jì)劃、
里程碑計(jì)劃、
項(xiàng)目控制計(jì)劃、
產(chǎn)品控制計(jì)劃、
驗(yàn)證計(jì)劃、
運(yùn)行維護(hù)計(jì)劃。
堅(jiān)持進(jìn)行階段評(píng)審
統(tǒng)計(jì)結(jié)果顯示:大部分錯(cuò)誤是在編碼之前造成的,大約占63%錯(cuò)誤發(fā)現(xiàn)的越晚,改正它要付出的代價(jià)就越大,要差2到3個(gè)數(shù)量級(jí)。 因此,軟件的質(zhì)量保證工作不能等到編碼結(jié)束之后再進(jìn)行,應(yīng)堅(jiān)持進(jìn)行嚴(yán)格的階段評(píng)審,以便盡早發(fā)現(xiàn)錯(cuò)誤。
實(shí)行嚴(yán)格的產(chǎn)品控制
開發(fā)人員最痛恨的事情之一就是改動(dòng)需求。但是實(shí)踐告訴我們,需求的改動(dòng)往往是不可避免的。這就要求我們要采用科學(xué)的產(chǎn)品控制技術(shù)來順應(yīng)這種要求。也就是要采用變動(dòng)控制,又叫基準(zhǔn)配置管理。當(dāng)需求變動(dòng)時(shí),其它各個(gè)階段的文檔或代碼隨之相應(yīng)變動(dòng),以保證軟件的一致性。
采納現(xiàn)代程序設(shè)計(jì)技術(shù)
從六、七十年代的結(jié)構(gòu)化軟件開發(fā)技術(shù),到最近的面向?qū)ο蠹夹g(shù),從第一、第二代語言,到第四代語言,人們已經(jīng)充分認(rèn)識(shí)到:方法大于氣力。采用先進(jìn)的技術(shù)既可以提高軟件開發(fā)的效率,又可以減少軟件維護(hù)的成本。
結(jié)果應(yīng)能清楚地審查
軟件是一種看不見、摸不著的邏輯產(chǎn)品。軟件開發(fā)小組的工作進(jìn)展情況可見性差,難于評(píng)價(jià)和管理。為更好地進(jìn)行管理,應(yīng)根據(jù)軟件開發(fā)的總目標(biāo)及完成期限,盡量明確地規(guī)定開發(fā)小組的責(zé)任和產(chǎn)品標(biāo)準(zhǔn),從而使所得到的標(biāo)準(zhǔn)能清楚地審查。
開發(fā)小組的人員應(yīng)少而精
開發(fā)人員的素質(zhì)和數(shù)量是影響軟件質(zhì)量和開發(fā)效率的重要因素,應(yīng)該少而精?!∵@一條基于兩點(diǎn)原因:高素質(zhì)開發(fā)人員的效率比低素質(zhì)開發(fā)人員的效率要高幾倍到幾十倍,開發(fā)工作中犯的錯(cuò)誤也要少的多;當(dāng)開發(fā)小組為N人時(shí),可能的通信信道為N(N-1)/2, 可見隨著人數(shù)N的增大,通訊開銷將急劇增大。
承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性
遵從上述六條基本原理,就能夠較好地實(shí)現(xiàn)軟件的工程化生產(chǎn)。但是,它們只是對(duì)現(xiàn)有的經(jīng)驗(yàn)的總結(jié)和歸納,并不能保證趕上技術(shù)不斷前進(jìn)發(fā)展的步伐。因此,玻姆提出應(yīng)把承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性作為軟件工程的第七條原理。根據(jù)這條原理,不僅要積極采納新的軟件開發(fā)技術(shù),還要注意不斷總結(jié)經(jīng)驗(yàn),收集進(jìn)度和消耗等數(shù)據(jù),進(jìn)行出錯(cuò)類型和問題報(bào)告統(tǒng)計(jì)。這些數(shù)據(jù)既可以用來評(píng)估新的軟件技術(shù)的效果,也可以用來指明必須著重注意的問題和應(yīng)該優(yōu)先進(jìn)行研究的工具和技術(shù)。