构件开发技术

类别:软件工程 点击:0 评论:0 推荐:
构件开发技术的由来

在信息时代,新的技术革命正在改变我们日常生活的面貌,而这场技术革命的核心是计算机软件系统。在面向对象技术给解决软件危机带来曙光之时, 分布式网络计算的巨大压力又给软件开发提出了许多新的难题,使软件开发仍处于高风险状态。新的分布式网络计算要求软件实现跨空间、跨时间、跨设备、跨用户的共享,导致软件在规模、复杂度、功能上的极大增长,迫使软件要向异构协同工作、各层次上集成、可反复重用的工业化道路上前进。为适应软件的这种需求,新的软件开发模式必须支持分布式计算、浏览器/服务器结构、模块化和构件化集成,使软件类似于硬件一样,可用不同的标准构件拼装而成。具体地说可实现下列几点要求:

?  提供一种手段,使应用软件可用预先编好的、功能明确的产品部件定制而成, 并可用不同版本的部件实现应用的扩展和更新。

?  利用模块化方法,将复杂的难以维护的系统分解为互相独立、协同工作的部件,并努力使这些部件可反复重用。

?  突破时间、空间及不同硬件设备的限制,利用客户和软件之间统一的接口实现跨平台的互操作。

为满足上述要求,软件构件技术出现了。而构件重用的目标是达到需求、分析、设计、编码、测试的重用。从此,一种影响软件产业发展的新的软件开发方法诞生了。从抽象程度来看,面向对象技术已达到了类级重用(代码重用),它以类为封装的单位。这样的重用粒度还太小,不足以解决异构互操作和效率更高的重用。构件将抽象的程度提到一个更高的层次,它是对一组类的组合进行封装,并代表完成一个或多个功能的特定服务,也为用户提供了多个接口。整个构件隐藏了具体的实现,只用接口提供服务。这样,在不同层次上, 构件均可以将底层的多个逻辑组合成高层次上的粒度更大的新构件,甚至直接封装到一个系统,使模块的重用从代码级、对象级、架构级到系统级都可能实现,从而使软件像硬件一样,能任人装配定制而成的梦想得以实现。

构件开发的特点

软件构件是软件系统内可标识的、符合某种标准要求的构成成分,类似于传统工业中的零部件。广义上讲,构件可以是需求分析、设计、代码、测试用例、文档或软件开发过程中的其它产品。狭义来说,一般指对外提供一组规约化接口的、符合一定标准的、可替换的软件系统的程序模块。通常情况下是指后者。

1.可复用性

构件应该能够在二进制代码级被复用。使用软件构件是缩短软件的交付时间和提高软件质量的一条途径.

软件构件复用是指充分利用过去软件开发中积累的成果、知识和经验,去开发新的软件系统,使人们在新系统的开发中着重于解决出现的新问题、满足新需求,从而避免或减少软件开发中的重复劳动。构件复用使人们在软件开发中不必“重新发明轮子”或“一切从零开始”,提高了软件生产率和质量,缩短开发周期,降低开发成本。软件的重用中没有材料的消耗,而且软件通过多次重用后其质量和可靠性越来越高。据统计,软件系统的开发中若复用程度达到50%,则其生产率提高40%,开发成本降低约40%,软件出错率降低近50%。

2.系统结构分层,业务与实现分离,逻辑与数据分离

应用逻辑变动频繁,特别在当前竞争激烈的市场上,要不断适应用户越来越苛刻的需求。 将应用逻辑独立分离,可即插即用替换构件,让系统易于升级。应用逻辑是应用系统的核心,分离出来有利于高质量、高效处理。 在多层结构应用系统中, 如果应用服务器上所用构件有变化, 独立分离出来的应用逻辑则不会受到影响。

3.易用性

指软件构件有很好的包装,能很方便地使用它。一般来讲,软件构件的包装要符合一定的标准。软件构件可以独立部署,易于第三方整合。”

4.语言无关性

5.构件是语言(源程序)无关的,构件的调用协议是语言无关的协议。

6.位置透明性

调用者对构件的调用,与构件的位置无关,无论构件位于什么位置,调用者调用构件(包括定位构件)的方法都相同。

7.自描述性

构件是自描述的,调用者应该能够在调用构件之前,通过构件获取调用构件需要的构件信息(自描述),构件信息也是语言无关的。

8.安全性

构件是安全的,不应该允许任何形式的未授权使用(调用)。

9.领域内的软件结构一致性好。

10.软件设计人员要专注于对领域的了解,使需求分析更充分;

11.大粒度的重用使得平均开发费用降低,开发速度加快,开发人员减少,维护费用降低,而参数化框架使得适应性、灵活性增强

组建开发技术与传统开发方式的比较

传统的软件开发大多采用面向对象技术,构件技术与面向对象技术紧密相关。构件和对象都是对现实世界的抽象描述,通过接口封装了可复用的代码实现,不同的是,首先在概念层面上,对象描述客观世界实体(identity),构件提供客观世界服务(service),其次在复用策略上,对象是通过继承实现复用,而构件是通过合成实现复用;最后在技术手段上,构件通过对象技术而实现,对象按规定经过适当的接口包装(wrap)之后成为构件,一个构件通常是多个对象的集合体。构件技术是对象技术的发展,构件具有更强的独立性、封闭性和可复用性。 

1. 构件和对象都是对客观世界实体的一种抽象描述,他们的共同特点是信息隐藏和一定的独立性。但是构件要求是自描述,独立性更强,而对象达不到这一要求,也较为“白盒”了一些。

