国产精品久久777777网站,男生天堂精品2020在线,国产精品久久久久一级毛片,体育老师在单杠C了我一节课视频

敏捷軟件開發(fā)方法概念

2018-06-09 09:55:43


     自從軟件工程產(chǎn)生以來,我們在降低軟件開發(fā)項目的風(fēng)險過程中嘗試過多種方法,雖然面向?qū)ο、結(jié)構(gòu)化、CMM等技術(shù)有利于幫助軟件危機(jī)的解決,然而其復(fù)雜的過程使軟件行業(yè)陷入低效泥沼中。2001年Kent beck Martin Fowler Robert Martin等經(jīng)驗論陣營的頭領(lǐng)發(fā)起了敏捷聯(lián)盟向全世界發(fā)布了他們的宣言:個體和交互勝過過程和工具;工作軟件高于理解文檔;客戶合作勝過合同談判;響應(yīng)變化勝過遵循計劃。宣言體現(xiàn)了軟件開發(fā)方法必須去適應(yīng)軟件變化的特征,在宣言的基礎(chǔ)上就提出了敏捷軟件開發(fā)方法。 

  1 敏捷方法概述 
  截止現(xiàn)在敏捷軟件開發(fā)方法還沒有一個確定的定義。但它的特點(diǎn)是重視軟件生產(chǎn)效率的,適用于軟件需求不確定、用戶易溝通并且能參與開發(fā)、開發(fā)人員有責(zé)任感并且積極向上、十個人以下的小項目的開發(fā),是以保證軟件開發(fā)有成功產(chǎn)出為前提的,盡可能減少在開發(fā)過程中制成品的方法,體現(xiàn)“剛剛夠”(Just enough)的觀點(diǎn)。 
  人作為核心、循序漸進(jìn)和迭代算法是敏捷軟件開發(fā)的宗旨。在敏捷軟件開發(fā)過程中,軟件項目被分解成很多個小項目,每個小項目的成果都經(jīng)過測試,再把他們集成起來。它的靈活性、協(xié)作性和軟件的商業(yè)價值上作出的貢獻(xiàn)是敏捷軟件開發(fā)方法的優(yōu)勢。這都在“敏捷宣言”的核心原則中得到了體現(xiàn):交互和獨(dú)立工作是建立在工具和過程基礎(chǔ)上的、軟件使用是建立在文檔基礎(chǔ)上的、客戶的協(xié)作是建立在合同談判基礎(chǔ)上的、對變更做出的響應(yīng)是建立在遵循計劃基礎(chǔ)上的。 
  2 幾種常用的敏捷方法比較 
  2.1 極限編程(XP) 
  極限編程(簡稱XP)是由KentBeck于1996年提出的,極限編程要求把它列出的每一個思想和方法都做到極限、做到最好。 
  極限編程的核心價值是我們在開發(fā)中必須注意的:Communication(溝通)、Simplicity(簡單)、Feedback(反饋)、Courage(勇氣)、此外還有第五個價值: Modesty(謙虛)。因為計劃趕不上變化,使用極限編程的軟件開發(fā)人員只需要在開發(fā)的初期做出一些文檔。極限編程把軟件測試放在首位,這樣以后出現(xiàn)漏洞的幾率就會降到最低。 
  極限編程是一種近螺旋式的開發(fā)方法,它把復(fù)雜的開發(fā)分解為相對比較簡單的小軟件;通過溝通、反饋和其它的方法,客戶和開發(fā)人員就可以清楚的了解到開發(fā)進(jìn)度、變化、困難和急需解決的問題等,并及時地調(diào)整開發(fā)過程。 
  2.2 SCRUM 
  SCRUM的宗旨是發(fā)揮構(gòu)件技術(shù)和面向?qū)ο蟮拈_發(fā)方法,對迭代式面向?qū)ο蠓椒ㄟM(jìn)行改進(jìn),適用于需求不確定的產(chǎn)品的開發(fā)。是迭代的增量化過程,便于工作管理和產(chǎn)品研發(fā)。更綜合了各種開發(fā)的經(jīng)驗。 
  SCRUM把項目分成N個為期15-30天的迭代階段,稱之為“沖刺”(sprint)。每個“沖刺”之前,你明確這一個“沖刺”需要實(shí)現(xiàn)的功能,然后讓開發(fā)人員去完成。但是,在“沖刺”時,SCRUM的核心是所有開發(fā)都圍繞著迭代,需求是固定的。SCRUM方法中只有3中角色:SCRUM主管、開發(fā)團(tuán)隊、產(chǎn)品負(fù)責(zé)人。 
  2.3 動態(tài)系統(tǒng)開發(fā)方法(DSDM) 
  開發(fā)一種面向領(lǐng)域的快速開發(fā)方法是產(chǎn)生動態(tài)系統(tǒng)開發(fā)方法的原因,動態(tài)系統(tǒng)開發(fā)方法在技術(shù)支持、應(yīng)用推廣、研究改進(jìn)培訓(xùn)認(rèn)證和培訓(xùn)認(rèn)證等方面都比其他方法要完善,適用于對時間要求很緊的開發(fā)項目,動態(tài)系統(tǒng)開發(fā)方法應(yīng)用范圍不再僅僅局限于IT行業(yè)。 
  DSDM方法提倡以業(yè)務(wù)為核心,快速而有效地進(jìn)行系統(tǒng)開發(fā),并提出了探索式開發(fā)方法的概念。強(qiáng)調(diào)軟件使用者一開始就預(yù)見所有需求是不可能的。該方法中,只要進(jìn)能入下一步,當(dāng)前的算法就是可行的。 
  2.4 水晶方法(Crystal) 
  水晶方法是Alistair Cockburn于上世紀(jì)90年代末提出的,水晶方法目的是發(fā)展一種提倡“機(jī)動性的”方法。 
  Crystal是根據(jù)項目重要性和規(guī)模來區(qū)別項目的,并給出相應(yīng)的辦法。所以,crystal是多種方法的組合.它闡明了要把對話和交流放在第一位的觀點(diǎn)。Crystal方法中有兩條準(zhǔn)則:(1)應(yīng)用反思工作室促使方法學(xué)的自適應(yīng),(2)使用的增量式循環(huán)不超過4個月。 
  2.5 特性驅(qū)動開發(fā)(FDD) 
  特性驅(qū)動開發(fā)是一個強(qiáng)調(diào)快速迭代、特性驅(qū)動的軟件開發(fā)方法,適用于周期短的開發(fā)。它既能保證文檔和質(zhì)量,又能保證軟件的快速開發(fā),并提出劃分的每一個功能開發(fā)時間不超過兩星期,要求兩星期內(nèi)生產(chǎn)出可見的、能運(yùn)行的代碼。 
  特性驅(qū)動開發(fā)方法認(rèn)為簡單的過程和良好的定義就能很好地被執(zhí)行,它強(qiáng)調(diào)的是實(shí)用、簡化、易于被開發(fā)人員接受,是一個特性驅(qū)動快速迭代的過程,適用的項目為軟件需求經(jīng)常變動。 
  2.6 自適應(yīng)軟件開發(fā)(ASD) 
  自適應(yīng)軟件開發(fā)方法的理論來源是復(fù)雜自適應(yīng)系統(tǒng)理論,目的是通過提高自適應(yīng)性用來應(yīng)對互聯(lián)網(wǎng)時代下的軟件需求難于預(yù)測并高速變化的軟件開發(fā),它與水晶方法正在相互借鑒和融合。 
  在一個環(huán)境中,結(jié)果是不可預(yù)測的,把計劃看成是一個自相矛盾的。在計劃中,偏離計劃就是錯誤的,要糾正。而在一個適配性環(huán)境里,偏離計劃恰恰是在引導(dǎo)開發(fā)人員走向正確的目標(biāo)。在不可預(yù)測的環(huán)境中,需要我們用各式各樣的方法來應(yīng)對不確定性。在管理中,重點(diǎn)在于鼓勵大家交流溝通,而不是告訴大家需要做什么,從而使開發(fā)人員能自己提出具有創(chuàng)造性的解決方案。 

  不同的開發(fā)方法對于不同的開發(fā)人員來說,意義是不同。不同的項目規(guī)模,不同的開發(fā)環(huán)境,也決定了開發(fā)團(tuán)隊采用哪種開發(fā)方法,本文僅僅對敏捷開發(fā)方法做了一個簡單介紹,相信能為開發(fā)團(tuán)隊在實(shí)踐中選擇方法提供一個比較客觀的參考。