軟件開發(fā)模式教學(xué)課件_第1頁
軟件開發(fā)模式教學(xué)課件_第2頁
軟件開發(fā)模式教學(xué)課件_第3頁
軟件開發(fā)模式教學(xué)課件_第4頁
軟件開發(fā)模式教學(xué)課件_第5頁
已閱讀5頁,還剩113頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

軟件開發(fā)模式軟件開發(fā)模式教學(xué)課件1內(nèi)容大綱導(dǎo)論編碼與修正模式階段模式瀑布模式漸增模式原型模式螺旋模式同步模式RUP模式第四代技術(shù)快速應(yīng)用軟體開發(fā)結(jié)論內(nèi)容大綱導(dǎo)論2導(dǎo)論「軟件開發(fā)模式」是描述軟件開發(fā)過程的一系列步驟及其執(zhí)行程序。開發(fā)的過程依循系統(tǒng)化、邏輯化的步驟進(jìn)行時(shí),將有利于標(biāo)準(zhǔn)、規(guī)范與政策之推行和建立,而且開發(fā)過程將更有效率,更能確保品質(zhì)量,也更容易管理。不同的開發(fā)模式,選用于不同情況的系統(tǒng)開發(fā)。導(dǎo)論「軟件開發(fā)模式」是描述軟件開發(fā)過程的一系列步驟及其執(zhí)行程3軟件開發(fā)模式編碼與修正模式階段模式瀑布模式漸增模式雛型模式螺旋模式同步模式RUP模式軟件開發(fā)模式編碼與修正模式4各種開發(fā)模式之演進(jìn)各種開發(fā)模式之演進(jìn)5編碼與修正模式無方法論可言,主要包含兩個(gè)步驟:先寫部分程序,再修正程序中之問題。

編碼與修正模式無方法論可言,主要包含兩個(gè)步驟:6編碼與修正模式(c.2)主要之問題:過程中沒有規(guī)劃(plan)、分析及設(shè)計(jì),故經(jīng)過幾次修正之后,程序代碼的邏輯變得難以理解。無使用者需求分析與確認(rèn),軟件雖設(shè)計(jì)得很好,但可能并不符合使用者的需求。編碼與修正模式(c.2)主要之問題:7階段模式具有方法論之雛型。

改善了編碼與修正模式之問題,強(qiáng)調(diào)系統(tǒng)開發(fā)前要有規(guī)劃(plan),程序編碼(coding)前要有分析與設(shè)計(jì),系統(tǒng)上線前要有測試(testing)等。階段模式具有方法論之雛型。8階段模式(c.2)階段模式(c.2)9階段模式(c.3)雖已改善了編碼與修正模式之問題,但使用上仍衍生以下之問題:不論系統(tǒng)之大小或復(fù)雜程度均需經(jīng)歷八階段,各階段之進(jìn)行是循序的且階段間沒有回饋,各階段均需考慮完整的系統(tǒng)范圍,不可僅考慮部份系統(tǒng),假設(shè)使用者需求可完整且清楚的描述。

階段模式(c.3)雖已改善了編碼與修正模式之問題,但使用上10瀑布模式開發(fā)的過程分成幾個(gè)階段,且劃分上較有彈性。每個(gè)階段清楚定義要做那些工作及交付那些文件,使系統(tǒng)開發(fā)之工作更明確及容易掌握??稍试S階段間之回饋,若在各階段發(fā)現(xiàn)錯(cuò)誤,能盡早修正以減少系統(tǒng)修改或重做之成本。各階段循序的執(zhí)行且僅循環(huán)一次。瀑布模式開發(fā)的過程分成幾個(gè)階段,且劃分上較有彈性。11瀑布模式(c.2)當(dāng)系統(tǒng)較小或較單純,劃分的階段可能少至三個(gè),例如分析、設(shè)計(jì)、實(shí)作(Implementation)等階段。瀑布模式(c.2)當(dāng)系統(tǒng)較小或較單純,劃分的階段可能少至三12瀑布模式(c.3)分析實(shí)作設(shè)計(jì)瀑布模式(c.3)分析實(shí)作設(shè)計(jì)13瀑布模式(c.4)若面對(duì)較大或復(fù)雜之系統(tǒng)時(shí),其階段可再被細(xì)分成更多個(gè)階段:瀑布模式(c.4)若面對(duì)較大或復(fù)雜之系統(tǒng)時(shí),其階段可再被細(xì)14瀑布模式(c.5)瀑布模式(c.5)15瀑布模式(c.6)瀑布模式的一些問題:假設(shè)在項(xiàng)目開始時(shí),需求可完整且清楚描述,所有需求在各階段均需同時(shí)考慮,且系統(tǒng)開發(fā)在一個(gè)周期內(nèi)完成,在程序編輯前過于強(qiáng)調(diào)完整的分析與設(shè)計(jì)文件,故一但需求變更,文件需大幅修改,程序編輯于系統(tǒng)開發(fā)周期之后段才開始,故風(fēng)險(xiǎn)較高,且失敗之成本亦較高,瀑布模式(c.6)瀑布模式的一些問題:16瀑布模式(c.7)(5)系統(tǒng)開發(fā)周期較長且過程中使用者參與不足。明確的、完整的需求最終系統(tǒng)使用者使用者瀑布模式(c.7)(5)系統(tǒng)開發(fā)周期較長且過程中使用者參與17漸增模式把需求分成幾個(gè)部分,然后將每個(gè)部分的需求之開發(fā)訂為一個(gè)開發(fā)周期,每個(gè)周期可依序或平行開發(fā)。每個(gè)周期之階段清楚定義要做那些工作及交付那些文件,每個(gè)周期內(nèi),各階段循序進(jìn)行且僅循環(huán)一次。漸增模式把需求分成幾個(gè)部分,然后將每個(gè)部分的需求之開發(fā)訂為一18漸增模式(c.2)漸增模式(c.2)19漸增模式(c.3)特色:系統(tǒng)被分成幾個(gè)子系統(tǒng)或功能,各子系統(tǒng)可獨(dú)立依序或平行開發(fā)。系統(tǒng)開發(fā)可由多個(gè)周期完成,每個(gè)周期均有分析設(shè)計(jì)、程序編輯及測試,每個(gè)周期完成不同版本之系統(tǒng)。使用者參與程度高,每個(gè)周期均參與,故相較于瀑布模式,漸增模式之風(fēng)險(xiǎn)較低。

