来自巴黎的华人软件架构师

他缔造了著名的设计软件PowerDesigner,并在全球拥有5万多的正版用户,被称为“Power- Designer创始教父”;他还在著名国际软件企业Sybase中担任此产品的首席软件架构师。王晓昀所书写的这一段软件传奇,也成为了中国所有程序员的骄傲。
自从王晓昀在1988年研发出第一套Windows版本的PowerDesigner 1.0,经过不断修正与改良,2004年正式推出PowerDesigner最新版本10.0,功能强大而完整,涵盖Business Process、UML、E-R Model、Enterprise Repository 等必要模组功能,是目前市面上著名的软件工程建模工具。
为协助中国广大的软件用户,将软件工程技术应用到实际开发工作上,王晓昀应邀到中国巡回演说。从上海讲座返回北京后,在中国大饭店的一间会议室中,刚刚下飞机的王晓昀接受了采访。
记者:请您谈谈此次来中国,做技术讲座之后的感受?
王晓昀:应该说,对模型设计关注的人要比我想象的多,上海的听众就超过了一百多人,有开发人员,也有很多老师,大家都对软件工程表现出了浓厚的兴趣。
PowerDesigner在中国也有很多人使用,但一般只用在数据库设计,而对UML设计和模型设计这些功能还不知道如何运用,他们也对如何把商业流程模型、面向对象模型和数据模型联系,如何应用在软件工程中非常感兴趣。不过,这也同此方面的资料和书籍比较缺乏有关。
软件企业需要在提高开发速度和质量上做很多工作,而国内这方面的教育可能还刚开始,学生学习软件工程还只是着重理论,在工具的使用和教材方面都有待提高。当然,现在已经比去年我来的时候要好多了。
记者:最近PowerDesigner已经推出10.0版本,都有哪些新特性呢?
王晓昀:在Gartner的报告中,认为PowerDesigner对UML支持比Rational Rose要好,数据库模型比ERwin的要好,同时我们在MDA方面做了很多工作,所有的特性我们都支持。可以把一种模型任意转变为另外的模型,比如将UML模型分析模型转变为Java模型,还可以把Java模型转变为EJB模型。客户做一个新的模板,就可以生成适合自己的编码,做的模板越多,写的代码越少。而且数据模型和商业流程模型也可以互相转换。自动生成BPEL4WS(Web服务的业务流程执行语言),这主要是因为软件内部有一个类似Biztalk的引擎。
现在的PowerDesigner只支持分析设计,此后会支持需求分析扩展,因为这部分也属于分析设计。下一代产品中还将支持代码修改前,就能够显示出来一处设计的修改会影响到其他哪些设计。此外,PowerDesigner也会和开发工具更加紧密的联系,比如支持Eclipse和微软的Visual Studio .NET的版本。今年四月份就会推出Eclipse的版本,所有的产品功能都可以在这个开发环境中使用,对.NET开发工具的支持也很快会推出,今年要做一个嵌入Visual Studio .NET的版本。
记者:最近,MDA也很受关注,您如何看待?
王晓昀:MDA和我们做的一些功能是很相似的,MDA主要是把模型的分析和软件开发分开,而且是与平台无关的。无论是Java平台还是.NET平台,首先用模型把所有的功能都显示出来,并根据不同的平台生成代码。PowerDesigner也采用了类似的思想,对市场上的很多技术都支持,比如支持所有的数据库。
记者:您设计的PowerDesigner和IBM收购的Rational以及Borland公司的Together产品有哪些相同点和不同点呢?
王晓昀:相同点就是这些产品都是基于面向对象的设计,都支持UML。不同的是,PowerDesigner有三种不同的模型。我们认为,因为客户水平不同,不能只用一种模型,比如业务人员对业务很了解,但UML只有学会了九种图才能做商业流程设计,因此我们不能强求其都懂UML模型,不同的人员应该用专门的模型。此外,数据库设计具有特殊性,这三个方向要能够互通,比如做UML模型应该可以和数据模型有关,因为设计需要存储在数据库中。在Gartner的报告中,也提到这三种模型在两三年内联系在一起的可能性有90%以上。
记者:当初您是如何开发Power-Designer软件并使之成为一个具有国际影响力的工具的呢?
王晓昀:我是从北京大学去法国的第一批留学生。到巴黎之后学的是自动化专业,从那时起,我开始接触计算机并对软件产生了兴趣。
毕业后我在一家法国软件公司SDP Technologies工作,这家公司主要给其他企业开发数据库方面的软件。因此经常需要做数据库的分析设计,虽然有些客户自己开发了一些工具,但很难用。于是,我们觉得不如花时间做一个数据库设计的产品,磨刀不误砍柴工,反而可以为以后的项目开发缩短时间。
最早这个产品称为S-Designor,因为也没有可参考的产品,只能自己琢磨。最初的版本只是供公司内部使用。第二个版本开发完成后,感觉很好用,公司老板考虑到否卖给其他的公司,于是开始在法国销售这个产品并且取得了不错的成绩。后来,我们考虑到法国市场很小,于是在美国开了分公司销售,情况也不错。在1995年,Powersoft公司收购了我们,因为他们的客户在使用PowerBuilder做开发的时候,也经常需要首先设计数据库。又过了几个月,Sybase又收购了Powersoft公司。
记者:PowerDesigner是一个很优秀的产品,你认为一个优秀的软件设计师需要具备哪些素质?
王晓昀:首先要对技术特别了解,设计一个新产品,需要了解可以采用哪些新技术,如果产品的技术不好,与其他的产品比较时就容易被轻视;第二是要对客户的需求比较了解,如果做出的产品不能满足客户需求,那就很难获得认可;第三就是要创新,开发软件和做其他产品没有什么区别,如果不能做出真正与其他产品相区别的吸引客户的关键点,即便技术再好,客户也不一定会购买你的产品。
我现在每天都花很多时间了解新技术,对其他的新产品做一些测试,看看有哪些好的想法。此外还做项目的设计,并对开发中出现的问题进行处理。有时我也写一些代码,因为总不写就会对编程失去感觉。我现在每天的工作都要在十个小时以上。
记者:PowerDesigner的开发团队有多大?在整个PowerDesigner的开发中,有哪些重要的里程碑或者转折点?
王晓昀:最初只有我一个人在做开发,大概四年中做了四个版本。后来为了加速开发进度,又招了一些人。我们被收购时,公司有20多人,有一半是做PowerDesigner产品。
我认为第一个版本最重要,因为当时没有软件是将数据库分成两种,也就是将CDM(概念数据模型)和PDM(物理数据模型)分开。这是一种思想,虽然当时还不知道用户能否接受,现在看来,当初的决定还是正确的。
此外,就是PowerDesigner的7.0版本,这个版本是用C++重新写的,之前的版本都是用C开发。C++刚出现时,因为找不到一个很好的C++编译器没有敢采用。后来感觉还是用C++开发要快一些,而且当时准备把商业模型和数据模型连接到一起,系统架构也需要重写。不过,7.0版本刚出的时候还不是很完整,并没有把所有的功能都加进去,直到7.5才把功能做全,现在的功能就更加完整了。
记者:你们在软件开发中采用哪些软件工程方法,经常使用哪些工具软件?
王晓昀:我们是根据需要选择适合我们的软件工程方法。我们做了一些简单的软件工程,比如用PowerDesigner做设计,用Word写设计文档, 用Project做项目计划。测试方面除了人工测试外,还引入了自动测试,我们用的是WinRunner,每天晚上进行自动测试,这样可以大大提高工作效率,自动测试做的越多,质量就越高。
记者:您是华人,但PowerDesigner这款有国际影响力的开发工具却诞生在法国,为什么国内诞生不了这样的工具软件和厂商呢?
王晓昀:这一点我也同其他朋友谈论过。其实国内有很多人理论水平很高,不过研究和产品开发还是有相当一段距离,而且国内对国际市场的了解不够,开发的产品不一定适合国际市场的需求。
要改变这种状况可能还需要一段时间,现在我觉得应该首先把软件工程的思想更好的传递给学生,他们一出学校,就知道如何用软件工程来开发和设计软件。其实这对开发人员也有好处,因为掌握了分析设计,自己的价值也就提高了。
记者:法国的软件发展状况如何?软件开发氛围怎样?
王晓昀:应该说,法国与国际接轨还是比较紧密的,法国在软件教育方面做的也不错,和美国交流也很多。法国也有一些出名的软件公司,比如我们公司,还有BusinessObject公司和Ilog公司。很多大公司都在开发自己用的软件,他们也都知道如何用建模工具。而且,法国软件公司中,只要达到几十人的规模,一般都有专门负责跟踪软件技术发展的人员,他们会了解如何使用这些工具,研究软件工程中哪些部分适应本公司的需要。
我们跟踪技术一般也通过网上、杂志等来学习,法国也有类似《程序员》这样的杂志,叫《Programmez》,还有诸如“01 Informatique”这样的技术网站,公司每个星期都会组织新技术的讲座。在法国,有很多专门做培训新技术的公司。国家法律也规定,公司做技术培训还可以抵税,可以占到营业额的1%,因此这也极大的促进了公司对技术人员培训的投入。
我觉得法国的氛围还是比较适合做软件的,尤其是给公司开发内部用的软件很适合,但要做适应市场需要的产品,和美国相比还差一些,因为法国敢冒险的人不多,真正敢投资的人也不多。