軟件過(guò)程概述課件_第1頁(yè)
軟件過(guò)程概述課件_第2頁(yè)
軟件過(guò)程概述課件_第3頁(yè)
軟件過(guò)程概述課件_第4頁(yè)
軟件過(guò)程概述課件_第5頁(yè)
已閱讀5頁(yè),還剩59頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、軟件過(guò)程概述軟件過(guò)程概述2022/9/10軟件工程2第2章 軟件過(guò)程軟件工程過(guò)程是為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。ISO9000把過(guò)程定義為“把輸入轉(zhuǎn)化為輸出的一組彼此相關(guān)的資源和活動(dòng)”。過(guò)程定義了運(yùn)用方法的順序、應(yīng)該交付的文檔資料、為保證軟件質(zhì)量和協(xié)調(diào)變化所需采取的管理措施以及標(biāo)志軟件開(kāi)發(fā)各個(gè)階段任務(wù)完成的里程碑。2022/9/4軟件工程4第2章 軟件過(guò)程軟件工程過(guò)程是2022/9/10軟件工程32.1 軟件生命周期的基本任務(wù) 軟件生命周期由軟件定義、軟件開(kāi)發(fā)和運(yùn)行維護(hù)3個(gè)階段組成。1、軟件定義時(shí)期(1)基本任務(wù):確定軟件開(kāi)發(fā)工程的總體目標(biāo);研

2、究該項(xiàng)目的可行性;分析確定客戶(hù)對(duì)軟件產(chǎn)品的需求;估算完成該項(xiàng)目所需的資源和成本,并且制定工程進(jìn)度表。2022/9/4軟件工程52.1 軟件生命周期的基本任務(wù) 2022/9/10軟件工程42.1 軟件生命周期的基本任務(wù)1、軟件定義時(shí)期(2)進(jìn)一步細(xì)分為以下幾個(gè)階段:?jiǎn)栴}定義:可行性分析:需求分析:按該階段應(yīng)該完成的工作包括需求獲取和需求分析兩個(gè)部分。2022/9/4軟件工程62.1 軟件生命周期的基本任務(wù)1、2022/9/10軟件工程52.1 軟件生命周期的基本任務(wù)2、軟件開(kāi)發(fā)時(shí)期進(jìn)一步細(xì)分為以下幾個(gè)階段:總體設(shè)計(jì)(又稱(chēng)為結(jié)構(gòu)設(shè)計(jì)):詳細(xì)設(shè)計(jì):編碼和單元測(cè)試。綜合測(cè)試;系統(tǒng)設(shè)計(jì)系統(tǒng)實(shí)現(xiàn)2022/

3、9/4軟件工程72.1 軟件生命周期的基本任務(wù)2、2022/9/10軟件工程62.1 軟件生命周期的基本任務(wù)3、運(yùn)行維護(hù)時(shí)期(1)基本任務(wù):通過(guò)對(duì)已交付的軟件做必要的修改,使軟件持久地滿(mǎn)足客戶(hù)的需求。2022/9/4軟件工程82.1 軟件生命周期的基本任務(wù)3、2022/9/10軟件工程7(2)進(jìn)一步細(xì)分:改正性維護(hù)。軟件交付使用后,必然會(huì)有一部分隱藏的錯(cuò)誤被帶到運(yùn)行階段來(lái),在某些特定的使用環(huán)境下就會(huì)暴露出來(lái)。為了識(shí)別和糾正軟件錯(cuò)誤、改正軟件性能上的缺陷、排除實(shí)施中的誤使用,應(yīng)進(jìn)行的診斷和改正錯(cuò)誤的過(guò)程,就叫做改正性維護(hù)。適應(yīng)性維護(hù)。隨著計(jì)算機(jī)的飛速發(fā)展,外部環(huán)境(新的硬、軟件配置)或數(shù)據(jù)環(huán)境(

4、數(shù)據(jù)庫(kù)、數(shù)據(jù)格式、數(shù)據(jù)輸入輸出方式、數(shù)據(jù)存儲(chǔ)介質(zhì))可能發(fā)生變化,為了使軟件適應(yīng)這種變化,而去修改軟件的過(guò)程就叫做適應(yīng)性維護(hù)。完善性維護(hù)。在軟件的使用過(guò)程中,用戶(hù)往往會(huì)對(duì)軟件提出新的功能與性能要求。為了滿(mǎn)足這些要求,需要修改或再開(kāi)發(fā)軟件,以擴(kuò)充軟件功能、增強(qiáng)軟件性能、改進(jìn)加工效率、提高軟件的可維護(hù)性。這種情況下進(jìn)行的維護(hù)活動(dòng)叫做完善性維護(hù)。2.1 軟件生命周期的基本任務(wù)2022/9/4軟件工程9(2)進(jìn)一步細(xì)分:2.1 軟件生命2022/9/10軟件工程8 使用結(jié)構(gòu)化范型和使用面向?qū)ο蠓缎烷_(kāi)發(fā)軟件,它們?cè)谲浖芷诟麟A段中使用的概念及應(yīng)完成的任務(wù)性質(zhì)顯著不同。2.1 軟件生命周期的基本任務(wù)下面

