摘要:軟件項目的成果是軟件產(chǎn)品。與制造業(yè)產(chǎn)品相比,軟件產(chǎn)品的復(fù)雜性和功能性要高出很多。而且,投入使用之后,軟件所能發(fā)揮的作用是任何類型的硬件都比不了的。只有對軟件開發(fā)項目進(jìn)行有效的質(zhì)量管理,才能保證軟件產(chǎn)品的質(zhì)量。所以,對軟件開發(fā)項目進(jìn)行質(zhì)量管理是十分必要的。
關(guān)鍵詞:軟件開發(fā);質(zhì)量;管理
中圖分類號:F426.672 文獻(xiàn)標(biāo)識碼:A 文章編號:1007—9599 (2012) 14—0000—02
質(zhì)量控制,是一個常規(guī)過程。首先,對產(chǎn)品的實際質(zhì)量進(jìn)行度量,然后將度量結(jié)果與質(zhì)量標(biāo)準(zhǔn)進(jìn)行比較,當(dāng)產(chǎn)品的實際質(zhì)量與質(zhì)量標(biāo)準(zhǔn)有出入時,采取一定的行動。軟件的質(zhì)量控制是一系列的驗證活動,在開發(fā)過程的任一點(diǎn)上對產(chǎn)品進(jìn)行評估,以確定產(chǎn)品在技術(shù)上是否與該階段的規(guī)定相符合。
一、軟件缺陷與軟件錯誤的定義
(一)軟件缺陷的定義
軟件缺陷有內(nèi)部和外部兩方面的含義。從內(nèi)部看,軟件缺陷是在產(chǎn)品的開發(fā)與維護(hù)的過程中存在的各種問題;從外部看,軟件缺陷是系統(tǒng)所要求具備的某種功能的違背或失效。產(chǎn)生軟件缺陷的主要原因在于軟件產(chǎn)品的特點(diǎn)及軟件開發(fā)過程的失誤。
(二)軟件錯誤的定義
軟件錯誤的涵義包含在軟件缺陷之中,是軟件缺陷的內(nèi)部部分。出現(xiàn)軟件錯誤通常是因為軟件本身存在問題,如程序的語法錯誤、算法錯誤或者數(shù)據(jù)的計算不準(zhǔn)確等。軟件出現(xiàn)錯誤時,往往會引發(fā)系統(tǒng)使用故障或者導(dǎo)致系統(tǒng)的某一項功能失去效力。軟件的失效和故障是指軟件能夠向用戶提供的服務(wù)或功能,無法達(dá)到用戶的要求或者是無法達(dá)到之前指定的指標(biāo)。軟件出現(xiàn)了錯誤,可能會使軟件的某項功能在使用時發(fā)生中斷,而且最后的運(yùn)行結(jié)果往往是不正確的。
二、軟件缺陷產(chǎn)生的原因
(一)軟件自身的特點(diǎn)
由于客戶的需求表述不清晰,導(dǎo)致軟件的設(shè)計偏離了客戶需求,從而造成了軟件產(chǎn)品特性和功能方面的缺陷。系統(tǒng)結(jié)構(gòu)十分復(fù)雜,而又無法將之設(shè)計成很好的組建結(jié)構(gòu)或者層次結(jié)構(gòu),最終導(dǎo)致意外問題的出現(xiàn)或者系統(tǒng)擴(kuò)充、維護(hù)的困難。即使已經(jīng)設(shè)計出了較好的面向?qū)ο蟮能浖到y(tǒng),由于對象和類太多,很難實現(xiàn)對各種對象和類之間相互作用的測試。這就導(dǎo)致了一些隱藏著的參數(shù)傳遞、對象狀態(tài)變化好方法調(diào)用等方面的問題。隨著新技術(shù)的應(yīng)用,軟件可能要面對技術(shù)問題或者系統(tǒng)的兼容問題。在軟件的設(shè)計過程中,如果沒有對數(shù)據(jù)的范圍和程序的邏輯路徑進(jìn)行周全的考慮,則可能出現(xiàn)的狀況是邊界條件錯誤或者是邊界條件超出系統(tǒng)運(yùn)行環(huán)境的復(fù)雜度。系統(tǒng)運(yùn)行環(huán)境是復(fù)雜的,不僅用戶所應(yīng)用的計算機(jī)環(huán)境是千變?nèi)f化的,而且用戶的操作方式和輸入的數(shù)據(jù)也是千差萬別的,所以,可能會出現(xiàn)一些特定用戶環(huán)境問題。系統(tǒng)實際運(yùn)行時,可能會因為數(shù)據(jù)量過大而導(dǎo)致強(qiáng)度問題或者負(fù)載問題。如果在設(shè)計實時應(yīng)用系統(tǒng)時,設(shè)計過程不夠細(xì)心,技術(shù)處理不夠仔細(xì),則可能引起時間的上下不協(xié)調(diào)或者不一致。如果沒有對系統(tǒng)崩潰后的自我恢復(fù)以及異地數(shù)據(jù)備份進(jìn)行考慮,則有可能導(dǎo)致系統(tǒng)的安全隱患。
(二)團(tuán)隊工作存在的問題
在不同的開發(fā)階段,工作人員對軟件開發(fā)目的的理解不一樣,軟件設(shè)計人員對客戶需求的分析結(jié)果可能存在理解上的偏差,編程人員則有可能對體統(tǒng)設(shè)計規(guī)格說明書的某幾項內(nèi)容不夠重視,或者存在誤解。設(shè)計或者編程工作中的一些假設(shè)或者依賴性想法沒能得到及時的、充分的交流。項目組的成員之間存在著技術(shù)水平上的極大差別,團(tuán)隊的新員工過多或者培訓(xùn)不足都有可能導(dǎo)致軟件缺陷。軟件產(chǎn)品的規(guī)格說明書中存在的軟件缺陷最多,主要原因有:第一,用戶通常不具備專業(yè)的計算機(jī)知識,軟件開發(fā)人員很難與用戶進(jìn)行溝通,這就導(dǎo)致了軟件開發(fā)者對軟件產(chǎn)品功能的理解出現(xiàn)偏差。第二,因為軟件產(chǎn)品尚未付諸設(shè)計和開發(fā),只能借助想象對系統(tǒng)的實現(xiàn)結(jié)果進(jìn)行描述,這就使得產(chǎn)品的一些特性不夠清晰。第三,用戶總是有著不斷變化的需求,所以,有可能出現(xiàn)上下文之間的矛盾。第四,在開發(fā)過程中沒有重視需求分析,在說明書的設(shè)計和寫作上沒有投入足夠的時間和人力。從軟件的開發(fā)階段來看,軟件缺陷主要出現(xiàn)在需求分析和系統(tǒng)設(shè)計階段,相對而言,代碼階段錯誤較少。
(三)軟件項目管理方面的問題
質(zhì)量文化缺失,對質(zhì)量計劃的重視程度不夠,對質(zhì)量、成本、任務(wù)、資源的平衡性把握不足,縮減需求分析、測試與評審的時間,會導(dǎo)致較多的遺留問題。進(jìn)行系統(tǒng)分析時,不清楚客戶需求,或者在與客戶進(jìn)行溝通時存在困難。軟件的開發(fā)周期短,導(dǎo)致需求分析、系統(tǒng)設(shè)計、編程和測試等各項內(nèi)容不能按照既定的程序進(jìn)行。開發(fā)流程不完善,存在著太多的隨機(jī)性因素。缺少嚴(yán)謹(jǐn)?shù)脑u審和內(nèi)審機(jī)制。文檔不夠完善、對風(fēng)險的評估不足。
三、對軟件開發(fā)的項目質(zhì)量管理策略
(一)對項目的過程進(jìn)行合適的定義
軟件項目的過程包括了對軟件產(chǎn)品進(jìn)行開發(fā)與維護(hù)的活動、實踐和技術(shù)。在現(xiàn)代信息社會,過程管理是開展企業(yè)管理的一種先進(jìn)思想,也是一種有效的工具。在外部環(huán)境或者組織模式發(fā)生變化時,過程管理也會發(fā)生相應(yīng)的變化。因此,要使整個軟件項目過程順利完成,就必須按照企業(yè)與項目的實際狀況制定出合理的運(yùn)作流程,對軟件的功能和相關(guān)性能進(jìn)行準(zhǔn)確的定義,明確每一個階段的計入與推出條件,從而實現(xiàn)對軟件項目過程的有效控制和管理。這樣,才能在提高軟件開發(fā)的效率與項目成功率的同時保證了軟件的開發(fā)質(zhì)量。
(二)明確項目需求
任何軟件的設(shè)計與開發(fā)過程都不能缺少了需求分析環(huán)節(jié)。需求是進(jìn)行軟件開發(fā)的基礎(chǔ)。一般情況下,用戶需求明確而且變更較少的項目較容易成功,而用戶需求混亂而且變更較頻繁的項目很容易失敗。但是,現(xiàn)實情況下,在開發(fā)的后期階段,用戶的需求總會因為各種原因而發(fā)生變更。也就是說,整個軟件項目的實施過程面臨著一定的不確定性因素。在一些項目中,可能會因為需求不明或者是需求的隨意變更而使得在開發(fā)階段需要不停返工。這種現(xiàn)象的出現(xiàn)會導(dǎo)致代碼質(zhì)量差或者測試拖期。因此,為了保證軟件的順利開發(fā)和最終的產(chǎn)品質(zhì)量,在實施項目的過程中,應(yīng)該進(jìn)行項目需求管理。首先,說明書應(yīng)該有詳盡、明確的描述。這是因為由于與客戶進(jìn)行溝通的人員并最后的開發(fā)人員,所以有可能出現(xiàn)開發(fā)人員對客戶需求的誤解;另外,當(dāng)進(jìn)行到編碼階段時,由于間隔時間較長,可能會對當(dāng)初的需求說明產(chǎn)生偏差理解。第二,要對需求的變更進(jìn)行管理。這是因為,在市場或客戶的策略發(fā)生變化時,客戶的需求也會有所變更。這種情況下,如果對軟件項目進(jìn)行合理的變更,則有利于項目的進(jìn)展,但是有的需求變更會對整個項目的進(jìn)程造成阻礙。這時,就要與客戶展開積極的溝通,制定要求變更說明書,并在雙方都認(rèn)可的情況下實施項目。第三,盡早明確客戶需求。對于一些暫時無法確定需求的部分要暫緩開發(fā),以降低需求變化所帶來的風(fēng)險。
(三)代碼走查
在軟件的開發(fā)過程中,可以根據(jù)項目的需要引進(jìn)代碼走查。讓程序員在每周的固定時間,對其所負(fù)責(zé)的代碼部分進(jìn)行講解。這一舉措一方面能夠促使程序員關(guān)注自己所開發(fā)的代碼的質(zhì)量,一方面也可以通過聽取他人的建議對改善代碼工作的效率。代碼走查使得程序員共享思路與方法,從而保證了軟件的質(zhì)量。
(四)對軟件產(chǎn)品進(jìn)行檢測
對軟件項目的檢測分為集成測試與系統(tǒng)測試。測試的主要內(nèi)容有功能、健壯性、性能—效率、用戶界面、安全性、壓力、可靠性、安裝與反安裝等等。測試通常在模擬環(huán)境中開展。測試應(yīng)盡量貫穿整個項目的全過程。通過測試,盡早發(fā)現(xiàn)每個階段中存在的軟件缺陷,為后續(xù)階段的實施創(chuàng)造便利。
四、總結(jié):
為了保證軟件開發(fā)的質(zhì)量,應(yīng)該對軟件開發(fā)項目的全過程進(jìn)行質(zhì)量管理。明確用戶需求,并保證將用戶需求貫徹到軟件開發(fā)項目的每各階段,借助各種手段保證軟件的開發(fā)質(zhì)量。只有這樣,才能開發(fā)出符合用戶需要的,高質(zhì)量的軟件產(chǎn)品。
參考文獻(xiàn):
[1]劉偉.淺談軟件開發(fā)項目的質(zhì)量控制[J].決策與信息(下旬刊),2010,09
[2]張?zhí)煊?中小型軟件開發(fā)質(zhì)量控制研究[J].微電子學(xué)與計算機(jī),2007,06
[3]李勇華,駱啟武,付春燕.基于問題管理提升軟件項目過程質(zhì)量的實踐[J].計算機(jī)與現(xiàn)代化,2007,04
[4]呂宏為.協(xié)同辦公系統(tǒng)軟件開發(fā)項目質(zhì)量管理研究[D].吉林大學(xué),2010
[5]馮馳.基于CMM的軟件開發(fā)質(zhì)量管理研究[D].大連海事大學(xué),2008
[6]沈玉宏.基于CMM軟件項目質(zhì)量管理的研究[D].首都經(jīng)濟(jì)貿(mào)易大學(xué),2006