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