項目生命周期
一個項目要交付特定的產(chǎn)品、成果和完成特定的服務(wù)。項目生命周期定義項目的開始與結(jié)束。假如一個項目交付特定的產(chǎn)品,那么該產(chǎn)品的生命期比項目生命周期更長,從該產(chǎn)品的研發(fā)(此時是項目的任務(wù)),到該產(chǎn)品投入使用(或運營),直到該產(chǎn)品的消亡就構(gòu)成了該產(chǎn)品的生命周期。許多項目與組織發(fā)展戰(zhàn)略或正在進行的工作有關(guān)。在一些組織中,一個項目只有在完成了可行性研究、初步計劃或者其他等同形式的分析之后才能正式批準。在這些案例中,初步規(guī)劃或分析可以采用獨立項目的形式。例如,在確定開發(fā)最終產(chǎn)品之前,可以將原型的開發(fā)和測試作為單獨的項目。
問題、機會或業(yè)務(wù)需求是典型的激發(fā)項目的驅(qū)動力。這些壓力的結(jié)果就導(dǎo)致管理層通常必須在尊重其他潛在項目的需要和資源要求的前提下排定當前項目申請的優(yōu)先級。
為將項目與執(zhí)行組織中的持續(xù)運營聯(lián)系起來,項目生命周期定義中也明確了在項目結(jié)束時所包括(或不包括)的移交行為。例如當一項新產(chǎn)品投入生產(chǎn)或一個新的軟件程序投入市場的時候,應(yīng)當注意將項目生命周期和產(chǎn)品生命周期區(qū)分開。例如,一個負責(zé)開發(fā)準備投入市場的新的臺式計算機的項目只是產(chǎn)品生命周期中的一部分。圖4-12插繪了這兩者的聯(lián)系。在某些應(yīng)用領(lǐng)域(例如新產(chǎn)品開發(fā)和軟件開發(fā))中,組織是將項目生命周期作為產(chǎn)品生命周期的一部分來考慮的。
1.瀑布模型
瀑布模型是一個經(jīng)典的軟件生命周期模型,也叫預(yù)測型生命周期、完全計劃驅(qū)動型
生命周期。在這個模型里,在項目生命周期的盡早時間,要確定項目范圍及交付此范圍所需的時間和成本。
在這個模型里,項目啟動時,項目團隊專注于定義產(chǎn)品和項目的總體范圍,然后制定產(chǎn)品(及相關(guān)可交付成果)交付計劃,接著通過各階段來執(zhí)行計劃。應(yīng)該仔細管理項目范圍變更。如果有新增范圍,則需要重新計劃和正式確認。
以下情況優(yōu)先選擇這種生命周期:項目需求明確、充分了解擬交付的產(chǎn)品、有厚實的行業(yè)實踐基礎(chǔ)、或者整批一次性交付產(chǎn)品有利于干系人。
例如開發(fā)一個軟件項目時,如果采用這個模型的話,一般將軟件開發(fā)分為可行性分析(計劃)、需求分析、軟件設(shè)計(概要設(shè)計、詳細設(shè)計)、編碼(含單元測試)、測試、運行維護等幾個階段,如圖4-13所示。
瀑布模型中每項開發(fā)活動具有以下特點。
(1)從上一項開發(fā)活動接受其成果作為本次活動的輸入。
(2)利用這一輸入,實施本次活動應(yīng)完成的工作內(nèi)容。
(3)給出本次活動的工作成果,作為輸出傳給下一項開發(fā)活動。
(4)對本次活動的實施工作成果進行評審。若其工作成果得到確認,則繼續(xù)進行下一項開發(fā)活動;否則返回前一項,甚至更前項的活動。盡量減少多個階段間的反復(fù)。以相對來說較小的費用來開發(fā)軟件。
2.迭代模型
在大多數(shù)傳統(tǒng)的生命周期中,階段是以其中的主要活動命名的:需求分析、設(shè)計、編碼、測試。傳統(tǒng)的軟件開發(fā)工作大部分強調(diào)過程的串行執(zhí)行,也就是一個活動需要在前一個活動完成后才開始,從而形成一個過程串,該過程串就組成了軟件項目的生命周期。在迭代模型中,每個階段都執(zhí)行一次傳統(tǒng)的、完整的串行過程串,執(zhí)行一次過程串就是一次迭代。每次迭代涉及的過程都包括不同比例的所有活動。
RUP (Rational Unified Process)軟件統(tǒng)一過程是一種“過程方法”,它就是迭代模型的一種。
RUP可以用二維坐標來描述。橫軸表示時間,是項目的生命周期,體現(xiàn)開發(fā)過程的動態(tài)結(jié)構(gòu),主要包括周期( Cycle)、階段(Phase)、迭代(Iteration)和里程碑(Milestone);縱軸表示自然的邏輯活動,體現(xiàn)開發(fā)過程的靜態(tài)結(jié)構(gòu),主要包括活動(Activity)、產(chǎn)物( Artifact)、工作者(Worker)和工作流(Workflow),如圖4-14所示。
RUP中的軟件生命周期在時間上被分解為4個順序的階段,分別是:初始階段( Inception)、細化階段(Elaboration)、構(gòu)建階段(Construction)和交付階段(Transition)。這4個階段的順序執(zhí)行就形成了一個周期。
每個階段結(jié)束于一個主要的里程碑( Major Milestone)o在每個階段的結(jié)尾執(zhí)行一次評估以確定這個階段的目標是否已經(jīng)滿足。
每個階段,從上到下迭代,亦即從核心過程工作流“商業(yè)建模”“需求調(diào)研”“分析與設(shè)計”……執(zhí)行到“部署”,再從核心支持工作流“配置與變更管理”“項目管理”執(zhí)行到“環(huán)境”完成一次迭代。根據(jù)需要,在一個階段內(nèi)部,可以完成一次到多次的迭代。各階段的主要任務(wù)如下。
(1)初始階段:系統(tǒng)地闡述項目的范圍、確定項目的邊界,選擇可行的系統(tǒng)構(gòu)架,計劃和準備商業(yè)文件。商業(yè)文件包括驗收規(guī)范、風(fēng)險評估、所需資源估計、體現(xiàn)主要里程碑日期的階段計劃。
(2)細化階段:分析問題領(lǐng)域,建立健全體系結(jié)構(gòu)并選擇構(gòu)件,編制項目計劃,淘汰項目中最高風(fēng)險的元素。同時為項目建立支持環(huán)境,包括創(chuàng)建開發(fā)案例,創(chuàng)建模板、準則并準備工具。
(3)構(gòu)建階段:完成構(gòu)件的開發(fā)并進行測試,把完成的構(gòu)件集成為產(chǎn)品,測試產(chǎn)品所有的功能。構(gòu)建階段是一個制造過程,其重點放在管理資源及控制運作以優(yōu)化成本、進度和質(zhì)量。
(4)交付階段:交付階段的目的是將軟件產(chǎn)品交付給用戶群體。當本次開發(fā)的產(chǎn)品成熟得足夠發(fā)布到最終用戶時,就進入了交付階段。
交付階段的重點是確保軟件對最終用戶是可用的。交付階段可以跨越幾次迭代,包括為發(fā)布做準備的產(chǎn)品測試,基于用戶反饋的少量的調(diào)整。
軟件產(chǎn)品交付給用戶使用一段時間后,如有新的需求則該開始另一個開發(fā)周期,就開始下一個的“初始、細化、構(gòu)建和交付,,周期。
以下。隋況優(yōu)先選擇迭代和增量型生命周期:組織需要管理不斷變化的目標和范圍,組織需要降低項目的復(fù)雜性,或者,產(chǎn)品的部分交付有利于一個或多個干泵人,且不會影響最終或整批可交付成果的交付。
大型復(fù)雜項日通常采用迭代方式來實施,這使項目團隊可以在迭代過程中綜合考慮反饋意見和經(jīng)驗教訓(xùn),從而降低項目風(fēng)險。
3.敏捷方法
什么是敏捷方法?是一種以人為核心、迭代、循序漸進的開發(fā)方法,適用于一開始并沒有或不能完整地確定出需求和范圍的項目,或者需要應(yīng)對快速變化的環(huán)境,或者需求和范圍難以事先確定,或者能夠以有利于干系人的方式定義較小的增量改進。
敏捷方法,也叫適應(yīng)型生命周期、或者變更驅(qū)動方法。
在軟件項目的敏捷開發(fā)中,軟件項目的構(gòu)建被切分成多個子項目,各個子項目的成果都經(jīng)過測試,具備集成和可運行的特征。簡言之,就是把一個大項目分為多個相互聯(lián)系,但也可獨立運行的小項目,并分別完成,在此過程中軟件一直處于可使用狀態(tài)。
敏捷方法的目的在于應(yīng)對大量變更,獲取干系人的持續(xù)參與。敏捷方法里迭代很快(通常2~4劇迭代1次),而且所需時間和資源是固定的。雖然早期的迭代更多地聚焦于H。劃活動,但通常在每次迭代中都會執(zhí)行多個過程。
以前,很多軟件項目經(jīng)理在學(xué)習(xí)項目管理時,一方面陶醉于其清晰的過程流程,但同時又閑惑于它與自己的實際工作的差異。例如在開發(fā)軟件產(chǎn)品時,一開始并沒有或不能完整地確定出需求和范圍,而是首先實現(xiàn)一個可以運行的大概的軟件,然后和客戶進一步地不斷溝通探討,不斷修改甚至重構(gòu),“邊設(shè)計、邊建設(shè)”,小步快跑,并最終實壩客戶需求。
所以說,實際工作中的項目可能有兩類比較極端:一類就好比是建設(shè)奧運場館,它是大型的、相對固定或變更較少的、需要“集團軍”來完成的;另一類就好比是建設(shè)一個SNS交友網(wǎng)站,開發(fā)一個桌面應(yīng)用軟件,或設(shè)計一款時尚手機,它們是小型的、不甚確定或變更很多的、需要“特種部隊”來完成的。
相應(yīng)的,項目階段之間的關(guān)系大致有三類:順序、重疊,以及迭代。對于奧運場館,階段間的關(guān)系一般是順序的:設(shè)計、采購、施工、驗收及交付。而對于軟件項目而言,很可能采用的是迭代關(guān)系:需求分析一設(shè)計及編程一得到部分可交付成果,然后再這樣進行下一輪,即把軟件的整個需求分析和設(shè)計編程都分散開來到每個階段,每次只實現(xiàn)一部分可交付成果,盡早得和客戶溝通、分析、調(diào)整,以滿足最終的要求。對后者而言,如果…開始就消耗很多的資源、時間、花費在前期工作比如設(shè)計上,到中后期卻發(fā)現(xiàn)并不適合客戶的需求,這樣的風(fēng)險和變更所造成的代價是非常大的。
4.V模型
首先,看V模型的圖示,V模型如圖4-15所示。
V模型的左邊下降的是開發(fā)過程各階段,與此相對應(yīng)的是右邊上升的部分,即各測試過程的各個階段。在不同的組織中對測試階段的命名可能有所不同。
在模型圖中的開發(fā)階段一側(cè),先從定義業(yè)務(wù)需求、需求確認或測試計劃開始,然后要把這些需求轉(zhuǎn)換到概要設(shè)計、概要設(shè)計的驗證及測試計劃,從概要設(shè)計進一步分解到詳細設(shè)計、詳細設(shè)計的驗證及測試計劃,最后進行開發(fā),得到程序代碼和代碼測試計劃。接著就是測試執(zhí)行階段一側(cè),執(zhí)行先從單元測試開始,然后是集成測試、系統(tǒng)測試和驗收測試。
V模型的價值在于它非常明確地標明了測試過程中存在的不同級別,并且清楚地描述了這些測試階段和開發(fā)各階段的對應(yīng)關(guān)系。
(1)單元測試的主要目的是針對編碼過程中可能存在的各種錯誤,例如用戶輸入驗證過程中的邊界值的錯誤。
(2)集成測試主要目的是針對詳細設(shè)計中可能存在的問題,尤其是檢查各單元與其他程序部分之間的接口上可能存在的錯誤。
(3)系統(tǒng)測試主要針對概要設(shè)計,檢查系統(tǒng)作為一個整體是否有效地得到運行,例如在產(chǎn)品設(shè)置中是否能達到預(yù)期的高性能。
(4)驗收測試通常由業(yè)務(wù)專家或用戶進行,以確認產(chǎn)品能真正符合用戶業(yè)務(wù)上的需要。
在不同的開發(fā)階段,會出現(xiàn)不同類型的缺陷和錯誤,所以需要不同的測試技術(shù)和方法來發(fā)現(xiàn)這些缺陷。
5.原型化模型
原型化模型是為彌補瀑布模型的不足而產(chǎn)生的。
原型化模型的第一步是建造一個快速原型,實現(xiàn)客戶或未來的用戶與系統(tǒng)的交互,經(jīng)過和用戶針對原型的討論和交流,弄清需求以便真正把握用戶需要的軟件產(chǎn)品是什么樣子的。充分了解后,再在原型基礎(chǔ)上開發(fā)出用戶滿意的產(chǎn)品。在實際中原型化經(jīng)常在需求分析定義的過程進行。原型化模型減少了瀑布模型中因為軟件需求不明確而給開發(fā)工作帶來的風(fēng)險,因為在原型基礎(chǔ)上的溝通更為直觀,也為需求分析和定義,提供了新的方法。原型化模型的應(yīng)用意義很廣,瀑布和V模型將原型化模型的思想用于需求分析環(huán)節(jié),來解決因為需求不明確而導(dǎo)致產(chǎn)品出現(xiàn)嚴重后果的缺陷。
對于復(fù)雜的大型軟件,開發(fā)一個原型往往達不到要求,為減少開發(fā)風(fēng)險,在瀑布模型和原型化模型的基礎(chǔ)上的演進,出現(xiàn)了螺旋模型以及大量使用的RUP。
6.螺旋模型
螺旋模型是一個演化軟件過程模型,將原型實現(xiàn)的迭代特征與線性順序(瀑布)模型中控制的和系統(tǒng)化的方面結(jié)合起來。使得軟件的增量版本的快速開發(fā)成為可能。在螺旋模型中,軟件開發(fā)是一系列的增量發(fā)布。在早期的迭代中,發(fā)布的增量可能是一個紙上的模型或原型;在以后的迭代中,被開發(fā)系統(tǒng)的更加完善的版本逐涉產(chǎn)生。螺旋模型的整個開發(fā)過程如圖4-16所示。
圖4-16中的螺旋線代表隨著時間推進的工作進展;開發(fā)過程具有周期性重復(fù)的螺旋線形狀。4個象限分別標志每個周期所劃分的4個階段:制定計劃、風(fēng)險分析、實施工程和客戶評估。螺旋模型強調(diào)了風(fēng)險分析,特別適用于龐大而復(fù)雜的、高風(fēng)險的系統(tǒng)。
掃碼關(guān)注公眾號
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,信管網(wǎng)網(wǎng)站提供的以上信息僅供參考,如有異議,請以權(quán)威部門公布的內(nèi)容為準!
信管網(wǎng)致力于為廣大信管從業(yè)人員、愛好者、大學(xué)生提供專業(yè)、高質(zhì)量的課程和服務(wù),解決其考試證書、技能提升和就業(yè)的需求。
信管網(wǎng)軟考課程由信管網(wǎng)依托10年專業(yè)軟考教研傾力打造,官方教材參編作者和資深講師坐鎮(zhèn),通過深研歷年考試出題規(guī)律與考試大綱,深挖核心知識與高頻考點,為學(xué)員考試保駕護航。面授、直播&錄播,多種班型靈活學(xué)習(xí),滿足不同學(xué)員考證需求,降低課程學(xué)習(xí)難度,使學(xué)習(xí)效果事半功倍。
相關(guān)內(nèi)容