本地-01高級軟件工程基礎(chǔ)_第1頁
本地-01高級軟件工程基礎(chǔ)_第2頁
本地-01高級軟件工程基礎(chǔ)_第3頁
本地-01高級軟件工程基礎(chǔ)_第4頁
本地-01高級軟件工程基礎(chǔ)_第5頁
已閱讀5頁,還剩95頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1

廈門大學(xué)軟件學(xué)院

高星ADVANCEDSoftwareEngineering軟件工程基礎(chǔ)主要內(nèi)容軟件工程的基本理念軟件過程軟件生命周期軟件開發(fā)模型2解決軟件危機(jī)之路提高軟件產(chǎn)品的質(zhì)量!

降低軟件開發(fā)的成本!3過程管理與目標(biāo)管理理念:通過保證過程保證結(jié)果以小孩教育為例4軟件工程原則B.W.Boehm(1983):用分階段的生存周期計劃嚴(yán)格管理軟件開發(fā)進(jìn)行階段評審實行產(chǎn)品版本控制采用現(xiàn)代程序設(shè)計技術(shù)結(jié)果應(yīng)能清楚的審查開發(fā)小組成員應(yīng)少而精承認(rèn)不斷改進(jìn)軟件工程實踐的必要性5二八定律對軟件項目進(jìn)度和工作量的估計:認(rèn)為完成80%的工作量,實際上只完成了20%。對程序中存在問題的估計:80%的問題存在于20%的程序中。對模塊功能的估計:20%的模塊實現(xiàn)了80%的功能。對人力資源的估計:20%的人解決了軟件中80%的問題。對投入資金的估計:企業(yè)信息系統(tǒng)中,80%的問題可以用20%的資金耒解決。6軟件工程視角與剖面企業(yè)角度計算角度信息角度工程角度政策、操作......7軟件開發(fā)模型-軟件生命周期模型瀑布模型(WaterfallModel1970W.Royce)8漸增模型(IncrementalModel)910快速原型模型(RapidPrototypingModel)11螺旋模型(SpiralModel)12V模型13圖1-7V模型14圖1-8V模型改進(jìn)-W模型噴泉模型15構(gòu)件集成模型16圖1-10構(gòu)建集成模型智能模型17圖1-11智能模型轉(zhuǎn)換模型18圖1-11智能模型軟件過程基礎(chǔ)

任何工程方法(包括軟件工程)必須以有組織的質(zhì)量保證為基礎(chǔ).全面的質(zhì)量管理和類似的理念刺激了不斷的過程改進(jìn),正是這種改進(jìn)導(dǎo)致了更加成熟的軟件工程方法的不斷出現(xiàn).支持軟件工程的根基就在于對質(zhì)量的關(guān)注.建造計算機(jī)軟件是一個迭代學(xué)習(xí)的過程。軟件工程與軟件過程的關(guān)系軟件過程是為開發(fā)高質(zhì)量軟件所需要完成的任務(wù)的框架.軟件工程是有創(chuàng)造力,有知識的人在定義好的,成熟的軟件過程框架中進(jìn)行的.該過程適合于他們建造的產(chǎn)品和他們的市場需要。一個軟件過程定義了軟件開發(fā)中采用的方法,而軟件工程還包含該過程中應(yīng)用的技術(shù)----技術(shù)方法和自動工具。軟件的一般視圖

工程是對技術(shù)(或社會)實體的分析、設(shè)計、建造、驗證和管理。拋開要工程化的實體,下列問題是必須首先回答的:要解決的問題是什么?要用于解決該問題的實體具有什么特點?如何實現(xiàn)該實體(解決方案)?如何建造該實體?采用什么方法去發(fā)現(xiàn)該實體設(shè)計和建造過程中產(chǎn)生的錯誤?當(dāng)該實體的用戶要求修改、適應(yīng)和增強(qiáng)時,如何支持這些活動?軟件的一般視圖

