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

下載本文檔

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

文檔簡介

1、software crisis.傳統(tǒng)的軟件開發(fā)方法沒有能夠(1)軟件開發(fā)過程是什么?軟件開發(fā)過程是按照軟件工業(yè)化的標(biāo)準(zhǔn)定義的心之所向,所向披靡?在軟件開發(fā)中必須具有的一系列過程規(guī)范;?軟件開發(fā)過程是定義在軟件中的軟件需求、軟件設(shè)計(jì)、軟件編碼、軟件測試、軟件部署的實(shí)現(xiàn)目 標(biāo)和規(guī)范化的管理方法論;?軟件開發(fā)過程是保證軟件工業(yè)化生產(chǎn)的法典;?軟件開發(fā)過程做的是:定義標(biāo)準(zhǔn)和為了達(dá)到標(biāo)準(zhǔn)的路;?軟件開發(fā)過程要改善的是:軟件開發(fā)的效率和質(zhì)量;?軟件開發(fā)過程的實(shí)現(xiàn)最重要的是:人。(2)大多數(shù)軟件項(xiàng)目失敗的原因:a)不完整、不現(xiàn)實(shí)的項(xiàng)目需求Classical software development meth

2、ods have not solved 解決軟件危機(jī)。A software engineer s job :Make a working plan.制定工作計(jì)劃Carry out it.(Do their work according to this plan)按照此計(jì)劃工作Try his/her best to produce high-quality products.盡最大努力生產(chǎn)出tWj質(zhì)量產(chǎn)品(6)3 Key aspectsa)Quality products高質(zhì)量產(chǎn)品b)Expected costsc)On agreed schedule Summary of PSPj PSP i

3、s a framework designed to teach software engineers to do better workEstimate and plan f track f improve 敏捷開發(fā)的原則:b)對需求的變更束手無策c) 脆弱的架構(gòu)d)采用不成熟的技術(shù)測試的不充分性拙劣的進(jìn)度計(jì)劃和評估缺乏資源h)不具備項(xiàng)目管理方法i) 缺少管理層的支持(3)軟件工程的三個要素:方法、工具和過程(4) A software project failed ifIt is delivered lateIt is runs over the budgetIt does not sati

4、sfy the customer s needIt is of poor qualityquality Quality methods take time to learn and practice,but it will help you in you engineering careerEstablish goals f measure quality - understand the process f change and reure process f measure & analyze the results - recycle improving Identify the tas

5、ks you do(8)敏捷軟件開發(fā)宣言個體和交互勝過過程和工具可以做到工具的軟件勝過面面俱到的文檔客戶合作勝過合同談判 響應(yīng)變化勝過遵循計(jì)劃我們最優(yōu)先要做的是通過盡早的、持續(xù)的交付有價值的軟件來使客戶滿意。盡早交付具有部分功能的系統(tǒng)和質(zhì)量系統(tǒng)之間具有很強(qiáng)的相關(guān)性即使到了開發(fā)的后期,也歡迎改變需求。敏捷過程利用變化來為客戶創(chuàng)造競爭優(yōu)勢。關(guān)于態(tài)度的聲明,敏捷過程的參與者不懼怕變化,努力保持軟件結(jié)構(gòu)的靈活性。經(jīng)常性地交付可以工作的軟件,交付的間隔可以從幾周到幾個月,交付的時間越短越好。關(guān)注的目標(biāo)是交付滿足客戶需要的東西。它們是敏捷實(shí)踐區(qū)別其他過程的特征所在。在整個項(xiàng)目開發(fā)期間,業(yè)務(wù)人員和開發(fā)人員必

6、須天天都在一起工作。有意義的、頻繁的交互,必須對軟件項(xiàng)目進(jìn)行持續(xù)不斷地引導(dǎo)。圍繞被激勵起來的個人來構(gòu)建項(xiàng)目。給他們提供所需要的環(huán)境和支持,并且信任他們能夠完成工作。人被認(rèn)為是項(xiàng)目取得成功的最重要的因素。在團(tuán)隊(duì)內(nèi)部,最具有效果并且富有效率的傳遞信息的方法就是面對面的交談。首要的、默認(rèn)的溝通方式。工作的軟件是首要的進(jìn)度度量標(biāo)準(zhǔn)。敏捷項(xiàng)目通過度量當(dāng)前軟件滿足客戶需求的數(shù)量來度量開發(fā)速度。敏捷過程提倡可持續(xù)的開發(fā)速度。責(zé)任人、開發(fā)者和用戶應(yīng)該能夠保持一個長期、恒定的開發(fā)速度。不是 50米短跑、而是馬拉松。以快速但是可持續(xù)的速度行進(jìn)。不斷關(guān)注優(yōu)秀的技能和好的設(shè)計(jì)會增強(qiáng)敏捷能力。高的產(chǎn)品質(zhì)量是獲得高的開發(fā)

7、速度的關(guān)鍵。保持軟件盡可能的簡潔、健壯是快速開發(fā)軟件的途徑。10、簡單一使未完成的工作最大化的藝術(shù)是根本的。不是構(gòu)建華而不實(shí)的系統(tǒng),更愿意采用和目標(biāo)一致的最簡單的方法。11、最好的架構(gòu)、需求和設(shè)計(jì)出自于自組織的團(tuán)隊(duì)。任務(wù)不是從外部分配給單個團(tuán)隊(duì)成員,而是分配給整個團(tuán)隊(duì),然后再由團(tuán)隊(duì)來確定完成任務(wù)的最好方法。12、每隔一定時間,團(tuán)隊(duì)會在如何才能更有效地工作方面進(jìn)行反省,然后相應(yīng)地對自己的行為進(jìn)行調(diào)整。敏捷團(tuán)隊(duì)會不斷地對團(tuán)隊(duì)的組織方式、規(guī)則、規(guī)范、關(guān)系等進(jìn)行調(diào)整,環(huán)境變化。XP:Values of XP : 價值、內(nèi)容、關(guān)系1.Communication 2.Simplicity 3.Feedba

