軟件工程課件第2章_第1頁
軟件工程課件第2章_第2頁
軟件工程課件第2章_第3頁
軟件工程課件第2章_第4頁
軟件工程課件第2章_第5頁
已閱讀5頁,還剩77頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

SOFTWAREENGINEERINGModelingtheProcessandLifecycle

過程和生命周期的建模軟件工程理論與實踐本章的主要內(nèi)容Whatwemeanbyaprocess

過程的含義Softwaredevelopmentproducts

軟件開發(fā)的產(chǎn)品processes,andresources

過程和資源Severalmodelsofthesoftwaredevelopmentprocess軟件開發(fā)過程的若干模型Toolsandtechniquesforprocessmodeling過程建模的工具和技術(shù)軟件工程理論與實踐軟件過程之父的經(jīng)典諺語Ifyoudon’tknowwhereyouare,amapwon’thelp

WattsS.humphrey一個有效的改變程序需要對當(dāng)前狀態(tài)的理解軟件工程理論與實踐2.1themeaningofprocess

過程的含義Aprocessdefineswhoisdoingwhat,whenandhow,inordertoreachacertaingoal.過程定義了誰在作什么,什么時間怎樣作。以便完成一個確定的目標(biāo)SoftwareEngineerProcessNeworchangedrequirementNeworchangedsystem軟件工程理論與實踐WhatisProcessASeriesofstepsinvolvingactivities,constraints,andresourcesthatproduceanintendedoutputofsomekind.一系列涉及到活動、約束和資源的步驟,他們產(chǎn)生某種類型的有目的的輸出Aprocessusuallyinvolvesasetoftoolsandtechniques一個過程通常涉及一系列的工具和技術(shù)軟件工程理論與實踐ProcessCharacteristics

過程的特征1.Theprocessprescribesallofthemajorprocessactivities過程規(guī)定了所有主要過程活動2.Processusesresources,subjecttoasetofconstraints(suchasschedule),andproducesintermediateandfinalproducts過程使用資源、服從于一組約束(比如進(jìn)度約束),產(chǎn)生中間結(jié)果和最終產(chǎn)品。3.Theprocessmaybecomposedofsubprocessesthatarelinkedinsomeway.Theprocessmaybedefinedasahierarchyofprocesses,organizedsothateachsubprocesshasitsownprocessmodel可由子過程組成,這些子過程用某種方式鏈接起來。過程可以定義為分層的過程等級結(jié)構(gòu),以便每個子過程具有自己的過程模型。軟件工程理論與實踐ProcessCharacteristics

過程的特征4.Eachprocessactivityhasentryandexitcriteria,sothatweknowwhentheactivitybeginsandends.每個過程活動具有有入口和出口標(biāo)準(zhǔn),這樣可以知道活動何時開始及何時結(jié)束。5.Theactivitiesareorganizedinasequence,sothatitisclearwhenoneactivityisperformedrelativetotheotheractivities.活動以一定順序組織,因此,一個活動相對于其他活動何時完成是很清楚的。6.Everyprocesshasasetofguidingprinciplesthatexplainthegoalsofeachactivity每個過程具有一系列的指導(dǎo)原則,以解釋每個活動的目標(biāo)7.Constraintsorcontrolsmayapplytoanactivity,resourceorproduct約束與控制可以應(yīng)用到任何活動、資源或產(chǎn)品中。軟件工程理論與實踐

Whentheprocessinvolvesthebuildingofsomeproduct,wesometimesrefertotheprocessasalifecycle.當(dāng)過程涉及到某些產(chǎn)品的開發(fā)時,有時把這種過程稱為生命周期

Thesoftwaredevelopmentprocessissometimescalledthesoftwarelifecycle.軟件開發(fā)過程有時被稱為軟件生命周期

LifeCycle生命周期軟件工程理論與實踐

Theyimposeconsistencyandstructureonasetofactivities.它使一組活動有了一致性和結(jié)構(gòu)Theprocessstructureguidesouractionsbyallowingustoexamine,understand,control,andimprovetheactivitiesthatcomprisetheprocess.過程結(jié)構(gòu)用檢查、理解、控制和改善組成過程的活動來指導(dǎo)我們的行為Enablingustocaptureourexperiencesandpassthemalongtoothers.過程的重要性還在于它能使我們獲得經(jīng)驗并把它傳授給別人Processesareimportant

