在Merriam-Webster Collegiate字典里,构件一词于1645在英语中开始使用。 构件一词的语源问题:拉丁文的构件一词是component,表示用于组合在一起的部分。
构件(component)是可复用的软件组成成份,可被用来构造其他软件。它可以是被封装的对象类、类树、一些功能模块、软件框架(framework)、软件构架(或体系结构Architectural)、文档、分析件、设计模式(Pattern)等。构件分为构件类和构件实例,通过给出构件类的参数,生成实例,通过实例的组装和控制来构造相应的应用软件。打个比方,如果有一个开发人员创建了一个构件能够让一个客户进入公司的数据库。那么,其他程序员就不必重新编写这个功能,而是从公司的知识库提取这个用户构件,然后直接放入程序使用其功能。
经过几年的发展,构件本身的模型及其规范已经提出,较有影响是OLE的COM及CORBA的SOM。目前已发展到分布式构件规范,主要有CORBA、OLE/ActiveX和JavaBeans,其发展日趋明朗,最终将会趋向统一。目前国内许多大工程、大项目都纷纷采用这项技术,如863计划近一半的项目、通信方面许多大项目的投标、金融行业的业务处理系统等,都在朝这个方向走。可以说,构件技术的出现是对传统软件开发过程的一次变革,它代表了新一代软件技术的发展方向。
2 基于构件的软件开发方法
传统的软件开发方法包括:自底向上法、自顶向下法以及快速原型法。以上方法各有其优缺点。“自底向上”法由于先从底层模块做起有助于发现系统的增长需要,但过于重局部而使得MIS难以实现其整体性;“自顶向下”法从上到下实现整个系统,可以为企业或机构MIS的中长期发展规划奠定基础,但其开发周期长、缺乏灵活性对下层系统的实施缺乏约束力,成本较高;快速原型法的核心即模型,不断地对原型进行补充和细化,是一种动态定义技术。虽然具有很明显的优越性,但其过分依赖于快速开发工具的支持。
基于构件的软件开发与传统开发方式不同之处在于它在分析、设计、实现等各个阶段中所充实的工作不再是从零开始,CBSD引导软件开发从应用系统开发转变为应用系统集成,可以看成是一个以组装为主的软件开发过程。形象地说,结构化的开发方法就是用泥土、稻草来砌房子,面向对象的开发方法就是用砖头、钢筋来建房子,基于构件的开发方法就是用混凝土浇筑房子,其中做好的架子就是所谓的构架,或者称为集成机制。即:按照领域构架确定本系统需要哪些可复用构件,根据本系统的特殊要求对构架和构件进行特化,并开发本系统领域的专用构件,然后将领域构架(Domain Architecture)、领域构件(Domain Component)和系统专用构件(System Special Component)组装成一个完整的系统。图1是对该方法的简略表示。
3 系统MIS生成方案
采用构件技术开发MIS系统的设计目标是以组合开放式结构构造MIS集成一体化的环境。根据生产企业MIS系统的一般结构,应由以下几个部分构成:生产管理、销售管理、物流管理、质量管理、人事及财务管理等几个子系统,同时应具有以下主要生成功能:功能菜单、数据库文件、数据库维护、查询、统计计算、报表生成与打印以及应用系统文档信息。由此可以得到该类企业开发模型,如图2所示。
由此,我们可以看出,系统开发首先经由企业决策者和领域专家、开发人员一起对现有系统技术资料,通过领域分析产生由用户提供的文档资料形成的领域主题文档,明确划分三类构件库:系统构件包括各种开发工具中的窗体、按钮等构件,目前软件市场已提供如MFC(Microsoft Foundation Classes)面向对象构件类库;通用构件指各领域中可复用的功能性构件,如MIS的通用统计查询构件、权限管理构件、报表构件等;领域专用构件是针对这一领域所开发的构件,在特定领域中有一定的复用价值。最后的系统集成不一定是原封不动地使用领域构件和系统构件,现实世界是复杂的,有时需要根据系统的具体情况对构架和构件进行细化,也就是作进一步的开发。
为了适应各种管理信息系统的开发,在构件库中应尽可能多收集些构件进行复用。大部分的国内企业对人事薪资、财务管理都很类似,企业生产产品各不相同,但其销售和在库存管理上也很接近,这些都可以作为构件放入构件库中,方便以后直接应用。减少重复开发,提高开发应用软件的效率,是采用构件技术开发MIS的一大优势。
4 结束语
构件技术的出现,极大地满足了多个应用领域的要求,使得各种技术形成的软构件可以最大程度地进行复用。通过分析系统发现,在信息系统中有很多领域内相通的共性,比较适合利用构件技术进行开发。同时在开发过程中仍存在一系列的问题,如何建造面向对象的构件库结构,并有效地组织和管理;如何分析、提取可复用构件;如何设计适合构建集成的环境等等,我们正是缺少这样一个新的以构件为核心的生态系统,具备完善的构件运行环境、开发环境、应用管理环境、基础性的公共构件库、以及面向构件的方法学和经验论。虽然这条道路还很漫长,但我们有理由相信,构件化开发必将把我们带入软件工业化发展的新纪元。
参考文献:
[1] 邵维忠,杨芙清.面向对象的系统分析[M].北京:清华大学出版社,1998。
[2] 王继成.软构件技术及其在MIS中应用的研究[J].计算机应用研究,2003,(6):7-8。
[3] 张大强,程家兴.一种基于构件技术的管理信息系统开发方法[J].微计算机应用,2004,25(5):600-603。
[4] 陈海林,潘孝铭.软件构件技术研究[J].福建电脑,2006,(8):37-38。