8、ck 4.CourageXP編程實(shí)際上是由這四個價值所驅(qū)動的,而不是實(shí)踐所驅(qū)動的,也就是說,如果實(shí)現(xiàn)某些XP實(shí)踐,而得不到這四個價值的話,便失去了XP編程的意義。(1)簡單和溝通之間有一種奇妙的相互支持的關(guān)系。溝通得越多,就越清楚哪些工作需要做并能更加確信哪些工作不需要做;系統(tǒng)越簡單,需要的溝通越少,但溝通會更加全面。(2)溝通、簡單和反饋是相互聯(lián)系的;反饋越充分,溝通越容易,系統(tǒng)越簡單,就越容易測試盒提供反饋。(3)溝通支持勇氣,因?yàn)樗鼛砹烁唢L(fēng)險、高回報的試驗(yàn)的可能性;(4)簡單支持勇氣,因?yàn)橛辛艘粋€簡單的系統(tǒng),你就可以比以前勇敢很多,你無意間將其破壞的可能性也大大 減少。(5)勇氣支持簡

9、單,因?yàn)橹灰阌锌赡芎喕到y(tǒng),你就會嘗試。(6)反饋支持勇氣,因?yàn)槿绻惆聪掳粹o就能夠看到測試結(jié)果通過(或不通過,這時你可以將代碼扔掉),那么即使對代碼進(jìn)行根本的改動你也會感覺安全得多。5 個 Basic Principles :.Rapid feedback快速反饋:指開發(fā)人員通過短的迭代周期,得到反饋信息,并迅速查驗(yàn)他們前面的工作是否 滿足客戶要求。.Assume simplicity假定簡單:指將系統(tǒng)開發(fā)中的每個問題以盡量簡單的方法來解決。沒有人能夠準(zhǔn)確預(yù)知未來的需求,因此設(shè)計(jì)只需要滿足現(xiàn)階段的需求即可。3.Incremental change遞增改變:指用一系列的小改變來逐步解決一個問

10、題。這一原則可用于計(jì)劃、開發(fā)和設(shè).Embracing change擁抱變化:指在解決緊迫問題時,采取的一種包容的策略。程序員要明白客戶的要求并不 是固定的,因此功能的優(yōu)先級和功能需求都是在變化的。.Quality work優(yōu)質(zhì)產(chǎn)品:指工作和產(chǎn)品的質(zhì)量是不容忽視的,不可以因?yàn)闀r間而放棄質(zhì)量,并作出讓步。XP的項(xiàng)目過程包括以下 6個階段:答:考察階段、計(jì)劃階段、多次反復(fù)的發(fā)布產(chǎn)品階段、生產(chǎn)化階段、維護(hù)階段、死亡階段XP的最佳實(shí)踐:答:1、計(jì)劃2、發(fā)布小版本3、隱喻4、簡單的設(shè)計(jì)5、測試6、重構(gòu)7、結(jié)對編程8、集體所有權(quán)9、持續(xù)集 成10、40-hour week 11 、現(xiàn)場客戶(客戶作為團(tuán)隊(duì)成員

11、)12、編碼標(biāo)準(zhǔn)13、開放空間14、Just rules結(jié)對編程的優(yōu)點(diǎn):1、所有的設(shè)計(jì)都是由兩個人討論決定的;2、系統(tǒng)的任何一個部分都至少有兩個人熟悉,避免了由于人事更替造成的問題;3、減少了忽略編寫測試用例的幾率,因?yàn)榻Y(jié)對者會互相提醒對方;4、在編寫過程中與不同的人結(jié)對可以進(jìn)一步增強(qiáng)知識與經(jīng)驗(yàn)的共享;5、所有代碼都隨時得到檢驗(yàn);6、兩個程序員可以同時關(guān)注操作層面和理論層面,加強(qiáng)了程序的設(shè)計(jì)。The Rules and Practices : planning、designing 、coding、TestingSCRUM:What is Scrum?1、Scrum是一種靈活的軟件項(xiàng)目管理過程,

12、可以幫助駕馭迭代,遞增的軟件開發(fā)過程。2、Scrum 于 1995 年由 Advanced Development Methodologies, Inc 提出,并在 2001 年“敏捷聯(lián)盟(AgileAlliance )”形成后受到了更多歡迎。3、Scrum提供了一種經(jīng)驗(yàn)方法,它使得團(tuán)隊(duì)成員能夠獨(dú)立地,集中地在創(chuàng)造性的環(huán)境下工作。4、它發(fā)現(xiàn)了軟件工程的社會意義。這一過程是迅速,有適應(yīng)性,自組織的,它代表了從順序開發(fā)過程以來的重大變化。5、Scrum認(rèn)為軟件的開發(fā)不應(yīng)使用和一般制造業(yè)相同的方法,也就是不應(yīng)采用一種反復(fù)的模式。這種重復(fù) 使得輸入和輸出參數(shù)更加容易預(yù)測和描述,但這并不是當(dāng)今軟件工程的

13、主要挑戰(zhàn)包括上市時間,投資回 報,以及影響顧客的需要等??偨Y(jié)一下:Developed for managing system development process.用于管理系統(tǒng)開發(fā)過程。An empirical approach applying the idea of industrial process control theory to system development.將工廠過程控制理論應(yīng)用到系統(tǒng)開發(fā)上的一種經(jīng)驗(yàn)方法。Reintroduces the ideas of flexibility, adaptability and productivity.再次把靈活性,適應(yīng)性和高產(chǎn)

14、性引進(jìn)到系統(tǒng)開發(fā)過程當(dāng)中。Process的三個階段:計(jì)劃階段、中間開發(fā)階段、結(jié)束階段計(jì)劃和體系結(jié)構(gòu)設(shè)計(jì)(確定性過程)a)將backlog(急待完成的一系列任務(wù),包括:未細(xì)化的產(chǎn)品功能要求,bugs,缺陷,用戶提出的改進(jìn),具競爭力的功能及技術(shù)升級等)按優(yōu)先級排序形成backlog列表,根據(jù)該表和風(fēng)險評估制定產(chǎn)品交付基線b)建立系統(tǒng)體系結(jié)構(gòu)(如為已有系統(tǒng)改進(jìn),則只作優(yōu)先分析、調(diào)整),將backlog項(xiàng)按照高內(nèi)聚低耦合的原則 分解為一系列問題包(Packets,每個packet是一組對象或構(gòu)件的集合),依據(jù)同樣原則相應(yīng)的劃分若干 個開發(fā)小組(Scrum小組),分配各小組合適的Backlog項(xiàng)或問題包