過程的重要性軟件工程理論與實踐軟件過程是將用戶的需求轉(zhuǎn)化成有效的軟件解決方案的一系列活動。過程具有一系列的性質(zhì):時間性、并發(fā)性、嵌套性和度量性等。許多軟件組織無法正確定義和控制這一過程,但這恰恰是組織改進(jìn)的關(guān)鍵。軟件過程軟件工程理論與實踐軟件過程軟件生命周期過程包括: 早期:立項需求分析設(shè)計編碼測試交付維護(hù)退役現(xiàn)在又加入:質(zhì)量保證管理各種活動環(huán)境基礎(chǔ)設(shè)施配置文檔管理軟件工程理論與實踐軟件生存期的階段劃分(根據(jù)國標(biāo)《計算機(jī)軟件開發(fā)規(guī)范》)(1)可行性研究與計劃(2)需求分析(3)總體設(shè)計(4)詳細(xì)設(shè)計(5)實現(xiàn)(6)集成測試(7)確認(rèn)測試(8)使用和維護(hù)上游下游軟件工程理論與實踐軟件生命周期(SoftwareLifeCycle)如同任何事物一樣,軟件也有一個孕育、誕生、成長、成熟、衰亡、演化的生存過程;為了用工程化方式有效地管理軟件的全過程,軟件的生存過程也可以劃分為好幾個階段,由此逐步形成“軟件生命周期”的概念;它是一個從用戶需求開始,經(jīng)過開發(fā)、交付使用,在使用中不斷增補(bǔ)修訂,直至讓位于新軟件的全過程;概括地說,軟件生命周期由軟件定義、軟件開發(fā)和運行維護(hù)3個時期組成,每個時期又進(jìn)一步劃分成若干個階段。軟件工程理論與實踐軟件定義時期問題定義階段:界定問題的范圍,確切地定義問題;可行性研究階段:研究問題的范圍,探索這個問題是否值得去解,是否有可行的解決辦法;需求分析階段:確定目標(biāo)系統(tǒng)必須具備哪些功能;另外,要估計完成該項工程所需要的資源和成本,制定工程進(jìn)度表。軟件工程理論與實踐軟件開發(fā)時期具體設(shè)計和實現(xiàn)在前一個時期定義的軟件。總體設(shè)計階段:設(shè)計出實現(xiàn)目標(biāo)系統(tǒng)的幾種可能的方案,權(quán)衡利弊推薦一最佳方案,并制定實現(xiàn)最佳方案的詳細(xì)計劃,以及設(shè)計軟件的體系結(jié)構(gòu);詳細(xì)設(shè)計階段:設(shè)計出程序的詳細(xì)規(guī)格說明;編碼和單元測試階段:寫出正確的、容易理解、容易維護(hù)的程序模塊;綜合測試階段:通過各種類型的測試使軟件達(dá)到預(yù)定的要求。集成測試/驗收測試/現(xiàn)場測試/平行運行軟件工程理論與實踐運行維護(hù)(軟件維護(hù))時期維護(hù)階段的關(guān)鍵任務(wù)是:通過各種必要的維護(hù)活動使軟件系統(tǒng)持久地滿足用戶的需要。通常的4種維護(hù)活動:改正性維護(hù):診斷和改正使用過程中發(fā)現(xiàn)的軟件錯誤;適應(yīng)性維護(hù):修改軟件以適應(yīng)環(huán)境的變化;完善性維護(hù):根據(jù)用戶需要改進(jìn)或擴(kuò)充軟件使之更完善;預(yù)防性維護(hù):修改軟件從而為將來的維護(hù)活動做好準(zhǔn)備。軟件工程理論與實踐新的國際標(biāo)準(zhǔn)定義的軟件生存過程

(1995ISO/IEC12207)軟件生存期過程支持過程組織過程主要過程獲取過程供應(yīng)過程開發(fā)過程運行過程維護(hù)過程文檔編制過程配置管理過程質(zhì)量保證過程驗證過程確認(rèn)過程聯(lián)合評審過程審核過程問題解決過程管理過程基礎(chǔ)設(shè)施過程改進(jìn)過程培訓(xùn)過程軟件工程理論與實踐2.2softwareprocessmodeling