漸增模式(c.3)特色:20漸增模式(c.4)漸增模式適用之情況:(1)目標(biāo)與需求可完全與清楚描述。(2)預(yù)算需分期編列。(3)需要時(shí)間來熟悉和接受新科技。漸增模式(c.4)漸增模式適用之情況:21雛型模式此方法先針對(duì)使用者需求較清楚的部分或信息人員較能掌握之部份,依分析、設(shè)計(jì)與實(shí)施等步驟快速進(jìn)行雛型系統(tǒng)開發(fā)。過程中,強(qiáng)調(diào)盡早以雛型系統(tǒng)做為使用者與信息人員需求溝通與學(xué)習(xí)之工具,雙方透過雛型之操作與回饋,以厘清、修改及擴(kuò)充需求,并藉以修改與擴(kuò)充雛型系統(tǒng)。上述步驟反復(fù)進(jìn)行,直到系統(tǒng)符合雙方約定為止。雛型系統(tǒng)有時(shí)是一個(gè):只有使用者界面,而沒有核心部分的軟件。雛型模式此方法先針對(duì)使用者需求較清楚的部分或信息人員較能掌握22雛型模式(c.2)雛型模式(c.2)23雛型模式(c.3)主要特性與原則:強(qiáng)調(diào)雛型之盡早開發(fā)及使用者高度的參與。強(qiáng)調(diào)以雛型作為使用者及系統(tǒng)開發(fā)者之需求溝通與學(xué)習(xí)機(jī)制。從需求最清楚部分著手開發(fā)雛型,并透過使用者對(duì)雛型之操作與回饋,反復(fù)修改與擴(kuò)充,每次反復(fù)之周期要盡可能縮短。雛型模式(c.3)主要特性與原則:24雛型模式(c.4)其它適用情形:當(dāng)無法立即獲得解決問題的方法。當(dāng)軟/硬件之技術(shù)與支持不確定。雛型模式(c.4)其它適用情形:25雛型模式(c.5)雛型模式的潛在問題:系統(tǒng)文件較不完備,程序亦較難維護(hù)。短期可能較能滿足使用者需求,但長期而言系統(tǒng)較易失敗。因缺乏整體之規(guī)劃、分析與設(shè)計(jì),故較不適合于大型及多人參與之系統(tǒng)開發(fā)項(xiàng)目。雛型模式(c.5)雛型模式的潛在問題:26雛型模式(c.6)有兩種常見之應(yīng)用策略:演進(jìn)式雛型(EvolutionaryPrototyping)

用后丟棄雛型(RapidThrowawayPrototyping)

雛型模式(c.6)有兩種常見之應(yīng)用策略:27演進(jìn)式雛型策略(c.7)將所有需求看成一個(gè)整體,從需求最清楚的部分快速的經(jīng)歷一開發(fā)周期,以完成初版雛型系統(tǒng),再利用該雛型與使用者溝通以確定、修改和擴(kuò)充需求,并藉以做為下一周期雛型演進(jìn)之依據(jù),該周期不斷的反復(fù)進(jìn)行,一直到雛型系統(tǒng)符合雙方約定為止。

演進(jìn)式雛型策略(c.7)將所有需求看成一個(gè)整體,從需求最清楚28演進(jìn)式雛型策略(c.8)演進(jìn)式雛型策略(c.8)29用后丟棄式雛型策略(c.9)以一種快而粗糙(QuickandDirty)的方式建立雛型,以促使使用者能夠盡快藉由與雛型之互動(dòng)來決定需求項(xiàng)目,或信息人員藉以研發(fā)問題之解決方法與信息科技之應(yīng)用。應(yīng)用該策略開發(fā)之雛型,不需考慮系統(tǒng)之運(yùn)用效率、可維護(hù)性與容錯(cuò)能力等。

