蔡文婷(武昌理工學院,武漢430223)
淺談交換編程技術在軟件開發中的應用
蔡文婷
(武昌理工學院,武漢430223)
摘要:交換編程的含義非常易于理解,也比較直接,即兩名或多名程序員輪流對同一軟件系統進行開發,但是他們所負責的卻是模塊不同階段的不同任務。交換編程方式也可以叫做交換開發,現階段該方式早已應用到了多種軟件的開發過程中。對此,本文闡述了交換編程技術應用的必要性,簡要分析了交換編程技術,并介紹了交換編程技術的應用環境與流程,指出了該技術的價值。
關鍵詞:交換編程;軟件;開發
在過去較長的時間里,人們在開發軟件過程中都會應用到兩種編程技術,分別為獨立編程技術和結對編程技術。但是前者由于開發人員間互相缺少溝通,容易造成產品質量不夠高。而后者盡管實現了開發人員的充分溝通,并在一定程度上提升了代碼質量,但卻出現了人力資源浪費的問題。因此,對編程技術的改革也就成為了各大軟件開發公司需要解決的重大課題。這時,交換編程技術憑借著自身的高效性與合理性得到了人們的關注與應用。
從整體上看,交換編程技術是結對編程技術的進一步發展與提升。這是因為這兩種技術都需要多名程序人員一起達到某一模塊階段的任務。但是不同的是,交換編程技術無需兩人共用同一臺電腦,每個程序人員都配備了獨立的電腦。這樣一來,在輪流負責同一個模塊不同階段的開發過程中,軟件開發公司可以極大的節約時間[1]。不僅如此,就任務分工而言,每個程序人員都負責不同階段任務的完整開發工作,但不論是在項目的開發階段還是在迭代階段,都需要多人任務輪流交換或兩人任務兩兩交換。這種方式能夠有效提升代碼質量,還能夠從整體上提升企業的工作效益。
2.1應用環境
交換編程技術有著十分突出的適應性,而且對項目規模也未設置較高的標準,尤其是一些項目規模較大或人員臨時調動頻繁的情況。不僅如此,就項目開發團隊規模而言,因為交換編程技術的每個任務交換都要使用到多個程序人員,所以該技術更加適應于人數較多的開發團體[2]。除此之外,就程序人員的素質而言,必須要有一到兩個兩三年以上開發經驗的專業人員,而這一點也是交換編程技術在應用中最基礎的要求。
2.2應用方法
將交換編程技術引入到軟件開發中必須要制定最為科學與合理的交換周期。而交換周期的制定則是要以項目開發實際為依據,也就是按照項目迭代階段或開發階段作出合理的劃分[3]。階段劃分完成之后,所有的階段都必須要完成一次任務交換。
如果項目規模較小,那么在軟件工程實施的迭代階段根據以下方法完成交換編程:
(1)軟件定義階段,市場調研工作與需求分析工作可輪流交換。其中,需要注意的一點是程序員人數應保持在三個及以上,并將所要開發的部分進行交換。例如,程序人員甲的開發內容給程序人員乙,程序人員乙交給程序人員丙,程序人員丙再交給程序人員甲。
(2)概要設計階段,不論是需求分析還是概要設計都要輪流交換。
(3)詳細設計階段,概要設計與詳細設計也都需要輪流交換。
(4)編碼實施啟動階段,詳細設計和編碼交換同樣也要交換,交換方式通常選擇兩兩交換方式。這種方式主要就是兩個程序員將各自的內容給對方看,不轉交給第三人。
編碼之前都進行輪流交換的最終目標就是使軟件開發程序人員都能夠掌握項目的開發進度與情況,從而使其能夠開展有效的信息交流[4]。在交流過程中,程序人員可以自由說出自己的想法,這樣一來,在探討某項目模塊需實現的功能時將會有更多的意見與建議選擇,避免由于單獨的個人想法而導致嚴重的工作失誤,最終保證軟件的順利開發。??詳細設計與編碼測試都進行兩兩交換的原因就是前期需求早已從整體上都得到了穩定,此時就無需對用戶需求再作深入的了解了,只要完成編碼任務就可以。在這一過程中,輪流交換沒有太大的存在價值,甚至還會延誤開發工作的進行。
上述交換編程方法所依據的是以迭代階段為交換周期的方式。除此之外,若將項目開發階段作為交換周期,那么就可把軟件生存周期的所有階段再細分成若干個小階段[5]。之后,再按照細分的階段總數配置相應數量的交換編程程序人員。與以迭代階段為交換周期相類似,編碼前的所有階段都應進行三個以上程序人員輪流交換,編碼階段及之后的各個階段僅需進行兩兩交換方式即可。
交換編程技術有著多種優點,主要包括減少了人力資源的浪費、實現了程序人員的溝通以及提升了軟件開發效率等。當前,交換編程技術早已憑借著這些優勢引起了大量軟件開發公司的關注。在未來的時間里,人們將嘗試把交換編程技術與結對編程技術進行有機的結合,這樣一來,參與交換編程工作的程序人員人數將比之前多一倍。不僅如此,由于溝通與交流的頻繁和及時,軟件開發過程中可能出現的偏差也將會得到有效降低,最終提升軟件開發工作質量。
參考文獻:
[1]宋彪,孫良文,楊睛.基于VB語言的用友軟件常用小工具的開發[C].第十屆全國會計信息化年會論文集.呼和浩特:內蒙古財經學院,2011:494-500.
[2]馬亮,張剛.測試用例自動生成方法的現狀及研究[J].現代電子技術,2013(06):126-127.
[3]陳繼鋒,沈鈞毅.一種結構測試數據自動生成的框架[J].計算機工程,2012(08):6-7.
[4]夏平平,陳正君.軟件測試和軟件質量管理的分析和研究[J].計算機與網絡,2009(03):116-118.
[5]賀平.軟件類專業的工程教育研究與實踐一以軟件測試專業為例[J].計算機教育,2010(11):82-89.