與軟件工程相關(guān)的工作可分為三個一般的階段:(1)定義階段:集中于“做什么”;三個主要任務(wù):系統(tǒng)工程、項目計劃、需求分析(2)開發(fā)階段:集中于“如何做”;三個特定任務(wù):設(shè)計、編碼、測試(3)支持階段:關(guān)注于“變化”四類可能遇到的變化:糾錯、適應(yīng)、增強(qiáng)、預(yù)防軟件過程一個軟件過程包含以下內(nèi)容:一個公共過程框架:通過定義若干框架活動來建立的,這些活動可應(yīng)用于所有軟件項目,不考慮其規(guī)模和復(fù)雜性。若干任務(wù)集合:每個集合都由軟件工程工作任務(wù)、項目里程碑、軟件工程產(chǎn)品和質(zhì)量保證點組成。最后是庇護(hù)性活動:軟件質(zhì)量保證、軟件配置管理和測度。軟件過程可分為三大類基本過程類:是構(gòu)成軟件生存周期主要部分的那些過程,包括獲取,供應(yīng),開發(fā),操作,維護(hù)等過程.支持過程類:可穿插到基本過程中提供支持的一系列過程,包括文檔開發(fā),配置管理,質(zhì)量保證,驗證,確認(rèn),聯(lián)合評審,審計,問題解決等過程.組織過程類:一個組織用來建立,實施一種基礎(chǔ)結(jié)構(gòu),并不斷改進(jìn)該基礎(chǔ)結(jié)構(gòu)的過程,包括管理,基礎(chǔ),改進(jìn),培訓(xùn)等過程.軟件工程過程

軟件工程過程(SoftwareEngineeringProcess)是為獲得軟件產(chǎn)品,在軟件工具支持下由軟件工程師完成的一系列軟件工程活動。軟件工程的過程則是將軟件工程的方法和工具綜合起來以達(dá)到合理、及時地進(jìn)行計算機(jī)軟件開發(fā)的目的。過程定義了方法使用的順序、要求交付的文檔資料、為保證質(zhì)量和協(xié)調(diào)變化所需要的管理、及軟件開發(fā)各個階段完成的里程碑。軟件工程過程通常包含四種基本的過程活動

P(Plan)軟件規(guī)格說明:

規(guī)定軟件的功能及其運行的限制;

D(Do)軟件開發(fā):

產(chǎn)生滿足規(guī)格說明的軟件

C(Check)軟件確認(rèn):

確認(rèn)軟件能夠完成客戶提出的要求

A(Action)軟件演進(jìn):

為滿足客戶的變更要求,軟件必須在使用的過程中演進(jìn)軟件過程模型所有軟件開發(fā)都可被刻畫為一個問題解決環(huán),其中包括四個不同的階段:狀態(tài)描述、問題定義、技術(shù)開發(fā)和解決集成。軟件有一個孕育、誕生、成長、成熟、衰亡的生存過程。這個過程即為計算機(jī)軟件的生存期。軟件生存期的六個步驟,即制定計劃、需求分析、設(shè)計、程序編碼、測試及運行維護(hù)。軟件生存期模型(也稱軟件開發(fā)模型、軟件過程模型、軟件工程范型)是跨越整個生存期的系統(tǒng)開發(fā)、運作和維護(hù)所實施的全部過程、活動和任務(wù)的結(jié)構(gòu)框架。簡單地說,是軟件產(chǎn)品或軟件系統(tǒng)從設(shè)計、投入使用到被淘汰的全過程。所謂模型就是一種開發(fā)策略,這種策略針對軟件工程的各個階段提供了一套范型,使工程的進(jìn)展達(dá)到預(yù)期的目的。軟件生存周期模型編碼修復(fù)模型編碼修復(fù)模型是所有模型中最古老也是最簡單的模型。編碼測試交付編碼修復(fù)模型的特點它幾乎不執(zhí)行任何預(yù)先的計劃,該模型的使用者很快就進(jìn)入了所開發(fā)產(chǎn)品的編碼階段。典型的情況是,完成大量的編碼,然后測試產(chǎn)品并且糾正所發(fā)現(xiàn)的錯誤。編碼和測試工作一直持續(xù)到產(chǎn)品開發(fā)工作全部完成并將產(chǎn)品交付給客戶。缺點:缺乏預(yù)先的計劃和不正規(guī)的開發(fā);軟件產(chǎn)品的質(zhì)量低于用其他模型實現(xiàn)的產(chǎn)品質(zhì)量;產(chǎn)品的設(shè)計沒有認(rèn)真計劃及文檔化,代碼很難維護(hù)。優(yōu)點:簡單快捷,適合于很小且很簡單的項目。軟件過程技術(shù)過程技術(shù)工具可以幫助軟件組織分析它們當(dāng)前的過程,組織工作任務(wù),控制和監(jiān)管進(jìn)度,以及管理技術(shù)質(zhì)量。一旦創(chuàng)建了一個可接受的過程,就可以使用其他過程技術(shù)工具來分配、監(jiān)管、甚至控制過程模型中定義的所有軟件工程任務(wù)。產(chǎn)品和過程如果過程很弱,最終產(chǎn)品不可避免會出問題。但過分依賴過程也是很危險的。企業(yè)的目的