5、扼要介紹軟件生命周期每個(gè)階段的基本任務(wù):?jiǎn)栴}定義可行性研究需求分析總體設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼和單元測(cè)試綜合測(cè)試軟件維護(hù)1、必須回答的關(guān)鍵問(wèn)題是:“要解決的問(wèn)題是什么?”2、通過(guò)對(duì)客戶(hù)的訪(fǎng)問(wèn)調(diào)查,系統(tǒng)分析員扼要地寫(xiě)出關(guān)于問(wèn)題性質(zhì)、工程目標(biāo)和工程規(guī)模的書(shū)面報(bào)告,經(jīng)過(guò)討論和必要的修改之后這份報(bào)告應(yīng)該得到客戶(hù)的確認(rèn)。1、要回答的關(guān)鍵問(wèn)題是:“對(duì)于上一個(gè)階段所確定的問(wèn)題有行得通的解決辦法嗎?”2、不是具體解決問(wèn)題,而是研究問(wèn)題的范圍,探索這個(gè)問(wèn)題是否值得去解,是否有可行的解決辦法。3、目的是用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問(wèn)題是否能夠解決。1、不是確定系統(tǒng)怎樣完成它的工作,而僅僅是確定系統(tǒng)必須完成哪些工作,

6、也就是對(duì)目標(biāo)系統(tǒng)提出完整、準(zhǔn)確、清晰、具體的要求。2、用正式的文檔準(zhǔn)確地記錄對(duì)目標(biāo)系統(tǒng)的需求,這份文檔通常稱(chēng)為規(guī)格說(shuō)明(specification)。1、應(yīng)該設(shè)計(jì)出實(shí)現(xiàn)目標(biāo)系統(tǒng)的幾種可能的方案。通常至少應(yīng)該設(shè)計(jì)出低成本、中等成本和高成本等3種方案,推薦一個(gè)最佳方案。 2、設(shè)計(jì)程序的體系結(jié)構(gòu),也就是確定程序由哪些模塊組成以及模塊間的關(guān)系。1、回答關(guān)鍵問(wèn)題:“應(yīng)該怎樣具體地實(shí)現(xiàn)這個(gè)系統(tǒng)呢?”2、不是編寫(xiě)程序,而是設(shè)計(jì)出程序的詳細(xì)規(guī)格說(shuō)明。3、這個(gè)階段將詳細(xì)地設(shè)計(jì)每個(gè)模塊,確定實(shí)現(xiàn)模塊功能所需要的算法和數(shù)據(jù)結(jié)構(gòu)。把詳細(xì)設(shè)計(jì)的結(jié)果翻譯成用選定的語(yǔ)言書(shū)寫(xiě)的程序,并且仔細(xì)測(cè)試編寫(xiě)出的每一個(gè)模塊。1、關(guān)鍵任

7、務(wù)是通過(guò)各種類(lèi)型的測(cè)試(及相應(yīng)的調(diào)試)使軟件達(dá)到預(yù)定的要求。2、最基本的測(cè)試是集成測(cè)試和驗(yàn)收測(cè)試。3、應(yīng)該用正式的文檔資料把測(cè)試計(jì)劃、詳細(xì)測(cè)試方案以及實(shí)際測(cè)試結(jié)果保存下來(lái),作為軟件配置的一個(gè)組成部分。1、維護(hù)階段的關(guān)鍵任務(wù)是,通過(guò)各種必要的維護(hù)活動(dòng)使系統(tǒng)持久地滿(mǎn)足用戶(hù)的需要。2、有4類(lèi)維護(hù)活動(dòng):改正性維護(hù)、適應(yīng)性維護(hù)、完善性維護(hù)、預(yù)防性維護(hù)。2022/9/4軟件工程10 使用結(jié)構(gòu)化范型和2022/9/10軟件工程92.2 瀑布模型 軟件過(guò)程是為了獲得高質(zhì)量軟件所需要完成的一第系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。 軟件任務(wù)集合包括一組軟件工程任務(wù)、里程碑和應(yīng)該交付的產(chǎn)品(軟件配置成分

8、)。 通常使用生命周期模型簡(jiǎn)潔地描述軟件過(guò)程。生命周期模型規(guī)定了把生命周期劃分成哪些階段及各個(gè)階段的執(zhí)行順序,也稱(chēng)為過(guò)程模型。2022/9/4軟件工程112.2 瀑布模型 2022/9/10軟件工程10 是軟件工程中應(yīng)用最廣泛的過(guò)程模型。 按照傳統(tǒng)的瀑布模型開(kāi)發(fā)軟件,有下述幾個(gè)特點(diǎn):階段間具有順序性和依賴(lài)性;推遲實(shí)現(xiàn)的觀(guān)點(diǎn);質(zhì)量保證的觀(guān)點(diǎn)。2.2 瀑布模型需求分析驗(yàn)證規(guī)格說(shuō)明驗(yàn)證設(shè)計(jì)驗(yàn)證編碼驗(yàn)證綜合測(cè)試維護(hù)傳統(tǒng)瀑布模型2022/9/4軟件工程12 是軟件工程中應(yīng)用2022/9/10軟件工程11需求分析驗(yàn)證規(guī)格說(shuō)明驗(yàn)證設(shè)計(jì)驗(yàn)證編碼驗(yàn)證綜合測(cè)試維護(hù)實(shí)際的瀑布模型變化的需求驗(yàn)證2.2 瀑布模型202