用后丟棄式雛型策略(c.9)以一種快而粗糙(Quickan30用后丟棄式雛型策略(c.10)雛型丟棄之原因,如開發(fā)工具不同,操作系統(tǒng)不兼容,設(shè)計(jì)方法不兼容,…用后丟棄式雛型策略(c.10)雛型丟棄之原因,如31用后丟棄式雛型策略(c.11)僅實(shí)施在風(fēng)險(xiǎn)程度最高的地方,例如需求或解決問題之知識(shí)、概念與信息科技整合最不清楚的情況。因?yàn)殡r型之丟棄也意味著成本的浪費(fèi)。其它情況則盡可能的采用演進(jìn)式雛型策略。用后丟棄式雛型策略(c.11)僅實(shí)施在風(fēng)險(xiǎn)程度最高的地方,例32螺旋模式導(dǎo)入項(xiàng)目管理的概念與方法,為一風(fēng)險(xiǎn)導(dǎo)向的模式。由三個(gè)步驟形成一周期:(1)找出系統(tǒng)的目標(biāo)、可行之實(shí)施方案與限制。(2)依目標(biāo)與限制評(píng)估方案,解決風(fēng)險(xiǎn)。(3)并由剩下之相關(guān)風(fēng)險(xiǎn),決定該步驟該如何進(jìn)行。此周期反復(fù)進(jìn)行,直到系統(tǒng)開發(fā)完成為止。螺旋模式導(dǎo)入項(xiàng)目管理的概念與方法,為一風(fēng)險(xiǎn)導(dǎo)向的模式。33螺旋模式(c.2)螺旋模式(c.2)34螺旋模式(c.3)步驟一、找出系統(tǒng)的目標(biāo)、可行之實(shí)施方案與限制(1)找出系統(tǒng)的目標(biāo)系統(tǒng)目標(biāo)之評(píng)核因素很多,例如系統(tǒng)的績效、功能與容忍改變之能力等。(2)找出系統(tǒng)之實(shí)施方案系統(tǒng)實(shí)施方案會(huì)因問題而異,例如找出之方案有設(shè)計(jì)A、設(shè)計(jì)B、重用、購買等。(3)實(shí)施方案之限制實(shí)施方案之限制可能為項(xiàng)目之成本、時(shí)程、系統(tǒng)接口等。

螺旋模式(c.3)步驟一、找出系統(tǒng)的目標(biāo)、可行之實(shí)施方案與35螺旋模式(c.4)步驟二、依目標(biāo)與限制評(píng)估方案,解決風(fēng)險(xiǎn)主要是找出各方案之不確定處,并設(shè)法解決,其步驟如下:(1)找出項(xiàng)目風(fēng)險(xiǎn)之重要來源。(2)解決風(fēng)險(xiǎn)來源:可用雛型、模擬、標(biāo)竿(Benchmarking)、參考點(diǎn)檢查(ReferenceChecking)、問卷、分析模式、上述之綜合或其它技術(shù)以解決風(fēng)險(xiǎn)。螺旋模式(c.4)步驟二、依目標(biāo)與限制評(píng)估方案,解決風(fēng)險(xiǎn)36螺旋模式(c.5)步驟三、由剩下之風(fēng)險(xiǎn)決定該步驟若系統(tǒng)的績效或使用者接口風(fēng)險(xiǎn)將強(qiáng)力影響程序開發(fā)或內(nèi)部接口控制,則此步驟可能是采取演進(jìn)式雛型。若該雛型使用性佳且夠強(qiáng)韌(Robust),足以當(dāng)做未來系統(tǒng)發(fā)展之基礎(chǔ),則往后將是一系列的雛型演進(jìn)。假如先前之雛型努力已解決了所有的績效或使用者接口之風(fēng)險(xiǎn),則此一步將遵循基本的瀑布模式,亦可適當(dāng)?shù)男揎椧哉蠞u增模式。

螺旋模式(c.5)步驟三、由剩下之風(fēng)險(xiǎn)決定該步驟37螺旋模式(c.6)特色與應(yīng)用原則:在高風(fēng)險(xiǎn)部分之設(shè)計(jì)尚未穩(wěn)定前,規(guī)格之發(fā)展不需要一致、詳盡或正式,以避免不必要之設(shè)計(jì)修改。在開發(fā)之任一階段,螺旋模式可選擇整合雛型模式以降低風(fēng)險(xiǎn)。不同周期,可能采用不同的開發(fā)模式。當(dāng)更吸引人之方案被找出,或新風(fēng)險(xiǎn)需被解決時(shí),可整合重做或回到前面之階段。螺旋模式(c.6)特色與應(yīng)用原則:38螺旋模式(c.7)包含了現(xiàn)有模式之大部分優(yōu)點(diǎn),其風(fēng)險(xiǎn)導(dǎo)向之方法解決了許多模式之問題。在某些條件下,螺旋模式相當(dāng)于某一現(xiàn)有之模式。例如:(1)若項(xiàng)目在系統(tǒng)的績效或使用者接口需求方面屬于低風(fēng)險(xiǎn),且在預(yù)算及時(shí)程控制方面屬于高風(fēng)險(xiǎn),則這些風(fēng)險(xiǎn)之考慮會(huì)使螺旋模式之執(zhí)行相當(dāng)于瀑布模式或漸增模式。(2)若項(xiàng)目在預(yù)算及時(shí)程控制、大型系統(tǒng)之整合或需求變動(dòng)方面之風(fēng)險(xiǎn)較低,且在系統(tǒng)的績效、使用者接口或使用者決策支持需求方面之風(fēng)險(xiǎn)較高,則這些風(fēng)險(xiǎn)之考慮會(huì)使螺旋模式之執(zhí)行類似于雛型模式。螺旋模式(c.7)包含了現(xiàn)有模式之大部分優(yōu)點(diǎn),其風(fēng)險(xiǎn)導(dǎo)向之39同步模式主要是為了縮短系統(tǒng)開發(fā)時(shí)間,加速版本之更新,因應(yīng)商業(yè)軟件包的市場競爭。適用情形:需求可明確與完整的描述。有足夠的人力參與。團(tuán)隊(duì)間有良好的溝通、信息交換與項(xiàng)目管理。同步模式主要是為了縮短系統(tǒng)開發(fā)時(shí)間,加速版本之更新,因應(yīng)商業(yè)40同步模式(c.2)優(yōu)點(diǎn):開發(fā)時(shí)間的縮短可提高產(chǎn)品的競爭力。缺點(diǎn):緊湊的步驟及頻繁的信息溝通,使得項(xiàng)目管理的復(fù)雜度大幅提高,人力成本也相對(duì)提高。若沒有輔以良好的工具及管理方法,則不易達(dá)成目標(biāo)。

