高級軟件開發(fā)過程_第1頁
高級軟件開發(fā)過程_第2頁
高級軟件開發(fā)過程_第3頁
高級軟件開發(fā)過程_第4頁
高級軟件開發(fā)過程_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(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)的管理工作)現(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)系:軟件生命周期模型包含與軟件過程模式中。軟件過程能力評估標準和改進方案:CMM(能力成熟度模型):初始級、可重復(fù)級、已定義級、已定量管理級、優(yōu)化級。IS09000;6o。第2章Rational統(tǒng)一過程什么是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é)同工作的小組的行為和職責定義為角色,角色代表項目中個人承擔的作用,并確定了如何完成工作?;顒邮且蠼巧珗?zhí)行的工作單元。工件是指一條信息,該信息:由過程生成、修改或使用;定義了職責范圍;受到版本控制。里程碑是迭代正式結(jié)束的時間點,該時間點與發(fā)布時間點相對應(yīng)。階段是指項目相鄰兩個主要里程碑之間的時間段,在此期間要實現(xiàn)一組既定的目標、完成工件并決定是否進入下一階段。RUP二維結(jié)構(gòu)生命周期:橫軸通過時間組織,體現(xiàn)開發(fā)過程的動態(tài)結(jié)構(gòu)。術(shù)語主要包括階段、里程碑、迭代和增量??v軸將內(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è)理由、迭代計劃、風險管理計劃、質(zhì)量保證計劃及相應(yīng)的評估文檔。環(huán)境:產(chǎn)生的主要工件為工作流程指南、工具、工具指南。RUP動態(tài)結(jié)構(gòu):四個階段。每個階段由一次或多次迭代完成,迭代過程是受控的。先啟階段:目標:建立業(yè)務(wù)用例、確定項目的邊界,結(jié)束里程碑:生命周期目標里程碑。精化階段:目標:建立穩(wěn)定的構(gòu)架、編制項目計劃、淘汰項目中最高風險的元素,結(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)由若干次迭代組成;每次迭代需要進行風險分析處理;每次迭代結(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)點:相對瀑布類模型:將成本風險進一步降低為獲得一次增量所需費用;進一步降低了產(chǎn)品不能按計劃投放市場的風險;使項目開發(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具有二維迭代性,有利于降低風險、適應(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章敏捷過程什么是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ā)速度,責任人、開發(fā)者和用戶應(yīng)該能夠保持一個長期的、恒定的開發(fā)速度。不斷地關(guān)注優(yōu)秀設(shè)計的技能和好的設(shè)計會增強敏捷能力。簡單——使未完成的工作最大化的藝術(shù)——是根本的。?最好的構(gòu)架、需求和設(shè)計出自于自組織的團隊。?每隔一定時間,團隊會在如何才能更有效地工作方面進行反省,然后相應(yīng)地對自己的行為進行調(diào)整。*5.XP實踐:客戶作為團隊成員。用戶素材。短交付周期。驗收測試。結(jié)對編程(由兩個開發(fā)人員在同一臺電腦上共同編寫解決同一問題的代碼,通常一個人負責編碼,而另一個負責保證代碼的正確性與可讀性。作用:結(jié)對編程是一種非正式的同級評審,它要求成對編程的兩個開發(fā)人員在性格和技能上應(yīng)該相互匹配)。測試驅(qū)動開發(fā)(強調(diào)“測試先行:RUP對測試也是非常的重視,只是RUP和XP兩者對于測試在整個項目開發(fā)周期內(nèi)首先出現(xiàn)的位置處理不同)。集體所有權(quán)。持續(xù)集成(提倡在一天中集成系統(tǒng)多次,而且隨著需求的改變,要不斷的進行回歸測試,持續(xù)集成不是XP專有的最佳實踐,微軟公司就有每日編譯的成功實踐)??沙掷m(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)架視圖)6.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)系是平等的,職責是共同的。協(xié)作方式:首要協(xié)作交互方式為面對面的交談;也編寫文檔,但文檔僅作為輔助交互方式ORUP:未給出個體間地位關(guān)系,協(xié)作方式為“形式化的文檔——模型”這一書面形式而非口頭交談方式。結(jié)合AP和RUP:個體間的職責進行明確分工,同時個體間為平等協(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條價值觀,可以工

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論