9、2/9/4軟件工程13需求分析驗(yàn)證規(guī)格說(shuō)明驗(yàn)證設(shè)計(jì)驗(yàn)證2022/9/10軟件工程122.2 瀑布模型瀑布模型的優(yōu)缺點(diǎn)1、優(yōu)點(diǎn):可強(qiáng)迫開(kāi)發(fā)人員采用規(guī)范的方法;嚴(yán)格地規(guī)定了每個(gè)階段必須提交的文檔;每個(gè)階段交出的所有產(chǎn)品都必須經(jīng)過(guò)質(zhì)量保證小組的仔細(xì)驗(yàn)證。2、缺點(diǎn):在可運(yùn)行的軟件產(chǎn)品交付給用戶(hù)之前,用戶(hù)只能通過(guò)文檔來(lái)了解產(chǎn)品是什么樣的;開(kāi)發(fā)人員與用戶(hù)之間缺乏有效的溝通,很可能導(dǎo)致最終開(kāi)發(fā)出的軟件產(chǎn)品不能真正滿(mǎn)足用戶(hù)的需要。2022/9/4軟件工程142.2 瀑布模型瀑布模型的優(yōu)缺點(diǎn)2022/9/10軟件工程13快速原型驗(yàn)證規(guī)格說(shuō)明驗(yàn)證設(shè)計(jì)驗(yàn)證編碼驗(yàn)證綜合測(cè)試維護(hù)快速原型模型變化的需求驗(yàn)證2.3 快速原

10、型模型 所謂快速原型是快速建立起來(lái)的可以在計(jì)算機(jī)上運(yùn)行的程序,它所能完成的功能往往是最終產(chǎn)品能完成的功能的一個(gè)子集。2022/9/4軟件工程15快速原型驗(yàn)證規(guī)格說(shuō)明驗(yàn)證設(shè)計(jì)驗(yàn)證2022/9/10軟件工程14快速原型模型的優(yōu)點(diǎn):通常能滿(mǎn)足用戶(hù)的真實(shí)需求;軟件產(chǎn)品的開(kāi)發(fā)基本上是線(xiàn)性順序進(jìn)行的。每個(gè)階段交出的所有產(chǎn)品都必須經(jīng)過(guò)質(zhì)量保證小組的仔細(xì)驗(yàn)證。為什么通常是線(xiàn)性順序的呢?原型系統(tǒng)已經(jīng)通過(guò)與用戶(hù)交互而得到驗(yàn)證;通過(guò)建立原型,開(kāi)發(fā)人員已經(jīng)較全面了解系統(tǒng)的需求。3.3 快速原型模型2022/9/4軟件工程16快速原型模型的優(yōu)點(diǎn):3.3 快速2022/9/10軟件工程153.4 增量模型模型如下圖:需求

11、分析驗(yàn)證規(guī)格說(shuō)明驗(yàn)證概要設(shè)計(jì)驗(yàn)證針對(duì)每個(gè)構(gòu)件,完成詳細(xì)設(shè)計(jì)、編碼和集成,經(jīng)測(cè)試后交付給用戶(hù)維護(hù)圖 2.4 增量模型2022/9/4軟件工程173.4 增量模型模型如下圖:需求2022/9/10軟件工程162.4 增量模型 使用增量模型開(kāi)發(fā)軟件時(shí),把軟件產(chǎn)品作為一系列的增量構(gòu)件來(lái)設(shè)計(jì)、編碼、集成和測(cè)試。每個(gè)構(gòu)件由多個(gè)相互作用的模塊構(gòu)成,并且能夠完成特定的功能。增量模型的優(yōu)點(diǎn):能在較短的時(shí)間內(nèi)向用戶(hù)提交可以完成部分工作的產(chǎn)品;逐步增加產(chǎn)品功能可以使用戶(hù)有較充裕的時(shí)間學(xué)習(xí)和適應(yīng)新產(chǎn)品,從而減少一個(gè)全新的軟件可能給客戶(hù)組織帶來(lái)的沖擊。2022/9/4軟件工程182.4 增量模型 2022/9/10軟件

12、工程172.4 增量模型增量模型的困難:把每個(gè)新的增量構(gòu)件集成到現(xiàn)有軟件體系結(jié)構(gòu)中時(shí),必須不破壞原來(lái)已經(jīng)開(kāi)發(fā)出的產(chǎn)品;除非開(kāi)發(fā)人員有足夠的技術(shù)能力協(xié)調(diào)好這一明顯的矛盾,否則用增量模型開(kāi)發(fā)出的產(chǎn)品可能并不令人滿(mǎn)意。2022/9/4軟件工程192.4 增量模型增量模型的困難:2022/9/10軟件工程182.5 螺旋模型 軟件項(xiàng)目風(fēng)險(xiǎn)是指在軟件生命周期中所遇到的所有的預(yù)算、進(jìn)度和控制等各方面的問(wèn)題,以及由這些問(wèn)題而產(chǎn)生的對(duì)軟件項(xiàng)目的影響。 構(gòu)建原型是一種能使用某些類(lèi)型的風(fēng)險(xiǎn)降至最低的方法。 螺旋模型的基本思想是:使用原型及其他方法來(lái)盡量降低風(fēng)險(xiǎn)。它是在每個(gè)階段之前都增加了風(fēng)險(xiǎn)分析過(guò)程的快速原型模型

