01_軟件流程實施方案選擇_第1頁
01_軟件流程實施方案選擇_第2頁
01_軟件流程實施方案選擇_第3頁
01_軟件流程實施方案選擇_第4頁
01_軟件流程實施方案選擇_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 1軟件流程實施方案選擇? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 2什么是軟件工程過程?z任何工業(yè)化生產(chǎn)都離不開過程?大規(guī)模、有組織、有序的z軟件工程過程?合理使用軟件生產(chǎn)制造技術(shù),定義誰(who)什么時候(when) 做什么 (what) ,以及如何 (how) 達到確定目標?將用戶需求轉(zhuǎn)化為軟件系統(tǒng)的所有活動的集合? 開發(fā)一個新的產(chǎn)品? 增強已開發(fā)產(chǎn)品的功能 (修復bug,或者添

2、加功能 )rup 簡介軟件工程過程新建和改變的需求新建和改變的系統(tǒng)2? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 3什么是有效的過程?z保證產(chǎn)品質(zhì)量z迅速減少項目風險(需求、技術(shù)、政治風險等)z保證項目的可預測性(進度、成本、功能等)z能夠捕捉和提供最佳實踐方法(best practice)z促進領域內(nèi) (軟件開發(fā) )的共識和相互理解rup 簡介? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 4議題zrup 、eup 與xpz微軟 m

3、sf 與mofzagile 與cmmi 3? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 5成功的軟件開發(fā)成功的軟件開發(fā)-面向?qū)ο蠓治雠c設計-結(jié)構(gòu)化設計方法-基于構(gòu)件的開發(fā)方法開發(fā)技術(shù)-rup,cmm,xp-瀑布模型-螺旋模型 .開發(fā)過程-rational rose-rup builder-青鳥支撐系統(tǒng)case tool? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 6開發(fā)方法 =建模語言 +開發(fā)過程z建模語言(modeling lan

4、guage)?表述設計方法的表示法?主要是圖形化的z開發(fā)過程(development process)?對開發(fā)中所采取步驟的指導?將建模語言置于特定語境(開發(fā)環(huán)境 )之中4? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 7廣義的開發(fā)過程z雖然我們這里說過程(process) ,實際上它涵蓋了軟件項目管理技術(shù)的各個方面,包括:?軟件度量?項目估算?進度控制?人員組織?配置管理?項目計劃等? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 8u

5、ml+rup= 最佳軟件開發(fā)方法基于團隊的開發(fā)統(tǒng)一過程統(tǒng)一建模語言樂譜樂器交響樂演奏5? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 9rup囊括了 6項最佳實踐方法被證明可解決軟件開發(fā)過程中的根本問題? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 10rup 是一個通用過程框架zrup 是可定制的 (customizable)通用過程框架?開發(fā)軟件的種類?開發(fā)軟件的規(guī)模?開發(fā)軟件的應用領域?開發(fā)團隊的組織形式6? 中國科學院軟件所20

6、06software engineering, 7th edition. chapter 1slide 11rup version 2002.05.00? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 12統(tǒng)一過程中的迭代細化階段的一次迭代需求設計實現(xiàn)測試時間核心工作流分析7? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 13rup的3大核心技術(shù)特點z用例 (use case)/ 需求驅(qū)動的z以構(gòu)架 (architecture) 為中心的

7、z迭代 (iterative) 和增量的 (incremental) 開發(fā)方式? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 14用例驅(qū)動的 rup8? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 15什么是用例 (use case)z軟件系統(tǒng)的特征?服務于特定用戶z用例描述用戶 (user) 需求?用戶:與所開發(fā)系統(tǒng)交互的人或其他系統(tǒng)?所有用例構(gòu)成系統(tǒng)的全部功能和邊界zuml 規(guī)范說明中的定義?用例:在不展現(xiàn)系統(tǒng)或子系統(tǒng)內(nèi)部結(jié)構(gòu)的情況

8、下,對系統(tǒng)或子系統(tǒng)的某個連貫的功能單元的定義和描述。? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 16use case 基本模型元素符號zactor( 參與者 )?表示與系統(tǒng)交互的任何事物zuse case( 用例 )?定義了系統(tǒng)的一系列動作,并向參與者提供有價值的結(jié)果actoruse case9? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 17use case 舉例銀行個人自動交易系統(tǒng)的 use case 圖取錢存錢銀行客戶轉(zhuǎn)帳?

