V型模型是瀑布模型的一個(gè)變種,如圖2.6所示。它同樣需要一步一步進(jìn)行,前一個(gè)階段的任務(wù)完成之后才可以進(jìn)行下一階段的任務(wù)。這個(gè)模型強(qiáng)調(diào)測(cè)試的重要性,它將開(kāi)發(fā)活動(dòng)與測(cè)試活動(dòng)緊密地聯(lián)系在一起。每一步都將比前一階段進(jìn)行更加完善的測(cè)試。 實(shí)驗(yàn)證明,一個(gè)項(xiàng)目50%以上的時(shí)間花在測(cè)試上。通常,大家對(duì)測(cè)試存在一種誤解,認(rèn)為測(cè)試是開(kāi)發(fā)周期的后一個(gè)階段。其實(shí),早期的測(cè)試對(duì)提高產(chǎn)品質(zhì)量、縮短開(kāi)發(fā)周期起著重要作用。V型模型也正好說(shuō)明了測(cè)試的重要性,它是與開(kāi)發(fā)并行的,這個(gè)模型體現(xiàn)了全過(guò)程的質(zhì)量意識(shí)。
V型模型的特點(diǎn)如下: (1)簡(jiǎn)單易用,只要按照規(guī)定的步驟一步一步執(zhí)行即可。 (2)V型模型強(qiáng)調(diào)測(cè)試過(guò)程與開(kāi)發(fā)過(guò)程的對(duì)應(yīng)性和并行性,例如單元測(cè)試對(duì)應(yīng)詳細(xì)設(shè)計(jì),集成測(cè)試對(duì)應(yīng)概要設(shè)計(jì),系統(tǒng)測(cè)試對(duì)應(yīng)需求分析。 (3)V型模型沒(méi)有反映實(shí)際的開(kāi)發(fā)過(guò)程,實(shí)際的開(kāi)發(fā)過(guò)程會(huì)有很多的迭代過(guò)程,比如實(shí)施過(guò)程中會(huì)發(fā)現(xiàn)設(shè)計(jì)中的問(wèn)題,然后去修正,測(cè)試過(guò)程中也會(huì)返回前一段,重新做一些事情。
使用指南:
使用V型模型,要求開(kāi)發(fā)的人過(guò)程是嚴(yán)格按照順序進(jìn)行的,一個(gè)階段的輸出是下一個(gè)階段的輸入。同時(shí),注意圖2.6中虛線對(duì)應(yīng)過(guò)程聽(tīng)并行考慮,例如需求分析階段應(yīng)該有系統(tǒng)測(cè)試的準(zhǔn)備,概要設(shè)計(jì)階段應(yīng)該有集成測(cè)試的準(zhǔn)備,詳細(xì)設(shè)計(jì)階段應(yīng)有單元測(cè)試的準(zhǔn)備等。 V型模型適合的場(chǎng)合: 項(xiàng)目的需求在項(xiàng)目開(kāi)始前很明確,解決方案在項(xiàng)目開(kāi)始前也很明確,項(xiàng)目對(duì)系統(tǒng)的性能很?chē)?yán)格。類(lèi)似的項(xiàng)目如:航天飛機(jī)控制系統(tǒng),公司的財(cái)務(wù)系統(tǒng)等。 8 形式化方法模型 形式化方法特別適合于那些對(duì)性、可靠性和保密性要求的軟件系統(tǒng)開(kāi)發(fā),它采用形式化的數(shù)學(xué)方法將系統(tǒng)描述轉(zhuǎn)換成可執(zhí)行的程序。 形式化方法的過(guò)程模型如圖1.5.7所示,它首先將軟件需求描述提煉成采用數(shù)學(xué)符號(hào)表達(dá)的形式化描述,然后經(jīng)過(guò)一系列的形式化轉(zhuǎn)換將形式化描述自動(dòng)轉(zhuǎn)換成可執(zhí)行程序,后將整個(gè)系統(tǒng)集成起來(lái)進(jìn)行測(cè)試。 形式化轉(zhuǎn)換n 形式化轉(zhuǎn)換n 由于數(shù)學(xué)方法具有嚴(yán)密性和準(zhǔn)確性,形式化方法開(kāi)發(fā)過(guò)程所交付的軟件系統(tǒng)具有較少的缺陷和較高的性。但是,形式化方法在實(shí)際軟件開(kāi)發(fā)中應(yīng)用并不多,其主要原因在于: 開(kāi)發(fā)人員需要具備一定技能并經(jīng)過(guò)特殊訓(xùn)練后才能掌握形式化開(kāi)發(fā)方法。 現(xiàn)實(shí)應(yīng)用的系統(tǒng)大多數(shù)是交互性強(qiáng)的軟件,但是這些系統(tǒng)難以用形式化方法進(jìn)行描述。 形式化描述和轉(zhuǎn)換是一項(xiàng)費(fèi)時(shí)、費(fèi)力的工作,采用這種方法開(kāi)發(fā)系統(tǒng)在成本和質(zhì)量等方面并不占優(yōu)勢(shì)。