13、。如圖1.7和1.8所示。2022/9/4軟件工程202.5 螺旋模型 軟件項(xiàng)目2022/9/10軟件工程192022/9/4軟件工程212022/9/10軟件工程202.5 螺旋模型螺旋模型的優(yōu)點(diǎn):有利于已有軟件的重用;有助于把軟件質(zhì)量作為軟件開(kāi)發(fā)的一個(gè)重要目標(biāo);減少了過(guò)多測(cè)試或測(cè)試不足所帶來(lái)的風(fēng)險(xiǎn);在維護(hù)和開(kāi)發(fā)之間并沒(méi)有本質(zhì)區(qū)別。利用螺旋模型開(kāi)發(fā)軟件的要求:軟件開(kāi)發(fā)人員具有豐富的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和這方面的專(zhuān)門(mén)知識(shí)。2022/9/4軟件工程222.5 螺旋模型螺旋模型的優(yōu)點(diǎn):2022/9/10軟件工程212.6 噴泉模型使用面向?qū)ο蠓椒▽W(xué)開(kāi)發(fā)軟件時(shí),工作重點(diǎn)應(yīng)該放在生命周期中的分析階段。這種方法

14、在開(kāi)發(fā)的早期階段定義了一系列面向?qū)ο髥?wèn)題的對(duì)象,并且在整個(gè)開(kāi)發(fā)過(guò)程不斷充實(shí)和擴(kuò)充這些對(duì)象。 “噴泉”這個(gè)詞形象地表明了面向?qū)ο筌浖_(kāi)發(fā)過(guò)程迭代和無(wú)縫的特征。 事實(shí)上,用面向?qū)ο蠓椒▽W(xué)開(kāi)發(fā)軟件時(shí),在分析、設(shè)計(jì)和編碼等項(xiàng)開(kāi)發(fā)活動(dòng)之間并不存在明顯的邊界。 如下圖,一個(gè)圓圈內(nèi)的向下箭頭代表該階段內(nèi)的迭代或求精。 圖中用較小的圓圈代表維護(hù),這形象地表示采用了面向?qū)ο蠓椒▽W(xué)之后維護(hù)時(shí)間縮短了。 面向?qū)ο蠓缎捅旧硪蠼?jīng)常對(duì)軟件開(kāi)發(fā)活動(dòng)進(jìn)行迭代或求精。2022/9/4軟件工程232.6 噴泉模型使用面向?qū)ο蠓椒?022/9/10軟件工程222.6 噴泉模型圖2.6 噴泉模型圖進(jìn)一步開(kāi)發(fā)維護(hù)運(yùn)行狀態(tài)集成和測(cè)試階

15、段編碼階段面向?qū)ο笤O(shè)計(jì)階段面向?qū)ο蠓治鲭A段陳述需求階段2022/9/4軟件工程242.6 噴泉模型圖2.6 噴泉2022/9/10軟件工程232.7 Rational統(tǒng)一過(guò)程統(tǒng)一過(guò)程( Rational Unified Process,RUP)是由Rational軟件公司(現(xiàn)已被IBM并購(gòu))推出的一個(gè)軟件開(kāi)發(fā)過(guò)程框架。 所謂軟件開(kāi)發(fā)過(guò)程框架是指團(tuán)隊(duì)可能根據(jù)具體的項(xiàng)目組或軟件開(kāi)發(fā)企業(yè)的不同需求,能夠定義、配置、定制和實(shí)施一致的軟件開(kāi)發(fā)過(guò)程。2022/9/4軟件工程252.7 Rational統(tǒng)一過(guò)程2022/9/10軟件工程242.7.1 最佳實(shí)踐RUP的“最佳實(shí)踐”描述了一個(gè)指導(dǎo)開(kāi)發(fā)團(tuán)隊(duì)達(dá)成目

16、標(biāo)的迭代和遞增式的軟件開(kāi)發(fā)過(guò)程,而不強(qiáng)制規(guī)定軟件項(xiàng)目的“計(jì)劃-構(gòu)建-集成”之類(lèi)活動(dòng)順序。6條最佳實(shí)踐:1、迭代式開(kāi)發(fā) 傳統(tǒng)的順序式開(kāi)發(fā)方法是不可能完成用戶(hù)需求的大型復(fù)雜系統(tǒng)工程的開(kāi)發(fā)工作。 在整個(gè)軟件開(kāi)發(fā)過(guò)程中客戶(hù)的需求會(huì)經(jīng)常發(fā)生變化,需要有一種能夠通過(guò)一系列細(xì)化、若干個(gè)漸進(jìn)的反復(fù)過(guò)程而得出有效解決方案的迭代式方法。2022/9/4軟件工程262.7.1 最佳實(shí)踐RUP的“最2022/9/10軟件工程252.7.1 最佳實(shí)踐2、管理需求3、使用基于組件的架構(gòu)4、可視化建模2022/9/4軟件工程272.7.1 最佳實(shí)踐2、管理需求2022/9/10軟件工程262.7.1 最佳實(shí)踐5、驗(yàn)證軟件質(zhì)