9、 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 18rup是用例驅(qū)動的z需求分析階段用戶需求用use case 來表達z設計初期很多類根據(jù)use case 來發(fā)現(xiàn)z構(gòu)造階段開發(fā)的管理和任務的分配按照use case 來組織z測試階段的實例根據(jù)use case 來生成需求分析設計實現(xiàn)測試通過use cases 將所有rup 工作流有機地結(jié)合起來10? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 19用例在 rup中的其他功能z是有序 (pl

10、anned) 迭代開發(fā)的基礎z為編寫最終用戶手冊提供索引(index)z抽取可單獨出售的系統(tǒng)單元(business component)? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 20以構(gòu)架為中心的rup11? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 21什么是構(gòu)架z與建筑施工圖的作用相似?從各個角度刻畫系統(tǒng)的總體設計(結(jié)構(gòu)、服務設施、供暖、供水、供電 )?去掉細節(jié),突出系統(tǒng)的重要特征z軟件構(gòu)架 (uml 用戶指南中的定義)?系

11、統(tǒng)的重要元素,如子系統(tǒng)、類、構(gòu)件和節(jié)點,以及它們之間通過接口實現(xiàn)的協(xié)作?軟件系統(tǒng)的組織 (結(jié)構(gòu)與行為 )?構(gòu)架風格 (數(shù)據(jù)流風格、調(diào)用 /返回風格等 )?功能、性能、適應性、重用性、技術(shù)約束、美學考慮? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 22構(gòu)架模型 +構(gòu)架視圖 =構(gòu)架描述z模型是概念和知識z視圖是表達模型的方式構(gòu)架視圖構(gòu)架模型可視化構(gòu)架描述12? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 23構(gòu)架視圖對照 kruchten

12、 提出的 4+1 view of software architecture? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 24統(tǒng)一過程以構(gòu)架為中心z構(gòu)架為用戶和開發(fā)人員提供系統(tǒng)的整體視圖z構(gòu)架是系統(tǒng)實現(xiàn)的基礎z為項目管理提供基本指導z構(gòu)架描述是軟件系統(tǒng)的主要制品13? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 25以構(gòu)架為中心的優(yōu)點z創(chuàng)建可重用的框架,使構(gòu)架級的重用成為可能z從構(gòu)架可以方便地得到其他制品?設計指南 (包括使用模式和術(shù)

13、語 )?形成產(chǎn)品結(jié)構(gòu)系列 (企業(yè)版、家用版 )?開發(fā)隊伍結(jié)構(gòu)z簡化基于構(gòu)件的開發(fā)(component-based development)? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 26迭代和增量的rup14? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 27統(tǒng)一過程是迭代和增量的過程z迭代?是統(tǒng)一過程中最小的開發(fā)時間單位,但它卻包括了軟件開發(fā)的所有工作流,因此也可以被看作是“ 袖珍瀑布模型 ”z增量?是每次迭代所產(chǎn)生的,可增加系統(tǒng)

14、功能的構(gòu)造塊z迭代 &增量?迭代是開發(fā)方式,增量是開發(fā)結(jié)果? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 28迭代工作流需求測試實現(xiàn)設計分析一次迭代15? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 29迭代是什么z是一組明確活動(activities) 的集合z是有序的、受控的開發(fā)方式z是能夠產(chǎn)生內(nèi)部版本的袖珍項目z是項目開發(fā)過程中具體執(zhí)行的工作流? 中國科學院軟件所2006software engineering, 7th

15、edition. chapter 1slide 30迭代不是什么z不是任意的探路z不是重復設計同樣的東西z不是只影響開發(fā)人員z不是項目失敗的理由16? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 31為什么采用迭代和增量的開發(fā)方法z降低風險?盡早處理關鍵風險和重要風險,同時將項目開發(fā)的總風險分散到每次的迭代中z小步前進?允許系統(tǒng)靈活改變,更易于處理不斷變化的需求z受控增長?避免回頭式開發(fā),允許連續(xù)的系統(tǒng)集成z增強信心?使用戶和開發(fā)人員都可以看到系統(tǒng)中不斷增加的可運行功能,對項目進度充滿信心? 中國科學院軟件所200

