是复用者需要知道如何去使用被复用的对象。软件复用包括两个相关的过程:可复用软件(构件)的开发
(Development, for Reuse)和基本可复用软件(构件)的应用系统构造(集成和组装)(Dev
elopment withReuse)。解决好这几个方面的问题才能实现真正成功的软件复用。
2构件技术
2.1构件技术模型
构件复用是软件复用的核心问题,因此有关构件的研究得到日益重视并且形成了软件工程学科的一个分支。
在产业界正在逐渐形成一种产业模式,即构件生产商负责生产构件,构件销售商负责构件的销售,构件集
成商负责构件集成.目前已经商品化的构件有微软的COM/DCOM、Sun公司的Java Bean和对象管理组
织(OMG)的CORBA。
构件是一种不透明的功能实现.要通过构件模型进行构造,要能够与第三方进行合成,这样就存在构件模
型标准化的问题。构件模型的标准化要能同时满足构件生产者和构件消费者需求,学术界普遍接受的是“3C
"(Concept,Content,Context)模型[2],即component=(Concept,Content,Context),在
这个模型中:
Concept:概念.描述软件完成什么功能。描述构件的接口和语义,概念和内容(Content)能够进行通信;
Content:内容,描述如何实现这个构件,一般情况下,构件的内容信息对临时用户是隐藏的.只有需要对
构件作修改的用户才是可知的;
Context:上下文、组件在其适用领域内的配置,通过对概念、操作和实现特征的详细说明。上下文能够
使软件寻找到满足应用需求的组件。
2。2构件的开发
构件的开发技术有多种.其中比较有代表性的是CBSD技术。CBSD是CMU/SEI提出的构件设计参考模式,
这种设计模式的原则是:组件具的扩充独立性:组件模型必须给出一些标准以保证独立开发的组件能够配置
到公共的环境中,而不会出现不可预知的问题;开发时间短,这样会减少整个开发和维护费用;提高可预知
性。
基于构件的系统来源于基于构件的设计策略,构件技术包括支持这种设计策略的产品的概念,这种设计策略
与组件描述的设计模式和交互模式的构造类型非常相近,组件(即构件)反映的设计模式如图1。
图1中,①构件实现是能够在物理或者逻辑设备中执行的软件实现。一个构件可以有一个或者多个接口②.
构件满足一定的规范,这里称为契约,这些契约的作用是保证独立开发的构件符合给定的规则,以便以可预
知的方式进行交互并配置到标准的建造环境和运行环境④中。基于构件的系统是建立在少数不同的构件类
型上.每一个构件的类型在⑤中扮演的一个特定的角色,由接口②对其进行描述。构件模型⑥是组件类型、
接口和组件间相互作用的模式说明书集合.构件构架⑦提供多种服务⑧来支持和加强构件模型.
3 COTS构件
当前的软件已不再是一个简单的系统.规模越来越大,通常是一复杂的“系统中的系统"。大型软件尤其如
此,从头开始做每一件事情来建造系统几乎是不可能的。于是出现了COTS(Commercial OffThe Shel
f)技术.COTS构件是从市场上采购得到的软件组件,它由第三方开发。系统开发者不能访问源代码,相同的
COTS构件可能有很多用户最后才能得到健壮的系统.
C0码构件有以下的特征:COTS软件不能被修改,这是COTS软件的固有特性.系统集成者购买组
件后,不需要对构件作修改:有时为了把所有的构件进行了太多的修改就不再被认为是COTS
组件了;系统集成者对COTS构件没有升级和维护控制权,软件升级和维护是COTS组件开发者
的职责。依据
COTS组件在系统中所起的作用不同。COTS分为两类:一类是一个COTS系统中,不是单一的COTS
构件支配整个系统,而是由一组绑定在一起构成的;另一类是在COTS解决方案中.使用一个主
COTS构件作为主解决方案。其他的传统的构件作为辅助的软件或者插件加入到系统中。
使用COTS构件突出的优点是能降低软件开发的成本.购买现有的软件比自己开发所需的成本低,
软件的健壮性要高,因为市场上提供的COTS软件使用的是成熟的技术,使用这样的构件往往比自
评论0
最新资源