根本目的:合法地賺取盡可能多的利潤,使企業(yè)利益最大化。為了使企業(yè)利益最大化,軟件產(chǎn)品(項目)應(yīng)當(dāng)“做得好、做得快并且少花錢”

企業(yè)的迫切愿望尋求“提高產(chǎn)品質(zhì)量、提高生產(chǎn)率并且降低成本”的解決方案,包括方法論和工具。CMM能力成熟度模型

(CapabilityMaturityModel)

人員方法與規(guī)程技術(shù)與工具過程產(chǎn)品軟件過程改進(jìn)概述過程的基本概念

過程就是人們使用相應(yīng)的方法、規(guī)程、技術(shù)、工具等將原始材料(輸入)轉(zhuǎn)化成用戶需要的產(chǎn)品。過程的3個基本要素是:人、方法與規(guī)程、技術(shù)與工具。過程被文檔化后才能成為規(guī)范。過程與產(chǎn)品存在因果關(guān)系。即好的過程才能得到好的產(chǎn)品,而差的過程只會得到差的產(chǎn)品。

企業(yè)領(lǐng)導(dǎo)關(guān)心過程嗎?為什么要監(jiān)控過程?何為過程可視性?什么是軟件過程改進(jìn)從20世紀(jì)90年代至今,軟件過程改進(jìn)成為軟件工程學(xué)科的一個主流研究方向,其中CMM和CMMI是該領(lǐng)域舉世矚目的重大成果。提高軟件過程能力的實踐通稱為軟件過程改進(jìn)(SoftwareProcessImprovement)。軟件過程改進(jìn)的根本目的是:提高質(zhì)量、提高生產(chǎn)率并且降低開發(fā)成本。

主要的軟件過程域工程類的主要過程域:需求開發(fā)、系統(tǒng)設(shè)計、軟件實現(xiàn)、軟件測試、軟件維護(hù)等等;管理類的主要過程域:項目規(guī)劃、項目監(jiān)控、需求管理、質(zhì)量管理、配置管理等等。上述過程域中的任何活動都會影響產(chǎn)品的質(zhì)量、生產(chǎn)率和成本。CMM發(fā)展簡史CMM是什么CMM(CapabilityMaturityModel)是用于衡量軟件過程能力的事實上的標(biāo)準(zhǔn),同時也是目前軟件過程改進(jìn)最好的參考標(biāo)準(zhǔn)。美國卡內(nèi)基-梅隆大學(xué)軟件工程研究所(SEI)研制.發(fā)展簡史CMM1.0于1991年制定。

CMM1.1于1993發(fā)布,該版本應(yīng)用最廣泛。

CMM2.0草案于1997年制定(未廣泛應(yīng)用)。

到2000年,CMM演化成為CMMI(CapabilityMaturityModelIntegration),CMM2.0成為CMMI1.0的主要組成部分。

