軟件工程過程模型.ppt_第1頁
軟件工程過程模型.ppt_第2頁
軟件工程過程模型.ppt_第3頁
軟件工程過程模型.ppt_第4頁
軟件工程過程模型.ppt_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第1、2章軟件工程流程模型,2.1章基于軟件工程技術(shù)的2.2軟件工程流程2.3軟件流程模型2.4線性序列模型2.5原型模型2.6快速應(yīng)用節(jié)目開發(fā)模型2.7進(jìn)化軟件流程模型2.8軟件流程技術(shù)2.9軟件重用技術(shù)2.10摘要,2,圖2.1軟件工程流程層次結(jié)構(gòu)圖,軟件工程圖:2。2、流程層是軟件工程基層。RUP流程、極限(XP)流程、敏捷軟件流程(Agile S.P)等當(dāng)前流行的軟件工程流程包括RUP流程、極端(XP)流程和敏捷流程(Agile S.P)。3、軟件工程方法涵蓋了需求分析、設(shè)計(jì)、編程、測試、維護(hù)等所有方面,并提供了技術(shù)“怎么辦”的方法。4、工具層支持流程和方法,使工程活動、管理活動可以自

2、動、半自動地進(jìn)行。例如,Erwin是當(dāng)前流行的數(shù)據(jù)庫建模工具,Rationnal Rose是面向?qū)ο蟮慕9ぞ?,組態(tài)管理工具等。2.1基于軟件工程技術(shù)、4,2.2軟件工程進(jìn)程、軟件工程進(jìn)程是開發(fā)或維護(hù)軟件和相關(guān)產(chǎn)品的一系列活動。軟件工程流程通常包括四個(gè)茄子基本流程活動。(1)軟件規(guī)格說明:指定軟件功能、性能和操作限制;(2)軟件開發(fā):創(chuàng)建符合規(guī)格說明的軟件,包括設(shè)計(jì)和編碼;(3)確認(rèn)軟件:軟件確認(rèn)可以滿足客戶的要求;軟件測試響應(yīng);(4)軟件演變:為了滿足客戶的更改要求,在軟件使用過程中必須進(jìn)行進(jìn)化,以最大限度地延長軟件生命周期此外,良好的軟件過程還應(yīng)包括幾個(gè)茄子“保護(hù)”活動。5,在具體的工程過

3、程中,根據(jù)實(shí)際需要,可以徐璐使用其他流程模型進(jìn)行這些基本活動和保護(hù)活動。好的軟件工程過程必須有以下特點(diǎn):(1)理解性。(2)可見性:每個(gè)流程活動以明確的結(jié)果結(jié)束,并使流程進(jìn)度顯示在外部。(3)支持:輕松支持CASE工具。(4)可接受性:更容易接受和使用軟件工程師。(5)可靠性:過程錯(cuò)誤可能不會發(fā)生,也可能在產(chǎn)品錯(cuò)誤發(fā)生之前發(fā)現(xiàn)過程錯(cuò)誤。(6)堅(jiān)固:不受意外問題的干擾。(7)可服務(wù)性:根據(jù)開發(fā)組織的需求變化,改善流程。(8)效率:從軟件規(guī)格說明開始,可以快速完成和使用開發(fā)。2.2軟件工程進(jìn)程、6、圖2.2軟件工程進(jìn)程、軟件進(jìn)程可以用圖2.2所示的格式表示。什么是2.2軟件工程流程、7,2.3軟件

4、流程模型和軟件工程流程模型?在具體的實(shí)際工程活動中,軟件工程師必須設(shè)計(jì)和提取的開發(fā)戰(zhàn)略,確定軟件過程中的基本步驟,確定相關(guān)過程、方法、工具。牙齒策略通常稱為“軟件工程過程模型”。8,圖2.3解決問題循環(huán)的各個(gè)階段,2.3軟件過程模型,從宏觀上看,所有軟件開發(fā)過程都是一個(gè)循環(huán)問題解決的過程。如圖2.3所示。9,上述問題循環(huán)解決過程可以應(yīng)用于考慮整個(gè)系統(tǒng)開發(fā)的宏階段、開發(fā)節(jié)目組件的中間階段、代碼編寫階段等多個(gè)茄子軟件工程開發(fā)級別(階段)。因此,可以使用分層集合表示法。您可以定義陣列,然后以連續(xù)、小的規(guī)模遞歸應(yīng)用它們,以提供工藝的理想視圖。如圖2.4所示,問題循環(huán)解決過程的每個(gè)階段都包含相同的問題循

