-
TD与QTP连接
2007-01-08 12:07:53
1 、安装 TD,检验 TD 是否安装成功,启动 TD Server 服务器后,在与 Server 相连的其他计算机上,打开 IE 浏览器,在地址栏输入 http://TD Server 的 ip 地址 /TDbin/start_a.htm 如果能够浏览到 TD 界面 , 说明安装成功。
2、安装 QTP,验证 QTP 安装成功,进入 windows 操作系统,点击,开始 -> 程序 ->Quick Test Professional-> Quick Test Professional ,打开 QTP 使用界面,进行简单的录制,保证脚本录制成功,并且可以回放,与你的预操作达到的结果一致,证明 QTP 安装成功。
3、安装插件,进入 TD 首页,点击见面上的 TD Add In,进入 TD Add In 界面点击 More TestDirector Add Ins 进入 More TestDirector Add Ins 界面,下载名为 TDplugInsSetup 的插件,大约 35 兆并且在 Server 与 QTP 客户机上安装这个插件,安装成功后,会要求你重启电脑,重启后会看到,开始-程序中有个新安装的程序 “Quick Test Professinal add in for Quality Center” ,登入 TD 进入 test plan 检测是否可以在 test plan 中添加 QTP 类型的测试用例,点击后 , 出现QUICKTEST.TEST , 并且可以建立 QTP 的测试用例。
4、检查没有问题之后 , 还需要在安装 QTP 的机子上做一些相应的设定,进入 QTP 主界面 , 点击文件栏的 Tools-Options , 进入 Options 对话框 在 Run Tab 中选择 Allow other Mercury products to run test and components , 以及 Submit a defect to Qualiyt Center for each failed step 选中后 , 点击 ok 保存这个设置,在 QTP 主界面中点击 Tool - Quality Center Connection,在 Server 中输入 http:// TDServer ip 地址 /TDbin( 本例中使用 htt......) , 点击 connect 按钮 , QTP 连接到服务器上 , 如果服务器连接有问题 , 则会提示连接失败。
5、在 project connection 中包含一下几项:
Domain : TD 服务器站点管理中建立项目的域
Project :域中你所建立的项目
User :登陆项目所用的用户名
Password :相应用户名使用的密码
Reconnect on startup 在下次启动 QTP 时自动登陆到你的项目中
Save password for reconnection on startup 为下次登陆保存密码
完成了上述操作就 TD 和 QTP 就连接起来 , 可以从 TD 调用 QTP 脚本了。 -
测试中的随机性
2007-01-08 12:02:51
创建和使用随机测试用例数据是一项基本的软件测试技能。尽管多数测试用例数据由所测试系统的特定输入数据以及特定预期值/状态组成,但您几乎始终都想让系统也受到随机测试用例输入数据的测试。通常,您这样做是为了了解向应用程序发送大量不同的输入数据是否会导致系统崩溃或引发异常。
在本月的专栏中,我将阐述在 Microsoft? .NET Framework 环境中处理随机测试用例数据时的四个常见任务:
生成伪随机数字(Knuth 算法)
分析模式随机性(Wald-Wolfowitz 检验)
混排项目列表(Fisher-Yates 算法)
生成高斯数字(Box-Muller 算法)
让我们看一下图 1 中的示例。输出的第一部分显示了使用 .NET Framework 的 Random 对象生成基本随机数字的结果。尽管您可能很熟悉此方法,但我还是要指出如何避免常见缺陷。输出的第二部分体现了一个非常实用但却鲜为人知的方法,该方法用来分析由任意符号组成的模式是否具备随机性。通常,该方法广泛应用于软件开发中,而不只是应用于测试方面。图 1 的第三部分表明了混排项目列表的结果,该结果异常错综复杂。
我将详细说明为什么许多混排实现方法表面上似乎正确,而事实上却完全错误。图 1 中输出的最后一部分表明了生成按正态钟形曲线分布的一组数字的结果。除了是一种非常实用的方法之外,该算法的实现细节凭其自身的性能而得以关注,将成为您个人编码工具箱的一个有价值的补充部分。
生成统一的随机数字
随机测试用例生成中的最基本任务是生成一个某特定值域内的随机数字(整数或浮点数)。这通常通过 System.Random 类来实现。假定有以下代码:
Random ōbjRan = new Random(5);
int n = objRan.Next(7);
Console.WriteLine("[0,6] 值域中的随机整数是 " + n);
n = objRan.Next(3, 13);
Console.WriteLine("[3,12] 值域中的随机整数是 " + n);
以 Random 对象为例,传入一个种子值(在本例中为 5)。该种子值用于为表现出真正随机数字许多特性的某个数字序列设置起点。序列是确定的(这些数字是从输入种子值或序列中前几个数字时所用的数学公式而生成),因此由 System.Random 生成的数字从技术角度来讲是伪随机数字,但在非正式使用情况下或上下文明确时,通常将其称为随机数字(如此例所示)。我选择的种子值具有任意性。如果我使用不接受种子值的重载 Random 构造函数,则将使用从系统时钟派生的值。如果在随后测试运行时,您需要重新创建随机数字序列(通常情况是这样),则应提供一个种子值。有关伪随机数字生成器种子值的讨论是一个重要且复杂的主题,抱歉的是,它不在本专栏的讨论范围内。
生成随机整数的最简单方法是调用 Random.Next 方法,传入单个整数参数。返回值是伪随机列表中的下一个整数,此值大于或等于 0 且绝对小于该参数。因此,以下调用将返回一个介于 0 和 9 之间(包括 0 和 9)而不是介于 0 和 10 之间(包括 0 和 10)的数字:
int n = objRan.Next(10);
Random.Next 方法的重载将接受两个整数参数并返回一个大于或等于第一个参数且绝对小于第二个参数的整数。如果您要模拟的测试用例数据类似于滚动的普通六面骰子,要得到一个介于 1 和 6 之间(包括 1 和 6)的随机数字,则调用可能如下所示:
int roll = objRan.Next(1, 7);
这很容易从某数组生成一个随机选取项:
string[] items = new string[] { "alpha", "beta", "gamma", "delta" };
Console.WriteLine("{ 'alpha', 'beta', 'gamma', 'delta' } 的" +
"随机成员是 " +
items[objRan.Next(items.Length)] );
如果数组大小为 N,则调用 objRan.Next(N) 所生成的返回值将是值域 [0, N-1] 内的一个整数(该值域完全对应于数组的索引值)。请注意,该方法也可用于 ArrayList 对象,而且事实上也可用于任何以 0 为基数的索引化集合。
-
从程序员到软件测试工程师
2007-01-08 11:39:32
软件测试一门非常崭新的学科,目前研究的内容还很不深入,仍然处于婴儿阶段。软件测试需要什么样的专业基础还没有定论,而且目前还没有一种很好的标准来衡量测试人员。但无可置疑,软件测试越来越受到软件公司的重视,软件测试工程师的作用也逐渐被人们所认可。这一点已经在像微软这样的国外大型软件企业中所证实,在微软,一个开发人员相对应着一至两个测试人员。现在,就让我们走近软件测试工程师,关注他们的成长之路。
国内软件公司对软件测试的态度令人担忧。软件测试工程师不足,开发测试人员比例不合理。据调查,最好的企业中测试人员和开发人员的比例是1:8,有的是1:20,甚至没有专职的测试工程师。 曾经参与微软Windows95、Exchange Server4.0和4.5、Internet Explorer 4.0和5.0、SQL Server 2000开发与测试工作陈宏刚博士尽管已经升任微软亚洲研究院商务及高校关系高级经理,但仍然对国内软件测试水平的落后深有感触。 国内很多企业还处在探索阶段,小企业的运作方式造成其主要精力是要尽快完成初始资本积累。有些企业也了解软件测试的重要性,很努力、很认真的在学,但因为很多原因而学不到精髓,不知道如何去做。于是只能局限于书本上学来的简单的黑箱、白箱测试而已。很多人知道有压力测试和性能测试,但针对产品具体如何去做就不清楚了。 陈宏刚表示,重视测试首先需要有开放性的软件文化,而在很多公司中,测试工程师只是绝对服从的听命角色,没有开发他们的积极性和创造性。一些管理人员对软件开发的流程管理经验不足,仍然用传统企业的方法进行管理,再加上对软件质量的控制理解不对,认为编完程序经过简单的程序员自己测试就可以使用了,而没有认识到软件测试是控制质量最好的方法。不过, 国内还是有一些大型公司和专业公司已经在软件测试方面走上正规。1994年开始接包IBM软件测试项目,1999年软件测试成为公司主体软件外包业务之一的和腾软件就是其中之一。因为客户就是IBM这样的大型软件公司,腾软件高级副总裁刘忠表示,它们在软件测试管理上,经同国外的公司相差不大,同时也研究和应用了多种软件测试技术。
软件测试工程师 一提到软件测试工程师,很多人就会想到那些反复使用软件,试图在频繁操作中寻找到错误发生的低层次人员或者软件用户。其实这是一种错误的概念,软件测试早已超越了用户使用来发现Bug的基本测试阶段。 陈宏刚介绍说,微软的软件测试工程师分为三种:测试执行者(Basic Software Tester)、测试工具软件开发工程师(Software Development Engineer in Test)和高级软件测试工程师(Ad_hoc Tester) 测试执行者负责理解产品的功能要求,然后根据测试规范和测试案例对其进行测试,检查软件有没有错误,决定软件是否具有稳定性,属于最低级的执行角色。 测试工具软件开发工程师负责写测试工具代码,并利用测试工具对软件进行测试;或者开发测试工具为软件测试工程师服务。产品开发后的性能测试、提交测试等过程,都有可能要用到开发的测试工具。对技术要求最强的是这些人,因为它们要具备写程序的技术。“因为不同产品的特性不一样,对测试工具要求也是不同的,就像Windows的测试工具不能用于Office,office的也不能用于SQLserver,微软很多测试工程师就是负责专门为某个产品写测试程序的。” 而Ad_hoc Testet属于比较有经验,自己会找方向并做的很好的测试工程师,这要求具有很强的创造性。刚进入微软时,老板也是只给陈宏刚一个操作流程,每天就按照这个规程去做,几天下来,一个Bug都没有发现。陈宏刚也很沮丧,觉得这样挺对不起公司,后来自己问自己:为什么非要这样做!于是换了其他的方法试试,令他吃惊的是,一下就找到很多严重的Bug,当时也不敢声张。有一天,他找到10多个非常严重的Bug,开发经理一下就惊呆了,怒冲冲的跑到陈宏刚面前问:“你是不是改变了测试方式和测试步骤?” 陈宏刚有些吓住,说道:“可能改变了一点。”对方说:“我非常生气,但我不是生你的气,而是因为以前测试人员水平太差,或者以前的测试方面有问题,软件中有些Bug存在了半年甚至一年,但直到现在才发现,现在修补这些错误要困难很多!”后来陈宏刚得到了老板的赞许,可以按照自己的想法去做测试。对此,陈宏刚感受颇深:“一方面我体会到了微软非常鼓励创造的文化,同时也感到只遵守教条不是好的测试人员,就和用户一样了。做软件测试工程师同样需要开拓和创造性” 在开发管理上,测试不应该归属于项目管理,也不应该归属开发人员。这三个部门应该是并驾齐驱,相互协作,测试工程师最终决定产品是否能够发布。
软件测试工程师的素质 因为软件测试仍然处在发展阶段,还没有上升到理论层次。对人员的评测,包括微软在内,都还没有一个统一标准,因此评定软件测试工程师只能根据工作实践进行自然淘汰。 软件测试对逻辑思维、学习能力、反应要求很高,是否有严密的思维和逆向思维也非常重要。陈宏刚介绍说,在五六个人的测试小组时,一半以上的Bug都是他找到的。他认为这同自己数学专业的背景关系密切,数学中有逻辑思维的培训,要善于找出来各方面的因素。比如要证明一个定理,各个方面都考虑到,一个条件不满足就无法证明;但如果证明其不成立,最常用的就是找到一个反例,只要有一点证明不成立就可以了,软件测试也是找这一点。 做测试还要考虑到所有出错的可能性,还要做一些不是按常规做的、非常奇怪的事。除了漏洞检测,测试还应该考虑性能问题,也就是要保证软件运行得很好,没有内存泄漏,不会出现运行越来越慢的情况;在不同的使用环境下,考虑软件的兼容性同样重要。软件测试同产品的规模也有很大的关系,因为软件的bug往往出在大型软件的连接处。 做软件测试工程师需要对软件抱有怀疑态度。这是因为开发人员喜欢想当然, 总是找一些有利于自己程序执行的数据,有些开发人员甚至认为不利于程序执行的数据是对代码的玷污和亵渎。而软件测试却要策略性的准备各种数据,从每个细节上设计不同的应用场景,不去想当然的假定任何一个数据是可行的。 在职业素质和交际方面方面,并不是测试工程师爱挑别人毛病才好,反而这个工作要求很强的沟通能力。经常的和开发人员进行沟通,说话办事要很得当,不能指责别人,否则会事倍功半。性格随和才能和开发人员顺畅的沟通,对人和对事是完全不同的两个问题。
如何培养优秀的软件测试工程师 朗川软件测试工程师张建阳从北大力学系毕业之后,曾开发流体力学分析软件,软件缺少测试而产生的问题给她留下了很深的印象。后来去大唐电信做UIM(统一消息管理系统),她发现尽管公司为了鼓励员工找bug采取了很多奖励方法,但还是很少人愿意去做系统测试。而张建阳却从那时查阅翻译了很多国内外的资料,对软件测试产生了浓厚的兴趣。 像张建阳这样在工作中自己定位在软件测试领域的开发人员并不多见,因为程序员更愿意去做开发而不是测试,从大环境上,测试人员收入水平低也是原因之一。而在微软,测试人员和开发人员的工资水平是相同的。 如何改变这种现状呢?有人说可以可以派人去先进的国外软件企业学习,但这种方式因为牵涉到商业秘密,可操作性不大。陈宏刚博士认为更好的方法是引进人才,把在国外大型软件公司工作过、有经验的人才引进来,甚至要高薪聘请。他表示,这不仅仅是一个人的问题,关键是能够把整个软件测试的水准提高一个层次。 引进人才只是开始,更重要的是培养一批软件测试人才。软件开发的教育培训都是比较正规的,各个学校也都设有专业,但软件测试还没有正规的专业毕业生,而且没有评判的标准。陈宏刚博士给很多软件学院建议, 开设四方面的软件测试专业基础课:软件测试基础、软件测试开发、高级软件测试案例和行业软件特色测试方法。国内现在已经有了一些软件测试基础的教材,但其他的教材还没有。高级软件测试案例主要是大型软件测试案例,大型软件出现的问题具有很强的代表性。而行业特色软件测试的课程可以开阔学生的视野。陈博士介绍说,在国外,也是极少的高等院校开设测试专业,但可以借鉴民间的培训机构课程。在有一批专业的测试人才出现之后,人们会认识到他们的重要性。 如果你已经开始从事软件测试工作,千万不要认为软件测试没有什么发展的潜力和前途。刘忠从1995年接下IBM的OS2汉化版本的测试开始到现在,他一直工作在软件测试领域,并升到了公司高级副总裁的位置。和腾软件也培养了一批测试工程师,它们从对测试职业将信将疑到明确自己的测试方面的职业目标。刘忠介绍说:“很多人开始做测试执行工作时会说很麻烦、很枯燥,只是一味的埋怨,而不是主动的去学习,他没有看到软件测试背后所隐藏的知识。因为学习可以做这些工作,不学习也可以做这些工作,但质量是不同的。有些人自学和请教了很多测试技术和管理方面的知识,公司自然就会在下个项目中去培养他。” 因此对于一个新手,要在各方面培养自己的能力。首先是要理解各种测试流程,并在理解的基础上转化为自己的知识,以后遇到相似的问题能自己去解决。在测试技能上,要知道测试有那些手段,比如压力测试有哪些方法,哪些工具可以辅助做测试。从专业技能上,面向不同的技术方向,像操作系统、网络、通信等都要从专业上深入了解。这三方面要同步去成长。 软件测试工程师未来的发展 从事软件测试有没有前途,未来的职业发展方向怎样呢? 陈宏刚博士表示,软件测试工程师在微软的发展有几种途径:一种走技术路线, 成长为高级软件测试工程师,这时他能够独立测试很多软件,再向上可以成为软件测试架构设计师。第二种就是向管理方向发展,从测试工程师到组长(Lead),再到项目经理(Manager),到更高的职位。第三种可以换职业,做项目管理,做开发人员都可以,很多测试工具软件开发工程师在写测试软件的过程中,因为开发方面积累了经验,同时对软件产品本身产生了自己的看法,很容易转去做产品编程。 陈宏刚博士现在还带着一个测试小组,两个清华软件学院的学生,一个南开的专门做软件测试的博士生,一个北邮的学生,他们负责总部一个产品的测试。陈博士表示,在自己简单的讲讲思路,共同探讨之后,他们一星期就找出了70多个Bug,也感觉学了很多知识,并表示以后专注于软件测试专业,因为他们感觉软件测试真的是一门很深的学科,有很多可以研究的课题。其实微软的测试人员很多也都是硕士、博士,他们同样在做创造性的工作,保证着程序质量,推动着软件的进步。 软件测试是正在快速发展,充满挑战的领域。尽管现在单机版桌面软件的测试已经成熟了很多,但对于网络时代的到临,包括微软在内的公司对基于网络的测试也没有一套完整的体系,也是处于探索中,网络中被攻击的可能性太大,这就是为什么黑客在网络上能兴风作浪的原因。网络测试是一个新环境,而且是很大的挑战。 软件测试未来的发展空间很大,软件测试工程师的职业之路同样充满希望。
李维谈软件测试 记者:台湾的软件测试工程师的地位如何? 李维:就我知道的几个案例来说, 地位很低。许多公司不是没有专职的测试机制,就是老板认为不重要。许多老板还认为直接让客户测试即可,实在不可思议。 记者:测试工程师的人员比例也很小吗? 李维:是的, 大概6-8位工程师配一个测试人员,不过有的是以产品线来分的。 记者:台湾有专业的测试培训教育吗? 李维:据我所知, 沒有。 记者:依您的看法,软件公司如何才能重视软件测试呢? 李维:台湾国际级的软件公司如友立、趋势才重视测试。如果是短视的软件公司,由于许多老板不是资讯出身,所以不了解软件工程的重要。要重视软件测试,负责研发的头头必须有明确的认识。许多软件人员知道使用OO或者SD的方式设计软件,却不知对于测试也同样的需要事先设计并规划测试计划,这实在好玩。 记者:borland公司测试人员情况如何? 李维:Borland有不同的测试人員, 针对不同的产品。专职的测试人员大约有50-60人,测试人员占研发人数的30-40%。Borland的测试人员都会规划测试计划,同时有系统和回归测试。 -
10位程序员眼中的2007:寻找软件开发利器
2007-01-05 11:09:06
软件开发生命周期包括需求分析、设计、开发、测试、交付部署等各个阶段,以及贯穿在整个开发过程的软件开发项目管理环节,2006年,在每一个阶段都出现了令人眼花缭乱的技术与应用,同时这些技术还将进一步影响2007年的发展,令人充满期待。
软件开发生命周期包括需求分析、设计、开发、测试、交付部署等各个阶段,以及贯穿在整个开发过程的软件开发项目管理环节,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认证而言,尤其是对于改进软件测试过程而言,几乎是没有帮助的。
核心观点
在测试技术蓬勃发展的另一方面,测试行业也在迅速地积累着各种问题。
软件工程为软件工业化铺路
王刚
智冠咨询(Crown Consulting)高级合伙人、首席咨询师。先后负责多个大型软件开发项目,涉及电子政务、企业信息化、门户网站等领域,并在项目中大量尝试开源产品。
从前与中国软件领域相关联的总是一个个令我们这些后辈所敬仰的孤胆英雄,而此时我们已经清晰地认识到属于英雄的软件时代已经结束,只有工业化的生产才能带来中国软件的发展。
UML
尽管,只有面向对象的设计方法、使用了UML进行表达才是先进的软件开发方法,这是无需证明的错误命题。但是我们不得不承认,从私有的无序的表达上升到 工业的标准,UML凝聚了软件工业的实践,2005年,UML 2.0标准被OMG组织批准通过,2006年开始被主流厂商所接受,UML 2.0所带来的不只是表现的巨大丰富,而更多的是给予面向模型(MDA)开发以有力的工具。
软件生命周期管理套件
Rational套件曾是开发者UML工具的不二选择,遗憾的是,随着IBM对Rational日深的影响,我们所能看到的是庞杂的生产线和对摩尔定律的 不断验证,但对于中小厂商却变得越来越遥不可及。本应该趁虚而入的Borland,更是让人感觉遗憾,卸下IDE包袱的Borland,没有在2006年 发出太多的声音,收购完善了它的生产线,但是溃败的惯性能否停止我们还不得而知。告别了Delphi的我们,不想再告别Together。
传统厂商的消沉与失误给予新进入者以机会,微软的Visual Team凭借着与IDE工具、Office办公套件的天然联系,逐渐成为.Net平台开发者的首选生命周期管理工具。以NoMagic为代表的中小厂商, 凭借对标准的及时跟进、丰富的软件接口而被普通开发者所接受,它们目前专注于生命周期的某一领域,成为巨头的挑战者。
核心观点
只有工业化的生产才能带来中国软件的发展。
网络安全软件开发趋势
李洋
中国科学院计算技术研究所博士,资深程序员。从事计算机网络信息安全领域的研发工作,曾参与“国家自然科学基金”、“国家863重大专项”、“国家242信息安全计划”、“国家973计划”等多项国家重点项目、信息安全系统和企业信息系统的研发工作。
从当前国际上安全产品的研发情况来看,以防火墙和IDS为主导,以密码技术为基础的产品已经取得了飞速的发展,并在实际应用中发挥了很大的效应,使得网 络安全产品的研究及应用工作不断向前推进。2007年,对于网络安全软件开发人员来说,如下几项新的技术值得大家期待:
1.基于开源软件的开发技术
以Linux为代表的开源软件及其开发模式已经深入人心。网络安全软件中最为著名的就是轻量级的入侵检测系统Snort,它已成为众多安全厂商和科研院校研发的重要参照物。纵观网络安全软件的发展趋势,以优秀的开源软件为基础进行研发已成为网络安全界的首选技术途径。
2.嵌入式安全开发技术
随着移动计算和无线网络的普及,以及普适计算概念的提出和应用,移动、无线和无处不在的计算已成为新世纪IT的绝对热点。这些需求都要求在上述条件下进行信息处理和计算,因而以J2ME为代表的嵌入式开发技术也成为很大看点。
尤为值得关注的是,人们在获得上述便利的同时,也在经受着自己的隐密数据随时有可能被窃取和破坏的威胁。那么,如何在当前的嵌入式技术当中综合采用密码 理论、PKI基础架构以及其他信息安全技术来提高嵌入式系统的安全性,为未来轻量级的嵌入式计算保驾护航,也必将成为网络安全工作者和软件开发人员关注的 一个热点问题。
3.高性能计算服务开发技术
网络带宽的日益增长和单机处理能力已经极不对称。诸如早期的防火墙、IDS等都已经不能满足现实的需求。
因此,采用并行处理技术以及研究和开发高性能网络协议处理技术来缓解上述问题带来的压力是不错的选择。并且,随着64位计算的到来,如何在该硬件平台上 进行并行开发、编译等,都是网络安全软件研发人员期待和需要解决的问题。值得期待的是,当今的UTM(统一威胁管理)技术试图在上述各方面取得突破,建立 一套高性能、高可靠、完善的网络威胁防范机制,我们拭目以待。
4.可信编程技术
对于安全要求较高的场合,可信计算平 台能够为用户提供更加有效的安全防护。而据统计,在网络安全领域,80%以上的网络威胁和漏洞来源于系统自身的Bug,而这些Bug则来源于设计思路以及 程序实现。那么,在积极防御外来攻击的同时,提高网络安全软件研发人员自身编程的可靠性,软件开发平台在软件编程中可能出现漏洞(比如最常见的缓冲区溢出 等)的地方进行提醒和标注,就可以极大地减少程序实现的硬伤。我们不妨借用可信计算的名号称其为可信编程技术,相信也将是软件研发人员关心的技术,不但可 以提高软件可靠性,更能避免用于查找大量重复出现的系统Bug所需的人力和物力。
核心观点
基于开源软件的开发技术、嵌入式安全开发技术、高性能计算服务开发技术、可信编程技术将是未来网络安全软件开发的四大趋势。
降低开发复杂性
程勇
Java开放源码软件咨询顾问,Huihoo.org开源软件社区共同创始人,北京中流科技有限公司CTO。
Java技术的发展已经走过11个年头,在企业级应用开发领域占领主导地位的JavaEE技术也伴随着Java自身的演变,在2006年发生了许多新的 变迁。 随着系统开发复杂度的上升,需要一种更好的解决方案来分解系统的复杂,并简化应用开发的过程。基于众多的因素,选择企业应用开发的架构平台时都需要考虑很 多约束,它必须最小化对应用开发本身的影响。因此,一个好的技术平台和应用框架应该具备如下特性:提供应用开发的一致性;提供高端和低端特性;提供管理逐 步增长的应用系统的具体方法;为高级开发人员提供指导;能够使不同框架的特性和优点集成到一起进行工作;能够快速进行应用开发,保证产品按市场的需求发 布;能够降低项目开发的风险,提升企业的投资回报。
由此,我们不难发现,现在大量涌现的新技术体系和框架,都是在朝着简化应用开发的方向而努力,这些技术包括:
● AJAX AJAX并非一种编程语言,它是使用XHTML或HTML,Javascrīpt以及XML来建立互动网络应用程序的一种模式。
● 脚本语言 Ruby的发展,使得在Java 语言中使用动态机制成为可能,使用Ruby的动态机制,用户能够改变脚本类的定义。这些Ruby对象允许直接使用方法管理它的状态和行为。
● 应用框架 以Spring为代表JavaEE应用框架是在JavaEE技术体系之上快速构建应用的支撑平台,应用框架通过整合的技术架构,将众多的优秀开源框架融合在一起,为应用开发提供了一个完整的技术解决方案。
● JavaEE 5.0 JavaEE 5.0 是新一代的Java EE技术规范,其中包括JSF、EJB 3.0等十多项全新的技术体系。它的多项新特性为JavaEE应用开发带来了更多的便利。
核心观点
选择企业应用开发的架构平台时都需要考虑很多约束,它必须最小化对应用开发本身的影响。
工作流: 国内国际两极分化
胡长城
网名“银狐999”,就职于TIBCO。国内J2EE开源应用的支持者,有过6年的J2EE应用和产品开发及架构经验,是huihoo开源组织的成员。
与众多新技术相比,工作流的知名度也许会小一些,但工作流也一直处于不断创新之中。所不同的是,在这个领域新技术的应用是被隐藏在应用理念和架构体系之下的。对于工作流的发展趋势,这里分开两条线来阐述。
第一条线就是单纯从工作流技术应用的发展趋势来探索。在这方面国际上应用水平已经远超越国内,这就是这两年的龙卷风—— BPM(Business Process Management)。很多国际化的大企业已经把BPM定位于一种解决方案。在这一整套解决方案中,工作流技术已经成为流程的服务,围绕这个服务,有各 种模块和应用相辅助。BPM解决方案俨然成为一种参考架构: 一方面是以SOA为主导的技术架构,另一方面则包含了一整套的服务。
实际 上,BPM的发展是很多年的流程和工作流发展的必然结果。在这个领域的供应商有的由早期的工作流厂商发展而来,如Staffware公司(现已经被 Tibco收购); 有的由早期的EAI提供商发展而来,如Tibco; 有的由应用服务器提供商发展而来,如BEA等。在它们的BPM蓝图中有很多相似之处,比如以BPEL规范阐述Business Process。
第二条线从国内工作流应用和技术趋势来分析。这两年已经有部分国内企业采用EAI或BPM技术进行系统整合方面的应用,但大规模地采用BPM解决方案还 是很少,不过这是一个趋势。国内目前工作流技术的应用还主要以“办公或业务流程的人工信息化处理”为主,毕竟国内企业和政府的一个很大特征是“以人为 主”,而不是“以制度化为主”。在一些集团性的企业和跨省市集中管理性的系统中,分布式流程应用逐渐显现出来。而伴随着国内几年来工作流市场的积淀,早期 的一些工作流厂商在寻求“流程分析和监控”方面的突破,而这方面的客户需求也日渐多起来。但短时间内,很难由国内工作流厂商自己取得一些突破,发展起 BPM产品。
上述这两条发展线也代表了两极分化。但第一条战线的BPM 解决方案肯定是未来大规模应用的趋势,虽然短时间内对国内工作流应用市场冲击很小,但是政府和国内软件厂商却不应该小觑这个发展趋势。
核心观点
国际大厂商对工作流的研究重点是把它作为BPM的一部分,为流程服务,而国内还主要以“办公或业务流程的人工信息化处理”为主,短时间内,国内还很难有所突破,推出自己的BPM产品。
Java走上开源之路
孟冬冬
中科软科技股份有限公司金融保险部系统分析师、软件架构师。9年软件设计开发和6年项目管理经验,精通基于J2EE架构的企业应用系统开发技术。先后在普天、中软等多家软件公司任系统分析员、软件架构师及项目经理。
2006年11月13日,Sun公司宣布将Java转为开源。预计到2007年3月份,除了一部分所有权不属于Sun的源代码之外,几乎全部Java技 术的源代码都将按照GNU GPL自由软件许可授权协议公开。Java在和.net经历了两年的竞争后已显疲态,相比5岁的.net以及新生的动态语言Ruby,11岁的Java已 略显复杂臃肿,甚至在网上还有“Java将死”的论调。Sun选择在此时将Java开源,不管是否是Sun迫不得已、在日薄西山前的最后博弈,但影响之深 远却绝对不可小视。它引发的“蝴蝶效应”无疑会使Java技术的生命力更强,走得更远,更可赢得在开发语言竞争中起决定作用的更多程序员的芳心,相信未来 Java领域将出现更多令人惊奇的开源产品。
另外Sun还赶在圣诞节前发布了JDK的6.0 Release版本。对JDK而言,“成败皆在应用服务器厂商”。市场占用率最大的应用服务器Weblogic8、WebSphere5成就了1.4,但 也限制了JDK5的普及。在JDK5还没有用热时,JDK6就来了。不过,这倒也是好事,可以直接跳过JDK 5去研究JDK6的应用了。
JDK6对笔者的最大吸引力是它在JVM性能上的提升和对XML和Web服务的支持。性能方面,无论是运行时分析功能还是用户对性能情况的反馈,尤其是在Swing方面,JDK6对JIT都有了卓有成效的提升。
一直以来,相对于微软的.net,Java对Web Services的支持复杂得难以接受,也因此产生了优秀的Axis和XFire框架。而在JDK6下,Java程序员也能享受到这种待遇了,不用针对 Web服务另外加入额外的工具,不使用任何框架也能写出Web Services程序了。JDK6中固化了XML、Web Services的标准,如StAX、JAXB2、JSR181等。JDK 6在语法方面没有太大改变,最明显的就是添加了对脚本语言的支持,如Javascrīpt、Ruby、PHP。JDK6 中实现了JSR 223,提供了让脚本语言来访问Java 内部的方法。它可以在运行的时候找到脚本引擎,然后调用这个引擎去执行脚本,这个脚本API 允许程序员为脚本语言提供Java 支持。
另外在JDK6中内置实现了JDBC4支持的Derby数据库,为测试和小型系统的发布提供 了便利条件。最后,JDK 6 中对内存泄漏增强了分析以及诊断能力,当遇到Java.lang.OutOfMemory 异常的时候,可以得到一个完整的堆栈信息,并且当堆已满时,会产生一个日志文件来记录这个致命错误。
如果说谈到JDK 6更多的是对未来的一种希望的话,Java full-stack(Java full-stack,意指集成了全部所需功能的Java快速开发框架)则是一种已经可以见到的东西。
很长时间以来,作为一个Java程序员,幸福的是从表现层到持久层都有众多的框架可供选择,痛苦的是在这些框架中挑选出适合自己的框架,而且还要付出将 不同层次的框架粘合在一起的设计成本和时间,而架构的稳定性和实用性则往往取决于架构师的设计理念和经验。Ruby on Rails的流行再一次证明了在软件开发领域“简约至上”的真理,它使得诸多Java开发人员把目光放到了“提供最方便好用的Java full-stack框架”上面,因此Java开源社区如雨后春笋般地出现了一批又一批的full-stack框架,如Appfuse、 SpringSide、JBoss Seam、RIFE、Grails、Trails、Rife等。Java领域也从此开始走向full-stack的快 速开发道路。笔者就非常喜欢国外的JBoss Seam和国内的SpringSide。
核心观点
Sun选择在2006年岁末将Java开源,不管是不是Sun的最后博弈,其影响绝对不可估量。从此以后,全世界所有的开发人员都可以对Java源代码进行修改、优化、除错,同时Java也将变为一种真正免费的技术。
网络技术融入软件平台
智雨青
北京理工大学计算机硕士,8年的电信行业软件开发经历,曾在亿阳信通、北京朗新科技公司供职,中国联通第一版CRM的主要设计与开发者,参与联通多个省级OSS/BSS系统的研发与实施。
2006年年初有专家曾经说过,今年软件发展技术很有可能进入到一个无热点时代。的确,我们非常熟悉的网络应用技术、搜索技术、应用行业软件技术等等, 已经发展到一个非常成熟的阶段,每一次升级能带给我们的惊喜越来越少。不过,2006年虽没大的“翻天覆地”,却仍涌现出了不少亮点,而这些亮点极有可能 会决定今后两三年的应用潮流。
1. Web2.0
Web2.0是2003年之后互联网的热门概念之一。 Web2.0技术主要包括: 博客、RSS、百科全书(Wiki)、网摘 、社会网络(SNS)、P2P、即时信息(IM)等。由于这些技术有不同程度的网络营销价值,因此Web2.0在网络营销中的应用已经成为热门领域。尽管 对于究竟什么是Web 2.0还有很多的讨论,但有一点可以肯定,Web2.0是以人为核心线索的网。提供更方便用户“织网”的工具,鼓励提供内容;根据用户在互联网上留下的痕 迹,组织浏览的线索,提供相关的服务,给用户创造新的价值,给整个互联网带来新的价值,才是Web2.0商业之道。
2. 嵌入式移动开发技术
嵌入式开发技术的发展推动了嵌入式操作系统跨越式发展,也成为现代及未来移动技术发展的重要保障,以微软Windows CE系列、PalmSource公司PalmOS、Nokia公司Symbian等为代表的嵌入式操作系统已在各种移动设备上大量应用。尤为值得一提的是 作为行业领先者的微软2006年5月发布了Windows CE 6,凭借重新设计的操作系统(OS)内核架构以及增强的并发处理能力和新集成的工具集,提供了一个更加集成化的嵌入式开发环境,允许开发者将大量更为复杂 的应用集成到比以往更加智能的设备中,从而提供高性能的多媒体、Web服务和无线网络连接应用。
3. 中间件技术
随 着Internet的快速发展,中间件的定义正在走出其狭义空间,逐步形成更为广义的内涵。其发展主要呈现出两方面的技术趋势: 一方面,支撑软件越来越多地向运行层渗透,提供更强的对系统实现的支持;另一方面,中间件也开始考虑对高层设计和运行部署等开发工作的支持。而这两个技术 趋势从本质上说正是源于软件体系结构和软件构件等技术的发展和应用。从广义的角度看,中间件代表了处于系统软件和应用软件之间的中间层次的软件,其主要目 的是对应用软件的开发和运行提供更为直接和高效的支撑。中间件技术已成为软件技术的研究热点。
4. 即时通信技术
现 在即时通信市场不再只有一种声音,腾讯、微软、IBM、Avaya、Skype、中国移动纷纷将触角伸向了这块市场,诱惑这些大佬们的是即时通信市场的爆 发式增长和随之而来的丰厚利润。而移动即时通信作为一项数据业务更是被视为未来3G时代的一大“金矿”。待3G牌照发放,捆绑于移动即时通信之上的包括彩 信、彩铃、图片、博客、手机电视等应用都会得到充分发掘。
5. 下一代搜索技术
搜索引擎发展到今天已经增添了很多新 的特征,其特色主要体现在“概念集群”和“动态分类”,它通过分析网页之间的关联,建立一种类似人的思维的更智能化的概念分类方式,通过模仿人的思维模 式,对要查找的概念进行关键字联想和分类。除了概念集群和动态分类,新一代搜索引擎还更多地体现在个性化方面,这在以前的搜索里是很难做到的。概念集群又 分为大众化概念集群和个性化概念集群,通过搜索记录,下一代搜索技术能够帮助每个人建立自己个性化的搜索功能,而且信息是可以分享的。
核心观点
基于新一代网络技术的各种应用的融合是大势所趋,网络新技术与软件新技术的相互促进将为人类创造一个更为灿烂的IT世界。
互联网将更社区化
康威
新华社高级工程师,Lotus技术专家。曾任后勤指挥学院教员,获全军科技进步二等奖一次、三等奖四次,2002年7月转业到新华社技术局,是新华社多媒体数据库系统核心成员。
互联网的飞速发展成就了搜索引擎今天的地位,同时也推动了网络视频的发展,而Web 2.0又推动了全民的参与性、主动性和互动性,密切了人与人之间的联系,由此形成了线上与线下互动的各种模式,反过来又推动了互联网的壮大。
1. 互联网搜索
2006年的中国互联网搜索依然是百度、Google双头垄断,百度的势头略有提升,垂直搜索成为耀眼的明星,移动搜索也有了一定的发展。未来搜索引擎将会更精准化、智能化、人性化、垂直化和社区化,会以更快的速度为计算机和其他智能终端用户服务。
笔者认为,2007年的中国搜索市场将是一个分水岭,其竞争将达到前所从未有的规模,雅虎、搜狐磨刀霍霍,微软卧薪尝胆,不过双头垄断局面不会改变,走 向国际化的百度依然会是龙头老大,而能满足大家特定需求、具有差异化特征的垂直搜索和生活搜索是未来的市场增长点,其搜索商业模式也会更加丰富。2007 年,搜索行业的发展必将进一步促进互联网商业模式的创新以及相关技术的提高,成为互联网发展的重要支柱。
2. P2P流媒体
P2P流媒体行业一直都被认为是下一个可能产生井喷效应的互联网领域。P2P体现了真正的“互联网精神”——我为人人,人人为我,但市场是理智而残酷 的,在短暂的狂欢过后,P2P流媒体行业所面临的问题与挑战也逐步显露,商业模式不清晰、盗版泛滥、国家政策不明朗等问题不得不令人深思。
网络视频是中国未来几年的热点,目前只有两个方向可以赚大钱: 流媒体巨头与内容大鳄的联姻和微视频,依靠盗版的视频直播与共享只可能是小富即安。只有少数几家有资金、有技术、有影响的流媒体厂商(包括门户网站)才能 获得内容大鳄的青睐,留给众多中小型流媒体厂商的只能是微视频。
微视频是指短则30秒,长则不超过20分钟,内容广泛,视频形态多样, 涵盖小电影、纪录短片、DV短片、视频剪辑、广告片段等,可通过PC、手机、DV、DC、MP4等多种视频终端摄录或播放的视频短片的统称。短、快、精、 大众参与性、随时随地是微视频的最大特点。微视频规避了版权的威胁,降低了带宽的成本,易形成社区,具有一定的赢利模式,随着网络融合的加快,3G和宽带 的发展,只要走专业化、特色化、差异化道路,一定大有“钱”途。
3. 互联网社区化
互联网社区化有三种形式: 情感的归属与宣泄,人们可以不受空间限制地自由沟通、发表见解、结交朋友、宣泄情感; 线上与线下的互动,互联网使得人们能够以最快捷的方式广结交天下朋友,很多社区型网站都定期举行各种线下活动; 智慧和经验的共享,充分体现了P2P精神,人们信息需求的满足,需要越来越多地依靠其他用户的力量来满足,社区化的搜索是最好的例子。
社区化的搜索能更好地满足用户的需求,也可以更好地发挥用户的价值。首先他们会享受其他用户贡献的智慧,同时他们在自己使用的过程中几乎不会察觉到在给整 个互联网做出贡献。2006年7月13日正式推出以“搜索+博客”为理念的产品——百度空间,这是百度继贴吧、知道、百科后推出的第四个社区类产品,具备 个人空间、个人门户等基本特征。这一产品的推出,不仅进一步深化了百度的社区化搜索服务,并凭借其在中国互联网的巨大影响力,进一步推动了中国互联网社区 化发展的进程。
核心观点
未来的互联网将更能体现P2P精神,将更视频化和社区化(当然文字仍会像传统报纸一样不可替代),同时,在互联网的进化过程中,搜索技术将会改变人们的生活习惯。
应用推动软件技术创新
张涛
郑州航空工业管理学院毕业,一直从事计算机应用软件的分析、设计、开发以及项目的实施,主持开发的软件包括河南省县级供电企业营销MIS、河南省在建水利工程移民资金辅助管理系统。
今天的企业信息化面临着更加具体的问题,比如终端数据如何快速采集传输; 缺乏软件应用标准,行业应用深度不够; 系统间交互性差、各自为战,资源共享程度不高; 系统具有一定规模后,维护、升级困难。由于企业在这些方面的需求非常迫切,未来各个软硬件厂商必定在这方面有所作为,基于此,笔者以为2007年以下这些 技术将会有比较大的突破。
1. 数据采集自动化、便捷化
随着MCU(多点控制单元)应用范围的不断扩大,以往的各类 硬件终端,比如电力、燃气、水等终端数据采集或检测设备,已经逐步从简单的计数、指示功能,向智能数据采集终端转变,而且传统装置经过简单的改造,也可实 现终端数据的采集和存储,这不仅让人从数据采集的工作中解放出来,更可以通过相对廉价的手段解决采用人工采集数据所带来的一些问题。
正 是基于这种前提,微软Office办公套件的新成员InfoPath让我们眼前一亮,借助它可以快速、方便地设计出具有超强表现力的电子凭单,以满足信息 采集、企业内部和企业之间的信息传递。更令人称道的是,它不仅可以使用传统的数据库作为数据源,更可以使用XML作为数据的存储格式,让不同系统之间的数 据交互更加畅通有效。
2. 软件插件化、框架化
大凡用过Eclipse的程序员都会被它的灵活和开放性所打动,而目 前部分行业欠缺软件应用标准就是摆在开发商面前的诸多问题之一。类似权限管理、自定义查询、自定义报表、组织业务功能等应用系统必备的功能,完全可以通过 抽象形成框架,提高代码重用度和稳定性。同时,采用软件框架进行系统的开发,不仅可以让系统分析和设计人员把主要精力放到业务模型的建立上,缩短项目周 期,更可以让系统用户和开发商体会到系统稳定、维护方便、升级简单的方便。
在此必须要提的是Java,如果说Java的诞生是为了网 络,那么可以说它已经不辱使命,而且在推动着网络技术的发展,开源性使得它的追随者们努力工作,Struts、Spring等优秀的、基于框架的作品纷至 沓来,逐步让我们脱离繁杂的技术旋涡,把时间和精力投入到业务分析领域,使软件的插件化、框架化不再是海市蜃楼。
3. SOA
近几年SOA(Service-Oriented Architecture,面向服务架构)概念的提出,使得用户和软件开发商对系统建设有了新的认识。笔者认为SOA不仅是架构模型,更是一种应用思想的 体现。对于软件功能粒度的划分、软件功能的部署、系统驱动模式等都会由于SOA而产生较大的影响。
企业通过应用SOA,不仅可以在成本 没有太大增幅的条件下,让用户使用已经成熟的组件增强B2B的有效性,还可以让开发商最大限度地复用代码,把软件产品变成真正的服务。此外,SOA的实施 更可以加速行业标准的制订和执行,因为只有大家遵循同样的标准和接口,才可能营造出业务共享和跨系统业务交互的良好氛围。
4. 虚拟软件
有时一些系统尤其是比较老的,对OS或DBMS有特定要求的系统,或系统在兼容性方面与新版本有差距,这时虚拟机就是最好的选择,不仅可以节省用户的硬 件资源减少维护和管理成本,更可以让原有应用正常运行,为应用系统的升级换代赢得时间。与VMWore相比,微软的Virtual PC也在紧追不舍,笔者认为尽管较VMWare还有一定距离,但是无论产品孰优孰劣,最终受益的还是用户。
核心观点
行业特点决定行业应用,行业应用需要软件相关技术手段提供支持,而行业应用又会引发技术的创新。
标题搜索
我的存档
数据统计
- 访问量: 62127
- 日志数: 84
- 图片数: 8
- 建立时间: 2006-12-24
- 更新时间: 2012-02-29