17、量 軟件質(zhì)量評(píng)估不是一種事后的行為或由單獨(dú)小組進(jìn)行的孤立活動(dòng),而是內(nèi)建在貫穿于整個(gè)開(kāi)發(fā)過(guò)程的、由全體成員參與的所有活動(dòng)中。6、控制軟件變更2022/9/4軟件工程282.7.1 最佳實(shí)踐5、驗(yàn)證軟件2022/9/10軟件工程272.7.2 RUP的十大要素關(guān)鍵就是需要了解軟件過(guò)程中一些必要元素,并且遵循某些原則來(lái)定制軟件過(guò)程來(lái)滿(mǎn)足項(xiàng)目的特定需求。1、前景:制定前景清晰的前景是開(kāi)發(fā)一個(gè)滿(mǎn)足干系人需求的產(chǎn)品的關(guān)鍵。 前景(vision)給更詳細(xì)的技術(shù)需求提供了一個(gè)高層的、有時(shí)候是合同式的基礎(chǔ)。2022/9/4軟件工程292.7.2 RUP的十大要素關(guān)鍵2022/9/10軟件工程282.7.2 RU

18、P的十大要素1、前景:制定前景 前景的內(nèi)容將回答以下問(wèn)題:關(guān)鍵術(shù)語(yǔ)是什么?(詞匯表) 我們嘗試解決的問(wèn)題是什么?(問(wèn)題陳述) 干系人是誰(shuí)?用戶(hù)是誰(shuí)?他們的需求是什么? 產(chǎn)品的特性是什么? 功能性需求是什么?(用例) 非功能性需求是什么? 設(shè)計(jì)約束是什么? 2022/9/4軟件工程302.7.2 RUP的十大要素1、2022/9/10軟件工程292.7.2 RUP的十大要素2、計(jì)劃:按計(jì)劃管理 產(chǎn)品的質(zhì)量是和產(chǎn)品的計(jì)劃息息相關(guān)的:在RUP中,軟件開(kāi)發(fā)計(jì)劃(software development plan,SDP)綜合了管理項(xiàng)目所需的各種信息。是其他各分計(jì)劃的基礎(chǔ)和指導(dǎo)。注意:SDP必須在整個(gè)項(xiàng)

19、目中被維護(hù)和更新。 計(jì)劃并不重要,重要的是實(shí)施計(jì)劃。2022/9/4軟件工程312.7.2 RUP的十大要素2、2022/9/10軟件工程302.7.2 RUP的十大要素3、風(fēng)險(xiǎn):降低風(fēng)險(xiǎn)并跟蹤相關(guān)問(wèn)題RUP的要點(diǎn)之一是在項(xiàng)目早期就標(biāo)識(shí)并處理最大的風(fēng)險(xiǎn)。4、業(yè)務(wù)案例:檢驗(yàn)業(yè)務(wù)案例 主要用于為實(shí)現(xiàn)項(xiàng)目的前景而制定經(jīng)濟(jì)計(jì)劃,提供項(xiàng)目的合理依據(jù),為項(xiàng)目樹(shù)立一個(gè)有說(shuō)服力的論點(diǎn)。2022/9/4軟件工程322.7.2 RUP的十大要素3、2022/9/10軟件工程312.7.2 RUP的十大要素5、架構(gòu):設(shè)計(jì)組件架構(gòu)軟件系統(tǒng)的架構(gòu)是指一個(gè)系統(tǒng)關(guān)鍵部件的組織或結(jié)構(gòu),組件之間通過(guò)接口交互,而組件是由一些更小

20、的組件和接口組成的。6、原型:增量地構(gòu)建和測(cè)試產(chǎn)品 RUP是為了盡早排除問(wèn)題和解決風(fēng)險(xiǎn)和問(wèn)題而構(gòu)建、測(cè)試和評(píng)估產(chǎn)品的可執(zhí)行版本的一種迭代方法。2022/9/4軟件工程332.7.2 RUP的十大要素5、2022/9/10軟件工程322.7.2 RUP的十大要素7、評(píng)估:定期評(píng)估結(jié)果關(guān)鍵是既關(guān)注過(guò)程問(wèn)題又關(guān)注產(chǎn)品問(wèn)題。越早發(fā)現(xiàn)問(wèn)題就減少越多的問(wèn)題。8、變更請(qǐng)求:管理并控制變更 重要的是:變更的提出和管理過(guò)程始終保持一致。2022/9/4軟件工程342.7.2 RUP的十大要素7、2022/9/10軟件工程332.7.2 RUP的十大要素9、用戶(hù)支持:部署可用的產(chǎn)品10、過(guò)程:采用適合項(xiàng)目的過(guò)程

21、必須應(yīng)用常理和經(jīng)驗(yàn)來(lái)配置流程和工具,以滿(mǎn)足組織和項(xiàng)目的需要。2022/9/4軟件工程352.7.2 RUP的十大要素9、2022/9/10軟件工程342.7.3 RUP生命周期(1)核心工作流RUP中有9個(gè)核心工作流,如下圖2022/9/4軟件工程362.7.3 RUP生命周期(1)2022/9/10軟件工程352.7.3 RUP生命周期(2)工作階段軟件生命周期被分解為周期,每一個(gè)周期工作在產(chǎn)品新的一代上。Rational Unified Process將周期又劃分為四個(gè)連續(xù)的階段。初始階段精化階段 構(gòu)建階段 移交階段建立業(yè)務(wù)模型,定義最終產(chǎn)品視圖,并且確定項(xiàng)目的范圍設(shè)計(jì)并確定系統(tǒng)的體系結(jié)構(gòu)