軟件過程模型軟件工程理論與實踐Whysoftwareprocessmodeling為什么建立軟件過程模型?Somemodelareprescriptionsforthewaysoftwaredevelopmentshouldprogress,andothersaredescriptionsofthewaysoftwaredevelopmentisdoneinactuality.有些模型是軟件開發(fā)應(yīng)遵循的步驟,有些描述了完成軟件開發(fā)的實際步驟。軟件工程理論與實踐Whysoftwareprocessmodeling

為什么建立軟件過程模型?Writesdownadescriptionofdevelopmentprocess,formsacommonunderstandingoftheactivities,resources,andconstraintsinvolvedinsoftwaredevelopment.形成對軟件開發(fā)中涉及到的活動、資源和約束的共同理解。

Helpsthedevelopmentteamfindinconsistencies,redundancies,andomissionsintheprocessandinitsconstituentparts.有助于開發(fā)小組發(fā)現(xiàn)過程及其組織成分中的不一致、冗余和遺漏。

軟件工程理論與實踐Whysoftwareprocessmodeling

為什么建立軟件過程模型?Themodelreflectsthegoalsofdevelopment,suchasbuildinghigh-qualitysoftwarefindingfaultsearlyindevelopment,andmeetingrequiredbudgetandscheduleconstraints.反映開發(fā)的目標(biāo)(如構(gòu)建高質(zhì)量軟件、早期發(fā)現(xiàn)錯誤、滿足預(yù)算和開發(fā)進(jìn)度)。Everyprocessshouldbetailoredforthespecialsituationinwhichitwillbeused.根據(jù)每個過程將被使用的特殊情況對其進(jìn)行裁剪。

軟件工程理論與實踐Typicalprocessmodels

典型的過程模型Waterfallmodel瀑布模型Prototyping原型化模型V-modelV-模型Operationalspecification操作說明模型Transformationalmodel變換模型Phaseddevelopment:incrementsanditeration增量和迭代模型Spiralmodel螺旋模型軟件工程理論與實踐Waterfallmodel瀑布模型SystemDesignProgramDesignCodingUnit&Inte-grationTestingSystemTestingAcceptanceTestingOperation&MaintenanceRequirementsAnalysis軟件工程理論與實踐CharactersofWaterfallmodel

瀑布模型的特性O(shè)nedevelopmentstageshouldbecompletedbeforethenextbegins.Stepsdon’tgoesbackward.一個階段必須在另一個開發(fā)階段開始之前完成,步驟不能返回。軟件工程理論與實踐瀑布模型特點階段間具有順序性和依賴性必須等前一階段的工作完成之后,才能開始后一階段的工作前一階段的輸出文檔就是后一階段的輸入文檔推遲實現(xiàn)的觀點清楚地區(qū)分邏輯設(shè)計與物理設(shè)計,盡可能推遲程序的物理實現(xiàn)軟件工程理論與實踐瀑布模型特點質(zhì)量保證的觀點每個階段都必須完成規(guī)定的文檔,沒有交出合格的文檔就是沒有完成該階段的任務(wù)。每個階段結(jié)束前都要對所完成的文檔進(jìn)行評審,以便盡早發(fā)現(xiàn)問題,改正錯誤。軟件工程理論與實踐MeritsofWaterfallmodel

瀑布模型的優(yōu)點Hasbeenusedtoprescribesoftwaredevelopmentactivitiesinavarietyofcontexts.已被用于在各種情況下規(guī)定軟件開發(fā)活動。

Isveryusefulinhelpingdeveloperslayoutwhattheyneedtodo.幫助開發(fā)人員明確需要做什么

軟件工程理論與實踐MeritsofWaterfallmodel

瀑布模型的優(yōu)點Easytoexplaintocustomerswhoarenotfamiliarwithsoftwaredevelopment

易于向不熟悉開發(fā)的顧客作出解釋

Itmakesexplicitwhichintermediateproductsarenecessaryinordertobeginthenextstage.清楚說明了下一階段的開發(fā)需要哪些中間產(chǎn)品

Morecomplexmodelsarereallyjustembellishmentsofthewaterfall.

