蔡宗慧
(秦皇島職業技術學院,河北 秦皇島 066100)
極限編程在軟件項目開發中的應用分析
蔡宗慧
(秦皇島職業技術學院,河北 秦皇島 066100)
極限編程在軟件項目開發中的應用已經十分普遍,并隨著信息技術的不斷發展而深入到了社會的各個行業之中。如何通過極限編程來提高軟件的開發效率,使軟件更加貼合用戶需求,是當前值得研發人員思考的問題。本文主要分析了極限編程的概念和原則,并對軟件開發中極限編程的過程和實踐進行探討,以期為軟件開發行業的壯大提供一些有益的經驗。
敏捷開發;極限編程;軟件項目開發
隨著信息技術的不斷發展,軟件產品的更新換代十分迅速,因此需要嚴格控制產品的開發周期,以提高自身的競爭力。其次,軟件還要具備快速響應和多種邏輯運算的功能,以適應不斷變化的系統環境。敏捷開發就是目前最為流行的一種軟件開發方法,它不僅能夠快速響應用戶的需求,還十分重視開發過程中人與人之間的交流,提高了軟件開發效率。敏捷開發的過程是漸進的、迭代的。目前比較常見的敏捷開發有SCRUM、動態系統開發、水晶系列開發等,其中使用最為廣泛的方法就是極限編程。
極限編程的概念由美國人Kent Beck于1996年提出的,Kent Beck自九十年代初期就一直致力于探索一種新的便捷有效的軟件開發方法,在經過多年的觀察研究之后,終于在軟件開發項目中引入了一個新的概念:極限編程(Extreme Programming),簡稱為XP,其中Extreme是指充分利用好的開發方法并運用到實踐當中。XP作為敏捷開發的主要代表,使用起來簡便靈活,具有開發效率高、風險相對低的特點,而且XP注重編程實踐,適合要求嚴格、環境復雜的開發項目。它所提倡的軟件開發理論,與以往的理論都不相同,并沒有針對軟件開發的細節制定繁瑣規則,而是利用實踐活動來約束軟件開發的過程。軟件項目開發的團隊,可以直接使用極限編程進行工作,也可以根據自身需求進行一定的變動和改良,使軟件開發工作進展更加順利有序。
極限編程的軟件開發原則主要體現在注重實踐方面,具體內容如下:
3.1 遞增改變
在進行開發之前,要對軟件整體結構和未來的發展制定出一個詳細的計劃,并在設計過程中逐步改進完善軟件的各個功能,通過量變累積實現質變,使軟件的開發水平呈遞增的趨勢,從而更好地解決軟件中的問題。
3.2 快速反饋
在當前的軟件應用市場中,快速反饋是用戶的主要需求之一。因此開發人員要著力縮短軟件開發的迭代周期,使系統能夠在接收到用戶指令之后及時進行反饋;這也有利于開發人員迅速檢查工作質量,確認是否滿足客戶需求。
3.3 預留升級
在開發初期,開發人員無法預知未來市場和用戶對于軟件的要求,因此只能盡力做好系統中的基礎功能。同時為軟件的升級調整做好充分準備,在用戶需要的時候對軟件進行必要的更改,以更好地適應使用環境。
3.4 質量保證
無論什么時候,軟件產品的質量都不容下降。在市場競爭激烈的環境下,好的質量就是產品的實力體現。一旦因為過于注重實踐環節,盲目壓縮迭代周期而影響了產品的質量,其結果只能是失去用戶的信賴。
4.1 探索階段
探索階段的主要內容是通過與客戶交流,獲取最準確的用戶要求,使得初始的開發框架能夠最大限度地滿足用戶。常見的交流方式是運用圖示,用例圖將軟件簡潔明了地展示給用戶觀察。在例圖中用戶的角色按照其特點進行了劃分,并詳細規定了每種角色所擁有的功能和權限。為了使用戶更好地理解正在開發的軟件過程,同時使每個開發人員對自己所負責的工作和自己在全局中的作用有所了解,需要建立一個數字模型,用更加立體化的方式來表現軟件開發過程。
4.2 小型發布
在建立數字模型之后,結合用戶的意見進行改進,確定軟件開發的技術架構,并快速確定小型發布的范圍。小型發布的作用是讓客戶對軟件進行初步的審核,在通過之后由客戶代表確定系統的核心內容。同時制定出第二次發布內容,即回收不良資產及后續處置的計劃。經過開發人員的計算,得出下一次發布的時間。下一次發布的內容主要還是針對不良資產信息維護與不良資產的處置需求,并適當增加關于數據查詢和系統維護的內容。結合實踐情況來看,小型發布的運作形式能夠使系統開發時間與投產時間的差距縮小,用戶的意見能夠及時反饋給開發人員,并迅速在新的發布中得到解決。
4.3 迭代開發
系統每一個版本都會被分解為若干個迭代,其時長為一周,這樣做的目的是為了盡快收到用戶的反饋意見,并及時解決。迭代的長度是開發人員與用戶在探索階段就制定好的,在以后的開發過程中,迭代長度都將保持不變。用戶通常只需要為系統角色和功能選擇優先級,然后由開發人員將用戶的選擇分解為小型任務,每個任務執行的時間為兩天左右;在達到迭代時長之后,這些任務會根據其內容及特點進行合并,然后進入到下一個迭代周期。
4.4 測試驗收
在對系統進行不斷地測試的同時,接收用戶的反饋,并繼續小型發布。在這個階段中,開發人員和用戶之間的交流仍然對軟件的開發起著重要作用,既有效減少了小型發布的次數,也提高了軟件開發的質量。開發人員之間也要進行溝通,互相探討如何實現用戶的角色和功能,在每一次迭代開發中逐步實現它們,使軟件始終處在不斷增速的開發過程之中,反復更改持續集成,最終完成整個軟件的全部開發,然后進行提交。
假設某企業需要通過極限編程開發一個軟件項目,其過程如下:
5.1 制定模型深度溝通
首先是制定初步的數字模型,將模型交給用戶查看,在講解的過程中不斷聽取用戶的意見,將其收集整理為一個需求分析,內容包括主系統管理、分公司系統管理、業務統計查詢、權限設置管理、網絡辦公模塊、客戶意見處理平臺等。這些內容都需要開發人員與用戶進行深度溝通,不斷調整開發框架以適應用戶的需求,并在開發初期決定迭代周期的長度與側重內容。通常企業會選擇在第一個迭代周期中重點開發業務統計查詢和權限設置管理兩個部分。在迭代周期內,開發人員制定出詳細的流程圖和文字計劃,然后交于用戶進行審核;在得到用戶確認及新添加的信息之后,再次進行迭代開發。從第二個迭代周期開始,每一個軟件的版本都可以實際運行,讓用戶在實踐使用的過程中不斷提出改良意見,以方便開發人員進行修改。
5.2 簡潔設計保證實用
通常初次版本的界面十分簡潔,開發人員重點放在實現軟件各功能上,只提交出軟件的基本框架和核心功能。在初次版本得到用戶的肯定之后,再由美工人員根據客戶需求進行細節改良。這個過程基本上會持續若干個迭代周期,當最終軟件版本完成之后,其功能和界面都已經符合了用戶的要求;在保證軟件質量的基礎上,最大限度地提高了軟件界面的觀賞性。
5.3 優化編程重視方法
編程在軟件開發中是最重要的一個環節,開發人員要在編程之前制定好開發標準,以保證程序代碼的優化。可以采用Spring+Struts+Hibernate的J2EE輕量級開發框架,它具有SSH結構清晰、集成多種底層操作、開發速度快的優點。服務器和數據庫盡量選擇J2EE開發框架,以便為開發過程中系統部署提供便利。制定嚴格的代碼書寫規范,如類名、變量名、注釋等;利用版本控制系統共享和管理代碼,控制代碼修改,使代碼保持完整性和一致性,這樣既提高了代碼的可讀性,又加強了開發人員之間的可協調性。
在開發過程中有一個很重要的方法就是結對編程,它是由兩個開發人員在同一臺電腦上共同編寫一組用于解決某一個問題的代碼。其中一個人負責寫代碼,而另一個就負責檢查代碼。這種方法使得每組代碼都有兩個人來進行確認,提高代碼的正確性;每遇到重要決策的時候,可以由兩個人共同研究決定;在編寫和檢查代碼時候,兩個人還可以進行良好的溝通,為后期代碼的修改奠定基礎。可見重視方法能夠有效提高軟件開發的質量。
5.4 持續進行集成測試
結對編程的代碼每天都要被上傳到數據庫中進行集成
測試,且測試包含了交換模式和持續模式,目的是為了在最逼真的實踐環境中及時發現軟件問題并改正,從而保證軟件開發的質量。每次當代碼完成數據庫的集成測試之后,可以由用戶進行實踐使用測試,以便及時提出更改意見。開發人員之間不斷進行溝通,提高了相互協作的效率,使軟件在按時完成的基礎上,更加符合用戶需求。這樣開發人員的工作壓力相對減輕,軟件的開發質量也有所提高。
極限編程作為一種輕量級軟件開發方法,其靈活性是與傳統軟件開發方法的最大區別;它能夠更加清晰地體現出開發人員的意圖和用戶的需求,并根據實際情況進行最恰當的修改。目前國內軟件開發行業不容樂觀,很多項目都是時間緊、要求高、問題多,為了能夠在開發過程中最大限度地滿足用戶要求的軟件,使用極限編程是一項值得信賴的選擇。
[1]劉玲惠.敏捷軟件開發中的極限編程[J].產業與科技論壇,2011,10(22).
[2]蔡娟娟.極限編程及其應用[J].科技視界,2013(35):64.
[3]蔡志鋒.高校計算機網絡信息安全及防護策略研究[J].電腦與電信,2015(10):23-25.
TheApplication of Extreme Programming in Software Project Development
Cai Zonghui
(Qinhuangdao Vocational and Technical College,Qinhuangdao 066100,Hebei)
With information technology developing into various industries,the application of extreme programming becomes popular in software project development.Therefore,it is necessary for researchers to think about how to improve the efficiency of software development by extreme programming and make the software more relevant to users’requirements.This article mainly analyzes the concept and principle of extreme programming and it also discusses on the extreme programming process in the software development,hoping to provide some useful experience for the development of software industry.
agile development;extreme programming;software development
TP311.53
A
1008-6609(2016)07-0084-03
蔡宗慧,女,河北秦皇島人,碩士,講師,研究方向:計算機技術。