所属地区:中国-->北京市
所属类型:名人展示-->言论
软件开发,天堂之路在哪里?

 

 

 

《易经》的宇宙观认为:宇宙万物时刻都在变化,人事亦如此;然而变化不息的宇宙却具备恒常的法则,井然有序,循环不已,有一定的规律可循。物质世界是有规律的,是可认识的。人类在其生存过程中,又形成了另一个体系——社会。同物质世界一样,社会也有其规律,构成社会的结构也是可以认识的。人类在认识自然、认识社会的过程中,已经发现了很多规律。1803近代化学之父英国化学家道尔顿创立的原子学说从物理学的层面向世人揭示:“一切元素都是由不能再分割和不能毁灭的微粒所组成,这种微粒称为原子”,从此使我们对物质的认识从原子、分子逐渐过渡到宏观层面。计算机作为人类的一个最伟大的创举之一,使我们可以在数字世界里把这些规律连接起来,形成一个新的虚拟世界。而这个虚拟世界是通过软件来表达、来被人类创造的。如果说是上帝创造了世界的话,那么上帝会用什么来管理世界呢?答案之一是,上帝可以用软件来管理宇宙万物,设想一下,上帝会怎样写软件、写出什么样的软件呢?

 

 

 

回顾、现状与挑战

 

 

自从计算机语言问世以来,从机器语言到现在的面向对象语言(以Java等为代表),主体上经历了四代的变迁:机器语言,汇编语言,高级语言,面向对象语言。而每一代的变迁都是在前代基础上的发展和飞跃,每一次的飞跃都显著地降低了软件开发的难度、促进了软件业并进而促进了社会多个方面的发展。然而与此相应的是,软件系统本身无论是从纵向还是横向上基于人类客观的需求和理想的期待也在飞速发展、变化着,并且永无止境!现有的软件开发方法让工程师们日益感到力不从心,巨大的需求也激励着我们不懈地去追求更好的方法,数十年来,软件开发工程师们一直在寻找神奇的方法,可以在软件开发中带来一次根本的革命性进展。虽然对神奇方法的遐想从未放弃过,却至今从未实现过。 但我们又不得不承认:量身定制、随需应变是不断变革中的企业和社会(由其是国内)的本能需求,因此,也应该和必然成为一种内在服务。这表明,IT供应商不仅仅是产品和解决方案提供商,而且应该是服务商。看来方向和目标是很明确的,但是如何到达理想的彼岸呢?

面向构件的开发方法是目前在业界开使流行的被誉为最先进和最有希望的方法之一。无容置疑,面向构件是在面向对象基础上的一次飞跃,作为几乎最早从事Java程序设计的软件工程师之一,笔者曾为Java面向对象的一些巧妙构思和处理方法激动不已,并迅速从C/C++阵营中转而投入到Java程序设计队列,这在当时(96年)是需要一些勇气和冒险精神的。然而随着所面对的软件系统功能的日益增多和用户永无止境的需求之变,笔者越来越感到困惑和力不从心,并逐步认定照目前的这条软件开发之路走下去将看不到软件未来的希望,而且很可能会走入一个死胡同。当面向构件的开发方法第一次出现在面前时,也曾为之心头一亮,但仔细思考后,内心又冷静下来,因为面向构件较之于面向对象的软件开发方法从本质上讲并没有新的内容,在面向对象环境下所遭遇到的困境或多或少地存在于面向构件的开发方法之中。我们可以用这样一个比喻来说明一下:登陆月球曾经是人类久远的梦想,最原始的方法就是登上一座高山,那样离月球更近一些了,然后在这个基础之上再想办法,从面向对象到面向构件,就如同是从一座高山上出发又攀上了更高的一座山峰而已,感觉上是离目标更近了,而实际上呢?可能是离目标更远了。当然,今天我们已知道,登月要靠火箭作为工具,而火箭最好是到山脚下的平地上来研究和制造。

哲学上有这么一段著名的论述:事物的发展总是螺旋式上升,循环往复,以致无穷。其发展的结局当然有多种可能,但在这里我们专门要说的是两种可能:其一,遭遇发展瓶颈,裹足不前;古人云:一尺之竿,日取其半,永世不竭。事物的发展若陷入了这样一种境地,置身其中者还以为自己在进步、在不断地完善,其实已经走到了尽头;其二,发展过程中适时地打破常规,跳出传统的发展模式和思维方式,进入一个新的天地,再进入螺旋式的发展过程;我们更有理由相信,宇宙万物在进化的过程中那些能独领风骚的事物更多的是因为自然或偶然地经历了这种可能。