更復(fù)雜的模型是它的修改,是其他模型的基礎(chǔ)

軟件工程理論與實踐MeritsofWaterfallmodel

瀑布模型的優(yōu)點其他:可強(qiáng)迫開發(fā)人員采用規(guī)范的方法(例如,結(jié)構(gòu)化技術(shù))嚴(yán)格地規(guī)定了每個階段必須提交的文檔要求每個階段交出的所有產(chǎn)品都必須經(jīng)過質(zhì)量保證小組的仔細(xì)驗證

瀑布模型的成功在很大程度上是由于它基本上是一種文檔驅(qū)動的模型軟件工程理論與實踐ShortageofWaterfallmodel瀑布模型的缺點Thebiggestproblemwithwaterfallmodelisthatitdoesnotnotreflectthewaycodeisreallydeveloped瀑布模型的最大問題就是它不能反映實際的代碼開發(fā)方式。軟件工程理論與實踐Softwaredevelopmentprocessinreality

實際的軟件開發(fā)過程RequirementsAnalysis需求分析SystemDesign系統(tǒng)設(shè)計ProgramDesign程序設(shè)計Programimplementation執(zhí)行UnitTesting單元測試IntegrationTesting集成測試SystemTesting系統(tǒng)測試Delivery交付Maintenance維護(hù)軟件工程理論與實踐ShortageofWaterfallmodel

瀑布模型的缺點Themodelimposesaprojectmanagementstructureonsystemdevelopment這個模型給系統(tǒng)開發(fā)強(qiáng)加了一種項目管理結(jié)構(gòu).Failtotreatsoftwareasaproblem-solvingprocess.presentamanufa-cturingview.沒能把軟件看成是一個問題解決的過程,僅表達(dá)了一種制造觀點。Themodeltellsusnothingaboutthetypicalback-and-forthactivitiesthatleadtocreatingafinalproduct.模型沒告訴我們開發(fā)最終產(chǎn)品所需的典型的不斷改進(jìn)的活動。軟件工程理論與實踐要求用戶不經(jīng)過實踐就提出完整準(zhǔn)確的需求,在許多情況下都是不切實際的僅僅通過寫在紙上的靜態(tài)的規(guī)格說明,很難全面正確地認(rèn)識動態(tài)的軟件產(chǎn)品將本來非線性的軟件開發(fā)過程人為地加以線性化,不符合實際中的軟件開發(fā)情況軟件開發(fā)耗時長,可運行版本要等到項目后期才能得到,一旦在后期發(fā)現(xiàn)錯誤,付出的代價將是巨大的。

“由文檔驅(qū)動”的這個事實也是瀑布模型的一個主要缺點,這可能導(dǎo)致最終開發(fā)出的軟件產(chǎn)品不能真正滿足用戶的需要瀑布模型缺點軟件工程理論與實踐EnhanceofWaterfallmodel

加強(qiáng)的瀑布模型Validate確認(rèn)Verify驗證RequirementsAnalysisSystemDesignProgramDesignCodingUnit&Inte-grationTestingSystemTestingAcceptanceTestingOperation&MaintenancePrototyping原型化軟件工程理論與實踐EnhanceofWaterfallmodel

加強(qiáng)的瀑布模型Prototypeisapartiallydevelopedproductthatenablescustomersanddeveloperstoexaminesomeaspectoftheproposedsystemanddecideifitissuitableorappropriateforthefinishedproduct.

原型就是部分開發(fā)的產(chǎn)品,這個產(chǎn)品能使顧客和開發(fā)人員檢驗所建議系統(tǒng)的某些方面,并且判斷它對最終產(chǎn)品是否合適。Validationensuresthatthesystemhasimplementedalloftherequirements,sothateachsystemfunctioncanbetracedbacktoaparticularrequirementinthespecification.(builttherightproduct)確認(rèn)保證系統(tǒng)實現(xiàn)了所有的需求,這樣每個系統(tǒng)功能可以回溯到系統(tǒng)說明的一個特定需求上。Verificationensuresthateachfunctionworkscorrectly.(builtitright)

