軟件開發(fā)過程_第1頁
軟件開發(fā)過程_第2頁
軟件開發(fā)過程_第3頁
軟件開發(fā)過程_第4頁
軟件開發(fā)過程_第5頁
已閱讀5頁,還剩65頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Shanghai Jiao Tong University上海交通大學軟件工程中心軟件項目管理Module: Software Process 軟件開發(fā)過程軟件開發(fā)過程2Software Project Management沈備軍項目過程w 項目過程包括:項目管理過程,項目管理過程, concerned with describing and organizing the work of the project. They are applicable to most projects, most of the time.產品開發(fā)過程,產品開發(fā)過程,concerned with specify

2、ing and creating the project product. They are typically defined by the project life cycle and vary by application area.3Software Project Management沈備軍PMBOK的項目管理過程4Software Project Management沈備軍典型的軟件開發(fā)過程 RUP5Software Project Management沈備軍本節(jié)內容w 軟件開發(fā)過程概述w 推薦的軟件過程統(tǒng)一軟件過程 RUP敏捷過程微軟產品開發(fā)過程w 選擇和實施軟件過程6Softw

3、are Project Management沈備軍軟件企業(yè)的核心能力開發(fā)過程開發(fā)過程 (CMM、RUP、XP) 開發(fā)技能開發(fā)技能(OO、架構、架構、構件構件)組織管理組織管理(文化、制度、團隊、(文化、制度、團隊、價值鏈價值鏈)軟件開發(fā)過程軟件開發(fā)過程是企業(yè)的核心能力是企業(yè)的核心能力是項目管理的核心能力是項目管理的核心能力7Software Project Management沈備軍New or changedrequirementsNew or changed systemSoftwareProcess什么是軟件過程w Defines Who is doing What, When to d

4、o it, and How to reach a certain goal.8Software Project Management沈備軍軟件過程的組成五大元素:w 工件/產品w 活動w 里程碑w 資源和角色w 關系9Software Project Management沈備軍工件和WBSw 工件(Artifact)是指軟件開發(fā)過程的中間或最后工作產品,包括文檔、模型和程序。w 工作分解結構(WBS,Work Breakdown Structure)以工作為導向對項目要素進行的分組,它定義了項目的整個工作范圍,每細分一層表示對項目工件更詳細的描述分組方式 按開發(fā)階段組織 按子項目/子系統(tǒng)組織

5、按類型組織10Software Project Management沈備軍按開發(fā)階段組織的WBS舉例11Software Project Management沈備軍活動w 一個項目可分為多個活動w 活動的執(zhí)行可以是順序的、迭代的(重復的)、并行的、嵌套的、或者有條件地引發(fā)的。w 活動間的時序關系F-FF-SS-FS-Sw 父子活動12Software Project Management沈備軍里程碑w 里程碑是特殊的活動,當時鐘到達特定時間,就會觸發(fā)里程碑檢查本階段的所有活動和工作是否按要求完成制定明確的里程碑大項目制定更細化的里程碑讓項目組成員時刻保持高效的工作狀態(tài)為管理人員提供進度可視化的

6、可靠依據(jù)讓客戶都感覺到一段時間就實現(xiàn)了一個目標,提高客戶的滿意度和信任。13Software Project Management沈備軍明確的可量化的里程碑14Software Project Management沈備軍資源人人是最重要的資源是最重要的資源 !軟件構件庫軟件構件庫15Software Project Management沈備軍軟件開發(fā)過程分類w 線性順序過程 Waterfall Processw 增量式過程Incremental Processw 演化過程Evolutionary Process 原型 Prototyping 螺旋過程 Spiral Process 并發(fā)開發(fā)過程

7、 Concurrent Development Processw 特殊過程 基于構件的開發(fā) Component-Based Development 形式化方法模型 Formal Methods Process 面向側面的軟件開發(fā) Aspect-Oriented Software Development16Software Project Management沈備軍瀑布過程(Waterfall)w 最早的軟件開發(fā)過程 w 1970年W. Royce提出w 又稱為線性順序過程需求設計編碼測試運行和維護需求規(guī)約設計文檔系統(tǒng)被確認的系統(tǒng)17Software Project Management沈備軍瀑

8、布過程特點w 特點 強調階段的劃分及其順序性 強調各階段工作及其文檔的完備性 每個階段結束之前,都從技術和管理兩個角度進行嚴格的審查 是一種嚴格線性的、按階段順序的、逐步細化的開發(fā)模式w 適用時機 所有功能、性能等要求能一次理解和描述時 所有的系統(tǒng)功能一次交付時 必須同時淘汰全部老系統(tǒng)時18Software Project Management沈備軍瀑布型的風險和缺點w 獲得完善的需求規(guī)約是非常困難的;w 難以適應快速變化需求;w 系統(tǒng)太大時,難以一次做完;w 反饋信息慢;w 極可能引起開發(fā)后期的大量返工,如返工到需求、設計等早期活動;w 19Software Project Manageme

9、nt沈備軍增量過程(Incremental)w 構造一系列可執(zhí)行的中間版本(Version by Version) 20Software Project Management沈備軍增量過程適用時機w 早期獲得需求,需求變化少;w 中間產品可以提供使用;w 系統(tǒng)被自然地分割成增量;w 工作人員/資金可以逐步增加。21Software Project Management沈備軍演化過程(Evolutionary)w 現(xiàn)狀: 軟件需求在軟件開發(fā)過程中常常發(fā)生改變,想要一次迭代就開發(fā)出最終產品是不可能的 緊迫的市場期限使得難以一下子完成一個完善的軟件產品w 解決方案:演化過程 只要核心需求能夠被很好地

10、理解,就可以進行漸進式開發(fā),其余需求可以在后續(xù)的迭代中進一步定義和實現(xiàn)。這種過程模型稱為演化模型,它能很好地適應隨時間演化的產品的開發(fā)。w 特點: 迭代的開發(fā)方法,漸進地開發(fā)各個可執(zhí)行版本,逐步完善軟件產品。每個版本在開發(fā)時,開發(fā)過程中的活動順序地或部分重疊平行地被采用。 與增量過程的區(qū)別是:需求在開發(fā)早期不能被完全了解和確定,在一部分被定義后開發(fā)就開始了,然后在每個相繼的版本中逐步完善。22Software Project Management沈備軍演化過程舉例u首先執(zhí)行風險最大的任務首先執(zhí)行風險最大的任務u迭代內部并行開發(fā)迭代內部并行開發(fā)u迭代之間順序執(zhí)行迭代之間順序執(zhí)行u可以在細化所有需

11、求之前啟動開發(fā)工作可以在細化所有需求之前啟動開發(fā)工作更多的需求更多的需求設計設計編碼編碼測試測試初始需求初始需求維護請求維護請求完整產品完整產品- 基于風險的、順序執(zhí)行的演化過程基于風險的、順序執(zhí)行的演化過程23Software Project Management沈備軍風險風險演化型演化型PreliminaryIterationArchitect.IterationArchitect.IterationDevel. IterationDevel. IterationDevel. IterationTransitionIterationTransitionIterationPost-deplo

12、yment瀑布型瀑布型時間時間演化過程價值:降低風險演化過程是目前采用最廣泛的軟件過程24Software Project Management沈備軍幾種常見的演化過程w 原型 Prototypingw 螺旋過程 Spiral Processw 并發(fā)開發(fā)過程 Concurrent Development Process需求分析需求分析原型開發(fā)原型開發(fā)最終系統(tǒng)設計最終系統(tǒng)設計原型評價原型評價最終系統(tǒng)實現(xiàn)最終系統(tǒng)實現(xiàn)用戶用戶反饋反饋25Software Project Management沈備軍特殊過程w 基于構件的開發(fā) Component-Based Developmentw 形式化方法過程 F

13、ormal Methods Processw 面向側面的軟件開發(fā) Aspect-Oriented Software Development26Software Project Management沈備軍基于構件的開發(fā)A1A2A3A4基礎構件B1B2B3B4功能構件C1C2接口構件A1A2ABCDRA3A4B1B2B3B4C1C2D1D2DA1B1C1A2B2應用系統(tǒng)界面構件D1 D227Software Project Management沈備軍構件和可復用構件w 構件(Component)可以被明確標識的軟件制品。w 可復用構件:可被其它系統(tǒng)的開發(fā)者復用的構件。w 可復用構件概念的外延化隨著

14、對軟件復用理解的深入,構件的概念已延伸到需求、構架、設計、設計模式、測試計劃、測試案例和數(shù)據(jù)以及其他對開發(fā)活動有用的信息,統(tǒng)稱為可復用軟件構件。28Software Project Management沈備軍形式化方法過程w 凈室軟件工程 Clean Room Software Engineering一種增量軟件過程模型基于函數(shù)的規(guī)范和設計在測試前進行正確性驗證(基于函數(shù)理論)統(tǒng)計測試 抽樣,測試用例-隨機樣本,概率分布w 特點:可生成高質量的軟件29Software Project Management沈備軍凈室軟件過程圖示需求收集盒結構規(guī)約形式化設計正確性驗證代碼審查制訂測試計劃統(tǒng)計使用測

15、試認證系統(tǒng)工程迭代#1迭代#2迭代#3需求收集盒結構規(guī)約形式化設計正確性驗證代碼審查制訂測試計劃統(tǒng)計使用測試認證需求收集盒結構規(guī)約形式化設計正確性驗證代碼審查制訂測試計劃統(tǒng)計使用測試認證30Software Project Management沈備軍面向側面的軟件開發(fā)w 現(xiàn)實問題:對多數(shù)復雜的系統(tǒng),在多種需求關注點和實現(xiàn)的模塊之間的對應中,往往出現(xiàn)交叉分割(橫切, crosscut)的現(xiàn)象。w 解決方案:面向側面的軟件開發(fā)w aspect-oriented software developmentw 舉例對于一個信用卡應用程序來說,存款、取款、帳單管理是它的主關注點,日志和持久化將成為橫切整個

16、對象結構的橫切關注點。31Software Project Management沈備軍面向側面軟件開發(fā)的原理RequirementBusiness LogicPersistenceSecurityLoggingAspectual DecompositionAspectual Composition32Software Project Management沈備軍本節(jié)內容w 軟件開發(fā)過程概述w 推薦的軟件過程統(tǒng)一軟件過程 RUP敏捷過程微軟產品開發(fā)過程w 選擇和實施軟件過程33Software Project Management沈備軍統(tǒng)一軟件過程 RUPRUPRUP是一個風險驅動的、基于是一個風

17、險驅動的、基于UMLUML和構件式架構的迭代、遞增型開發(fā)過程和構件式架構的迭代、遞增型開發(fā)過程。34Software Project Management沈備軍RUP最佳實踐方法迭代式開發(fā)迭代式開發(fā)需求管理需求管理構件式架構構件式架構基于基于UMLUML的可視化建模的可視化建模持續(xù)校驗質量持續(xù)校驗質量變更管理變更管理 35Software Project Management沈備軍RUP的四個階段Lifecycle Objective Milestone Lifecycle Architecture Milestone Initial Operational Capability Milest

18、one Product ReleasetimeuInception - Define the scope of projectuElaboration - Plan project, specify features, baseline architecture uConstruction - Build the productuTransition - Transition the product into end user community每個階段結束是一個大的里程碑每個階段結束是一個大的里程碑36Software Project Management沈備軍階段和迭代 iteration

19、 Minor Milestones: Releases 37Software Project Management沈備軍 Results of previous iterations Up-to-date risk assessment Controlled libraries of models, code, and tests Release descriptionUpdated risk assessmentControlled librariesIteration PlanningRequirements CaptureAnalysis & DesignImplementation T

20、estPrepare ReleaseSelected scenarios一個迭代周期:一個小的瀑布模型38Software Project Management沈備軍過程定義WorkerActivityArtifactDescribe a Use-CaseUse-Case PackageUse-Caseresponsible forUse-Case SpecifierA unit of work a worker may be asked to performA piece of information that is produced, modified, or used by a proc

21、essA role that may be played by an individual or a team in the development organization39Software Project Management沈備軍工作指南、工具指南和文檔模板w Guidelines are the rules, recommendations, and heuristics that support activities For example, modeling and programming guidelinesw Tool mentors explain how to use a

22、 specific tool to perform an activity or steps in an activity For example, building a design model using Rational Rosew Templates are predefined artifacts For example, a Rational SoDA template for a Use-Case Reportw Guidelines, tool mentors and templates make it easier to apply the process correctly

23、 and consistently40Software Project Management沈備軍敏捷過程w 敏捷過程很容易適應變化并迅速做出自我調整,在保證質敏捷過程很容易適應變化并迅速做出自我調整,在保證質量的前提下,實現(xiàn)企業(yè)效益的最大化。量的前提下,實現(xiàn)企業(yè)效益的最大化。w 敏捷過程在保證軟件開發(fā)有成功產出的前提下,盡量減少敏捷過程在保證軟件開發(fā)有成功產出的前提下,盡量減少開發(fā)過程中的活動和制品,開發(fā)過程中的活動和制品,Just enoughJust enoughw 20012001年年2 2月,新方法的一些創(chuàng)始人在美國猶他州成立月,新方法的一些創(chuàng)始人在美國猶他州成立 Agile Agi

24、le 聯(lián)盟聯(lián)盟(http:/ )(http:/ )LightweightAgileXPSCRUMCrystalFDDDSDMASD dxLean Development 41Software Project Management沈備軍敏捷過程的核心理念w 基于適應而非預測 Agile方法通過快速、短迭代式的開發(fā),不斷產出和演化可運行軟件,根據(jù)用戶的反饋信息作適應性調整,然后進入下一輪快速短迭代式開發(fā)w 以人為導向而非過程導向 努力營造誠信、開放的組織氛圍,根據(jù)項目中信息流通的具體情況,按高內聚、松耦合的原則,將項目組劃分為若干個小組(每個小組以不超過10人為宜,組員均在一個工作間內工作),通過

25、小組內各種渠道的溝通,來減少中間制品的工作負擔,提高應變能力-Martin Fowler “New Methodology”42Software Project Management沈備軍敏捷過程的12條指導原則 (1)w 在快速不斷地交付用戶可運行軟件的過程中,將使用戶滿意放在第一位w 以積極的態(tài)度對待需求的變化(不管該變化出現(xiàn)在開發(fā)早期還是后期)w 以幾周到幾個月為周期,盡快、不斷地交付可運行的軟件供用戶使用w 在項目過程中,業(yè)務人員和開發(fā)人員最好能一起工作w 以積極向上的員工為中心建立項目組,給予他們所需的環(huán)境和支持,對他們的工作予以充分的信任w 在項目組中,最有用、最有效的信息溝通手段

26、是面對面的交談43Software Project Management沈備軍敏捷過程的12條指導原則 (2)w 測量項目進展的首要依據(jù)是可運行的軟件w 高度重視可持續(xù)開發(fā)w 項目發(fā)起者、開發(fā)者和用戶應能始終保持步調一致w 應時刻關注技術上的精益求精和設計的合理,這樣能提高軟件的快速應變力w 簡單化(盡可能減少不必要工作的藝術)w 最好的框架結構、需求和設計產生于自組織的項目組w 項目組要定期對其運作情況進行反思,提出改進意見,并進行相應的微調44Software Project Management沈備軍敏捷過程的適用范圍Martin Fowler認為:新方法不是到處可適用的適合采用敏捷過程

27、的情況:l 需求不確定、易揮發(fā)(Volatile,意指今天的要求明天就不需要了)l 有責任感和積極向上的開發(fā)人員l 用戶容易溝通并能參與l十個人以下的小項目45Software Project Management沈備軍極限編程(XP)w 由由Kent BeckKent Beck、Ward CunninghamWard Cunningham、Ron Ron JeffriesJeffries等人提出反響最大、最為完善的敏等人提出反響最大、最為完善的敏捷過程方法。捷過程方法。w 價值觀:價值觀:溝通、反饋、簡化、勇氣溝通、反饋、簡化、勇氣w 特點:特點:測試成為開發(fā)的核心測試成為開發(fā)的核心; ;紀

28、律性與靈活性巧妙結合紀律性與靈活性巧妙結合. .46Software Project Management沈備軍XP項目周期 47Software Project Management沈備軍XP關鍵做法w 現(xiàn)場客戶(On-site Customer)w 計劃博弈(Planning Game)w 系統(tǒng)隱喻(System Metaphor)w 簡化設計(Simple Design)w 集體擁有代碼(Collective Code Ownership)w 結對編程(Pair Programming)w 測試驅動(Test-driven)w 小型發(fā)布(Small Releases)w 重構(Refac

29、toring)w 持續(xù)集成(Continuous integration)w 每周40小時工作制(40-hour Weeks)w 代碼規(guī)范(Coding Standards)48Software Project Management沈備軍RUP與XP的共性w 基礎都是面向對象方法(取代傳統(tǒng)的結構化方法)w 都重視代碼、文檔的最小化和設計的簡化w 采用動態(tài)適應變化的演進式迭代周期(取代傳統(tǒng)的瀑布型生命周期)w 需求和測試驅動w 鼓勵用戶積極參與49Software Project Management沈備軍RUP與XP的區(qū)別w XP以代碼為中心,編碼和設計活動融為一體,弱化了架構的概念。 w R

30、UP過程通常以架構為中心,細化階段的主要目的就是構造出一個可運行的架構原型,作為將來添加需求功能的穩(wěn)固基礎。 w XP不包含業(yè)務建模、部署、過程管理等概念。w RUP適合各種規(guī)模的項目,XP只適用于小團隊。50Software Project Management沈備軍MSF (Microsoft Solution Framework) 4.0 軟件過程w MSF for Agile Software Development 意在更加靈活,在設計上是重復的注重測試與原型、較短的開發(fā)循環(huán)與持續(xù)整合w MSF for CMMI Process Improvement注重嚴謹?shù)拈_發(fā)流程旨在獲得 CM

