色婷五一,精品亚洲欧美一区二区三区日产 ,精选国产AV剧情,无码丰满少妇2在线观看

18600329666

咨詢技術(shù)專家

掃一掃
與技術(shù)專家在線溝通

Menu
敏捷軟件開發(fā)知多少
       一、對敏捷軟件開發(fā)和傳統(tǒng)瀑布模型開發(fā)方法的理解
       敏捷軟件開發(fā)是一種新型的軟件開發(fā)方法,強(qiáng)調(diào)開發(fā)人員與業(yè)務(wù)專家(客戶)之間的緊密協(xié)作、面對面的溝通(認(rèn)為比書面的文檔更有效)、頻繁交付新的軟件版本、緊湊而自我組織型的團(tuán)隊、能夠很好地適應(yīng)需求變化的代碼編寫和團(tuán)隊組織方法,也更注重軟件開發(fā)過程中人的作用,開發(fā)團(tuán)隊不僅包括開發(fā)人員,還包括管理人員和客戶。它鼓勵團(tuán)隊成員的相互交流通過反饋機(jī)制盡早糾正軟件中的錯誤,提高開發(fā)效率,同時為需求的調(diào)整提供更多機(jī)會,保證軟件向正確的方向發(fā)展。
        傳統(tǒng)軟件開發(fā)與
 敏捷軟件開發(fā)相比而言,傳統(tǒng)軟件開發(fā)如瀑布模型強(qiáng)調(diào)預(yù)見性,嚴(yán)格遵循計劃、分析、設(shè)計、編碼、測試和維護(hù)等幾個階段。瀑布模型開發(fā)各階段間具有嚴(yán)格的順序性和依賴性,必須等到前一階段的工作結(jié)束后才能開始下一階段的工作,前一階段的輸出文檔是后一階段的輸入文檔,只有前一階段的輸出文檔完全正確,后一階段才能獲得正確的結(jié)果。
 敏捷軟件開發(fā)示意
    二、敏捷軟件開發(fā)方法的特點
  1. 極限編程(XP):溝通,簡單,反饋,膽識,為四項基本準(zhǔn)則,快速反饋,假設(shè)簡單,遞增更改,優(yōu)質(zhì)工作,為5條法則,幾乎無文檔。在所有的敏捷方法中,XP對日期產(chǎn)生的興趣最多,并且在對良好不定的問題領(lǐng)域的特殊實踐方面最為具體。
  2. SCRUM:特別強(qiáng)調(diào)開發(fā)隊伍和管理層的交流協(xié)作。每天,開發(fā)隊伍都會向管理層匯報進(jìn)度,如果有問題,也會向管理層要求幫助解決。
  3. 動態(tài)系統(tǒng)開發(fā)方法:堅持功能在項目的全過程中都可以改變,當(dāng)功能被允許改變時,通過使用時間框控制的目的就能達(dá)到。重視為項目營造一個正確的文化氛圍,如手冊中描述了項目有不同的側(cè)重點,并指出對于那些缺陷在傳統(tǒng)方法中轉(zhuǎn)變起來是多么的困難。也非常重視協(xié)作價值和原理,以及文檔。
  4. .功能驅(qū)動開發(fā)方法,短時間的迭代階段和可見可用的功能,適合于那些不確定或常變更的需求的系統(tǒng)。它抓住了軟件開發(fā)的核心問題領(lǐng)域,即正確和及時地構(gòu)造軟件。
  5. 水晶系列方法:相對于其它敏捷方法,水晶系列方法強(qiáng)調(diào)軟件開發(fā)流程的紀(jì)律性,所以它比其它敏捷方法易于使用,但它的生產(chǎn)率不如Xp等其它敏捷方法。水晶系列與Xp一樣,都有以人為中心的理念,但在實踐上有所不同。人們一般很難嚴(yán)格遵循一個紀(jì)律約束很強(qiáng)的過程,因此,與Xp的高度紀(jì)律性不同,水晶系列方法試圖用最少紀(jì)律約束而仍能成功的方法,從而在產(chǎn)出效率與易于運作上達(dá)到一種平衡。
  6. 自適應(yīng)軟件開發(fā)(ASD):ASD強(qiáng)調(diào)開發(fā)方法的適應(yīng)性,這一思想來源于復(fù)雜系統(tǒng)的混沌理論。ASD不像其他方法那樣有很多具體的實踐做法,它更側(cè)重為ASD的重要性提供最根本的基礎(chǔ),并從更高的組織和管理層次來闡述開發(fā)方法為什么要具備適應(yīng)性。
  7. 迭代式開發(fā)。整個開發(fā)過程被分為幾個迭代周期,每個迭代期是一個定長或不定長的時間塊,每個迭代周期持續(xù)的時間一般較短,通常為1~6 周。
  8. 開發(fā)團(tuán)隊和用戶反饋推動產(chǎn)品開發(fā)。敏捷開發(fā)方法主張用戶能夠全程參與整個開發(fā)過程。這使需求變化和用戶反饋能動態(tài)管理并及時集成到產(chǎn)品中。同時,團(tuán)隊也能及時對用戶的需求提供反饋意見。
  9. 開發(fā)團(tuán)隊自我管理。擁有一個積極的、自我管理的、具備自由交流風(fēng)格的開發(fā)團(tuán)隊,是每個敏捷項目的必要條件。敏捷開發(fā)總是以人為中心建立開發(fā)的過程和機(jī)制,而非把過程和機(jī)制強(qiáng)加給人。
  10. 持續(xù)集成。新的功能或需求變化總是盡可能頻繁地被整合到產(chǎn)品中。一些項目是在每個迭代周期結(jié)束的時候集成,有些項目則每天都在集成。
  11. 增量交付。產(chǎn)品在每個迭代周期結(jié)束時被逐步交付使用,而不是在整個開發(fā)過程結(jié)束時一次性交付。每次交付的都是可被部署到用戶應(yīng)用環(huán)境中的、能給用戶帶來即時效益和價值的產(chǎn)品
   三、敏捷軟件開發(fā)和傳統(tǒng)軟件開發(fā)團(tuán)隊建設(shè)方面的區(qū)別
  1. 團(tuán)隊建設(shè):以團(tuán)隊為單位,強(qiáng)調(diào)團(tuán)隊建設(shè),賦予高度的責(zé)任,支持開發(fā)、透明的交流環(huán)境;以項目經(jīng)理為領(lǐng)導(dǎo)核心,團(tuán)隊成員之間交付很少
  2. 管理流程:流程可以簡單,但規(guī)劃與執(zhí)行必須嚴(yán)謹(jǐn);復(fù)雜,繁瑣,靜態(tài),變更成本大
  3. 用戶參與程度:強(qiáng)調(diào)用戶保持密切的聯(lián)系和交流;很少涉及用戶參與
  4. 業(yè)務(wù)需求:需求具有優(yōu)先級次序,開發(fā)以增量方式逐步完成功能,有助于量化項目過程;假設(shè)需求是明確的,一旦需求變更勢必增加其余環(huán)節(jié)的復(fù)雜度
  5. 交付頻率:經(jīng)常交付,交付周期短;項目結(jié)束時交付,交付周期長
  6. 文檔量:最必要最實用,高的應(yīng)用度和閱讀度;產(chǎn)生大量中間文檔,低的應(yīng)用度和閱讀度
    四、敏捷軟件開發(fā)的缺陷 
     敏捷方法明顯地降低了文檔的數(shù)量,甚至聲明代碼本身就是文檔。這就需要開發(fā)人員為代碼添加更多的注釋,但是對于不習(xí)慣敏捷開發(fā)或團(tuán)隊新成員則很難做到,他們必須不斷詢問有經(jīng)驗的開發(fā)人員,這樣會導(dǎo)致延遲迭代交付時間,甚至增加開發(fā)費用。而傳統(tǒng)開發(fā)則強(qiáng)調(diào)文檔對團(tuán)隊成員的指導(dǎo)作用,開發(fā)人員可以在不知道項目細(xì)節(jié)的情況下完成開發(fā)。
 
      敏捷開發(fā)中強(qiáng)調(diào)交互和客戶的參與。每次迭代前,團(tuán)隊和客戶都將召開一個會議,團(tuán)隊成員將介紹在這次迭代中所作的工作,而客戶則根據(jù)成員的介紹給出新的功能要求。實際中大部分情況,這種例會是非常乏味和沉悶的,因為團(tuán)隊成員必須重復(fù)地向其他
 
       成員和客戶展示自己負(fù)責(zé)的模塊,接受給出各種對需求的更改,而且每次迭代都是如此,通常為迭代分配的時間都是以周為單位的,開發(fā)人員經(jīng)常感到時間不夠用,尤其是自己負(fù)責(zé)的模塊中包含一些復(fù)雜的算法時,時間就變得越緊,經(jīng)常使得迭代延遲。而傳統(tǒng)開發(fā)中客戶不會參與開發(fā)過程,實現(xiàn)過程中開發(fā)人員只是根據(jù)文檔編寫代碼,然后交付最終產(chǎn)品。這樣開發(fā)人員不必關(guān)心那些頻繁的迭代會議,而且時間上更加寬泛,有利于開發(fā)出更好的產(chǎn)品。
  
      敏捷開發(fā)對開發(fā)人員的個人技能要求更高。敏捷開發(fā)強(qiáng)調(diào)交互和客戶的參與,這就意味著每個團(tuán)隊成員都要具備一定的個人能力和社交技能。每次迭代都必須給客戶提供完整的功能模塊,并且需要讓客戶明白當(dāng)前的開發(fā)進(jìn)程以及開發(fā)中遇到的一些問題,開發(fā)人員不但需要將自己的工作描述清楚,還得正確理解客戶提出的新需求,這需要具備較好的溝通技能。而實際中,不一定每一個開發(fā)人員都能具備這樣的技能,一旦某一個人不能正確理解一些重要信息,將可能導(dǎo)致下一次迭代不能準(zhǔn)確交付,更糟糕的是,如果理解有誤,會使得開發(fā)的模塊中包含多余的功能,結(jié)果是對模塊進(jìn)行修改,從而增加開發(fā)費用。因此,開發(fā)人員社交技能的提升將增加開發(fā)過程的穩(wěn)定性。
 
      敏捷開發(fā)允許增加需求也導(dǎo)致兩個設(shè)計中的問題:系統(tǒng)過于僵硬和機(jī)動性強(qiáng)。僵硬是指系統(tǒng)中一旦有更改的地方容易引起其他模塊的級聯(lián)改動。機(jī)動性是指可能由于需求改變而壓縮一些可重復(fù)使用的組件,這意味著大量的工作量和對系統(tǒng)整體穩(wěn)健性帶來風(fēng)險。如果系統(tǒng)中存在這些問題,會違反面向?qū)ο笤O(shè)計中的接口隔離原則,從而導(dǎo)致部署過程中的很多問題。
     結(jié)束語:傳統(tǒng)軟件開發(fā)方法和
 敏捷軟件開發(fā)方法各有利弊,任何一種方法都不是完美的,軟件開發(fā)項目管理的核心問題還是人的問題,在一定的管理機(jī)制制約之下,充分發(fā)揮和調(diào)動開發(fā)工程師個人工作積極性和主動性才能保證開發(fā)質(zhì)量,至于管理模式和機(jī)制的選擇因地制宜不拘一格。