15、,建立開發(fā)運(yùn)行環(huán)境.(2)Sprint(經(jīng)驗(yàn)性過程)該過程由若干個迭代的沖刺活動組成,直到風(fēng)險評估認(rèn)為產(chǎn)品可交付為止。一個Sprint是在限定時間段內(nèi)(Sprint周期,通常為1-6周,可在前一個 Sprint結(jié)束時調(diào)整)的一系列開發(fā)活動(包括分析、設(shè)計(jì)、編碼、測試等),每個Scrum小組并行開發(fā)且必須步調(diào)一致(在一個Sprint結(jié)束后,均需完成所分配的 backlog項(xiàng)并有可執(zhí)行的產(chǎn)出)。每個Sprint包含以下活動:開發(fā)、打包(Wrap)、評審(Review)、調(diào)整(Ajust )交付和鞏固(確定性過程)一旦根據(jù)風(fēng)險評估結(jié)果認(rèn)為可交付產(chǎn)品時,即進(jìn)入該階段。該階段的活動包括:組裝、系統(tǒng)測試和

16、回歸 測試(Regression ),準(zhǔn)備培訓(xùn)材料,完成最終文檔。SCRUMi程認(rèn)為一個產(chǎn)品的開發(fā)將一直持續(xù)下去,除非經(jīng)風(fēng)險評估后認(rèn)為應(yīng)停止。產(chǎn)品交付后的鞏固活動類似于傳統(tǒng)方法中的維護(hù)和改善,目的在于整理 準(zhǔn)備,以便輕裝上陣。Scrum工作內(nèi)容:Sprint期壓力下忽略的工作,為下一階段的開發(fā)做? 向管理層、用戶和產(chǎn)品擁有者介紹本次沖刺的結(jié)果? 參與者對產(chǎn)品新增的部分進(jìn)行評估并決定下一步的活動? 可能會提出新的backlog條款(就是說有些新的功能要增加)Scrum價值觀:承諾、專注、公開、尊重、勇氣,甚至?xí)淖兿到y(tǒng)的開發(fā)方向。動態(tài)系統(tǒng)開發(fā)方法 DSDM1、基本觀點(diǎn):任何事情都不可能一次性完滿

17、完成,用20淵時間完成80%的有用的功能以適應(yīng)于商業(yè)目的的2-8原則。2、基本原則:?積極主動的用戶參與? 賦予DSDMK目組充分的決策權(quán)?強(qiáng)調(diào)經(jīng)常性的產(chǎn)品提交(注重結(jié)果而非過程)?以是否適應(yīng)商業(yè)目標(biāo)作為工作確認(rèn)的首要衡量標(biāo)準(zhǔn)?迭代和增量式的開發(fā)方法?開發(fā)中所有的變化是可以追溯的? 基于軟件需求提出的開發(fā)計(jì)劃作為宏觀進(jìn)度控制的基線? 測試活動貫穿于軟件開發(fā)周期的各個階段? 強(qiáng)調(diào)所有項(xiàng)目相關(guān)人員的合作水晶系列方法:核心理念:軟件開發(fā)可視為創(chuàng)造和交流相協(xié)調(diào)的過程人是第一位的因素軟件開發(fā)的首要目標(biāo)是交付可用的軟件,第二才是保持開發(fā)工作的可延續(xù)性原則:S 減少中間制品的工作量(開發(fā)文檔、進(jìn)度計(jì)劃)通過

18、經(jīng)常產(chǎn)生出可運(yùn)行的代碼,充分利用人與人之間多種交互的渠道胭根據(jù)人數(shù)決定采用的方法凰 項(xiàng)目組的慣例隨項(xiàng)目具體情況調(diào)整目 對可靠性要求越高,則采用越嚴(yán)格的過程紀(jì)項(xiàng)目不同情況,狀態(tài)在不停變化律由Apache得出的關(guān)于開源開發(fā)方法的一些假設(shè)結(jié)論OSS developments will have a core of developers who control the code base. This core will beno larger than 10-15 people, and will create approximately 80%or more of the new functiona

19、lity.For projects that are so large that 10-15 developers can not write 80%of the code in a reasonable time frame, a strict code ownership policy will have to be adopted to separate the work of additional groups, creating, in effect, several related OSS projects.3、In successful OSSdevelopments, a gr

20、oup larger by an order of magnitude (數(shù)量級)than the corewill repair defects, and a yet larger group (by another order of magnitude) will report problems.4、OSS developments that have a strong core of developers but never achieve large numbers of contributors beyond that core will be able to create new

21、functionality but will fail because of a lack of resources devoted to finding and repairing defects in the released code.一個開源軟件開發(fā)項(xiàng)目如果有一組很強(qiáng)的核心成員,但是沒有核心成員之外的大量參與者,這樣出來的產(chǎn)品雖然會有很多新的功能,但是這個項(xiàng)目最終還是會失敗,因?yàn)樗狈ψ銐虻娜藛T對發(fā)布的產(chǎn)品進(jìn)行找錯改錯。Defect densityin open source releases will generally be lowerthan commercial code th

22、at has only been feature-tested.In successful OSS developments, the developers will also be usersof the software.7、OSS developments exhibit very rapid responsesto customer problems.RUP1、What is the Rational Unified Process ?答:Rational Unified Process是軟件工程化過程,提供了在開發(fā)機(jī)構(gòu)中分配任務(wù)和責(zé)任的紀(jì)律化方法以及 文檔模板。RUP的目標(biāo)是在可預(yù)見