CMMI-SE/SW1.1(CMMIforSystemEngineeringandSoftwareEngineering)于2002年1月正式推出。

軟件工程研究所(SEI)提出了—個綜合模型,定義了當(dāng)一個組織達(dá)到不同的過程成熟度時應(yīng)該具有的軟件工程能力。為了確定一個組織目前的過程成熟度,SEI使用了一個五級的評估方案,即能力成熟度模型CMM.該模型定義了在不同的過程成熟度級別上所需要的關(guān)鍵活動.CMM重要概念5個成熟度等級:Initial,Repeatable,Defined,Managed,Optimizing18個關(guān)鍵過程域。關(guān)鍵過程域指出為了達(dá)到某個成熟度等級必須要解決的一族問題。第一級:初始級—軟件過程的特征是無序的,有時甚至是混亂的。幾乎沒有過程定義,成功完全取決于個人的能力。第二級:可重復(fù)級建立了基本的項目管理過程,能夠追蹤費用、進(jìn)度和功能。有適當(dāng)?shù)谋匾倪^程規(guī)范,使得可以重現(xiàn)以前類似項目的成功.第三級:定義級用于管理和工程活動的軟件過程已經(jīng)文檔化、標(biāo)準(zhǔn)化,并與整個組織的軟件過程相集成。所有項目都使用文檔化的、組織認(rèn)可的過程來開發(fā)和維護(hù)軟件。本級包含了第二級的所有特征。第四級:管理級軟件過程和產(chǎn)品質(zhì)量的詳細(xì)度量數(shù)據(jù)被收集,通過這些度量數(shù)據(jù),軟件過程和產(chǎn)品能夠被定量地理解和控制。本級包含了第三級的所有特征。第五級:優(yōu)化級通過定量的反饋,進(jìn)行不斷的過程改進(jìn),這些反饋來自于過程或通過測試新的想法和技術(shù)而得到。本級包含了第四級的所有特征。CMM的結(jié)構(gòu)是層次化的結(jié)構(gòu),包括級、關(guān)鍵過程域(18個)、公共特征(5類)和關(guān)鍵實施(316個),劃分了5個級別。關(guān)鍵過程域是指一系列相互關(guān)聯(lián)操作活動,這些活動反映了一個軟件組織改進(jìn)軟件過程時必須集中力量改進(jìn)的方面。公共特征有效指出了一個KPA的實現(xiàn)范圍、結(jié)構(gòu)要求和實施內(nèi)容,包括:執(zhí)行約定、執(zhí)行能力、實施活動、度量和分析、驗證實施。關(guān)鍵實踐是一些主要的實踐活動,它是組成KPA的單元。比如:遵循已文檔化的規(guī)程制訂項目的軟件開發(fā)計劃是軟件項目計劃的一個關(guān)鍵實踐。CMM的結(jié)構(gòu)過程成熟度第二級軟件配置管理軟件質(zhì)量保證軟件子合同管理軟件項目追蹤和查錯軟件項目計劃需求管理過程成熟度第三級同級復(fù)審組內(nèi)協(xié)調(diào)軟件產(chǎn)品工程集成的軟件管理培訓(xùn)計劃組織的過程定義組織的過程焦點過程成熟度第四級軟件質(zhì)量管理定量的過程管理過程成熟度第五級過程變化管理技術(shù)變化管理缺陷預(yù)防CMM等級評估過程復(fù)雜每一個CMM等級評估周期(從準(zhǔn)備到完成)約需12-30個月。每一級別的評估由SEI授權(quán)的主任評估師領(lǐng)導(dǎo)一個評審小組進(jìn)行,其成員大部分來自企業(yè)內(nèi)部。評估過程包括員工培訓(xùn)(企業(yè)的高層領(lǐng)導(dǎo)也要參加)、問卷填寫和統(tǒng)計、文檔審查、數(shù)據(jù)分析、與企業(yè)的高層領(lǐng)導(dǎo)討論和撰寫評估報告等。評估結(jié)束由主任評估師簽字生效(沒有蓋上公章的證書)取得主任評估師的資格比較困難

