由于市场的压力,一个软件企业不仅要提高开发人员个体的工作效率,还要提高整个开发团队以及整个企业的开发效率,但在现有的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,开发人员的相互交流非常重要。可是现有的主流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
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/