軟件工程:理論、技術(shù)及實(shí)踐 課件 第3章 軟件過(guò)程_第1頁(yè)
軟件工程:理論、技術(shù)及實(shí)踐 課件 第3章 軟件過(guò)程_第2頁(yè)
軟件工程:理論、技術(shù)及實(shí)踐 課件 第3章 軟件過(guò)程_第3頁(yè)
軟件工程:理論、技術(shù)及實(shí)踐 課件 第3章 軟件過(guò)程_第4頁(yè)
軟件工程:理論、技術(shù)及實(shí)踐 課件 第3章 軟件過(guò)程_第5頁(yè)
已閱讀5頁(yè),還剩39頁(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)介

第3章軟件過(guò)程軟件生命周期模型1統(tǒng)一過(guò)程2敏捷開(kāi)發(fā)3開(kāi)源軟件4軟件過(guò)程的改進(jìn)5軟件過(guò)程軟件過(guò)程是生產(chǎn)軟件的方式,不同的軟件組織有不同的軟件生產(chǎn)過(guò)程。例如:初創(chuàng)公司的資本和人力條件有限,因此為開(kāi)發(fā)出能迅速響應(yīng)市場(chǎng)需求的軟件產(chǎn)品,會(huì)更關(guān)注完成產(chǎn)品的核心功能并盡早發(fā)布,新功能的加入以及產(chǎn)品質(zhì)量的提高往往放在軟件交付以后。長(zhǎng)期開(kāi)發(fā)行業(yè)應(yīng)用軟件的公司對(duì)同類(lèi)產(chǎn)品需求的把握更精準(zhǔn),對(duì)設(shè)計(jì)和實(shí)現(xiàn)軟件所需要花費(fèi)的工作量和時(shí)間的估算更準(zhǔn)確,從而能更“有秩序”地進(jìn)行相關(guān)軟件生產(chǎn),提交給用戶(hù)穩(wěn)定、可靠的軟件產(chǎn)品。

軟件生命周期模型:對(duì)構(gòu)建軟件所應(yīng)遵循的步驟的理論性描述。

軟件生命周期模型是跨越整個(gè)生存期的系統(tǒng)開(kāi)發(fā)、運(yùn)作和維護(hù)所實(shí)施的全部過(guò)程、活動(dòng)和任務(wù)的結(jié)構(gòu)框架。

瀑布模型快速原型模型

增量模型 螺旋模型

噴泉模型

可以用過(guò)程流來(lái)描述組織框架活動(dòng)、動(dòng)作和任務(wù)的次序,分為線性、迭代、演化和并行。軟件過(guò)程瀑布模型(waterfallmodel)是在1970年由WinstonRoyce提出的,其過(guò)程流是線性的。瀑布模型的關(guān)鍵是每個(gè)階段要完成指定的文檔并且該階段的產(chǎn)品被軟件質(zhì)量保證小組認(rèn)可之后,才能進(jìn)入下一個(gè)階段。3.1軟件生命周期模型3.1.1瀑布模型圖3-1瀑布模型軟件生命周期模型3.1瀑布模型被稱(chēng)為經(jīng)典的軟件生命周期模型。在有明確需求并且需求保持穩(wěn)定的情況下,它是一個(gè)非常有效的過(guò)程模型。瀑布模型不適應(yīng)軟件需求不明確或者在開(kāi)發(fā)過(guò)程中需求經(jīng)常變化的情況。軟件生命周期模型3.1.1瀑布模型3.1快速原型模型通過(guò)使用原型來(lái)輔助軟件開(kāi)發(fā)。在需求分析階段要得到準(zhǔn)確、合理的需求說(shuō)明可能比較困難,用戶(hù)可能并不清楚自己需要的是什么樣的系統(tǒng)。快速原型模型適合預(yù)先不能確切定義需求的軟件系統(tǒng)的開(kāi)發(fā)。

軟件生命周期模型3.1.2快速原型模型3.1圖3-2快速原型模型

軟件產(chǎn)品的開(kāi)發(fā)基本上是線性順序進(jìn)行的。