软件开发的模式发展到今天,在日益复杂化和变化永无止境的需求面前,我们所做的很多努力是不是也陷入了一个“一尺之竿,日取其半,永世不竭”的境地呢?

软件,你不是Windows,也不是ERP,你是一个在不断扩展的新世界!那么,天堂之路在哪里呢?

 

 

新思维、新技术:面向规则的软件开发

 

 

软件是什么?是ERPCRM,还是中间件、操作系统?都是,又都不是。今天我们所面对的软件系统更像是一个虚拟的世界,一个变幻无常、五彩缤纷的数字化世界!但我们不应该被这多姿多彩的表象所迷惑,我们必须透过现象看本质,找规律。我们不能只见树木,不见森林,用佛经的话说就是不应执着于“相”,事实上,不管是ERPCRM 还是LinuxWindows 不同的只是其“形”其“相”而已,当上帝开始创造世界时,所用的材料都是一样的,人也罢,不同的各种动物也罢,都遵循着相同的规则,既然这样,又怎么造就出如此丰富多彩的宇宙万物呢?这不同又是由于什么呢?我们认为,就在于相同规则的不同组合,而现代遗传学中关于DNA的最新结论不也正好与此吻合吗?因而面对这无穷无尽的大千世界,我们可以这样下结论:千姿百态的现实世界本质上是由相同的基本元素按严格的规则经由不同的组合而成(规则是独立的,无论对什么样的生命体或非生命体都一样,比如人的闪避动作,当大脑发现会因为接触到某一物体而引起危险时,会发出闪避的指令,这个指令将执行一个单一的规则,即远离物体,至于由身体的那一个部分(构件)来完成,以及由那种形式来(比如后退,弯腰)完成,则是多样的。由此可见,规则是单一的,但是当通过构件来完成时,表现形式是多样的)。那么软件世界作为现实世界的一部分,我们同样可以理解为:任何软件系统,单一功能也罢、多功能也好,其分拆也罢、集成也好,ERP/CRM也罢、Windows/UNIX也好,其本质上是由相同的基本软件单元通过相同的规则经由不同的组合而成的。而上述结论与《易经》、《道德经》等的宇宙观,及《圣经》等的创世观可以说是殊途同归。这样我们便迎来了一种崭新的软件开发方法:面向规则的软件开发。正是基于这一思维为指导原则,我们的第一个软件开发平台乾坤道数字技术平台诞生了!然后按照电子政务功能的需求我们开发出了数字政府平台,又按照企业的需求我们很快开发出了数字企业平台,并在国内2个特大型企业的局部业务中得到了成功的运用。

经过一年多的实践和探索,我们认为,相对于传统的软件开发方法,面向规则的软件开发方法有如下明显的优势:

1.                        极大地降低了系统崩溃的风险几乎为零,由于应用系统开发者不需直接写代码,因此不管怎么变化、调整,系统本身理论上将永远是健康的,问题只是客户方的满意度而已;

2.                        是传统方法下(含面向构件)开发成本的10-30%

3.                        完美地实现了软件工程师们的梦想:软件开发过程变成了软件基本单元的组装和拆卸,更为奇妙的是,这一过程是自动的,它可以在我们已开发出的数字技术平台上依据我们制定的规则自动完成;

4.                        面向规则的软件开发方法通过扩充可以兼容目前流行的面向对象、面向构件的方法,反之则不然;

5.                        面向规则的软件开发将使绝大部分软件工程师彻底摆脱原始代码的编写,可以将精力主要集中在客户方的功能需求分析和设计上来,其实这才是软件系统的灵魂业务流程模式,我们称之为规则的制定和组合;

6.                        在面向规则的环境下,对软件人员的要求由原来的高级软件编程人员转变为高级软件制作技术工人。在规则下,高级技工的工作就是对某一个单一功能的模块进行反复的测试、优化(如同手工做砖一样,工人在一定的规则下把砖做出来)。

7.                        面向规则的技术使得不懂软件开发的设计师同样可以为大型的应用系统设计出优美的表现形式。如同建筑设计师设计出优美的建筑物,但他并不懂工人的技术,即组合砖、水泥、钢筋的技术。因此,行业专家即使不懂一点软件知识,也可以组装出他们所需的满足功能需求的行业应用软件系统;

 

 

乾坤道数字平台简述

 

 

乾坤道数字平台是基于《易经》理论的一套网络软件平台。它根据《易经》中对宇宙的形成理论,宇宙的结构描述理论,每一事物的活动规则,信息的描述等,通过计算机、并以数字的方式表述出来。