16、6software engineering, 7th edition. chapter 1slide 32迭代開發(fā)對風險的處理風險的嚴重性第1次迭代第2次迭代.第n-1次迭代第n次迭代初始細化構(gòu)造移交迭代和增量瀑布方法瀑布方法的集成和測試階段時間17? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 33迭代開發(fā)實現(xiàn)持續(xù)的構(gòu)造集成? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 34用例驅(qū)動、構(gòu)架中心和迭代與增量z用例驅(qū)動系統(tǒng)構(gòu)架的設計z系統(tǒng)

17、構(gòu)架影響用例的實現(xiàn)z用例體現(xiàn)了系統(tǒng)的功能(function)z構(gòu)架反映了系統(tǒng)的表現(xiàn)形式(form)z用例設定了目標,構(gòu)架建立了模式,開發(fā)人員根據(jù)目標和模式規(guī)劃產(chǎn)品迭代開發(fā)的順序18? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 35概述agile 方法的產(chǎn)生針對上述問題,產(chǎn)生了一系列輕載(lightweight) 方法,如 xp,scrum 等。2001 年2月,新方法的一些創(chuàng)始人在美國猶他州成立agile 聯(lián)盟 (/)lightweightagile? 中國科

18、學院軟件所2006software engineering, 7th edition. chapter 1slide 36概述agile 方法的含義agile 方法是在保證軟件開發(fā)有成功產(chǎn)出的前提下,盡量減少開發(fā)過程中的活動和制品的方法?;\統(tǒng)的講就是,“ 剛剛好 ” (just enough),即開發(fā)中的活動及制品既不要太多也不要太少。19? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 37概述agile 方法的實踐效果我預言 xp對當今時代的作用可與 cmm 在八十年代和九十年代初的作用相媲美-tom demar

19、co, cutter trends report新方法在實踐中取得了巨大的成功?iona公司的 obix技術(shù)支持小組在采用了 xp方法后,軟件生產(chǎn)率提高了 67%?spg( software productivity group) 的capers jones 則稱,scrum方法可提高生產(chǎn)率 6倍? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 38agile方法的核心理念z基于適應而非預測z以人為導向而非過程導向-martin fowler “ new methodology”20? 中國科學院軟件所2006sof

20、tware engineering, 7th edition. chapter 1slide 39agile方法的核心理念及特點適應而非預測開始計劃的結(jié)果實際需要的結(jié)果需求不可預測 -peter wegner 用數(shù)學的方法給出了嚴格的證明按計劃的過程基于適應的過程理論上來說,軟件開發(fā)應是一個自適應的跟蹤過程? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 40agile方法的核心理念及特點適應而非預測自適應系統(tǒng)是一個強反饋系統(tǒng)在軟件開發(fā)中,需求的獲取和分析、軟件設計、編碼等實質(zhì)上均為前饋環(huán)節(jié),真正的反饋環(huán)節(jié)應該是用戶

21、對可運行軟件的使用、使用中的判斷及判斷后與開發(fā)人員的信息交流。反饋和前饋這一回路的響應速度應大于被跟蹤(或被適應)的系統(tǒng)的變化速度,這就要求軟件開發(fā)有快速的產(chǎn)出能力 。21? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 41agile方法的核心理念及特點適應而非預測特點agile 方法通過快速、短迭代式的開發(fā),不斷產(chǎn)出和演化可運行軟件,根據(jù)用戶的反饋信息作適應性調(diào)整,然后進入下一輪快速短迭代式開發(fā)。? 中國科學院軟件所2006software engineering, 7th edition. chapter 1s

22、lide 42軟件開發(fā)中,人的因素是第一位的agile方法的核心理念及特點以人為導向而非過程導向人是過程的主體,而人的工作承受力是有限的軟件開發(fā)中的大部分是需要創(chuàng)造力的設計工作,軟件人員是創(chuàng)造性的工作者軟件人員有主觀上做好工作的意愿軟件開發(fā)的目的是為人提供方便,應首先著眼于有用的可執(zhí)行的軟件,也就是首先考慮商務目標,而不是為過程而過程22? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 43agile方法的核心理念及特點以人為導向而非過程導向強調(diào)軟件開發(fā)中相關人員間信息交流?軟件開發(fā)中的中間過程和制品(文檔),追根究