軟件生命周期模型3.1快速原型模型最大的特點(diǎn)在于“快速”。對(duì)于采用何種形式、何種策略運(yùn)用快速原型主要取決于軟件項(xiàng)目的特點(diǎn)、團(tuán)隊(duì)成員素質(zhì)、可供支持的原型開(kāi)發(fā)工具和技術(shù)等,需要根據(jù)實(shí)際情況來(lái)做出決定。軟件生命周期模型3.1.2快速原型模型3.1如果軟件有明確需求,整個(gè)開(kāi)發(fā)過(guò)程不要求按照線性過(guò)程流執(zhí)行,同時(shí)要求團(tuán)隊(duì)迅速為用戶(hù)提供一套功能有限的軟件產(chǎn)品,并允許在后續(xù)版本中再進(jìn)行細(xì)化和擴(kuò)展,在這種情況下,可采用增量模型比較適用。

軟件生命周期模型3.1.3增量模型3.1圖3-3增量模型

軟件生命周期模型3.1增量模型的最大特點(diǎn)就是將待開(kāi)發(fā)的軟件系統(tǒng)模塊化和組件化。增量式開(kāi)發(fā)有利于從總體上降低軟件項(xiàng)目的技術(shù)風(fēng)險(xiǎn)。但增量模型對(duì)軟件設(shè)計(jì)有更高的技術(shù)要求:軟件體系結(jié)構(gòu)具有良好的開(kāi)放性與穩(wěn)定性,能夠順利地實(shí)現(xiàn)構(gòu)件集成;同時(shí)增量構(gòu)件應(yīng)具有很強(qiáng)的功能獨(dú)立性,能夠方便地與系統(tǒng)集成。軟件生命周期模型3.1.3增量模型3.1為了讓軟件開(kāi)發(fā)能更適應(yīng)風(fēng)險(xiǎn)的控制,Barry

Boehm在1988年提出軟件系統(tǒng)開(kāi)發(fā)的螺旋模型,將瀑布模型和快速原型模型結(jié)合起來(lái),強(qiáng)調(diào)風(fēng)險(xiǎn)分析。螺旋模型以快速原型法為基礎(chǔ),以進(jìn)化的開(kāi)發(fā)方式為中心,在每個(gè)項(xiàng)目階段使用瀑布模型法。它的基本做法是在每一個(gè)開(kāi)發(fā)階段前引入風(fēng)險(xiǎn)識(shí)別、風(fēng)險(xiǎn)分析和風(fēng)險(xiǎn)控制。軟件生命周期模型3.1.4螺旋模型3.1圖3-4螺旋模型軟件生命周期模型3.1B.H.Sollers和J.M.Edwards在1990年提出的噴泉模型是一種以用戶(hù)需求為動(dòng)力,以對(duì)象為驅(qū)動(dòng)的模型,主要用于描述面向?qū)ο蟮能浖_(kāi)發(fā)過(guò)程。軟件生命周期模型3.1.5噴泉模型3.1圖3-5噴泉模型1994年10月,JamesRumbaugh和GradyBooch開(kāi)始合作致力于建模語(yǔ)言工作,于1995年10月發(fā)布了統(tǒng)一方法UM0.8(UnitiedMethod0.8)。1995年,經(jīng)過(guò)Booch、Rumbaugh和Jacobson三人的共同努力,于1996年6月和10月分別發(fā)布了UML0.9和UML0.91,并將UM重新命名為統(tǒng)一建模語(yǔ)言(UnifiedModelingLanguage,UML)。UML是現(xiàn)今較為成熟的軟件建模技術(shù)和語(yǔ)言。3.2.1RUP的產(chǎn)生3.2統(tǒng)一過(guò)程在創(chuàng)建UML開(kāi)始階段,UML的三位創(chuàng)始人就認(rèn)識(shí)到軟件開(kāi)發(fā)除了需要建模技術(shù)和語(yǔ)言之外,還需要一個(gè)更高層次、能夠指導(dǎo)軟件開(kāi)發(fā)人員進(jìn)行開(kāi)發(fā)活動(dòng)的開(kāi)發(fā)過(guò)程方法學(xué)。1998年,統(tǒng)一過(guò)程(RationalUnifiedProcess,RUP)正式發(fā)布,并且將UML作為其建模語(yǔ)言。RUP并不是具體的一系列步驟,而應(yīng)被視為一種自適應(yīng)的方法學(xué),可以根據(jù)實(shí)際開(kāi)發(fā)的軟件產(chǎn)品進(jìn)行修改。3.2.1RUP的產(chǎn)生3.2統(tǒng)一過(guò)程圖3-6RUP發(fā)展過(guò)程

