由于市場的壓力,一個軟件企業不僅要提高開發人員個體的工作效率,還要提高整個開發團隊以及整個企業的開發效率,但在現有的Java 開發環境XDEs下無法完全做到這些,所以新一代開發環境CDEs (Collaborative Development Environments)就產生。Grady Booch和Alan W. Brown的研究表明一個程序員一天工作時間的分配是這樣的:分析占16% (從 5% 到 40%不等), 設計占14% (從 1% 到 40%不等),編程占16% (從0% 到 60%不等), 測試占10% ,打電話占 3% ,閱讀占7% (電子郵件,文檔,月刊和雜志),參加開發會議占 10% ,無關的會議占 7% 。從這些數據可以發現,開發人員用于交流的時間約占工作時間的1/3,開發人員的相互交流非常重要?墒乾F有的主流Java開發環境一般僅將分析、設計、編程和測試等工具集成進來,卻未包括用于交流的工具,這顯然不合理。因此,所謂CDEs就是將用于人與人、人與團隊以及團隊與團隊進行交流的工具集成進來的開發環境,比如,CDEs常具有發送電子郵件、進行及時通訊和屏幕分享等功能,通過實現無損耗過程的交流提高開發團隊的開發效率。
現在已經商業化的 CDEs是CodeBeamer Collaborative Development Platform和CodePro AnalytiX,上述兩款軟件都提供Eclipse的插件,可以與Eclipse集成在一起,使Eclipse升級成為一個CDEs,從而提高Java 開發人員的開發效率,而Eclipse基金會開展的兩個開發項目 Stellation和 Koi都是希望Eclipse具有一定的協同功能。此外,GILD (Groupware-enabled Integrated Learning and Development)、Hipikat以及IBM的Jazz也是值得關注的研究項目。大家肯定知道Borland已經宣布開發基于Eclipse 的新版JBuilder-"Peloton",Peloton就是一個CDEs(Collaborative Development Environments),當它明年上半年發布時,就意味著Java開發環境進入CDEs時代,現在Java開發環境還處于 XDEs與CDEs交替的階段。
Java開發環境的未來
在可以看得見的將來,Java的開發環境還會是以CDEs的形式存在。開源組織或開發工具供應商將會努力為軟件的開發創建一個絕對光滑的平面 (frictionless surface),實現無損耗的開發過程,以提高開發效率。為了實現無損耗的開發過程,Java的開發環境將會關注以下幾個方面:
起步階段方面
協作開發方面
維護開發團隊有效溝通方面
多個任務的時間協調方面
相互協商方面
資料有效性方面
上述6個方面是最容易出現損耗的地方,如果出現了損耗將會浪費時間和金錢,降低整個團隊的開發效率。比如,每個Java開發人員都有這樣的經歷,當一個新的項目開始時,總要有一個了解的過程,而進入新的開發團隊時也需要一個適應過程,這些都叫起步損耗。在起步階段花費的時間越少,起步損耗就越少,而開發的效率就越高。所以減少6個方面的損耗相應地就是提高了開發效率,這就是CDEs比XDEs開發效率更高的奧秘。未來的Java開發環境也許具有下述功能:
及時通訊功能
舉辦網絡會議功能
集中的信息管理功能
應用程序共享功能
搜索與查詢功能
屏幕共享功能
任務列表功能
文檔的流轉功能
在線投票功能
電子公告功能
計劃與日歷功能
時間提示功能
工作流程安排功能
電子郵件功能
...
但這里必須承認未來Java開發環境是如何具體去實現無損耗的開發,還需要時間給予答案,因為現在所能采用的方法未必是最好的,比如,使用面向文件的 CVS進行協同開發就有需要改進的地方。
總結
羅哩羅唆一大堆,歸納起來不過就是:一個目的、三種手段以及一條規律。
一個目的:十年Java開發環境的演變,其目的就是為了提高開發效率。
三種手段:
提高集成在Java 開發環境中開發工具的性能和易用性
將Java開發環境盡可能的覆蓋到整個軟件的開發生命周期
集成人與人、人與團隊以及團隊與團隊進行交流的工具
一條規律:軟件開發環境的發展過程是從CLEs到IDEs再到XDEs最后進入CDEs,這是由Grady Booch總結出來的,套在Java開發環境上也適用。
參考文獻
1. Grady Booch and Alan W. Brown, "Collaborative Development Environments", Advances in Computers 59, Aug. 2003.
2. Li-Te Cheng,Cleidson R. B. de Souza,Susanne Hupfer,John Patterson, Steven Ross, "Building Collaboration into IDEs", ACM Queue vol. 1, no. 9 - December/January 2003-2004
3. J. des Rivie` res,J. Wiegand, "Eclipse: A platform for integrating development tools", IBM System Journal,Volume 43, Number 2, 2004
4.The Java Extension Mechanism.
5. Grady Booch, "History of Development Environments", January 29, 2004
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/