10年以上的軟件開發(fā)經(jīng)驗

在SEI接受培訓(xùn),培訓(xùn)費用每人約需數(shù)萬美元,非美國人加倍。

經(jīng)過兩次以上CMM評估的全過程實習(xí)

主任評估師的資格并非終身制

評估費用昂貴:大約是ISO認(rèn)證的十倍價格視客戶需求的多少而定,可以與咨詢公司協(xié)商。2002年參考價:CMM2級50萬元RMB,CMM3級80萬元RMB。CMM在中國國內(nèi)IT企業(yè)采用CMM的目的

提高企業(yè)的軟件過程能力,但并不關(guān)心CMM評估。

既要提高企業(yè)的軟件過程能力,又想通過CMM評估來提升企業(yè)的威望與知名度。只是為了拿到CMM證書

共性問題:費用高、難度大、見效慢企業(yè)做一次比較完整的CMM2-3級咨詢和評估大約要花費60~100萬元。企業(yè)內(nèi)部組建SEPG的成本并不比咨詢費低。軟件工程與項目管理工具比較昂貴(如Rational的產(chǎn)品)。目前國內(nèi)通過CMM2-3級評估的企業(yè)屈指可數(shù),而這些企業(yè)的實際能力也沒有宣傳的那么好。因為參加CMM評估的項目都是精心準(zhǔn)備的,個別項目或者事業(yè)部通過了CMM評估并不意味著整個企業(yè)達(dá)到了那個水平,這里面的水分相當(dāng)大。國內(nèi)通過CMM等級評估的企業(yè)(2002年統(tǒng)計數(shù)據(jù))

公司名稱 CMM級別 通過時間摩托羅拉 L5 2000-09華為印度所 L4 2001-12東大阿爾派 L3 2001-06托普軟件 L3 2001-11聯(lián)想軟件事業(yè)部L3 2002-01鼎新公司 L2 1999-07博通公司 L2 2001-04用友軟件 L2 2001-06浪潮通軟 L2 2001-11東方通科技 L2 2001-12新太科技 L2 2001-12神州數(shù)碼 L2 2002-01

MSF

(Microsoftsolutionframework)MSF是一套大型系統(tǒng)開發(fā)指南,它描述了如何用組隊模型、過程模型和應(yīng)用模型來開發(fā)Client/Server結(jié)構(gòu)的應(yīng)用程序,是在微軟的工具和技術(shù)的基礎(chǔ)上建立并開發(fā)分布式企業(yè)系統(tǒng)應(yīng)用的參考。將大項目分成若干里程碑式(Milestone)的重要階段,各階段之間有緩沖時間,但不進(jìn)行單獨的產(chǎn)品維護(hù)。運用想象描述和對特性的概要說明(Program

Specification)指導(dǎo)項目。根據(jù)用戶行為(User

Behavior)和有關(guān)用戶的資料確定產(chǎn)品特性及其優(yōu)先順序。建立模塊化的和水平式的設(shè)計結(jié)構(gòu),并使項目結(jié)構(gòu)反映產(chǎn)品結(jié)構(gòu)的特點??總€人負(fù)責(zé)和固定項目資源實施控制。微軟的產(chǎn)品定義與開發(fā)過程中遵循五個原則MSF的最大特性是商業(yè)化,并自始至終地體現(xiàn)在項目的實施過程中。所謂商業(yè)化意味著客戶的商業(yè)利益。客戶投入多少,得到多少回報,客戶要用到哪些最新的技術(shù),最后如何把項目計劃(Project)變成產(chǎn)品(Product)直至產(chǎn)生效益,等等,這些都是MSF要考慮的問題。