23、的日程和預(yù)算前提下確保滿足最終用戶需求的高質(zhì)量產(chǎn)品。RU呢Rational公司開發(fā)和維護(hù)的過程產(chǎn)品。RUP是有效使用Unified Modeling Language的指南。2、RUP勺特點(diǎn)(核心思想)(1)迭代式開發(fā)(2)強(qiáng)調(diào)核心工作流程(3)基于角色的開發(fā)組織(4)用例驅(qū)動(5)以架構(gòu)為中心3、Effective Deployment of 6 Best PracticesThe Rational Unified Process provides each team member with the guidelines, templates and toolmentors necessar

24、y for the entire team to take full advantage of among others the following best practices : a)迭代式開發(fā)軟件d)建立可視化的模型b)管理需求e)不斷地驗(yàn)證軟件質(zhì)量基于組件的架構(gòu)f)控制軟件的變更4、Process Overview : Two Dimensions:the horizontal axis( 橫軸)represents timeand shows the dynamic aspect of the process as it is enacted, and it is expressed

25、 in terms of cycles (周期),phases (階段),iterations (迭代),and milestones (里程碑).體現(xiàn)了軟件開發(fā)過程的動態(tài)結(jié)構(gòu)the vertical axis( 縱軸)represents the static aspect of the process:按照活動的內(nèi)容進(jìn)行組織,包括活動、活動產(chǎn)生的工件、活動的執(zhí)行角色、以及活動執(zhí)行的工作流。體現(xiàn)了軟件開發(fā)過程的靜態(tài)結(jié)構(gòu)Organization 310ng time4 /sts 口ifOrgnijation along contentmtkfiMtJ:匕 n_. iMC&pc)Tnerr_Co

26、re Process Workflows一二E 二二二LEab3inUoiCcrs1LcterTrars-ltrSusi-ew MohI 芍 七qurernencs _ _*1*1/,1目, rCore Supporting Workflow Ccnfirarii & jnpe 解押;工 Ptn:“d Ma-飛BtnetiiEw n)rrTnnL._ _._,The Iterative Model graph shows how the process is structured along two dimensions4個階段:初始階段:目標(biāo)是為系統(tǒng)建立商業(yè)案例并確定項(xiàng)目的邊界;細(xì)化階段:目

27、標(biāo)是分析問題領(lǐng)域,并建立健全體系結(jié)構(gòu)基礎(chǔ),編制項(xiàng)目計(jì)劃,完成項(xiàng)目中高風(fēng)險需求部分的開發(fā);構(gòu)建階段:將所有剩余的技術(shù)構(gòu)建和穩(wěn)定業(yè)務(wù)需求功能開發(fā)出來,并集成為產(chǎn)品,它決定了產(chǎn)品是否可 以在測試環(huán)境中進(jìn)行部署要確定軟件、環(huán)境、用戶是否可以開始系統(tǒng)的運(yùn)行;移交階段:確保軟件對最終用戶是可用的。nn中宣工作潼程業(yè)舞建用分析設(shè)計(jì)The Iterative Model graph how the process is structured along two dimensionsTwo Dimensions ,四個階段,core workflow&Phase工作流程與各階段的關(guān)系5、對下圖的理解:(1)(2

28、)(3)開發(fā)過程CMVk RUP、開發(fā)技能 (OO,架構(gòu)、 構(gòu)件組織管理(文化、制度、團(tuán)隊(duì), 價值鏈)開發(fā)團(tuán)隊(duì)沒有實(shí)現(xiàn)對過程信息集中訪問控制(沒有集中的數(shù)據(jù)庫) 團(tuán)隊(duì)缺乏在方法和最佳實(shí)踐上進(jìn)行自我培訓(xùn)的最新的知識基礎(chǔ) 團(tuán)隊(duì)沒有使用統(tǒng)一的方式表達(dá)和方法溝通過程工程和過程制定, 統(tǒng)一的方法。組織級的過程的描述和裁減缺乏開發(fā)隊(duì)伍角色未定義,不協(xié)調(diào),團(tuán)隊(duì)工作和過程績效由于執(zhí)行的間隙和沖突而削弱。RUP與XP的共性: TOC o 1-5 h z ?基礎(chǔ)都是面向?qū)ο蠓椒ǎ?都采用迭代、增量開發(fā)方式??都是基于風(fēng)險驅(qū)動??都重視代碼、文檔的最小化和設(shè)計(jì)的簡化差異:? XP以代碼為中心,編碼和設(shè)計(jì)活動融為一體

29、,弱化了架構(gòu)的概念,采用動態(tài)適應(yīng)變化的演進(jìn)式迭代周期 強(qiáng)調(diào)需求和測試管理鼓勵用戶積極參與RUP程通常以架構(gòu)為中心,細(xì)化階段的主要目的就是構(gòu)造出一個可運(yùn)行的架構(gòu)原型,作為將來添加需求功能的穩(wěn)固基礎(chǔ)。XP有一個非常關(guān)鍵的假設(shè):開發(fā)人員只注重眼前需求,依賴重構(gòu)來適應(yīng)需求的變動,這樣帶來的風(fēng)險、開銷要小于需求變化使得事先充分設(shè)計(jì)失效的代價;反之,實(shí)施? XP不包括業(yè)務(wù)建模、部署、過程管理等概念。? RUP更強(qiáng)調(diào)項(xiàng)目的可控性。XP就是不明智的。? 可以講XP中的最佳實(shí)踐納入 RUP中。? RUP經(jīng)過裁剪后適應(yīng)各種規(guī)模的項(xiàng)目,XP只適用于小團(tuán)隊(duì)。? XP實(shí)踐依賴團(tuán)隊(duì)成員的強(qiáng)關(guān)系而RUP寸團(tuán)隊(duì)成員的關(guān)系緊密

