一般,一個(gè)軟件項(xiàng)目首先由客戶(hù)代表(CM)接洽客戶(hù)的較大的需求。這時(shí)的需求叫市場(chǎng)需求(或叫用戶(hù)需求),客戶(hù)代表會(huì)進(jìn)行各個(gè)項(xiàng)目的安排,即對(duì)項(xiàng)目的啟動(dòng)時(shí)間和發(fā)布時(shí)間進(jìn)行規(guī)劃和設(shè)置。項(xiàng)目經(jīng)理(PM)對(duì)客戶(hù)代表負(fù)責(zé)。項(xiàng)目經(jīng)理的需求是根據(jù)客戶(hù)代表給的,項(xiàng)目經(jīng)理不和用戶(hù)(客戶(hù))直接接觸,負(fù)責(zé)和用戶(hù)進(jìn)行需求洽談和溝通的是客戶(hù)代表。一個(gè)項(xiàng)目的需求在一般情況下是不準(zhǔn)變更的,如果有需求理解方面的不清楚可以進(jìn)行溝通,但是需求是不變更的。如果用戶(hù)有新的需求,一般規(guī)劃在下一個(gè)版本中。因?yàn)樾枨笞兏?,這個(gè)項(xiàng)目的時(shí)間就要進(jìn)行調(diào)整,就不能按計(jì)劃進(jìn)行和完成??蛻?hù)代表提交給客戶(hù)經(jīng)理的是需求規(guī)格說(shuō)明書(shū)。
一、項(xiàng)目開(kāi)工會(huì)
在客戶(hù)經(jīng)理領(lǐng)到客戶(hù)代表分配給的需求后,做項(xiàng)目計(jì)劃,具體做項(xiàng)目人員的確定、需求的分解(需求分解到每個(gè)人)、代碼量的估計(jì),項(xiàng)目各個(gè)階段時(shí)間的劃分和工作量的計(jì)劃、質(zhì)量指標(biāo)的設(shè)定。這時(shí)項(xiàng)目經(jīng)理需要輸出的文檔是項(xiàng)目需求分解任務(wù)書(shū)、項(xiàng)目計(jì)劃PPT、及做好整個(gè)項(xiàng)目需要填寫(xiě)的一系列表格。然后組織項(xiàng)目組成員和CM、QA(質(zhì)量審計(jì)經(jīng)理)進(jìn)行項(xiàng)目開(kāi)工會(huì)。這時(shí)這個(gè)項(xiàng)目就算真正啟動(dòng),計(jì)算工作量時(shí),即計(jì)算這個(gè)項(xiàng)目總共花了多少個(gè)工時(shí),工時(shí)是項(xiàng)目經(jīng)理做計(jì)劃的時(shí)間也算在內(nèi),再加上項(xiàng)目開(kāi)工會(huì)和后續(xù)各個(gè)階段總共花的總工時(shí)數(shù),還有各個(gè)階段開(kāi)會(huì)所花的時(shí)間。在項(xiàng)目開(kāi)工會(huì)上,各個(gè)成員就明確了這個(gè)項(xiàng)目是屬于增強(qiáng)型項(xiàng)目還是其他項(xiàng)目的項(xiàng)目性質(zhì),增強(qiáng)型項(xiàng)目的意思是說(shuō)在原來(lái)上一版本的基礎(chǔ)上又根據(jù)新的需求進(jìn)行增強(qiáng)型開(kāi)發(fā)。還有要明確項(xiàng)目最后開(kāi)發(fā)出的新增代碼量有多少,最后要明確每個(gè)人的需求任務(wù),接下來(lái)著手進(jìn)行SRS的寫(xiě)作。
二、SRS階段:( SRS的寫(xiě)作)
在項(xiàng)目開(kāi)工會(huì)后,項(xiàng)目組就開(kāi)始按照在項(xiàng)目開(kāi)工會(huì)上項(xiàng)目經(jīng)理的需求任務(wù)分解的任務(wù)開(kāi)始進(jìn)行SRS的寫(xiě)作。一般項(xiàng)目經(jīng)理給你的一個(gè)子需求任務(wù),你這時(shí)需要分解為更小的需求。一般一個(gè)需求的寫(xiě)作是按這樣進(jìn)行的。先簡(jiǎn)單介紹這個(gè)需求,然后把這個(gè)需求設(shè)計(jì)成黑盒的形式,即輸入,處理過(guò)程、輸出。這些都需要寫(xiě)詳細(xì),任何一個(gè)需求都寫(xiě)成這種形式,輸入是什么,處理過(guò)程是什么,輸出結(jié)果是什么。處理過(guò)程需要用Visio或者PPT畫(huà)出處理流程圖,流程圖要很詳細(xì)。每一步的各種情況都要表示和考慮到。對(duì)異常情況也要考慮和進(jìn)行處理。還有要說(shuō)明在原來(lái)的基礎(chǔ)上怎么改動(dòng),具體方法要進(jìn)行說(shuō)明。設(shè)計(jì)的數(shù)據(jù)庫(kù)表結(jié)構(gòu),要給出腳本,SQL語(yǔ)句,表結(jié)構(gòu)需說(shuō)明每個(gè)字段,哪些是主鍵,你在這個(gè)需求處理過(guò)程中哪里使用了哪些表,需要進(jìn)行哪些操作,都需要說(shuō)明。這里需要設(shè)計(jì)和編制《數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書(shū)》文檔。該文檔中描述該系統(tǒng)中設(shè)計(jì)出的所有的數(shù)據(jù)庫(kù)表結(jié)構(gòu)和各字段類(lèi)型。還有多個(gè)操作對(duì)象要畫(huà)序列圖表示出按時(shí)序的處理過(guò)程。這個(gè)SRS文檔就相當(dāng)于我們平時(shí)畢業(yè)設(shè)計(jì)或者一個(gè)題目的詳細(xì)設(shè)計(jì)階段達(dá)到的水平,甚至比它更詳細(xì)。每個(gè)項(xiàng)目組成員都把自己的需求的SRS文檔寫(xiě)出來(lái)之后放到配置庫(kù)中,然后每個(gè)人對(duì)項(xiàng)目組其他成員的(非自己的)SRS文檔進(jìn)行Review(評(píng)審),對(duì)每個(gè)SRS文檔在每頁(yè)發(fā)現(xiàn)或者糾正的錯(cuò)誤數(shù)不能低于一定的數(shù)目,而且要保留批注記錄,經(jīng)過(guò)Review的(保留批注的)文檔要放到配置庫(kù)的Review文件夾下,這是進(jìn)行項(xiàng)目質(zhì)量指標(biāo)收集的重要依據(jù),是QA 進(jìn)行調(diào)閱和審計(jì)的資料。項(xiàng)目經(jīng)理要對(duì)SRS文檔、SRS Review文檔進(jìn)行匯總。在匯總后組織項(xiàng)目組全體成員進(jìn)行SRS階段會(huì)議,對(duì)每個(gè)人寫(xiě)的SRS進(jìn)行評(píng)審會(huì)議(討論和提意見(jiàn)),對(duì)別人給你提的修改意見(jiàn)你要一一進(jìn)行說(shuō)明,說(shuō)明為什么不改,怎么改的,是什么問(wèn)題,問(wèn)題嚴(yán)重程度屬于什么級(jí)別,而且都要填表,也是QA進(jìn)行審計(jì)的內(nèi)容。開(kāi)完會(huì)后如果每個(gè)人完成的都差不多,然后安排半天或者一天的時(shí)間進(jìn)行返工,主要是進(jìn)行修改文檔,按在會(huì)上討論的結(jié)果和別人給你的Review文檔結(jié)果(評(píng)審結(jié)果)進(jìn)行準(zhǔn)一修改和完善。然后再進(jìn)行SRS階段開(kāi)會(huì),如果都做的比較到位和具體、符合要求,即關(guān)閉SRS階段。這時(shí)SRS階段的花費(fèi)的工時(shí)數(shù)和一些質(zhì)量活動(dòng)指標(biāo)就出來(lái)了,比如你這個(gè)SRS文檔寫(xiě)了幾頁(yè),每頁(yè)的錯(cuò)誤數(shù)是多少,返工修改用了多少時(shí)間,然后這些這個(gè)比率也會(huì)自動(dòng)計(jì)算出來(lái)。進(jìn)而可以判斷這個(gè)階段的質(zhì)量。每個(gè)項(xiàng)目組成員在每天工作完畢后都要進(jìn)行Time Sheet 的填寫(xiě),必須具體到半個(gè)小時(shí),這是統(tǒng)計(jì)和分析的需要。填寫(xiě)必須真實(shí)。
三、UTP、STP階段(UTP、STP的寫(xiě)作)
在SRS階段完成后一般安排比較很短的時(shí)間進(jìn)行UTP、STP的寫(xiě)作。即單元測(cè)試計(jì)劃、系統(tǒng)測(cè)試計(jì)劃。這兩個(gè)需要輸出提交的是兩個(gè)表格。單元測(cè)試計(jì)劃按預(yù)置條件(即需要設(shè)置的先決條件)、輸入、期望的輸出、實(shí)際的輸出這樣設(shè)計(jì)的表格來(lái)填。即每個(gè)單元測(cè)試用例都按這樣的黑盒測(cè)試方法來(lái)寫(xiě)。另外還有一種需要編寫(xiě)測(cè)試代碼來(lái)進(jìn)行測(cè)試用例的設(shè)計(jì),即對(duì)每個(gè)被測(cè)類(lèi)需要設(shè)計(jì)一個(gè)測(cè)試類(lèi),用這個(gè)測(cè)試類(lèi)來(lái)調(diào)用和驅(qū)動(dòng)被測(cè)類(lèi)的數(shù)據(jù)成員和方法,然后給出斷言。測(cè)試用例的設(shè)計(jì)同一個(gè)主要功能的要多設(shè)計(jì)幾個(gè)例子,對(duì)異常也要設(shè)計(jì)用例進(jìn)行測(cè)試。盡可能多的覆蓋。STP 是在單元測(cè)試基礎(chǔ)之后用的,是項(xiàng)目組把產(chǎn)品交到專(zhuān)門(mén)的測(cè)試部門(mén)前的項(xiàng)目組的聯(lián)調(diào)和測(cè)試。這時(shí)需要寫(xiě)出系統(tǒng)測(cè)試計(jì)劃。為了到后面單元測(cè)試階段和系統(tǒng)聯(lián)調(diào)階段使用。這兩個(gè)文檔也需要按照前面的方法和流程進(jìn)行Review(評(píng)審)、匯總、會(huì)議評(píng)審、修改返工、定稿。最后關(guān)閉這個(gè)階段。也按前面的方法需要進(jìn)行所用工時(shí)的填寫(xiě)。QA和PM進(jìn)行分析。
四、SD階段(SD的寫(xiě)作)
這個(gè)階段是邏輯設(shè)計(jì)階段。按照前面的SRS文檔,一般一個(gè)人連續(xù)性地負(fù)責(zé)前面PM在項(xiàng)目開(kāi)工會(huì)分配給你的一個(gè)需求的各個(gè)階段的設(shè)計(jì)和其他工作。進(jìn)行LD文檔的寫(xiě)作。要非常具體,比如按照前面設(shè)計(jì)出的SRS文檔中的一個(gè)需求,這個(gè)階段你需要設(shè)計(jì)出具體的數(shù)據(jù)結(jié)構(gòu),要設(shè)計(jì)出哪些類(lèi),每個(gè)類(lèi)的各個(gè)數(shù)據(jù)成員是什么,是什么類(lèi)型的,每個(gè)類(lèi)要設(shè)計(jì)哪些函數(shù),函數(shù)要很具體,函數(shù)名稱(chēng)、返回值,參數(shù)(輸入?yún)?shù)、輸出參數(shù)),該函數(shù)由誰(shuí)來(lái)調(diào)用它,它又由調(diào)用了哪些函數(shù),函數(shù)的具體處理過(guò)程要寫(xiě)成偽碼的形式。這個(gè)階段需要使用Rational Rose畫(huà)出設(shè)計(jì)出的每個(gè)類(lèi)的成員和函數(shù)。以及類(lèi)之間的關(guān)系。這個(gè)階段的輸出就是LD文檔。也按前面的方法進(jìn)行 Review(評(píng)審)、匯總、會(huì)議評(píng)審、修改返工、定稿。也進(jìn)行工時(shí)的記錄和統(tǒng)計(jì)、分析。
五、CODE階段(編寫(xiě)代碼,一般安排一到兩周)
SRS、LD階段完成后,在CODE(編寫(xiě)代碼階段)就比較容易和輕松了。只需要找到添加代碼的地方,然后寫(xiě)上標(biāo)志,比如
Begin infoX–MDSP V200102 2006-9-1 liuyongping add(modify,delete)
代碼
End infoX–MDSP V200102 2006-9-1 liuyongping add(modify,delete)
Add表示中間這段代碼是你寫(xiě)的,modify表示是你修改的,delete表示你把這段代碼刪除了。然后參照前面設(shè)計(jì)的LD文檔,編寫(xiě)代碼。對(duì)每個(gè)類(lèi)、每個(gè)類(lèi)成員的命名都要符合規(guī)范,比如類(lèi)成員以m_開(kāi)頭。對(duì)每個(gè)類(lèi)對(duì)象(變量)命名也要符合規(guī)范。尤其需要注意指針的使用,好的程序也是靈活使用指針的程序,對(duì)內(nèi)存的申請(qǐng)、釋放一定要小心。最后編出的代碼自己首先要進(jìn)行編譯、調(diào)試、保證自己添加和負(fù)責(zé)的這一部分編譯通過(guò)。然后正確無(wú)誤才能合入配置庫(kù)。要對(duì)合入配置庫(kù)的代碼進(jìn)行負(fù)責(zé),因?yàn)榕渲脦?kù)中的代碼是大家一個(gè)項(xiàng)目一起使用的代碼,只要你的有編譯錯(cuò)誤,然后大家再此基礎(chǔ)上Check Out出來(lái)的代碼肯定不能編譯通過(guò)。但是邏輯錯(cuò)誤允許有,這些邏輯錯(cuò)誤在后面的單元測(cè)試和系統(tǒng)測(cè)試中會(huì)暴露出來(lái),到時(shí)修改掉錯(cuò)誤,重新合入配置庫(kù)。在Code階段,每個(gè)人完成自己的代碼寫(xiě)作后,需要相互進(jìn)行代碼走讀,代碼走讀階段能發(fā)現(xiàn)一些問(wèn)題,這些都要進(jìn)行記錄統(tǒng)計(jì)和分析,然后要不允許留一個(gè)錯(cuò)誤地修改掉。代碼的格式一定要符合規(guī)范,格式要對(duì)齊,需要有一個(gè)空格的地方不能沒(méi)有空格或者多一個(gè)空格。要求很?chē)?yán),這樣代碼比較整齊、規(guī)范、可讀性強(qiáng)。對(duì)自己新設(shè)計(jì)的文件,在文件頭有說(shuō)明,說(shuō)明文件名,作者,創(chuàng)建時(shí)間,修改時(shí)間,功能。對(duì)函數(shù)都要有說(shuō)明:返回值,輸入?yún)?shù)、輸出參數(shù)(沒(méi)有輸出參數(shù)的不寫(xiě)該項(xiàng)),功能。文件的命名也有規(guī)范。能不重新創(chuàng)建文件的就不進(jìn)行重新創(chuàng)建文件,完成同一功能的放到同一文件中。對(duì)重要和難懂的地方可以簡(jiǎn)明扼要地加點(diǎn)注釋說(shuō)明。
六、UT:?jiǎn)卧獪y(cè)試階段
在產(chǎn)品所有代碼編譯通過(guò)的基礎(chǔ)上,按照前面的UTP設(shè)計(jì)的測(cè)試用例進(jìn)行測(cè)試。主要檢查主要功能性測(cè)試用例和異常測(cè)試用例的測(cè)試結(jié)果,看是否達(dá)到了設(shè)計(jì)目的,與設(shè)計(jì)是否相否。對(duì)測(cè)試的結(jié)果要進(jìn)行記錄和填表,反饋給代碼編寫(xiě)人員,然后代碼編寫(xiě)人員修改錯(cuò)誤,并把修改方法和修改結(jié)果報(bào)告給測(cè)試人員。這個(gè)屬于項(xiàng)目組內(nèi)部自測(cè),一般自己測(cè)自己的。一般自己測(cè)出來(lái)問(wèn)題修改掉合入配置庫(kù)即可。
七、ST:系統(tǒng)測(cè)試階段
聯(lián)合測(cè)試,系統(tǒng)需要與其他系統(tǒng)進(jìn)行通信和連接的,這時(shí)把其他系統(tǒng)安裝好,然后與我們的系統(tǒng)進(jìn)行對(duì)接,在配置好后,從其他系統(tǒng)進(jìn)行數(shù)據(jù)模擬和交互來(lái)測(cè)試所開(kāi)發(fā)產(chǎn)品系統(tǒng)的功能和性能、結(jié)果等。記錄測(cè)試結(jié)果,并修改錯(cuò)誤,最后合入配置庫(kù)。
八、打包、歸檔、轉(zhuǎn)交測(cè)試部進(jìn)行測(cè)試
在以上各個(gè)階段完成后,且軟件系統(tǒng)的缺陷率滿(mǎn)足項(xiàng)目設(shè)定和要求的情況下,項(xiàng)目經(jīng)理進(jìn)行項(xiàng)目版本的打包、歸檔,歸檔以后這個(gè)版本就不能更改了,在測(cè)試部測(cè)出Bug后,需要走測(cè)試電子流填單經(jīng)過(guò)測(cè)試經(jīng)理審核、項(xiàng)目經(jīng)理審核、定位人員進(jìn)行問(wèn)題定位、解決問(wèn)題人員寫(xiě)出修改Bug或者錯(cuò)誤的方法,然后經(jīng)項(xiàng)目經(jīng)理審核修改意見(jiàn)和方法正確后,授權(quán)和指定一個(gè)修改人員進(jìn)行修改,這時(shí)項(xiàng)目經(jīng)理會(huì)通知配置管理人員給該修改人員開(kāi)放配置庫(kù)修改權(quán)限。這個(gè)修改人修改后先自測(cè)、再讓測(cè)試部人員重新測(cè)試正確后,最后才合入配置庫(kù)。歸檔后提交給測(cè)試部的有編譯過(guò)的代碼文件、用戶(hù)使用說(shuō)明書(shū)(即如何安裝、配置和環(huán)境的說(shuō)明,讓測(cè)試部的人員模擬最終用戶(hù)使用該產(chǎn)品的軟件)。一般測(cè)試部能發(fā)現(xiàn)很重要和大部分Bug,在最后少于缺陷率的情況下,標(biāo)志著該產(chǎn)品軟件符合質(zhì)量。這個(gè)階段主要是測(cè)試部測(cè)試人員測(cè)試,項(xiàng)目組人員進(jìn)行問(wèn)題單的定位和修改。
在經(jīng)過(guò)以上各個(gè)階段的嚴(yán)格流程后,在QA進(jìn)行文檔審計(jì)和質(zhì)量指標(biāo)收集、統(tǒng)計(jì)、分析后,認(rèn)為該產(chǎn)品軟件滿(mǎn)足設(shè)計(jì)要求,符合CMM質(zhì)量指標(biāo)之后,還需要有TM(測(cè)試經(jīng)理)的測(cè)試結(jié)果報(bào)告及產(chǎn)片合格報(bào)告之后,該產(chǎn)品軟件才可進(jìn)入市場(chǎng),交于最終用戶(hù)使用。在產(chǎn)品上線(xiàn)運(yùn)行后,出現(xiàn)個(gè)別錯(cuò)誤后,可以填單,項(xiàng)目組定位、修改后,可進(jìn)行打補(bǔ)丁。
以上就是一個(gè)軟件項(xiàng)目按照CMM流程開(kāi)發(fā)各個(gè)階段需要做的工作的綜述。比較簡(jiǎn)略,但是重要的和方法都說(shuō)了。只有在真正進(jìn)行具體項(xiàng)目的開(kāi)發(fā)過(guò)程中才能掌握和領(lǐng)會(huì),才能知道為什么這樣做。
推薦使用的項(xiàng)目開(kāi)發(fā)工具和管理工具如下:
Visual Source Safe(VSS) 配置庫(kù)管理工具
Source Insight 代碼編寫(xiě)和閱讀工具,對(duì)每個(gè)類(lèi)的視圖和函數(shù)代碼顯示和管理比較好。
Visio 要熟練使用,會(huì)畫(huà)流程圖和對(duì)象序列圖。
Rational Rose 要會(huì)使用此工具進(jìn)行畫(huà)出每個(gè)類(lèi)的類(lèi)圖(包括類(lèi)數(shù)據(jù)成員和函數(shù)),及類(lèi)之間的關(guān)系。
Beyond Compare 代碼比較工具,查看代碼變化,包括新增、刪除。
還需要制作一些統(tǒng)計(jì)表格,要帶有智能化,即使用VBScript腳本。能進(jìn)行自動(dòng)統(tǒng)計(jì)和計(jì)算。這需要專(zhuān)門(mén)有人進(jìn)行開(kāi)發(fā)。這樣一套CMM管理表格工具價(jià)格是非常高的,小公司也沒(méi)有,只有大公司有??梢蕴岣吖芾淼臏?zhǔn)確性和效率。
縮略語(yǔ): 縮寫(xiě)
英文全稱(chēng)
說(shuō)明
SRS
System/Software Requirement Specification
軟件需求規(guī)格說(shuō)明
SD
System Design
系統(tǒng)設(shè)計(jì)
UT
Unit Test
單元測(cè)試
ST
System Test
系統(tǒng)測(cè)試
CM
Custom Management
客戶(hù)經(jīng)理
PM
Project Management
項(xiàng)目經(jīng)理
TM
Test Management
測(cè)試經(jīng)理
UTP
Unit Test Plan
單元測(cè)試計(jì)劃
STP
System Test Plan
系統(tǒng)測(cè)試計(jì)劃
CMM
Capability Maturity Model
軟件能力成熟度模型
WAP
Wireless Application Protocol
無(wú)線(xiàn)應(yīng)用協(xié)議
URL
Uniform Resource Locator
統(tǒng)一資源定位器
QA
Quality Assurance
質(zhì)量保證
聯(lián)系客服