驗證確保每個功能正確運作。軟件工程理論與實踐V-modelV-模型ValidateRequirements確認(rèn)需求VerifyDesign驗證設(shè)計RequirementsAnalysisOperation&MaintenanceAcceptanceTesting驗收測試SystemTestingSystemDesignUnit&Inte-grationTestingProgramDesignCoding軟件工程理論與實踐瀑布模型的變種,增加了測試活動與分析和設(shè)計的關(guān)系強(qiáng)調(diào)測試活動與分析和設(shè)計之間的關(guān)聯(lián):單元測試和集成測試->校驗程序設(shè)計;系統(tǒng)測試->校驗(verify)系統(tǒng)設(shè)計;

系統(tǒng)測試是軟件作為整個基于計算機(jī)系統(tǒng)的一個元素,與計算機(jī)硬件、外設(shè)、某些支持軟件,數(shù)據(jù)和人員等其他系統(tǒng)元素結(jié)合在一起,在實際運行環(huán)境下對計算機(jī)系統(tǒng)進(jìn)行一系列的測試。驗收測試->確認(rèn)(validate)需求;與瀑布模型關(guān)注文檔和工作產(chǎn)品不同,V模型的關(guān)注點是軟件開發(fā)各階段的活動以及正確性,因此V模型是以活動驅(qū)動的。V-modelV-模型軟件工程理論與實踐本質(zhì)是把瀑布模型中一些隱含的迭代過程明確出來,使開發(fā)活動和驗證活動的相關(guān)性更加明顯;V模型使抽象等級的概念也更明顯:所有從需求到實現(xiàn)部分的活動關(guān)注的是建立更多的系統(tǒng)詳細(xì)表述,而所有從實現(xiàn)到交付運行的活動關(guān)注的是對系統(tǒng)的驗證和確認(rèn)。和瀑布模型一樣,都是對軟件開發(fā)過程過份簡單、理想化的抽象,對需求變化的適應(yīng)性差。V模型的改良之處與存在的問題軟件工程理論與實踐Prototyping原型化模型PROTOTYPEREQUIREMENTSPROTOTYPEDESIGNPROTOTYPESYSTEMTESTLISTOFREVISIONSLISTOFREVISIONS修改列表LISTOFREVISIONSreviseprototype修改原型user/customerReview評審SYSTEMREQUIREMENTS(sometimesinformalorplete有時是非正式或不完全)DELIVEREDSYSTEM交付軟件工程理論與實踐Prototype原型APrototypeisapartiallydevelopedproductthatenablescustomersanddeveloperstoexaminesomeaspectoftheproposedsystemanddecideifitissuitableorappropriateforthefinishedproduct.一個原型就是部分開發(fā)的產(chǎn)品,這個產(chǎn)品能使顧客和開發(fā)人員檢驗所建議系統(tǒng)的某些方面,并且判斷它對最終產(chǎn)品是否適合。軟件工程理論與實踐由于要求能夠快速建立可供運行的模型,原型不可能象最終產(chǎn)品一樣面面俱到;客戶:不可把原型當(dāng)作軟件的正式運行版本;開發(fā)人員:同上。還必須牢記原型中沒有考慮質(zhì)量因素的部分;使用前要與用戶達(dá)成一致:原型只是模型而已。使用原型必須要注意的問題軟件工程理論與實踐Operationalspecification

操作說明模型ExecuteandRevise執(zhí)行和修改OperationalSpecification操作說明(problem-oriented)testSystemRequirements(sometimesinformalorplete)Deliveredsystem交付使用的系統(tǒng)TransformedSpecification(implementation-oriented)面向?qū)崿F(xiàn)軟件工程理論與實踐Transformationalmodel變換模型Comparewithrequirements;updateandneeded與需求進(jìn)行比較;必要時加以更新FormalSpecification形式化說明Transform變換……TestFormalDevelopmentRecord正式開發(fā)記錄Sequenceoftransformationsplusrationaleforthem一系列的變化及其基本原理DeliveredSystemSystemRequirements(sometimesinformalorplete)Transform2Transform1軟件工程理論與實踐Usingautomatedsupport,thetransformationalprocessappliesaseriesoftransformationstochangeaspecificationintoadeliverablesystem.利用自動化工具的支持,變換過程使用一系列變換把需求變成一個可交付使用的系統(tǒng)(Balzer1981)compiling編譯