30、程度要求弱些。MSF軟件項(xiàng)目成功的障礙:?目標(biāo)和職能分離?業(yè)務(wù)和技術(shù)分離?缺乏共同的語言和過程目標(biāo)不明確沒有范圍變更管理?無法以一個團(tuán)隊(duì)的方式進(jìn)行溝通和運(yùn)作IT項(xiàng)目的首要目標(biāo)是什么?IT項(xiàng)目的首要目標(biāo)不是更多的技術(shù),而是將其主要力量 組織服務(wù)。成功項(xiàng)目的標(biāo)準(zhǔn): 在規(guī)定的范圍內(nèi)(時間/資源)完成?過程管理不夠靈活,難以適應(yīng)項(xiàng)目的變化IT如何克服障礙:理解業(yè)務(wù)的方向、目標(biāo)和機(jī)會保證IT項(xiàng)目支持業(yè)務(wù)目標(biāo)保持與業(yè)務(wù)不斷地交流與溝通形成主動的工作環(huán)境組織團(tuán)隊(duì)有效地工作-豐富的技術(shù)知識一同人和過程結(jié)合起來,為整個確認(rèn)系統(tǒng)符合質(zhì)量標(biāo)準(zhǔn) 凰部署和管理平滑方便提高用戶完成工作的效率按照定義完成功能畫客戶滿意答:

31、團(tuán)對模型、過程模型MSF的模型和準(zhǔn)則項(xiàng)目管理準(zhǔn)則、風(fēng)險管理準(zhǔn)則、就緒管理準(zhǔn)則MSF微軟過程基本原則:8制定計(jì)劃時兼顧未來的不確定因素唾通過有效地風(fēng)險管理減少不確定因素的影響經(jīng)常生成過渡版本并進(jìn)行快速測試來提高產(chǎn)品的穩(wěn)定性及可預(yù)測性3快速循環(huán)、遞進(jìn)的開發(fā)過程屋從產(chǎn)品特性和成本控制出發(fā)創(chuàng)造性地工作、聰明地工作通創(chuàng)建確定的進(jìn)度表司使用小型項(xiàng)目組并發(fā)完成工作,并設(shè)置多個同步點(diǎn)畫將大型項(xiàng)目分解成多個可管理的單元、以便更快地發(fā)布產(chǎn)品司 用產(chǎn)品的前景目標(biāo)和概要說明指導(dǎo)項(xiàng)目開發(fā)工作:先基線 后凍結(jié)屋 避免產(chǎn)品走形:檢查當(dāng)前狀態(tài)與初始說明文檔對照而 使用原型驗(yàn)證概念,進(jìn)行開發(fā)前的測試:技術(shù)可行性等,減少和規(guī)避風(fēng)

32、險H零缺陷概念畫 非責(zé)難式的里程碑評審會:以改進(jìn)工作為目的,內(nèi)部、外部會議MSF團(tuán)隊(duì)模型角色、主要工作內(nèi)容目標(biāo)及相互關(guān)系:AASF團(tuán)隊(duì)角色及J生職責(zé)范圍角色簇目標(biāo)功能領(lǐng)域產(chǎn)品管理客戶滿意市防港勢也爭價值客戶代言人 產(chǎn)品計(jì)劃程序管理在域目約束下 丈付解決方案項(xiàng)目膏理解淡方案體用赫梅比程管理管理瞋務(wù)開發(fā)按規(guī)格說明構(gòu) 建解決方案技術(shù)咨陰實(shí)現(xiàn)悻泵骷杓不詵計(jì)通用程序開發(fā)基戚架構(gòu)開端測試只有本標(biāo)識和解決了 所有的產(chǎn)品質(zhì)量問題 后批準(zhǔn)定布洲試計(jì)劃測試工測武拄fr用戶體驗(yàn)提高用戶使用鮮決才 案4的族率可訪問姓國用傳技術(shù)遹信培訓(xùn)可用性用戶界面段升發(fā)布管理1平滑部署和穩(wěn)定運(yùn)營基地架枸支持埔營后媯3F,女一MS刖目

33、過程模型:階段及其主要工作任務(wù)目標(biāo)項(xiàng)目過程模型用普七或運(yùn)航國國認(rèn)可生至租礴標(biāo)示階段的推進(jìn)內(nèi)部里程碑分解工作除發(fā)V依中的實(shí)現(xiàn)Agile CMMI III帶里程碑的螺旋模型里程坪用于規(guī)劃和檢查題目的進(jìn)展,井碗定主集工作成果的交忖時間& 同步工件任務(wù)便于目的進(jìn)展和質(zhì)量可祝化允許階段調(diào)整,評審關(guān)注目標(biāo)和留杲提供項(xiàng)目審批環(huán)節(jié) 兩類里程碑MSF微軟過程的特點(diǎn):答:(1)使用迭代+漸進(jìn)式提交的方式可以保持系統(tǒng)良好的可預(yù)見性,也是客戶對項(xiàng)目組實(shí)施能力更加信任。(2)迭代周期的選擇一定是對一組業(yè)務(wù)用例的實(shí)現(xiàn)而不是其他。即每一個迭代周期都可以交付以個可以完成一定業(yè)務(wù)功能的系統(tǒng),微軟過程的特點(diǎn)迭代是針對業(yè)務(wù)用例的-

34、使用迭代+漸進(jìn)式提交的方式可以保持系統(tǒng)良 好的可預(yù)見性,也可使客戶對項(xiàng)目組實(shí)施能力 更加信任迭代冏期的選擇一定是對一組業(yè)務(wù)用例的實(shí)現(xiàn) 而不是其它.即每一個迭代周期都可以交付一 個可以完成一定業(yè)務(wù)功能的系統(tǒng)項(xiàng)目團(tuán)隊(duì)和外部環(huán)境的溝通用戶支捋用戶I業(yè)務(wù)向度* 各門室月團(tuán)以運(yùn)營和支持科I 一一項(xiàng)月發(fā)起人技術(shù)角度在項(xiàng)目中設(shè)立里程碑的好處有哪些?答:直 幫助同步工作成果以 可在項(xiàng)目進(jìn)行中糾正偏差叵I使項(xiàng)目團(tuán)隊(duì)外的人員也可以看到項(xiàng)目的進(jìn)展情 著重于評審項(xiàng)目目標(biāo)和交付成果況和質(zhì)量情況叵I增加階段性的審批環(huán)節(jié),只有在審核通過后,才進(jìn)入下一個階段。使用MSR程模型的優(yōu)點(diǎn)叵 過程模型可以根據(jù)項(xiàng)目的不同情況進(jìn)行調(diào)整團(tuán)