同步模式(c.2)優(yōu)點(diǎn):41同步模式(c.3)基于三個(gè)主要的構(gòu)想來達(dá)到時(shí)程縮短的目標(biāo):多個(gè)團(tuán)隊(duì)同時(shí)開發(fā)。這種多組人同時(shí)工作的方式稱為活動(dòng)同步(ActivityConcurrency)。同步模式(c.3)基于三個(gè)主要的構(gòu)想來達(dá)到時(shí)程縮短的目標(biāo):42同步模式(c.4)同步模式(c.4)43同步模式(c.5)信息同步。不同團(tuán)隊(duì)的信息互相交流與共享稱為信息同步(InformationConcurrency)。

信息同步有三個(gè)技巧:(1)向前傳遞(FrontLoading)(2)向后傳遞(Flying)(3)建立有效的信息交換網(wǎng)絡(luò)及群體工作的支持環(huán)境整合性的管理系統(tǒng)。同步開發(fā)方法的管理方法比一般的系統(tǒng)開發(fā)復(fù)雜,必須開發(fā)一個(gè)管理系統(tǒng)以協(xié)調(diào)人員、資源、過程和產(chǎn)品間復(fù)雜的互動(dòng)關(guān)系。

同步模式(c.5)信息同步。不同團(tuán)隊(duì)的信息互相交流與共享稱為44同步模式(c.6)同步模式(c.6)45同步模式(c.7)同步模式(c.7)46RUP模式RUP(RationalUnifiedProcess)模式于1998由IvarJacobson、GradyBooch和JamesRumbaugh提出。以架構(gòu)為中心(Architecture-Centric)的開發(fā)模式。結(jié)合螺旋模式的概念,以「反復(fù)式」(Iterative)與「漸增式」(Incremental)的軟件開發(fā)原理進(jìn)行軟件開發(fā)。反復(fù)式意指重復(fù)用相同的的一系列操作或步驟以進(jìn)行軟件開發(fā)。漸增式意指每一次在軟件產(chǎn)品上新增工功能、模塊、組件或子系統(tǒng)等。RUP模式RUP(RationalUnifiedPr47RUP模式(c.2)每一次的反復(fù)需產(chǎn)出一個(gè)可運(yùn)作的系統(tǒng)版本,并在每一個(gè)反復(fù)周期評(píng)估風(fēng)險(xiǎn),以盡早發(fā)現(xiàn)問題。不需假設(shè)項(xiàng)目開始時(shí),使用者需求可完整且清楚描述。可由動(dòng)態(tài)與靜態(tài)兩個(gè)構(gòu)面來說明系統(tǒng)開發(fā)項(xiàng)目之實(shí)施階段與核心工作。RUP模式(c.2)每一次的反復(fù)需產(chǎn)出一個(gè)可運(yùn)作的系統(tǒng)版本48RUP模式(c.3)動(dòng)態(tài)構(gòu)面把軟件開發(fā)依序分成四個(gè)主要階段:初始、詳述、建構(gòu)與轉(zhuǎn)移。這四個(gè)階段構(gòu)成一個(gè)周期,周期可反復(fù)進(jìn)行,每個(gè)周期內(nèi)之各階段也可以視情況反復(fù)進(jìn)行。靜態(tài)構(gòu)面主要表達(dá)成九個(gè)核心工作流程(Workflows)或過程(Processes):有六項(xiàng)屬于軟件工程工作:企業(yè)模型、需求、分析與設(shè)計(jì)、實(shí)作、測試、配置(Deployment)三項(xiàng)屬于管理支持工作:項(xiàng)目管理、組態(tài)管理與變動(dòng)管理、環(huán)境RUP模式(c.3)動(dòng)態(tài)構(gòu)面把軟件開發(fā)依序分成四個(gè)主要階段49RUP模式(c.4)RUP模式(c.4)50第四代技術(shù)*第四代技術(shù)(4thGenerationTechniques,4GT)指的是輸入圖形(diagrams)或特殊語言,可以自動(dòng)產(chǎn)生原始程序代碼的技術(shù)。圖形(diagrams)或特殊語言主要是用來描述軟件的特性與行為,4GT根據(jù)這些描述來產(chǎn)生原始程序代碼。這些輸入就是所謂的第四代語言(4GL)。第四代技術(shù)*第四代技術(shù)(4thGenerationTec51第四代技術(shù)(c.2)采用4GT開發(fā)軟件,還是要經(jīng)過分析、設(shè)計(jì)、編碼、測試、維護(hù)等階段。采用4GT開發(fā)的方式,必須使得軟件易于維護(hù)。使用4GT開發(fā)小型軟件,有時(shí)可直接從需求擷取的階段跳到實(shí)施(Implementation)的階段。若和組件開發(fā)方式合用,4GT可能便變成軟件開發(fā)的主要方法。第四代技術(shù)(c.2)采用4GT開發(fā)軟件,還是要經(jīng)過分析、設(shè)計(jì)52第四代技術(shù)(c.3)優(yōu)點(diǎn)支持者聲稱可加快開發(fā)的速度,提升生產(chǎn)力。缺點(diǎn)反對(duì)者聲稱4GT的工具不比程序語言簡單,產(chǎn)生的原始程序代碼執(zhí)行效率差,4GT產(chǎn)生的大型軟件,其維護(hù)仍然是個(gè)問題。第四代技術(shù)(c.3)優(yōu)點(diǎn)53快速應(yīng)用軟件開發(fā)*快速應(yīng)用軟件開發(fā)(RapidApplicationDevelopment,RAD)強(qiáng)調(diào)以極短時(shí)間(約60-90天)完成軟件的開發(fā)。程序的產(chǎn)生盡可能使用組件開發(fā)方式及第四代技術(shù)縮短開發(fā)時(shí)間。主要用于開發(fā)需求可完整且清楚描述的信息系統(tǒng)。分?jǐn)?shù)個(gè)周期平行開發(fā),每一周期由一個(gè)團(tuán)隊(duì)完成一功能組(模塊)??焖賾?yīng)用軟件開發(fā)*快速應(yīng)用軟件開發(fā)(RapidAppli54快速應(yīng)用軟件開發(fā)(c.2)一個(gè)周期包含:商業(yè)塑模(businessmodeling)資料塑模(datamodeling)處理塑模(processingmodeling)程序的產(chǎn)生(applicationgeneration)測試及修改(testingandturnover)快速應(yīng)用軟件開發(fā)(c.2)一個(gè)周期包含:55快速應(yīng)用軟件開發(fā)(c.3)缺點(diǎn)大型軟件需有足夠的人力參與。不適合開發(fā)技術(shù)風(fēng)險(xiǎn)高的軟件。只適合能模塊化的軟件。使用者與信息人員雙方都必須要有決心,互相配合,以便在極短時(shí)間內(nèi)完成軟件的開發(fā)??焖賾?yīng)用軟件開發(fā)(c.3)缺點(diǎn)56六個(gè)系統(tǒng)開發(fā)模式之比較六個(gè)系統(tǒng)開發(fā)模式之比較57信息系統(tǒng)特性與適用之開發(fā)模式信息系統(tǒng)特性與適用之開發(fā)模式58結(jié)論軟件開發(fā)模式之發(fā)展,依其被提出之時(shí)間順序,依序是階段模式、瀑布模式、漸增模式、雛型模式、螺旋模式與同步模式。由于被提出之先后順序不同,后來提出的模式大多針對(duì)前面模式之問題提出修正。結(jié)論軟件開發(fā)模式之發(fā)展,依其被提出之時(shí)間順序,依序是階段模式59軟件開發(fā)模式軟件開發(fā)模式教學(xué)課件60內(nèi)容大綱導(dǎo)論編碼與修正模式階段模式瀑布模式漸增模式原型模式螺旋模式同步模式RUP模式第四代技術(shù)快速應(yīng)用軟體開發(fā)結(jié)論內(nèi)容大綱導(dǎo)論61導(dǎo)論「軟件開發(fā)模式」是描述軟件開發(fā)過程的一系列步驟及其執(zhí)行程序。開發(fā)的過程依循系統(tǒng)化、邏輯化的步驟進(jìn)行時(shí),將有利于標(biāo)準(zhǔn)、規(guī)范與政策之推行和建立,而且開發(fā)過程將更有效率,更能確保品質(zhì)量,也更容易管理。不同的開發(fā)模式,選用于不同情況的系統(tǒng)開發(fā)。導(dǎo)論「軟件開發(fā)模式」是描述軟件開發(fā)過程的一系列步驟及其執(zhí)行程62軟件開發(fā)模式編碼與修正模式階段模式瀑布模式漸增模式雛型模式螺旋模式同步模式RUP模式軟件開發(fā)模式編碼與修正模式63各種開發(fā)模式之演進(jìn)各種開發(fā)模式之演進(jìn)64編碼與修正模式無方法論可言,主要包含兩個(gè)步驟:先寫部分程序,再修正程序中之問題。