Sampletransformationcanincludechangingthedatarepresentations改變數(shù)據(jù)表示

selectingalgorithms選擇算法

optimizing優(yōu)化

軟件工程理論與實踐Phaseddevelopment:incrementsanditeration階段化開發(fā):增量和迭代模型BuildRelease1構(gòu)建版本1BuildRelease2構(gòu)建版本2BuildRelease3構(gòu)建版本3UseRelease1使用版本1UseRelease2使用版本2UseRelease3使用版本3TimeUsers用戶Developers開發(fā)人員DevelopmentSystems開發(fā)系統(tǒng)ProductionSystems產(chǎn)品系統(tǒng)軟件工程理論與實踐IncrementalDevelopment增量開發(fā)IterativeDevelopment迭代開發(fā)軟件工程理論與實踐thesystemasspecifiedintherequirementsdocumentsispartitionedintosubsystemsbyfunctionality.Thereleasesaredefinedbybeginningwithonesmall,functionalsubsystemandthenaddingfunctionalitywitheachnewrelease.需求文檔中指明的系統(tǒng)按功能劃分為子系統(tǒng)。定義發(fā)布時首先是定義一個小的、具有一定功能的子系統(tǒng),然后在每一個新的發(fā)布中增加新的功能

IncrementalDevelopment:增量開發(fā)

deliversafullsystemattheverybeginningandthechangesthefunctionalityofeachsubsystemwithnewrelease.是在一開始就移交一個完整的系統(tǒng),然后在每一個新的發(fā)布版本中改變每一個子系統(tǒng)的功能。

Iterativedevelopment:迭代開發(fā)

軟件工程理論與實踐優(yōu)點:Trainingcanbeginonanearlyrelease.培訓(xùn)可以在早期的版本中開始Marketcanbecreatedearlyforfunctionalitythathasneverbeforebeenoffered.可以為那些以前從未實現(xiàn)的功能提前開拓市場Frequentreleasesallowdeveloperstofixunanticipatedproblemsgloballyandquickly,astheyarereportedformtheoperationalsystem.當(dāng)在使用的系統(tǒng)中有未預(yù)料的問題報告時,在新版本中開發(fā)人員可以全面快速修正這些問題Thedevelopmentteamcanfocusondifferentareasofexpertisewithdifferentreleases.開發(fā)小組可以把不同的發(fā)布版本針對不同的領(lǐng)域軟件工程理論與實踐難點:在把每個新的增量構(gòu)件集成到現(xiàn)有軟件體系結(jié)構(gòu)中時,必須不破壞原來已經(jīng)開發(fā)出的產(chǎn)品必須把軟件的體系結(jié)構(gòu)設(shè)計得便于按這種方式進(jìn)行擴(kuò)充,向現(xiàn)有產(chǎn)品中加入新構(gòu)件的過程必須簡單、方便,也就是說,軟件體系結(jié)構(gòu)必須是開放的軟件工程理論與實踐Spiralmodel螺旋模型DetermineGoals、Alternatives、ConstraintsPlanEvaluateAlternativesAndRisksDevelopAndTest軟件工程理論與實踐螺旋模型螺旋模型沿著螺線旋轉(zhuǎn),在四個象限上分別表達(dá)四個任務(wù)區(qū)域,即:制定計劃──確定軟件目標(biāo),選定實施方案,弄清項目開發(fā)的限制;風(fēng)險分析──分析所選方案,考慮如何識別和消除風(fēng)險;實施工程──實施軟件開發(fā);客戶評估──評價開發(fā)工作,提出修正建議,并計劃下一個階段的任務(wù);軟件工程理論與實踐從涉及到的風(fēng)險角度看待軟件開發(fā)過程,把開發(fā)活動和風(fēng)險管理結(jié)合起來。螺旋模型的基本思想是,盡量降低風(fēng)險。理解這種模型的一個簡便方法,是把它看作在每個階段之前都增加了風(fēng)險分析過程的快速原型模型軟件項目中的風(fēng)險:人員硬件設(shè)備項目的生存能力等螺旋模型軟件工程理論與實踐實質(zhì)上相當(dāng)于在瀑布模型的每個階段開始前引入風(fēng)險分析,并由客戶對階段性產(chǎn)品做出評審,這對保證軟件產(chǎn)品質(zhì)量十分有利;由于引入風(fēng)險分析等活動,測試活動的確定性增強(qiáng)了;螺旋模型最外層代表維護(hù),開發(fā)與維護(hù)采用同樣方式,使維護(hù)得到與開發(fā)同樣的重視。螺旋模型的優(yōu)點軟件工程理論與實踐主要適合內(nèi)部開發(fā),否則風(fēng)險分析必須在簽訂合同前完成,或者爭取客戶的最大理解;只適合大型軟件項目的開發(fā),否則,每個階段的風(fēng)險分析將占用很大一部分資源,增加成本;對開發(fā)人員的風(fēng)險分析能力是極大的考驗,否則,模型將退化到瀑布模型,甚至更糟。螺旋模型的缺點軟件工程理論與實踐噴泉模型進(jìn)一步開發(fā)運行狀態(tài)集成和測試階段編碼階段面向?qū)ο笤O(shè)計階段面向?qū)ο蠓治鲭A段需求階段維護(hù)期“噴泉”體現(xiàn)了面向?qū)ο筌浖_發(fā)過程迭代和無縫的特性軟件工程理論與實踐注意事項

