




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、1.1.現(xiàn)代軟件工程現(xiàn)代軟件工程( (國家示范性軟件學(xué)院系列教材國家示范性軟件學(xué)院系列教材) ) 張家浩張家浩/ /東南大學(xué)東南大學(xué) 機械工業(yè)出版社機械工業(yè)出版社 2009.12009.12.2.軟件工程軟件工程 理論與實踐理論與實踐 許家珆許家珆 曾翎曾翎 彭德中彭德中 編著編著 高等教育出版社高等教育出版社 2004.72004.73.3.軟件工程軟件工程- -實踐者的研究方法實踐者的研究方法 (美)(美)Roger S. PressmanRoger S. Pressman著著 鄭人杰等譯鄭人杰等譯 機械工業(yè)出機械工業(yè)出版社版社 2008.62008.6 4.4.Sommerville.I
2、. (Sommerville.I. (影印版影印版) ) 機械工業(yè)出版社機械工業(yè)出版社 2003.42003.4第1頁/共47頁總總 目目 錄錄第1章 軟件工程學(xué)概述(2學(xué)時)第2章 軟件過程(2學(xué)時)第3章 軟件過程模型(4學(xué)時)第4章 案例研究(2學(xué)時)第5章 軟件需求分析過程(4學(xué)時)第6章 結(jié)構(gòu)化分析建模(4學(xué)時)第7章 面向?qū)ο蠓治觯?學(xué)時) 第8章 軟件設(shè)計(4學(xué)時)第9章 結(jié)構(gòu)化設(shè)計方法(4學(xué)時)第2頁/共47頁總總 目目 錄錄第10章 面向?qū)ο笤O(shè)計(4學(xué)時)第11章 軟件實現(xiàn)(2學(xué)時)第12章 軟件測試(4學(xué)時)第13章 軟件維護(2學(xué)時) 第14章 軟件項目管理(2學(xué)時)第1
3、5章 軟件項目估算(1學(xué)時)第16章 軟件項目計劃與管理(1學(xué)時)第3頁/共47頁第第3章章 軟件過程模型軟件過程模型3.1 瀑布模型3.2 增量模型3.3 螺旋模型3.4 協(xié)同開發(fā)模型3.5 面向?qū)ο竽P?.6 面向方面的軟件開發(fā)3.7 實驗要求及習(xí)題第4頁/共47頁 在20世紀(jì)80年代之前,瀑布模型一直是惟一被廣泛采用的生命周期模型,現(xiàn)在它仍然是軟件工程中應(yīng)用得最廣泛的過程模型,它提供了軟件開發(fā)的基本框架。 傳統(tǒng)軟件工程方法學(xué)的軟件過程,基本上可以用瀑布模型來描述。 瀑布模型將軟件生命周期劃分為軟件計劃、需求分析和定義、軟件設(shè)計、軟件實現(xiàn)、軟件測試、軟件運行和維護這6個階段,規(guī)定了它們自上
4、而下、相互銜接的固定次序,如同瀑布流水逐級下落而得名。 3.1 3.1 瀑布模型第5頁/共47頁圖3.1 傳統(tǒng)的瀑布模型第6頁/共47頁 傳統(tǒng)的瀑布模型有下述的幾個特點:1. 階段間具有順序性和依賴性 2. 推遲實現(xiàn)的觀點3. 質(zhì)量保證的觀點 瀑布模型的成功在很大程度上是由于它基本上是一種文檔驅(qū)動的模型。 但是,“瀑布模型是由文檔驅(qū)動的”這個事實也是它的一個主要缺點。 第7頁/共47頁 圖3.2 實際的帶“反饋環(huán)”的瀑布模型第8頁/共47頁圖3.3 上下階段間循環(huán)第9頁/共47頁圖3.4 具有維護階段循環(huán)的軟件生存期的瀑布模型第10頁/共47頁 增量模型也稱為漸增模型,使用增量模型開發(fā)軟件時,
5、把軟件產(chǎn)品作為一系列的增量構(gòu)件來設(shè)計、編碼、集成和測試。 每一個構(gòu)件是由多種相互作用的模塊所形成的提供特定功能的代碼片段構(gòu)成。 第一個增量構(gòu)件往往實現(xiàn)軟件的基本需求,提供最核心的功能。 第二個增量構(gòu)件提供更完善的編輯和文檔生成功能。 第三個增量構(gòu)件實現(xiàn)拼寫和語法檢查功能。 。 能在較短時間內(nèi)向用戶提交可完成部分工作的產(chǎn)品,是增量模型的一個優(yōu)點。3.2 3.2 增量模型第11頁/共47頁增量方式包括:增量開發(fā):以一定的時間間隔開發(fā)部分工作軟件增量提交:以一定的時間間隔增量方式向用戶提交工作軟件及相應(yīng)文檔 增量模型融合了線性順序模型的基本成份和原型實現(xiàn)模型的迭代特征,故分為漸增模型和原型模型。漸增
6、模型是瀑布模型的變種,有兩類漸增模型:增量構(gòu)造模型:在瀑布模型基礎(chǔ)上,對一些階段進行整體開發(fā),對另一些階段進行增量開發(fā)演化提交模型:它在瀑布模型的基礎(chǔ)上,所有階段都進行增量開發(fā),也就是說不僅是增量開發(fā),也是增量提交。第12頁/共47頁 增量模型逐步增加產(chǎn)品功能可以使用戶有較充裕的時間學(xué)習(xí)和適應(yīng)新產(chǎn)品,從而減少一個全新的軟件可能給客戶組織帶來的沖擊。 但也存在以下缺陷: 1.必須把軟件的體系結(jié)構(gòu)設(shè)計得便于按這種方式進行擴充,也就是說,軟件體系結(jié)構(gòu)必須是開放的。 2.模型適應(yīng)變更的靈活性優(yōu)于瀑布模型,但容易退化為邊做邊改模型,使軟件過程的控制失去整體性。 從長遠(yuǎn)觀點看,具有開放結(jié)構(gòu)的軟件擁有真正的
7、優(yōu)勢,這樣的軟件的可維護性明顯好于封閉結(jié)構(gòu)的軟件。第13頁/共47頁需求分析設(shè)計編碼1測試1測試2編碼2編碼3測試3圖3.5 3.5 增量構(gòu)造模型1 1增量模型融合了線性順序模型的基本成份和原型實現(xiàn)模型的迭代特征。第14頁/共47頁圖3.6 增量構(gòu)造模型2第15頁/共47頁圖3.7 風(fēng)險更大的增量模型第16頁/共47頁 所謂快速原型是快速建立起來的可以在計算機上運行的程序,它所能完成的功能往往是最終產(chǎn)品能完成的功能的一個子集。 快速原型模型的第一步是快速建立一個能反映用戶主要需求的原型系統(tǒng),讓用戶在計算機上試用它,通過實踐來了解目標(biāo)系統(tǒng)的概貌。 從圖3.8可以看出,快速原型模型是不帶反饋環(huán)的,
8、這正是這種過程模型的主要優(yōu)點:軟件產(chǎn)品的開發(fā)基本上是線性順序進行的。快速原型模型第17頁/共47頁圖3.8 快速原型模型第18頁/共47頁 軟件風(fēng)險是任何軟件開發(fā)項目中都普遍存在的實際問題,項目越大,軟件越復(fù)雜,承擔(dān)該項目所冒的風(fēng)險也越大。 軟件風(fēng)險在不同程度上損害軟件開發(fā)過程和軟件產(chǎn)品質(zhì)量。 在軟件開發(fā)過程中必須及時識別和分析風(fēng)險,并且采取適當(dāng)措施以消除或減少風(fēng)險的危害。 對于大型軟件,只開發(fā)一個原型往往達(dá)不到要求,故螺旋模型特別適合于大型復(fù)雜的系統(tǒng)。 螺旋模型將瀑布模型和增量模型結(jié)合起來,并加入了風(fēng)險分析(風(fēng)險識別、風(fēng)險分析、風(fēng)險控制)。 3.3 3.3 螺旋模型第19頁/共47頁 圖3.
9、9 完整的螺旋模型每一個周期都包括需求定義、風(fēng)險分析、工程實現(xiàn)和評審。第20頁/共47頁 螺旋模型有許多優(yōu)點: (1)有利于已有軟件的重用,有助于把軟件質(zhì)量作為軟件開發(fā)的一個重要目標(biāo); (2)減少了過多測試或測試不足所帶來的風(fēng)險; (3)維護只是模型的另一個周期,在維護和開發(fā)之間并沒有本質(zhì)區(qū)別。 螺旋模型主要適用于內(nèi)部開發(fā)的大規(guī)模軟件項目。如果進行風(fēng)險分析的費用接近整個項目的經(jīng)費預(yù)算,則風(fēng)險分析是不可行的。 螺旋模型的主要優(yōu)勢在于,它是風(fēng)險驅(qū)動的,但是,這也可能是它的一個弱點。第21頁/共47頁 協(xié)同開發(fā)模型(Collaborative Development Model, 簡稱CDM),有時
10、也叫做協(xié)同工程,可以表示為一系列框架活動、軟件工程動作和任務(wù)以及相應(yīng)的狀態(tài)。 在某一特定時間,建?;顒涌赡芴幱谌魏我环N狀態(tài)。 協(xié)同開發(fā)模型定義了一系列事件,這些事件將觸發(fā)軟件工程活動、動作或任務(wù)的狀態(tài)轉(zhuǎn)換。3.4 3.4 協(xié)同開發(fā)模型第22頁/共47頁空狀態(tài)開發(fā)狀態(tài)等待變更狀態(tài)評審狀態(tài)修改狀態(tài)建立基線狀態(tài)結(jié)束狀態(tài)建?;顒訄D3.10 3.10 協(xié)同開發(fā)模型第23頁/共47頁3.5 噴泉模型分 析系統(tǒng) 設(shè)計軟件 設(shè)計實 現(xiàn)圖3.11 3.11 噴泉模型該模型是由B.H.Sollers和J.M.Edwards于1990年提出的一種面向?qū)ο箝_發(fā)模型。又稱快速應(yīng)用開發(fā)模型(RADRAD,Rapid Ap
11、plication Development ModelRapid Application Development Model) 它克服了瀑布模型不支持軟件重用和多項開發(fā)活動集成的局限性,噴泉模型使開發(fā)過程具有迭代性和無間隙性。 其特點如下: ()開發(fā)過程有分析、系統(tǒng)設(shè)計、軟件設(shè)計和實現(xiàn)4個階段。()各階段相互重疊,反映了軟件過程并行性的特點。 ()以分析為基礎(chǔ)。( 4 4)反映了軟件過程迭代性。 ()強調(diào)增量開發(fā),整個過程是一個迭代的逐步提煉的過程。 第24頁/共47頁獲取需求需求分析具體描述優(yōu)化程序調(diào)整驗證維護知識庫專家系統(tǒng)程序 也稱為基于知識的軟件開發(fā)模型,是知識工程與軟件工程相結(jié)合的軟件
12、開發(fā)模型。 圖1.20 1.20 智能模型 其主要特點是必須建立知識庫,并將模型本身、軟件工程知識、特定領(lǐng)域知識放入知識庫。 具體描述可以使用形式功能規(guī)約,也可以使用知識處理語言描述等。第25頁/共47頁構(gòu)件組裝模型的特征:應(yīng)用軟件可用預(yù)先編好的、功能明確的產(chǎn)品部件定制而成, , 并可用不同版本的部件實現(xiàn)應(yīng)用的擴展和更新。 利用模塊化方法,將復(fù)雜的難以維護的系統(tǒng)分解為互相獨立、協(xié)同工作的部件,并努力使這些部件可反復(fù)重用。 突破時間、空間及不同硬件設(shè)備的限制,利用客戶和軟件之間統(tǒng)一的接口實現(xiàn)跨平臺的互操作。 3.7 3.7 構(gòu)件組裝模型(組件集成模型)需求分析和定義體系結(jié)構(gòu)設(shè)計構(gòu)件庫建立測試和發(fā)
13、布應(yīng)用軟件構(gòu)建1:N第26頁/共47頁構(gòu)件組裝模型的優(yōu)點:n構(gòu)件組裝模型導(dǎo)致了軟件的復(fù)用,提高了軟件開發(fā)的效率,面向?qū)ο蠹夹g(shù)是軟件工程的構(gòu)件組裝模型的基礎(chǔ)。n構(gòu)件可由一方定義其規(guī)格說明,被另一方實現(xiàn),然后供給第三方使用。n構(gòu)件組裝模型允許多個項目同時開發(fā),降低了費用,提高了可維護性。n可實現(xiàn)分步提交軟件產(chǎn)品。構(gòu)件組裝模型的缺點:u 可重用性和軟件高效性不易協(xié)調(diào)。u 缺乏通用的組裝結(jié)構(gòu)標(biāo)準(zhǔn),而自定義的組裝結(jié)構(gòu)標(biāo)準(zhǔn)引入較大的風(fēng)險。u 需要精干的有經(jīng)驗的分析和開發(fā)人員,一般的開發(fā)人員插不上手。u 客戶的滿意度低。 第27頁/共47頁3.83.8 統(tǒng)一過程模型統(tǒng)一過程(Unified Process,
14、UP) 是風(fēng)險驅(qū)動的、基于用例技術(shù)的、以架構(gòu)為中心的、迭代和增量的、可配置的軟件開發(fā)流程。統(tǒng)一過程是一個軟件開發(fā)過程,是一個通用的過程框架,可用于各類軟件系統(tǒng)和應(yīng)用領(lǐng)域,它重復(fù)一系列組成系統(tǒng)生命周期的循環(huán)。每次循環(huán)包括四個階段:初始細(xì)化構(gòu)造移交每個階段又進一步細(xì)分為多次迭代的過程,每次循環(huán)迭代會產(chǎn)生一個新的版本。第28頁/共47頁預(yù)備循環(huán) Iter.#1周期處理工作流反復(fù)支持工作流 Iter.#2 Iter.#n Iter.#n+1 Iter.#n+2 Iter.#m Iter.#m+1管理環(huán)境配置管理業(yè)務(wù)模型實現(xiàn)測試分析和設(shè)計分布需求詳細(xì)化提交初始化構(gòu)造第29頁/共47頁RUPRUP的時間軸
15、被分解為四個順序的階段,分別是:初始階段(Inception)(Inception)、細(xì)化階段(Elaboration)(Elaboration)構(gòu)造階段(Construction)(Construction)、交付階段(Transition)(Transition)每個階段結(jié)束于一個主要的里程碑(Major Milestones)(Major Milestones)每個階段本質(zhì)上是兩個里程碑之間的時間跨度在每個階段的結(jié)尾執(zhí)行一次評估以確定這個階段的目標(biāo)是否已經(jīng)滿足。如果評估結(jié)果令人滿意的話,可以允許項目進入下一個階段。 RUPRUP的階段目標(biāo):初始階段的目標(biāo)是為系統(tǒng)建立業(yè)務(wù)案例并確定項目的邊
16、界。 細(xì)化階段的目標(biāo)是分析問題領(lǐng)域,建立健全的體系結(jié)構(gòu)基礎(chǔ),編制項目計劃,淘汰項目中最高風(fēng)險的元素。 構(gòu)建階段,所有剩余的構(gòu)件和應(yīng)用程序功能被開發(fā)并集成為產(chǎn)品,所有的功能被詳細(xì)測試。 交付階段的重點是確保軟件對最終用戶是可用的。 第30頁/共47頁RUPRUP的核心工作流: RUP RUP中有6 6個核心過程工作流和3 3個核心支持工作流。 盡管6 6個核心過程工作流可能使人想起傳統(tǒng)瀑布模型中的幾個階段,但應(yīng)注意迭代過程中的階段是完全不同的,這些工作流在整個生命周期中一次又一次被訪問。 9 9個核心工作流在項目中輪流被使用,在每一次迭代中以不同的重點和強度重復(fù)。 核心過程工作流:(1 1)業(yè)務(wù)
17、建模工作流為組織開發(fā)一個構(gòu)想,并基于這個構(gòu)想在業(yè)務(wù)用例模型和業(yè)務(wù)對象模型中定義組織的過程,角色和責(zé)任。 (2 2)需求工作流的目標(biāo)是描述系統(tǒng)應(yīng)該做什么,并使開發(fā)人員和用戶就這一描述達(dá)成共識。 (3 3)分析和設(shè)計工作流將需求轉(zhuǎn)化成未來系統(tǒng)的設(shè)計,為系統(tǒng)開發(fā)一個健壯的結(jié)構(gòu)并調(diào)整設(shè)計使其與實現(xiàn)環(huán)境相匹配,優(yōu)化其性能。 第31頁/共47頁(4 4)實現(xiàn)工作流的目的包括以層次化的子系統(tǒng)形式定義代碼的組織結(jié)構(gòu);以組件的形式( (源文件、二進制文件、可執(zhí)行文件) )實現(xiàn)類和對象;將開發(fā)出的組件作為單元進行測試以及集成由單個開發(fā)者(或小組)所產(chǎn)生的結(jié)果,使其成為可執(zhí)行的系統(tǒng)。 (5 5)測試工作流要驗證對象
18、間的交互作用,驗證軟件中所有組件的正確集成,檢驗所有的需求已被正確的實現(xiàn), ,識別、提出缺陷并確認(rèn)缺陷在軟件部署之前被處理。(6 6)部署工作流的目的是成功的生成版本并將軟件分發(fā)給最終用戶。 核心支持工作流:(1 1)配置和變更管理工作流描繪了如何在多個成員組成的項目中控制大量的產(chǎn)物,管理演化系統(tǒng)中的多個變體,跟蹤軟件創(chuàng)建過程中的版本。 (2 2)軟件項目管理工作流平衡各種可能產(chǎn)生沖突的目標(biāo),管理風(fēng)險,克服各種約束并成功交付使用戶滿意的產(chǎn)品。 (3 3)環(huán)境工作流的目的是向軟件開發(fā)組織提供軟件開發(fā)環(huán)境,包括過程和工具。 第32頁/共47頁RUPRUP模型的優(yōu)點: 提高了團隊生產(chǎn)力,在迭代的開發(fā)
19、過程、需求管理、基于組件的體系結(jié)構(gòu)、可視化軟件建模、驗證軟件質(zhì)量及控制軟件變更等方面,針對所有關(guān)鍵的開發(fā)活動為每個開發(fā)成員提供了必要的準(zhǔn)則、模板和工具指導(dǎo),并確保全體成員共享相同的知識基礎(chǔ)。它建立了簡潔和清晰的過程結(jié)構(gòu),為開發(fā)過程提供較大的通用性。 RUPRUP模型的缺點: RUP RUP在理論上,是比較理想的,但在實際應(yīng)用上,還需要更多的工具的支持和普及推廣工作。第33頁/共47頁3.9 面向方面的軟件開發(fā) 面向方面的軟件開發(fā)(Aspect-Oriented Software Development,簡稱AOSP)是一系列新興技術(shù),用以尋找軟件系統(tǒng)中新的模塊化特性。 強調(diào)獨立描述關(guān)注點,軟件
20、關(guān)注點就是客戶需要的屬性或者技術(shù)興趣點,它一般體現(xiàn)在整個架構(gòu)設(shè)計中。 有些關(guān)注點涉及系統(tǒng)多個方面的功能、特性和信息,這些關(guān)注點通常稱為橫切關(guān)注點。第34頁/共47頁 方面需求(Aspectual Requirement)定義了那些對整個軟件體系結(jié)構(gòu)產(chǎn)生影響的橫切關(guān)注點: 對等關(guān)注點,這種關(guān)注點是相互獨立的,沒有任何一個對等關(guān)注點比另一個更重要。如 ATM的取款、轉(zhuǎn)帳和存款等; 擴展(extension),是在基礎(chǔ)組件(base)之上定義的組件,它用來表示附加的服務(wù)或功能。如在圖書館系統(tǒng)中,當(dāng)還書時發(fā)現(xiàn)該書已經(jīng)超期,那么系統(tǒng)就要計算罰金。計算罰金功能就是還書的擴展。第35頁/共47頁對等關(guān)注點第
21、36頁/共47頁對等關(guān)注點(分離限制)第37頁/共47頁擴展第38頁/共47頁對等關(guān)注點(分離限制) 問題: 纏繞(tangling),各個組件包含滿足不同關(guān)注點的實現(xiàn)(也就是編碼),如組件“房間”; 分散(Scattering),某個特定關(guān)注點的實現(xiàn)是分散在多個組件中,如“登記入住”。 分離擴展是一種使復(fù)雜問題易于理解的技術(shù)。第39頁/共47頁關(guān)注點分離技術(shù) 關(guān)注點分離技術(shù)(Concern Separation Technique)對關(guān)注點進行建模和結(jié)構(gòu)化。 用例技術(shù)關(guān)注點合成機制 關(guān)注點合成機制(Concern Composition Mechanism)將關(guān)注點合成 發(fā)生在編譯時、編譯后,甚至是運行時第40頁/共47
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 倉庫貨物入庫流程分析計劃
- 第11課《送東陽馬生序》教學(xué)設(shè)計-2023-2024學(xué)年統(tǒng)編版語文九年級下冊
- 《甕福(集團)有限責(zé)任公司對門坡磷礦(變更)礦產(chǎn)資源綠色開發(fā)利用方案(三合一)》評審意見
- 《貴州省安龍縣戈塘金礦(整合)(變更)礦產(chǎn)資源綠色開發(fā)利用方案(三合一)》專家組評審意見
- 銀行信貸知識培訓(xùn)課件
- 酒吧衛(wèi)生知識培訓(xùn)課件
- 老年護理皮腫
- 供應(yīng)鏈金融管理科學(xué)與工程
- 統(tǒng)編版小學(xué)語文二年級下冊《語文園地七》精美課件
- 2025年海南貨運資格考試答案
- PCB電路板的手工焊接技術(shù)培訓(xùn)
- 左肺占位術(shù)后護理查房
- RCA根本原因分析法在護理不良事件中的應(yīng)用課件
- 港口物流 第3版 課件全套 第1-13章 港口物流發(fā)展歷史-保稅物流
- 免疫工程與炎癥疾病
- YMO青少年數(shù)學(xué)思維26屆二年級全國總決賽試卷
- 考勤補卡申請
- 多功能廳施工方案
- 電力拖動(課件)
- DB32/T 4441-2023 建設(shè)用地土壤污染風(fēng)險管控技術(shù)規(guī)范
- 山東省濟寧市2023年中考數(shù)學(xué)試卷(附答案)
評論
0/150
提交評論