23、底其目的是為了交流?項目失敗的原因最終都可追溯到某個信息沒有及時準確地傳遞到應該接收它的人-alistir cockburn?人特別擅長面對面的交流,面對面交流的成本要遠遠低于文檔交流的成本- alistircockburn? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 44agile方法的核心理念及特點agile 方法的一個共同特點:努力營造誠信、開放的組織氛圍,根據(jù)項目中信息流通的具體情況,按高內(nèi)聚、松耦合的原則,將項目組劃分為若干個小組(每個小組以不超過 10人為宜,組員均在一個工作間內(nèi)工作),通過小組內(nèi)各種

24、渠道的溝通,來減少中間制品的工作負擔,提高應變能力。以人為導向而非過程導向23? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 45z任何軟件開發(fā)方法都有一個相應的價值系統(tǒng)(value system) ,方法通過價值系統(tǒng)對過程予以指導,方法只有在其應用周境( context )與價值系統(tǒng)相吻合時才能發(fā)揮真正效力zagile聯(lián)盟提出了 “四個價值 ”、“十二個指導原則 ”agile方法的核心理念及特點agile方法的價值系統(tǒng)和指導原則? 中國科學院軟件所2006software engineering, 7th edi

25、tion. chapter 1slide 46agile方法的核心理念及特點agile方法的價值系統(tǒng)較之于 過程和工具 ,更注重 人及其相互作用 的價值較之于 無所不及的各類文檔 ,更注重可 運行的軟件 的價值較之于 合同談判 ,更注重 與客戶合作 的價值較之于 按計劃行事 ,更注重 適應需求變化 的價值24? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 47(1)在快速不斷地交付用戶可運行軟件的過程中,將使用戶滿意放在第一位(2)以積極的態(tài)度對待需求的變化(不管該變化出現(xiàn)在開發(fā)早期還是后期)(3)以幾周到幾個月為

26、周期,盡快、不斷地交付可運行的軟件供用戶使用(4)在項目過程中,業(yè)務人員和開發(fā)人員最好能一起工作(5)以積極向上的員工為中心建立項目組,給予他們所需的環(huán)境和支持,對他們的工作予以充分的信任(6) 在項目組中,最有用、最有效的信息溝通手段是面對面的交談agile方法的核心理念及特點agile方法的指導原則? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 48agile方法的核心理念及特點agile 方法的指導原則(7)測量項目進展的首要依據(jù)是可運行的軟件(8) agile過程高度重視可持續(xù)開發(fā)項目發(fā)起者、開發(fā)者和用戶應

27、能始終保持步調(diào)一致(9) 應時刻關注技術(shù)上的精益求精和設計的合理,這樣能提高軟件的快速應變力(10)簡單化(盡可能減少不必要工作的藝術(shù))(11)最好的框架結(jié)構(gòu)、需求和設計產(chǎn)生于自組織的項目組(12)項目組要定期對其運作情況進行反思,提出改進意見,并進行相應的微調(diào)25? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 49agile方法的核心理念及特點agile方法的適用范圍martin fowler 認為: 新方法不是到處可適用的適合采用 agile方法的情況:z 需求不確定、易揮發(fā)( volatile, 意指今天的要

28、求明天就不需要了)z 有責任感和積極向上的開發(fā)人員z 用戶容易溝通并能參與? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 50agile 與cmm(1) cmm 更注重管理問題(組織過程的有效性和過程的系統(tǒng)化改進),agile更注重技術(shù)和效率(2) cmm 提供了一個高度抽象的框架,有廣泛的適用范圍,agile適用于小組織和需求不定、有用戶緊密參與的情況( 在高可靠性要求和大型項目組,或虛擬項目組中不宜采用)(3) cmm 與agile方法雖有一些公共的特點,但agile方法只是滿足或部分滿足了cmm 2到3級中部

