135 2295 6919
135 2295 6919
公司主站W(wǎng)ebsite:
www.controlmeasurement.com
電子郵箱:
qykh2009@163.com
公司地址:
北京市朝陽區(qū)亞運(yùn)村天創(chuàng)世緣B2座30整層
Software 軟件百科
類別:軟件開發(fā)訪問量:1872編輯:admin 日期:2024-11-01 20:58:00
隨著用戶需求的多樣化,軟件系統(tǒng)開始越來越復(fù)雜了,而復(fù)雜性帶來的結(jié)果是軟件開發(fā)管理越來越困難。然而,許多軟件開發(fā)團(tuán)隊(duì)卻沒有適時地改變其管理模式。因此,越來越多的軟件開發(fā)項(xiàng)目呈現(xiàn)出管理失控和混亂的跡象,軟件開發(fā)的整個生命周期已經(jīng)越來越成為人們關(guān)注的焦點(diǎn)。
為什么軟件開發(fā)項(xiàng)目的管理是這么困難呢?原因在于許多軟件開發(fā)團(tuán)隊(duì)沒有選擇合適的管理工具。一般來說,在軟件開發(fā)過程中會有許多不確定的、經(jīng)常變化的因素,如果在軟件開發(fā)過程中缺乏合適的管理工具,這將會導(dǎo)致開發(fā)人員無法統(tǒng)一開發(fā)行為和思路。例如,在實(shí)現(xiàn)項(xiàng)目的各階段和各種角色(架構(gòu)師、項(xiàng)目經(jīng)理、開發(fā)人員、測試人員等)的方法和思路并不一致,不但會對設(shè)計、質(zhì)量、代碼管理和部署產(chǎn)生負(fù)面影響,而且還會導(dǎo)致開發(fā)成本增加。
那么,我們應(yīng)該怎樣管理好軟件開發(fā)的各種因素呢?就像教科書上經(jīng)常所說的一樣,如果我們能夠很好的管理軟件生命周期每一個階段的質(zhì)量,也就很好的管理了整個軟件開發(fā)的整個過程。因此,如何最大程度地管理好開發(fā)過程成為目前業(yè)界討論的焦點(diǎn)。本文介紹了在軟件開發(fā)過程中一種常用的管理工具:軟件生命周期模式,以及其概念和選擇方法。
什么是軟件開發(fā)生命周期模式?
軟件開發(fā)工作本身是需要一個周期來完成的,而在周期的內(nèi)部則包含了很多因素。一個因素的不穩(wěn)定,在周期推移的過程中都很可能會造成類似生物學(xué)領(lǐng)域的蝴蝶效應(yīng)----非洲的一只蝴蝶扇動翅膀可能會造成美洲大陸的一場龍卷風(fēng)。這說明每一個事情都可能會對其它的事情產(chǎn)生連鎖反應(yīng)。因此,任何軟件開發(fā)項(xiàng)目都必須進(jìn)行適當(dāng)?shù)慕M織和管理,然后才能按預(yù)期計劃成功地執(zhí)行項(xiàng)目。也說是說,規(guī)劃良好的軟件開發(fā)生命周期將能夠?qū)崿F(xiàn)在更短的開發(fā)周期內(nèi)構(gòu)建軟件的愿景。
(1)什么是軟件開發(fā)生命周期?
同任何事物一樣,一個軟件產(chǎn)品或軟件系統(tǒng)也要經(jīng)歷孕育、誕生、成長、成熟、衰亡等階段,這一般稱為軟件生命周期。軟件開發(fā)生命周期(SDLC)是指軟件開發(fā)的全部過程、活動和任務(wù)的結(jié)構(gòu)框架。許多軟件開發(fā)工具廠商都提出過各種軟件生命周期方法論,它們有人將SDLC解釋為一組步驟或者里程標(biāo)(Milestone)。但無論是誰的解釋,SDLC的一般步驟包括:確定問題、可行性分析與開發(fā)計劃、收集需求、分析與設(shè)計、編碼開發(fā)、測試、安裝、維護(hù)。
生命周期法也稱結(jié)構(gòu)化系統(tǒng)開發(fā)方法,是目前國內(nèi)外較流行的軟件系統(tǒng)開發(fā)方法。尤其在開發(fā)復(fù)雜的大系統(tǒng)時,顯示出無比的優(yōu)越性。它的基本思想是:將軟件工程學(xué)和系統(tǒng)工程的理論和方法引入到軟件系統(tǒng)的開發(fā)中,按照用戶至上的原則,采用結(jié)構(gòu)化、模塊化自頂向下對系統(tǒng)進(jìn)行分析和設(shè)計。具體的說,是通過把整個軟件生命周期劃分為若干階段,使得每個階段有明確的任務(wù),使規(guī)模大、結(jié)構(gòu)復(fù)雜和管理復(fù)雜的軟件開發(fā)變的容易控制和管理。它的優(yōu)點(diǎn)是強(qiáng)調(diào)系統(tǒng)開發(fā)過程的整體性和全局性,強(qiáng)調(diào)在整體優(yōu)化的前提下考慮具體的分析設(shè)計問題,即自頂向下的觀點(diǎn)。它從時間角度把軟件開發(fā)和維護(hù)分解為若干階段,每個階段有各自相對獨(dú)立的任務(wù)和目標(biāo),從而降低了系統(tǒng)開發(fā)的復(fù)雜性,提高了可操作性。
(2)軟件生命周期模式
對于不同的軟件系統(tǒng),可以采用不同的開發(fā)方法、以及運(yùn)用不同的管理方法和手段。實(shí)際上,軟件生命周期法在開始的時候只是一個概念。因此,在應(yīng)用軟件開發(fā)生命周期法時,許多開發(fā)團(tuán)隊(duì)會把這一個概念進(jìn)行工具化,這一個工具化就是軟件開發(fā)生命周期模式。通過軟件開發(fā)生命周期模式,我們能清晰、直觀地看到軟件開發(fā)的全過程。
在過去的10年中,軟件生命周期模式及其許多變體獲得了廣泛的認(rèn)可。在各種軟件開發(fā)方法和過程改進(jìn)模式中的技術(shù)革新也得到了承認(rèn),如Rational Unified Process(RUP)、Capability Maturity Model(CMM)、ISO 9000-3 等。典型的幾種生命周期模式包括:瀑布模式、演化模式、螺旋模式、快速原型模式、噴泉模式和混合模式等。在這里只介紹其中最常用的幾種模式:
①瀑布模式:它首先是由Royce提出,該模式由于酷似瀑布聞名。在該模式中首先確定需求,然后擬定規(guī)格說明,在通過驗(yàn)證后方可進(jìn)入計劃階段。因此,瀑布模式中至關(guān)重要的一點(diǎn)是只有當(dāng)一個階段的文檔獲得認(rèn)可才可以進(jìn)入下一個階段。瀑布模式通過強(qiáng)制性規(guī)約來確保每個階段都能很好的完成任務(wù),但是實(shí)際上卻往往難以辦到。因?yàn)檎麄€瀑布模式幾乎都是以文檔驅(qū)動的,這對于非專業(yè)的用戶來說是難以閱讀和理解的。雖然瀑布模式有很多很好的思想可以借鑒,但是在過程能力上有天生的缺陷。
②演化模式:它主要是針對事先不能完整定義需求的軟件開發(fā)。它的方法是用戶先給出待開發(fā)系統(tǒng)的核心需求,并且在核心需求實(shí)現(xiàn)后,再提出反饋以支持系統(tǒng)的最終設(shè)計和實(shí)現(xiàn)。也就是說:開發(fā)人員首先會根據(jù)用戶的需求開發(fā)核心系統(tǒng),然后提供給用戶試用;用戶試用后再提出增強(qiáng)系統(tǒng)能力的需求;最后開發(fā)人員再根據(jù)用戶的反饋,實(shí)施迭代開發(fā)。實(shí)際上,這個模式可看作是重復(fù)執(zhí)行的多個瀑布模式。演化模式要求開發(fā)人員把項(xiàng)目的產(chǎn)品需求分解為不同組,以便分批循環(huán)開發(fā)。但這種分組并不是隨意性的,而是要根據(jù)功能的重要性及對總體設(shè)計的基礎(chǔ)結(jié)構(gòu)的影響而作出判斷。
③螺旋模式:它是瀑布模式與演化模式相結(jié)合,并加入兩者所忽略的風(fēng)險分析所建立的一種軟件開發(fā)模式。螺旋模式基本的做法是在瀑布模式的每一個開發(fā)階段之前,引入非常嚴(yán)格的風(fēng)險識別、風(fēng)險分析和風(fēng)險控制。直到采取了消除風(fēng)險的措施之后,才開始計劃下一階段的開發(fā)工作。否則,項(xiàng)目就很可能被暫停。另外,如果有充足的把握判斷遺留的風(fēng)險已降低到一定的程度,項(xiàng)目管理人員還可作出決定讓余下的開發(fā)工作采用另外的生命周期模式,如演化模式,瀑布模式或自定的混合模式。
④過程開發(fā)模式:它又叫混合模式或元模式,是指把幾種不同模式組合成一種混合模式,它允許一個項(xiàng)目能沿著最有效的路徑發(fā)展。因?yàn)樯鲜龅哪J街卸加凶约邯?dú)特的思想,現(xiàn)在的軟件開發(fā)團(tuán)隊(duì)中很少說標(biāo)準(zhǔn)的采用那一種模式的,因?yàn)槟J胶蛯?shí)際應(yīng)用還是有很大的區(qū)別的。實(shí)際上,許多軟件開發(fā)團(tuán)隊(duì)都是在使用幾種不同的開發(fā)方法組成他們自己的混合模式。
最后,我們來總結(jié)一下。螺旋模式是典型的迭代式生命周期模式,而RUP則是近代迭代式生命周期的代表。與螺旋模式相比,RUP將風(fēng)險管理放在更重要的地位。最新的迭代式生命周期模式的代表是模式驅(qū)動架構(gòu)(MDA)和敏捷(Agile)軟件開發(fā)。MDA模式是基于可執(zhí)行規(guī)格說明的思想,是現(xiàn)代轉(zhuǎn)換模式的代表,其核心技術(shù)是組件技術(shù)。而敏捷開發(fā)生命周期的典型代表是XP編程,是把傳統(tǒng)的系統(tǒng)設(shè)計和實(shí)現(xiàn)由敏捷軟件開發(fā)過程中的驗(yàn)收測試、重構(gòu)和測試驅(qū)動所取代;把傳統(tǒng)的集成和部署由敏捷軟件開發(fā)中的持續(xù)集成和短周期所取代。
其實(shí)上,無論是瀑布開發(fā)模式還是螺旋開發(fā)模式,軟件生命周期模式的發(fā)展實(shí)際上是體現(xiàn)了軟件工程理論的發(fā)展。在最早的時候,軟件的生命周期處于無序、混亂的情況。一些人為了能夠管理和控制軟件的開發(fā)過程,就把軟件開發(fā)嚴(yán)格的區(qū)分為多個不同的階段,并在階段間加上嚴(yán)格的審查,這就是軟件開發(fā)模式產(chǎn)生的起因。它們體現(xiàn)了人們對軟件過程的一個希望:嚴(yán)格控制、確保質(zhì)量。
如何選擇合適的生命周期模式?
眾所周知,在軟件開發(fā)過程中如果缺乏適當(dāng)?shù)墓芾?,最終開發(fā)出來的軟件產(chǎn)品質(zhì)量是難以保證的。那么,在軟件開發(fā)管理過程中,應(yīng)該如何選擇合適的軟件開發(fā)生命模式工具呢?建議可參考以下幾個步驟:
(1)評估軟件開發(fā)范圍和需求
當(dāng)軟件所有參與人員都能理解軟件開發(fā)的范圍和需求時,就能為軟件開發(fā)可能遇到的突發(fā)事情和未來變化建立一個技術(shù)基線。這個技術(shù)基線、基礎(chǔ)規(guī)則和假設(shè)應(yīng)該包含識別和評估軟件的功能性。一般來說,在前期需求明確的情況下可盡量采用瀑布模式或改進(jìn)型的瀑布模式。而在不確定性因素很多時或很多需求無法計劃的情況下,應(yīng)該盡量采用增量迭代模式或螺旋模式。
(2)確定軟件開發(fā)規(guī)模和階段劃分
確定軟件的開發(fā)規(guī)模是決定開發(fā)管理工具的重要一步,也是最為關(guān)鍵的步驟。因?yàn)榇_定開發(fā)規(guī)模和階段劃分是明確軟件開發(fā)生命周期的驅(qū)動動力,它可用來約束在開發(fā)過程中所采用的行動和資源,以及限制可以提供的選項(xiàng)。例如,對于規(guī)模小的建議采用瀑布模式;而在資金和成本無法一次到位情況下可以采用增量模式;而對于完全多個獨(dú)立功能的開發(fā)可以在需求階段就分功能并行,但每個功能內(nèi)可以遵循瀑布模式原則;而其他項(xiàng)目一般可采用迭代模式。
(3)選擇合適的軟件生命周期模式
一個定義良好的軟件生命周期模式,可以很好的指導(dǎo)我們的開發(fā)工作,使漫長的開發(fā)工作易于控制。事實(shí)上,我們也可以任意定義自己喜歡的軟件生命周期模式。但是,如果生命周期模式定義不合理,卻會制約我們的開發(fā)過程。因此,選擇一個軟件開發(fā)模式不應(yīng)當(dāng)將其作為一次性的活動來考慮。因?yàn)殡S著開發(fā)項(xiàng)目的進(jìn)展,未知內(nèi)容會逐漸變?yōu)橐阎獌?nèi)容,并且新的和意料之外的問題和風(fēng)險都會隨之出現(xiàn)。所以,選擇開發(fā)模式應(yīng)該要根據(jù)實(shí)際情況來進(jìn)行,然后在此基礎(chǔ)上再加以裁減以作出適當(dāng)?shù)男薷暮透牧肌?/span>
(4)跟蹤和度量開發(fā)模式的效率
在軟件開發(fā)模式選定后,應(yīng)該要定時跟蹤和度量開發(fā)模式的效率。例如,記錄那些相關(guān)的信息和得到的經(jīng)驗(yàn)教訓(xùn)。通過這樣做的目的是為了記錄一個"最佳開發(fā)模式"的選擇過程,以獲得選擇開發(fā)模式的經(jīng)驗(yàn)性。因此,跟蹤信息應(yīng)當(dāng)被不斷的收集起來,并且同原始模式和基線進(jìn)行比較。如果執(zhí)行情況出現(xiàn)效率低下或者明顯的不同,那么校正開發(fā)模式就應(yīng)當(dāng)被考慮進(jìn)來并加以實(shí)施,從而將項(xiàng)目開發(fā)拉回到正確的軌道上來。
來源:北京乾元坤和,北京軟件開發(fā)公司,北京網(wǎng)站建設(shè)公司,OA系統(tǒng)開發(fā),ERP系統(tǒng)開發(fā) ,CRM系統(tǒng)制作 QQ號:2725110947 聯(lián)系電話:010-51246210 ; 15699913471
【上一條】 重慶隧道裝設(shè)備放勁爆音樂
【下一條】 沒有下一條