22、,制定項(xiàng)目計(jì)劃,確定資源需求。開(kāi)發(fā)出所有構(gòu)件和應(yīng)用程序,把它們集成為客戶(hù)需要的產(chǎn)品,并且詳盡地測(cè)試所有功能。把開(kāi)發(fā)出的產(chǎn)品提交給用戶(hù)使用2022/9/4軟件工程372.7.3 RUP生命周期(2)2022/9/10軟件工程362.7.3 RUP生命周期(3)RUP迭代式開(kāi)發(fā)RUP強(qiáng)調(diào)采用迭代和漸增的方式來(lái)開(kāi)發(fā)軟件,整個(gè)項(xiàng)目開(kāi)發(fā)過(guò)程由多個(gè)迭代過(guò)程組成。在每次迭代中只考慮系統(tǒng)的一部分需求,針對(duì)這部分需求進(jìn)行分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、部署等工作,每次迭代都是在系統(tǒng)已完成部分的基礎(chǔ)上進(jìn)行的,每次給系統(tǒng)增加一些新的功能,如此循環(huán)往復(fù)地進(jìn)行下去,直到完成最終項(xiàng)目。2022/9/4軟件工程382.7.3 RU

23、P生命周期(3)2022/9/10軟件工程372.8 敏捷過(guò)程與極限編程2.8.1 敏捷過(guò)程概述敏捷開(kāi)發(fā)運(yùn)動(dòng)正式開(kāi)始的標(biāo)志是2001年2月的“敏捷宣言”(AgileManifesto),這項(xiàng)宣言是由17位當(dāng)時(shí)稱(chēng)之為“輕量級(jí)方法學(xué)家”所編寫(xiě)簽署的,他們的價(jià)值觀(guān)是:個(gè)人與交互重于開(kāi)發(fā)過(guò)程與工具;可用的軟件重于復(fù)雜的文檔;尋求客戶(hù)的合作重于對(duì)合同的談判;對(duì)變化的響應(yīng)重于始終遵循固定的計(jì)劃。2022/9/4軟件工程392.8 敏捷過(guò)程與極限編程2.82022/9/10軟件工程382.8.1 敏捷過(guò)程概述目的是建立起一個(gè)項(xiàng)目團(tuán)隊(duì)全員參與到軟件開(kāi)發(fā)中,包括設(shè)定軟件開(kāi)發(fā)流程的管理人員,只有這樣軟件開(kāi)發(fā)流程才

24、有可接受性。同時(shí)敏捷開(kāi)發(fā)要求研發(fā)人員獨(dú)立自主在技術(shù)上進(jìn)行決策,因?yàn)樗麄兪亲盍私馐裁醇夹g(shù)是需要和不需要的。再者,敏捷開(kāi)發(fā)特別重視項(xiàng)目團(tuán)隊(duì)中的信息交流,有調(diào)查顯示:“項(xiàng)目失敗的原因最終都可追溯到信息沒(méi)有及時(shí)準(zhǔn)確地傳遞到應(yīng)該接受它的人。” 2022/9/4軟件工程402.8.1 敏捷過(guò)程概述目的2022/9/10軟件工程392.8.1 敏捷過(guò)程概述敏捷方法主要有兩個(gè)特點(diǎn),這也是其區(qū)別于其他方法,尤其是重型方法的最主要特征:(1)敏捷開(kāi)發(fā)方法是“適應(yīng)性”(Adaptive)而非“預(yù)設(shè)性”(Predictive)。一般方法在不可預(yù)測(cè)的環(huán)境下,很難適應(yīng)變化,甚至是拒絕變化。與之相反的敏捷方法則是歡迎變化,

25、目的就是成為適應(yīng)變化的過(guò)程,甚至能允許改變自身來(lái)適應(yīng)變化。所以稱(chēng)之為適應(yīng)性方法。 2022/9/4軟件工程412.8.1 敏捷過(guò)程概述2022/9/10軟件工程402.8.1 敏捷過(guò)程概述敏捷方法主要有兩個(gè)特點(diǎn),這也是其區(qū)別于其他方法,尤其是重型方法的最主要特征:(2)敏捷開(kāi)發(fā)方法是“面向人”(peopleoriented)而非“面向過(guò)程”(processoriented)。MatinFlower認(rèn)為:“在敏捷開(kāi)發(fā)過(guò)程中,人是第一位的,過(guò)程是第二位的。所以就個(gè)人來(lái)說(shuō),應(yīng)該可以從各種不同的過(guò)程中找到真正適合自己的過(guò)程?!?2022/9/4軟件工程422.8.1 敏捷過(guò)程概述2022/9/10軟件