2.  构件和对象的本质区别:构件提供的是服务,对象提供的是功能;构件接口描述了问题域(problem domain),而对象接口描述了方案域(solution domain)。

3.  对象是类的实例,对象是动态的;有人说构件是静态的,应该和类相对应;事实上并不尽然,可以这样看,在特定领域体系结构(DSSA)中定义的构件是静态的,而集成到应用系统中的构件是动态的,目前尚未见到有人对它们的区别。

4.  存取构件和对象中的信息都必须通过它们的接口,构件的结构有必要充分描述它的语义,对象做不到这一点,所以对象需要另加接口才可以成为构件,所以有人认为构件=对象+接口,其实这只是构件的充分条件。

5.  构件的接口是一种服务提供者对消费者的承诺:即契约(contract);用契约确保一组构件之间的行为组合。对象就没有这个说法。由于服务存在的持久性,所以服务都是永久性存储对象。

6. 构件的粒度一般较粗,它可能包括一个或多个对象(或类),它的接口一般也比对象复杂。

组建开发技术的内涵

软件工厂是一个按照流水线的工作方式、遵循一定的生产质量规范,批量、高效的生产标准化的“软件零部件”(构件),并对其进行组装从而批量完成软件产品或应用的机构。生产工作将不受时间和地点的限制。

构件化的软件生产是实现软件工厂的主流模式,其核心是在一个开发平台上通过预制和定制多个软件构件,依托构件库及相关工具平台,象工业生产零配件一样根据开发目的组织软件部件的开发生产、工业式组装与协作、规模化的批量生产。

软件工厂的出现使得软件开发商可以通过可重复的开发过程快速生产出效率高、成本低、质量好的企业级软件,使得软件生产条理化、系统化,项目实施人员可以对零件(中间件、模块)进行自由组合,解决了用户需求不确定性问题,能够最大可能地利用已有资源,是系统化实现软件复用的有效方式。 

组建开发技术在应用软件开发中的作用

计算机技术迅速发展。从硬件技术看,CPU速度越来越高,处理能力越来越强;从软件技术看,应用程序的规模不断扩大,特别是Internet及WWW的出现,使计算机的应用范围更为广阔,许多应用程序需在网络环境的异构平台上运行,软件的规模更大。这一切都对新一代的软件开发提出了新的需求。

在信息时代,新的技术革命正在改变我们日常生活的面貌,而这场技术革命的核心是计算机软件系统。在面向对象技术给解决软件危机带来曙光之时, 分布式网络计算的巨大压力又给软件开发提出了许多新的难题,使软件开发仍处于高风险状态。新的分布式网络计算要求软件实现跨空间、跨时间、跨设备、跨用户的共享,导致软件在规模、复杂度、功能上的极大增长,迫使软件要向异构协同工作、各层次上集成、可反复重用的工业化道路上前进。为适应软件的这种需求,新的软件开发模式必须支持分布式计算、浏览器/服务器结构、模块化和构件化集成,使软件类似于硬件一样,可用不同的标准构件拼装而成。具体地说可实现下列几点要求:

提供一种手段,使应用软件可用预先编好的、功能明确的产品部件定制而成, 并可用不同版本的部件实现应用的扩展和更新。

利用模块化方法,将复杂的难以维护的系统分解为互相独立、协同工作的部件,并努力使这些部件可反复重用。

突破时间、空间及不同硬件设备的限制,利用客户和软件之间统一的接口实现跨平台的互操作。

从开始的结构化,进化到面向对象,再到构件技术。为了满足上述需求,构件技术出现了,给软件业注入了活力。构件重用的目标是达到需求、分析、设计、编码、测试的重用。

从抽象程度来看,面向对象技术已达到了类级重用(代码重用),它以类为封装的单位。这样的重用粒度还太小,不足以解决异构互操作和效率更高的重用。构件将抽象的程度提到一个更高的层次,它是对一组类的组合进行封装,并代表完成一个或多个功能的特定服务,也为用户提供了多个接口。整个构件隐藏了具体的实现,只用接口提供服务。这样,在不同层次上,构件均可以将底层的多个逻辑组合成高层次上的粒度更大的新构件,甚至直接封装到一个系统,使模块的重用从代码级、对象级、架构级到系统级都可能实现,从而使软件像硬件一样,能任人装配定制而成的梦想得以实现。

组建开发技术在流通应用中相比传统软件开发技术的优势

构件是应用程序的“建造材料”。它们提供一系列分散的操作,被应用程序一次次地使用。任何给定的应用程序可以包含许许多多的构件,每个都提供特别的商业逻辑功能或用户界面功能。 以一个数据库应用为例:数据输入的窗口上可能包含许多用户界面构件,通过它们来提供按钮、菜单、表格等。可能也有很多商业逻辑构件提供数据确认和计算功能,还有些构件将数据写入数据库。 最后,为了查看窗口中的表格或为了打印,可创建一些构件从数据中得出报告。

信息化对于国内流通企业产生了巨大的变革,这主要体现在采购成本、销售成本、仓储成本和配送成本的降低。这四项成本的降低,使流通企业首先具备了成本上的优势,企业将这部分成本通过降价方式让给顾客,进而从根本上增强了自己的竞争优势。

传统软件开发技术的开发模式决定了它所开发出的软件产品只能是适应了开发当时管理模式,随着信息化突飞猛进的发展,流通行业的信息化需求也在日益提高和变化,这样传统的软件就很难在适应新形势下的管理和应用需求。然而构件开发技术立足于在应用中不断完善,在变化中不断去适应,就能在新的需求到来时,很快将需求转换为软件实现。

本文地址:http://com.8s8s.com/it/it36233.htm