編碼與修正模式無方法論可言,主要包含兩個(gè)步驟:65編碼與修正模式(c.2)主要之問題:過程中沒有規(guī)劃(plan)、分析及設(shè)計(jì),故經(jīng)過幾次修正之后,程序代碼的邏輯變得難以理解。無使用者需求分析與確認(rèn),軟件雖設(shè)計(jì)得很好,但可能并不符合使用者的需求。編碼與修正模式(c.2)主要之問題:66階段模式具有方法論之雛型。

改善了編碼與修正模式之問題,強(qiáng)調(diào)系統(tǒng)開發(fā)前要有規(guī)劃(plan),程序編碼(coding)前要有分析與設(shè)計(jì),系統(tǒng)上線前要有測試(testing)等。階段模式具有方法論之雛型。67階段模式(c.2)階段模式(c.2)68階段模式(c.3)雖已改善了編碼與修正模式之問題,但使用上仍衍生以下之問題:不論系統(tǒng)之大小或復(fù)雜程度均需經(jīng)歷八階段,各階段之進(jìn)行是循序的且階段間沒有回饋,各階段均需考慮完整的系統(tǒng)范圍,不可僅考慮部份系統(tǒng),假設(shè)使用者需求可完整且清楚的描述。

階段模式(c.3)雖已改善了編碼與修正模式之問題,但使用上69瀑布模式開發(fā)的過程分成幾個(gè)階段,且劃分上較有彈性。每個(gè)階段清楚定義要做那些工作及交付那些文件,使系統(tǒng)開發(fā)之工作更明確及容易掌握??稍试S階段間之回饋,若在各階段發(fā)現(xiàn)錯(cuò)誤,能盡早修正以減少系統(tǒng)修改或重做之成本。各階段循序的執(zhí)行且僅循環(huán)一次。瀑布模式開發(fā)的過程分成幾個(gè)階段,且劃分上較有彈性。70瀑布模式(c.2)當(dāng)系統(tǒng)較小或較單純,劃分的階段可能少至三個(gè),例如分析、設(shè)計(jì)、實(shí)作(Implementation)等階段。瀑布模式(c.2)當(dāng)系統(tǒng)較小或較單純,劃分的階段可能少至三71瀑布模式(c.3)分析實(shí)作設(shè)計(jì)瀑布模式(c.3)分析實(shí)作設(shè)計(jì)72瀑布模式(c.4)若面對(duì)較大或復(fù)雜之系統(tǒng)時(shí),其階段可再被細(xì)分成更多個(gè)階段:瀑布模式(c.4)若面對(duì)較大或復(fù)雜之系統(tǒng)時(shí),其階段可再被細(xì)73瀑布模式(c.5)瀑布模式(c.5)74瀑布模式(c.6)瀑布模式的一些問題:假設(shè)在項(xiàng)目開始時(shí),需求可完整且清楚描述,所有需求在各階段均需同時(shí)考慮,且系統(tǒng)開發(fā)在一個(gè)周期內(nèi)完成,在程序編輯前過于強(qiáng)調(diào)完整的分析與設(shè)計(jì)文件,故一但需求變更,文件需大幅修改,程序編輯于系統(tǒng)開發(fā)周期之后段才開始,故風(fēng)險(xiǎn)較高,且失敗之成本亦較高,瀑布模式(c.6)瀑布模式的一些問題:75瀑布模式(c.7)(5)系統(tǒng)開發(fā)周期較長且過程中使用者參與不足。明確的、完整的需求最終系統(tǒng)使用者使用者瀑布模式(c.7)(5)系統(tǒng)開發(fā)周期較長且過程中使用者參與76漸增模式把需求分成幾個(gè)部分,然后將每個(gè)部分的需求之開發(fā)訂為一個(gè)開發(fā)周期,每個(gè)周期可依序或平行開發(fā)。每個(gè)周期之階段清楚定義要做那些工作及交付那些文件,每個(gè)周期內(nèi),各階段循序進(jìn)行且僅循環(huán)一次。漸增模式把需求分成幾個(gè)部分,然后將每個(gè)部分的需求之開發(fā)訂為一77漸增模式(c.2)漸增模式(c.2)78漸增模式(c.3)特色:系統(tǒng)被分成幾個(gè)子系統(tǒng)或功能,各子系統(tǒng)可獨(dú)立依序或平行開發(fā)。系統(tǒng)開發(fā)可由多個(gè)周期完成,每個(gè)周期均有分析設(shè)計(jì)、程序編輯及測試,每個(gè)周期完成不同版本之系統(tǒng)。使用者參與程度高,每個(gè)周期均參與,故相較于瀑布模式,漸增模式之風(fēng)險(xiǎn)較低。