29、分 kpa(關鍵過程區(qū)域)的要求(4) agile方法提出了在某些周境(context )下非常有效的實踐,與cmm 方法有一定的互補性, cmm著重于 “應該做什么 ”,agile 則側(cè)重于 “如何做”cmm 的視角( mark paulk的看法)26? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 51zxp方法從某種意義上來說是cmm 2到5級的一個垂直切片(滿足了cmm 2到5級中的部分kpa 目標要求)z若將之應用于整個組織則還需更多的度量工作,但他同時指出,xp方法中更多的度量不是不可以做,而是要根據(jù)投入

30、回報分析決定是否有必要agile 與cmmxp的視角(ron jeffries 的看法)? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 52zcmm更注重質(zhì)量, agile更注重生產(chǎn)率zcmm強調(diào)過程的可觀測性, agile強調(diào)可觀測的結(jié)果(可運行軟件)zcmm注重管理和過程, agile注重技術(shù)和效率zcmm注重組織, agile注重個人zcmm無所不包( universal) ,agile有明確的適用范圍z它們都包含了一些軟件工程的好的實踐(practices)agile 與cmm個人觀點(僅供參考)結(jié)合點在哪

31、里,如何just enough?27? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 53agile 具體方法介紹zextreme programming ( 簡稱xp)zscrumzcrystal methodologies ( 簡稱crystal)zfeature driven development(簡稱fdd)zdynamic systems development methodology(簡稱dsdm) zadaptive software development(簡稱asd)zpragmatic prog

32、ramming等? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 54什么是 xpkent beck 1996xp is a lightweight methodology for small to medium sized teams developing software in the face of vague or rapidly changing requirements. - kent beck.xp 是勇氣,交流,反饋和簡單。xp 是軟件開發(fā)過程中的紀律,它規(guī)定你:必須在編程前些測試,必須兩個人一起編程

33、,必須遵守編程規(guī)范 。xp 是把最好的實踐經(jīng)驗提取出來,形成了一個嶄新的開發(fā)方法。extreme programming28? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 55xp的增量過程簡單設計迭代計劃測試驅(qū)動pair 開發(fā)持續(xù)集成重構(gòu)1.n 個iteration發(fā)布計劃1.n 個release小發(fā)布發(fā)布1.n 個task? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 56xp價值觀交流(communication)勇氣(coura

34、ge)簡單(simplicity)反饋(feedback)簡單即為在管用能完成事情的前提下,做最簡單的事;交流即整個開發(fā)過程應該都需要及時交流,這里交流側(cè)重口頭交流和能簡單明了說明問題的文檔交流,屏棄煩瑣雜亂的文檔和計劃等;反饋即整個項目任何時候都需要客戶和內(nèi)部人員的反饋,以保證整個軟件不斷處于設計與編程與修復bug 的狀態(tài)中;勇氣即要求你必須有足夠信心對自己的代碼乃至別人的代碼進行重構(gòu)。29? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 57十二條慣例和規(guī)則zon-site customer(現(xiàn)場客戶)z計劃項目

35、(planning game)z頻繁地小規(guī)模發(fā)布軟件(small releases )z簡單設計(simple design )z測試驅(qū)動開發(fā)(test driven development)z持續(xù)集成(continuous integration)z集體擁有代碼(collective code ownership)z編程規(guī)范(coding standards)z重構(gòu)(refactoring )zsystem metaphor(系統(tǒng)隱喻)zpair programming(結(jié)對編程)z平穩(wěn)的工作效率(sustainable pace)? 中國科學院軟件所2006software enginee

36、ring, 7th edition. chapter 1slide 58測試驅(qū)動開發(fā) (test-driven develop, tdd)失敗通過時間單元測試100%通過設計先寫單元測試重構(gòu)運行單元測試編程發(fā)現(xiàn) bug集成先寫功能測試user story運行功能測試30? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 59重構(gòu)z減少重復設計,優(yōu)化設計結(jié)構(gòu),提高技術(shù)上的重用性和可擴展性。z在 metaphor 指引下的重構(gòu),是為商業(yè)模型服務的。不要把重構(gòu)變成不斷的盲目精簡代碼。z重構(gòu)和編程前的計劃型設計(planned

37、 design)結(jié)合,使 xp的簡單設計可行有效。zxp提倡毫不留情的重構(gòu)(refactor mercilessly)。z任何人可以重構(gòu)任何代碼,前提是重構(gòu)后的代碼一定要通過100% 測試單元測試后才能被check-in 。z可以根據(jù)需要,將一個迭代的全部目標定為重構(gòu)。z不要太在意什么是最簡單的設計 愿意在最后重構(gòu),比知道如何做簡單的設計重要得多。? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 60需求分析設計編碼測試集成使用和維護planneddesignxp design變化導致的成本增加軟件研發(fā)異動曲線簡單設

