- 軟件工程實(shí)用教程 (第3版)
- 郭寧 閆俊伢
- 1506字
- 2020-06-12 17:12:03
1.3 軟件工程的基本原則
為了保證在軟件項(xiàng)目中能夠有效地貫徹與正確地使用軟件工程規(guī)程,需要有一定的原則來對(duì)軟件項(xiàng)目加以約束。經(jīng)過長期的實(shí)踐,著名軟件工程專家B.W.Boehm提出了以下7條軟件工程的基本原則。
1. 采用分階段的生命周期計(jì)劃,以實(shí)現(xiàn)對(duì)項(xiàng)目的嚴(yán)格管理
軟件項(xiàng)目的開展,需要計(jì)劃在先,實(shí)施在后。統(tǒng)計(jì)資料表明,有50%以上的失敗項(xiàng)目是由于計(jì)劃不周而造成的。在軟件開發(fā)與維護(hù)的漫長生命周期中,需要完成許多性質(zhì)各異的工作,這意味著,應(yīng)該把軟件生命周期劃分為若干個(gè)階段,并相應(yīng)地制訂出切實(shí)可行的計(jì)劃,然后嚴(yán)格按照計(jì)劃對(duì)軟件的開發(fā)與維護(hù)進(jìn)行管理。
2. 堅(jiān)持進(jìn)行階段評(píng)審,以確保軟件產(chǎn)品質(zhì)量
軟件的質(zhì)量保證工作貫穿軟件開發(fā)的各個(gè)階段。實(shí)踐表明,軟件的大部分錯(cuò)誤是編程之前造成的。根據(jù)B.W.Boehm的統(tǒng)計(jì),設(shè)計(jì)錯(cuò)誤占軟件錯(cuò)誤的63%,編碼錯(cuò)誤僅占37%。軟件中的錯(cuò)誤發(fā)現(xiàn)與糾正得越晚,所需要付出的代價(jià)也越高。因此,在每個(gè)階段都要進(jìn)行嚴(yán)格的評(píng)審,盡早地發(fā)現(xiàn)軟件中的錯(cuò)誤,通過對(duì)軟件質(zhì)量實(shí)施過程監(jiān)控,以確保軟件在每個(gè)階段都能夠具有較高的質(zhì)量。
3. 實(shí)行嚴(yán)格的產(chǎn)品控制,以適應(yīng)軟件規(guī)格的變更
在軟件開發(fā)過程中不應(yīng)隨意改變需求,因?yàn)楦淖円豁?xiàng)需求需要付出較高的代價(jià)。但在軟件開發(fā)過程中改變需求又是難免的,只能依靠科學(xué)的產(chǎn)品控制技術(shù)來順應(yīng)這種要求。也就是說,當(dāng)改變需求時(shí),為了保持軟件各個(gè)配置成分的一致性,必須實(shí)現(xiàn)嚴(yán)格的產(chǎn)品控制,其中主要是實(shí)行基準(zhǔn)配置管理。所謂基準(zhǔn)配置是指經(jīng)過階段評(píng)審后的軟件配置成分(各個(gè)階段產(chǎn)生的文檔或程序代碼)。基準(zhǔn)配置管理也稱為變動(dòng)控制,是指一切有關(guān)修改軟件的建議,特別是涉及對(duì)基準(zhǔn)配置的修改建議,都必須按照嚴(yán)格的規(guī)程進(jìn)行評(píng)審,獲得批準(zhǔn)以后,才能實(shí)施修改,絕對(duì)不能隨意修改軟件。實(shí)行嚴(yán)格的產(chǎn)品控制,能夠?qū)浖囊?guī)格進(jìn)行跟蹤記錄,使軟件產(chǎn)品的各項(xiàng)配置成分保持一致性,由此來適應(yīng)軟件的需求變更。
4. 采用現(xiàn)代程序設(shè)計(jì)技術(shù)
采用先進(jìn)的軟件開發(fā)和維護(hù)技術(shù),不僅能夠提高軟件開發(fā)和維護(hù)效率,而且可以提高軟件產(chǎn)品的質(zhì)量,降低開發(fā)成本,縮短開發(fā)時(shí)間,增加軟件的使用壽命。例如,構(gòu)件架構(gòu)系統(tǒng)的特點(diǎn)是通過創(chuàng)建比“類”更加抽象、更具有通用性的基本構(gòu)件,使軟件開發(fā)如同可插入的零件一樣裝配,這樣的軟件不僅開發(fā)容易,維護(hù)方便,而且可以根據(jù)用戶的特定需求方便地進(jìn)行改裝。
5. 軟件成果能清楚地審查
軟件成果是指軟件開發(fā)各個(gè)階段產(chǎn)生的一系列文檔、代碼、資源數(shù)據(jù)等,是對(duì)軟件開發(fā)給出評(píng)價(jià)的基本依據(jù)。由于軟件產(chǎn)品的生產(chǎn)過程可見性差,沒有明顯的生產(chǎn)過程,工作進(jìn)展難以準(zhǔn)確度量和控制,從而使軟件產(chǎn)品的開發(fā)過程比其他產(chǎn)品的開發(fā)過程更難于評(píng)價(jià)和管理。為了提高軟件開發(fā)過程的可見性,更好地進(jìn)行管理,就要根據(jù)軟件開發(fā)項(xiàng)目的總目標(biāo)及完成期限,規(guī)定開發(fā)組織的責(zé)任和產(chǎn)品標(biāo)準(zhǔn),從而使得所得到的結(jié)果能夠清楚地審查。
6. 開發(fā)小組人員應(yīng)該少而精
開發(fā)小組人員的素質(zhì)和數(shù)量是影響軟件產(chǎn)品質(zhì)量和開發(fā)效率的重要因素。高素質(zhì)人員的開發(fā)效率和質(zhì)量是低素質(zhì)人員的幾倍甚至幾十倍。此外,隨著開發(fā)小組人員數(shù)目的增加,因?yàn)榻涣饔懻摱斐傻耐ㄐ砰_銷也會(huì)急劇增加。如果小組中有N個(gè)成員,可能的通信路徑就有N(N-1)/2條,這勢(shì)必影響人員之間的相互協(xié)作與工作質(zhì)量。因此,組成少而精的開發(fā)小組非常重要。
7. 承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性
在遵循上述6條基本原理的基礎(chǔ)上,還應(yīng)該注意不斷改進(jìn)軟件工程實(shí)踐的必要性。這說明軟件工程在實(shí)際應(yīng)用中,不僅要積極主動(dòng)地采納新的軟件技術(shù),而且要注意不斷地總結(jié)經(jīng)驗(yàn)。例如,收集進(jìn)度和資源消耗數(shù)據(jù),收集軟件出錯(cuò)類型和問題報(bào)告數(shù)據(jù)等,這些數(shù)據(jù)不僅可以用來評(píng)價(jià)新的軟件技術(shù)的效果,而且可以用來指明必須著重開發(fā)的軟件開發(fā)工具和應(yīng)該優(yōu)先研究的技術(shù)。
- JavaScript從入門到精通(微視頻精編版)
- Android Studio Essentials
- 深入實(shí)踐Spring Boot
- Python爬蟲開發(fā)與項(xiàng)目實(shí)戰(zhàn)
- Visual Basic程序設(shè)計(jì)習(xí)題解答與上機(jī)指導(dǎo)
- TypeScript實(shí)戰(zhàn)指南
- Python完全自學(xué)教程
- Android底層接口與驅(qū)動(dòng)開發(fā)技術(shù)詳解
- Expert Data Visualization
- Python+Tableau數(shù)據(jù)可視化之美
- 深入理解C指針
- Django 3.0入門與實(shí)踐
- Java EE架構(gòu)設(shè)計(jì)與開發(fā)實(shí)踐
- The Statistics and Calculus with Python Workshop
- jQuery從入門到精通(微課精編版)