漸增模式(c.3)特色:79漸增模式(c.4)漸增模式適用之情況:(1)目標(biāo)與需求可完全與清楚描述。(2)預(yù)算需分期編列。(3)需要時(shí)間來熟悉和接受新科技。漸增模式(c.4)漸增模式適用之情況:80雛型模式此方法先針對(duì)使用者需求較清楚的部分或信息人員較能掌握之部份,依分析、設(shè)計(jì)與實(shí)施等步驟快速進(jìn)行雛型系統(tǒng)開發(fā)。過程中,強(qiáng)調(diào)盡早以雛型系統(tǒng)做為使用者與信息人員需求溝通與學(xué)習(xí)之工具,雙方透過雛型之操作與回饋,以厘清、修改及擴(kuò)充需求,并藉以修改與擴(kuò)充雛型系統(tǒng)。上述步驟反復(fù)進(jìn)行,直到系統(tǒng)符合雙方約定為止。雛型系統(tǒng)有時(shí)是一個(gè):只有使用者界面,而沒有核心部分的軟件。雛型模式此方法先針對(duì)使用者需求較清楚的部分或信息人員較能掌握81雛型模式(c.2)雛型模式(c.2)82雛型模式(c.3)主要特性與原則:強(qiáng)調(diào)雛型之盡早開發(fā)及使用者高度的參與。強(qiáng)調(diào)以雛型作為使用者及系統(tǒng)開發(fā)者之需求溝通與學(xué)習(xí)機(jī)制。從需求最清楚部分著手開發(fā)雛型,并透過使用者對(duì)雛型之操作與回饋,反復(fù)修改與擴(kuò)充,每次反復(fù)之周期要盡可能縮短。雛型模式(c.3)主要特性與原則:83雛型模式(c.4)其它適用情形:當(dāng)無法立即獲得解決問題的方法。當(dāng)軟/硬件之技術(shù)與支持不確定。雛型模式(c.4)其它適用情形:84雛型模式(c.5)雛型模式的潛在問題:系統(tǒng)文件較不完備,程序亦較難維護(hù)。短期可能較能滿足使用者需求,但長期而言系統(tǒng)較易失敗。因缺乏整體之規(guī)劃、分析與設(shè)計(jì),故較不適合于大型及多人參與之系統(tǒng)開發(fā)項(xiàng)目。雛型模式(c.5)雛型模式的潛在問題:85雛型模式(c.6)有兩種常見之應(yīng)用策略:演進(jìn)式雛型(EvolutionaryPrototyping)