38、計xp中的演進設計(evolutionary-design)z如果沒有它和眾多慣例規(guī)則之間的耦合,xp 的演化設計就蛻化成code-fix。zxp的演化設計是在up-front design 和refactoring 之間找到新的平衡。31? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 61編程規(guī)范z規(guī)定了程序的風格,包括注釋如何寫,變量命名的規(guī)范,代碼的格式等等。zteamwork 的前提之一,其它眾多慣例和規(guī)則(如pair programming,collectivecode ownership等)的前提之一。

39、? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 62集體擁有代碼z“ 我們 ” 的代碼,而不是 “ 我” 的代碼。z任何人可以改動任何一段代碼,但改動后的代碼必須通過所有相關的測試。z簡單設計,編程規(guī)范和pair programming,使閱讀和修改team 內(nèi)其他人的代碼變得實際可行。32? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 63pair programming兩個程序員使用同一臺電腦共同開發(fā)。xp 的必須組成部分,xp中最

40、有爭議的規(guī)則之一。? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 64頻繁地小規(guī)模發(fā)布軟件z發(fā)布過程應該盡可能地自動化、規(guī)范化。z不斷地發(fā)布可用的系統(tǒng)可以告訴客戶你在做正確的事情。z客戶使用發(fā)布的系統(tǒng),可以保證頻繁地反饋和交流。z保證客戶有足夠的依據(jù)調(diào)控開發(fā)過程(增加、刪除或改變user story)。z降低開發(fā)風險。z隨著開發(fā)的推進,發(fā)布越來越頻繁。z所有的發(fā)布都要經(jīng)過功能測試。33? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 65

41、平穩(wěn)的工作效率平穩(wěn)的工作效率指team 和個人在很長的時期內(nèi)保持一定的開發(fā)效率。z保證了項目速度和計劃過程的有效性和準確性;z保證了程序員可以持續(xù)地完成任務,team 可以持續(xù)地向客戶交付可運行的系統(tǒng)(見敏捷開發(fā)宣言);z加班多導致開發(fā)效率和質(zhì)量下降,簡潔增加了開發(fā)成本;zpair programming已經(jīng)加大了工作強度,并且和其它xp的規(guī)則一起提高了工作效率,使少加班和維持平穩(wěn)的工作效率可能而且可行。z提倡平穩(wěn)的工作效率,體現(xiàn)了xp以人為本的價值觀。? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 66msf 是

42、微軟解決方案框架z框架不是具體的軟件程序或解決方案z框架只是一組模型、原則、概念方法,以幫助使用者開發(fā)良好解決方案為目的34? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 67msf主旨和觀點zmsf 對環(huán)境、采用的技術(shù)、項目的大小有較大的適應性,這是 msf 的第一個主旨zmsf 對軟件開發(fā)還持以下獨到的見解?用戶的需求是變動的?需求是未來的,而不是當前的?資源永遠的匱乏的?風險普遍存在?開發(fā)小組成員是協(xié)作的平等關系?認識是漸進的,過程是迭代的?技術(shù)模型也可以影響業(yè)務模型? 中國科學院軟件所2006softwar

43、e engineering, 7th edition. chapter 1slide 68msf 概念zmsf?是一系列的指導方針?目的在于用更快的速度、更少的人力、更小的風險、更高的質(zhì)量,成功交付信息技術(shù)解決方案。35? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 69兩種模型z小組模型?msf 提供了一個有機的建組模型,由不同業(yè)務職能人員形成開發(fā)組,人員以角色承擔組內(nèi)應負的職責?角色之間是協(xié)商和合作關系。小組的擴大與縮減也都以角色承擔工作量為準過程模型msf 提供了一個既分階段又有反復迭代的軟件開發(fā)模型吸收了瀑

