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

下載本文檔

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

文檔簡(jiǎn)介

1

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

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

降低軟件開(kāi)發(fā)的成本!3過(guò)程管理與目標(biāo)管理理念:通過(guò)保證過(guò)程保證結(jié)果以小孩教育為例4軟件工程原則B.W.Boehm(1983):用分階段的生存周期計(jì)劃嚴(yán)格管理軟件開(kāi)發(fā)進(jìn)行階段評(píng)審實(shí)行產(chǎn)品版本控制采用現(xiàn)代程序設(shè)計(jì)技術(shù)結(jié)果應(yīng)能清楚的審查開(kāi)發(fā)小組成員應(yīng)少而精承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性5二八定律對(duì)軟件項(xiàng)目進(jìn)度和工作量的估計(jì):認(rèn)為完成80%的工作量,實(shí)際上只完成了20%。對(duì)程序中存在問(wèn)題的估計(jì):80%的問(wèn)題存在于20%的程序中。對(duì)模塊功能的估計(jì):20%的模塊實(shí)現(xiàn)了80%的功能。對(duì)人力資源的估計(jì):20%的人解決了軟件中80%的問(wèn)題。對(duì)投入資金的估計(jì):企業(yè)信息系統(tǒng)中,80%的問(wèn)題可以用20%的資金耒解決。6軟件工程視角與剖面企業(yè)角度計(jì)算角度信息角度工程角度政策、操作......7軟件開(kāi)發(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智能模型軟件過(guò)程基礎(chǔ)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(CapabilityMaturityModel)

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

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

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

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

10年以上的軟件開(kāi)發(fā)經(jīng)驗(yàn)

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

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

主任評(píng)估師的資格并非終身制

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

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

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

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

公司名稱 CMM級(jí)別 通過(guò)時(shí)間摩托羅拉 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)開(kāi)發(fā)指南,它描述了如何用組隊(duì)模型、過(guò)程模型和應(yīng)用模型來(lái)開(kāi)發(fā)Client/Server結(jié)構(gòu)的應(yīng)用程序,是在微軟的工具和技術(shù)的基礎(chǔ)上建立并開(kāi)發(fā)分布式企業(yè)系統(tǒng)應(yīng)用的參考。將大項(xiàng)目分成若干里程碑式(Milestone)的重要階段,各階段之間有緩沖時(shí)間,但不進(jìn)行單獨(dú)的產(chǎn)品維護(hù)。運(yùn)用想象描述和對(duì)特性的概要說(shuō)明(Program

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

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

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

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

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

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

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

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

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

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

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

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

XP完整團(tuán)隊(duì)

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論