項目組內(nèi)部的工作關(guān)系IE產(chǎn)品部門內(nèi)的行政管理關(guān)系舉例MSF過程模型MSF過程模型是從瀑布模型和螺旋模型發(fā)展而來的,它把瀑布模型中基于里程碑的規(guī)劃的優(yōu)勢與螺旋模型中增量迭代的長處結(jié)合了起來。MSF過程模型的基本元素是階段和里程碑。所謂“階段”,就是在這一段時間里團(tuán)隊集中精力做某一類事情,每個階段的結(jié)束都代表了項目的進(jìn)展和團(tuán)隊工作重心的變化。比如在“開發(fā)階段”結(jié)束后,團(tuán)隊就不再允許設(shè)計/實現(xiàn)新的功能,除非有充分理由的“變更請求”。MSF過程模型圖示

MSF里程碑驅(qū)動的螺旋模型瀑布模型螺旋模型產(chǎn)品開發(fā)過程的劃分和里程碑設(shè)置MSF特點各個階段是風(fēng)險驅(qū)動的、漸進(jìn)的“螺旋”式的生命周期模型。計劃階段的產(chǎn)品是想象性描述與說明文件,用來解釋項目將做什么和怎么做。在開發(fā)和穩(wěn)定化階段的所有時間中,一個項目通常會將2/3的時間用于開發(fā),1/3的時間用于穩(wěn)定化。穩(wěn)定化階段著重于對產(chǎn)品的測試與調(diào)試。項目在此階段盡量不再增加新的功能,除非是競爭產(chǎn)品或者市場發(fā)生了變化。在整個產(chǎn)品生產(chǎn)周期中,微軟都使用了緩沖時間的概念。MSF的版本化發(fā)布項目團(tuán)隊中的角色劃分MSF將一個項目中不同階段的工作人員分為六個角色,通過這六個角色,項目可以得以迅速、完善地實施。這也體現(xiàn)了項目開發(fā)的六個重要質(zhì)量指標(biāo),它們在全球是一致的。這六個角色分別是:

產(chǎn)品經(jīng)理。他了解用戶特征,尤其是商業(yè)特征,明確用戶的需求以及需求的期望值。之所以強(qiáng)調(diào)用戶需求的期望值,是因為用戶的商業(yè)化特征比較強(qiáng),需求無盡,無法界定到底如何才算需求得到了滿足。而確定了需求期望值后,用戶的商業(yè)目的就非常明確,實施起來也比較順暢。程序管理員他負(fù)責(zé)制定計劃,每天找出完成該計劃的風(fēng)險所在,排除風(fēng)險,每天交付應(yīng)該完成的內(nèi)容,確保計劃按質(zhì)、按量實施。用戶教育設(shè)計友好的用戶界面,對用戶進(jìn)行培訓(xùn),確保用戶能夠并且愿意和喜歡使用開發(fā)出的產(chǎn)品。開發(fā)開發(fā)者在開發(fā)前期就參與用戶需求分析和項目計劃制定,他最清楚具體的開發(fā)過程。

在開發(fā)期開始后,他負(fù)責(zé)進(jìn)行代碼開發(fā),在每一個階段,交付每一項內(nèi)容的代碼。

測試負(fù)責(zé)開發(fā)出的代碼的測試。測試者并不是要找到每一個開發(fā)者的每一段代碼的每一個錯誤(bug),而是要找到代碼錯誤之間的關(guān)系,解決最根本的錯誤,掌握錯誤的狀態(tài),從而迅速排除錯誤。后勤后勤人員負(fù)責(zé)將實驗室的產(chǎn)品商品化,變成實際可以運行的產(chǎn)品,達(dá)到最初制定的商業(yè)目的,取得商業(yè)效益。這項工作在以往的項目中可能比較簡單,因為實驗室的環(huán)境可能和實際環(huán)境幾乎一致或差別不大。而現(xiàn)在卻不同了,實驗室環(huán)境可能十分簡單,而實際環(huán)境可能非常復(fù)雜,比如分布式環(huán)境、Internet/Intranet環(huán)境等,尤其是大企業(yè),實際環(huán)境比實驗室環(huán)境復(fù)雜得多,因而將實驗室產(chǎn)品運用到實際環(huán)境中是一項非常重要的工作。這項工作沒有完成好,往往使整個項目前功盡棄,功虧一簣。產(chǎn)品規(guī)劃流程規(guī)劃階段的均衡三角形跨階段的過程關(guān)系代碼生成的工作流程RationalUnifiedProcess(簡稱RUP)是一套軟件工程過程,主要由TheObjectoryApproch和TheRationalApproch發(fā)展而來。同時,它又是文檔化的軟件工程產(chǎn)品,所有RUP的實施細(xì)節(jié)及方法導(dǎo)引均以Web文檔的方式集成在一張光盤上,由Rational公司開發(fā)、維護(hù)并銷售,當(dāng)前版本是RUP2000。

