![軟件項目快速開發(fā)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/d983e06a-d9fe-482a-bce6-0d3b538f891b/d983e06a-d9fe-482a-bce6-0d3b538f891b1.gif)
![軟件項目快速開發(fā)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/d983e06a-d9fe-482a-bce6-0d3b538f891b/d983e06a-d9fe-482a-bce6-0d3b538f891b2.gif)
![軟件項目快速開發(fā)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/d983e06a-d9fe-482a-bce6-0d3b538f891b/d983e06a-d9fe-482a-bce6-0d3b538f891b3.gif)
![軟件項目快速開發(fā)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/d983e06a-d9fe-482a-bce6-0d3b538f891b/d983e06a-d9fe-482a-bce6-0d3b538f891b4.gif)
![軟件項目快速開發(fā)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/d983e06a-d9fe-482a-bce6-0d3b538f891b/d983e06a-d9fe-482a-bce6-0d3b538f891b5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、軟件項目快速開發(fā)歡送閱讀編者按: 越來越多的壓力使得一個軟件工程無論是最終用戶、企業(yè)、開發(fā)團隊都希望在最短的時間完成,可事與愿違的是軟件工程的時間延期問題普遍存在,一些調(diào)查說明,70%的工程超出了估算的時間。大型工程平均超出方案交付時間的20%到50%,工程越大,超出方案的時間越長。 一直以來開發(fā)速度的問題都是軟件開發(fā)業(yè)的頭等問題。那怎樣才能在保證軟件質(zhì)量的同時又縮短開發(fā)速度呢?本期的?領(lǐng)航人?月刊中我們就將圍繞著有關(guān)軟件的“快速開發(fā)主題來進行探討。開發(fā)軟件所需要經(jīng)歷的階段要談“快速開發(fā)我們就需要先來了解一下軟件工程所需要經(jīng)歷的過程:軟件的開發(fā)過程并不僅是一個編寫、實現(xiàn)代碼的簡單過程,軟件的開
2、發(fā)需要經(jīng)歷許多的步驟。因此在開始時我們先用一個相對簡單的方式了解一下軟件開發(fā)的常見過程:從上圖可以直觀的看出,一個軟件的開發(fā)至少是包含了上圖的三個階段、七個步驟。而這個過程中又可能涉及到以下各種參與軟件開發(fā)的角色:并不是任何工程中都會出現(xiàn)所有角色,角色同實際的參與人員也并不一定一一對應(yīng)我們在此所探討的軟件“快速開發(fā)為的是在軟件目標、外部資源相同的情況下如:同一團隊,同一工程可以縮減整個開發(fā)周期的各種方式,使軟件工程最終能在一個更短時間內(nèi)完成。軟件項目快速開發(fā)歡送閱讀能縮短軟件開發(fā)周期的三種方式縮短軟件開發(fā)周期其實一直是全世界軟件開發(fā)團隊所長期關(guān)注的話題,把現(xiàn)在已被廣泛認可的有效縮短周期的方式歸
3、類一下可劃分為三大類:1. 工具快速2. 模式快速3. 經(jīng)驗快速其分別代表著實現(xiàn)軟件工程“快速開發(fā)的“天時、地利、人和,同時也蘊藏著“天時不如地利,地利不如人和的真諦。天時一一工具快速在一個軟件工程所經(jīng)歷的各階段中如:需求分析、原型開發(fā)、實現(xiàn)、測試、完成、需求變更、后期維護,不同階段選用適當?shù)墓ぞ吣芊浅V苯拥南鄳?yīng)參與人員的工作效率、溝通效率, 縮短單個步驟所需要的時間,從而在整體上縮短軟件工程的開發(fā)周期。值得注意的一點是,工具并不僅限于軟件形態(tài)的工具。需求分析:是軟件工程開發(fā)第一個也是很重要的一個階段,?需求分析的根本任務(wù)是要準確地定義新系統(tǒng)的目標,為了滿足用戶需要,答復(fù)系統(tǒng)必須“做彳f么的問
4、題。?在這個階段中包含需要獲取需求、分析需求、編寫規(guī)格說明和需求驗證。從獲取需求到需求驗證的這個過程需要編寫文檔、繪制圖形、創(chuàng)立需求模型等,像文檔之類的工具可以使用word、繪制圖形可以使用visio 、建模可以使用rationalrose等工具軟件,有了這些工具的輔助,可提高編寫文檔的速度,縮短分析階段的周期。除了以上這些軟件形態(tài)的工具外還可為更快的工程參與人員之間的想法溝通,借助一些實體類工具,如紙制卡片,黑板或一些已經(jīng)成型的系統(tǒng)。原型開發(fā):在軟件需求分析階段,需要搞清楚的是軟件要“做什么的問題,并把這些需求通過文檔的形式描述出來,這也是目標軟件項目快速開發(fā)歡送閱讀系統(tǒng)的邏輯模型。進入設(shè)計
5、階段,那么要把軟件“做什么的邏輯模型變換為“怎么做的物理模型,即著手實現(xiàn)軟件的需求,并將設(shè)計的結(jié)果反映在“設(shè)計規(guī)格說明文檔中,接下來開始設(shè)計。設(shè)計的根本任務(wù)包括:軟件結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計、概要設(shè)計文檔。開發(fā)一個大而復(fù)雜的軟件系統(tǒng),我們可以將它進行適當?shù)姆纸鈦斫档推鋸?fù)雜性,還可減少開發(fā)工作量,你也可以使用一些能夠提高設(shè)計速的軟件來幫助你進行設(shè)計,從而提高軟件生產(chǎn)率,降低開發(fā)本錢。所用的工具比方使用UML繪制類圖的工具。實現(xiàn):設(shè)計完成之后進入編碼實現(xiàn)階段,為了提高整個工程的開發(fā)速度,編寫代碼我們可以借助一些有力的開發(fā)工具來加快速度,例如,如果是用JAVA語言開做開發(fā)的話,可以使用 eclip
6、se、JCreater ,如果是用C#、VB你可以用Visual S ;如果是開發(fā)網(wǎng)站之類的可 以用Dreamweaver 。美工可以使用photoshop或是FireWork之類的工具。節(jié)省工程的開發(fā)時間。另外一方面由于軟件技術(shù)的快速開展帶來了各種平臺和引擎,選用適當?shù)钠脚_技術(shù)與引擎能更大程度的縮短周期。測試:軟件的測試也是一個非常重要的階段,大量的測試,甚至重復(fù)的測試引出了一個新的問題:全憑手工進行測試會浪費大量的時間。因此,易變的需求對測試提出了一個新的要求:自動化測試。此類型的工具例如Xunit系列。只有自動化的進行測試,才可以完成大量的測試工作,節(jié)省時間和人力方面的投入,加快工程的整
7、體開發(fā)速度。關(guān)于自動化測試這方面的問題,大家可以參考相關(guān)的資料,這里我們不作深入的 討論。工匠用釘槍、成型磚塊、涂料噴霧器來建造一個小屋的話要比他單純用一把榔頭、沙磚、涂料刷來得快。擁有快速交通工具的人可以比擁有普通交通工具的人提前到達目的地。但不管什么情況下,如果質(zhì)量是非常重要的話,那么即使是強有力的工具也將會被手工工具所替代或輔助。軟件開發(fā)中使用工具的情況與上述情況也是非常相近的。地利一一模式快速如前所說軟件開發(fā)的過程并不是一個簡單的過程,一個軟件的開發(fā)會被分成很多步驟來實現(xiàn),每一個步驟都有自己的起點和終點。正如此 也使得開發(fā)過程中的每個步驟起點和終點在不同的軟件工程中出現(xiàn)不同難度的“坎,
8、使其難于到達該步驟開始或是終結(jié)的條件,開軟件項目快速開發(fā)歡送閱讀發(fā)過程也就不會一帆風順。不同的開發(fā)模式其實就是將步驟的起點和終點重新定義,甚至重新組合排列,雖然任何一個開發(fā)模式最終目的都是完成軟件工程的開發(fā),但期間所經(jīng)歷的過程不一樣,過程步驟之間的起點和終點的的定義不同所帶來的“坎也就不一樣,工程周期自然各不相同,因此, 根據(jù)軟件工程的實際情況選擇一個適合的開發(fā)模式能減少開發(fā)周期中“坎的出現(xiàn)次數(shù)與難度,非常大程度的縮短開發(fā)周期。瀑布模型在本專題開始時我們所示范的開發(fā)流程,實際就是一種典型的瀑布模型又稱線形模型:在最初的文章中, Royce提倡重復(fù)地使用瀑布模型,以一種迭代的方式。但是,大多數(shù)人
9、并不知道這一點,一些人也不相信它能夠作為一種真實世界的過程使用。在實踐中,過程很少能夠以純線性的方式進行。通過回到前面的階段或改便前一階段的結(jié)果的迭代是非常普遍的。線性模型太理想化,太單純,以至很多人認為瀑布模型已不再適合現(xiàn)代的軟件開發(fā)模式,幾乎被業(yè)界拋棄。偶而被人提起,都屬于被 貶對象,未被留一絲惋惜。但我們應(yīng)該認識到,“線性是人們最容易掌握并能熟練應(yīng)用的思想方法。當人們碰到一個復(fù)雜的“非線性 問題時,總是千方百計地將其分解或轉(zhuǎn)化為一系列簡單的線性問題,然后逐個解決。一個軟件系統(tǒng)的整體可能是復(fù)雜的,而單個子程序總 是簡單的,可以用線性的方式來實現(xiàn),否那么干活就太累了。線性是一種簡潔,簡潔就是
10、美。當我們領(lǐng)會了線性的精神,就不要再呆板地 套用線性模型的外表,而應(yīng)該用活它。瀑布模型解決了軟件工程上面的根本管理需求,但是對于我們所提的軟件工程的“快速開發(fā)瀑布模型并沒有什么優(yōu)勢。2 . RUP Rational Unified Process瑞理統(tǒng)一過程RUP是建立在非常優(yōu)秀的軟件工程原那么根底上的,例如迭代,需求驅(qū)動,基于結(jié)構(gòu)化的過程開發(fā)。它提供了幾個方法,例如每一次迭軟件項目快速開發(fā)歡送閱讀代產(chǎn)生一個工作原型,在每一個階段的結(jié)束決定工程是否繼續(xù),這些方法提供了對開發(fā)過程的非常直觀的管理。RUP采用了萬維網(wǎng)技術(shù),可以增強團隊的開發(fā)效率,并為所有成員提供了最正確的軟件實現(xiàn)方案。RUP處理過
11、程為軟件開發(fā)提供了規(guī)定性的指南、模板和范例。它可以通過提供一個應(yīng)用于整個軟件開發(fā)周期的、可定制的最正確開發(fā)方 案架構(gòu),RUP可以對整個開發(fā)小組的工作進行指導(dǎo)和安排。RUP將工程管理、商業(yè)建模、需求管理、分析和設(shè)計、測試以及變更控制等,統(tǒng)一到了一個一致的、貫穿整個開發(fā)周期的處理過程。RUP正如其名,它使團隊中每個開發(fā)人員的見解和思想得到統(tǒng)一,使開發(fā)小組成員的溝通更為容易,而這正是任何工程要取得成功 的關(guān)鍵因素;它增強了開發(fā)人員對軟件的預(yù)見性,最終的好處就是提高了軟件質(zhì)量,并有效縮短了軟件從開發(fā)到投放市場的時間,全面提 高了開發(fā)速度。RUP是嚴格按照行業(yè)標準 UML開發(fā)的,它的特點主要表現(xiàn)為如下六
12、個方面:, 開發(fā)復(fù)用。減少開發(fā)人員的工作量,并保證軟件質(zhì)量,在工程初期可降低風險。 對需求進行有效管理。 可視化建模。 使用組件體系結(jié)構(gòu),使軟件體系架構(gòu)更具彈性。 貫穿整個開發(fā)周期的質(zhì)量核查。 對軟件開發(fā)的變更控制。RUP可以縮短軟件工程的開發(fā)周期,實現(xiàn)大型工程的快速開發(fā),對于中小型工程RUP就顯的過于龐大,其需要投入的本錢也很非常觀。3.敏捷開發(fā),極限編程2001年,為了解決許多公司的軟件團隊陷入不斷增長的過程泥潭,一批業(yè)界專家一起概括出了一些可以讓軟件開發(fā)團隊具有快速工軟件項目快速開發(fā)歡送閱讀作、響應(yīng)變化能力的價值觀和原那么,特征驅(qū)動軟件開發(fā)他們稱自己為敏捷聯(lián)盟。敏捷開發(fā)過程的方法很多,主
13、要有:SCRUM ,Crystal,FeatureDriven Development,簡稱FDD,自適應(yīng)軟件開發(fā)(Adaptive Software Development,簡稱ASD),以及最重要的極限編程(eXtreme極限編程是一套能快速開發(fā)高質(zhì)量軟件所需的價值觀、 益。XP在很多方面都和傳統(tǒng)意義上得軟件工程不同,同時,Programming,簡稱 XP)。原那么和活動的集合,使軟件能以盡可能快的速度開發(fā)出來并向客戶提供最高的效它也和傳統(tǒng)得管理和工程方案得方法不同。這些方法在軟件工程和其他管XP。理活動中都有借鑒意義。XP具有12個過程,只有完全使用12個過程才是真正使用了XP,只是簡
14、單使用了其中一個方法并不代表使用了現(xiàn)場客戶On-site Customer方案博弈Planning Game 系統(tǒng)隱喻System Design 簡化設(shè)計Simple Design 集體擁有代碼 Collective Code Ownership結(jié)對編程Pair Programming 測試驅(qū)動Test-driver小型發(fā)布Small Release重構(gòu)Refactoring 持續(xù)集成Continous integration每周40小時工作制40-hour Weeks 代碼標準Coding Standards卜面是極限編程的有效實踐:軟件項目快速開發(fā)歡送閱讀1. 完整團隊XP工程的所有參與者
15、開發(fā)人員、客戶、測試人員等一起工作在一個開放的場所中,他們是同一個團隊的成員。這 個場所的墻壁上隨意懸掛著大幅的、顯著的圖表以及其他一些顯示他們進度的東西。2. 方案游戲方案是持續(xù)的、循序漸進的。每 2周,開發(fā)人員就為下2周估算候選特性的本錢,而客戶那么根據(jù)本錢和商務(wù)價值來選擇要 實現(xiàn)的特性。3. 客戶測試作為選擇每個所期望的特性的一局部,客戶可以根據(jù)腳本語言來定義出自動驗收測試來說明該特性可以工作。4. 簡單設(shè)計團隊保持設(shè)計恰好和當前的系統(tǒng)功能相匹配。它通過了所有的測試,不包含任何重復(fù),表達出了編寫者想表達的所有東西,并且包含盡可能少的代碼。5. 結(jié)對編程所有的產(chǎn)品軟件都是由兩個程序員、并排
16、坐在一起在同一臺機器上構(gòu)建的。6. 測試驅(qū)動開發(fā)編寫單元測試是一個驗證行為,更是一個設(shè)計行為。同樣,它更是一種編寫文檔的行為。編寫單元測試防止了相當 數(shù)量的反應(yīng)循環(huán),尤其是功功能能驗證方面的反應(yīng)循環(huán)。程序員以非常短的循環(huán)周期工作,他們先增加一個失敗的測試,然后使 之通過。7. 改良設(shè)計隨時利用重構(gòu)方法改良已經(jīng)腐化的代碼,保持代碼盡可能的干凈、具有表達力。8. 持續(xù)集成團隊總是使系統(tǒng)完整地被集成。一個人拆入Check in后,其它所有人責任代碼集成。9. 集體代碼所有權(quán)任何結(jié)對的程序員都可以在任何時候改良任何代碼。沒有程序員對任何一個特定的模塊或技術(shù)單獨負責,每個人都可以參與任何其它方面的開發(fā)。
17、10. 編碼標準 系統(tǒng)中所有的代碼看起來就好似是被單獨一人編寫的。11. 隱喻 將整個系統(tǒng)聯(lián)系在一起的全局視圖;它是系統(tǒng)的未來影像,是它使得所有單獨模塊的位置和外觀變得明顯直觀。如果模塊 的外觀與整個隱喻不符,那么你就知道該模塊是錯誤的。12. 可持續(xù)的速度 團隊只有持久才有獲勝的希望。他們以能夠長期維持的速度努力工作,他們保存精力,他們把工程看作是馬拉松長 跑,而不是全速短跑。極限編程是一組簡單、具體的實踐,這些實踐結(jié)合在形成了一個敏捷開發(fā)過程。極限編程是一種優(yōu)良的、通用的軟件開發(fā)方法,工程團隊可以拿來直接采用,也可以增加一些實踐,或者對其中的一些實踐進行修改后再采用。4.NoahWeb
18、39;'增量迭代"模式軟件項目快速開發(fā)歡送閱讀以RUP和極限編程中的增量所不同的的是NoahWeb “增量迭代模式僅適用于B/S軟件工程。考慮 B/S工程中的人員配置、工作重心與C/S工程截然不同的特殊性,因此該模式專門針對B/S工程而提出。從以往的很多B/S應(yīng)用開發(fā)案例來看,用戶的需求并不會在需求分析階段和原型開發(fā)階段就可以準確獲得,時,往往在應(yīng)用系統(tǒng)接近發(fā)布用戶才會提出各種各樣具體的需求。B/S應(yīng)用開發(fā)過程中各階段中用戶需求變化圖導(dǎo)致這樣的原因很簡單:在需求分析階段,最終用戶不可能通過開發(fā)文檔就能想象出應(yīng)用系統(tǒng)運行時的實際情況,而系統(tǒng)接近成型時,用戶通過真實使用會感覺到系
19、統(tǒng)存在的問題和設(shè)計缺陷。由于用戶需求在發(fā)布前頻繁變更這一特性,使用傳統(tǒng) B/S解決方案的設(shè)計人員和開發(fā)人員將會此階段面臨需求變更的各種考驗,工程周期和開發(fā)本錢也會在發(fā)布階段由于需求變更急劇擴大,有時甚至可能之前工作推倒從來。 考慮B/S工程的特殊性軟件項目快速開發(fā)歡送閱讀B/S工程以往一直采用同 C/S軟件工程一樣的開發(fā)模式和流程管理。但由于 B/S工程同C/S工程太多的不同之處,使得 B/S工程開發(fā)周期很難控 制。B/S 一方面要面臨著需要短時間獲取需求,需求不明確。另一方面 B/S開發(fā)中美工和界面設(shè)計美化的重要性也不同于 C/S工程,B/S工程往往由 美術(shù)和程序兩方面的人員來決定需求并且相
20、互制約,這些巨大區(qū)別似的不能將 B/S工程等同與C/S工程來進行管理。NoahWeb ”增量迭代開發(fā)模式的各步驟特點如下:r 用“迭代探索需求o 需求分析階段:設(shè)計人員關(guān)注的不是程序結(jié)構(gòu)設(shè)計,而是用戶流程,在需求分析階段就可以邀請用戶一起參與“動作分解圖的設(shè)計,讓用戶從一開始就可以感受到軟件使用的流程,讓所開發(fā)的軟件從一開始就貼近用戶需求; 原型階段:原型階段將整個軟件工程的數(shù)據(jù)輸入界面和輸出按照動作流程呈現(xiàn)給用戶,讓用戶可以直觀的從輸入輸出的具體細節(jié)體驗軟件,反應(yīng)修改意見,讓開發(fā)的軟件再次貼近需求。 實現(xiàn)階段在此階段,還可以讓用戶通過至少兩個階段性的演示讓用戶體會軟件的流程和真實的數(shù)據(jù)輸入輸出,體驗真實的軟件使用感覺,為項目開發(fā)團隊反應(yīng)出更準確的需求。 發(fā)布階段軟件項目快速開發(fā)歡送閱讀在發(fā)布階段軟件已經(jīng)能非常貼近最終用戶需求,即使發(fā)布后更意外的需求變更,也能輕松應(yīng)變。使用
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子商務(wù)平臺推動企業(yè)集中化、智能化采購的實踐案例
- 電子商務(wù)平臺的客戶服務(wù)與用戶留存策略
- 2025年度會議會刊與宣傳資料制作服務(wù)合同
- 2025年度租賃合同糾紛解除與租賃物評估及賠償協(xié)議
- 二零二五年度北京市農(nóng)產(chǎn)品加工企業(yè)勞務(wù)合同模板
- 二零二五年度土地使用權(quán)轉(zhuǎn)讓及城市更新項目中介協(xié)議
- 2025年度建筑防水涂料供應(yīng)及施工合同
- 2025年度消防演練場地租賃與安全保障合同
- 最貧窮的貧困申請書
- 2025年雙膠書刊紙項目可行性研究報告
- 臟腑辨證與護理
- 虛擬化與云計算技術(shù)應(yīng)用實踐項目化教程 教案全套 第1-14周 虛擬化與云計算導(dǎo)論-騰訊云服務(wù)
- 甲基丙烯酸甲酯生產(chǎn)工藝畢業(yè)設(shè)計設(shè)備選型與布置模板
- 徐金桂行政法與行政訴訟法新講義
- 瀝青拌合設(shè)備結(jié)構(gòu)認知
- 2023年北京高考政治真題試題及答案
- 復(fù)旦中華傳統(tǒng)體育課程講義05木蘭拳基本技術(shù)
- 北師大版五年級上冊數(shù)學(xué)教學(xué)課件第5課時 人民幣兌換
- 工程回訪記錄單
- 住房公積金投訴申請書
- 檢驗科生物安全風險評估報告
評論
0/150
提交評論