3.2.1RUP的產(chǎn)生統(tǒng)一過(guò)程3.2圖3-7RUP過(guò)程模型

RUP軟件過(guò)程模型是一個(gè)二維的軟件開(kāi)發(fā)模型,也是一種用例驅(qū)動(dòng)、以體系結(jié)構(gòu)為核心、迭代遞增的軟件過(guò)程框架。3.2.2RUP的過(guò)程模型統(tǒng)一過(guò)程3.2RUP包含了軟件開(kāi)發(fā)積累下來(lái)的六大經(jīng)驗(yàn):1.迭代和遞增式開(kāi)發(fā)2.管理需求3.基于組件的體系結(jié)構(gòu)4.可視化建模5.驗(yàn)證軟件質(zhì)量6.控制軟件變更

3.2.3RUP的特點(diǎn)統(tǒng)一過(guò)程3.22001年,17位在當(dāng)時(shí)被稱(chēng)為“輕量級(jí)方法學(xué)家”的軟件開(kāi)發(fā)者、軟件工程作家以及軟件咨詢(xún)師(敏捷聯(lián)盟)共同簽署了“敏捷軟件開(kāi)發(fā)宣言”。3.3.1敏捷原則3.3敏捷開(kāi)發(fā)敏捷軟件開(kāi)發(fā)宣言個(gè)體和交互勝過(guò)過(guò)程和工具可以工作的軟件

勝過(guò)

面面俱到的文檔

客戶(hù)合作

勝過(guò)

合同談判

響應(yīng)變化

勝過(guò)

遵循計(jì)劃“我們正在通過(guò)親身實(shí)踐以及幫助他人實(shí)踐,揭示更好的軟件開(kāi)發(fā)方法。通過(guò)這項(xiàng)工作,我們認(rèn)識(shí)到:雖然右項(xiàng)也具有價(jià)值,但我們認(rèn)為左項(xiàng)具有更大的價(jià)值?!泵艚蓍_(kāi)發(fā)3.3敏捷聯(lián)盟制定了12項(xiàng)原則,將敏捷理念落實(shí)到具體可操作的層面。敏捷軟件開(kāi)發(fā)項(xiàng)目以12項(xiàng)原則為基石,但并不是每一個(gè)敏捷模型都同等使用這12項(xiàng)原則,一些模型可以選擇忽略或淡化其中的一項(xiàng)或多項(xiàng)原則的重要性。敏捷開(kāi)發(fā)3.33.3.1敏捷原則(1)最優(yōu)先要做的是通過(guò)盡早、持續(xù)地交付有價(jià)值的軟件來(lái)使客戶(hù)滿意。(2)即使在開(kāi)發(fā)的后期,也歡迎需求變更。敏捷過(guò)程利用變更為客戶(hù)創(chuàng)造競(jìng)爭(zhēng)優(yōu)勢(shì)。(3)經(jīng)常交付可運(yùn)行軟件,交付的間隔可以從幾個(gè)星期到幾個(gè)月,交付的時(shí)間間隔越短越好。(4)在整個(gè)項(xiàng)目開(kāi)發(fā)期間,業(yè)務(wù)人員和開(kāi)發(fā)人員必須每天都在一起工作。(5)激發(fā)個(gè)體的斗志,以他們?yōu)楹诵拇罱?xiàng)目。給他們提供所需的環(huán)境和支持,并且信任他們能夠完成工作。(6)不論團(tuán)隊(duì)內(nèi)外,傳遞信息效果最好和效率最高的方式是面對(duì)面的交談。敏捷開(kāi)發(fā)3.3(7)可工作的軟件是進(jìn)度的首要度量標(biāo)準(zhǔn)。(8)敏捷過(guò)程倡導(dǎo)可持續(xù)開(kāi)發(fā)。責(zé)任人、開(kāi)發(fā)人員和用戶(hù)要能夠共同維持其步調(diào)穩(wěn)定延續(xù)。(9)不斷地關(guān)注優(yōu)秀的技能和好的設(shè)計(jì)會(huì)增強(qiáng)敏捷能力。(10)要做到簡(jiǎn)潔,即盡最大可能減少不必要的工作。這是一門(mén)藝術(shù)。(11)最好的架構(gòu)、需求和設(shè)計(jì)來(lái)自于自組織團(tuán)隊(duì)。(12)每隔一定時(shí)間,團(tuán)隊(duì)要反思如何才能更有效地工作,并相應(yīng)調(diào)整自己的行為。敏捷開(kāi)發(fā)3.3極限編程(XP)Scrum精益開(kāi)發(fā)(Lean)OpenUP3.3.2敏捷過(guò)程應(yīng)用最廣泛的敏捷開(kāi)發(fā)方法框架有:敏捷開(kāi)發(fā)3.3極限編程(ExtremeProgramming,XP)是目前敏捷軟件開(kāi)發(fā)使用最為廣泛的方法之一,其主要目標(biāo)在于降低因需求變更而帶來(lái)的成本。極限編程的創(chuàng)始人KentBeck為XP的實(shí)施確定了五個(gè)基礎(chǔ)要素:溝通、簡(jiǎn)明、反饋、鼓勵(lì)和尊重。3.3.3極限編程敏捷開(kāi)發(fā)3.3圖3-8

