美國(guó)著名軟件工程專(zhuān)家勃姆(B.W.Boehm)在總結(jié)軟件工程準(zhǔn)則和信條的基礎(chǔ)上,于1983年提出軟件工程的7條基本原則,也是軟件項(xiàng)目管理應(yīng)該遵循原則。勃姆認(rèn)為,這7條原則是確保軟件產(chǎn)品質(zhì)量和開(kāi)發(fā)效率的原理的最小集合,相互獨(dú)立但結(jié)合得相當(dāng)完備。
用分階段的生命周期計(jì)劃嚴(yán)格管理。統(tǒng)計(jì)表明,不成功的軟件項(xiàng)目中約有一半左右源自計(jì)劃不周。本原則意味著,應(yīng)該把軟件生命周期劃分成若干階段,相應(yīng)地制定出切實(shí)可行的計(jì)劃,然后嚴(yán)格按照計(jì)劃對(duì)軟件的開(kāi)發(fā)與維護(hù)工作進(jìn)行管理。勃姆認(rèn)為,在軟件的整個(gè)生命周期中應(yīng)該制定并嚴(yán)格執(zhí)行6類(lèi)計(jì)劃,即項(xiàng)目概要計(jì)劃、里程碑計(jì)劃、項(xiàng)目控制計(jì)劃、產(chǎn)品控制計(jì)劃、驗(yàn)證計(jì)劃、運(yùn)行維護(hù)計(jì)劃。不同層次的管理人員必須嚴(yán)格按照計(jì)劃各盡其職地管理軟件開(kāi)發(fā)與維護(hù)工作,絕不能受顧客或上級(jí)人員的影響而擅自背離預(yù)定計(jì)劃。
堅(jiān)持進(jìn)行階段評(píng)審。軟件的質(zhì)量保證工作不能等到編碼階段結(jié)束之后再加以實(shí)施,其理由為:第一,大部分錯(cuò)誤始于編碼之前;第二,錯(cuò)誤的發(fā)現(xiàn)與修改時(shí)間越晚,需要付出的代價(jià)就越高。因此,本原則意味著,在軟件開(kāi)發(fā)的每個(gè)階段應(yīng)該進(jìn)行嚴(yán)格的評(píng)審,以便盡早發(fā)現(xiàn)軟件開(kāi)發(fā)過(guò)程中的錯(cuò)誤。
實(shí)行嚴(yán)格的產(chǎn)品控制。軟件開(kāi)發(fā)過(guò)程中不應(yīng)隨意改變需求,因?yàn)楦淖円豁?xiàng)需求往往需要付出較高的代價(jià);但是軟件開(kāi)發(fā)過(guò)程中改變需求又在所難免,基于外部環(huán)境的變化而出現(xiàn)改變用戶需求的情況是一種客觀需要,而且迅速應(yīng)對(duì)客戶的需求變更是顧客本位的內(nèi)涵之一。在這種情況下,只能依靠科學(xué)的產(chǎn)品控制技術(shù)來(lái)順應(yīng)這種要求。當(dāng)改變需求時(shí),為了保持軟件各個(gè)配置成分的一致性,必須實(shí)行嚴(yán)格的產(chǎn)品控制,其中主要是實(shí)行基準(zhǔn)配置管理。所謂基準(zhǔn)配置又稱(chēng)基線配置,它們是經(jīng)過(guò)階段評(píng)審后的軟件配置成分(各個(gè)階段產(chǎn)生的文檔或程序代碼)?;鶞?zhǔn)配置管理也稱(chēng)為變更控制:一切有關(guān)修改軟件的建議,特別是涉及到對(duì)基準(zhǔn)配置的修改建議,都必須按照嚴(yán)格的規(guī)程進(jìn)行評(píng)審,獲得批準(zhǔn)以后才能實(shí)施修改。避免開(kāi)發(fā)人員對(duì)軟件隨意進(jìn)行修改。
采用現(xiàn)代程序設(shè)計(jì)技術(shù)。從提出軟件工程的概念開(kāi)始,人們一直把主要精力用于研究各種新的程序設(shè)計(jì)技術(shù)。從60年代末提出的結(jié)構(gòu)程序設(shè)計(jì)技術(shù)到最近的面向?qū)ο蠹夹g(shù),人們不斷創(chuàng)造先進(jìn)的程序設(shè)計(jì)技術(shù)。實(shí)踐表明,采用先進(jìn)的技術(shù)既可提高軟件開(kāi)發(fā)的效率,又可提高軟件維護(hù)的效率。
結(jié)果應(yīng)能清楚地審查。與其他有形產(chǎn)品不同,軟件是看不見(jiàn)摸不著的邏輯產(chǎn)品。軟件開(kāi)發(fā)人員的工作進(jìn)展情況可見(jiàn)性差,難以準(zhǔn)確度量,從而使得軟件產(chǎn)品的開(kāi)發(fā)過(guò)程比一般產(chǎn)品的開(kāi)發(fā)過(guò)程更難以評(píng)價(jià)和管理。為了提高軟件開(kāi)發(fā)過(guò)程的可見(jiàn)性,更好地進(jìn)行管理,應(yīng)該根據(jù)軟件開(kāi)發(fā)項(xiàng)目的總目標(biāo)及完成期限,規(guī)定開(kāi)發(fā)組織的責(zé)任和產(chǎn)品標(biāo)準(zhǔn),從而使得所得到的結(jié)果能夠清楚地審查。
開(kāi)發(fā)小組的人員應(yīng)該少而精。該原則意味著,軟件開(kāi)發(fā)項(xiàng)目的組成人員的素質(zhì)應(yīng)該好,而人數(shù)則不宜過(guò)多。開(kāi)發(fā)小組人員的素質(zhì)和數(shù)量是影響軟件產(chǎn)品質(zhì)量和開(kāi)發(fā)效率的重要因素。素質(zhì)高的人員的開(kāi)發(fā)效率比素質(zhì)低的人員的開(kāi)發(fā)效率可能高幾倍至幾十倍,而且素質(zhì)高的人員所開(kāi)發(fā)的軟件中的錯(cuò)誤明顯少于素質(zhì)低的人員所開(kāi)發(fā)的軟件。此外,隨著開(kāi)發(fā)小組人員數(shù)目的增加,因?yàn)榻涣鲉?wèn)題而造成的溝通成本也急劇增加。因此,構(gòu)建和維持少而精的開(kāi)發(fā)團(tuán)隊(duì)甚至標(biāo)桿團(tuán)隊(duì)是軟件工程的一條基本原理。
承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性。遵循上述6條基本原則,就能夠按照當(dāng)代軟件工程基本原理實(shí)現(xiàn)軟件的工程化生產(chǎn),但是,僅遵循上述6條原則并不能保證軟件開(kāi)發(fā)與維護(hù)的過(guò)程能趕上時(shí)代前進(jìn)的步伐,能跟上技術(shù)的不斷進(jìn)步。因此,勃姆提出應(yīng)把承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性作為軟件工程的第七條基本原則。按照這條原理,不僅要積極主