RUP又是一套軟件工程方法的框架,各個組織可根據(jù)自身的實際情況,以及項目規(guī)模對RUP進(jìn)行裁剪和修改,以制定出合乎需要的軟件工程過程。RUP簡介

RUP吸收了多種開發(fā)模型的優(yōu)點,具有很好的可操作性和實用性、從它一推出市場,憑借Rational在業(yè)界的領(lǐng)導(dǎo)地位、以及與統(tǒng)一建模語言(UnifiedModelLanguage,以下簡稱UML)的良好集成、多種CASE工具的支持、不斷的升級與維護(hù),迅速得到業(yè)界廣泛的認(rèn)同,越來越多的組織(如IBM、Microsoft、Sun)以它作為軟件開發(fā)模型框架。RUP簡述

RUP二維開發(fā)模型RUP可以用二維坐標(biāo)來描述。橫軸通過時間組織,是過程展開的生命周期特征,體現(xiàn)開發(fā)過程的動態(tài)結(jié)構(gòu),用來描述它的術(shù)語主要包括周期、階段、迭代和里程碑;縱軸以內(nèi)容來組織為自然的邏輯活動,體現(xiàn)開發(fā)過程的靜態(tài)結(jié)構(gòu),用來描述它的術(shù)語主要包括活動、產(chǎn)物)、工作者和工作流。

RUP開發(fā)過程中的各個階段和里程碑RUP中的軟件生命周期在時間上被分解為四個順序的階段,分別是:初始階段、細(xì)化階段、構(gòu)造階段和交付階段。每個階段結(jié)束于一個主要的里程碑;每個階段本質(zhì)上是兩個里程碑之間的時間跨度。在每個階段的結(jié)尾執(zhí)行一次評估以確定這個階段的目標(biāo)是否已經(jīng)滿足。如果評估結(jié)果令人滿意的話,可以允許項目進(jìn)入下一個階段。RUP的迭代開發(fā)模式圖RUP中的每個階段可以進(jìn)一步分解為迭代。一個迭代是一個完整的開發(fā)循環(huán),產(chǎn)生一個可執(zhí)行的產(chǎn)品版本,是最終產(chǎn)品的一個子集,它增量式地發(fā)展,從一個迭代過程到另一個迭代過程到成為最終的系統(tǒng)。RUP的特點開發(fā)復(fù)用。減少開發(fā)人員的工作量,并保證軟件質(zhì)量;項目初期可降低風(fēng)險;對需求進(jìn)行有效管理;可視化建模;使用組件體系結(jié)構(gòu),使軟件體系架構(gòu)更具彈性;貫穿整個開發(fā)周期的質(zhì)量核查;對軟件開發(fā)的變更控制。敏捷軟件開發(fā)宣言

