前言:想要寫(xiě)出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇測(cè)試報(bào)告缺陷分析范文,相信會(huì)為您的寫(xiě)作帶來(lái)幫助,發(fā)現(xiàn)更多的寫(xiě)作思路和靈感。
測(cè)試不是挑毛病
然而,對(duì)測(cè)試領(lǐng)域先行者Glenford Myers先生“測(cè)試的目的是證偽”這一概念理解也不能過(guò)于片面。在很多軟件工程學(xué)、軟件測(cè)試方面的書(shū)籍中都提到一個(gè)概念:“測(cè)試的目的是尋找錯(cuò)誤,并且是盡最大可能找出最多的錯(cuò)誤”。這很容易讓人們認(rèn)為測(cè)試人員就是“挑毛病”的,而由此帶來(lái)諸多問(wèn)題。
我們可以假想在一個(gè)軟件開(kāi)發(fā)公司內(nèi),軟件測(cè)試人員專(zhuān)注于“挑毛病”,開(kāi)發(fā)人員和公司管理層每天會(huì)得到這樣“簡(jiǎn)潔”的測(cè)試報(bào)告:“在今天的測(cè)試過(guò)程中,系統(tǒng)出現(xiàn)10次宕機(jī)現(xiàn)象”。
從“挑毛病”的角度看,測(cè)試人員已經(jīng)很好的完成了自己的工作,但其工作成果對(duì)開(kāi)發(fā)人員和公司管理層幾乎沒(méi)有任何幫助。開(kāi)發(fā)人員面對(duì)這樣的測(cè)試報(bào)告是無(wú)法對(duì)軟件進(jìn)行任何修改的;而公司管理層也會(huì)疑惑軟件質(zhì)量到底如何,系統(tǒng)能否如期。
長(zhǎng)此以往,必然會(huì)造成開(kāi)發(fā)人員和測(cè)試人員之間無(wú)法調(diào)和的矛盾;而公司管理層也會(huì)認(rèn)為,測(cè)試團(tuán)隊(duì)只是“帶來(lái)壞消息的人”,對(duì)公司產(chǎn)品沒(méi)有提供任何幫助,不如取消為好。
這樣的例子看似比較極端,業(yè)內(nèi)普遍認(rèn)為類(lèi)似的問(wèn)題僅出現(xiàn)在一個(gè)初創(chuàng)測(cè)試團(tuán)隊(duì)的公司內(nèi),但實(shí)際的情況遠(yuǎn)沒(méi)有這樣樂(lè)觀,這類(lèi)現(xiàn)象甚至還蔓延到近年來(lái)蓬勃興起的部分第三方測(cè)試機(jī)構(gòu)之中。
一個(gè)軟件開(kāi)發(fā)公司的管理者,拿到一份剛由某第三方測(cè)試機(jī)構(gòu)完成的測(cè)試報(bào)告,報(bào)告結(jié)論是該公司開(kāi)發(fā)的軟件無(wú)法完成預(yù)定的需求,在500個(gè)用戶并發(fā)交易的情況下會(huì)發(fā)生大量交易失敗。應(yīng)該說(shuō)這樣的報(bào)告確實(shí)挑出了軟件的“毛病”,但報(bào)告中并未提及造成交易失敗的原因,是硬件資源不足、支撐軟件參數(shù)設(shè)置錯(cuò)誤還是應(yīng)用開(kāi)發(fā)問(wèn)題。這樣的報(bào)告會(huì)使得委托測(cè)試單位置疑自己投資進(jìn)行第三方測(cè)試的是否有實(shí)際幫助。
造成這些問(wèn)題的原因歸根結(jié)底就是對(duì)“測(cè)試的目的是證偽”這一概念的片面理解。那么,一次成功的測(cè)試是如何對(duì)問(wèn)題進(jìn)行闡述的呢?質(zhì)量工程學(xué)中軟件失效的機(jī)理給出了很好的答案。
軟件錯(cuò)誤是人為錯(cuò)誤
質(zhì)量工程學(xué)中對(duì)于軟件失效是這樣分析的:由于軟件內(nèi)部邏輯復(fù)雜,運(yùn)行環(huán)境動(dòng)態(tài)變化,且不同的軟件差異可能很大,因而軟件失效機(jī)理可能有不同的表現(xiàn)形式。
譬如有的失效過(guò)程比較簡(jiǎn)單,易于追蹤分析,而有的失效過(guò)程可能非常復(fù)雜,難于甚至不可能加以詳盡描述和分析,尤其是運(yùn)行于高度復(fù)雜實(shí)時(shí)環(huán)境中的大型軟件。
但總的說(shuō)來(lái),軟件失效機(jī)理可描述為:軟件錯(cuò)誤?軟件缺陷?軟件故障?軟件失效。如圖1所示,是軟件錯(cuò)誤發(fā)生的過(guò)程。
軟件錯(cuò)誤軟件錯(cuò)誤是指在軟件生存期內(nèi)的不希望或不可接受的人為錯(cuò)誤,其結(jié)果是導(dǎo)致軟件缺陷的產(chǎn)生。可見(jiàn)軟件錯(cuò)誤是一種人為過(guò)程,相對(duì)于軟件本身,是一種外部行為。
軟件缺陷軟件缺陷是存在于軟件(文檔、數(shù)據(jù)、程序)之中的那些不希望或不可接受的偏差,如少一逗點(diǎn)、多一語(yǔ)句等。其結(jié)果是軟件運(yùn)行于某一特定條件時(shí)出現(xiàn)軟件故障,這時(shí)稱(chēng)軟件缺陷被激活。
軟件故障軟件故障是指軟件運(yùn)行過(guò)程中出現(xiàn)的一種不希望或不可接受的內(nèi)部狀態(tài)。譬如軟件處于執(zhí)行一個(gè)多余循環(huán)過(guò)程時(shí),我們說(shuō)軟件出現(xiàn)故障。此時(shí)若無(wú)適當(dāng)措施(容錯(cuò))加以及時(shí)處理,便產(chǎn)生軟件失效。顯然,軟件故障是一種動(dòng)態(tài)行為。
軟件失效軟件失效是指軟件運(yùn)行時(shí)產(chǎn)生的一種不希望或不可接受的外部行為結(jié)果。
因此,軟件錯(cuò)誤是一種人為錯(cuò)誤。
逆流而上解決問(wèn)題
我們了解了軟件失效的機(jī)理后,就可以逆流而上,沿著軟件失效噯砑故障噯砑缺陷噯砑錯(cuò)誤的方向?qū)?wèn)題進(jìn)行闡述和分析?首先,測(cè)試人員會(huì)說(shuō)明軟件出現(xiàn)了問(wèn)題,在此對(duì)軟件失效現(xiàn)象進(jìn)行了描述;
其次,測(cè)試人員會(huì)詳細(xì)闡明是在哪個(gè)測(cè)試用例的作用下(包括輸入數(shù)值、處理過(guò)程和預(yù)期輸出結(jié)果),軟件產(chǎn)生了何種異常輸出,問(wèn)題的類(lèi)型、嚴(yán)重程度、修改的緊急程度如何,這樣就明晰了軟件故障的情況;
第三,測(cè)試人員會(huì)根據(jù)測(cè)試經(jīng)驗(yàn)和實(shí)際情況,幫助開(kāi)發(fā)人員進(jìn)行故障定位,找到軟件缺陷所在;
第四,測(cè)試人員在對(duì)問(wèn)題情況進(jìn)行統(tǒng)計(jì)的基礎(chǔ)上,會(huì)指出共性問(wèn)題并分析其產(chǎn)生的原因,發(fā)現(xiàn)軟件錯(cuò)誤。
在這樣對(duì)問(wèn)題進(jìn)行充分分析的基礎(chǔ)上,對(duì)問(wèn)題提出修改意見(jiàn),這樣一份問(wèn)題報(bào)告會(huì)是一份對(duì)開(kāi)發(fā)人員和管理層有意義的報(bào)告。
我們可以按照這樣的分析方法,對(duì)前面企業(yè)內(nèi)部和第三方的兩個(gè)測(cè)試失敗的情況進(jìn)行修正。
軟件失效現(xiàn)象:發(fā)生宕機(jī)/不能承擔(dān)500個(gè)用戶的并發(fā)交易;軟件故障情況:在使用非法數(shù)據(jù)輸入的情況下發(fā)生宕機(jī)/在進(jìn)行用戶交納月通話費(fèi)的情況下交易失敗;軟件缺陷:軟件中缺少合法性校驗(yàn)/服務(wù)器CPU占用率達(dá)到98%;軟件錯(cuò)誤:詳細(xì)設(shè)計(jì)環(huán)節(jié)缺少合法性校驗(yàn)內(nèi)容,且文檔評(píng)審工作不到位/概要設(shè)計(jì)環(huán)節(jié)未進(jìn)行關(guān)鍵技術(shù)驗(yàn)證與仿真;修改建議:增加合法性校驗(yàn),加強(qiáng)文檔評(píng)審工作/重新選擇服務(wù)器(重點(diǎn)是CPU),加強(qiáng)對(duì)關(guān)鍵技術(shù)的驗(yàn)證與仿真工作。
對(duì)于所有問(wèn)題,都應(yīng)該對(duì)軟件的失效現(xiàn)象和故障情況做清晰的表述。除了嚴(yán)重程度會(huì)影響外,人員差異也對(duì)問(wèn)題分析的程度有著較大影響。不同的測(cè)試人員需要承擔(dān)不同的職責(zé)。
軟件測(cè)試需三方協(xié)調(diào)
通過(guò)上面的分析可以看到,軟件測(cè)試的目的決不僅僅是“尋找錯(cuò)誤”,今天的軟件測(cè)試需要在三個(gè)方面和開(kāi)發(fā)協(xié)調(diào)工作,其相互作用如圖2所示。
測(cè)試的目的是想以最少的人力、物力和時(shí)間找出軟件中潛在的各種錯(cuò)誤和缺陷,通過(guò)修正種錯(cuò)誤和缺陷提高軟件質(zhì)量,回避軟件后由于潛在的軟件缺陷和錯(cuò)誤造成的隱患帶來(lái)的商業(yè)風(fēng)險(xiǎn)。這一工作靠對(duì)軟件失效現(xiàn)象記錄、軟件故障表示、軟件缺陷的分析完成。
通過(guò)分析錯(cuò)誤產(chǎn)生的原因還可以幫助發(fā)現(xiàn)當(dāng)前開(kāi)發(fā)工作所采用的軟件過(guò)程的缺陷,以便進(jìn)行軟件過(guò)程改進(jìn);同時(shí)通過(guò)對(duì)測(cè)試結(jié)果的分析整理,還可以修正軟件開(kāi)發(fā)規(guī)則,并為軟件可靠性分析提供依據(jù)。這一工作靠對(duì)軟件錯(cuò)誤的分析完成。
1、需求分析:首先需要要學(xué)習(xí)并了解軟件的業(yè)務(wù),分析需求點(diǎn);
2、測(cè)試計(jì)劃:編寫(xiě)整個(gè)測(cè)試計(jì)劃,在這個(gè)過(guò)程中需要參考需求規(guī)格說(shuō)明書(shū),這個(gè)階段一般情況下是測(cè)試主管編寫(xiě)。包括了測(cè)試人員,測(cè)試時(shí)間,測(cè)試工具,測(cè)試方法等;
3、測(cè)試用例設(shè)計(jì):是測(cè)試工作中的最核心的模塊,在執(zhí)行任何測(cè)試之前,首先必須完成測(cè)試用例的編寫(xiě)。測(cè)試用例是指導(dǎo)執(zhí)行測(cè)試,幫助證明軟件功能或發(fā)現(xiàn)軟件缺陷的一種說(shuō)明。用例設(shè)計(jì)好之后,會(huì)進(jìn)行評(píng)審;
4、用例執(zhí)行:搭建環(huán)境,準(zhǔn)備好測(cè)試數(shù)據(jù),進(jìn)行預(yù)測(cè),預(yù)測(cè)通過(guò)后,按照測(cè)試用例進(jìn)入正式測(cè)試;
(1)結(jié)合實(shí)際確定合理的戰(zhàn)術(shù)技術(shù)指標(biāo)、實(shí)現(xiàn)技術(shù)和工藝。結(jié)合實(shí)際確定合理的立項(xiàng)裝備戰(zhàn)術(shù)技術(shù)指標(biāo),在初步方案設(shè)計(jì)中盡量采用成熟的技術(shù)和工藝,慎重采用新材料、新技術(shù)和新工藝,不可盲目追求“高精尖”或“大而全”,已夠用好用作為方案設(shè)計(jì)的基本原則,兼顧系統(tǒng)改建、性能擴(kuò)展和升級(jí)的需要。做好可靠性的預(yù)測(cè)和安全性、可靠性設(shè)計(jì)工作,通過(guò)設(shè)計(jì)更改想法,排除或減少設(shè)計(jì)方案中的危險(xiǎn)因素。在經(jīng)過(guò)重大更改后應(yīng)對(duì)方案重新進(jìn)行風(fēng)險(xiǎn)分析與評(píng)估。如果通過(guò)設(shè)計(jì)更改仍不能消除方案中的嚴(yán)重危險(xiǎn)因素或降低其危險(xiǎn)性,則應(yīng)放棄當(dāng)前的方案重新進(jìn)行方案設(shè)計(jì)。
(2)建立科學(xué)嚴(yán)謹(jǐn)?shù)捻?xiàng)目立項(xiàng)程序。新裝備項(xiàng)目(包括所有裝備立項(xiàng)項(xiàng)目)立項(xiàng)應(yīng)有一套科學(xué)嚴(yán)謹(jǐn)?shù)某绦?,不能憑感性認(rèn)識(shí)或經(jīng)驗(yàn)辦事。應(yīng)成立由有關(guān)各方面專(zhuān)家組成的論證小組,對(duì)裝備研制的可行性、戰(zhàn)術(shù)技術(shù)指標(biāo)的合理性、設(shè)計(jì)方案的符合性等從技術(shù)、進(jìn)度、質(zhì)量、風(fēng)險(xiǎn)各方面進(jìn)行綜合論證和評(píng)價(jià),選擇最佳方案。既要防止草率盲目地啟動(dòng)研制工作,也要防止過(guò)分小心謹(jǐn)慎而耽誤了研制工作的及時(shí)展開(kāi),同時(shí)要杜絕個(gè)別人假借組織的名義進(jìn)行個(gè)人決策。
(3)認(rèn)真審查和選擇研制單位(或協(xié)作單位)。新裝備研制單位應(yīng)該有高度的國(guó)防觀念和軍品意識(shí)、良好的運(yùn)營(yíng)環(huán)境、優(yōu)秀的人才隊(duì)伍、完善有效的質(zhì)量保證體系、優(yōu)良的經(jīng)營(yíng)信譽(yù)。是否有過(guò)類(lèi)似產(chǎn)品的研制經(jīng)理、其結(jié)果如何也是可供參考的重要因素。
(4)簽訂科學(xué)、規(guī)范、完整的研制合同。新裝備研制合同應(yīng)科學(xué)、規(guī)范、完整,明確各種技術(shù)、質(zhì)量、進(jìn)度等要求,力戒含糊不清、模棱兩可的敘述。研制合同既是研制過(guò)程中技術(shù)、經(jīng)濟(jì)、質(zhì)量管理的法律文件,也是進(jìn)行新裝備管理的主要依據(jù)。簽訂合同時(shí)必須具有強(qiáng)烈的風(fēng)險(xiǎn)意識(shí),學(xué)會(huì)從風(fēng)險(xiǎn)分析與風(fēng)險(xiǎn)管理的角度研究合同的每一個(gè)條款,對(duì)可能遇到的風(fēng)險(xiǎn)因素有全面深刻的了解。在合同中對(duì)各自的權(quán)利和義務(wù)做出明確規(guī)定,充分體現(xiàn)利益共享風(fēng)險(xiǎn)分擔(dān)的原則。為了實(shí)現(xiàn)上述目標(biāo),確保新裝備研制的質(zhì)量,科研單位應(yīng)該制定詳細(xì)的質(zhì)量管理過(guò)程文件,經(jīng)過(guò)評(píng)審后頒布執(zhí)行,為質(zhì)量管理體系有效運(yùn)轉(zhuǎn)打好基礎(chǔ)。這一階段的質(zhì)量管理過(guò)程文件主要包括立項(xiàng)裝備需求調(diào)研提綱、立項(xiàng)裝備需求調(diào)研報(bào)告、立項(xiàng)裝備建設(shè)方案、立項(xiàng)裝備建設(shè)方案評(píng)審報(bào)告、單位或上級(jí)年度科研項(xiàng)目計(jì)劃、研制任務(wù)書(shū)、質(zhì)量保證計(jì)劃、風(fēng)險(xiǎn)評(píng)估報(bào)告、項(xiàng)目經(jīng)費(fèi)預(yù)算、研制任務(wù)書(shū)評(píng)審報(bào)告、評(píng)審所提問(wèn)題及處理情況等。這些質(zhì)量管理過(guò)程文件可以根據(jù)研制的新裝備的具體情況制定和取舍。
2總體方案設(shè)計(jì)階段質(zhì)量管理過(guò)程文件
總體設(shè)計(jì)方案是整個(gè)裝備設(shè)計(jì)的龍頭,其設(shè)計(jì)質(zhì)量將直接關(guān)系到未來(lái)裝備的性能??傮w方案設(shè)計(jì)既要充分利用已有的成熟技術(shù),縮短研制周期,又應(yīng)有所創(chuàng)新,利用最新的科研成果提高裝備的技戰(zhàn)性能。由于總體設(shè)計(jì)方案的質(zhì)量是確保裝備最終質(zhì)量和裝備整體質(zhì)量的源中之源、重中之重,放松不得,馬虎不得,因此,科研單位應(yīng)制定詳細(xì)的這一階段的質(zhì)量管理過(guò)程文件。這一階段的質(zhì)量管理過(guò)程文件包括裝備技術(shù)調(diào)研提綱、裝備技術(shù)調(diào)研報(bào)告、裝備設(shè)計(jì)開(kāi)發(fā)計(jì)劃、裝備總體技術(shù)方案、可靠性設(shè)計(jì)大綱、維修性設(shè)計(jì)大綱、保障性設(shè)計(jì)大綱、測(cè)試性設(shè)計(jì)大綱、安全性設(shè)計(jì)大綱、環(huán)境適應(yīng)性設(shè)計(jì)大綱、環(huán)境分析報(bào)告、標(biāo)準(zhǔn)化大綱、總體技術(shù)方案評(píng)審報(bào)告、評(píng)審所提問(wèn)題及處理情況等。經(jīng)過(guò)評(píng)審后頒布執(zhí)行,以確??傮w方案設(shè)計(jì)的質(zhì)量,從而最終確保研制的裝備整體質(zhì)量。
3詳細(xì)設(shè)計(jì)及軟硬件開(kāi)發(fā)階段質(zhì)量管理過(guò)程文件
(1)嚴(yán)格控制新技術(shù)風(fēng)險(xiǎn)因素。為了確保新研制裝備的先進(jìn)性,采用一些新技術(shù)、新器件、新材料是必需的,但是為了確保新研制裝備的綜合效能(性能優(yōu)、壽命長(zhǎng)、故障少、易維修、易保障、最佳費(fèi)用比)和質(zhì)量,在方案審查中,要嚴(yán)格控制新技術(shù)、新器件、新材料的采用比例,要對(duì)技術(shù)風(fēng)險(xiǎn)、制度風(fēng)險(xiǎn)、費(fèi)用風(fēng)險(xiǎn)、后續(xù)保障風(fēng)險(xiǎn)和潛在的質(zhì)量問(wèn)題進(jìn)行認(rèn)真嚴(yán)格的把關(guān);
(2)加強(qiáng)對(duì)改進(jìn)型研制裝備的方案審查。要特別注重對(duì)成熟技術(shù)的借用,注重裝備使用質(zhì)量物理模型的建立和選用,以及對(duì)改進(jìn)技術(shù)的研究,要把評(píng)審后的改進(jìn)意見(jiàn)落實(shí)到設(shè)計(jì)方案中;
(3)要注重裝備系統(tǒng)的接口技術(shù)和方案的審查,使裝備各分系統(tǒng)達(dá)到最佳組合。這一階段的質(zhì)量管理過(guò)程文件包括:系統(tǒng)硬件設(shè)計(jì)方案、系統(tǒng)硬件設(shè)計(jì)方案評(píng)審報(bào)告、設(shè)備清單、外包合同采購(gòu)計(jì)劃、設(shè)備器材驗(yàn)收?qǐng)?bào)告、系統(tǒng)硬件平臺(tái)測(cè)試評(píng)審報(bào)告、軟件需求規(guī)格說(shuō)明書(shū)、需求分析評(píng)審報(bào)告、軟件概要設(shè)計(jì)說(shuō)明、概要設(shè)計(jì)評(píng)審報(bào)告、軟件詳細(xì)設(shè)計(jì)說(shuō)明、軟件詳細(xì)設(shè)計(jì)評(píng)審報(bào)告、軟件源代碼報(bào)告、軟件單元測(cè)試報(bào)告、軟件單元測(cè)試問(wèn)題報(bào)告、軟件單元測(cè)試評(píng)審報(bào)告、軟件部件測(cè)試報(bào)告、軟件部件測(cè)試問(wèn)題報(bào)告、軟件部件測(cè)試評(píng)審報(bào)告、軟件配置項(xiàng)測(cè)試報(bào)告、軟件配置項(xiàng)測(cè)試問(wèn)題報(bào)告、軟件配置項(xiàng)測(cè)試評(píng)審報(bào)告、軟件系統(tǒng)測(cè)試大綱、軟件系統(tǒng)測(cè)試細(xì)則、軟件分系統(tǒng)測(cè)試報(bào)告、軟件分系統(tǒng)測(cè)試問(wèn)題報(bào)告、軟件分系統(tǒng)測(cè)試評(píng)審報(bào)告、設(shè)計(jì)和開(kāi)發(fā)問(wèn)題及處理結(jié)果匯總表、評(píng)審所提問(wèn)題及處理情況等。
4系統(tǒng)研制及集成階段質(zhì)量管理過(guò)程文件
裝備研制是把設(shè)計(jì)方案變成藍(lán)圖,并把藍(lán)圖變成實(shí)物的過(guò)程,也是新型裝備從孕育到誕生的過(guò)程。研制的裝備是否能夠達(dá)到預(yù)期的戰(zhàn)術(shù)技術(shù)指標(biāo)、產(chǎn)品質(zhì)量是否滿足要求都取決于這個(gè)階段,該階段的風(fēng)險(xiǎn)控制工作對(duì)裝備研制的成敗起著決定性的作用,是裝備全壽命周期內(nèi)風(fēng)險(xiǎn)防范與控制的重中之重。裝備研制階段的主要工作是根據(jù)研制合同或技術(shù)協(xié)議的要求,對(duì)購(gòu)方的需求進(jìn)行分析,確定其功能基線和詳細(xì)設(shè)計(jì)方案,進(jìn)行裝備的詳細(xì)設(shè)計(jì)、樣件加工,以及進(jìn)行鑒定試驗(yàn)和定型工作。由于多種原因及條件的限制,許多在方案論證及產(chǎn)品預(yù)研階段未能徹底突破的關(guān)鍵技術(shù)及未能量化的技術(shù)要求都被帶到研制階段,使研制階段的技術(shù)風(fēng)險(xiǎn)增大。研制階段的工作任務(wù)繁重,面臨的風(fēng)險(xiǎn)因素眾多,是風(fēng)險(xiǎn)因素集中、高發(fā)的階段,技術(shù)風(fēng)險(xiǎn)、資金風(fēng)險(xiǎn)、進(jìn)度風(fēng)險(xiǎn)、組織人才風(fēng)險(xiǎn)、政策風(fēng)險(xiǎn)與道德風(fēng)險(xiǎn)都會(huì)給研制工作帶來(lái)嚴(yán)重影響。在進(jìn)行裝備設(shè)計(jì)時(shí)應(yīng)注重安全性、可靠性、工藝性、測(cè)試性、維修性、保障性設(shè)計(jì)。設(shè)計(jì)失誤是最大的失誤,一點(diǎn)微小的疏忽都可能給生產(chǎn)、使用和保障帶來(lái)意想不到的困難甚至災(zāi)難。在該階段控制好風(fēng)險(xiǎn)對(duì)于降低批生產(chǎn)和維護(hù)保障階段的風(fēng)險(xiǎn)有重要意義。要重視設(shè)計(jì)的工藝性,在研制過(guò)程中,應(yīng)注重考察設(shè)計(jì)的工藝性(包括工裝設(shè)備、工藝流程、工藝規(guī)程等),特別是新設(shè)備、新工藝及特種工藝等,發(fā)現(xiàn)和消除工藝設(shè)計(jì)及工藝文件的缺陷,以滿足未來(lái)裝備批生產(chǎn)的需求。注重產(chǎn)品的鑒定(定性)試驗(yàn)、可靠性試驗(yàn)及使用環(huán)節(jié)。通過(guò)試驗(yàn)及使用及時(shí)發(fā)現(xiàn)和處理產(chǎn)品的故障及設(shè)計(jì)缺陷,及時(shí)采取糾正、預(yù)防措施,并將其落實(shí)到設(shè)計(jì)更改中去。加強(qiáng)技術(shù)狀態(tài)的控制與管理。在研制階段,產(chǎn)品的技術(shù)狀態(tài)復(fù)雜多變,管理上的疏忽會(huì)引起產(chǎn)品技術(shù)狀態(tài)的混亂。要按國(guó)軍標(biāo)的要求做好技術(shù)狀態(tài)的控制與管理。這一階段的質(zhì)量管理過(guò)程文件包括用戶檢測(cè)大綱、系統(tǒng)測(cè)試報(bào)告、系統(tǒng)測(cè)試問(wèn)題報(bào)告、用戶檢測(cè)評(píng)審報(bào)告、設(shè)計(jì)和開(kāi)發(fā)問(wèn)題及處理結(jié)果匯總表、評(píng)審所提問(wèn)題及處理情況等。
5驗(yàn)收與交付階段質(zhì)量管理過(guò)程文件
現(xiàn)在許多試制裝備在科研、生產(chǎn)、驗(yàn)收、交付和使用過(guò)程中是高度交叉的,科研與生產(chǎn)無(wú)論是技術(shù)狀態(tài)還是時(shí)間周期上已經(jīng)沒(méi)有明顯的界線劃分,研制階段的風(fēng)險(xiǎn)因素會(huì)影響生產(chǎn)、驗(yàn)收和交付,生產(chǎn)階段的風(fēng)險(xiǎn)因素會(huì)影響到裝備的使用和保障。要控制好驗(yàn)收與交付階段的風(fēng)險(xiǎn),保質(zhì)保量完成裝備交付任務(wù),需要加強(qiáng)生產(chǎn)組織管理、加強(qiáng)技術(shù)狀態(tài)控制、加強(qiáng)質(zhì)量管理,應(yīng)根據(jù)裝備產(chǎn)品技術(shù)規(guī)范的要求做好例行試驗(yàn)和定期檢驗(yàn)工作,認(rèn)真分析和解決試驗(yàn)中出現(xiàn)的各種問(wèn)題,抓好問(wèn)題的歸零處理和措施落實(shí)工作,完善履歷、技術(shù)說(shuō)明書(shū)、操作規(guī)程、備品備件等相關(guān)資料。這一階段的質(zhì)量管理過(guò)程文件包括驗(yàn)收大綱、用戶驗(yàn)收結(jié)果報(bào)告、用戶驗(yàn)收評(píng)審報(bào)告、試運(yùn)行記錄、試運(yùn)行報(bào)告、設(shè)計(jì)定型報(bào)告、用戶驗(yàn)收交接清單、顧客滿意度分析、數(shù)據(jù)分析等。
6結(jié)束語(yǔ)
摘 要:軟件維護(hù)在現(xiàn)實(shí)的軟件開(kāi)發(fā)過(guò)程中占有十分重要的地位,本文介紹了我院的軟件維護(hù)實(shí)踐教學(xué)的教學(xué)方案以及具體實(shí)施情況。
關(guān)鍵詞:軟件工程;軟件開(kāi)發(fā);實(shí)驗(yàn);實(shí)踐教學(xué);軟件維護(hù)
中圖分類(lèi)號(hào):G642
文獻(xiàn)標(biāo)識(shí)碼:B
1 軟件維護(hù)在軟件工程實(shí)踐教學(xué)中的意義
軟件工程是一門(mén)理論與實(shí)踐并重的基礎(chǔ)課程,教學(xué)內(nèi)容緊密?chē)@軟件開(kāi)發(fā)過(guò)程中的各種工程化方法、技術(shù)和思想[1]。在現(xiàn)實(shí)的軟件開(kāi)發(fā)過(guò)程中,軟件維護(hù)占有很重要的地位,許多報(bào)告都指出軟件維護(hù)成本已經(jīng)占到總體成本的40%~70%以上。軟件維護(hù)關(guān)注于“變化”,包括糾錯(cuò)性(corrective)、適應(yīng)性(adaptive)、完善性(perfective)、預(yù)防性(preventative)等維護(hù)類(lèi)型[2]。當(dāng)前的軟件工程教學(xué)中一般都已經(jīng)包括了軟件維護(hù)相關(guān)理論和方法相關(guān)的內(nèi)容,例如軟件維護(hù)及可維護(hù)性的概念、軟件維護(hù)的類(lèi)型和過(guò)程、變更管理以及軟件再工程等。但軟件工程實(shí)踐教學(xué)仍然以瀑布式的正向開(kāi)發(fā)過(guò)程為主,主要體現(xiàn)需求分析、設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試等基本開(kāi)發(fā)活動(dòng),缺少軟件維護(hù)的實(shí)踐訓(xùn)練。
由于軟件維護(hù)在軟件開(kāi)發(fā)中的重要性,許多國(guó)內(nèi)外學(xué)者都呼吁在軟件工程教學(xué)中引入軟件維護(hù)實(shí)踐(如文獻(xiàn)[3])。在軟件工程實(shí)踐教學(xué)中引入軟件維護(hù)內(nèi)容主要基于以下這些考慮。
首先,軟件維護(hù)在軟件開(kāi)發(fā)中占有十分重要的地位,典型的軟件工程開(kāi)發(fā)中花在軟件維護(hù)上的時(shí)間往往比軟件開(kāi)發(fā)還要多[3]。而且,大部分畢業(yè)生進(jìn)入軟件開(kāi)發(fā)機(jī)構(gòu)后都是從維護(hù)性的開(kāi)發(fā)任務(wù)開(kāi)始的。
其次,軟件維護(hù)實(shí)踐還能使學(xué)生更直觀地體會(huì)和理解軟件工程方法和原則的重要性。軟件工程教學(xué)中系統(tǒng)地講授了許多重要的軟件工程方法和原則,包括軟件文檔規(guī)范、設(shè)計(jì)原則(如層次化、高內(nèi)聚低耦合等)以及編碼習(xí)慣(如標(biāo)識(shí)符命名、注釋和排版等)等,其中大部分都與軟件的可維護(hù)性相關(guān)。通過(guò)對(duì)文檔不全、設(shè)計(jì)混亂和編碼習(xí)慣不好的軟件系統(tǒng)進(jìn)行維護(hù),可以對(duì)這些方法和原則獲得直觀、深入的認(rèn)識(shí)和理解。例如,對(duì)標(biāo)識(shí)符命名不規(guī)范、缺少注釋、排版混亂的代碼進(jìn)行閱讀和理解,可以深刻認(rèn)識(shí)到好的編碼習(xí)慣對(duì)于維護(hù)工作的重要性。
此外,軟件維護(hù)實(shí)踐能使學(xué)生更好地認(rèn)識(shí)軟件開(kāi)發(fā)的現(xiàn)實(shí)困難。缺陷報(bào)告、需求變更、軟硬件平臺(tái)的變化等導(dǎo)致軟件演化的因素在現(xiàn)實(shí)的軟件開(kāi)發(fā)中總是存在的。通過(guò)在實(shí)踐教學(xué)中設(shè)置階段性的需求變更,可以讓學(xué)生對(duì)于現(xiàn)實(shí)的軟件開(kāi)發(fā)有更加真實(shí)的體驗(yàn),從而提高對(duì)迭代、增量式開(kāi)發(fā)等實(shí)用的軟件開(kāi)發(fā)方法和技術(shù)的認(rèn)知。
2 軟件維護(hù)實(shí)踐教學(xué)方案
軟件維護(hù)主要包括糾錯(cuò)性、適應(yīng)性、完善性和預(yù)防性維護(hù)四種類(lèi)型[2]:糾錯(cuò)性維護(hù)是針對(duì)所發(fā)現(xiàn)的錯(cuò)誤或缺陷而對(duì)軟件進(jìn)行的修改;適應(yīng)性維護(hù)是為了適應(yīng)外部環(huán)境(如硬件、操作系統(tǒng)、外部規(guī)則等)的變化而對(duì)軟件進(jìn)行的修改;完善性維護(hù)是由于功能擴(kuò)展而進(jìn)行的軟件修改;預(yù)防性維護(hù)是面向未來(lái)的維護(hù)需要,為了提高軟件的適應(yīng)性和可維護(hù)性等而進(jìn)行的系統(tǒng)優(yōu)化和改進(jìn)。軟件維護(hù)實(shí)踐教學(xué)應(yīng)以循序漸進(jìn)的方式覆蓋這四個(gè)方面的軟件維護(hù)任務(wù),同時(shí)穿插并突出相關(guān)軟件工程方法和原則的體驗(yàn)和熏陶。
根據(jù)這一總體目標(biāo),相應(yīng)的軟件維護(hù)實(shí)踐教學(xué)將在給定的作為維護(hù)對(duì)象的遺留系統(tǒng)基礎(chǔ)上,分三個(gè)階段進(jìn)行,如圖1所示。遺留系統(tǒng)分析評(píng)估階段的主要目的是在理解遺留系統(tǒng)需求的基礎(chǔ)上對(duì)系統(tǒng)的外部和內(nèi)部質(zhì)量進(jìn)行初步的了解和評(píng)價(jià)。系統(tǒng)改進(jìn)維護(hù)階段的目標(biāo)是以當(dāng)前系統(tǒng)需求為基礎(chǔ),對(duì)遺留系統(tǒng)的缺陷和錯(cuò)誤進(jìn)行修改,對(duì)系統(tǒng)內(nèi)部的設(shè)計(jì)、實(shí)現(xiàn)以及文檔質(zhì)量進(jìn)行改進(jìn)。系統(tǒng)需求演化維護(hù)階段通過(guò)若干次迭代的需求和系統(tǒng)環(huán)境變更,進(jìn)行系統(tǒng)的完善性和適應(yīng)性維護(hù)。針對(duì)新需求和系統(tǒng)環(huán)境設(shè)置的修改將通過(guò)系統(tǒng)測(cè)試確認(rèn),測(cè)試結(jié)果反饋給系統(tǒng)改進(jìn)維護(hù)階段,從而進(jìn)行相應(yīng)的糾錯(cuò)性維護(hù)活動(dòng)。此外,系統(tǒng)修改過(guò)程中發(fā)現(xiàn)的內(nèi)部質(zhì)量問(wèn)題(例如可擴(kuò)展性上的不足等)同樣也會(huì)反饋給系統(tǒng)改進(jìn)維護(hù)階段,從而進(jìn)行相應(yīng)的預(yù)防性維護(hù)活動(dòng)。這種反饋關(guān)系以及需求和系統(tǒng)環(huán)境變更的迭代進(jìn)行使得后兩個(gè)階段將反復(fù)迭代進(jìn)行。
(1) 遺留系統(tǒng)分析評(píng)估階段
與傳統(tǒng)的基于分析、設(shè)計(jì)和實(shí)現(xiàn)的軟件工程實(shí)踐教學(xué)不同,軟件維護(hù)實(shí)踐教學(xué)以已經(jīng)開(kāi)發(fā)完成的遺留軟件系統(tǒng)作為起點(diǎn)。每個(gè)小組分配到的遺留系統(tǒng)都是由其他人開(kāi)發(fā)的,猶如在軟件開(kāi)發(fā)中接手其他小組的維護(hù)工作。因此,首先要求他們?cè)诶斫忭?xiàng)目當(dāng)前需求的基礎(chǔ)上,對(duì)所分配的系統(tǒng)進(jìn)行分析和評(píng)估,從而為后續(xù)的維護(hù)活動(dòng)打下基礎(chǔ)。這階段的主要實(shí)踐任務(wù)包括:
圖1 軟件維護(hù)實(shí)踐教學(xué)過(guò)程
1) 理解遺留系統(tǒng)需求。與正向軟件開(kāi)發(fā)一樣,軟件維護(hù)實(shí)踐也要從了解系統(tǒng)需求開(kāi)始。需求是評(píng)價(jià)當(dāng)前系統(tǒng)質(zhì)量,進(jìn)而規(guī)劃并實(shí)施各種糾錯(cuò)性、適應(yīng)性、完善性和預(yù)防性維護(hù)活動(dòng)的基礎(chǔ)。
2) 系統(tǒng)測(cè)試及外部質(zhì)量評(píng)價(jià)。外部質(zhì)量因素是那些用戶能輕易觀察到的軟件特性,例如功能正確性、性能、可靠性、可用性等[2]。通過(guò)系統(tǒng)測(cè)試,可以針對(duì)用戶需求得到遺留系統(tǒng)的外部質(zhì)量總體評(píng)價(jià),以及待糾正的錯(cuò)誤和缺陷列表,從而為糾錯(cuò)性維護(hù)打下基礎(chǔ)。
3) 系統(tǒng)理解及內(nèi)部質(zhì)量評(píng)價(jià)。內(nèi)部質(zhì)量是指與系統(tǒng)內(nèi)部設(shè)計(jì)和實(shí)現(xiàn)相關(guān)的質(zhì)量特性,例如可理解性、可維護(hù)性、可擴(kuò)展性等,它們對(duì)于軟件工程師而言是十分重要的[2]。通過(guò)閱讀遺留系統(tǒng)文檔(可能殘缺不全或質(zhì)量不高)以及系統(tǒng)代碼,同時(shí)借助于相關(guān)輔助理解工具的支持,獲得對(duì)系統(tǒng)設(shè)計(jì)(如體系結(jié)構(gòu)和模塊結(jié)構(gòu)等)和代碼的初步理解,在此基礎(chǔ)上對(duì)系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)質(zhì)量進(jìn)行評(píng)價(jià),從而為預(yù)防性維護(hù)打下基礎(chǔ)。
這一階段首先強(qiáng)化了對(duì)于軟件測(cè)試的實(shí)踐。在以往的教學(xué)實(shí)踐中,我們發(fā)現(xiàn)學(xué)生在正向開(kāi)發(fā)階段往往不太重視測(cè)試(對(duì)于自己開(kāi)發(fā)的系統(tǒng)進(jìn)行測(cè)試往往會(huì)覺(jué)得沒(méi)有必要或比較敷衍了事),且常與調(diào)試混淆。而在軟件維護(hù)實(shí)踐中,測(cè)試對(duì)象是他人開(kāi)發(fā)的系統(tǒng)(實(shí)踐中常常發(fā)現(xiàn)學(xué)生對(duì)于測(cè)試、評(píng)價(jià)其他人開(kāi)發(fā)的系統(tǒng)比較有興趣),而且測(cè)試結(jié)果直接決定了對(duì)遺留系統(tǒng)的外部質(zhì)量評(píng)價(jià)和糾錯(cuò)性改進(jìn)方案,因此學(xué)生往往會(huì)認(rèn)真對(duì)待。系統(tǒng)理解能力也非常重要。在教學(xué)實(shí)踐中,可以鼓勵(lì)學(xué)生充分運(yùn)用相關(guān)輔助理解工具進(jìn)行系統(tǒng)理解,例如Eclipse相關(guān)插件所提供的代碼UML視圖、類(lèi)語(yǔ)法樹(shù)、調(diào)用關(guān)系圖、度量信息等輔助理解功能。
除此之外,系統(tǒng)理解及內(nèi)部質(zhì)量評(píng)價(jià)還強(qiáng)化了對(duì)于軟件工程設(shè)計(jì)和實(shí)現(xiàn)原則的認(rèn)識(shí)。通過(guò)閱讀遺留系統(tǒng)文檔和代碼,學(xué)生們可以深切體會(huì)到好的系統(tǒng)設(shè)計(jì)、編碼風(fēng)格以及文檔規(guī)范對(duì)于軟件開(kāi)發(fā)的重要性。實(shí)踐中,他們經(jīng)常會(huì)抱怨遺留系統(tǒng)文檔不全或不一致、設(shè)計(jì)混亂、編碼風(fēng)格不好,而這些其實(shí)也正是他們自己在正向開(kāi)發(fā)階段很容易出現(xiàn)的問(wèn)題。
(2) 系統(tǒng)改進(jìn)維護(hù)階段
系統(tǒng)改進(jìn)維護(hù)階段將在遺留系統(tǒng)分析和評(píng)估基礎(chǔ)上,進(jìn)行糾錯(cuò)性和預(yù)防性維護(hù)。針對(duì)用戶需求以及一般的軟件設(shè)計(jì)和實(shí)現(xiàn)質(zhì)量準(zhǔn)則,從外部質(zhì)量和內(nèi)部質(zhì)量?jī)蓚€(gè)方面對(duì)遺留系統(tǒng)進(jìn)行改進(jìn)。這階段的主要實(shí)踐任務(wù)包括:
1) 糾錯(cuò)性維護(hù)實(shí)施。針對(duì)系統(tǒng)測(cè)試過(guò)程中發(fā)現(xiàn)的問(wèn)題,進(jìn)行糾錯(cuò)性維護(hù),包括消除系統(tǒng)意外出錯(cuò)、糾正與功能需求不一致的地方、改進(jìn)系統(tǒng)性能、可靠性等非功能質(zhì)量方面的不足。
2) 回歸測(cè)試及總結(jié)。糾錯(cuò)性維護(hù)結(jié)束后,通過(guò)回歸測(cè)試驗(yàn)證糾錯(cuò)性維護(hù)的效果,并進(jìn)行總結(jié)。
3) 預(yù)防性維護(hù)方案制定及實(shí)施。針對(duì)系統(tǒng)內(nèi)部質(zhì)量評(píng)價(jià)中發(fā)現(xiàn)的問(wèn)題以及糾錯(cuò)性維護(hù)中遇到的困難(例如難以擴(kuò)展的系統(tǒng)結(jié)構(gòu)等),制定并實(shí)施對(duì)系統(tǒng)的預(yù)防性維護(hù)方案,包括對(duì)系統(tǒng)設(shè)計(jì)和編碼質(zhì)量的改進(jìn),以及對(duì)開(kāi)發(fā)文檔的補(bǔ)充和完善等。
4) 系統(tǒng)評(píng)審及總結(jié)。預(yù)防性維護(hù)結(jié)束后,對(duì)系統(tǒng)的設(shè)計(jì)、代碼及文檔進(jìn)行評(píng)審,總結(jié)改進(jìn)情況以及所獲得的體會(huì)和經(jīng)驗(yàn)。
這一階段首先涵蓋了糾錯(cuò)性維護(hù)和預(yù)防性維護(hù)實(shí)踐。其次,預(yù)防性維護(hù)實(shí)踐通過(guò)系統(tǒng)設(shè)計(jì)、開(kāi)發(fā)文檔、編碼風(fēng)格等方面的改進(jìn),強(qiáng)化了相關(guān)軟件工程方法和原則的訓(xùn)練。
(3) 系統(tǒng)需求演化維護(hù)階段
前兩個(gè)階段的軟件維護(hù)實(shí)踐都還停留在原有系統(tǒng)基礎(chǔ)上,系統(tǒng)需求演化階段將通過(guò)用戶需求和系統(tǒng)環(huán)境的變化,引導(dǎo)學(xué)生進(jìn)行完善性和適應(yīng)性維護(hù)實(shí)踐。由于現(xiàn)實(shí)中的軟件開(kāi)發(fā)一般都包含多次迭代和增量,因此這階段的維護(hù)實(shí)踐也將迭代進(jìn)行多次。這階段的主要實(shí)踐任務(wù)包括:
1) 需求和系統(tǒng)環(huán)境變更分析。在原有系統(tǒng)需求基礎(chǔ)上,提出若干新的擴(kuò)展功能要求和系統(tǒng)環(huán)境變更(例如改變?cè)械臄?shù)據(jù)庫(kù)管理系統(tǒng)),要求學(xué)生通過(guò)與助教的溝通和交流明確需求和系統(tǒng)環(huán)境變更要求。
2) 系統(tǒng)修改方案制定及實(shí)施。根據(jù)變更要求和對(duì)系統(tǒng)設(shè)計(jì)、實(shí)現(xiàn)的理解確定系統(tǒng)修改方案并加以實(shí)施。
3) 系統(tǒng)測(cè)試。針對(duì)需求或系統(tǒng)環(huán)境變更進(jìn)行系統(tǒng)測(cè)試,對(duì)系統(tǒng)修改進(jìn)行確認(rèn),所發(fā)現(xiàn)的錯(cuò)誤和缺陷將反饋給糾錯(cuò)性維護(hù)活動(dòng)。
4) 系統(tǒng)內(nèi)部質(zhì)量反饋。針對(duì)需求或系統(tǒng)環(huán)境變更的修改活動(dòng)可以對(duì)系統(tǒng)的內(nèi)部設(shè)計(jì)和實(shí)現(xiàn)質(zhì)量進(jìn)行檢驗(yàn),暴露設(shè)計(jì)、實(shí)現(xiàn)及文檔等方面的問(wèn)題,這些問(wèn)題將反饋給預(yù)防性維護(hù)活動(dòng)。
系統(tǒng)需求演化維護(hù)階段除了涵蓋完善性和適應(yīng)性維護(hù)實(shí)踐外,還具有以下幾個(gè)方面的作用:使學(xué)生體驗(yàn)到真實(shí)軟件開(kāi)發(fā)中多次迭代的增量式開(kāi)發(fā)過(guò)程;通過(guò)需求變更直觀體會(huì)到可維護(hù)性、可擴(kuò)展性等內(nèi)部設(shè)計(jì)和實(shí)現(xiàn)質(zhì)量的重要性;驗(yàn)證改進(jìn)維護(hù)階段對(duì)于改進(jìn)系統(tǒng)內(nèi)部質(zhì)量的效果,加深對(duì)于良好的軟件設(shè)計(jì)、編碼和文檔習(xí)慣的認(rèn)識(shí)。
3 教學(xué)方案實(shí)施
軟件工程課程實(shí)驗(yàn)可以按照由淺入深的順序分為認(rèn)知性導(dǎo)入實(shí)驗(yàn)、方法性實(shí)驗(yàn)和綜合實(shí)踐三個(gè)部分,其中前兩部分穿插在一個(gè)學(xué)期的軟件工程課程中進(jìn)行,而綜合實(shí)踐則可以在后續(xù)的軟件實(shí)踐類(lèi)課程中安排[1]。在教學(xué)實(shí)踐中,軟件維護(hù)實(shí)踐應(yīng)該作為綜合實(shí)踐安排,此時(shí)學(xué)生已經(jīng)有了軟件工程課程教學(xué)和一些正向開(kāi)發(fā)實(shí)踐(主要包括需求分析、設(shè)計(jì)和實(shí)現(xiàn))基礎(chǔ)。軟件維護(hù)實(shí)踐以3~5人的小組為單位,每個(gè)人可以分別擔(dān)任需求分析、設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試等不同實(shí)踐任務(wù)。
在實(shí)踐項(xiàng)目選擇上,我們從此前的軟件工程課程實(shí)踐、數(shù)據(jù)庫(kù)課程實(shí)踐(數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng))等實(shí)踐項(xiàng)目中選取一些具有典型性的系統(tǒng)實(shí)現(xiàn)(包括文檔和代碼等)作為軟件維護(hù)實(shí)踐候選對(duì)象。這些項(xiàng)目一般已經(jīng)基本實(shí)現(xiàn)了原有的用戶需求,但在外部質(zhì)量和內(nèi)部設(shè)計(jì)和實(shí)現(xiàn)上還存在許多不足。選取這類(lèi)項(xiàng)目的好處是由類(lèi)似背景的學(xué)生完成,能夠反映許多典型的軟件實(shí)踐問(wèn)題,同時(shí)相關(guān)項(xiàng)目學(xué)生已經(jīng)有所接觸,也較為熟悉。
在軟件實(shí)踐教學(xué)中,我們選取書(shū)店管理系統(tǒng)等多個(gè)在以往軟件工程和數(shù)據(jù)庫(kù)等相關(guān)課程的課程實(shí)踐項(xiàng)目作為軟件維護(hù)實(shí)踐的對(duì)象。這些項(xiàng)目都是以數(shù)據(jù)庫(kù)為核心的信息管理系統(tǒng),這類(lèi)系統(tǒng)較為典型且本身的需求較容易發(fā)生變化。
(1) 遺留系統(tǒng)分析評(píng)估階段
此階段學(xué)生將首先借助于原始需求說(shuō)明以及與客戶(由助教扮演)的交互明確系統(tǒng)需求。在此基礎(chǔ)上通過(guò)測(cè)試和文檔、代碼分析進(jìn)行外部質(zhì)量和內(nèi)部質(zhì)量評(píng)價(jià)。遺留系統(tǒng)外部質(zhì)量上存在的主要問(wèn)題包括某些功能與需求不符、運(yùn)行不穩(wěn)定、用戶使用不方便等。而內(nèi)部質(zhì)量方面的普遍問(wèn)題包括類(lèi)結(jié)構(gòu)設(shè)計(jì)混亂、文檔缺乏或不規(guī)范、編碼質(zhì)量差(命名不規(guī)范、缺少注釋)等。
本階段安排約4周時(shí)間,其中第1周用于了解遺留系統(tǒng)原始需求,第2周用于系統(tǒng)測(cè)試,后2周用于系統(tǒng)理解和分析。本階段要求提交系統(tǒng)測(cè)試報(bào)告、系統(tǒng)總體評(píng)價(jià)報(bào)告(包括外部質(zhì)量和內(nèi)部質(zhì)量)。
(2) 系統(tǒng)改進(jìn)維護(hù)階段
此階段的系統(tǒng)改進(jìn)針對(duì)系統(tǒng)測(cè)試報(bào)告中所發(fā)現(xiàn)的錯(cuò)誤和缺陷進(jìn)行糾錯(cuò)性維護(hù),針對(duì)系統(tǒng)總體評(píng)價(jià)報(bào)告中指出的設(shè)計(jì)、編碼和文檔上的不足進(jìn)行改進(jìn)。初次的系統(tǒng)改進(jìn)后,本階段的維護(hù)活動(dòng)還可能在系統(tǒng)需求演化維護(hù)階段的反饋?zhàn)饔孟路磸?fù)多次進(jìn)行(見(jiàn)圖1)。
本階段在每次迭代中安排約2周時(shí)間,要求提交回歸測(cè)試報(bào)告、糾錯(cuò)性維護(hù)總結(jié)以及預(yù)防性維護(hù)總結(jié)。
(3) 系統(tǒng)需求演化維護(hù)階段
此階段的維護(hù)活動(dòng)由需求或系統(tǒng)環(huán)境變更發(fā)起。以書(shū)店管理系統(tǒng)為例,遺留系統(tǒng)實(shí)現(xiàn)的基本功能包括圖書(shū)查詢、選購(gòu)、訂單生成、付款(現(xiàn)金方式)及簡(jiǎn)單的庫(kù)存管理等。需求變更可以包括增加信用卡支付功能(通過(guò)虛擬的銀行支付接口)、增加郵購(gòu)和網(wǎng)上訂購(gòu)功能、增加會(huì)員制折扣功能等。系統(tǒng)環(huán)境變更可以包括改變所用數(shù)據(jù)庫(kù)管理系統(tǒng)(如由Access改為MySQL)、改變國(guó)內(nèi)地區(qū)標(biāo)準(zhǔn)編碼(用于標(biāo)識(shí)供應(yīng)商及顧客的地區(qū))等。相應(yīng)的維護(hù)活動(dòng)除了滿足這些新需求及系統(tǒng)環(huán)境外,還可以引導(dǎo)學(xué)生進(jìn)一步改進(jìn)系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)等。例如,為了更好的容納信用卡支付這一新的付款方式,可以從現(xiàn)金支付和信用卡支付中抽取出公共的支付方式類(lèi),從而改進(jìn)系統(tǒng)的設(shè)計(jì)結(jié)構(gòu)。
本階段在每次迭代中安排約2周時(shí)間,要求提交系統(tǒng)修改方案、測(cè)試報(bào)告和系統(tǒng)內(nèi)部質(zhì)量改進(jìn)反饋報(bào)告。
這樣,在一學(xué)期的軟件實(shí)踐課程中,系統(tǒng)改進(jìn)維護(hù)階段和系統(tǒng)需求演化維護(hù)階段一起可以安排3次左右的迭代,每次完成1~2項(xiàng)需求或系統(tǒng)環(huán)境變更。
我們?cè)趶?fù)旦大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院的軟件工程本科教學(xué)實(shí)踐中利用軟件實(shí)踐課程開(kāi)展軟件維護(hù)實(shí)踐教學(xué)。軟件實(shí)踐課程安排在軟件工程課程(第六學(xué)期)之后的第七學(xué)期,此時(shí)學(xué)生已經(jīng)系統(tǒng)的學(xué)習(xí)過(guò)軟件工程、數(shù)據(jù)庫(kù)、操作系統(tǒng)等課程,初步具備了開(kāi)展綜合性軟件開(kāi)發(fā)實(shí)踐的基礎(chǔ)。
4 總結(jié)
軟件開(kāi)發(fā)實(shí)踐是軟件工程教學(xué)的重要組成部分。傳統(tǒng)的軟件開(kāi)發(fā)實(shí)踐教學(xué)主要以瀑布式的正向開(kāi)發(fā)實(shí)踐為主,忽略了軟件維護(hù)實(shí)踐的訓(xùn)練。軟件維護(hù)實(shí)踐的意義不僅在于軟件維護(hù)在現(xiàn)實(shí)軟件開(kāi)發(fā)中的重要地位,而且可以使學(xué)生更加直觀、深刻地體會(huì)和理解相關(guān)的軟件工程方法和原則。通過(guò)遺留系統(tǒng)分析評(píng)估以及多次迭代的系統(tǒng)改進(jìn)維護(hù)和需求演化維護(hù),不僅培養(yǎng)了系統(tǒng)理解、修改等軟件維護(hù)實(shí)踐能力,還強(qiáng)化了軟件設(shè)計(jì)準(zhǔn)則、編碼和文檔習(xí)慣以及軟件測(cè)試能力的培養(yǎng)。
參考文獻(xiàn)
[1] 彭鑫,趙文耘,錢(qián)樂(lè)秋.軟件工程實(shí)驗(yàn)教學(xué)研究與實(shí)踐[J].計(jì)算機(jī)教育,2007,(20).
關(guān)鍵詞:軟件開(kāi)發(fā)過(guò)程;項(xiàng)目管理
隨著信息技術(shù)的快速發(fā)展,應(yīng)用軟件的功能越來(lái)越龐大,為了便于管理,把項(xiàng)目管理的方法引入到軟件開(kāi)發(fā)過(guò)程當(dāng)中,對(duì)所有的軟件活動(dòng)進(jìn)行有效的管理。本文按照傳統(tǒng)的瀑布模型從項(xiàng)目管理九大知識(shí)領(lǐng)域的角度,進(jìn)行軟件管理項(xiàng)目的工作實(shí)踐管理。
第一階段:立項(xiàng)
(1)建立團(tuán)隊(duì):明確項(xiàng)目經(jīng)理,選擇項(xiàng)目組成員,識(shí)別項(xiàng)目干系人。
(2)編寫(xiě)項(xiàng)目任務(wù)書(shū):明確項(xiàng)目的背景和目標(biāo),能夠描述出基本的項(xiàng)目范圍,識(shí)別并且確定整個(gè)項(xiàng)目的需求,能夠指出項(xiàng)目中干系人的期望值,確認(rèn)需要交付的產(chǎn)品或服務(wù),功能和性能指標(biāo)。
(3)制定工作計(jì)劃:重點(diǎn)描述任務(wù)的分配計(jì)劃,執(zhí)行的時(shí)間計(jì)劃。
(4)制定成本計(jì)劃:制定活動(dòng)清單,采購(gòu)計(jì)劃,人力成本計(jì)劃。
(5)制定評(píng)審流程:由項(xiàng)目的管理層和相關(guān)干系人制定流程。
(6)制定溝通管理:制定溝通管理。
(7)簽訂合同:立項(xiàng)、初驗(yàn)、中驗(yàn)、維保過(guò)程中確認(rèn)交付的產(chǎn)品或者服務(wù)。
第二階段:需求的調(diào)研
(1)人員分配:分配調(diào)研人員工作任務(wù)。
(2)編寫(xiě)需求規(guī)格說(shuō)明書(shū):進(jìn)一步明確軟件的范圍,原型的制定(UI操作界面+UE界面設(shè)計(jì)),明確才用的開(kāi)發(fā)環(huán)境和開(kāi)發(fā)工具。
(3)運(yùn)營(yíng)指標(biāo)的檢測(cè):監(jiān)控工作任務(wù)的完成情況,監(jiān)控預(yù)算是否變化,監(jiān)控需求的變更。
(4)時(shí)間管理:任務(wù)分解wbs,定義具體的活動(dòng),排列順序,估算工作時(shí)間。
第三階段:設(shè)計(jì)和開(kāi)發(fā)
(1)人員管理:分配開(kāi)發(fā)人員工作任務(wù)。
(2)編寫(xiě)概要設(shè)計(jì)說(shuō)明書(shū),編寫(xiě)詳細(xì)設(shè)計(jì)說(shuō)明書(shū),編寫(xiě)代碼。
(3)運(yùn)營(yíng)指標(biāo)的監(jiān)控:監(jiān)控工作任務(wù)的完成情況,監(jiān)控預(yù)算是否變化,監(jiān)控需求的變更。
第四階段:測(cè)試
(1)人員管理:分配測(cè)試人員工作任務(wù)。
(2)部署:部署生產(chǎn)環(huán)境。
(3)編寫(xiě)功能測(cè)試測(cè)試計(jì)劃,編寫(xiě)功能測(cè)試用例并執(zhí)行測(cè)試,編寫(xiě)功能測(cè)試報(bào)告。
(4)編寫(xiě)性能測(cè)試測(cè)試計(jì)劃,錄制腳本并分析,編寫(xiě)性能測(cè)試報(bào)告。
(5)測(cè)試管理:缺陷管理。
(6)運(yùn)營(yíng)指標(biāo)的監(jiān)控:功能和性能是否和需求一致,工作任務(wù)否是及時(shí)完成。
第五階段:實(shí)施
(1)人員管理:分配實(shí)施人員任務(wù)。
制定實(shí)施方案:在生產(chǎn)環(huán)境部署軟件的使用環(huán)境,要保證執(zhí)行計(jì)劃所需的資源
(2)運(yùn)營(yíng)指標(biāo)的監(jiān)控:是否及時(shí)完成實(shí)施人員的培訓(xùn)及管理工作。
(3)用戶驗(yàn)證確認(rèn)。
第六階段:運(yùn)行和維護(hù)
(1)對(duì)項(xiàng)目代碼進(jìn)行打包,交付。
(2)合同終結(jié):得到項(xiàng)目干系人的認(rèn)可。
(3)跟蹤問(wèn)題,并解決問(wèn)題。
(4)撰寫(xiě)項(xiàng)目總結(jié)報(bào)告。
在對(duì)項(xiàng)目的綜合管理中,要制定計(jì)劃,要嚴(yán)格的執(zhí)行計(jì)劃,遇到變化,要有效的進(jìn)行協(xié)調(diào)和控制;在項(xiàng)目范圍管理中,對(duì)范圍進(jìn)行定義和確認(rèn),有效的變更進(jìn)行控制;對(duì)項(xiàng)目時(shí)間的管理就是對(duì)活動(dòng)進(jìn)行定義,根據(jù)活動(dòng)的性質(zhì),進(jìn)行排序,以及時(shí)間的估算,人員進(jìn)度的安排和進(jìn)度的控制;在項(xiàng)目成本管理中,要有資源計(jì)劃,成本估算,成本預(yù)算和成本控制;在項(xiàng)目質(zhì)量管理就是質(zhì)量計(jì)劃,質(zhì)量評(píng)估和質(zhì)量控制;在項(xiàng)目人力資源管理中強(qiáng)調(diào),項(xiàng)目組成員的組建,干系人的識(shí)別;在項(xiàng)目溝通管理中,強(qiáng)調(diào)溝通計(jì)劃,激勵(lì)措施,執(zhí)行情況報(bào)告以及信息管理;項(xiàng)目風(fēng)險(xiǎn)管理,強(qiáng)調(diào)風(fēng)險(xiǎn)分析和識(shí)別,以及風(fēng)險(xiǎn)監(jiān)控;最后是采購(gòu)管理,制定采購(gòu)計(jì)劃,確認(rèn)項(xiàng)目范圍內(nèi)的都已經(jīng)完成,合同管理及合同收尾。
軟件開(kāi)發(fā)類(lèi)項(xiàng)目通常是通過(guò)團(tuán)隊(duì)合作的方式來(lái)完成的,引入了項(xiàng)目管理的知識(shí),在整個(gè)項(xiàng)目中對(duì)工作任務(wù)的分解、估算工作時(shí)間,人員的分配、風(fēng)險(xiǎn)的監(jiān)控、成本的控制、質(zhì)量的把握等方面起到了很好的作用。讓項(xiàng)目的每個(gè)階段,都能夠在管理者的監(jiān)控之下,以達(dá)到在成本、時(shí)間、質(zhì)量三者的一個(gè)平衡,最終完成整個(gè)項(xiàng)目的開(kāi)發(fā),最終打包交付到用戶手中,合同終結(jié)。
參考文獻(xiàn):
[1] 王勇、張斌譯.項(xiàng)目管理知識(shí)體系指南.電子工業(yè)出版社.(美)項(xiàng)目管理協(xié)會(huì)
測(cè)試報(bào)告 測(cè)試技術(shù)論文 測(cè)試項(xiàng)目總結(jié) 測(cè)試工作思路 測(cè)試技術(shù)創(chuàng)新 紀(jì)律教育問(wèn)題 新時(shí)代教育價(jià)值觀