26、工程412.8.1 敏捷過(guò)程概述敏捷的價(jià)值觀(guān)如下: “個(gè)體和交互” 勝過(guò)“ 過(guò)程和工具” “可以工作的軟件” 勝過(guò)“面面俱到的文檔” “客戶(hù)合作” 勝過(guò) “合同談判” “響應(yīng)變化” 勝過(guò) “遵循計(jì)劃”另外還有12個(gè)原則:2022/9/4軟件工程432.8.1 敏捷過(guò)程概述敏捷的2022/9/10軟件工程422.8.1 敏捷過(guò)程概述對(duì)敏捷開(kāi)發(fā)的誤解 : 誤解一:敏捷對(duì)人的要求很高 誤解二:敏捷沒(méi)有文檔,也不做設(shè)計(jì) 誤解三:敏捷好,其他方法不好 誤解四:敏捷就是XP(極限編程),就是Scrum XP和Scrum只是眾多敏捷方法中的兩種,還有很多其他的敏捷方法。 誤解五:敏捷很好,因此我要制定標(biāo)準(zhǔn),

27、所有項(xiàng)目都要遵循著個(gè)標(biāo)準(zhǔn) 2022/9/4軟件工程442.8.1 敏捷過(guò)程概述對(duì)敏捷2022/9/10軟件工程432.8.2 極限編程極限編程(ExtremeProgramming,簡(jiǎn)稱(chēng)XP) 是敏捷過(guò)程中最負(fù)盛名的一個(gè),其名中“極限”二字的含義是指把好的開(kāi)發(fā)實(shí)踐運(yùn)用到極致。2022/9/4軟件工程452.8.2 極限編程極限2022/9/10軟件工程442.8.2 極限編程極限編程是由KentBeck在1996年提出的,是一個(gè)輕量級(jí)的、靈巧的軟件開(kāi)發(fā)方法;同時(shí)它也是一個(gè)非常嚴(yán)謹(jǐn)和周密的方法。它的基礎(chǔ)和價(jià)值觀(guān)是交流、樸素、反饋和勇氣;即,任何一個(gè)軟件項(xiàng)目都可以從四個(gè)方面入手進(jìn)行改善:加強(qiáng)交流;

28、從簡(jiǎn)單做起;尋求反饋;勇于實(shí)事求是。XP是一種近螺旋式的開(kāi)發(fā)方法,它將復(fù)雜的開(kāi)發(fā)過(guò)程分解為一個(gè)個(gè)相對(duì)比較簡(jiǎn)單的小周期;通過(guò)積極的交流、反饋以及其它一系列的方法,開(kāi)發(fā)人員和客戶(hù)可以非常清楚開(kāi)發(fā)進(jìn)度、變化、待解決的問(wèn)題和潛在的困難等,并根據(jù)實(shí)際情況及時(shí)地調(diào)整開(kāi)發(fā)過(guò)程。 2022/9/4軟件工程462.8.2 極限編程極限2022/9/10軟件工程452.8.2 極限編程“Extreme”(極限)是指,對(duì)比傳統(tǒng)的項(xiàng)目開(kāi)發(fā)方式,XP強(qiáng)調(diào)把它列出的每個(gè)方法和思想做到極限、做到最好;其它XP所不提倡的,則一概忽略(如開(kāi)發(fā)前期的整體設(shè)計(jì)等)。一個(gè)嚴(yán)格實(shí)施XP的項(xiàng)目,其開(kāi)發(fā)過(guò)程應(yīng)該是平穩(wěn)的、高效的和快速的,能

29、夠做到一周40小時(shí)工作制而不拖延項(xiàng)目進(jìn)度。 2022/9/4軟件工程472.8.2 極限編程“E2022/9/10軟件工程462.8.2 極限編程1.極限編程的有效實(shí)踐客戶(hù)作為開(kāi)發(fā)團(tuán)隊(duì)的成員使用用戶(hù)素材短交付周期驗(yàn)收測(cè)試結(jié)對(duì)編程測(cè)試驅(qū)動(dòng)開(kāi)發(fā)集體所有持續(xù)集成2022/9/4軟件工程482.8.2 極限編程1.極限編2022/9/10軟件工程472.8.2 極限編程1.極限編程的有效實(shí)踐可持續(xù)的開(kāi)發(fā)速度開(kāi)放的工作空間及時(shí)調(diào)整計(jì)劃簡(jiǎn)單的設(shè)計(jì)重構(gòu)2022/9/4軟件工程492.8.2 極限編程1.極限編2022/9/10軟件工程482.8.2 極限編程1.極限編程的有效實(shí)踐使用隱喻 在軟件領(lǐng)域中,隱喻

