《軟件工程基礎(chǔ)》全套PPT課件
《軟件工程基礎(chǔ)》全套PPT課件,軟件工程基礎(chǔ),軟件工程,基礎(chǔ),全套,PPT,課件
10.1 軟件過(guò)程框架軟件過(guò)程框架的內(nèi)容軟件過(guò)程框架的內(nèi)容 軟件過(guò)程框架定義了若干框架活動(dòng),為完整的軟軟件過(guò)程框架定義了若干框架活動(dòng),為完整的軟件開(kāi)發(fā)過(guò)程建立了基礎(chǔ)。件開(kāi)發(fā)過(guò)程建立了基礎(chǔ)。過(guò)程框架還全面包括了可用于整個(gè)軟件過(guò)程的活過(guò)程框架還全面包括了可用于整個(gè)軟件過(guò)程的活動(dòng),稱(chēng)為動(dòng),稱(chēng)為“普適性活動(dòng)普適性活動(dòng)(Umbrella ActivitiesUmbrella Activities)”。10.1 軟件過(guò)程框架軟件過(guò)程框架的內(nèi)容軟件過(guò)程框架的內(nèi)容 10.1 軟件過(guò)程框架軟件過(guò)程框架的內(nèi)容軟件過(guò)程框架的內(nèi)容 過(guò)程框架:定義了若干框架活動(dòng),這些活動(dòng)適用于所有軟過(guò)程框架:定義了若干框架活動(dòng),這些活動(dòng)適用于所有軟件項(xiàng)目。件項(xiàng)目。普適性活動(dòng):如軟件質(zhì)量保證,軟件配置管理和測(cè)量,它普適性活動(dòng):如軟件質(zhì)量保證,軟件配置管理和測(cè)量,它們貫穿于整個(gè)過(guò)程模型之中。們貫穿于整個(gè)過(guò)程模型之中??蚣芑顒?dòng):框架中每一個(gè)活動(dòng)都由一組軟件工程動(dòng)作組成,框架活動(dòng):框架中每一個(gè)活動(dòng)都由一組軟件工程動(dòng)作組成,每一個(gè)動(dòng)作又包含一個(gè)任務(wù)集合。每一個(gè)動(dòng)作又包含一個(gè)任務(wù)集合。任務(wù)集合:每一個(gè)集合都由軟件工程工作任務(wù)、項(xiàng)目里程任務(wù)集合:每一個(gè)集合都由軟件工程工作任務(wù)、項(xiàng)目里程碑、軟件工程產(chǎn)品以及質(zhì)量保證點(diǎn)組成,使得框架活動(dòng)適碑、軟件工程產(chǎn)品以及質(zhì)量保證點(diǎn)組成,使得框架活動(dòng)適應(yīng)于不同軟件項(xiàng)目的特征和項(xiàng)目組的需求。應(yīng)于不同軟件項(xiàng)目的特征和項(xiàng)目組的需求。10.1 軟件過(guò)程框架通用過(guò)程框架通用過(guò)程框架通用過(guò)程框架可適用于絕大多數(shù)的軟件項(xiàng)目,該通用過(guò)程框架可適用于絕大多數(shù)的軟件項(xiàng)目,該框架由框架由溝通溝通、策劃策劃、建模建模、構(gòu)造構(gòu)造和和部署部署5 5個(gè)通用框個(gè)通用框架活動(dòng)組成。架活動(dòng)組成。(1)(1)溝通溝通。這項(xiàng)框架活動(dòng)包含系統(tǒng)分析員與客戶(hù)之間大量的。這項(xiàng)框架活動(dòng)包含系統(tǒng)分析員與客戶(hù)之間大量的交流和協(xié)作,還包括需求獲取以及其他相關(guān)活動(dòng)。交流和協(xié)作,還包括需求獲取以及其他相關(guān)活動(dòng)。(2)(2)策劃策劃。策劃活動(dòng)協(xié)助軟件開(kāi)發(fā)團(tuán)隊(duì)定義全局目標(biāo),并為。策劃活動(dòng)協(xié)助軟件開(kāi)發(fā)團(tuán)隊(duì)定義全局目標(biāo),并為后續(xù)的軟件工程工作制定計(jì)劃。策劃活動(dòng)包括一系列管理后續(xù)的軟件工程工作制定計(jì)劃。策劃活動(dòng)包括一系列管理和技術(shù)實(shí)踐,如描述需要執(zhí)行的技術(shù)任務(wù)、可能的風(fēng)險(xiǎn)、和技術(shù)實(shí)踐,如描述需要執(zhí)行的技術(shù)任務(wù)、可能的風(fēng)險(xiǎn)、資源需求、工作產(chǎn)品和工作進(jìn)度計(jì)劃。資源需求、工作產(chǎn)品和工作進(jìn)度計(jì)劃。10.1 軟件過(guò)程框架通用過(guò)程框架通用過(guò)程框架(3)(3)建模建模。建模的目的是為了更好地理解需要構(gòu)建。建模的目的是為了更好地理解需要構(gòu)建的實(shí)體。的實(shí)體。在軟件工程中,要?jiǎng)?chuàng)建兩類(lèi)模型:在軟件工程中,要?jiǎng)?chuàng)建兩類(lèi)模型:分析模型分析模型和和設(shè)設(shè)計(jì)模型計(jì)模型。分析模型通過(guò)描述軟件的信息域、功能域及行為分析模型通過(guò)描述軟件的信息域、功能域及行為域來(lái)表達(dá)客戶(hù)的需求;域來(lái)表達(dá)客戶(hù)的需求;設(shè)計(jì)模型描述軟件架構(gòu)、用戶(hù)界面及構(gòu)件細(xì)節(jié),設(shè)計(jì)模型描述軟件架構(gòu)、用戶(hù)界面及構(gòu)件細(xì)節(jié),從而幫助開(kāi)發(fā)者高效地開(kāi)發(fā)軟件。從而幫助開(kāi)發(fā)者高效地開(kāi)發(fā)軟件。10.1 軟件過(guò)程框架通用過(guò)程框架通用過(guò)程框架(4)(4)構(gòu)造構(gòu)造。構(gòu)造活動(dòng)包括一系列編碼和測(cè)試任務(wù),。構(gòu)造活動(dòng)包括一系列編碼和測(cè)試任務(wù),從而為向客戶(hù)和最終用戶(hù)交付可運(yùn)行軟件做好準(zhǔn)從而為向客戶(hù)和最終用戶(hù)交付可運(yùn)行軟件做好準(zhǔn)備。備。(5)(5)部署部署。部署活動(dòng)是將軟件(全部或者完成的部。部署活動(dòng)是將軟件(全部或者完成的部分)交付給用戶(hù),用戶(hù)對(duì)其進(jìn)行評(píng)測(cè)并給出反饋分)交付給用戶(hù),用戶(hù)對(duì)其進(jìn)行評(píng)測(cè)并給出反饋意見(jiàn)。意見(jiàn)。部署活動(dòng)包括三個(gè)動(dòng)作:交付、支持和反饋。部署活動(dòng)包括三個(gè)動(dòng)作:交付、支持和反饋。10.1 軟件過(guò)程框架典型的普適性活動(dòng)典型的普適性活動(dòng)(1)(1)軟件項(xiàng)目跟蹤和控制軟件項(xiàng)目跟蹤和控制:由項(xiàng)目組根據(jù)計(jì)劃來(lái)評(píng):由項(xiàng)目組根據(jù)計(jì)劃來(lái)評(píng)估項(xiàng)目進(jìn)度,并且采取必要的措施保證項(xiàng)目按進(jìn)估項(xiàng)目進(jìn)度,并且采取必要的措施保證項(xiàng)目按進(jìn)度計(jì)劃進(jìn)行。度計(jì)劃進(jìn)行。(2)(2)風(fēng)險(xiǎn)管理風(fēng)險(xiǎn)管理:評(píng)估可能對(duì)項(xiàng)目成果或者產(chǎn)品質(zhì)量:評(píng)估可能對(duì)項(xiàng)目成果或者產(chǎn)品質(zhì)量產(chǎn)生影響的風(fēng)險(xiǎn)。產(chǎn)生影響的風(fēng)險(xiǎn)。(3)(3)軟件質(zhì)量保證軟件質(zhì)量保證:確定和執(zhí)行用以保證軟件質(zhì)量:確定和執(zhí)行用以保證軟件質(zhì)量的活動(dòng)。的活動(dòng)。(4)(4)正式技術(shù)評(píng)審正式技術(shù)評(píng)審:評(píng)估軟件工程產(chǎn)品,盡量在錯(cuò):評(píng)估軟件工程產(chǎn)品,盡量在錯(cuò)誤傳播到下一個(gè)動(dòng)作或活動(dòng)之前,發(fā)現(xiàn)并清除錯(cuò)誤傳播到下一個(gè)動(dòng)作或活動(dòng)之前,發(fā)現(xiàn)并清除錯(cuò)誤。誤。10.1 軟件過(guò)程框架典型的普適性活動(dòng)典型的普適性活動(dòng)(5)(5)測(cè)量測(cè)量:定義和收集過(guò)程、項(xiàng)目和產(chǎn)品的度量,以:定義和收集過(guò)程、項(xiàng)目和產(chǎn)品的度量,以幫助團(tuán)隊(duì)在發(fā)布軟件的時(shí)候滿足客戶(hù)要求。同幫助團(tuán)隊(duì)在發(fā)布軟件的時(shí)候滿足客戶(hù)要求。同時(shí),測(cè)量還可與其他框架協(xié)同使用。時(shí),測(cè)量還可與其他框架協(xié)同使用。(6)(6)軟件配置管理軟件配置管理:管理整個(gè)軟件過(guò)程中變更所帶來(lái):管理整個(gè)軟件過(guò)程中變更所帶來(lái)的影響。的影響。(7)(7)可復(fù)用管理:定義產(chǎn)品復(fù)用的標(biāo)準(zhǔn)(包括軟件構(gòu)可復(fù)用管理:定義產(chǎn)品復(fù)用的標(biāo)準(zhǔn)(包括軟件構(gòu)件),并且建立構(gòu)件復(fù)用機(jī)制。件),并且建立構(gòu)件復(fù)用機(jī)制。(8)(8)工作產(chǎn)品的準(zhǔn)備和生產(chǎn)工作產(chǎn)品的準(zhǔn)備和生產(chǎn):包括創(chuàng)建產(chǎn)品所必須的:包括創(chuàng)建產(chǎn)品所必須的活動(dòng),如建模、文檔、日志、表格和列表等。活動(dòng),如建模、文檔、日志、表格和列表等。10.2 傳統(tǒng)軟件過(guò)程模型瀑布模型瀑布模型在在2020世紀(jì)世紀(jì)8080年代之前,瀑年代之前,瀑布模型一直是唯一被廣泛布模型一直是唯一被廣泛采用的生命周期模型。采用的生命周期模型。傳統(tǒng)的瀑布模型如圖所示。傳統(tǒng)的瀑布模型如圖所示。10.2 傳統(tǒng)軟件過(guò)程模型瀑布模型的特點(diǎn)瀑布模型的特點(diǎn)階段間具有順序性和依賴(lài)性。其中包含兩重含義:階段間具有順序性和依賴(lài)性。其中包含兩重含義:必須等前一階段的工作完成之后,才能開(kāi)始后一必須等前一階段的工作完成之后,才能開(kāi)始后一階段的工作;階段的工作;前一階段的輸出文檔就是后一階段的輸入文檔。前一階段的輸出文檔就是后一階段的輸入文檔。10.2 傳統(tǒng)軟件過(guò)程模型瀑布模型的特點(diǎn)瀑布模型的特點(diǎn)推遲實(shí)現(xiàn)的觀點(diǎn)推遲實(shí)現(xiàn)的觀點(diǎn) 瀑布模型在編碼之前設(shè)置了系統(tǒng)分析和系統(tǒng)設(shè)計(jì)瀑布模型在編碼之前設(shè)置了系統(tǒng)分析和系統(tǒng)設(shè)計(jì)的各個(gè)階段,分析與設(shè)計(jì)階段的基本任務(wù)規(guī)定,的各個(gè)階段,分析與設(shè)計(jì)階段的基本任務(wù)規(guī)定,在這兩個(gè)階段主要考慮目標(biāo)系統(tǒng)的邏輯模型,不在這兩個(gè)階段主要考慮目標(biāo)系統(tǒng)的邏輯模型,不涉及軟件的物理實(shí)現(xiàn)。涉及軟件的物理實(shí)現(xiàn)。清楚地區(qū)分邏輯設(shè)計(jì)與物理設(shè)計(jì),盡可能推遲程清楚地區(qū)分邏輯設(shè)計(jì)與物理設(shè)計(jì),盡可能推遲程序的物理實(shí)現(xiàn),是按照瀑布模型開(kāi)發(fā)軟件的一條序的物理實(shí)現(xiàn),是按照瀑布模型開(kāi)發(fā)軟件的一條重要的指導(dǎo)思想。重要的指導(dǎo)思想。10.2 傳統(tǒng)軟件過(guò)程模型瀑布模型的特點(diǎn)瀑布模型的特點(diǎn)質(zhì)量保證的觀點(diǎn)質(zhì)量保證的觀點(diǎn) 每個(gè)階段都必須完成規(guī)定的文檔,沒(méi)有交出合格每個(gè)階段都必須完成規(guī)定的文檔,沒(méi)有交出合格的文檔就是沒(méi)有完成該階段的任務(wù)。的文檔就是沒(méi)有完成該階段的任務(wù)。每個(gè)階段結(jié)束前都要對(duì)所完成的文檔進(jìn)行評(píng)審,每個(gè)階段結(jié)束前都要對(duì)所完成的文檔進(jìn)行評(píng)審,以便盡早發(fā)現(xiàn)問(wèn)題,改正錯(cuò)誤。以便盡早發(fā)現(xiàn)問(wèn)題,改正錯(cuò)誤。10.2 傳統(tǒng)軟件過(guò)程模型實(shí)際的瀑布模型實(shí)際的瀑布模型實(shí)際的瀑布模型是帶實(shí)際的瀑布模型是帶“反饋環(huán)反饋環(huán)”的,如圖所示。的,如圖所示。10.2 傳統(tǒng)軟件過(guò)程模型瀑布模型的優(yōu)點(diǎn)瀑布模型的優(yōu)點(diǎn)可強(qiáng)迫開(kāi)發(fā)人員采用規(guī)范化的方法??蓮?qiáng)迫開(kāi)發(fā)人員采用規(guī)范化的方法。嚴(yán)格地規(guī)定了每個(gè)階段必須提交的文檔。嚴(yán)格地規(guī)定了每個(gè)階段必須提交的文檔。要求每個(gè)階段交出的所有產(chǎn)品都必須是經(jīng)過(guò)驗(yàn)證要求每個(gè)階段交出的所有產(chǎn)品都必須是經(jīng)過(guò)驗(yàn)證的。的。10.2 傳統(tǒng)軟件過(guò)程模型瀑布模型的缺點(diǎn)瀑布模型的缺點(diǎn)由于瀑布模型幾乎完全依賴(lài)于書(shū)面的規(guī)格說(shuō)明,由于瀑布模型幾乎完全依賴(lài)于書(shū)面的規(guī)格說(shuō)明,很可能導(dǎo)致最終開(kāi)發(fā)出的軟件產(chǎn)品不能真正滿足很可能導(dǎo)致最終開(kāi)發(fā)出的軟件產(chǎn)品不能真正滿足用戶(hù)的需要。如果需求規(guī)格說(shuō)明與用戶(hù)需求之間用戶(hù)的需要。如果需求規(guī)格說(shuō)明與用戶(hù)需求之間有差異,就會(huì)發(fā)生這種情況。有差異,就會(huì)發(fā)生這種情況。瀑布模型只適用于項(xiàng)目開(kāi)始時(shí)需求已確定的情況。瀑布模型只適用于項(xiàng)目開(kāi)始時(shí)需求已確定的情況。10.2 傳統(tǒng)軟件過(guò)程模型快速原型模型快速原型模型快速原型是快速建立起來(lái)快速原型是快速建立起來(lái)的可以在計(jì)算機(jī)上運(yùn)行的的可以在計(jì)算機(jī)上運(yùn)行的程序,它所能完成的功能程序,它所能完成的功能往往是最終產(chǎn)品能完成的往往是最終產(chǎn)品能完成的功能的一個(gè)子集。功能的一個(gè)子集??焖僭湍P腿鐖D所示,快速原型模型如圖所示,圖中圖中實(shí)線箭頭表示開(kāi)發(fā)過(guò)實(shí)線箭頭表示開(kāi)發(fā)過(guò)程程,虛線箭頭表示維護(hù)過(guò)虛線箭頭表示維護(hù)過(guò)程程。10.2 傳統(tǒng)軟件過(guò)程模型快速原型模型的優(yōu)點(diǎn)快速原型模型的優(yōu)點(diǎn)(1)(1)有助于滿足用戶(hù)的真實(shí)需求。有助于滿足用戶(hù)的真實(shí)需求。(2)(2)原型系統(tǒng)已經(jīng)通過(guò)與用戶(hù)的交互而得到驗(yàn)證,據(jù)原型系統(tǒng)已經(jīng)通過(guò)與用戶(hù)的交互而得到驗(yàn)證,據(jù)此產(chǎn)生的規(guī)格說(shuō)明文檔能夠正確地描述用戶(hù)需求。此產(chǎn)生的規(guī)格說(shuō)明文檔能夠正確地描述用戶(hù)需求。(3)(3)軟件產(chǎn)品的開(kāi)發(fā)基本上是按線性順序進(jìn)行。軟件產(chǎn)品的開(kāi)發(fā)基本上是按線性順序進(jìn)行。(4)(4)因?yàn)橐?guī)格說(shuō)明文檔正確地描述了用戶(hù)需求,因此,因?yàn)橐?guī)格說(shuō)明文檔正確地描述了用戶(hù)需求,因此,在開(kāi)發(fā)過(guò)程的后續(xù)階段不會(huì)因?yàn)榘l(fā)現(xiàn)規(guī)格說(shuō)明文在開(kāi)發(fā)過(guò)程的后續(xù)階段不會(huì)因?yàn)榘l(fā)現(xiàn)規(guī)格說(shuō)明文檔的錯(cuò)誤而進(jìn)行較大的返工。檔的錯(cuò)誤而進(jìn)行較大的返工。10.2 傳統(tǒng)軟件過(guò)程模型快速原型模型的優(yōu)點(diǎn)快速原型模型的優(yōu)點(diǎn)(5)(5)開(kāi)發(fā)人員通過(guò)建立原型系統(tǒng)已經(jīng)學(xué)到了許多東西,開(kāi)發(fā)人員通過(guò)建立原型系統(tǒng)已經(jīng)學(xué)到了許多東西,因此,在設(shè)計(jì)和編碼階段發(fā)生錯(cuò)誤的可能性也比因此,在設(shè)計(jì)和編碼階段發(fā)生錯(cuò)誤的可能性也比較小,這自然減少了在后續(xù)階段需要改正前面階較小,這自然減少了在后續(xù)階段需要改正前面階段所犯錯(cuò)誤的可能性。段所犯錯(cuò)誤的可能性。(6)(6)快速原型的突出特點(diǎn)是快速原型的突出特點(diǎn)是“快速快速”。開(kāi)發(fā)人員應(yīng)。開(kāi)發(fā)人員應(yīng)該盡可能快地建造出原型系統(tǒng),以加速軟件開(kāi)發(fā)該盡可能快地建造出原型系統(tǒng),以加速軟件開(kāi)發(fā)過(guò)程,節(jié)約軟件開(kāi)發(fā)成本。過(guò)程,節(jié)約軟件開(kāi)發(fā)成本。原型的用途是獲知用戶(hù)的真正需求,一旦需求確原型的用途是獲知用戶(hù)的真正需求,一旦需求確定了,原型可以拋棄,當(dāng)然也可以在原型的基礎(chǔ)定了,原型可以拋棄,當(dāng)然也可以在原型的基礎(chǔ)上進(jìn)行開(kāi)發(fā)。上進(jìn)行開(kāi)發(fā)。10.2 傳統(tǒng)軟件過(guò)程模型增量模型增量模型 增量模型也稱(chēng)為漸增模型,是增量模型也稱(chēng)為漸增模型,是MillsMills等于等于19801980年提年提出來(lái)的。出來(lái)的。使用增量模型開(kāi)發(fā)軟件時(shí),把軟件產(chǎn)品作為一系使用增量模型開(kāi)發(fā)軟件時(shí),把軟件產(chǎn)品作為一系列的增量構(gòu)件來(lái)設(shè)計(jì)、編碼、集成和測(cè)試。列的增量構(gòu)件來(lái)設(shè)計(jì)、編碼、集成和測(cè)試。每個(gè)構(gòu)件由多個(gè)相互作用的模塊構(gòu)成,并且能夠每個(gè)構(gòu)件由多個(gè)相互作用的模塊構(gòu)成,并且能夠完成特定的功能。完成特定的功能。10.2 傳統(tǒng)軟件過(guò)程模型增量模型增量模型 增量模型如圖所示。增量模型如圖所示。10.2 傳統(tǒng)軟件過(guò)程模型增量模型的優(yōu)點(diǎn)增量模型的優(yōu)點(diǎn)(1)(1)能在較短時(shí)間內(nèi)向用戶(hù)提交可完成一些有用的工作產(chǎn)品,能在較短時(shí)間內(nèi)向用戶(hù)提交可完成一些有用的工作產(chǎn)品,即從第即從第1 1個(gè)構(gòu)件交付之日起,用戶(hù)就能做一些有用的工作。個(gè)構(gòu)件交付之日起,用戶(hù)就能做一些有用的工作。(2)(2)逐步增加產(chǎn)品的功能可以使用戶(hù)有較充裕的時(shí)間學(xué)習(xí)和適逐步增加產(chǎn)品的功能可以使用戶(hù)有較充裕的時(shí)間學(xué)習(xí)和適應(yīng)新產(chǎn)品,從而減少一個(gè)全新的軟件可能給用戶(hù)組織帶來(lái)應(yīng)新產(chǎn)品,從而減少一個(gè)全新的軟件可能給用戶(hù)組織帶來(lái)的沖擊。的沖擊。(3)(3)項(xiàng)目失敗的風(fēng)險(xiǎn)較低,雖然在某些增量構(gòu)件中可能遇到一項(xiàng)目失敗的風(fēng)險(xiǎn)較低,雖然在某些增量構(gòu)件中可能遇到一些問(wèn)題,但其他增量構(gòu)件將能夠成功地交付給客戶(hù)。些問(wèn)題,但其他增量構(gòu)件將能夠成功地交付給客戶(hù)。(4)(4)優(yōu)先級(jí)最高的服務(wù)首先交付,然后再將其他增量構(gòu)件逐次優(yōu)先級(jí)最高的服務(wù)首先交付,然后再將其他增量構(gòu)件逐次集成進(jìn)來(lái)。因此,最重要的系統(tǒng)服務(wù)將接受最多的測(cè)試。集成進(jìn)來(lái)。因此,最重要的系統(tǒng)服務(wù)將接受最多的測(cè)試。10.2 傳統(tǒng)軟件過(guò)程模型增量構(gòu)件開(kāi)發(fā)增量構(gòu)件開(kāi)發(fā) 每個(gè)增量構(gòu)件應(yīng)當(dāng)實(shí)現(xiàn)某種系統(tǒng)功能,因此增量構(gòu)件的開(kāi)發(fā)每個(gè)增量構(gòu)件應(yīng)當(dāng)實(shí)現(xiàn)某種系統(tǒng)功能,因此增量構(gòu)件的開(kāi)發(fā)可以采用瀑布模型的方式,如圖所示??梢圆捎闷俨寄P偷姆绞剑鐖D所示。10.2 傳統(tǒng)軟件過(guò)程模型采用增量模型需注意的問(wèn)題采用增量模型需注意的問(wèn)題(1)(1)在把每個(gè)新的增量構(gòu)件集成到現(xiàn)有軟件體系結(jié)構(gòu)在把每個(gè)新的增量構(gòu)件集成到現(xiàn)有軟件體系結(jié)構(gòu)中時(shí),必須不破壞原來(lái)已經(jīng)開(kāi)發(fā)出的產(chǎn)品。中時(shí),必須不破壞原來(lái)已經(jīng)開(kāi)發(fā)出的產(chǎn)品。(2)(2)軟件體系結(jié)構(gòu)必須是開(kāi)放的,即向現(xiàn)有產(chǎn)品中加軟件體系結(jié)構(gòu)必須是開(kāi)放的,即向現(xiàn)有產(chǎn)品中加入新構(gòu)件的過(guò)程必須簡(jiǎn)單、方便。入新構(gòu)件的過(guò)程必須簡(jiǎn)單、方便。因此,采用增量模型比采用瀑布模型和快速原型因此,采用增量模型比采用瀑布模型和快速原型模型更需要精心的設(shè)計(jì)。模型更需要精心的設(shè)計(jì)。10.2 傳統(tǒng)軟件過(guò)程模型螺旋模型螺旋模型 螺旋模型最初是螺旋模型最初是BoehmBoehm于于19881988年提出來(lái)的。年提出來(lái)的。該模型將瀑布模型與快速原型模型結(jié)合起來(lái),并該模型將瀑布模型與快速原型模型結(jié)合起來(lái),并且加入兩種模型均忽略了的風(fēng)險(xiǎn)分析。且加入兩種模型均忽略了的風(fēng)險(xiǎn)分析。螺旋模型的基本思想是,使用原型及其他方法來(lái)螺旋模型的基本思想是,使用原型及其他方法來(lái)盡量降低風(fēng)險(xiǎn)。盡量降低風(fēng)險(xiǎn)。10.2 傳統(tǒng)軟件過(guò)程模型螺旋模型螺旋模型 理解這種模型的一理解這種模型的一個(gè)簡(jiǎn)便方法,是把個(gè)簡(jiǎn)便方法,是把它看做在每個(gè)階段它看做在每個(gè)階段之前都增加了風(fēng)險(xiǎn)之前都增加了風(fēng)險(xiǎn)分析過(guò)程的快速原分析過(guò)程的快速原型模型。型模型。10.2 傳統(tǒng)軟件過(guò)程模型完整的螺旋模型完整的螺旋模型 10.2 傳統(tǒng)軟件過(guò)程模型完整的螺旋模型完整的螺旋模型 在螺旋模型中,軟件過(guò)程表示成一個(gè)螺線,而不是像以往在螺旋模型中,軟件過(guò)程表示成一個(gè)螺線,而不是像以往的模型那樣表示為一個(gè)具有回溯的活動(dòng)序列。的模型那樣表示為一個(gè)具有回溯的活動(dòng)序列。在螺線上的每一個(gè)循環(huán)表示過(guò)程的一個(gè)階段。在螺線上的每一個(gè)循環(huán)表示過(guò)程的一個(gè)階段。每個(gè)階段開(kāi)始時(shí)的任務(wù)是確定該階段的目標(biāo)、為完成這些每個(gè)階段開(kāi)始時(shí)的任務(wù)是確定該階段的目標(biāo)、為完成這些目標(biāo)選擇方案及設(shè)定這些方案的約束條件。接下來(lái)的任務(wù)目標(biāo)選擇方案及設(shè)定這些方案的約束條件。接下來(lái)的任務(wù)是,從風(fēng)險(xiǎn)角度分析上一步的工作結(jié)果,努力排除各種潛是,從風(fēng)險(xiǎn)角度分析上一步的工作結(jié)果,努力排除各種潛在的風(fēng)險(xiǎn),通常用建造原型的方法來(lái)排除風(fēng)險(xiǎn)。如果成功在的風(fēng)險(xiǎn),通常用建造原型的方法來(lái)排除風(fēng)險(xiǎn)。如果成功地排除了所有風(fēng)險(xiǎn),則啟動(dòng)下一步開(kāi)發(fā)步驟,在這個(gè)步驟地排除了所有風(fēng)險(xiǎn),則啟動(dòng)下一步開(kāi)發(fā)步驟,在這個(gè)步驟的工作過(guò)程相當(dāng)于純粹的瀑布模型。最后是評(píng)價(jià)該階段的的工作過(guò)程相當(dāng)于純粹的瀑布模型。最后是評(píng)價(jià)該階段的工作成果并計(jì)劃下一個(gè)階段的工作。工作成果并計(jì)劃下一個(gè)階段的工作。10.2 傳統(tǒng)軟件過(guò)程模型螺旋模型的螺旋模型的4項(xiàng)活動(dòng)項(xiàng)活動(dòng) 螺線上的每一個(gè)循環(huán)可劃分為螺線上的每一個(gè)循環(huán)可劃分為4 4個(gè)象限,分別表達(dá)了個(gè)象限,分別表達(dá)了4 4個(gè)方個(gè)方面的活動(dòng)。面的活動(dòng)。(1)(1)目標(biāo)設(shè)定目標(biāo)設(shè)定定義在該階段的目標(biāo),弄清對(duì)過(guò)程和產(chǎn)品定義在該階段的目標(biāo),弄清對(duì)過(guò)程和產(chǎn)品的限制條件,制訂詳細(xì)的管理計(jì)劃,識(shí)別項(xiàng)目風(fēng)險(xiǎn),可能的限制條件,制訂詳細(xì)的管理計(jì)劃,識(shí)別項(xiàng)目風(fēng)險(xiǎn),可能還要計(jì)劃與這些風(fēng)險(xiǎn)有關(guān)的對(duì)策。還要計(jì)劃與這些風(fēng)險(xiǎn)有關(guān)的對(duì)策。(2)(2)風(fēng)險(xiǎn)估計(jì)與弱化風(fēng)險(xiǎn)估計(jì)與弱化針對(duì)每一個(gè)風(fēng)險(xiǎn)進(jìn)行詳細(xì)分析,設(shè)針對(duì)每一個(gè)風(fēng)險(xiǎn)進(jìn)行詳細(xì)分析,設(shè)想弱化風(fēng)險(xiǎn)的步驟。想弱化風(fēng)險(xiǎn)的步驟。(3)(3)開(kāi)發(fā)與驗(yàn)證開(kāi)發(fā)與驗(yàn)證評(píng)價(jià)風(fēng)險(xiǎn)之后選擇系統(tǒng)開(kāi)發(fā)模型。評(píng)價(jià)風(fēng)險(xiǎn)之后選擇系統(tǒng)開(kāi)發(fā)模型。(4)(4)計(jì)劃計(jì)劃評(píng)價(jià)開(kāi)發(fā)工作,確定是否繼續(xù)進(jìn)行螺線的下一評(píng)價(jià)開(kāi)發(fā)工作,確定是否繼續(xù)進(jìn)行螺線的下一個(gè)循環(huán)。如果確定要繼續(xù),則計(jì)劃項(xiàng)目的下一個(gè)階段的工個(gè)循環(huán)。如果確定要繼續(xù),則計(jì)劃項(xiàng)目的下一個(gè)階段的工作。作。10.2 傳統(tǒng)軟件過(guò)程模型螺旋模型的優(yōu)點(diǎn)螺旋模型的優(yōu)點(diǎn) 對(duì)可選方案和約束條件的強(qiáng)調(diào)有利于已有軟件的對(duì)可選方案和約束條件的強(qiáng)調(diào)有利于已有軟件的重用,也有助于把軟件質(zhì)量作為軟件開(kāi)發(fā)的一個(gè)重用,也有助于把軟件質(zhì)量作為軟件開(kāi)發(fā)的一個(gè)重要目標(biāo)。重要目標(biāo)。減少了過(guò)多測(cè)試或測(cè)試不足所帶來(lái)的風(fēng)險(xiǎn)。減少了過(guò)多測(cè)試或測(cè)試不足所帶來(lái)的風(fēng)險(xiǎn)。在螺旋模型中維護(hù)只是模型的另一個(gè)周期,因而在螺旋模型中維護(hù)只是模型的另一個(gè)周期,因而在維護(hù)和開(kāi)發(fā)之間并沒(méi)有本質(zhì)區(qū)別。在維護(hù)和開(kāi)發(fā)之間并沒(méi)有本質(zhì)區(qū)別。10.2 傳統(tǒng)軟件過(guò)程模型螺旋模型的缺點(diǎn)螺旋模型的缺點(diǎn) 螺旋模型是風(fēng)險(xiǎn)驅(qū)動(dòng)的,因此要求軟件開(kāi)發(fā)人員螺旋模型是風(fēng)險(xiǎn)驅(qū)動(dòng)的,因此要求軟件開(kāi)發(fā)人員必須具有豐富的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和這方面的專(zhuān)門(mén)知必須具有豐富的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和這方面的專(zhuān)門(mén)知識(shí),否則將出現(xiàn)真正的風(fēng)險(xiǎn):當(dāng)項(xiàng)目實(shí)際上正在識(shí),否則將出現(xiàn)真正的風(fēng)險(xiǎn):當(dāng)項(xiàng)目實(shí)際上正在走向?yàn)?zāi)難時(shí),開(kāi)發(fā)人員可能還以為一切正常。走向?yàn)?zāi)難時(shí),開(kāi)發(fā)人員可能還以為一切正常。10.2 傳統(tǒng)軟件過(guò)程模型噴泉模型噴泉模型 噴泉模型是典型的面向噴泉模型是典型的面向?qū)ο笊芷谀P?。?duì)象生命周期模型?!皣娙獓娙币辉~體現(xiàn)了迭一詞體現(xiàn)了迭代和無(wú)間隙特性。圖中代和無(wú)間隙特性。圖中代表不同階段的圓圈相代表不同階段的圓圈相互重疊,這明確表示兩互重疊,這明確表示兩個(gè)活動(dòng)之間存在重疊。個(gè)活動(dòng)之間存在重疊。10.3 現(xiàn)代軟件過(guò)程模型基于構(gòu)件的開(kāi)發(fā)模型基于構(gòu)件的開(kāi)發(fā)模型 基于構(gòu)件的軟件工程(基于構(gòu)件的軟件工程(component-based component-based software engineeringsoftware engineering,CBSECBSE)是強(qiáng)調(diào)使用可復(fù))是強(qiáng)調(diào)使用可復(fù)用的軟件用的軟件“構(gòu)件構(gòu)件”來(lái)設(shè)計(jì)和構(gòu)造基于計(jì)算機(jī)的系來(lái)設(shè)計(jì)和構(gòu)造基于計(jì)算機(jī)的系統(tǒng)的過(guò)程。統(tǒng)的過(guò)程。ClementsClements對(duì)對(duì)CBSECBSE給出了如下描述。給出了如下描述。10.3 現(xiàn)代軟件過(guò)程模型基于構(gòu)件的開(kāi)發(fā)模型基于構(gòu)件的開(kāi)發(fā)模型 ClementsClements對(duì)對(duì)CBSECBSE給出了如下描述。給出了如下描述。CBSECBSE正在改變大型軟件系統(tǒng)的開(kāi)發(fā)方式。正在改變大型軟件系統(tǒng)的開(kāi)發(fā)方式。CBSECBSE體現(xiàn)體現(xiàn)了了FrodFrod Brooks Brooks和其他人支持的和其他人支持的“購(gòu)買(mǎi),而非構(gòu)造購(gòu)買(mǎi),而非構(gòu)造”的思想。就如同早期的子程序?qū)⒊绦騿T從考慮編的思想。就如同早期的子程序?qū)⒊绦騿T從考慮編程細(xì)節(jié)中解脫出來(lái)一樣,程細(xì)節(jié)中解脫出來(lái)一樣,CBSECBSE將考慮的重點(diǎn)從編碼將考慮的重點(diǎn)從編碼轉(zhuǎn)移到組裝軟件系統(tǒng)??紤]的焦點(diǎn)是轉(zhuǎn)移到組裝軟件系統(tǒng)??紤]的焦點(diǎn)是“集成集成”,而,而不再是不再是“實(shí)現(xiàn)實(shí)現(xiàn)”。這樣做的基礎(chǔ)是假定在很多大型。這樣做的基礎(chǔ)是假定在很多大型軟件系統(tǒng)中存在足夠多的共性,使得開(kāi)發(fā)可復(fù)用的軟件系統(tǒng)中存在足夠多的共性,使得開(kāi)發(fā)可復(fù)用的構(gòu)件來(lái)滿足這些共性是可行的。構(gòu)件來(lái)滿足這些共性是可行的。10.3 現(xiàn)代軟件過(guò)程模型基于構(gòu)件的開(kāi)發(fā)模型基于構(gòu)件的開(kāi)發(fā)模型 當(dāng)軟件團(tuán)隊(duì)使用傳統(tǒng)的需求獲取技術(shù)確定了待開(kāi)當(dāng)軟件團(tuán)隊(duì)使用傳統(tǒng)的需求獲取技術(shù)確定了待開(kāi)發(fā)軟件的系統(tǒng)需求時(shí),該過(guò)程開(kāi)始。發(fā)軟件的系統(tǒng)需求時(shí),該過(guò)程開(kāi)始。體系結(jié)構(gòu)設(shè)計(jì)完成后,并不立即進(jìn)行詳細(xì)設(shè)計(jì)任體系結(jié)構(gòu)設(shè)計(jì)完成后,并不立即進(jìn)行詳細(xì)設(shè)計(jì)任務(wù),而是針對(duì)每一系統(tǒng)需求考慮以下問(wèn)題務(wù),而是針對(duì)每一系統(tǒng)需求考慮以下問(wèn)題:(1)(1)現(xiàn)有的商品化構(gòu)件(現(xiàn)有的商品化構(gòu)件(commercial off-the-shelfcommercial off-the-shelf,COTSCOTS)是否能夠?qū)崿F(xiàn)該需求?)是否能夠?qū)崿F(xiàn)該需求?(2)(2)內(nèi)部開(kāi)發(fā)的可復(fù)用構(gòu)件是否能夠?qū)崿F(xiàn)該需求??jī)?nèi)部開(kāi)發(fā)的可復(fù)用構(gòu)件是否能夠?qū)崿F(xiàn)該需求?(3)(3)可用構(gòu)件的接口與待構(gòu)造系統(tǒng)的體系結(jié)構(gòu)是否相容?可用構(gòu)件的接口與待構(gòu)造系統(tǒng)的體系結(jié)構(gòu)是否相容?10.3 現(xiàn)代軟件過(guò)程模型基于構(gòu)件的開(kāi)發(fā)模型基于構(gòu)件的開(kāi)發(fā)模型 10.3 現(xiàn)代軟件過(guò)程模型開(kāi)發(fā)步驟開(kāi)發(fā)步驟 不考慮構(gòu)件的開(kāi)發(fā)技術(shù),基于構(gòu)件的開(kāi)發(fā)模型由不考慮構(gòu)件的開(kāi)發(fā)技術(shù),基于構(gòu)件的開(kāi)發(fā)模型由以下步驟組成:以下步驟組成:(1)(1)對(duì)于該問(wèn)題領(lǐng)域的基于構(gòu)件的可用產(chǎn)品進(jìn)行研究對(duì)于該問(wèn)題領(lǐng)域的基于構(gòu)件的可用產(chǎn)品進(jìn)行研究和評(píng)估。和評(píng)估。(2)(2)考慮構(gòu)件集成的問(wèn)題。考慮構(gòu)件集成的問(wèn)題。(3)(3)設(shè)計(jì)軟件架構(gòu)以容納這些構(gòu)件。設(shè)計(jì)軟件架構(gòu)以容納這些構(gòu)件。(4)(4)將構(gòu)件集成到架構(gòu)中。將構(gòu)件集成到架構(gòu)中。(5)(5)進(jìn)行充分的測(cè)試以保證功能正常。進(jìn)行充分的測(cè)試以保證功能正常。10.3 現(xiàn)代軟件過(guò)程模型典型的構(gòu)件模型典型的構(gòu)件模型 (1)(1)OMG/CORBAOMG/CORBA。對(duì)象管理組織發(fā)布了公共對(duì)象請(qǐng)求代理體系。對(duì)象管理組織發(fā)布了公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu)(結(jié)構(gòu)(OMG/CORBAOMG/CORBA),一個(gè)對(duì)象請(qǐng)求代理提供了多種服務(wù)),一個(gè)對(duì)象請(qǐng)求代理提供了多種服務(wù)使得可復(fù)用構(gòu)件(對(duì)象)可以與其他構(gòu)件通信。使得可復(fù)用構(gòu)件(對(duì)象)可以與其他構(gòu)件通信。(2)(2)Microsoft COMMicrosoft COM。微軟公司開(kāi)發(fā)了構(gòu)件對(duì)象模型(。微軟公司開(kāi)發(fā)了構(gòu)件對(duì)象模型(COMCOM),),此模型提供了運(yùn)行于此模型提供了運(yùn)行于WindowsWindows操作系統(tǒng)下的單個(gè)應(yīng)用中使操作系統(tǒng)下的單個(gè)應(yīng)用中使用不同廠商生產(chǎn)的構(gòu)件的規(guī)格說(shuō)明。用不同廠商生產(chǎn)的構(gòu)件的規(guī)格說(shuō)明。(3)(3)Sun JavaBeanSun JavaBean構(gòu)件構(gòu)件。JavaBeanJavaBean構(gòu)件系統(tǒng)是一個(gè)可移植的、構(gòu)件系統(tǒng)是一個(gè)可移植的、平臺(tái)獨(dú)立的、使用平臺(tái)獨(dú)立的、使用JavaJava程序設(shè)計(jì)語(yǔ)言開(kāi)發(fā)的程序設(shè)計(jì)語(yǔ)言開(kāi)發(fā)的CBSECBSE基礎(chǔ)設(shè)施?;A(chǔ)設(shè)施。10.3 現(xiàn)代軟件過(guò)程模型形式化方法模型形式化方法模型 形式化系統(tǒng)開(kāi)發(fā)模型是一種基于形式化數(shù)學(xué)變換形式化系統(tǒng)開(kāi)發(fā)模型是一種基于形式化數(shù)學(xué)變換的軟件開(kāi)發(fā)方法,它可將系統(tǒng)規(guī)格說(shuō)明轉(zhuǎn)換為可的軟件開(kāi)發(fā)方法,它可將系統(tǒng)規(guī)格說(shuō)明轉(zhuǎn)換為可執(zhí)行的程序。執(zhí)行的程序。10.3 現(xiàn)代軟件過(guò)程模型與瀑布模型的區(qū)別與瀑布模型的區(qū)別 軟件需求規(guī)格說(shuō)明被細(xì)化為用數(shù)學(xué)記號(hào)表達(dá)的詳細(xì)的形式軟件需求規(guī)格說(shuō)明被細(xì)化為用數(shù)學(xué)記號(hào)表達(dá)的詳細(xì)的形式化規(guī)格說(shuō)明?;?guī)格說(shuō)明。設(shè)計(jì)、實(shí)現(xiàn)和單元測(cè)試等開(kāi)發(fā)過(guò)程由變換開(kāi)發(fā)過(guò)程代替。設(shè)計(jì)、實(shí)現(xiàn)和單元測(cè)試等開(kāi)發(fā)過(guò)程由變換開(kāi)發(fā)過(guò)程代替。通過(guò)一系列變換將形式化規(guī)格說(shuō)明細(xì)化成為程序。這種細(xì)通過(guò)一系列變換將形式化規(guī)格說(shuō)明細(xì)化成為程序。這種細(xì)化的過(guò)程如圖所示?;倪^(guò)程如圖所示。10.3 現(xiàn)代軟件過(guò)程模型面向方面的軟件開(kāi)發(fā)面向方面的軟件開(kāi)發(fā) 面向方面的軟件開(kāi)發(fā)(面向方面的軟件開(kāi)發(fā)(aspect-oriented aspect-oriented software developmentsoftware development,AOSDAOSD)通常稱(chēng)為面向方)通常稱(chēng)為面向方面編程(面編程(aspect-oriented progammingaspect-oriented progamming,AOPAOP),),是相對(duì)較新的一種軟件工程模型,為定義、說(shuō)明、是相對(duì)較新的一種軟件工程模型,為定義、說(shuō)明、設(shè)計(jì)和構(gòu)建方面(設(shè)計(jì)和構(gòu)建方面(aspectaspect)提供過(guò)程和方法。)提供過(guò)程和方法。10.3 現(xiàn)代軟件過(guò)程模型統(tǒng)一過(guò)程統(tǒng)一過(guò)程 由由BoochBooch、JacobsonJacobson及及RumbaughRumbaugh提出,統(tǒng)一過(guò)程模型如圖提出,統(tǒng)一過(guò)程模型如圖所示。所示。10.3 現(xiàn)代軟件過(guò)程模型統(tǒng)一過(guò)程的工作流統(tǒng)一過(guò)程的工作流 在統(tǒng)一過(guò)程中,有在統(tǒng)一過(guò)程中,有5 5個(gè)核心工作流。個(gè)核心工作流。需求工作流。需求工作流的目標(biāo)是確保開(kāi)發(fā)人員構(gòu)建正需求工作流。需求工作流的目標(biāo)是確保開(kāi)發(fā)人員構(gòu)建正確的系統(tǒng)。確的系統(tǒng)。分析工作流。分析工作流的目標(biāo)是分析和細(xì)化需求。分析工作流。分析工作流的目標(biāo)是分析和細(xì)化需求。設(shè)計(jì)工作流。設(shè)計(jì)工作流是對(duì)分析工作流的細(xì)化,直到設(shè)計(jì)工作流。設(shè)計(jì)工作流是對(duì)分析工作流的細(xì)化,直到設(shè)計(jì)模型可以被程序員實(shí)現(xiàn)為止。設(shè)計(jì)模型可以被程序員實(shí)現(xiàn)為止。實(shí)現(xiàn)工作流。實(shí)現(xiàn)工作流的目標(biāo)是:用選擇的實(shí)現(xiàn)語(yǔ)言實(shí)現(xiàn)工作流。實(shí)現(xiàn)工作流的目標(biāo)是:用選擇的實(shí)現(xiàn)語(yǔ)言實(shí)現(xiàn)目標(biāo)信息系統(tǒng)。實(shí)現(xiàn)目標(biāo)信息系統(tǒng)。測(cè)試工作流。測(cè)試工作流是質(zhì)量保證組的職責(zé)。測(cè)試工作流。測(cè)試工作流是質(zhì)量保證組的職責(zé)。10.3 現(xiàn)代軟件過(guò)程模型統(tǒng)一過(guò)程的階段統(tǒng)一過(guò)程的階段 統(tǒng)一過(guò)程有統(tǒng)一過(guò)程有4 4個(gè)階段,分別是初始階段、細(xì)化階段、構(gòu)造階個(gè)階段,分別是初始階段、細(xì)化階段、構(gòu)造階段和移交階段。段和移交階段。初始階段。初始階段主要關(guān)注項(xiàng)目計(jì)劃和風(fēng)險(xiǎn)評(píng)估,其目初始階段。初始階段主要關(guān)注項(xiàng)目計(jì)劃和風(fēng)險(xiǎn)評(píng)估,其目的是確定是否值得開(kāi)發(fā)目標(biāo)信息系統(tǒng)。的是確定是否值得開(kāi)發(fā)目標(biāo)信息系統(tǒng)。細(xì)化階段。細(xì)化階段關(guān)心定義系統(tǒng)的總體框架,其目標(biāo)是:細(xì)化階段。細(xì)化階段關(guān)心定義系統(tǒng)的總體框架,其目標(biāo)是:細(xì)化初始需求(用況)、細(xì)化體系結(jié)構(gòu)、監(jiān)控風(fēng)險(xiǎn)并細(xì)化細(xì)化初始需求(用況)、細(xì)化體系結(jié)構(gòu)、監(jiān)控風(fēng)險(xiǎn)并細(xì)化它們的優(yōu)先級(jí)、細(xì)化業(yè)務(wù)案例以及制訂項(xiàng)目管理計(jì)劃。它們的優(yōu)先級(jí)、細(xì)化業(yè)務(wù)案例以及制訂項(xiàng)目管理計(jì)劃。構(gòu)造階段。構(gòu)造階段是建立系統(tǒng),構(gòu)造信息系統(tǒng)的第構(gòu)造階段。構(gòu)造階段是建立系統(tǒng),構(gòu)造信息系統(tǒng)的第1 1個(gè)具個(gè)具有操作質(zhì)量的版本,以能夠交付給客戶(hù)進(jìn)行有操作質(zhì)量的版本,以能夠交付給客戶(hù)進(jìn)行 測(cè)試的版本結(jié)測(cè)試的版本結(jié)束,有時(shí)稱(chēng)為測(cè)試版本。束,有時(shí)稱(chēng)為測(cè)試版本。移交階段。移交階段包含移交階段。移交階段包含 測(cè)試時(shí)期,以發(fā)布完整的系統(tǒng)而測(cè)試時(shí)期,以發(fā)布完整的系統(tǒng)而終止,其目標(biāo)是確保信息系統(tǒng)真正滿足客戶(hù)的需求。終止,其目標(biāo)是確保信息系統(tǒng)真正滿足客戶(hù)的需求。10.3 現(xiàn)代軟件過(guò)程模型敏捷過(guò)程模型敏捷過(guò)程模型 20012001年,年,Kent BeckKent Beck等等1717名編程大師發(fā)表名編程大師發(fā)表“敏捷軟件開(kāi)發(fā)敏捷軟件開(kāi)發(fā)”宣言:宣言:我們正在通過(guò)親身實(shí)踐以及幫助他人實(shí)踐的方式來(lái)揭示更我們正在通過(guò)親身實(shí)踐以及幫助他人實(shí)踐的方式來(lái)揭示更好的軟件開(kāi)發(fā)之路,通過(guò)這項(xiàng)工作,我們認(rèn)為:好的軟件開(kāi)發(fā)之路,通過(guò)這項(xiàng)工作,我們認(rèn)為:個(gè)體和交互勝過(guò)過(guò)程和工具;個(gè)體和交互勝過(guò)過(guò)程和工具;可工作軟件勝過(guò)寬泛的文檔;可工作軟件勝過(guò)寬泛的文檔;客戶(hù)合作勝過(guò)合同談判;客戶(hù)合作勝過(guò)合同談判;響應(yīng)變化勝過(guò)遵循計(jì)劃。響應(yīng)變化勝過(guò)遵循計(jì)劃。10.3 現(xiàn)代軟件過(guò)程模型敏捷過(guò)程模型敏捷過(guò)程模型 對(duì)于敏捷開(kāi)發(fā),對(duì)于敏捷開(kāi)發(fā),IvarIvar Jacobson Jacobson給出了下面非常有用的論述。給出了下面非常有用的論述?!懊艚荩艚荩ˋgilityAgility)已經(jīng)成為當(dāng)今現(xiàn)代軟件過(guò)程的一個(gè)時(shí)髦用)已經(jīng)成為當(dāng)今現(xiàn)代軟件過(guò)程的一個(gè)時(shí)髦用詞。每個(gè)人都是敏捷的,敏捷團(tuán)隊(duì)是能夠適當(dāng)響應(yīng)變化的靈詞。每個(gè)人都是敏捷的,敏捷團(tuán)隊(duì)是能夠適當(dāng)響應(yīng)變化的靈活團(tuán)隊(duì)。變化就是軟件開(kāi)發(fā)本身,軟件構(gòu)建有變化、團(tuán)隊(duì)成活團(tuán)隊(duì)。變化就是軟件開(kāi)發(fā)本身,軟件構(gòu)建有變化、團(tuán)隊(duì)成員在變化、使用新技術(shù)會(huì)帶來(lái)變化,各種變化都會(huì)對(duì)開(kāi)發(fā)的員在變化、使用新技術(shù)會(huì)帶來(lái)變化,各種變化都會(huì)對(duì)開(kāi)發(fā)的軟件產(chǎn)品以及項(xiàng)目本身造成影響。我們必須接受的是支持變軟件產(chǎn)品以及項(xiàng)目本身造成影響。我們必須接受的是支持變化的意識(shí),它應(yīng)當(dāng)根植于軟件開(kāi)發(fā)中的每一件事中,因?yàn)檫@化的意識(shí),它應(yīng)當(dāng)根植于軟件開(kāi)發(fā)中的每一件事中,因?yàn)檫@是軟件的心臟與靈魂。敏捷團(tuán)隊(duì)意識(shí)到軟件是團(tuán)隊(duì)中所有人是軟件的心臟與靈魂。敏捷團(tuán)隊(duì)意識(shí)到軟件是團(tuán)隊(duì)中所有人共同開(kāi)發(fā)完成的,這些人的個(gè)人技能和合作能力是項(xiàng)目成功共同開(kāi)發(fā)完成的,這些人的個(gè)人技能和合作能力是項(xiàng)目成功的關(guān)鍵所在。的關(guān)鍵所在?!?0.3 現(xiàn)代軟件過(guò)程模型敏捷過(guò)程模型敏捷過(guò)程模型 任何一個(gè)敏捷過(guò)程都可以由所強(qiáng)調(diào)的任何一個(gè)敏捷過(guò)程都可以由所強(qiáng)調(diào)的3 3個(gè)關(guān)鍵假設(shè)識(shí)別出來(lái),個(gè)關(guān)鍵假設(shè)識(shí)別出來(lái),這這3 3個(gè)假設(shè)可適用于大多數(shù)軟件項(xiàng)目。個(gè)假設(shè)可適用于大多數(shù)軟件項(xiàng)目。(1)(1)提前預(yù)測(cè)哪些需求是穩(wěn)定的、哪些需求會(huì)變化非常困難。提前預(yù)測(cè)哪些需求是穩(wěn)定的、哪些需求會(huì)變化非常困難。同樣的,預(yù)測(cè)項(xiàng)目進(jìn)行中客戶(hù)優(yōu)先級(jí)的變化也很困難。同樣的,預(yù)測(cè)項(xiàng)目進(jìn)行中客戶(hù)優(yōu)先級(jí)的變化也很困難。(2)(2)對(duì)很多軟件,設(shè)計(jì)和構(gòu)建是交錯(cuò)進(jìn)行的。事實(shí)上,兩種活對(duì)很多軟件,設(shè)計(jì)和構(gòu)建是交錯(cuò)進(jìn)行的。事實(shí)上,兩種活動(dòng)應(yīng)當(dāng)順序開(kāi)展以保證通過(guò)構(gòu)建實(shí)施來(lái)驗(yàn)證設(shè)計(jì)模型,而動(dòng)應(yīng)當(dāng)順序開(kāi)展以保證通過(guò)構(gòu)建實(shí)施來(lái)驗(yàn)證設(shè)計(jì)模型,而在通過(guò)構(gòu)建驗(yàn)證之前很難估計(jì)應(yīng)該設(shè)計(jì)到什么程度。在通過(guò)構(gòu)建驗(yàn)證之前很難估計(jì)應(yīng)該設(shè)計(jì)到什么程度。(3)(3)從制訂計(jì)劃的角度來(lái)看,分析、設(shè)計(jì)、構(gòu)建和測(cè)試并不像從制訂計(jì)劃的角度來(lái)看,分析、設(shè)計(jì)、構(gòu)建和測(cè)試并不像我們所設(shè)想的那么容易預(yù)測(cè)。我們所設(shè)想的那么容易預(yù)測(cè)。10.3 現(xiàn)代軟件過(guò)程模型極限編程極限編程 極限編程(極限編程(eXtremeeXtreme Programming Programming,XPXP)使用面向?qū)ο蠓剑┦褂妹嫦驅(qū)ο蠓椒ㄗ鳛橥扑]的開(kāi)發(fā)范型。法作為推薦的開(kāi)發(fā)范型。XPXP包含了策劃、設(shè)計(jì)、編碼和測(cè)包含了策劃、設(shè)計(jì)、編碼和測(cè)試試4 4個(gè)框架活動(dòng)的規(guī)則和實(shí)踐。個(gè)框架活動(dòng)的規(guī)則和實(shí)踐。10.3 現(xiàn)代軟件過(guò)程模型極限編程的框架活動(dòng)極限編程的框架活動(dòng) 策劃。策劃活動(dòng)開(kāi)始于建立健全描述待開(kāi)發(fā)軟件特征與策劃。策劃活動(dòng)開(kāi)始于建立健全描述待開(kāi)發(fā)軟件特征與功能需求的功能需求的“故事故事”(也稱(chēng)為用戶(hù)故事)。(也稱(chēng)為用戶(hù)故事)。設(shè)計(jì)。設(shè)計(jì)。XPXP設(shè)計(jì)嚴(yán)格遵循設(shè)計(jì)嚴(yán)格遵循KISKIS(keep it simplekeep it simple,保持簡(jiǎn)保持簡(jiǎn)潔)原則,通常更愿意使用簡(jiǎn)單設(shè)計(jì)而不是更為復(fù)雜的表潔)原則,通常更愿意使用簡(jiǎn)單設(shè)計(jì)而不是更為復(fù)雜的表述。述。編碼。編碼。XPXP推薦在故事開(kāi)發(fā)和基本設(shè)計(jì)完成之后,團(tuán)隊(duì)不推薦在故事開(kāi)發(fā)和基本設(shè)計(jì)完成之后,團(tuán)隊(duì)不應(yīng)直接開(kāi)始編碼,而是開(kāi)發(fā)一系列用于檢測(cè)本次(軟件增應(yīng)直接開(kāi)始編碼,而是開(kāi)發(fā)一系列用于檢測(cè)本次(軟件增量)發(fā)行包括所有故事的單元測(cè)試,一旦建立起單元測(cè)試,量)發(fā)行包括所有故事的單元測(cè)試,一旦建立起單元測(cè)試,開(kāi)發(fā)者就可以更集中精力于必須實(shí)現(xiàn)的內(nèi)容以通過(guò)單元測(cè)開(kāi)發(fā)者就可以更集中精力于必須實(shí)現(xiàn)的內(nèi)容以通過(guò)單元測(cè)試。試。測(cè)試。測(cè)試。10.3 現(xiàn)代軟件過(guò)程模型自適應(yīng)軟件開(kāi)發(fā)自適應(yīng)軟件開(kāi)發(fā) 自適應(yīng)軟件開(kāi)發(fā)(自適應(yīng)軟件開(kāi)發(fā)(adaptive software adaptive software developmentdevelopment,ASDASD)是由)是由Jim HighsmithJim Highsmith提出的;提出的;它可作為構(gòu)建復(fù)雜軟件和系統(tǒng)的一項(xiàng)技術(shù),其基它可作為構(gòu)建復(fù)雜軟件和系統(tǒng)的一項(xiàng)技術(shù),其基本概念著眼于人員合作和團(tuán)隊(duì)自組織。本概念著眼于人員合作和團(tuán)隊(duì)自組織。10.3 現(xiàn)代軟件過(guò)程模型自適應(yīng)軟件開(kāi)發(fā)模型自適應(yīng)軟件開(kāi)發(fā)模型 10.3 現(xiàn)代軟件過(guò)程模型自適應(yīng)軟件開(kāi)發(fā)的階段自適應(yīng)軟件開(kāi)發(fā)的階段 (1)(1)思考:思考過(guò)程中,開(kāi)始項(xiàng)目規(guī)劃并完成自適應(yīng)循環(huán)策思考:思考過(guò)程中,開(kāi)始項(xiàng)目規(guī)劃并完成自適應(yīng)循環(huán)策劃。自適應(yīng)循環(huán)策劃通過(guò)使用項(xiàng)目開(kāi)始信息,來(lái)確定項(xiàng)目劃。自適應(yīng)循環(huán)策劃通過(guò)使用項(xiàng)目開(kāi)始信息,來(lái)確定項(xiàng)目所需的一系列軟件增量發(fā)布循環(huán)。所需的一系列軟件增量發(fā)布循環(huán)。(2)(2)協(xié)作:受激勵(lì)的人員以超越其聰明才智和獨(dú)創(chuàng)成果的方協(xié)作:受激勵(lì)的人員以超越其聰明才智和獨(dú)創(chuàng)成果的方式共同工作,協(xié)作方法是所有敏捷方法中不斷重現(xiàn)的主旋式共同工作,協(xié)作方法是所有敏捷方法中不斷重現(xiàn)的主旋律。律。(3)(3)學(xué)習(xí):當(dāng)學(xué)習(xí):當(dāng)ASDASD團(tuán)隊(duì)成員開(kāi)始開(kāi)發(fā)作為自適應(yīng)循環(huán)一部分的團(tuán)隊(duì)成員開(kāi)始開(kāi)發(fā)作為自適應(yīng)循環(huán)一部分的構(gòu)件時(shí),其重點(diǎn)是在完成循環(huán)的過(guò)程中學(xué)習(xí)盡可能多的東構(gòu)件時(shí),其重點(diǎn)是在完成循環(huán)的過(guò)程中學(xué)習(xí)盡可能多的東西。西。小結(jié)傳統(tǒng)軟件過(guò)程模型確實(shí)給軟件開(kāi)發(fā)帶來(lái)秩序和結(jié)傳統(tǒng)軟件過(guò)程模型確實(shí)給軟件開(kāi)發(fā)帶來(lái)秩序和結(jié)構(gòu)。每一個(gè)傳統(tǒng)模型都實(shí)現(xiàn)了一組通用框架活動(dòng):構(gòu)。每一個(gè)傳統(tǒng)模型都實(shí)現(xiàn)了一組通用框架活動(dòng):溝通、計(jì)劃、建模、構(gòu)建和部署。溝通、計(jì)劃、建模、構(gòu)建和部署。瀑布模型建議框架活動(dòng)的一個(gè)線性流程,這在軟瀑布模型建議框架活動(dòng)的一個(gè)線性流程,這在軟件世界里,通常與當(dāng)代的軟件開(kāi)發(fā)的現(xiàn)實(shí)情況不件世界里,通常與當(dāng)代的軟件開(kāi)發(fā)的現(xiàn)實(shí)情況不符(如持續(xù)的變更、演化的系統(tǒng)、緊迫的開(kāi)發(fā)時(shí)符(如持續(xù)的變更、演化的系統(tǒng)、緊迫的開(kāi)發(fā)時(shí)間)。但瀑布模型確實(shí)適用于需求定義清楚且穩(wěn)間)。但瀑布模型確實(shí)適用于需求定義清楚且穩(wěn)定的軟件開(kāi)發(fā)。定的軟件開(kāi)發(fā)。小結(jié)增量軟件過(guò)程模型通過(guò)一系列的增量發(fā)布產(chǎn)生軟增量軟件過(guò)程模型通過(guò)一系列的增量發(fā)布產(chǎn)生軟件。件。RADRAD模型是為大型且必須在嚴(yán)格的時(shí)間內(nèi)提交模型是為大型且必須在嚴(yán)格的時(shí)間內(nèi)提交的項(xiàng)目而設(shè)計(jì)的。的項(xiàng)目而設(shè)計(jì)的。演化過(guò)程模型認(rèn)識(shí)到大多數(shù)軟件工程項(xiàng)目的迭代演化過(guò)程模型認(rèn)識(shí)到大多數(shù)軟件工程項(xiàng)目的迭代特性,其設(shè)計(jì)的目的是為了適應(yīng)變更。演化模型,特性,其設(shè)計(jì)的目的是為了適應(yīng)變更。演化模型,如原型及螺旋模型,快速地產(chǎn)生增量的工作產(chǎn)品。如原型及螺旋模型,快速地產(chǎn)生增量的工作產(chǎn)品。這些模型可以應(yīng)用于所有的軟件工程活動(dòng)這些模型可以應(yīng)用于所有的軟件工程活動(dòng)從從概念開(kāi)發(fā)到長(zhǎng)期的軟件維護(hù)。概念開(kāi)發(fā)到長(zhǎng)期的軟件維護(hù)。小結(jié)基于構(gòu)件的模型強(qiáng)調(diào)構(gòu)件重用及組裝。形式化方基于構(gòu)件的模型強(qiáng)調(diào)構(gòu)件重用及組裝。形式化方法模型提倡采用數(shù)學(xué)的方法進(jìn)行軟件開(kāi)發(fā)和驗(yàn)證。法模型提倡采用數(shù)學(xué)的方法進(jìn)行軟件開(kāi)發(fā)和驗(yàn)證。面向方面的模型目的是解決跨越整個(gè)軟件體系架面向方面的模型目的是解決跨越整個(gè)軟件體系架構(gòu)的橫切關(guān)注。構(gòu)的橫切關(guān)注。統(tǒng)一過(guò)程模型是一種統(tǒng)一過(guò)程模型是一種“用例驅(qū)動(dòng)、以體系結(jié)構(gòu)為用例驅(qū)動(dòng)、以體系結(jié)構(gòu)為核心、迭代及增量核心、迭代及增量”的軟件過(guò)程框架,由的軟件過(guò)程框架,由UMLUML方法方法和工具支持。和工具支持。
收藏
編號(hào):65494723
類(lèi)型:共享資源
大?。?span id="mzebxcnn0" class="font-tahoma">6.60MB
格式:ZIP
上傳時(shí)間:2022-03-24
40
積分
- 關(guān) 鍵 詞:
-
軟件工程基礎(chǔ)
軟件工程
基礎(chǔ)
全套
PPT
課件
- 資源描述:
-
《軟件工程基礎(chǔ)》全套PPT課件,軟件工程基礎(chǔ),軟件工程,基礎(chǔ),全套,PPT,課件
展開(kāi)閱讀全文
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
裝配圖網(wǎng)所有資源均是用戶(hù)自行上傳分享,僅供網(wǎng)友學(xué)習(xí)交流,未經(jīng)上傳用戶(hù)書(shū)面授權(quán),請(qǐng)勿作他用。