31、MI Level 3 Compliance Microsoft 在2005年發(fā)布51Software Project Management沈備軍MSF for Agile Software Developmentw First agile process that considers the whole software lifecycle and the full software team.w Iterative and incrementalw Scenario-drivenw Small teamsw Quality of Service requirementsw Risksw Ut

32、ilizes a context-driven testing approach (based on test metric thresholds)52Software Project Management沈備軍管理(Governance)53Software Project Management沈備軍角色(Roles)Business Analyst Project Manager ArchitectDeveloper Tester Release Manager54Software Project Management沈備軍工作項(work item)w 5 work items to a

33、ssign and track workScenarioQuality of service requirement Security, performance, and user experience TaskBugRisk 55Software Project Management沈備軍MSF for CMMI Process Improvementw First agile CMMI processw Help organizations operate at Capability Maturity Model Integration (CMMI) level 3, a standard

34、 defined by the Carnegie Mellon Software Engineering Institute (SEI) w Elaborates on the MSF for Agile Software Development process More work items Extensive reportingw Does not replace process improvement infrastructure56Software Project Management沈備軍過程模型Project plans approvedScope completeRelease

35、readiness approvedDeployment completeVision/scope approvedw Milestone-basedw Iterativew Flexible57Software Project Management沈備軍管理(Governance)5 phases / milestones58Software Project Management沈備軍角色(Roles)59Software Project Management沈備軍大項目的團隊Feature teamsLead teamProgramManagementReleaseOperationsPr

