劉昭,1980年8月,漢族,男,山西省大同市,碩士,工程師(中級),計算機軟件
摘 要:基于谷歌Android智能操作系統平臺,通過一種軟件工程開發模式中非常流行的、輕量級的、高效的、科學的軟件開發方案 — 極限編程開發模式,并通過Java迭代重構開發方法來滿足逐漸變化的用戶需求,完成Android APK(Android Package)的開發工作。本文對極限編程開發模式的核心思想、極限編程軟件(APK)實施準則、 極限編程軟件(APK)實施要領、 極限編程軟件(APK)開發流程進行討論。
關鍵詞: 極限編程 Android APK開發 軟件工程
中圖分類號:TP3 文獻標識碼:A 文章編號:1672-3791(2015)01(a)-0000-00
隨著移動互聯網絡的興起,和以Android操作系統為平臺的智能設備活躍用戶不斷增多, 越來越多的公司和開發者開始關注移動終端的用戶體驗,并積極拓展移動終端的功能提升UI界面的交互,這些需求帶來大量基于Android操作系統的軟件開發工作,以極限編程開發模式可以高效實現完成這件工作。
1 極限編程核心思想
1996年Kent Beck提出了極限編程(Extreme Programming,簡稱XP)。這種軟件開發方法高效、輕量、有柔性、可預測、風險低、科學且充滿樂趣,其應對需求的變化是通過迭代周期短來實現的[1]。Kent Beck建議,在進度緊、需求變化大、規模小且質量要求嚴格的項目中使用極限編程[2]。其核心思想有以下幾點:
溝通:設計者與Android終端用戶、設計者與開發者間溝通不暢,由此產生了項目開發中90%的問題,所以,在極限編程中溝通使必須的。
極簡:編程盡量保留簡單的代碼,只要能正常工作就行。Kent Beck表示,編一個復雜的系統,還不如設計一個簡單且又能滿足需要的系統,因為有可能永遠都不會發生預先所考慮的情況。
反饋:對用戶反饋的意見要盡快獲取,且越詳細越好,這樣開發出來的成果才能更好的滿足用戶的需求。
2 極限編程軟件(APK)實施準則
極限編程核心思想衍生的基本準則使極限編程的開發規范化。
(1)快速反饋:反饋要盡可能的早,使Java編程人員在主要的Android 軟件功能上能精力集中。
(2)假設簡單性:注意力集中在簡單設計的實現上,并結合燃燒圖加以完成。
(3)提倡更改:“擁抱變化”是極限編程需強調的,反饋及時,就可對反饋結果采取相應的措施。
3 極限編程軟件(APK)實施要領
(1) 里程碑:根據Google 發布Android周期,決定功能計劃發布的里程碑。
(2) 原子發布:TG團隊以最短時間為周期迭代開發、增量方式發布新版本。
(3) 統一描述語言:通過統一描述開發人力、用戶和項目管理人力語言來描述功能。
(4) 極簡設計:只完成當前功能,復用Android SDK及Java本身的API。
(5) 測試驅動:完成CUnit/JUnit等測試用例開發,再進行編碼之后進行白盒測試。
(6) 重構:利用Java的重構思想完成架構變化,同時通過重構刪除冗余代碼邏輯,簡化系統依賴,增加代碼設計的靈活性。
(7) 結對編程:共用開發設備,一人對代碼進行編寫,另一人負責評審以確保代碼正確。
(8) 代碼共享:利用Git/Perforce等工具管理整個團隊的代碼,團隊成員都可以更改。
(9) 代碼集成:注重Main branch 與Trunk branch的集成時機,以原子發布為思想進行集成,構造APK,自動發起檢查APK版本的所有測試工作。
4 極限編程軟件(APK)的實施開發流程
與傳統的軟件工程方法相同,Android極限編程也分為計劃、設計、編碼和測試四個步驟,不過具體操作方面,明顯不同于傳統的軟件工程方法[3]。用戶是Android極限編程項目的起點。APK的功能描述由用戶定義,并提供測試用例。據此,若干個迭代周期可由開發人員來組織,當前用戶認為最重要的APK功能是每個迭代周期的集中開發工作。一個可用的小版本在每一個迭代周期結束后提供給用戶,用戶并以此作為反饋依據,根據用戶的反饋意見,相應的變化和改進在下一個迭代周期中再進行。具體來說:
(1)傾聽:用戶、設計人力,開發人力,通過頭腦風暴,使得三方人員可以徹底溝通需求。
(2)設計:整個APK的設計工作不能是自頂向下的,其有著不斷變化的需求。所以,設計不是一勞永逸的過程,而是一個長期性的工作。把當前需要的功能放到APK中來,就是設計的核心思想。
(3)編碼:針對Android 最新版本的各個API能力,完成從C層的驅動,C++中間件及Java上層編碼工作。
(4)測試:投入測試人力,可以讓開發人力有更長的時間進行Bug修正。隨著時間的變化,APK的穩定性會不斷增加。測試有兩種,即白盒測試和黑盒測試。白盒測試是編程人員的測試用例,使程序能夠正常運行;另一種由測試人力或是用戶指定編寫的功能測試,是為了保證APK與用戶需求及期望的運行方式一致。
在實踐時,開發人員往往只重視眼前需求,對未來需求的變動所帶來的項目風險和開銷則通過Java的重構來適應,這是一個非常關鍵的假設。解決用戶當前的問題是通過高效率和高質量來完成的,在滿足用戶未來需求方面付出的代價最小且靈活性最大,在平衡短期和長期之間,極限編程的安排比較巧妙[4]。
5 結束語
與用戶交流、正確理解需求、簡單設計、注重測試、迭代編程,是Android極限編程開發方法的核心。它使未來需求的設計弱化了,軟件開發的速度也加快了,并開發出滿足用戶需求的高質量軟件。
參考文獻
[1] Kent Beck,雷劍文譯.解析極限編程[M].北京:機械工業出版社,2011.
[2] 谷秀巖,關于極限編程的理論研究[J].計算機與網絡,2004.12:93-95.
[3] Robert C.Marti.敏捷軟件開發:原則、模式與實踐[M],北京:清華大學出版社,2003.
[4] Newkirk,袁國忠譯.極限編程實踐[M],北京:人民郵電出版社,2002.