XP過(guò)程

3.3.3極限編程敏捷開(kāi)發(fā)3.3Scrum最早由JeffSutherland在1993年提出,KenSchwaber在1995年OOPSLA會(huì)議上形式化了Scrum開(kāi)發(fā)過(guò)程,并向業(yè)界公布。Scrum已經(jīng)是業(yè)界常用的敏捷開(kāi)發(fā)方法之一。使用Scrum的產(chǎn)品生命周期一般包含三個(gè)階段:●產(chǎn)品定義(計(jì)劃):進(jìn)行迭代所需要的項(xiàng)目準(zhǔn)備、項(xiàng)目計(jì)劃和技術(shù)分析。●迭代開(kāi)發(fā)(執(zhí)行):在固定時(shí)間的迭代中實(shí)現(xiàn)需求(產(chǎn)品待辦列表中的條目)。●結(jié)束:準(zhǔn)備最終的發(fā)布,結(jié)束項(xiàng)目。3.3.4Scrum敏捷開(kāi)發(fā)3.3圖3-9Scrum過(guò)程敏捷開(kāi)發(fā)3.3每個(gè)過(guò)程模式定義了一系列開(kāi)發(fā)活動(dòng):●待辦列表(Backlog):能為用戶(hù)提供商業(yè)價(jià)值的項(xiàng)目需求或者特征的優(yōu)先級(jí)列表?!駴_刺(sprint):是由一系列必須在規(guī)定時(shí)間完成的工作單元組成,這些工作單元是為了實(shí)現(xiàn)待定需求而必需的。在沖刺過(guò)程中,不允許進(jìn)行任何變更,以確保短期內(nèi)的穩(wěn)定性●Scrum例會(huì):團(tuán)隊(duì)每天召開(kāi)短會(huì),幫助團(tuán)隊(duì)盡早發(fā)現(xiàn)問(wèn)題?!裱菔荆合蚩蛻?hù)交付軟件增量,由客戶(hù)對(duì)其進(jìn)行評(píng)價(jià)。3.3.4Scrum敏捷開(kāi)發(fā)3.31.產(chǎn)品負(fù)責(zé)人2.ScrumMaster3.Scrum團(tuán)隊(duì)1.產(chǎn)品代辦列表2.發(fā)布燃盡圖3.Sprint代辦列表4.Sprint燃盡圖1.Sprint2.發(fā)布計(jì)劃會(huì)議3.Sprint計(jì)劃會(huì)議4.每日例會(huì)5.Sprint評(píng)審會(huì)6.Sprint回顧會(huì)議Scrum敏捷過(guò)程由三個(gè)角色、四個(gè)工件、六個(gè)時(shí)間箱組成。三個(gè)角色四個(gè)工件六個(gè)時(shí)間箱敏捷開(kāi)發(fā)3.3圖3-10