為避免使用噴泉模型開發(fā)軟件時開發(fā)過程過于無序,應(yīng)該把一個線形過程作為總目標(biāo)面向?qū)ο蠓缎捅旧硪蠼?jīng)常對開發(fā)活動進(jìn)行迭代或求精噴泉模型軟件工程理論與實踐開發(fā)經(jīng)驗(最佳實踐)迭代式開發(fā)容納需求變更/減少風(fēng)險管理需求使用用例和腳本使用基于構(gòu)件的體系結(jié)構(gòu)可視化建模驗證軟件質(zhì)量質(zhì)量評估內(nèi)建在貫穿于整個開發(fā)過程的、由全體成員參與的所有活動中控制軟件變更RUP(RationalUnifiedProcess)軟件工程理論與實踐RUP軟件開發(fā)生命周期軟件工程理論與實踐工作階段Inception(初期):建立業(yè)務(wù)模型,定義最終產(chǎn)品視圖,確定項目的范圍Elaboration(詳細(xì)):設(shè)計并確定系統(tǒng)的體系結(jié)構(gòu),制定項目計劃,確定資源需求Construction(建立):開發(fā)所有構(gòu)件和程序,集成為可戶需要的產(chǎn)品,測試所有功能Transition(遷移):把開發(fā)出的產(chǎn)品提交給用戶使用RUP軟件開發(fā)生命周期軟件工程理論與實踐核心工作流業(yè)務(wù)建模需求分析與設(shè)計實現(xiàn)測試部署

生成目標(biāo)系統(tǒng)的可運行版本,移交給用戶配置與變更管理跟蹤維護(hù)開發(fā)過程中Artifacts的完整性和一致性項目管理提供項目管理框架,為軟件開發(fā)項目制定計劃、人員配備、執(zhí)行和監(jiān)控等方面的使用準(zhǔn)則,并為風(fēng)險管理提供框架環(huán)境提供軟件開發(fā)環(huán)境,包括過程管理和工具支持RUP軟件開發(fā)生命周期軟件工程理論與實踐RUP軟件開發(fā)生命周期軟件工程理論與實踐軟件工程理論與實踐RUP軟件開發(fā)生命周期軟件工程理論與實踐軟件工程理論與實踐敏捷過程敏捷過程(2001/2—敏捷軟件開發(fā)宣言TheManifestooftheAgileAlliance

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

Crystal:Cockburn,A.(2002).AgileSoftwareDevelopment.Boston:Addison-Wesley.

FeatureDrivenDevelopment(FDD):PeterCoad,EricLefebvre,andJeffDeLuca(1999).JavaModelingInColorwithUML:EnterpriseComponentsandProcess.PrenticeHall.AdaptiveSoftwareDevelopment

(ADP):JamesA.HighsmithIII(2000).AdaptiveSoftwareDevelopment,DorsetHousePublishing.eXtremeProgramming(XP)敏捷過程軟件工程理論與實踐極限編程是敏捷過程中最富盛名的一個,其中“極限”的含義是指把最好的開

溫馨提示

  • 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

提交評論