易经的发展经历了两个过程,第一步是将有形的宇宙用数来描述;第二步是将有形的宇宙用象来描述(即我们现在所用的卦)。因为使用象来描述并解释宇宙更加方便、直观。

乾坤道数字平台是使用计算机这一工具,把现实的物理模型用数字来描述,并描述每一个对象的活动以及活动的规则(即工作流程)。

 

使用乾坤道数字平台实现对某一物理模型的描述过程其实是一个简单的建筑过程,每一个角色在这个平台上完成好自己的工作,当这些简单的工作全部完成后,整个复杂的工程也就完成了。

乾坤道数字平台的组成元素:对象(构件)和方法。

对象的描述:我们通常所见到的事物很杂乱,比如政府结构,企业组织机构,类别划分等等。为了准确、清晰地描述这些事物,我们参照《易经》的方式进行描述,即模拟外形,又显示属性。

方法的描述:世界万物运动不息,多种方法胶合在一起,结果错综复杂。但任何结果都是由简单的方法合成而得。因此我们参照《易经》爻的方式,为每一种单一的方法制定规则,并对每个方法赋予一种道理。各种方法的不同组合就形成了不同的结果。因此我们参照《易经》中爻的运做规则定义工作流的运做规则,并对每一步进行解释。

 

乾坤道数字平台目前包含四个部分:数字企业平台,数字政府平台,数字地名平台,数字城市平台。

乾坤道数字平台是通过对现实物理模型的数字描述来构建客户所需要的软件系统的。比如数字政府是通过对现实政府的描述,对政府结构(政府所有部门)的描述,政府工作人员的定义,政府工作的描述,每个政府公务员的工作分配,市民的权利定义(市民在规定的权利内可直接在数字办公室参政,这种参政是直接的一对一的),当把所有的一切描述完后,政府公务员,市民就可以在数字政府里工作,这样数字政府软件系统也就完成了

 

 

 

展望

 

 

“路漫漫其修远兮,吾将上下而求索”!

面向规则的软件开发虽然很大程度上不同于面向对象、面向构件的软件开发,但最基本的方面又是一样的,她仍然没有离开软件工程师们的梦想:软件加工厂,软件单元的重复使用,所不同的是实践的方式不一样了、基础点不同了。

面向规则的实施过程为:

1)                         建立系统架构,建立具有单一功能、独立、本身无具体含义的模块库,根据客户的需要建立规则库。

2)                         设计师根据客户的实际需求设计出具体的表现形式(如同建筑师设计的建筑图)。

3)                         技术工人根据设计图构建系统。

4)                         客户、设计师、技术工人对构建的系统进行反复的修改。

面向规则的软件开发可以包罗软件相关的各个领域。我们深信其理论基石是坚不可摧的,她源于《易经》、《道德经》、《圣经》、《佛经》等所揭示的永恒的宇宙变化规则。面向规则的软件开发作为一个事实已被证明是可行的,效果是卓越的。是的,她还不完善,还有很多很多的事有待我们去做,需要我们不懈地努力去发展、去充实、去实践、去验证,但我们深信,她如果被进一步证明是成功的,那么她所给我们带来的将不仅仅是软件开发方式的革命,将是信息产业一场深远的变革:

1.软件开发方式从手工作坊时代跨入现代化、自动化加工时代,软件行业在未来5-10年内将重新洗牌, 最直接的第一波冲击就是按客户需求“量身定制”、“随需应变”的软件项目开发、软件外包业务;

2.数据库的作用将重新被评估,我们仅仅需要一个数据库而已,而不是今天那个日益变得越来越复杂、庞大、试图包罗万象解决所有问题的数据库系统,如我们熟知的甲骨文(Oracle)等,这为中国人用中国自己开发的数据库提供了契机;

3.操作系统可能被重写,面向规则的软件开发方法如果在应用软件领域被充分证明和接受,则会导致操作系统如WindowsLinux等的重新构造,这当然又是一个激动人心的机会和挑战。

                                                                                            (刘敦和  赵文银)

 

作者简历:

刘敦和,美籍华人,资深Java软件开发师,从事软件系统开发、分析、设计近20年,先后在美国、中国多家著名公司工作过,如美国宇航局/洛克希德马丁,任软件工程师,Kent Electronics,任Java软件开发师,金蝶(中国)软件科技,任系统分析师等;教有背景:美国德州休士顿大学计算机科学硕士,中国石油大学工学硕士,长江大学工学学士。

阅读(3209)
我来说两句 查看所有评论>>
亿盟258网  1998-2013©版权所有 京ICP备09027153号 京公网安备11010802010186号 技术支持: 北京乾坤化物数字技术有限公司