5、環(huán)解決過程。、2.3軟件流程模型、10、圖2.4問題循環(huán)解決階段、2.3軟件流程模型、11、軟件工程實(shí)踐中的瀑布模型、原型模型、快速應(yīng)用程序開發(fā)模型、增量模型、螺旋模型、形式方法模型、RUP (RUP流程模型的通用性:通常為“定義”定義活動主要是掌握軟件“做什么”。發(fā)展活動集中解決軟件“怎么辦”。維護(hù)活動聚集在軟件“修改”的“What-How-Change”中。2.3軟件流程模型、12,2.4瀑布模型、瀑布模型(也稱為線性序列模型或軟件生命周期模型)是1970年W.Royce提出的。瀑布模型遵循軟件生存時(shí)間的劃分,明確規(guī)定了各階段的任務(wù),各階段的工作由上而下,依次展開。就像瀑布一樣,分階段落下

6、。(威廉莎士比亞、瀑布、瀑布、瀑布、瀑布、瀑布、瀑布)瀑布模型將軟件生存周期劃分為計(jì)劃期間(或定義期間)、開發(fā)期間和運(yùn)行時(shí)間。牙齒三個(gè)時(shí)期又分為幾個(gè)階段。請參閱圖2.5。13,圖2.5軟件生命周期中的瀑布模型、2.4瀑布模型、14,瀑布模型軟件開發(fā)具有以下特征:第一階段之間的順序和依賴順序意味著僅在上一階段的操作完成后,下一階段的操作才能開始。上一步驟的輸出文檔是下一步驟的輸入文檔。依賴性還表明,只有在上一步驟中有正確的輸出時(shí),才能在下一步驟中獲得正確的結(jié)果。2.4瀑布模型,15,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2明確區(qū)分邏輯設(shè)計(jì)和物理設(shè)計(jì),盡可能推遲程序的

7、物理實(shí)現(xiàn)是瀑布式軟件開發(fā)中重要的地圖思想。為了確保2.4瀑布模型(Waterfall model)、16,3質(zhì)量保證的觀點(diǎn)質(zhì)量,瀑布式軟件開發(fā)在每個(gè)階段都堅(jiān)持兩種茄子重要方法。(1)在每個(gè)階段,必須完成規(guī)定的文件。如果文檔未完成,則認(rèn)為沒有完成牙齒階段的任務(wù)。(2)必須盡快發(fā)現(xiàn)問題,審查各階段完成的文件,消除隱患。2.4瀑布模型,17,瀑布模型帶來的問題:不符合需求的環(huán)境:在項(xiàng)目開發(fā)過程中更改可能會引起混亂。因此,有人將利用線性模型的商業(yè)軟件工程直觀地稱為“在沙灘上建造建筑物”。瀑布模型也往往不能接受項(xiàng)目開始階段自然存在的不確定性。采用線性順序模型時(shí),用戶直到項(xiàng)目開發(fā)末期才能獲得程序的可執(zhí)行版

8、本。(威廉莎士比亞,溫斯頓,瀑布,瀑布,瀑布,瀑布,瀑布,瀑布,瀑布,瀑布)如果大錯(cuò)誤這時(shí)才發(fā)現(xiàn),后果往往是災(zāi)難性的。線性順序模型中每個(gè)步驟的操作都必須輸出為上一步驟的輸出作為輸入,這可能導(dǎo)致操作過程中出現(xiàn)“阻塞”狀態(tài)。2.4瀑布模型,18,存在上述問題,但是線性順序模型仍有積極的一點(diǎn)。1、提供模板,使分析、設(shè)計(jì)、編碼、測試和維護(hù)任務(wù)在模板的地圖下有序展開。可以避免軟件開發(fā)、維護(hù)過程的隨機(jī)狀態(tài)。2、需求決策、相對較少的變更項(xiàng)目、線性順序模型仍然是可以考慮的流程模型。采用這種模式,成功開發(fā)過很多大型軟件工程。,2.4瀑布模型,19,圖2.6原型模型,2.5原型模型,20,2.5原型模型,21,功

9、能快速開發(fā)工具周期低成本類型漸進(jìn)放棄類型,2.5原型模型,22,使用原型模型創(chuàng)建原型只是定義需求在這個(gè)意義上,原型模型經(jīng)常被稱為“放棄原型模型”。(2)必須有可用的快速開發(fā)工具。2.5原型模型、23,2.6快速應(yīng)用程序開發(fā)模型、快速應(yīng)用程序開發(fā)(RAD)模型強(qiáng)調(diào)了線性序列模型的“高速”變化帶來的極端開發(fā)周期。RAD模型使用基于構(gòu)件的構(gòu)造方法提供快速開發(fā)效果。RAD過程主要用于信息應(yīng)用軟件開發(fā),如圖2.7所示。圖24、圖2.7 RAD模型、2.6快速應(yīng)用程序開發(fā)模型、25,1)業(yè)務(wù)建模:業(yè)務(wù)活動的信息流建模。牙齒階段說明哪些信息主導(dǎo)業(yè)務(wù)流程,生成哪些信息,誰生成牙齒信息,牙齒信息流向哪里,誰處理