35、隊(duì)可以依據(jù)下列指導(dǎo)方針來決定項(xiàng)目需要哪些中間里程碑:由項(xiàng)目類型決定考慮外部事件和風(fēng)險避免長時間沒有里程碑叵 利用里程碑評審項(xiàng)目和總結(jié)經(jīng)驗(yàn):里程碑評審會議一在客戶、干系人和團(tuán)隊(duì)之間取得后里程碑評審會議一交流團(tuán)隊(duì)經(jīng)驗(yàn),改進(jìn)后續(xù)工作 按版本發(fā)布的好處:必 在特定版本范圍內(nèi)管理項(xiàng)目的變更和不確定因素:阪保證功能的持續(xù)增加和完善叵縮短交付時間叵I為團(tuán)隊(duì)成員設(shè)立明確而可達(dá)到的目標(biāo)叵著力解決項(xiàng)目問題風(fēng)險管理原則: 風(fēng)險是每一個項(xiàng)目和過程必然具備的畫識別風(fēng)險是一項(xiàng)正面的活動道首先識別風(fēng)險、然后管理風(fēng)險息 風(fēng)險評估是一項(xiàng)持續(xù)的活動強(qiáng)調(diào)主動規(guī)避風(fēng)險毫 不簡單的以風(fēng)險的數(shù)目來評估一個項(xiàng)目的價值將里程碑與交付成果結(jié)合

36、起來僅使用適合項(xiàng)目情況的 MSFB薦的里程碑,獲得項(xiàng)目階段性成果和繼續(xù)前進(jìn)的認(rèn)可期識別:頭腦風(fēng)暴期分析和分級:期計(jì)劃和調(diào)度期跟蹤和報告:動態(tài)調(diào)整風(fēng)險計(jì)劃期控制:期學(xué)習(xí):知識庫風(fēng)險管理的最佳實(shí)踐:風(fēng)險管理是項(xiàng)目組全體人員的責(zé)任直不要有意無意的造成“懲罰問題發(fā)現(xiàn)者”的氛圍直只關(guān)注一定數(shù)量的風(fēng)險風(fēng)險管理列入正式的項(xiàng)目管理活動和計(jì)算工作量使用知識庫來提高風(fēng)險管理的有效性風(fēng)險管理過程的六個階段TDD也是衡量軟件質(zhì)量開發(fā)效率的最好的指標(biāo)?;?Nightly Test是軟件開發(fā)中一個保證開發(fā)質(zhì)量的最有效的方法,值 Nightly Test就是每天工作結(jié)束, 所有的代碼都 Check in到SourceCon

37、trol后,自動運(yùn)行所有的 Unit Test 和Function Test 。測試的結(jié)果應(yīng)該自動分發(fā)給開發(fā)人員和管理層。且兩個指標(biāo)數(shù)值:墾 測試用例的通過率:單元測試必須是100%iB過,F(xiàn)unction Test應(yīng)該按計(jì)劃的通過 單元測試的覆蓋率:表明有多少 Class被測試過和測試的完善程度。Test-First Programming是什么?直Bl1 a! 直Test-First ProgrammingTest-First ProgrammingTest-First ProgrammingTest-First ProgrammingTest-First ProgrammingTest-

38、First Programming首先是一種分析方法是一種設(shè)計(jì)方法是一種質(zhì)量控制方法是一種重構(gòu)和優(yōu)化的方法不是通常意義上的測試技術(shù),它的目的也不僅用來測試你的代碼 是一種面向?qū)ο蟮拈_發(fā)方法如何做 Test Driven Design and Development ?首先確定你要做什么然后為這個功能(Method)寫單元測試?yán)樱║nit Test )寫 Production 代碼運(yùn)行 Unit TestXP與 TDD XP采用了 TDD答:TDD是eXtreme Programming 中必須遵行的一個方法,TDD是XP中Pair Programming 的工作模式。詞 XP中把測試驅(qū)動的設(shè)

39、計(jì)和開發(fā)做到極致,TDD的整個流程由兩個程序員一起執(zhí)行。H XP正是因?yàn)椴捎昧?TDD才能夠做到每天的代碼都是Production、code和每個小的Release都能夠提供具備Production質(zhì)量的代碼并投入使用。 有了 TDD XP才能降低風(fēng)險,去擁抱變化。 有了 TDD XP才能在計(jì)劃的時間內(nèi)完成計(jì)劃質(zhì)量的代碼。 有了 TDD XP才能減少CodeFix環(huán)節(jié),從而減少項(xiàng)目成本。 有了 TDD XP Team才能對自己的工作充滿自信。TDD程序員和管理層對程序員來說, 通過運(yùn)行Unit Test和Functional Test,每天下班的時候都可以清楚地知道自己的代碼是workI對管理

40、層來說,通過 Nightly Test的結(jié)果,每天一早都清楚地知道項(xiàng)目的質(zhì)量和開發(fā)進(jìn)度。什么時候?qū)慣est ?如果你要寫一個新的功能,請先寫他的測試?yán)尤绻阋跊]有經(jīng)過測試的代碼上寫信的功能,請先寫目前代碼的測試?yán)釉~ 如果彳要Fix 一個Bug,請先為這個bug寫一個測試?yán)尤绻芤猂efactor沒有測試過的代碼,請先寫一個測試?yán)铀救绻惆l(fā)現(xiàn)一個邊緣例外值,請為它寫一個測試?yán)?。Refactor-重構(gòu)1、什么是 Refactoring ?H Refactoring是對已經(jīng)完成的代碼進(jìn)行改進(jìn)的過程。在不對代碼的外部行為進(jìn)行改動的情況下,對代碼內(nèi)部的結(jié)構(gòu)進(jìn)行優(yōu)化。 Refactoring