Scrum中的燃盡圖敏捷開(kāi)發(fā)3.31998年,BrucePerens和EricRaymond創(chuàng)立了開(kāi)放源代碼促進(jìn)會(huì)(OpenSourceInitiative),發(fā)起了“開(kāi)放源代碼”運(yùn)動(dòng)。開(kāi)源已經(jīng)成為軟件領(lǐng)域技術(shù)、產(chǎn)品創(chuàng)新的一種重要模式,也是驅(qū)動(dòng)信息產(chǎn)業(yè)變革、強(qiáng)化信息產(chǎn)業(yè)基礎(chǔ)的關(guān)鍵要素。在云計(jì)算、大數(shù)據(jù)等新興領(lǐng)域,基于開(kāi)源模式的技術(shù)創(chuàng)新對(duì)產(chǎn)業(yè)發(fā)展的影響力日益提升。移動(dòng)網(wǎng)絡(luò)、云計(jì)算、大數(shù)據(jù)等技術(shù)的不斷創(chuàng)新,帶動(dòng)了OpenStack、Hadoop等開(kāi)源軟件的迅速發(fā)展。3.4.1開(kāi)源軟件的發(fā)展3.4開(kāi)源軟件針對(duì)開(kāi)源軟件開(kāi)發(fā)的特點(diǎn),Raymond提出兩種開(kāi)源軟件開(kāi)發(fā)模型的概念。一種是在每個(gè)軟件版本之中源代碼均可以獲得,但是能夠開(kāi)發(fā)不同版本代碼的人員僅限于項(xiàng)目開(kāi)發(fā)組內(nèi)部。另一種是指通過(guò)Internet來(lái)組織代碼開(kāi)發(fā),它允許有很多底層的變化,代碼經(jīng)??梢缘玫叫拚?,對(duì)于來(lái)自外部的代碼也來(lái)者不拒。大部分的開(kāi)源開(kāi)發(fā)屬于第二種模型。開(kāi)發(fā)者和軟件的使用者構(gòu)成了開(kāi)源社區(qū)。形成開(kāi)源社區(qū)的兩個(gè)基本特征是:①社區(qū)成員有一個(gè)共同目標(biāo),即所要開(kāi)發(fā)的軟件;②基于這個(gè)共同目標(biāo),社區(qū)成員遵循一些標(biāo)準(zhǔn)和原則執(zhí)行各自的開(kāi)發(fā)任務(wù)。3.4.2開(kāi)源軟件的開(kāi)發(fā)過(guò)程開(kāi)源軟件3.4開(kāi)源軟件過(guò)程與傳統(tǒng)不開(kāi)源軟件過(guò)程比較有以下不同:需求的確定性設(shè)計(jì)意圖更容易取得團(tuán)隊(duì)認(rèn)可。分散開(kāi)發(fā)、配置管理嚴(yán)格。積極查找與改進(jìn)缺陷的態(tài)度。代碼實(shí)現(xiàn)與測(cè)試交替進(jìn)行。3.4.2開(kāi)源軟件的開(kāi)發(fā)過(guò)程開(kāi)源軟件3.4表3-1軟件過(guò)程特性3.5.1軟件過(guò)程特性3.5軟件過(guò)程的改進(jìn)能力成熟度模型(CMM)是美國(guó)卡內(nèi)基·梅隆大學(xué)軟件工程研究所(SEI)在美國(guó)國(guó)防部資助下建立的,是一組用于改進(jìn)軟件過(guò)程的相關(guān)策略。該模型最初是為了提供一種評(píng)價(jià)軟件承接方能力的方法,為大型軟件項(xiàng)目的招投標(biāo)活動(dòng)提供一種全面而客觀的評(píng)審依據(jù),后來(lái)同時(shí)被軟件組織用于改進(jìn)其軟件過(guò)程。3.5.2能力成熟度模型軟件過(guò)程的改進(jìn)3.5表3-2CMM的五個(gè)等級(jí)軟件過(guò)程的改進(jìn)3.5圖3-11IDEAL過(guò)程改進(jìn)模型3.5.3IDEAL模型美國(guó)卡內(nèi)基·梅隆大學(xué)軟件工程研究所提出了IDEAL過(guò)程改進(jìn)模型。軟件過(guò)程的改進(jìn)3.53.5.4個(gè)人軟件過(guò)程美國(guó)卡內(nèi)基·梅隆大學(xué)軟件工程研究所的WattsS.Humphrey主持開(kāi)發(fā)了個(gè)人軟件

溫馨提示

  • 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)論