用后丟棄雛型(RapidThrowawayPrototyping)

雛型模式(c.6)有兩種常見之應(yīng)用策略:86演進(jìn)式雛型策略(c.7)將所有需求看成一個(gè)整體,從需求最清楚的部分快速的經(jīng)歷一開發(fā)周期,以完成初版雛型系統(tǒng),再利用該雛型與使用者溝通以確定、修改和擴(kuò)充需求,并藉以做為下一周期雛型演進(jìn)之依據(jù),該周期不斷的反復(fù)進(jìn)行,一直到雛型系統(tǒng)符合雙方約定為止。

演進(jìn)式雛型策略(c.7)將所有需求看成一個(gè)整體,從需求最清楚87演進(jìn)式雛型策略(c.8)演進(jìn)式雛型策略(c.8)88用后丟棄式雛型策略(c.9)以一種快而粗糙(QuickandDirty)的方式建立雛型,以促使使用者能夠盡快藉由與雛型之互動(dòng)來決定需求項(xiàng)目,或信息人員藉以研發(fā)問題之解決方法與信息科技之應(yīng)用。應(yīng)用該策略開發(fā)之雛型,不需考慮系統(tǒng)之運(yùn)用效率、可維護(hù)性與容錯(cuò)能力等。

用后丟棄式雛型策略(c.9)以一種快而粗糙(Quickan89用后丟棄式雛型策略(c.10)雛型丟棄之原因,如開發(fā)工具不同,操作系統(tǒng)不兼容,設(shè)計(jì)方法不兼容,…用后丟棄式雛型策略(c.10)雛型丟棄之原因,如90用后丟棄式雛型策略(c.11)僅實(shí)施在風(fēng)險(xiǎn)程度最高的地方,例如需求或解決問題之知識(shí)、概念與信息科技整合最不清楚的情況。因?yàn)殡r型之丟棄也意味著成本的浪費(fèi)。其它情況則盡可能的采用演進(jìn)式雛型策略。用后丟棄式雛型策略(c.11)僅實(shí)施在風(fēng)險(xiǎn)程度最高的地方,例91螺旋模式導(dǎo)入項(xiàng)目管理的概念與方法,為一風(fēng)險(xiǎn)導(dǎo)向的模式。由三個(gè)步驟形成一周期:(1)找出系統(tǒng)的目標(biāo)、可行之實(shí)施方案與限制。(2)依目標(biāo)與限制評(píng)估方案,解決風(fēng)險(xiǎn)。(3)并由剩下之相關(guān)風(fēng)險(xiǎn),決定該步驟該如何進(jìn)行。此周期反復(fù)進(jìn)行,直到系統(tǒng)開發(fā)完成為止。螺旋模式導(dǎo)入項(xiàng)目管理的概念與方法,為一風(fēng)險(xiǎn)導(dǎo)向的模式。92螺旋模式(c.2)螺旋模式(c.2)93螺旋模式(c.3)步驟一、找出系統(tǒng)的目標(biāo)、可行之實(shí)施方案與限制(1)找出系統(tǒng)的目標(biāo)系統(tǒng)目標(biāo)之評(píng)核因素很多,例如系統(tǒng)的績效、功能與容忍改變之能力等。(2)找出系統(tǒng)之實(shí)施方案系統(tǒng)實(shí)施方案會(huì)因問題而異,例如找出之方案有設(shè)計(jì)A、設(shè)計(jì)B、重用、購買等。(3)實(shí)施方案之限制實(shí)施方案之限制可能為項(xiàng)目之成本、時(shí)程、系統(tǒng)接口等。

螺旋模式(c.3)步驟一、找出系統(tǒng)的目標(biāo)、可行之實(shí)施方案與94螺旋模式(c.4)步驟二、依目標(biāo)與限制評(píng)估方案,解決風(fēng)險(xiǎn)主要是找出各方案之不確定處,并設(shè)法解決,其步驟如下:(1)找出項(xiàng)目風(fēng)險(xiǎn)之重要來源。(2)解決風(fēng)險(xiǎn)來源:可用雛型、模擬、標(biāo)竿(Benchmarking)、參考點(diǎn)檢查(ReferenceChecking)、問卷、分析模式、上述之綜合或其它技術(shù)以解決風(fēng)險(xiǎn)。螺旋模式(c.4)步驟二、依目標(biāo)與限制評(píng)估方案,解決風(fēng)險(xiǎn)95螺旋模式(c.5)步驟三、由剩下之風(fēng)險(xiǎn)決定該步驟若系統(tǒng)的績效或使用者接口風(fēng)險(xiǎn)將強(qiáng)力影響程序開發(fā)或內(nèi)部接口控制,則此步驟可能是采取演進(jìn)式雛型。若該雛型使用性佳且夠強(qiáng)韌(Robust),足以當(dāng)做未來系統(tǒng)發(fā)展之基礎(chǔ),則往后將是一系列的雛型演進(jìn)。假如先前之雛型努力已解決了所有的績效或使用者接口之風(fēng)險(xiǎn),則此一步將遵循基本的瀑布模式,亦可適當(dāng)?shù)男揎椧哉蠞u增模式。