30、并非簡(jiǎn)單地用一個(gè)名詞對(duì)軟件事物進(jìn)行類(lèi)比,它還包含了對(duì)類(lèi)比事物之間的體驗(yàn)與分析,不僅要找出兩者之間的類(lèi)同之處,還要借助人們對(duì)隱喻事物的現(xiàn)有理解,通過(guò)我們已經(jīng)熟悉的活動(dòng),將軟件開(kāi)發(fā)過(guò)程聯(lián)系起來(lái),從而幫助我們更好地認(rèn)知軟件問(wèn)題域。因此,軟件隱喻的本質(zhì)是一種認(rèn)知隱喻。我們可以通過(guò)在日常生活中無(wú)意識(shí)獲得的基本隱喻系統(tǒng),在軟件開(kāi)發(fā)過(guò)程中,受到關(guān)聯(lián)性的啟發(fā)和影響,使得主觀(guān)經(jīng)驗(yàn)和感覺(jué)經(jīng)驗(yàn)相互匹配,然后通過(guò)概念融合而形成具有啟示意義和指導(dǎo)意義的軟件隱喻。這正是軟件隱喻的工作機(jī)制。 在軟件開(kāi)發(fā)過(guò)程中,我們會(huì)碰到種類(lèi)繁多的軟件隱喻,例如臭蟲(chóng)(bug)、菜單(menu)、視窗(windows);架構(gòu)(architec

31、ture)、服務(wù)(service)、對(duì)象(object);黑盒(black box)與白盒(white box);瀑布(waterfall)軟件模型、迭代(iterative)軟件模型這些軟件隱喻無(wú)一不是從日常生活或其他科學(xué)領(lǐng)域中借鑒而來(lái),根據(jù)我們?cè)械恼J(rèn)知,實(shí)現(xiàn)一種類(lèi)比的定義,并逐步發(fā)展為軟件領(lǐng)域的固有概念。 2022/9/4軟件工程502.8.2 極限編程1.極限編2022/9/10軟件工程492.8.2 極限編程2.極限編程的整體開(kāi)發(fā)過(guò)程用戶(hù)故事測(cè)試用例架構(gòu)試探制定交付計(jì)劃迭代開(kāi)發(fā)驗(yàn)收測(cè)試小交付難點(diǎn)試探需求新用戶(hù)故事隱喻交付計(jì)劃最新版本用戶(hù)認(rèn)可不確定的估計(jì)確定的估計(jì)下一次迭代差錯(cuò)圖2.1

32、0 極限編程的整體開(kāi)發(fā)過(guò)程2022/9/4軟件工程512.8.2 極限編程2.極限編2022/9/10軟件工程502.8.2 極限編程3.極限編程的迭代過(guò)程制定迭代計(jì)劃圖2.11 極限編程的迭代過(guò)程站立會(huì)議結(jié)對(duì)編程最新版本小交付交流與討論驗(yàn)收測(cè)試用戶(hù)認(rèn)可測(cè)試用例差錯(cuò)未完成的任務(wù)用戶(hù)故事交付計(jì)劃項(xiàng)目效率輪換結(jié)對(duì)編程人員持續(xù)地優(yōu)化設(shè)計(jì)“類(lèi)-責(zé)任-協(xié)作”卡新用戶(hù)故事共享的信息任務(wù)分配下一個(gè)任務(wù)新功能新項(xiàng)目速率2022/9/4軟件工程522.8.2 極限編程3.極限編2022/9/10軟件工程512.9 能力成熟度模型能力成熟度模型的基本思想是,因?yàn)閱?wèn)題是由我們管理軟件過(guò)程的方法不當(dāng)引起的,所以新軟件

33、技術(shù)的運(yùn)用并不會(huì)自動(dòng)提高生產(chǎn)率和軟件質(zhì)量。能力成熟度模型有助于軟件開(kāi)發(fā)組織建立一個(gè)有規(guī)律的、成熟的軟件過(guò)程。改進(jìn)后的過(guò)程將開(kāi)發(fā)出質(zhì)量更好的軟件,使更多的軟件項(xiàng)目免受時(shí)間和費(fèi)用超支之苦。2022/9/4軟件工程532.9 能力成熟度模型能力成2022/9/10軟件工程522.9 能力成熟度模型軟件過(guò)程包括各種活動(dòng)、技術(shù)和工具,因此,它實(shí)際上既包括了軟件生產(chǎn)的技術(shù)方面又包括了管理方面。CMM策略力圖改進(jìn)軟件過(guò)程的管理,而在技術(shù)方面的改進(jìn)是其必然的結(jié)果。 必須記住,CMM是以增量方式逐步引入變化的。CMM明確地定義了5個(gè)不同的成熟度等級(jí),一個(gè)軟件開(kāi)發(fā)組織可用一系列小的改良性步驟向更高的成熟度等級(jí)邁進(jìn)

34、。2022/9/4軟件工程542.9 能力成熟度模型軟件過(guò)2022/9/10軟件工程532.9.1 能力成熟度模型的結(jié)構(gòu)能力成熟度模型包括以下的組成成分。成熟度等級(jí)(Maturity Levels) 過(guò)程能力(Process Capability)關(guān)鍵過(guò)程域(Key Process Areas,KPA)目標(biāo)(Goals)公共特性(common features)關(guān)鍵實(shí)踐(key practices)2022/9/4軟件工程552.9.1 能力成熟度模型的結(jié)構(gòu)2022/9/10軟件工程542.9.1 能力成熟度模型的結(jié)構(gòu)下圖所示描繪了CMM的結(jié)構(gòu)2022/9/4軟件工程562.9.1 能力成熟度模型的結(jié)構(gòu)2022/9/10軟件工程552.9.2 能力成熟度等級(jí) CMM通過(guò)定義能力成熟度的五個(gè)等級(jí),引導(dǎo)軟件開(kāi)發(fā)組織不斷識(shí)別出其軟件過(guò)程的缺陷,并指出應(yīng)該做哪些改進(jìn),但是,它并不提供做這些改進(jìn)的具體措施。 能力成熟度的五個(gè)等級(jí)從低到高是:初始級(jí)、可重復(fù)級(jí)、已定義級(jí)、已管理級(jí)和優(yōu)化級(jí)。下面介紹能力成熟度的這五個(gè)等級(jí)。2022/9/4軟件工程

溫馨提示

  • 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論