10、等等。2)數(shù)據(jù)建模:優(yōu)化了業(yè)務(wù)建模階段定義中的某些信息流,以形成支持該業(yè)務(wù)所需的數(shù)據(jù)對象集。牙齒階段標(biāo)識每個(gè)數(shù)據(jù)對象的特性屬性,并定義這些對象之間的關(guān)系。3)流程建模:在數(shù)據(jù)建模階段定義的數(shù)據(jù)對象轉(zhuǎn)換將轉(zhuǎn)換為完成業(yè)務(wù)功能所需的信息流。牙齒步驟用于創(chuàng)建添加、修改、刪除或?qū)霐?shù)據(jù)對象的處理說明。2.6快速應(yīng)用程序開發(fā)模型,26,4)創(chuàng)建應(yīng)用程序:RAD過程是重新使用現(xiàn)有節(jié)目組件,而不是傳統(tǒng)的第三代編程語言,或創(chuàng)建可重復(fù)使用的組件。在所有情況下,使用自動化工具協(xié)助軟件建設(shè)。5)測試和重復(fù):RAD流程強(qiáng)調(diào)重復(fù)使用,許多組件都經(jīng)過了測試,以減少測試工作量。但是,所有新創(chuàng)建的組件都必須測試所有接口。注意:

11、使用RAD模型時(shí),系統(tǒng)的每個(gè)主要功能部件可以在單獨(dú)的RAD工作組中執(zhí)行,最后,所有部件可以集成以形成完整的軟件功能。2.6快速應(yīng)用程序開發(fā)模型,27,優(yōu)點(diǎn):RAD模型強(qiáng)調(diào)開發(fā)可重復(fù)使用的節(jié)目組件,支持多組并行操作,從而縮短總體持續(xù)時(shí)間。缺點(diǎn):1)如果系統(tǒng)不能正確模塊化,組件的重用和構(gòu)建可能會出現(xiàn)問題。2)RAD模型依賴組件重用,不適用于技術(shù)風(fēng)險(xiǎn)高、需要采用許多新技術(shù)的項(xiàng)目模型。2.6快速應(yīng)用程序開發(fā)模型,28,2.7進(jìn)化軟件流程模型,軟件,和其他復(fù)雜系統(tǒng)一樣,需要進(jìn)行一些進(jìn)化改進(jìn)才能滿足終端用戶要求。業(yè)務(wù)和產(chǎn)品要求隨著開發(fā)的發(fā)展而經(jīng)常變化,因此很難一次性完成最終軟件產(chǎn)品,但緊急的市場期間不允許

12、軟件工程師數(shù)過度延長開發(fā)周期。為了應(yīng)對市場競爭或商業(yè)目標(biāo)的壓力,建立了“進(jìn)化軟件模型”。它的基本思想是“分割完成,階段性提交”??梢韵忍峤挥邢薰δ艿陌姹?,然后逐步補(bǔ)充。29,進(jìn)化模型的主要特征:1)可以使用“重復(fù)”方法逐步開發(fā)工程師,逐步制作出完整的軟件版本。2)用戶的支持、理解和完全參與是成功采用進(jìn)化模型的重要前提。3)結(jié)合線性順序模型和原型模型的幾個(gè)茄子特征。根據(jù)開發(fā)策略,可以將進(jìn)化模型細(xì)分為“增量”模型和“螺旋”模型。,2.7進(jìn)化軟件過程模型,30,問題背景:由于傳統(tǒng)瀑布模型本身的不足,在開發(fā)過程中無論如何嚴(yán)格,都很難接近理想目標(biāo)。請考慮是否可以部分開發(fā)整個(gè)軟件。解決方案:如果要求不完全