我們正在通過親身實踐以及幫助他人實踐,揭示更好的軟件開發(fā)方法。通過這項工作,我們認(rèn)為:個體和交互勝過過程和工具可以工作的軟件勝過面面俱到的文檔客戶合作勝過合同談判響應(yīng)變化勝過遵循計劃雖然右項也具有價值,但我們認(rèn)為左項具有更大的價值。敏捷宣言遵循的原則我們最優(yōu)先要做的是通過盡早的、持續(xù)的交付有價值的軟件來使客戶滿意。即使到了開發(fā)的后期,也歡迎改變需求。敏捷過程利用變化來為客戶創(chuàng)造競爭優(yōu)勢。經(jīng)常性地交付可以工作的軟件,交付的間隔可以從幾個星期到幾個月,交付的時間間隔越短越好。在整個項目開發(fā)期間,業(yè)務(wù)人員和開發(fā)人員必須天天都在一起工作。圍繞被激勵起來的個體來構(gòu)建項目。給他們提供所需的環(huán)境和支持,并且信任他們能夠完成工作。在團(tuán)隊內(nèi)部,最具有效果并且富有效率的傳遞信息的方法,就是面對面的交談。工作的軟件是首要的進(jìn)度度量標(biāo)準(zhǔn)。敏捷過程提倡可持續(xù)的開發(fā)速度。責(zé)任人、開發(fā)者和用戶應(yīng)該能夠保持一個長期的、恒定的開發(fā)速度。不斷地關(guān)注優(yōu)秀的技能和好的設(shè)計會增強(qiáng)敏捷能力。簡單---使未完成的工作最大化的藝術(shù)--是根本的。最好的構(gòu)架、需求和設(shè)計出自于自組織的團(tuán)隊。每隔一定時間,團(tuán)隊會在如何才能更有效地工作方面進(jìn)行反省,然后相應(yīng)地對自己的行為進(jìn)行調(diào)整。極限編程實踐

XP完整團(tuán)隊

XP項目的所有參與者(開發(fā)人員、業(yè)務(wù)分析師、測試人員等等)一起工作在一個開放的場所中,他們是同一個團(tuán)隊的成員。這個場所的墻壁上隨意懸掛著大幅的、顯著的圖表以及其他一些顯示他們進(jìn)度的東西。計劃游戲計劃是持續(xù)的、循序漸進(jìn)的。每2周,開發(fā)人員就為下2周估算候選特性的成本,而客戶則根據(jù)成本和商務(wù)價值來選擇要實現(xiàn)的特性。客戶測試作為選擇每個所期望的特性的一部分,客戶定義出自動驗收測試來表明該特性可以工作。簡單設(shè)計團(tuán)隊保持設(shè)計恰好和當(dāng)前的系統(tǒng)功能相匹配。它通過了所有的測試,不包含任何重復(fù),表達(dá)出了編寫者想表達(dá)的所有東西,并且包含盡可能少的代碼。結(jié)對編程所有的產(chǎn)品軟件都是由兩個程序員、并排坐在一起在同一臺機(jī)器上構(gòu)建的。測試驅(qū)動開發(fā)程序員以非常短的循環(huán)周期工作,他們先增加一個失敗的測試,然后使之通過。改進(jìn)設(shè)計隨時改進(jìn)糟糕的代碼。保持代碼盡可能的干凈、具有表達(dá)力。持續(xù)集成團(tuán)隊總是使系統(tǒng)完整地被集成。集體代碼所有權(quán)任何結(jié)對的程序員都可以在任何時候改進(jìn)任何代碼。編碼標(biāo)準(zhǔn)系統(tǒng)中所有的代碼看起來就好像是被單獨一個——非常值得勝任的——人編寫的。隱喻團(tuán)隊提出一個程序工作原理的公共景像??沙掷m(xù)的速度團(tuán)隊只有持久才有獲勝的希望。他們以能夠長期維持的速度努力工作。他們保存精力,他們把項目看作是馬拉松長跑,而不是全速短跑。極限編程的核心思想從長遠(yuǎn)看,早期發(fā)現(xiàn)錯誤以及降低復(fù)雜度可以節(jié)約成本。極限編程強(qiáng)調(diào)我們將任務(wù)/系統(tǒng)細(xì)分為可以在較短周期解決的一個個子任務(wù)/模塊,并且強(qiáng)調(diào)測試、代碼質(zhì)量和及早發(fā)現(xiàn)問題。通常,通過一個個短小的迭代周期,我們就可以獲得一個個

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論