軟件項目管理的質(zhì)量保證
發(fā)布時間:2023/5/4 9:36:00
項目開發(fā)根據(jù)進度分為需求、設(shè)計、開發(fā)、測試等各個階段,質(zhì)量保證工作始終貫穿各階段,同時又必須根據(jù)每個階段特點采取相應(yīng)的措施。軟件工程項目管理是一個系統(tǒng)工程,軟件工程項目管理的主要目標(biāo)是保證項目在規(guī)定時間內(nèi)高質(zhì)量地完成。項目管理包括了項目組開發(fā)各階段的人員結(jié)構(gòu)的配置,質(zhì)量控制的實施方略,內(nèi)部文檔和產(chǎn)品文檔的組織編寫等多項工作,其中質(zhì)量控制方法具有軟件開發(fā)的特點。
項目開發(fā)根據(jù)進度分為需求、設(shè)計、開發(fā)、測試等各個階段,質(zhì)量保證工作始終貫穿各階段,同時又必須根據(jù)每個階段特點采取相應(yīng)的措施。需求分析是開發(fā)人員對系統(tǒng)需要做什么和如何做的定義過程。從系統(tǒng)分析的經(jīng)驗來看,這個過程往往是個循序漸進的過程,一次性對系統(tǒng)形成完整的認(rèn)識是困難的。只有不斷地和客戶領(lǐng)域?qū)<疫M行交流確認(rèn),方能逐步明了用戶的需求。從系統(tǒng)開發(fā)的過程得知,系統(tǒng)分析時犯下的錯誤,會在接下來的階段被成倍的放大,越是在開發(fā)的后期,糾正分析時犯下的錯誤所花費的代價越是昂貴,也越發(fā)影響系統(tǒng)的工期和系統(tǒng)的質(zhì)量。
在具體項目中,一般的做法有兩種:一是請領(lǐng)域?qū)<覅⑴c到系統(tǒng)開發(fā)的早期階段;二是開發(fā)系統(tǒng)原型,原型包括功能性的原型和用戶界面性的原型,也可以是二者混合的原型,用這些原型確認(rèn)用戶的需求。讓領(lǐng)域?qū)<覅⑴c開發(fā)的早期階段,是保證分析人員有充足的時間和領(lǐng)域?qū)<疫M行充分的交流和確認(rèn)。在這個階段,原型可能在提交到用戶之前,首先被領(lǐng)域?qū)<掖_認(rèn),這樣保證了原型被認(rèn)可的程度和認(rèn)可過程耗費的時間盡可能的短,從而在提高效率的同時保證了質(zhì)量。
在開發(fā)方內(nèi)部還有三項保證措施:系統(tǒng)分析委員會保證系統(tǒng)分析集思廣益;質(zhì)量監(jiān)督組對分析工作的監(jiān)督;技術(shù)支持人員參與需求調(diào)研。分析委員會的意義在于任何分析人員在提交其所分析部分的分析說明書前,必須通過委員會的共同審議,委員會的成員根據(jù)各自的分析經(jīng)驗和自身所分析的部分對他人的分析報告提出質(zhì)疑。如此審議過后保證了各部分間相互關(guān)聯(lián)的部分被明確定義,避免了由于“疏忽”造成系統(tǒng)在后期進行整合時出現(xiàn)較嚴(yán)重的系統(tǒng)鴻溝或系統(tǒng)重疊。
質(zhì)量監(jiān)督組在項目的任何階段都要提出監(jiān)督計劃。按照監(jiān)督計劃分配相應(yīng)的資源來保證某階段的開發(fā)質(zhì)量。分析階段的監(jiān)督計劃會在分析任務(wù)之前被項目經(jīng)理、項目負責(zé)人、系統(tǒng)分析員以及技術(shù)支持所了解。為保證分析工作高質(zhì)量進行,同時分析工作又不被過分打擾,質(zhì)量監(jiān)督組則主要針對《系統(tǒng)分析報告》進行復(fù)審,并在認(rèn)為確實有必要的情況下才召開質(zhì)量復(fù)審會議。質(zhì)量復(fù)審會議的主要參與者是項目經(jīng)理、項目負責(zé)人、分析人員和質(zhì)量監(jiān)督組組長。會議的主要議題是提出質(zhì)量質(zhì)疑,給出改進建議即可。具體是否存在質(zhì)量問題,是否需要改進,不在會議中進行討論,以此保證了會議參與的人數(shù)較少,會議的時間盡可能的短。
系統(tǒng)實現(xiàn)也就是代碼的生產(chǎn)過程。生產(chǎn)的類別有類的生產(chǎn),組件的生產(chǎn),構(gòu)件的生產(chǎn),應(yīng)用系統(tǒng)的整合,以及各種測試用例的生產(chǎn)。為了能夠提高生產(chǎn)的質(zhì)量,我們將生產(chǎn)的程序人員按職能分成兩組,測試用例的生產(chǎn)和測試用例生產(chǎn),也就是說如果某個程序員生產(chǎn)了某個組件,則其測試用例不能再由該程序員來生產(chǎn),但他可以生產(chǎn)其他組件的測試用例。這樣交叉生產(chǎn)更容易發(fā)現(xiàn)組件的存在的問題。測試人員按照測試用例來測試組件的各項指標(biāo)提出測試報告。
為了控制系統(tǒng)開發(fā)過程中的往復(fù),不至于產(chǎn)生重大過失和往復(fù)的泛濫,文檔組和質(zhì)量監(jiān)督組協(xié)同完成軟件開發(fā)的配置管理。軟件配置管理的目的在于控制軟件開發(fā)過程中的“變化”,這種變化可能是外部引起的,如需求的變化。也可能是來自于內(nèi)部的變化,如早期設(shè)計的某個部件不夠完備,需要修改等。為了控制這些變化,把變化引起的波動盡可能的控制在有限的范圍內(nèi)。
配置項是指需要進行控制的任何文檔單元,它可能是需求說明報告,也可能是需求說明報告的某個點。在本項目中需要控制的內(nèi)部配置項包括需求報告,設(shè)計報告,組件代碼,組件接口文檔,構(gòu)件及相關(guān)構(gòu)件。測試組的工作被分成若干階段,不同階段的劃分是以保證軟件質(zhì)量的不同指標(biāo)為目標(biāo)的。測試的軟件指標(biāo)分別包括如下幾點:
軟件的正確性:正確性測試主要是測試軟件的功能是否被正確的實現(xiàn)。測試的方式主要是按照功能的要求按照給定的輸入,看是否有給定的輸出,在非標(biāo)稱輸入時,輸出是否異常等。同時也可以測試軟件的功能是否實現(xiàn)或完整實現(xiàn)。性能指標(biāo):該項目對性能的要求非同一般的軟件項目。性能測試往往包含了壓力測試、攻擊性測試等測試,軟件所能承受的極限是多少,一般來將軟件的極限應(yīng)當(dāng)高出用戶要求的性能,各種指標(biāo)也應(yīng)當(dāng)為用戶所了解。
易用性:軟件的使用界面在設(shè)計實現(xiàn)的時候應(yīng)當(dāng)設(shè)法使之與功能的實現(xiàn)相脫離。脫離的原因在于易用性是通過友好的界面實現(xiàn)的。然而讓開發(fā)人員以使用者的角度來確定軟件是否易用是件非常困難的事情,在確定使用界面時往往需要多次的反復(fù)修改,甚至只能在軟件的最后交付之前或用戶使用一段時間之后才被提出來。
鑒于這種特點,軟件在開發(fā)的不同階段都作了相應(yīng)的保證措施,比如在軟件需求界定的時候請領(lǐng)域?qū)<覅⑴c,在軟件設(shè)計階段,讓功能的實現(xiàn)盡可能地包含在軟件的組件之中,也就是沒有界面要求的底層實現(xiàn)。界面的實現(xiàn)僅僅依賴于一個數(shù)據(jù)接口,界面僅僅負責(zé)將用戶輸入的數(shù)據(jù)送到指定的數(shù)據(jù)塊中,用于顯示的數(shù)據(jù)也在指定的數(shù)據(jù)塊中提取,只要保證數(shù)據(jù)塊被互斥的訪問就可以了。有了這樣的設(shè)計結(jié)構(gòu),軟件的易用性也就相當(dāng)容易保證了。當(dāng)測試中發(fā)現(xiàn)易用性的問題時,軟件不會傷到筋骨,皮毛的修改總是非常容易的。只有在項目每個階段不斷實施質(zhì)量管理措施,才能盡早發(fā)現(xiàn)問題,確保項目成功。