41、是嚴(yán)謹(jǐn)?shù)貙ν瓿傻拇a進(jìn)行清理,從而減少出錯的一種方法。H Refactoring 的實(shí)質(zhì)是對完成代碼的設(shè)計(jì)進(jìn)行改進(jìn)。M Refactoring 是XP項(xiàng)目中每天的例行練習(xí)。Refactoring 必須和 Test-Driven Design and Development 伴隨進(jìn)行。2、為什么要Refactoring ?Refactoring 幫助盡早地發(fā)現(xiàn)錯誤息改進(jìn)軟件的設(shè)計(jì)(Defects )息提高代碼質(zhì)量,可維護(hù)性唾 Refactoring 可以提高開發(fā)速度3、5、什么時候適合/不適合做Refactoring?適合:嗔在開始增加一個新的功能之前息 在修復(fù)一個錯誤的時候息在彳Code Re

42、view的時候不適合: 代碼太混論,設(shè)計(jì)完全錯誤Bad Smells in Codes明天是 DeadLine嗯 Refactoring 的工作量顯著影響 Estimate4、Refactoring的流程?M讀懂代碼(包括測試?yán)哟a)通 Refactoring運(yùn)行所有的 Unit TestsanaBod 5mells in Coges1.Duplicated Code12,Lazy Class2.Long Method13.Speculative Generality3.L 口曠 Class14.Twnpor 白 ry Field4.Long Parameter List15.Message

43、 Chains5.D ivergent C harge16.Middle Man6.Stiod-gun Surgery17.Inappropriate liitiniacy7.Feahire Envy18.Alternative Classes with8.Data ClumpsDifferent Incerfflees9.Primitive Obs&ssion19.Incomplete LibraryICiSwitchClassIVPrall&l Inheritance20.Dato ClassH ierrchies21.Refused Bequest22.Comirwrits6、XP 中

44、Refactoring:在XP的日常工作中,Refactoring 通常在每個 Pair完成Task后做Code Review的時候進(jìn)行。Tips :垣 不要在電腦屏幕前進(jìn)行。HI不要在剛完成代碼后馬上進(jìn)行。道! Pair獨(dú)自進(jìn)行ReviewPSP與 TSP PSPW process flow :When programs are small or well understood , you can execute the phases in order 。Produce a planCode all modulesDesign all modulesComplie the coded pro

45、gramSummarize the project data during the postmortem。Requlrements - Plan - Design - Code - Complie - Test -Postmortem - Program and Project data. PSP部分: 了解PSP基本內(nèi)容及特點(diǎn);與軟件開發(fā)過程的關(guān)系。PSP是一個自我改進(jìn)的過程,用來幫助人們控制、管理和改進(jìn)工作方式。PSP是一種結(jié)構(gòu)化的表格、準(zhǔn)則和軟件開發(fā)過程的框架。 PSP0是基準(zhǔn)線過程,PSP0.1引入了規(guī)模測度,過程改進(jìn)建議(PIP)以及編碼標(biāo)準(zhǔn)。PSP1:個人規(guī)劃過程,相對于PSPQ增

46、加了規(guī)劃這一步驟,最初的改變只是增加了一個測試報告、規(guī)模和資源估算。在PSP1.1中,引入了任務(wù)規(guī)劃和進(jìn)度規(guī)劃。PSP2個人質(zhì)量管理過程。 相對于PSP1,增加了評審技術(shù),一邊盡量在修改這些錯誤花費(fèi)最少時發(fā)現(xiàn)錯誤。PSP2.1強(qiáng)調(diào)了設(shè)計(jì)過程。PSP3循環(huán)個人過程。(可不記)The PSPis a personal process for developing software or for doing any other defined activity. The PSP includes:defined stepsforms:式 standardsTt provides a measurem

47、ent and analysis framework for characterizing and managing your personal work.Tt is also a defined procedure that helps you to improve your personal performance. 了解和掌握如何使用 PSP0相關(guān)腳本、表格、模板及標(biāo)準(zhǔn)的作用。這些過程元素為制定規(guī)劃和報告結(jié)果提供了一種有序的結(jié)構(gòu),可以使我們節(jié)省大量的時間。Process Mesurement過程度量。了解軟件過程度量的內(nèi)容、目標(biāo)和意義;衡量軟件規(guī)模的原因、標(biāo)準(zhǔn) 及度量框架;了解規(guī)模度量方

48、面的規(guī)模計(jì)數(shù)方法原則,編碼標(biāo)準(zhǔn)的作用與意義。了解和掌握如何使用PSP0.1,理解PSP0.1過程及相關(guān)腳本、表格。過程度量的目標(biāo):內(nèi)容:size measures 、time measures、defect measures 、derived measures 、目標(biāo): understand and manage change 、 predict or plan for the future、 compare one product 、process、or organization with another值 determine adherence(堅(jiān)持、忠誠) to standards pr

49、ovide a basis for controlEstimating with PROBE(基于代理的規(guī)模估計(jì))I規(guī)模估計(jì)。理解項(xiàng)目計(jì)劃的意義和作用、規(guī)模估計(jì)的原因及原則;結(jié)合規(guī)模估計(jì)舉例,了解和掌握基于代理的規(guī)模估計(jì)的方法。了解和掌握如何使用 PSP1,理解PSP1過程、新增內(nèi)容及相關(guān)腳本、表格。項(xiàng)目計(jì)劃:項(xiàng)目計(jì)劃定義要完成的工作和如何做這項(xiàng)工作,它對每項(xiàng)主要任務(wù)做出定義,對所需要的 時間和資源進(jìn)行估計(jì),還為管理部門的評審和控制提供框架。項(xiàng)目計(jì)劃也是一個強(qiáng)大的學(xué)習(xí)工具,當(dāng)把這 個計(jì)劃嚴(yán)格地寫成文檔時,它就是一個與實(shí)際性能比較的基準(zhǔn)。這樣的比較,可以使做計(jì)劃的人看到估計(jì) 中的錯誤,從而改善做