36、oductManagementUserExperienceDevelopmentTestCatalogProgramManagementDevelopmentTestSite Engine & DesignProgramManagementUserExperienceDevelopmentTestFulfillmentProgramManagementUserExperienceDevelopmentTestReleaseOperationsArchitectureArchitectureArchitectureArchitecture60Software Project Management

37、沈備軍工作項(work item)w 7 work items to assign and track workTask Change Request Risk Review Requirement Bug Issue61Software Project Management沈備軍每個階段的主要活動(Activity)Project Plans ApprovedScope CompleteRelease Readiness ApprovedDeployment completeVision/Scope ApprovedPilot CompleteUser Acceptance Testing

38、CompletePre-Production Test CompleteRelease CandidatesZero Bug BounceBug ConvergenceTechnology ValidationFunctional Specification BaselinedMaster Plan BaselinedMaster Schedule BaselinedDevelopment and Test Environment Set UpDeployment Stable Interim MilestoneSite Deployments Complete Interim Milesto

39、neCore Components DeployedCore Team OrganizedVision/Scope DraftedProof of Concept CompleteInternal Build 1 CompleteInternal Build 2 CompleteInternal Build n Complete62Software Project Management沈備軍微軟軟件開發(fā)的成功經驗(best practice)w 以bug數(shù)據(jù)庫為基礎來保證質量w 產品技術開發(fā)部門的反饋w 以產品功能規(guī)格書為標準w 完成視覺效果的設計visual freezew 源程序樹的鎖定 lockdown source treew 源程序樹的分叉fork source tree w 產品編碼完成code comple

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論