13、明確,則可以快速分析和配置滿足用戶特定要求的小型原型系統(tǒng),從而在使用過程中獲得靈感,逐步確定各種要求。這稱為增量模型。增量模型:將線性順序模型的基本組件(迭代應(yīng)用)與原型模型的迭代功能結(jié)合起來,如圖2.8所示。增量模型實(shí)際上是隨著時(shí)間表/時(shí)間的推進(jìn)交錯(cuò)的線性序列的集合。每個(gè)線性序列生成軟件可發(fā)布的“增量”,其中可以將所有增量合并到原型模型中。2.7.1增量模型,31,圖2.8增量模型,2.7.1增量模型,32,特征2)核心產(chǎn)品將由用戶使用或進(jìn)行詳細(xì)審查。評估使用或?qū)徍说慕Y(jié)果是制定下一個(gè)增量開發(fā)計(jì)劃,并根據(jù)上一個(gè)增量開發(fā)下一個(gè)增量。3)每個(gè)增量開發(fā)可以使用瀑布或快速原型模型。4)與原型模型不同,

14、增量模型也有重復(fù)特征,但每個(gè)增量都發(fā)布了可操作的產(chǎn)品,可以稱為“產(chǎn)品擴(kuò)展重復(fù)”。之前的產(chǎn)品是最終產(chǎn)品的可拆卸版本,每個(gè)版本都可以由用戶實(shí)際使用。2.7.1增量模型,33,優(yōu)點(diǎn):是非常有用的模型??朔俨寄P偷娜秉c(diǎn),軟件需求不明確,對減少開發(fā)工作中的風(fēng)險(xiǎn)有相當(dāng)大的效果??s短產(chǎn)品提交時(shí)間,都可以起到很好的作用。通知:用戶在軟件開發(fā)過程中經(jīng)常有“一個(gè)階段”的想法,因此增量工程開發(fā)必須得到用戶的全面理解和支持。否則很難成功。2.7.1增量模型,34,螺旋模型,Boehm牙齒最初提出的是進(jìn)化軟件過程模型。螺旋模型結(jié)合瀑布模型和原型的迭代特征,添加兩種模型都忽略的風(fēng)險(xiǎn)分析,彌補(bǔ)兩種模型的不足。圍繞螺旋模型

15、螺線旋轉(zhuǎn)可以快速開發(fā)軟件增量版本。在螺旋模型中,軟件開發(fā)是一系列增量發(fā)布。與增量模型不同,所有增量不必都是可執(zhí)行程序。上一次迭代中發(fā)布的增量可以是一張紙的模型或原型。后續(xù)迭代生成更精細(xì)的版本。如圖2.9所示,螺旋模型操作分為多個(gè)幀操作。活動也稱為工作區(qū),通常是在2.7.2螺旋模型、35、(1)用戶通信:開發(fā)人員和用戶之間建立有效通信所需的任務(wù)。(2)計(jì)劃:定義資源、進(jìn)展和其它項(xiàng)目相關(guān)信息所需的任務(wù)。(3)風(fēng)險(xiǎn)分析:評估技術(shù)和管理風(fēng)險(xiǎn)所需的任務(wù)。(4)工程:設(shè)置表示應(yīng)用程序所需的一個(gè)或多個(gè)任務(wù)。(5)實(shí)施和發(fā)布:構(gòu)建、測試、安裝和提供支持用戶所需的任務(wù)。(6)用戶評估:基于在工程階段生成或在安裝

16、階段實(shí)施的軟件表達(dá)的評估是獲取用戶反饋所需的任務(wù)。2.7.2螺旋模型,36,圖2.9典型螺旋模型,2.7.2螺旋模型,37,特性瀑布模型快速原型風(fēng)險(xiǎn)分析迭代流程螺旋周期目標(biāo)確定,方案選擇,用于實(shí)現(xiàn)目標(biāo)的戰(zhàn)略風(fēng)險(xiǎn)角度分析戰(zhàn)略開始開發(fā)階段評估前一階段的結(jié)果,下一個(gè)計(jì)劃高風(fēng)險(xiǎn)大軟件的情況下螺旋模型是理想的開發(fā)方法。,38,2.8軟件工藝技術(shù),計(jì)算機(jī)輔助系統(tǒng)(CASE)技術(shù)是軟件工具和軟件開發(fā)方法的結(jié)合,CASE的本質(zhì)是提供一套節(jié)省人員的軟件開發(fā)工具,在軟件開發(fā)之間提供最佳集成。其目的是自動執(zhí)行軟件生命周期的所有部分,并將它們合并為一個(gè)整體。主要包括項(xiàng)目管理工具:項(xiàng)目計(jì)劃工具、需求跟蹤工具、測量和管理工具。估算項(xiàng)目工作量,成本,制定項(xiàng)目

溫馨提示

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

最新文檔

評論

0/150

提交評論