螺旋模式(c.5)步驟三、由剩下之風(fēng)險(xiǎn)決定該步驟96螺旋模式(c.6)特色與應(yīng)用原則:在高風(fēng)險(xiǎn)部分之設(shè)計(jì)尚未穩(wěn)定前,規(guī)格之發(fā)展不需要一致、詳盡或正式,以避免不必要之設(shè)計(jì)修改。在開發(fā)之任一階段,螺旋模式可選擇整合雛型模式以降低風(fēng)險(xiǎn)。不同周期,可能采用不同的開發(fā)模式。當(dāng)更吸引人之方案被找出,或新風(fēng)險(xiǎn)需被解決時(shí),可整合重做或回到前面之階段。螺旋模式(c.6)特色與應(yīng)用原則:97螺旋模式(c.7)包含了現(xiàn)有模式之大部分優(yōu)點(diǎn),其風(fēng)險(xiǎn)導(dǎo)向之方法解決了許多模式之問題。在某些條件下,螺旋模式相當(dāng)于某一現(xiàn)有之模式。例如:(1)若項(xiàng)目在系統(tǒng)的績效或使用者接口需求方面屬于低風(fēng)險(xiǎn),且在預(yù)算及時(shí)程控制方面屬于高風(fēng)險(xiǎn),則這些風(fēng)險(xiǎn)之考慮會(huì)使螺旋模式之執(zhí)行相當(dāng)于瀑布模式或漸增模式。(2)若項(xiàng)目在預(yù)算及時(shí)程控制、大型系統(tǒng)之整合或需求變動(dòng)方面之風(fēng)險(xiǎn)較低,且在系統(tǒng)的績效、使用者接口或使用者決策支持需求方面之風(fēng)險(xiǎn)較高,則這些風(fēng)險(xiǎn)之考慮會(huì)使螺旋模式之執(zhí)行類似于雛型模式。螺旋模式(c.7)包含了現(xiàn)有模式之大部分優(yōu)點(diǎn),其風(fēng)險(xiǎn)導(dǎo)向之98同步模式主要是為了縮短系統(tǒng)開發(fā)時(shí)間,加速版本之更新,因應(yīng)商業(yè)軟件包的市場競爭。適用情形:需求可明確與完整的描述。有足夠的人力參與。團(tuán)隊(duì)間有良好的溝通、信息交換與項(xiàng)目管理。同步模式主要是為了縮短系統(tǒng)開發(fā)時(shí)間,加速版本之更新,因應(yīng)商業(yè)99同步模式(c.2)優(yōu)點(diǎn):開發(fā)時(shí)間的縮短可提高產(chǎn)品的競爭力。缺點(diǎn):緊湊的步驟及頻繁的信息溝通,使得項(xiàng)目管理的復(fù)雜度大幅提高,人力成本也相對(duì)提高。若沒有輔以良好的工具及管理方法,則不易達(dá)成目標(biāo)。

同步模式(c.2)優(yōu)點(diǎn):100同步模式(c.3)基于三個(gè)主要的構(gòu)想來達(dá)到時(shí)程縮短的目標(biāo):多個(gè)團(tuán)隊(duì)同時(shí)開發(fā)。這種多組人同時(shí)工作的方式稱為活動(dòng)同步(ActivityConcurrency)。同步模式(c.3)基于三個(gè)主要的構(gòu)想來達(dá)到時(shí)程縮短的目標(biāo):101同步模式(c.4)同步模式(c.4)102同步模式(c.5)信息同步。不同團(tuán)隊(duì)的信息互相交流與共享稱為信息同步(InformationConcurrency)。

信息同步有三個(gè)技巧:(1)向前傳遞(FrontLoading)(2)向后傳遞(Flying)(3)建立有效的信息交換網(wǎng)絡(luò)及群體工作的支持環(huán)境整合性的管理系統(tǒng)。同步開發(fā)方法的管理方法比一般的系統(tǒng)開發(fā)復(fù)雜,必須開發(fā)一個(gè)管理系統(tǒng)以協(xié)調(diào)人員、資源、過程和產(chǎn)品間復(fù)雜的互動(dòng)關(guān)系。

同步模式(c.5)信息同步。不同團(tuán)隊(duì)的信息互相交流與共享稱為103同步模式(c.6)同步模式(c.6)104同步模式(c.7)同步模式(c.7)105RUP模式RUP(RationalUnifiedProcess)模式于1998由IvarJacobson、GradyBooch和JamesRumbaugh提出。以架構(gòu)為中心(Architecture-Centric)的開發(fā)模式。結(jié)合螺旋模式的概念,以「反復(fù)式」(Iterative)與「漸增式」(Incremental)的軟件開發(fā)原理進(jìn)行軟件開發(fā)。反復(fù)式意指重復(fù)用相同的的一系列操作或步驟以進(jìn)行軟件開發(fā)。漸增式意指每一次在軟件產(chǎn)品上新增工功能、模塊、組件或子系統(tǒng)等。RUP模式RUP(RationalUnifiedPr106RUP模式(c.2)每一次的反復(fù)需產(chǎn)出一個(gè)可運(yùn)作的系統(tǒng)版本,并在每一個(gè)反復(fù)周期評(píng)估風(fēng)險(xiǎn),以盡早發(fā)現(xiàn)問題。不需假設(shè)項(xiàng)目開始時(shí),使用者需求可完整且清楚描述。可由動(dòng)態(tài)與靜態(tài)兩個(gè)構(gòu)面來說明系統(tǒng)開發(fā)項(xiàng)目之實(shí)施階段與核心工作。RUP模式(c.2)每一次的反復(fù)需產(chǎn)出一個(gè)可運(yùn)作的系統(tǒng)版本107RUP模式(c.3)動(dòng)態(tài)構(gòu)面把軟件開發(fā)依序分成四個(gè)主要階段:初始、詳述、建構(gòu)與轉(zhuǎn)移。這四個(gè)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論