螺旋模型
1.什么是螺旋模型
1988年,巴利·玻姆Barry Boehm正式發(fā)表了軟件系統(tǒng)開發(fā)的“螺旋模型”,它將瀑布模型和快速原型模型結(jié)合起來,強(qiáng)調(diào)了其他模型所忽視的風(fēng)險(xiǎn)分析,特別適合于大型復(fù)雜的系統(tǒng)。
螺旋模型采用一種周期性的方法來進(jìn)行系統(tǒng)開發(fā)。這會(huì)導(dǎo)致開發(fā)出眾多的中間版本。使用它,項(xiàng)目經(jīng)理在早期就能夠?yàn)榭蛻魧?shí)證某些概念。該模型是快速原型法,以進(jìn)化的開發(fā)方式為中心,在每個(gè)項(xiàng)目階段使用瀑布模型法。這種模型的每一個(gè)周期都包括需求定義、風(fēng)險(xiǎn)分析、工程實(shí)現(xiàn)和評(píng)審4個(gè)階段,由這4個(gè)階段進(jìn)行迭代。軟件開發(fā)過程每迭代一次,軟件開發(fā)又前進(jìn)一個(gè)層次。采用螺旋模型的軟件過程如下圖所示:
螺旋模型基本做法是在“瀑布模型”的每一個(gè)開發(fā)階段前引入一個(gè)非常嚴(yán)格的風(fēng)險(xiǎn)識(shí)別、風(fēng)險(xiǎn)分析和風(fēng)險(xiǎn)控制,它把軟件項(xiàng)目分解成一個(gè)個(gè)小項(xiàng)目。每個(gè)小項(xiàng)目都標(biāo)識(shí)一個(gè)或多個(gè)主要風(fēng)險(xiǎn),直到所有的主要風(fēng)險(xiǎn)因素都被確定。
螺旋模型強(qiáng)調(diào)風(fēng)險(xiǎn)分析,使得開發(fā)人員和用戶對(duì)每個(gè)演化層出現(xiàn)的風(fēng)險(xiǎn)有所了解,繼而做出應(yīng)有的反應(yīng),因此特別適用于龐大、復(fù)雜并具有高風(fēng)險(xiǎn)的系統(tǒng)。對(duì)于這些系統(tǒng),風(fēng)險(xiǎn)是軟件開發(fā)不可忽視且潛在的不利因素,它可能在不同程度上損害軟件開發(fā)過程,影響軟件產(chǎn)品的質(zhì)量。減小軟件風(fēng)險(xiǎn)的目標(biāo)是在造成危害之前,及時(shí)對(duì)風(fēng)險(xiǎn)進(jìn)行識(shí)別及分析,決定采取何種對(duì)策,進(jìn)而消除或減少風(fēng)險(xiǎn)的損害。
2.螺旋模型的優(yōu)缺點(diǎn)
1、螺旋模型的優(yōu)勢(shì)包括:
1)設(shè)計(jì)上的靈活性,可以在項(xiàng)目的各個(gè)階段進(jìn)行變更。
2)以小的分段來構(gòu)建大型系統(tǒng),使成本計(jì)算變得簡(jiǎn)單容易。
3)客戶始終參與每個(gè)階段的開發(fā),保證了項(xiàng)目不偏離正確方向以及項(xiàng)目的可控性。
4)隨著項(xiàng)目推進(jìn),客戶始終掌握項(xiàng)目的最新信息 , 從而他或她能夠和管理層有效地交互。
5)客戶認(rèn)可這種公司內(nèi)部的開發(fā)方式帶來的良好的溝通和高質(zhì)量的產(chǎn)品。
螺旋模型很大程度上是一種風(fēng)險(xiǎn)驅(qū)動(dòng)的方法體系,因?yàn)樵诿總€(gè)階段之前及經(jīng)常發(fā)生的循環(huán)之前,都必須首先進(jìn)行風(fēng)險(xiǎn)評(píng)估。在實(shí)踐中,螺旋法技術(shù)和流程變得更為簡(jiǎn)單。迭代方法體系更傾向于按照開發(fā)/設(shè)計(jì)人員的方式工作,而不是項(xiàng)目經(jīng)理的方式。螺旋模型中存在眾多變量,并且在將來會(huì)有更大幅度的增長(zhǎng),該方法體系正良好運(yùn)作著。下表是螺旋法能夠解決的各種問題:
經(jīng)常遇到的問題 | 螺旋模型的解決方案 |
---|---|
用戶需求不夠充分 | 允許并鼓勵(lì)用戶反饋信息 |
溝通不明 | 在項(xiàng)目早期就消除嚴(yán)重的曲解 |
剛性的體系(Overwhelming architectures) | 開發(fā)首先關(guān)注重要的業(yè)務(wù)和問題 |
主觀臆斷 | 通過測(cè)試和質(zhì)量保證,作出客觀的評(píng)估 |
潛在的不一致 | 在項(xiàng)目早期就發(fā)現(xiàn)不一致問題 |
糟糕的測(cè)試和質(zhì)量保證 | 從第一次迭代就開始測(cè)試 |
采用瀑布法開發(fā) | 在早期就找出并關(guān)注風(fēng)險(xiǎn) |
2、但是,螺旋模型并不是比其他模型擁有絕對(duì)優(yōu)越,事實(shí)上,這種模型也有其自身的如下缺點(diǎn)。
1)采用螺旋模型需要具有相當(dāng)豐富的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和專門知識(shí),在風(fēng)險(xiǎn)較大的項(xiàng)目開發(fā)中,如果未能夠及時(shí)標(biāo)識(shí)風(fēng)險(xiǎn),勢(shì)必造成重大損失。
2)過多的迭代次數(shù)會(huì)增加開發(fā)成本,延遲提交時(shí)間。
3.各種軟件過程模型的特點(diǎn)[1]
不同的軟件過程模型對(duì)軟件開發(fā)過程有不同的理解和認(rèn)識(shí),支持不同的軟件項(xiàng)目和開發(fā)組織。下表對(duì)比和分析了各個(gè)軟件過程模型的特點(diǎn)及其適用的軟件項(xiàng)目類型。
各種軟件過程模型的特點(diǎn)
模型名稱 | 技術(shù)特點(diǎn) | 適用范圍 |
---|---|---|
瀑布模型 | 簡(jiǎn)單,分階段,階段間存在因果關(guān)系, 各個(gè)階段完成后都有評(píng)審,允許反饋,不支持 用戶參與,要求預(yù)先確定需求 | 需求易于完善定義且不易變更的軟件系統(tǒng) |
快速原型模型 | 不要求需求預(yù)先完備定義,支持用戶參與, 支持需求的漸進(jìn)式完善和確認(rèn),能夠適應(yīng)用戶需求的變化 | 需求復(fù)雜、難以確定、動(dòng)態(tài)變化的軟件系統(tǒng) |
增量模型 | 軟件產(chǎn)品是被增量式地一塊塊開發(fā)的, 允許開發(fā)活動(dòng)并行和重疊 | 技術(shù)風(fēng)險(xiǎn)較大、用戶需求較為穩(wěn)定的軟件系統(tǒng) |
迭代模型 | 不要求一次性地開發(fā)出完整的軟件系統(tǒng),將軟件 開發(fā)視為一個(gè)逐步獲取用廣需求、完善軟件產(chǎn)品的過程 | 需求難以確定、不斷變更的軟件系統(tǒng) |
螺旋模型 | 結(jié)合瀑布模型、快速原型模型和迭代模 型的思想,并引進(jìn)了風(fēng)險(xiǎn)分析活動(dòng) | 需求難以獲取和確定、軟件開發(fā)風(fēng)險(xiǎn)較大的軟件系統(tǒng) |
RUP | 可改造、擴(kuò)展和剪裁:可以對(duì)它進(jìn)行設(shè)計(jì)、 開發(fā)、維護(hù)和發(fā)布;強(qiáng)調(diào)迭代開發(fā) | 復(fù)雜和需求難以獲取和確定的軟件系統(tǒng); 軟件開發(fā)項(xiàng)目組擁有豐富的軟件開發(fā)和管理經(jīng)驗(yàn) |
4.螺旋模型案例分析
案例一:聯(lián)想文化的螺旋模型[2]
聯(lián)想文化的螺旋發(fā)展模型脫胎于競(jìng)爭(zhēng)性文化價(jià)值模型。在聯(lián)想文化整理的過程中,對(duì)競(jìng)爭(zhēng)性文化價(jià)值模型進(jìn)行了改進(jìn)和完善,逐漸形成了適合聯(lián)想文化的企業(yè)文化螺旋發(fā)展模型。
企業(yè)在處理外部環(huán)境適應(yīng)和內(nèi)部資源整合過程中的各種問題時(shí),一些方法由于卓有成效而受到反復(fù)強(qiáng)化和使用,逐漸被大部分成員共享而變成了企業(yè)的文化。
從本質(zhì)上看,企業(yè)文化是企業(yè)解決問題的一套基本原則,所以,分析企業(yè)的文化,首先就要從分析企業(yè)的基本矛盾人手。
管理的本質(zhì)就是協(xié)調(diào)各種矛盾,管理的過程也就是不斷地將企業(yè)中的惡性問題變?yōu)榱夹缘膯栴},將主要矛盾變?yōu)榇我?。盡管企業(yè)面臨諸多的矛盾,但企業(yè)管理至少要解決好三對(duì)基本矛盾。
競(jìng)爭(zhēng)性文化價(jià)值模型認(rèn)為:如果將“對(duì)內(nèi)一對(duì)外”、“控制一靈活”組成二個(gè)維度,在這個(gè)二維度的基礎(chǔ)上就可以派生出四個(gè)象限。如果每個(gè)象限都代表著一種文化導(dǎo)向,我們又可以把企業(yè)文化分為四個(gè)基本導(dǎo)向:目標(biāo)導(dǎo)向、規(guī)則導(dǎo)向、支持導(dǎo)向、創(chuàng)新導(dǎo)向。
“過程控制”與“靈活自主”,“外部發(fā)展”與“內(nèi)部運(yùn)營(yíng)”,對(duì)于企業(yè)來說都是必要的,它們之間的關(guān)系都是對(duì)立統(tǒng)一和相輔相成的,只是企業(yè)在不同時(shí)期對(duì)它們需要和使用的程度不同而已。每個(gè)企業(yè)的文化在同一時(shí)期存在以上四個(gè)導(dǎo)向,只是在不同歷史條件和階段下呈現(xiàn)的各個(gè)文化導(dǎo)向的強(qiáng)弱程度不同而已,并且四個(gè)導(dǎo)向都具有自己相對(duì)的關(guān)聯(lián)特征。
一般而言,企業(yè)文化在企業(yè)的不同發(fā)展階段,呈現(xiàn)出不同的導(dǎo)向,企業(yè)文化的發(fā)展都遵循著一種螺旋式上升的路徑:創(chuàng)新導(dǎo)向——目標(biāo)導(dǎo)向——規(guī)則導(dǎo)向——支持導(dǎo)向——高層次的創(chuàng)新導(dǎo)向,以此來進(jìn)行企業(yè)文化的不斷演進(jìn),推動(dòng)著企業(yè)管理一步一步地邁向更高層次,并形成螺旋式上升態(tài)勢(shì)。
企業(yè)文化螺旋發(fā)展模型為分析聯(lián)想文化確立了一個(gè)基本的框架。
從模型來看,創(chuàng)新導(dǎo)向、目標(biāo)導(dǎo)向都偏重于面向外部發(fā)展,規(guī)則導(dǎo)向和支持導(dǎo)向偏向內(nèi)部運(yùn)營(yíng)。在結(jié)合聯(lián)想的實(shí)際狀況時(shí),可以進(jìn)一步體會(huì)到這個(gè)模型的實(shí)用性:內(nèi)部運(yùn)營(yíng)當(dāng)然也需要?jiǎng)?chuàng)新導(dǎo)向和目標(biāo)導(dǎo)向,但檢驗(yàn)所有創(chuàng)新性工作及其工作目標(biāo)是否有效的根本標(biāo)準(zhǔn)在于它們是否有利于企業(yè)的外部發(fā)展,是否有利于滿足用戶的需求、保障企業(yè)的贏利。如果方向偏離,越強(qiáng)的“創(chuàng)新”,越大的“目標(biāo)”,則越危險(xiǎn)。
透過這個(gè)模型的實(shí)證分析,不僅看到了企業(yè)所有工作成效最終都要與外部發(fā)展聯(lián)系起來,而且進(jìn)一步證明:促進(jìn)企業(yè)的外部發(fā)展是衡量所有工作成效的最終標(biāo)難?!翱蛻粢庾R(shí)”和“經(jīng)營(yíng)意識(shí)”不僅證實(shí)了聯(lián)想文化符合“企業(yè)文化螺旋發(fā)展模型”,而且在模型中注人了聯(lián)想文化的特質(zhì),使聯(lián)想文化的歷史瑰寶得到傳承,也使聯(lián)想的文化個(gè)性更加鮮明。
實(shí)證分析表明:當(dāng)前的聯(lián)想文化狀態(tài)是目標(biāo)導(dǎo)向、支持導(dǎo)向較強(qiáng),而規(guī)則導(dǎo)向和創(chuàng)新導(dǎo)向較弱。導(dǎo)致聯(lián)想文化的規(guī)則導(dǎo)向較弱的原因,可能與如下兩個(gè)方面的問題有關(guān):在文化上存在著一個(gè)誤區(qū):大家通常認(rèn)為規(guī)章制度越多,企業(yè)的規(guī)則導(dǎo)向就越強(qiáng)。其實(shí)不然,規(guī)則導(dǎo)向的本意是為了減少差異性和提高效率,表現(xiàn)在員工有意識(shí)和主動(dòng)地找到做事的規(guī)律,并且能夠把規(guī)律規(guī)范化,供他人共享。
面臨著一個(gè)現(xiàn)實(shí)的問題:近年來,在較短的時(shí)間內(nèi)較多的新人進(jìn)入,公司對(duì)新人的文化輔導(dǎo)不夠。新人對(duì)聯(lián)想文化的傳承和消化需要一定的時(shí)間,他們?nèi)谌氲铰?lián)想文化之中也需要一定的過程。