高級軟件開發(fā)過程(復(fù)習(xí)資料)_第1頁
高級軟件開發(fā)過程(復(fù)習(xí)資料)_第2頁
高級軟件開發(fā)過程(復(fù)習(xí)資料)_第3頁
高級軟件開發(fā)過程(復(fù)習(xí)資料)_第4頁
高級軟件開發(fā)過程(復(fù)習(xí)資料)_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

高級軟件開發(fā)過程第1章緒論計算機軟件發(fā)展的三個階段:程序設(shè)計階段(軟件工作:程序設(shè)計,軟件質(zhì)量:程序設(shè)計=數(shù)據(jù)結(jié)構(gòu)+算法,強調(diào)編程技巧)、軟件工程階段(總結(jié)軟件危機的教訓(xùn),軟件工作:代碼編寫+需求分析、測試、維護等等,軟件質(zhì)量:程序的可讀性、可理解性、可測試性和易修改性等工程化的原則)、軟件過程階段(軟件工作:軟件開發(fā)過程+軟件管理過程,更強調(diào)軟件開發(fā)的效率、軟件質(zhì)量以及與軟件開發(fā)相關(guān)的管理工作)2?現(xiàn)代軟件產(chǎn)業(yè)的總體情況:很多軟件項目最終不能交付,或者最終交付的軟件項目發(fā)生延期、成本超岀預(yù)算、而且運行經(jīng)常不可靠。原因:不完整、不現(xiàn)實的項目需求描述、對需求變更束手無策、脆弱的框架、采用不成熟的技術(shù)、測試的不充分性、拙劣的進度計劃和評估、缺乏資源、不具備項目管理的方法、缺少管理層的支持。軟件周期模型:定義:軟件生命周期模型是軟件過程中全部活動的生命周期結(jié)構(gòu)框架的一種形式化描述,也成為軟件生存期模型。種類:瀑布模型、演化(原型)模型、螺旋模型、噴泉模型??傮w局限性:軟件過程不僅包括組成過程的各種活動,而且包括各種活動的相關(guān)項,如活動的執(zhí)行者、活動執(zhí)行時采用的各種方法和工具、活動執(zhí)行的結(jié)果等等,軟件生命周期模型用于指導(dǎo)軟件開發(fā)實踐時,表現(xiàn)岀較差的可操作性。軟件過程模式:定義:軟件工程模式從成功或失敗的軟件開發(fā)實踐中總結(jié)而成,是軟件過程中生命周期、人員、方法、產(chǎn)品四大要素相互關(guān)聯(lián)的有機整體。典型的過程模式:Rational統(tǒng)一過程、敏捷過程、微軟過程。其他過程模式:個體/小組軟件過程(PSP/TSP)。軟件過程模式與軟件牛命周期模型的關(guān)系:軟件牛命周期模型包含與軟件過程模式中。6?軟件過程能力評估標準和改進方案CM(能力成熟度模型):初始級、可重復(fù)級、已定義級、已定量管理級、優(yōu)化級。ISO9000;。第2章Rational統(tǒng)一過程1.什么是RUP:Rational統(tǒng)一過程(RationalUnifiedProcess)是一種典型的軟件過程模式,對軟件過程模式的四大要素生命周期、人員、方法和產(chǎn)品均進行了詳盡的論述;是一種軟件過程產(chǎn)品一一Rational公司開發(fā)并維護,與Rational一系列其他軟件開發(fā)工具集成。*2.RUP術(shù)語:用戶代表與所開發(fā)的系統(tǒng)進行交互的某個人或某個系統(tǒng)(所開發(fā)系統(tǒng)之外的另一個系統(tǒng))。用例是能夠向用戶提供有價值結(jié)果的系統(tǒng)中的一種功能。所有的用例合在一起構(gòu)成用例模型。?特點:①確定系統(tǒng)需求的工具,傳統(tǒng)的系統(tǒng)功能說明:系統(tǒng)應(yīng)該做什么?用例模型:增加三個詞foreachuser。②驅(qū)動軟件開發(fā)過程,RUP三大特點中第一大特點為“用例驅(qū)動”。構(gòu)架是系統(tǒng)在其所處環(huán)境中最高層次的概念。軟件系統(tǒng)的構(gòu)架是指通過接口交互的重要構(gòu)件的組織和結(jié)構(gòu),這些構(gòu)件又由一些更小的構(gòu)件和接口組成。RUP三大特點中第二大特點為''以構(gòu)架為中心”工作流程是在業(yè)務(wù)中執(zhí)行的活動序列,它對于業(yè)務(wù)主角個體生成一個可見值結(jié)果。迭代是指帶有已建立基線的計劃和評估準則的獨特活動序列,迭代生成內(nèi)部或外部的發(fā)布版本。增量是指在后續(xù)迭代結(jié)束后,兩個發(fā)布版本之間存在的差異或差值。RUP三大特點中第三大特點為“迭代和增量的過程”。在軟件過程組織的環(huán)境中,個人或協(xié)同工作的小組的行為和職責(zé)定義為角色,角色代表項目中個人承擔的作用,并確定了如何完成工作?;顒邮且蠼巧珗?zhí)行的工作單元。工件是指一條信息,該信息:由過程生成、修改或使用;定義了職責(zé)范圍;受到版本控制。里程碑是迭代正式結(jié)束的時間點,該時間點與發(fā)布時間點相對應(yīng)。階段是指項目相鄰兩個主要里程碑之間的時間段,在此期間要實現(xiàn)一組既定的目標、完成工件并決定是否進入下一階段。RUP二維結(jié)構(gòu)生命周期:橫軸通過時間組織,體現(xiàn)開發(fā)過程的動態(tài)結(jié)構(gòu)。術(shù)語主要包括階段、里程碑、迭代和增量。縱軸將內(nèi)容組織為邏輯活動,體現(xiàn)開發(fā)過程的靜態(tài)結(jié)構(gòu),術(shù)語主要包括工作流程、活動、角色、工件。RUP靜態(tài)結(jié)構(gòu):九個核心工作流程。工作流程代表了所有角色、活動與工件的邏輯分組情況,即軟件過程模式中的三個要素。九個核心工作流程組成:核心過程工作流程:前6個,核心支持工作流程:后3個。①業(yè)務(wù)建模:產(chǎn)生的主要工件為業(yè)務(wù)模型;②需求:用例方法:對需要的功能和約束進行提取、組織、文檔化,理解系統(tǒng)所解決問題的定義和范圍。產(chǎn)生的主要工件為用例模型,用戶界面模型;③分析設(shè)計:以構(gòu)架設(shè)計為中心:產(chǎn)品的適應(yīng)性、可擴展性。產(chǎn)生的主要工件為一個設(shè)計模型、一個分析模型(可選)。④實現(xiàn):產(chǎn)生的主要工件為實施模型(模型元素包括實施子系統(tǒng)和構(gòu)件)。⑤測試:產(chǎn)生的主要工件為測試模型(模型元素包括測試用例、測試過程和測試構(gòu)件)+測試結(jié)果。⑥部署:產(chǎn)生的主要工件為產(chǎn)品的一個版本+文檔培訓(xùn)資料。⑦配置和變更管理:產(chǎn)生的主要工件為配置管理計劃、變更請求、項目存儲庫和工作區(qū)。⑧項目管理:產(chǎn)生的主要工件為商業(yè)理由、迭代計劃、風(fēng)險管理計劃、質(zhì)量保證計劃及相應(yīng)的評估文檔。⑨環(huán)境:產(chǎn)生的主要工件為工作流程指南、工具、工具指南。RUP動態(tài)結(jié)構(gòu):四個階段。每個階段由一次或多次迭代完成,迭代過程是受控的。①先啟階段:目標:建立業(yè)務(wù)用例、確定項目的邊界,結(jié)束里程碑:生命周期目標里程碑。②精化階段:目標:建立穩(wěn)定的構(gòu)架、編制項目計劃、淘汰項目中最高風(fēng)險的元素,結(jié)束里程碑:生命周期構(gòu)架里程碑。③構(gòu)建階段:目標:所有構(gòu)件和應(yīng)用程序功能被開發(fā)并集成為產(chǎn)品、所有的功能被詳盡的測試,結(jié)束里程碑:最初操作性能里程碑。④產(chǎn)品化階段:目標:將軟件產(chǎn)品交付給用戶群體,結(jié)束里程碑:產(chǎn)品發(fā)布里程碑。RUP與螺旋模型異同點:相同點:二維迭代特性。重復(fù)一系列組成系統(tǒng)生命周期的循環(huán);每次循環(huán)的結(jié)束是向用戶交付產(chǎn)品的一個運行版本;每個循環(huán)由若干次迭代組成;每次迭代需要進行風(fēng)險分析處理;每次迭代結(jié)束的標志是交付一個增量。螺旋模型:每次迭代歷經(jīng)笛卡兒坐標系中四個象限的四個方面活動,RUP:每次迭代歷經(jīng)九個核心工作流程中的若干個。不同點:螺旋模型未給出每次迭代過程結(jié)束交付的增量原型的具體要求;也未給出不同次迭代在歷經(jīng)的笛卡兒坐標系中四個象限的四個方面活動的內(nèi)容與重點的不同。RUP將整個生命周期劃分為四個階段,明確給出了每個階段內(nèi)的若干次迭代過程完成后交付的增量的具體要求,即四個階段的主要里程碑——生命周期目標里程碑、生命周期構(gòu)架里程碑、最初操作性能里程碑和產(chǎn)品發(fā)布里程碑;同時詳細闡述了不同階段中的不同迭代過程歷經(jīng)的九大核心工作流程中活動內(nèi)容的重點和強度的不同;提供了對每次迭代過程中不同核心工作流程活動的并行化支持。RUP的二維生命周期結(jié)構(gòu)對“迭代”意義的體現(xiàn)比螺旋模型更深刻、具體、詳盡、全面,更具可操作性。RUP的優(yōu)點:相對瀑布類模型:將成本風(fēng)險進一步降低為獲得一次增量所需費用;進一步降低了產(chǎn)品不能按計劃投放市場的風(fēng)險;使項目開發(fā)更能適應(yīng)項目需求的變化。相對螺旋類模型:用于指導(dǎo)需求不明確、不穩(wěn)定的項目開發(fā)時具有更強的可操作性。RUP人員一一角色:分析員、開發(fā)人員、測試員、經(jīng)理、其他角色。角色的意義:將角色與個體區(qū)分開。某種角色:一個或多個相互協(xié)作的個體完成,一個個體:擔任一種或多種角色。制定迭代計劃:確定每個階段、每個工作流程中需要的角色;制定人員計劃:考慮人員的技能、能力經(jīng)驗,將一個或多個角色分配給一個適合的人員完成。有效提高了項目中人力資源的利用率。缺陷:論述不夠深入,忽略了角色的質(zhì)量,未給出角色的組織管理方式、角色間的相互地位關(guān)系和交互方式。體現(xiàn)過程可操作性的一個重要方面,RUP未給出。RUP方法:(1)用例及用例驅(qū)動。用例是能夠向用戶提供有價值結(jié)果的系統(tǒng)中的一種功能。所有的用例合在一起構(gòu)成用例模型。采用用例的兩個原因:①用例被證明是捕獲需求的一種有效方法。達到需求捕獲的第一個目標:發(fā)現(xiàn)多樣性的需求(傳統(tǒng)的系統(tǒng)功能說明:系統(tǒng)應(yīng)該做什么?用例模型:增加三個詞foreachuser),達到需求捕獲的第二個目標:以適用于用戶和開發(fā)人員的方式加以表示;②用例驅(qū)動整個過程。(2)以構(gòu)架為中心。構(gòu)架描述:5個視圖:用例模型視圖、分析模型視圖、設(shè)計模型視圖、實施模型視圖、實現(xiàn)模型視圖。每個視圖是對應(yīng)模型的精華與核心部分。意義:①理解系統(tǒng),②組織開發(fā),③鼓勵重用和進化系統(tǒng)。(3)在面向?qū)ο蟮姆治鲈O(shè)計中采用UML進行可視化建模。(4)面向?qū)ο蟮脑O(shè)計與構(gòu)件實現(xiàn)。RUP產(chǎn)品一一件:定義:項目期間生成的中間或最終產(chǎn)品。工件類型:根據(jù)RUP的各工作流程:劃分為業(yè)務(wù)建模工件、需求工件、分析設(shè)計工件、實施工件、測試工件、部署工件、配置與變更管理工件、項目管理工件、環(huán)境工件;根據(jù)物流方向:劃分為輸入工件、輸出工件和輔助工件;根據(jù)存在形式:劃分為模型、模型元素、文檔、源代碼、可執(zhí)行文件。RUP特點:優(yōu)點:作為一種軟件過程:RUP具有二維迭代性,有利于降低風(fēng)險、適應(yīng)需求變化;RUP是可配置的過程,具有通用性;作為一種軟件過程模式:相對傳統(tǒng)的軟件生命周期模型具有較強的可操作性;作為一種軟件過程產(chǎn)品:具有實用性、可操作性與可實現(xiàn)性。缺陷:與軟件過程模式配置操作相關(guān)的因素①軟件過程模式中生命周期、人員、方法、產(chǎn)品四大要素之間的相互關(guān)系和相對優(yōu)先級;②各生命周期元素間的相互關(guān)系和相對優(yōu)先級;③人員間的協(xié)作關(guān)系與協(xié)作方式、人員的質(zhì)量、各種人員的相對優(yōu)先級;④各種方法間的相互關(guān)系及相對優(yōu)先級;⑤各種產(chǎn)品的相對優(yōu)先級。結(jié)論:RUP是一個具有突出優(yōu)點的軟件過程模式;RUP還很不完整,在實際應(yīng)用中仍需進一步吸收其它優(yōu)秀的軟件開發(fā)實踐經(jīng)驗以對其進行補充和完善。第3章敏捷過程1?什么是AP:敏捷軟件開發(fā)宣言:軟件團隊具有快速工作、快速響應(yīng)變化的能力,制訂了4條基本價值觀和12條原則。敏捷過程(AgileProcess)是一種典型的軟件過程模式,對軟件過程模式中的四大要素(生命周期、人員、方法、產(chǎn)品)及相互關(guān)系均進行了論述。AP流派:極限編程XP、SCRUM、動態(tài)系統(tǒng)開發(fā)方法DSDM、水晶系列方法、開放式源碼、適配性軟件開發(fā)ASD、適配性軟件開發(fā)ASD。AP的4條價值觀:①個體和交互勝過過程和工具。人是軟件項目獲得成功最為重要的因素,當然,不好的過程和工具也可以使最優(yōu)秀的團隊成員失去效用、合作、溝通以及交互能力要比單純的軟件編程能力更為重要;合適的工具對于成功來說非常重要,工具的作用不可被過份地夸大,建議從使用小的工具開始。結(jié)論:團隊的構(gòu)建(包括個體、交互等)要比項目環(huán)境(包括過程、工具)的構(gòu)建重要得多;應(yīng)該首先致力于構(gòu)建團隊,然后再讓團隊基于需要來配置環(huán)境。②可以工作的軟件勝過面面俱到的文檔。軟件的重要性:交付給用戶可以工作的軟件而不是文檔,否則應(yīng)該稱之為文檔開發(fā)而不是軟件開發(fā)。文檔的作用:沒有文檔的軟件是一種災(zāi)難,過多的面面俱到的文檔比過少的文檔更糟。準則:軟件開發(fā)的主要和中心活動是創(chuàng)建可以工作的軟件;直到迫切需要并且意義重大時,才進行文檔編制;編制的內(nèi)部文檔應(yīng)盡量短小并且主題突出。③客戶合作勝過合同談判??蛻舨豢赡茏龅揭淮涡缘貙⑺麄兊男枨笸暾逦乇硎鲈诤贤斨校嚎蛻粜枨蟮亩鄻有裕蛻粜枨筮€可能隨時發(fā)生變化。全方位的滿足客戶需求的有效途徑:開發(fā)團隊與客戶緊密協(xié)作,為開發(fā)團隊和客戶的協(xié)同工作方式提供指導(dǎo)的合同是最好的合同。④響應(yīng)變化勝過遵循計劃。變化是軟件開發(fā)中存在的現(xiàn)實:商務(wù)環(huán)境可能會變化,這會引起需求的變動;隨著系統(tǒng)逐漸開始運做,項目關(guān)系人(包括開發(fā)人員與客戶)對系統(tǒng)的理解也會發(fā)生變化;技術(shù)隨著時間也在變化。響應(yīng)變化的有效途徑之一是制定靈活可塑的計劃:制定計劃的策略——細致度逐漸降低的計劃。*4.AP的12條原則:①最優(yōu)先要做的是通過盡早的、持續(xù)的交付有價值的軟件來使客戶滿意。②即使到了開發(fā)的后期,也歡迎改變需求,敏捷過程利用變化來為客戶創(chuàng)造競爭優(yōu)勢。③經(jīng)常性交付可以工作的軟件,交付的間隔可以從幾個星期到幾個月,交付的時間間隔越短越好。④在整個項目開發(fā)期間,商務(wù)人員和開發(fā)人員必須天天都工作在一起。⑤圍繞被激勵起來的個體來構(gòu)建項目,給他們提供所需的環(huán)境和支持,并且信任他們能夠完成工作。⑥在團隊內(nèi)部,最具有效果并且富有效率的傳遞信息的方法,就是面對面的交談。⑦工作的軟件是首要的進度度量標準。⑧敏捷過程提倡可持續(xù)的開發(fā)速度,責(zé)任人、開發(fā)者和用戶應(yīng)該能夠保持一個長期的、恒定的開發(fā)速度。⑨不斷地關(guān)注優(yōu)秀設(shè)計的技能和好的設(shè)計會增強敏捷能力。⑩簡單一一使未完成的工作最大化的藝術(shù)一一是根本的。?最好的構(gòu)架、需求和設(shè)計出自于自組織的團隊。?每隔一定時間,團隊會在如何才能更有效地工作方面進行反省,然后相應(yīng)地對自己的行為進行調(diào)整。*5.XP實踐:①客戶作為團隊成員。②用戶素材。③短交付周期。④驗收測試。⑤結(jié)對編程(由兩個開發(fā)人員在同一臺電腦上共同編寫解決同一問題的代碼,通常一個人負責(zé)編碼,而另一個負責(zé)保證代碼的正確性與可讀性。作用:結(jié)對編程是一種非正式的同級評審,它要求成對編程的兩個開發(fā)人員在性格和技能上應(yīng)該相互匹配)⑥測試驅(qū)動開發(fā)(強調(diào)“測試先行”RUP對測試也是非常的重視,只是RUP和XP兩者對于測試在整個項目開發(fā)周期內(nèi)首先出現(xiàn)的位置處理不同)。⑦集體所有權(quán)。⑧持續(xù)集成(提倡在一天中集成系統(tǒng)多次,而且隨著需求的改變,要不斷的進行回歸測試,持續(xù)集成不是XP專有的最佳實踐,微軟公司就有每日編譯的成功實踐)。⑨可持續(xù)的開發(fā)速度。⑩開放的工作空間。?計劃游戲(計劃是持續(xù)的,循序漸進的。根據(jù)項目的進展來進行項目計劃的調(diào)整,一成不變的計劃是不存在)。?簡單的設(shè)計。?重構(gòu)(指在不改變系統(tǒng)行為的前提下,重新調(diào)整、優(yōu)化系統(tǒng)的內(nèi)部結(jié)構(gòu)以減少復(fù)雜性、消除冗余、增加靈活性和提高性能。重構(gòu)不是XP所特有的行為)。?隱喻(將隱喻看成整個系統(tǒng)聯(lián)系在一起的全局視圖、系統(tǒng)的未來影像,RUP的構(gòu)架視圖)。AP的生命周期:敏捷過程是一個一維的迭代過程。該過程中的每一個生命周期循環(huán)交付一個有價值的軟件版本,各循環(huán)可持續(xù)進行。RUP的二維雙重的迭代過程:RUP整個過程是若干次生命周期的不斷循環(huán);每個循環(huán)包括先啟、精化、構(gòu)建和產(chǎn)品化四個階段,每個階段由一次或多次迭代完成,每次迭代可能經(jīng)歷九個核心工作流程中的若干個;項目進度衡量的首要標準是各階段的主要里程碑,包括生命周期目標里程碑、生命周期構(gòu)架里程碑、最初操作性能里程碑和產(chǎn)品發(fā)布里程碑。AP相對RUP:具有對變化和不確定性的“更快速、更敏捷”的反應(yīng)特性;快速的同時仍保持可持續(xù)性;該特性能較好地適應(yīng)商業(yè)競爭環(huán)境下對小型項目提出的有限開發(fā)時間的約束。*7.AP的人員(1)客戶角色的重要性:對客戶角色重要性進行突出強調(diào);RUP:無。(2)個體間的相互關(guān)系和協(xié)作方式:相互關(guān)系:個體相互的地位關(guān)系是平等的,職責(zé)是共同的。協(xié)作方式:首要協(xié)作交互方式為面對面的交談;也編寫文檔,但文檔僅作為輔助交互方式。RUP:未給出個體間地位關(guān)系,協(xié)作方式為“形式化的文檔-一模型”這一書面形式而非口頭交談方式。結(jié)合AP和RUP:個體間的職責(zé)進行明確分工,同時個體間為平等協(xié)作關(guān)系;個體間的交互方式首選交談,但在必要情況下,如交談的結(jié)果將作為設(shè)計開發(fā)的依據(jù),則有必要編寫文檔或創(chuàng)建模型,以書面的形式記錄交談的結(jié)果。AP的方法:(1)動態(tài)滿足需求一一歡迎變化、與客戶合作到響應(yīng)變化。步驟一:歡迎變化;步驟二:與客戶合作;步驟三:響應(yīng)變化。(2)簡單化。區(qū)別:RUP:考慮產(chǎn)品的適應(yīng)性、可擴展性與可重用性等高性能特性,提倡以構(gòu)架為中心的設(shè)計方法,要求構(gòu)架必須留有實現(xiàn)現(xiàn)在和未來需要的所有用例空間。AP:要求在設(shè)計階段盡可能的識別出最簡單的構(gòu)架。聯(lián)系:是對產(chǎn)品不同質(zhì)量要求的不同的應(yīng)對策略。簡單質(zhì)量要求環(huán)境:在可預(yù)見的最近幾次生命周期內(nèi),對產(chǎn)品質(zhì)量僅為無缺陷要求,而對適應(yīng)性、可擴展性、可重用性等高性能指標沒有要求,采用AP的簡單化設(shè)計方法,以達到快速開發(fā)的目的。復(fù)雜質(zhì)量要求環(huán)境:在可預(yù)見的最近幾次生命周期內(nèi),對產(chǎn)品質(zhì)量不僅為無缺陷要求,而且對適應(yīng)性、可擴展性、可重用性等高性能指標可能有若干要求。采用RUP的以構(gòu)架為中心設(shè)計方法,以避免可能發(fā)生的系統(tǒng)整體重構(gòu)造成最終開發(fā)效率的極速下降。(3)團隊持續(xù)自我反省。AP的產(chǎn)品:(1)各類產(chǎn)品的優(yōu)先級AP:第2條價值觀,可以工作的軟件勝過面面俱到的文檔,即可以工作的軟件在過程各類產(chǎn)品的重要性方面擁有最高的優(yōu)先級。RUP:強調(diào)創(chuàng)建和維護形式化的文檔一一模型,而非文字化的文檔,但就模型與軟件兩者的優(yōu)先級未給出論述。AP&RUP融合后的各類產(chǎn)品之間優(yōu)先級的結(jié)論:軟件開發(fā)的主要和中心活動就是創(chuàng)建可以工作的軟件;直到迫切需要且意義重大時,才進行文檔編制;編制的內(nèi)部文檔應(yīng)盡量短小并且主題突出,滿足這種要求的最好的文檔形式是模型。(2)產(chǎn)品的功能規(guī)模和質(zhì)量要求:盡量簡單化。AP四大要素的關(guān)系:第1條價值觀和第1、9條原則中即開宗明義的指出,過程最優(yōu)先要做的是盡早的、持續(xù)的交付有價值的軟件產(chǎn)品,在這一交付過程中,個體與交互勝過過程與工具:這四大要素中,前面三種要素的中心目標是服務(wù)于第四大要素,即交付可以工作的軟件產(chǎn)品;就前面三種要素的重要性而言,個體具有最高的優(yōu)先級地位。AP特點:優(yōu)點:針對商業(yè)環(huán)境下通常具有有限資源和有限時間約束的小型項目提出了一些獨具特色的、操作性較強的解決方案;RUP:提供的是理想開發(fā)環(huán)境下軟件過程的一種完整且完美的模式,但對商業(yè)環(huán)境具有有限資源和有限時間約束的項目未能給出具體完整的配置方案。缺點:作為軟件過程模式AP遠不及RUP全面完整。相對RUP,AP在人員、方法、產(chǎn)品等方面的論述遠不及RUP全面詳細。結(jié)論:AP可作為對RUP的一種補充和完善。第4章微軟過程1.什么是MP:從微軟解決方案框架(MSF)中抽取出項目開發(fā)準則中的過程模型和組織模型,構(gòu)成了一套軟件過程模式。內(nèi)容涵蓋軟件過程中的過程、人員及組織、方法、產(chǎn)品等不同方面。*2.MP術(shù)語:項目前景是對項目要解決什么問題的開放性描述,它代表項目的遠景目標。項目范圍描述的則是在項目的限制條件內(nèi),需要完成哪些具體的目標,這主要是指所有特定的近期目標而言。功能說明書闡釋了軟件每一個特性的功能和執(zhí)行方式,以及所有特性的組合關(guān)系和整體架構(gòu),包括單頁和詳細兩種形式。程序經(jīng)理的職責(zé)是在規(guī)定的項目資源、期限等限制條件下,確保產(chǎn)品能夠如期發(fā)布。程序經(jīng)理不同于傳統(tǒng)的項目經(jīng)理,微軟的團隊組織結(jié)構(gòu)中,六個組隊角色的地位是相互平行、相輔相成,程序經(jīng)理只是項目開發(fā)過程的組織者、管理者和決策者,不是項目的領(lǐng)導(dǎo)者。*3.MP的過程原則:①制定計劃時兼顧未來的不確定因素(這一原則與AP第4條價值觀“響應(yīng)變化勝過遵循計劃”異曲同工);②通過有效的風(fēng)險管理減少不確定因素的影響(對照而言,RUP提出的風(fēng)險管理方法為在每次迭代中都要解決最突出的風(fēng)險問題,兩者互補);③經(jīng)常生成過渡版本并進行快速測試來提高產(chǎn)品的穩(wěn)定性及可預(yù)測性(每日生成制度:在最大程度上保證整個產(chǎn)品開發(fā)過程可管理、可預(yù)期,并能增強產(chǎn)品的穩(wěn)定性,類似AP的持續(xù)集成);④快速循環(huán)、遞進的開發(fā)過程(和敏捷過程所強調(diào)的不斷重復(fù)產(chǎn)品的生命周期、以遞進的方式推出版本的要求相似);⑤從產(chǎn)品特性和成本控制出發(fā)創(chuàng)造性地工作;⑥創(chuàng)建確定的進度表(在具體制定項目進度表方面,借鑒AP的策略,即制定一種細致度逐漸降低的進度計劃以保持足夠的靈活性);⑦使用小型項目組并發(fā)完成工作,并設(shè)置多個同步點;⑧將大型項目分解成多個可管理的單元,以便更快地發(fā)布產(chǎn)品;⑨用產(chǎn)品的前景目標和概要說明指導(dǎo)項目開發(fā)工作一一先基線化,后凍結(jié)(凍結(jié)思想與AP不同,AP倡導(dǎo)即使到了開發(fā)的后期,也歡迎改變需求);⑩避免產(chǎn)品走形(對照而言,RUP中避免產(chǎn)品走形的方法是用例驅(qū)動);?使用原型驗證概念,進行開發(fā)前的測試;?零缺陷觀念(零缺陷并不意味著產(chǎn)品中沒有Bug,首先按零缺陷這一高標準進行要求,具體實施時,項目組在產(chǎn)品的每一個階段、在發(fā)布產(chǎn)品的每一個版本之前,都對已發(fā)現(xiàn)的產(chǎn)品Bug進行了有效的管理和控制,改正了影響產(chǎn)品使用的Bug,對不影響產(chǎn)品使用、且因資源有限無法及時修改的Bug進行跟蹤和記錄,確保使產(chǎn)品中所有已發(fā)現(xiàn)Bug都在項目組的控制范圍之內(nèi),都可以在適當?shù)臅r機得到修正)。?非責(zé)難式的里程碑評審會(MP的里程碑與RUP的里程碑的思想幾乎是一致的)。*4.組隊原則:①小型的、多元化的項目組(AP鼓勵的也是一種小型化的項目組)。②角色依賴和職責(zé)共享(與AP第11條原則中提出的“最好的構(gòu)架、需求、設(shè)計出自于自組織的團隊”思想基本吻合)③專深的技術(shù)水平和業(yè)務(wù)技能。④以產(chǎn)品發(fā)布為中心。⑤明確的目標。⑥客戶的主動參與(與AP中強調(diào)客戶這一角色重要性的目的是一致的;微軟設(shè)置產(chǎn)品管理角色方法相對AP的與客戶天天工作在一起的方法更具可實現(xiàn)性)。⑦分享產(chǎn)品的前景。⑧所有人都參與設(shè)計(與AP第11條原則“最好的構(gòu)架、需求和設(shè)計出自于自組織的用戶”是一致的)。⑨認真從過去的項目中吸取經(jīng)驗。⑩共同管理、共同決策。?項目組成員在同一地點辦公。?大型項目組也像小型項目組一樣運轉(zhuǎn)。MP的生命周期:每個生命周期循環(huán)分為五個階段:構(gòu)想階段、計劃階段、開發(fā)階段、穩(wěn)定階段和發(fā)布階段。相對RUP,MP可視為RUP的一個精簡配置版本。整個過程由若干生命周期持續(xù)遞進循環(huán),每個循環(huán)由若干階段組成,且各階段之間擴充為具有緩沖時間,各階段的對應(yīng)關(guān)系為:先啟階段完成構(gòu)想,精化階段完成計劃,構(gòu)建階段完成開發(fā)和穩(wěn)定,產(chǎn)品化階段完成發(fā)布。每個階段精簡為一次迭代,每次迭代經(jīng)歷若干個工作流程,具體為:先啟階段主要經(jīng)歷業(yè)務(wù)建模、需求、項目管理;精化階段主要經(jīng)歷業(yè)務(wù)建模、需求、分析設(shè)計、項目管理;構(gòu)建階段主要經(jīng)歷需求、分析設(shè)計、實現(xiàn)、測試;產(chǎn)品化階段:主要經(jīng)歷部署、配置變更管理和項目管理。相對AP,MP是前者的一個擴充版本,擴充了其每個生命周期內(nèi)的各階段的具體運作流程。MP人員:人員分工:職責(zé)與任務(wù)分配類似按照RUP中的“角色”概念進行。人員組織管理:矩陣結(jié)構(gòu)。橫軸按不同的專業(yè)技能劃分的角色,縱軸是由來自不同角色組中的各個角色組成的項目組。六種角色:產(chǎn)品管理角色、程序管理角色、開發(fā)角色、測試角色、用戶體驗角色、發(fā)布管理角色。MP最具特色角色一一程序管理和產(chǎn)品管理。職責(zé)設(shè)置:將傳統(tǒng)項目經(jīng)理的職責(zé)一分為二。對外的用戶需求管理職能交與產(chǎn)品經(jīng)理完成,項目組內(nèi)部的綜合管理職能交與程序經(jīng)理完成。產(chǎn)品經(jīng)理的職責(zé):管理用戶需求;程序經(jīng)理的職責(zé):系統(tǒng)設(shè)計和項目組內(nèi)部管理,包括編寫并管理產(chǎn)品設(shè)計文檔、組織項目組成員就開發(fā)相關(guān)問題進行交流和溝通、協(xié)調(diào)項目組日常事務(wù)設(shè)置意義:以技術(shù)為基線進行管理職責(zé)劃分①有利于實現(xiàn)專家式管理;②保證兩者的獨立性和相互制約性,有利于商業(yè)需求和技術(shù)細節(jié)更好的結(jié)合。MP角色間的關(guān)系:對等環(huán)行項目結(jié)構(gòu)。相互地位關(guān)系是對等,關(guān)鍵協(xié)作方式為交流與溝通。MP角色合并:原則:項目組內(nèi)的開發(fā)人員不能兼任其它角色,不要試圖合并兩個有明顯利益沖突或制約關(guān)系的職能角色。結(jié)論:一個最小項目組可以只有三個成員:產(chǎn)品經(jīng)理、程序經(jīng)理和開發(fā)工程師。其中產(chǎn)品經(jīng)理兼任測試和用戶體驗角色,程序經(jīng)理兼任發(fā)布管理角色。*10.MP產(chǎn)品部門:“1+3”的結(jié)構(gòu):“1”即一個產(chǎn)品部門總經(jīng)理,“3”即三個部門經(jīng)理,分別是程序經(jīng)理部經(jīng)理、開發(fā)部經(jīng)理和測試部經(jīng)理,這三個部門經(jīng)理平級,都直接向產(chǎn)品部門總經(jīng)理報告。垂直式的專家管理模式:每個部門經(jīng)理管理幾個組長,每個組長管理三到五個具體工作人員。構(gòu)成微軟的“三架馬車”:對項目成功起關(guān)鍵性支撐作用。三個部門的設(shè)置對應(yīng)每個項目組中最重要的三種角色——程序管理、開發(fā)和測試;這三類角色是每個項目組無論怎樣精簡也必須的。11.MP人員特點:RUP:給出了人員角色種類劃分,但未指出各角色間地位和工作關(guān)系。AP:給出了人員間相互關(guān)系和交流協(xié)作關(guān)系,但未能給人員職責(zé)的劃分準則。MP:以上兩種過程優(yōu)點的結(jié)合和進一步深化發(fā)展。角色劃分方面:產(chǎn)品管理和程序經(jīng)理兩權(quán)分立;角色相互地位和交互關(guān)系:相互平等,交流和溝通;角色分配方面:提出了針對有限人員限制條件下的角色合并原則;項目組的規(guī)模和人員配備與管理方式上:指出提出了由專家式行政管理和小型化、多元化項目組組隊方式構(gòu)成的矩陣結(jié)構(gòu)。MP特色及意義:項目組由專業(yè)職責(zé)劃分清晰地各對等角色組成,各角色相互配合、同時又是相互制約;人員的行政管理是專家式管理;專業(yè)人才地培養(yǎng)發(fā)展遵循不同的業(yè)務(wù)(職務(wù)頭銜與行政級別并不能直接掛鉤)。MP的方法:(1)構(gòu)想階段:①確定項目前景和項目范圍兩個項目目標。項目范圍:是項目近期的具體目標,即第一次生命周期內(nèi)的目標;項目前景:是項目的遠景目標,即第二次及以后若干次生命周期內(nèi)的目標。②動態(tài)滿足需求——先基線化、后凍結(jié)。在開發(fā)過程的前期歡迎變化;在開發(fā)過程的后期階段(穩(wěn)定階段及以后),對所有配置項進行凍結(jié),一般不再允許修改。與AP比較:對需求變化的態(tài)度:歡迎變化;AP:在第2條原則中指出,“即使到了開發(fā)的后期也歡迎改變需求”MP:對變化在后期進行凍結(jié)的策略應(yīng)該更是現(xiàn)實性,因為到開發(fā)的后期還要響應(yīng)變化,其成本代價和風(fēng)險代價均太高,明智的策略不如將這一需求變化留至下一個版本的開發(fā)中實現(xiàn)。(2)計劃階段:以產(chǎn)品特性及其優(yōu)先級指導(dǎo)整個項目。①提高了產(chǎn)品的競爭力;②降低了產(chǎn)品開發(fā)各階段的風(fēng)險。(3)開發(fā)階段:①代碼優(yōu)化:代碼的性能包括運行效率、安全性、穩(wěn)定性、可理解性、可維護性等多個方面。②高信度計算。③源代碼管理。建立源代碼的管理庫,每日Check-in進行持續(xù)更新和集成。④每日編譯生成。類同AP的持續(xù)集成(提倡在一天中集成系統(tǒng)多次,而且隨著需求的改變,要不斷的進行回歸測試)。⑤手工測試與自動測試結(jié)合。⑥內(nèi)部測試與外部測試結(jié)合。MP產(chǎn)品:①各類文檔:如前景/范圍說明書、功能說明書、項目計劃、總結(jié)報告等。②源代碼;③可執(zhí)行文件;④相應(yīng)的文檔代碼庫。各類產(chǎn)品的優(yōu)先級未進行專門闡述。產(chǎn)品的功能與性能:以產(chǎn)品特性及優(yōu)先級指導(dǎo)整個項目。MP特點:過程的生命周期進度、人員及方法工具等項目資源、產(chǎn)品的功能和性能之間存在一種相互制約的均衡三角形關(guān)系。任何對三角形一邊的改變都將導(dǎo)致三角形另外一邊或兩邊的變化,因為只有這樣才能保持三角形關(guān)系的均衡。發(fā)布一個符合客戶需求的產(chǎn)品,其關(guān)鍵在于項目組必須在進度、資源、產(chǎn)品功能&性能之間的三角型尋求最佳的平衡點。項目均衡矩陣:有效的項目均衡三角形管理工具,定義了資源、進度和功能&性能三者在需要做出折中時的優(yōu)先級關(guān)系。功能&性能:能接受(不可改變的或是最低要求的)。進度:最佳(必須優(yōu)先考慮、作出最好選擇的)。資源:可調(diào)整(既不是最佳也不是僅能接受,必須根據(jù)情況做出相應(yīng)的調(diào)整,以保持三角形的均衡)。四要素相互關(guān)系特點:相對AP提出的“個體交互勝過過程和工具”這一絕對的觀念,MP四要素之間的均衡關(guān)系總結(jié):①更全面、更具普適性;②不同的項目可根據(jù)項目的具體環(huán)境需要對這四要素做出合適的優(yōu)先級安排、尋求各要素之間的最佳平衡點。第5章最佳軟件過程模式*MP與AP、RUP三者之間關(guān)系:RUP:一個大而全的過程框架,可適應(yīng)于各種具有不同項目環(huán)境類型的項目開發(fā),包括理想的項目開發(fā)環(huán)境和具有有限資源與時間約束的項目環(huán)境。AP:針對商業(yè)環(huán)境中具有有限資源和時間進度限制的小型項目提出的一種軟件過程模式,對RUP的進行了多方面的有益補充和完善。MP:另一種針對商業(yè)環(huá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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論