50、計(jì)劃的準(zhǔn)確性。規(guī)模估計(jì):有助于我們規(guī)劃軟件的開發(fā),進(jìn)一步,軟件開發(fā)規(guī)劃的質(zhì)量通常依賴于規(guī)模估算的質(zhì)量?;诖淼囊?guī)模估計(jì):代理就是替代品,這種替代品可以幫助我們更形象地進(jìn)行估算,更容易地判斷產(chǎn)品的規(guī)模。代理的例子:對象、界面、文件、腳本或功能點(diǎn)等。一個好的代理應(yīng)符合以下標(biāo)準(zhǔn):a、代理規(guī)模的衡量應(yīng)該和我們開發(fā)的產(chǎn)品需要投入的工作量密切相關(guān);b、產(chǎn)品代理的內(nèi)容應(yīng)該是自動計(jì)算的;c、在項(xiàng)目開始時,代理應(yīng)該是形象化的、易懂的;d、代理應(yīng)該便于定制,以適應(yīng)某些組織的特殊需求;e、對于不同的軟件開發(fā)實(shí)施方案,代理應(yīng)該是敏感的,且應(yīng)該反映出開發(fā)的代價和開銷。Estimating with PROBE II規(guī)

51、模估計(jì)。了解規(guī)模估計(jì)的范圍及精確性,階段計(jì)劃及產(chǎn)品計(jì)劃的含義;由規(guī)模估計(jì)推斷開發(fā)時間;了解和掌握如何使用PSP1.1,理解PSP1.1過程、新增內(nèi)容及相關(guān)腳本、表格。階段計(jì)劃:是關(guān)于在這段時期內(nèi)對時間的安排。產(chǎn)品計(jì)劃是關(guān)于制作產(chǎn)品活動期間的時間安排。產(chǎn)品 計(jì)劃的基本方面:規(guī)模估計(jì)、項(xiàng)目時間和項(xiàng)目進(jìn)度。Using PSP Data使用PSP數(shù)據(jù)。了解如何制定產(chǎn)品及階段進(jìn)度計(jì)劃,如何進(jìn)行項(xiàng)目跟蹤;了解EV值及其應(yīng)用。Making Task Plans:For both individual and team plans, the first steps are值 To understand the

52、 job s goals and objectives-1 establish a strategyfor doing the work define the processesto useThen, you canj estimate the sizeof the job j define the tasksto be done J estimate the effort for each task j establish the task order叵 produce the scheduleWith the PSP,you With the PSP, you j were given t

53、he goals, strategy, and process used the task order defined by the process j used PSP data to estimate the work followed the process to do the jobOn a team project, the team must agree on team goals establish a strategy for the work define the process to use make a team planAfter the team has made t

54、he overall plan, the next step is to break it into individual tasks. These tasks are assigned to the various team members to plan and to implement.When you are assigned team tasks, you use the PSP to官 estimate and plan each taskP follow your personal process to do the work measure, track, and manage

55、 each step of the job忑 The PSP works for individuals, whether they work alone or on team projects.Project Tracking:ji Project tracking would be simple ifj we always completed tasks in the planned orderj no tasks were added or deleted通 This never happens.j Requirements always change.n Tasks get cance

56、lled or deferred 延期的. Some tasks are dropped and others are added.j Estimating errors are common.再 To track project status in a dynamic environment, you need a way to assign a value that measuresthe contribution of each task towards the whole project.Then you canj add upthe value of the completed ta

57、sksj comparethis value to the value of the total jobj calculate the percentageof job completionji The PSP does this with a method called earnedvalue(EV).Earned value (EV)j establishes a value for each taskj permits progress tracking against the planFacilitates使便禾U tracking, even with changes to the

58、plan迫 Earned value principles Earned value provides a common value for each task.j This value is the percentage of the total project hours that this task is planned to take.j The planned value is credited, no matter how long it actually took to do the task.j No value is given for partially-completed

59、 tasks.j Major plan changes require new plans.Software Quality軟件質(zhì)量。了解什么是軟件質(zhì)量及其經(jīng)濟(jì)效益;了解主要的缺陷排除方法;了解和掌握設(shè)計(jì)、代碼復(fù)查以及質(zhì)量度量方法;了解和掌握如何使用PSP2理解PSP2過程、新增內(nèi)容及相關(guān)腳本、表格。軟件質(zhì)量:影響到開發(fā)費(fèi)用、交付日期和用戶滿意度,對任何軟件質(zhì)量的定義來說,最主要的焦點(diǎn)都是用戶的需求,Crosby把質(zhì)量定義為“順應(yīng)需求”,分為產(chǎn)品質(zhì)量和過程質(zhì)量。軟件質(zhì)量可以看做是一個經(jīng)濟(jì)問題。我們可以不斷地使用另外一個測試手段或者使用另外一種評審方法,在大規(guī)模系統(tǒng)中,一般來說,每個新測試手段的

60、使用都是側(cè)一大堆新錯誤暴露出來,因此,我們不知 道什么時候停止測試。每次測試都要耗費(fèi)金錢和時間。因此,在質(zhì)量管理中,經(jīng)濟(jì)學(xué)成為一個重要問題, 這不僅僅是因?yàn)闇y試方案,也是由于生命周期質(zhì)量代價優(yōu)化的需求。我們必須保證進(jìn)入測試階段的產(chǎn)品就 是合格的。軟件質(zhì)量的經(jīng)濟(jì)意義大部分都在于錯誤偵測、預(yù)防和排除的成本。缺陷排除方法:編譯器、測試、代碼復(fù)查。代碼復(fù)查:就是研究源程序,并從中發(fā)現(xiàn)錯誤。最好在編碼完成后并在編譯和測試之前進(jìn)行。代碼復(fù) 查腳本:復(fù)查規(guī)程、修復(fù)缺陷、覆蓋率復(fù)查、程序邏輯復(fù)查、命名和類型檢查、變量檢查、程序語法檢查。Software Design I 軟件設(shè)計(jì)。了解設(shè)計(jì)框架、質(zhì)量與層次;理

溫馨提示

  • 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

提交評論