(这条文章已经被阅读了 105 次) 时间:2001-08-08 16:44:05 来源:枣庄张伟 (zwzyp) 原创-IT
构件化:软件工厂的技术基础
枣庄张伟
随着计算机制造业的发展的突飞猛进,硬件技术及硬件性能的提高速度总是快于软件,著名的摩尔定律说明了硬件的发展速度,但是考察一下软件开发的速度,可以发现软件开发的速度一直远远地落后于硬件的速度。实际上业内人士一直没有停止过对软件开发思想的探索,只不过快速地对软件开发的需求掩盖了软件开发思想的进步。
软件的应用领域也发生了根本的变化,模式从单机模式、C/S模式一直到现在的网络计算,特别是网络计算带领软件产业进入了一个新的时代,以电子商务为代表的技术潮流正将大到企业计算、小到个人数字代理的各种应用,软件开发领域正面临着一些新的课题,如复杂的分布环境、灵活的应用模式、广泛的包容性等,人们需要的是一种能以“Internet速度”开发软件的方法,传统的软件设计思想显然已远远不够。
诸如此类的问题的最佳方法是采用构件化和软件复用的方法进行软件开发。这需要解决两方面的问题:其一是建立一种工程化的软件开发方法,为软件开发团队制定一个标准的软件开发过程,从而使团队中的每个人都了解在什么时间、怎么样做以及做什么事情;其二是采取软件复用的方式,试想一下,如果每次软件开发都需要从头做起,从低层软件开始,那么软件开发的速度就无从保证。我们到苏南、广东、深圳一些私营电子厂,例如生产洗衣机、彩电、冰箱、收音机及其它电子产品的厂家去看看就可以知道,看起来生产这些电子产品的打工哥打工妹有的只是小学毕业!为什么文化如此之低却可以胜任这样的工作,硬件构件化是基础。
近年来,我国的软件行业一直处于世界软件业的中下游水平,成为软件大国与软件强国成为当代IT人追逐的梦想,于是向印度学习、向爱尔兰学习,引进CMM考核机制等等,一批批对国内软件业深深关注的人出谋划策,可以说软件业在中国从来没有象现在引起众多人的重视。随之,软件工厂、软件蓝领的概念有软件行业也被经常提及。提高软件开发的速度,软件开发工程化是必由之路,这一点倒没有什么争议。软件开发工程化在现实中所采取的形式在目前来说,软件工厂无疑是最可行的形式,也许以后会出现软件开发自动化,但从目前的状况来看,软件开发自动化还是非常遥远。如何实现软件工厂、软件蓝领的软件开发运作模式,它的实现基础是什么?它到底需要什么外部条件?
就是为了解决这一连串的问题,构件技术应运而生,并逐渐炙手可热。构件技术与面向对象的开发方法不同的是,面向对象的技术强调对个体的抽象,构件则更推广了对象封装的内涵,侧重于复杂系统中组成部分的协调关系,强调实体在环境中的存在形式。
为了说明构件化为什么是软件工厂的技术基础,我们先来看看构件的基本属性。从广义上来说,构件有如下的几个基本属性。1、构件是可独立配置的单元,因此构件必须自包容;2、构件强调与环境和其他构件的分离,因此构件的实现是严格封装的,外界没机会或没必要知道构件内部的实现细节(注:这一点对软件蓝领是最主要的);3、构件可以在适当的环境中被复合使用,因此构件需要提供清楚的接口规范,可以与环境交互;4、构件不应当是持续的,即构件没有个体特有的属性,理解为构件不应当与自身副本区别。从以上四个属性可以看出,构件沿袭了对象的封装特性,但同时并不局限在一个对象,其内部可以封装一个或多个类、原型对象甚至过程,结构是灵活的。构件突出了自包容和被包容的特性,这就是在软件工厂的软件开发生产线上作为零件的必要特征。
构件化对软件开发工程化是非常重要的,有了构件才能通过构件的组装、互连,实现软件的工程化开发。然而我们更进一步,可以这么说, 构件化也有自己的基础,那就是统一的建模语言,它应该是一种所有软件开发人员都了解的语言,可以完整地描述软件的需求和结构,这就是“统一建模语言”( Unified Modeling Language ,UML)。从软件开发的历史我们可以看出,在计算机软件的发展过程中,软件开发方法一直是开发人员非常关注的问题。随着软件的日益复杂,传统的开发方法已经难以满足需求,面向对象的开发方法逐渐成为主流,UML就是第三代面向对象开发方法。利用UML,软件设计人员可以很方便地为实际系统的编写提供一个“蓝图”,可以对软件系统及其部件进行表示、直观化说明、构建和开发过程文档化,能大大简化软件设计的复杂过程。当然,仅有建模语言还不够,还需要有相应的“过程”来实现用建模语言搭建的“蓝图”。举例来说,我们很多人都能看懂建筑图纸,从图纸上,我们可以知道“起居室”、“餐厅”、“卧室”的位置和设计,但如果没有建筑师的指导,生手仍然无法盖起大楼。为了解决这个问题,构件化出场了。我们应该能够想起改革开放之初“蛇口速度”及第二次世界大战期间为了迷惑德国军队,一夜之间可以建造数十座大楼,为什么这样快呢,把房子都看成标准的构件,用吊车一吊就完,如搭积木一样,简单地很,技术不高的工人也可以做。
所以说构件是一种前沿的软件设计思想,对整个软件行业的发展有着推动作用。如果回顾经典的工业化革命,不难得出一些有益的启示:功能再复杂的产品都是由大量标准的零件(尽管零件可能只在本领域内有用)组成,零件在生产线上装配成一个成品,所有零件在成品中共同发挥作用。分工越细致、专业生产的程度越高,总体生产效率就越高。而构件技术所扮演的角色就是把零件、生产线和装配运行的概念运用在在软件工业中,可以预见,软构件技术是软件产业化革命的必然发展趋势。
虽然迄今为止,世界上开发商用构件的公司极少,但UML的发明人Jaoobson先生相信,随着人们对“统一建模语言(UML)”认知度的提高以及相应工具软件的日益完善,在几年之后,将会兴起构件化开发的高潮。在软件开发过程中不利用构件化技术,软件工厂、软件蓝领失却了技术基础,只能沦为空谈。
(作者声明:本文的观点,只是作者的井底之见,难免有失偏颇,欢迎各位就此争论,以利于中国软件业的发展)
——————————————————————————-作者简介:张伟,男,30岁,计算机硕士,高校任教,主要研究方向计算机网络与计算机软件。
联系方式:
Email: [email protected]
通信地址: 山东枣庄市市中区渴口中学常识组朱玉萍(转张伟收)
邮编:277100
OICQ:15674105
欢迎约稿。