44、布模型的經(jīng)驗和螺旋模型的優(yōu)點? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 70三種管理準則zmsf 有三種管理準則:項目管理準則、風險管理和就緒管理。zmsf 的項目管理?不設項目經(jīng)理?項目管理活動盡量以當事人的意見為主?強調(diào)項目管理與風險管理緊密結(jié)合?msf項目管理非常重視實踐36? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 71msf的基本原則zmsf 八大基本原則?職責明確、責任共享?在一個共享的遠景下工作?小組成員有職有權(quán)?

45、重點是交付業(yè)務價值?靈活敏捷、主動應變?促進坦率溝通?在質(zhì)量上投資?從各種經(jīng)驗中學習? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 72關鍵概念zmsf 在形成自己的模型和準則時,為了體現(xiàn)msf的基本原則形成一些關鍵的概念,即支持msf 思想的理念。zmsf 為每一種模型,每一種準則給出了關鍵概念小組模型關鍵概念?角色平等?以客戶為中心?都要有產(chǎn)品理念?零缺陷意識?樂于學習?有激情的小組最有效37? 中國科學院軟件所2006software engineering, 7th edition. chapter 1sl

46、ide 73經(jīng)實踐檢驗正確的經(jīng)驗z除了基本原則和關鍵概念之外。msf 還為每種模型,每種準則提供了采用模型,實施管理時的實際經(jīng)驗,這些經(jīng)驗是經(jīng)過實際驗證切實可行的。小組模型經(jīng)驗?組成多學科小組?同一地點辦公?所有成員均參與設計? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 74總結(jié): msf 基本要素風險管理準則增加成功的潛力項目管理準則管理和滿足承諾就緒管理準則在正確的時間擁有正確的技能小組模型過程模型38? 中國科學院軟件所2006software engineering, 7th edition. chapt

47、er 1slide 75cmmcmm 的基本概念?能力成熟度模型( capability maturity model )?80年代,在美國國防部資助下,由卡內(nèi)基梅隆大學軟件工程研究所 (sei)建立,用于評價軟件開發(fā)組織的軟件過程能力成熟度? 后來此模型被用于軟件開發(fā)組織內(nèi)部的軟件過程改進。? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 76cmm初 始 級可 重 復 級已 管 理 級已 定 義 級優(yōu) 化 級成熟度風險cmm 的基本概念39? 中國科學院軟件所2006software engineering, 7

48、th edition. chapter 1slide 77cmmcmm 的基本概念成熟度等級關鍵過程方面(kpa)公共特性關鍵慣例過程能力目標實現(xiàn)或?qū)崿F(xiàn)制度化基礎設施或活動指出達到涉及描述包含由 .組成包含cmm 結(jié)構(gòu)圖? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 78cmmcmm 的基本概念美國曾在 1995年做過軟件產(chǎn)業(yè)成熟程度的調(diào)查,發(fā)現(xiàn)在美國的軟件產(chǎn)業(yè)中:cmm 成熟度等級為初始級的竟占70%,其特征是軟件開發(fā)過程不能預測,風險度高;為可重復級的占 15%,其特征是軟件開發(fā)過程需小心謹慎方能避免失?。粸槎?/p>

49、義級的所占比例小于10%,其特征是軟件開發(fā)過程相當穩(wěn)定,進展順利且可以預測;為管理級的所占比例小于5%,其特征是軟件過程預測準確、值得信賴;為優(yōu)化級的所占比例小于1%,其特征是軟件過程能持續(xù)改善。40? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 79cmmpsp的基本概念個體軟件過程 psp(personal software process),為基于個體和小型群組軟件過程的優(yōu)化提供了具體而有效的途徑,例如如何制訂計劃如何控制質(zhì)量如何與其他人相互協(xié)作等等? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 80cmmpsp采用的方法psp 保障軟件產(chǎn)品質(zhì)量的一個重要途徑是提高設計質(zhì)量在軟件設計階段, psp 的著眼點在于軟件缺陷的預防,其具體辦法是強化設計結(jié)束準則,而不是設計方法的選擇41? 中國科學院軟件所2006software engineering, 7th edition. chapter 1slide 81cmmpsp的效用研究表明:絕大多數(shù)軟件缺陷是由于對問題的錯誤理解或簡單的失誤所造成的,只有很少一部分是由于技術(shù)問題而產(chǎn)生的如果在設計階段注入一個差

溫馨提示

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

評論

0/150

提交評論