软件开发生命周期包括需求分析、设计、开发、测试、交付部署等各个阶段,以及贯穿在整个开发过程的软件开发项目管理环节,2006年,在每一个阶段都出现了令人眼花缭乱的技术与应用,同时这些技术还将进一步影响2007年的发展,令人充满期待。

  建模和开发工具平台

  UML在版本升级到2.0以后,原来的UML工具的大哥大Rational从风行到被收购,现在几乎没有了声音。

   建模工具没有太显著的变化,倒是开发工具出现了从原来的百花齐放到现在只有少数巨头竞争的局面。其中耀眼的当属诞生于IBM,后在开源社区得到快速发 展的Eclipse,目前它已进入嵌入式开发领域。另一个是微软携其强大财力与人力打造的VSTS开发工具平台,它将成为可以贯穿整个软件开发生命周期 和扮演不同的角色的平台,在近也有不俗表现。此外还有Sun的NetBean IDE开发工具和BEA的WorkShop开发工具等。

  这些开发工具平台都可以进入整个软件开发生命周期,并且可以在其上进行各种不同应用的开发,说白了是兼容性足够强。

  开发与应用

   不论使用何种工具,真正活跃的仍然是应用与开发。JavaEE5的发布,EJB3.0标准的落地,标注取代部署描述符,实体即是POJO等,也许这些 改变对Java进行轻量级应用开发的复杂性会有所改变。在软件开发界流行的框架,包括Struts、Spring、Hibernate等,这些分布在 Web容器和EJB容器中的各种应用框架变得让人眼花缭乱,要选择适合自己的看来越来越困难了。由于JavaEE5的发布,的JBoss应用服务器 的结构也发生了较大的变化。微软.NET的2.0平台和下一代操作系统Window Vista桌面版发布,同时提供给广大用户的WinFX平台,不仅给开发者而且给用户带来了挑战。

  由Ruby和Retail的联姻,AJAX的新瓶装旧洒,再加上Web2.0应用概念上的炒作,脚本语言、Web开发与应用在今年着时火了一把,因此今年搭上顺风车的PHP也要求能够同Java应用交互,克服语言与平台的障碍。

   桌面与企业服务器的开发应用也有相当发展,中间件市场、数据库、ERP等各种应用随着SOA得到市场的认可,各种技术与应用以及SOA的产品也逐渐多了 起来。随着3G时代的到来,智能手机占有率的提升,手机平台的开发市场正进一步;不仅是手机,数字电视、各种电器和消费类电子产品的智能化发展也促使嵌入 式领域的开发发生了很大变化,如:IP机顶盒、基于GPS全球定位系统的设备、工业自动化和医疗设备等,商业平台与开源Liunx平台共存。

  开源、互联网及其他

   开源软件逐渐挺进企业主流应用,不仅是Linux,还有Boss中间件、Mysql数据库、EnterpriseDB数据库等,而且还有各种应用软件, 包括:Open office办公套件、Firefox浏览器、ERP、CRM等等。开源力量的加入也使得非常多的应用进入到微软平台上,在微软的.Net平台上也出现了 大量的开源应用软件。

  互联网大的应用与技术是搜索、软件服务化(Software as a Service)。不管是通用搜索还是行业垂直搜索,不管是互联网搜索还是企业搜索,都已经不仅针对文本而且开始向音视频搜索发展了。

  后不要忘了,由于人们对应用要求的提高,测试在这几年显得越来越重要了,测试工具与测试理论都有很大发展,这一点也值得关注。(文/邓健)

  手机软件开发将与PC趋同

  王权平

  程序员,供职于威盛电子(中国)有限公司,从事GSM/GPRS芯片组的开发,主要工作包括协议软件设计、开发与测试,以及智能手机平台通信中间件的设计与开发。

   2006年出现了很多叫好也叫座的手机产品,这些成功手机的背后,都明显地揭示出了手机软件开发技术的若干发展趋势。2007年手机软件技术将继续迅速 发展,无论单处理器平台或是双处理器平台,网络应用和多媒体应用都将是主要的开发方向,而C++和Java将是的开发语言。

  未来, 传统的单处理器手机平台仍将在低价手机和特色手机市场上保持不可替代的优势。其软件通常都由芯片厂商和手机设计公司来提供,除了J2ME平台外,缺乏开放 和标准的API是其固有的缺陷。因此几乎没有来自第三方的原生的面向其处理器和编译平台优化的软件,用户自行扩展的能力较差。展望未来,除了集成更多的应 用软件(如电子邮件、电子书和多媒体播放程序等)外,单处理器平台上的软件开发工作主要集中在新硬件模块的驱动程序以及图形用户界面的创新和提高上。开 发语言而言,C和C++仍然是;在底层通信软件尤其是协议栈的实现上,C语言仍将继续居统治地位;当然在驱动程序中,汇编语言也是不可或缺的。单处理 器平台上第三方开发人员的开发空间在于J2ME平台,但是各个解决方案对Java语言支撑能力的差异,使得Java程序很难达到真正的与平台无关。不过, 随着硬件能力的与提高和Java虚拟机的改善,特别是硬件级Java加速和ARM平台Java优化指令等特性的引入,可以预料J2ME将会成为单处理解决 方案的基础软件平台。

  双处理器平台由运行通信协议的基带处理器和运行用户界面程序的应用处理器组成,是智能手机的基础平台。未来智能手 机平台的软件开发中,中间件和应用程序都有很大的发展空间和需求。中间件主要包括图形库和通信库两部分。图形库重点在于提供更加华丽和友善的用户界面,增 强用户的操作体验,据称WinCE6.0即将提供Vista风格的界面;3D加速将是继2D加速后的第二个亮点;另外,图形库也将重点支持硬件级的多媒体 加速技术,从而支持包括移动音频和视频,特别是手机电视的应用。通信库部分将重点在统一的框架内整合各种广域、局域乃至个域通信技术。应用程序部分,网络 应用将会是2007年的发展重点。开发技术而言,J2ME在智能手机上的性能优于单处理平台,因此笔者看好基于J2ME平台的手机游戏和网络应用;而基 于C++的网络编程和多媒体编程仍将继续是Symbian平台、WinCE平台,以及Linux上Qt平台的的主要开发领域;另外PC平台上的基础软件组 件,如数据库技术等,将逐渐移植到手机平台上,提供其嵌入式的版本,以适应手机平台的硬件和软件限制。但是由于三大平台存在的巨大差异,软件的可移植性将 成为一个重要的问题。

  核心观点

  随着中间件的加强,手机应用软件开发将逐渐与PC趋同,将出现大量的个人软件开发者和第三方软件开发商,手机软件产业势必会有很大的发展。

  注重测试需求 做好流程建设

  戴金龙

  注册PMP,GB/GJB/ISO/CMMI内审员。原嫦娥工程地面应用系统质量组专家。历任某外企测试技术经理、项目经理及运营经理。对当代软件测试理论及工程实践有较好的领悟。

   当前,测试作为一项职业吸引了越来越多的人才;测试作为控制软件质量的有效手段,融入到了越来越多企业高层的管理理念中;测试作为一门学科,获得了 前所未有的壮大。但在测试技术蓬勃发展的另一方面,测试行业也在迅速地积累着各种问题,在接下来的一年里某些隐藏的问题可能会表现得很显著。

   第一个问题是如何让测试更有效地锲入到不规范的软件开发过程中。提出这个问题恐怕会有不少人大吃一惊:这类企业为什么不先规范软件的开发过程呢?这是不 是一个伪问题?其实,目前有不少软件企业都处在这种状态。但这些企业的管理层并不承认自己的开发过程不规范,反而认为这是一种灵活的、有个人特色的高效管 理。这样的氛围造成软件质量低下自是意料中的事情。

  即使企业管理层了解到测试是解决质量问题的有效途径,实施软件测试也是需要代价的。 目前的测试学科所提供的技术、流程、管理及方法论都是假设是在良好的(至少规范的)开发过程、管理氛围及测试环境中实施的,并没有提供在不规范软件开发过 程中做测试的解决方案,这样出现了所谓“理论”与“实践”的偏差。解决的办法有两个:一种是变革企业文化,规范开发过程,建立测试所需的相关环境,从而 实施规范、严格、有序的软件测试;另一种是拓展测试理论,针对不规范开发过程的特点,找到弥补、折衷的解决办法。根据笔者对国内软件企业的了解,后者将 是今后一段时间国内软件企业关注的热点话题。

  第二个问题是如何清晰地定义软件测试需求,使测试工作目标明确、有的放矢。这个问题是以前 的测试学科没有回答清楚的,非常需要深入研究,它将会是今后若干年的研究热点。可能有读者会感到费解:测试需求不是软件需求吗?其实不然。软件需求用于 指导后续设计的展开。而测试需求则是直接源自于客户的质量要求。测试需求的源头非常繁杂,如何删繁简,拿捏得当,目前没有现成的方法,仍需要做大量理论 研究和实践探索。

  第三个问题是如何规范软件测试流程以持续提高测试团队的绩效。这个问题目前已有一些答案。如“制定测试计划-设计测试 -执行测试-测试分析与总结”等等。从执行的角度而言,这类粗略的阶段划分或许已经够用,没有进一步研究的必要。但对于控制测试过程而言,对于测试服务型 企业通过CMMI认证而言,尤其是对于改进软件测试过程而言,几乎是没有帮助的。