基于构件复用的软件方法与COM支持

软件构造-构件复用 可复用构件与软件复用的关系 1.可复用构件的定义及特征    构件是指应用系统中可以明确辨识的有机构成成分,它具有相对独立性、互换性和功能性的特征。可复用构件则是指具有相对独立的功能和可复用价值的构件。    可复用构件应具备以下特征: 有用性,必须提供有用的功能; 可用性,必须易于理解和使用; 可靠性 ,构件自身及其变形必须能正确工作; 适应性,应易于通过参数化等方式在不同语境中进行配置; 可移植性,能在不同的硬件平台和软件环境中工作。    随着对软件复用理解的深入,构件的概念已经不再局限于源代码构 阅读详情

基于构件复用的软件方法与COM支持


张颢
   华中理工大学计算机学院

摘要 作为研究的热点,近年来提出构件模型层出不穷.出于相互之间互操作性的考虑,必须具备一个公共的构件
底层框架.分析各种实际的因素,COM是一个可行的选择.本文讨论了COM规范对组件复用的支持及其发展前景,提
出了基于COM的复用思想:以接口的标准化推动服务的标准化,为复用软件的开发和使用建立规范.

关键词 软件复用,COM,分布对象,组件,面向对象

构件复用作为一种现实有效的软件开发方法正受到越来越多的重视和研究。近年来,随着DNA,中间件等三层体
系结构和分布式对象的兴起,为基于可复用构件的软件体系结构赋予了更大的内涵。从而使我们在评价构件复
用的意义时,不应只局限于开发周期的缩短,软件质量的可靠提高,更要认识到构件组装式的开发在系统维护(如
版本更新,功能增删等),分布式计算等方面所带来的极大便利。由于维护阶段占软件开发周期总成本的67%左右
,因此构件重用对整个软件产业的重要意义就不言而喻了.从维护和分布计算的角度考虑,构件复用就是要实现
"即插即用".

传统的面向对象编程语言中,基于继承机制的类的复用,只是源代码级的重用,在源代码不可得的情况下(构件产
业化的发展趋势下,这种情况很普遍),就变得毫无意义了.更为重要的是,联编以后,类构件就只是一个逻辑上的
虚幻的概念了,不会给将来可能的处理带来任何方便.

MicroSoft自90年代初就进行了COM的开发,历经OLE1,VBX组件,OLE2,ActiveX,COM+的不断完善,现已成为一个相
当成熟的组件模型,对构件复用提供了有力的底层支持.

一  COM对象的封装

COM是一个二进制的标准,它详细规定了一个COM组件所应具有的内存结构.COM对象间的交互完全基于对此内存
结构的操作.因此可以在很大程度上忽略不同编程语言,应用环境之间的差别,解决了重新编译重新发行的问题
.二进制代码级的兼容性要求操作系统的支持,但是COM描述对象连接的方法与传统的API式共享系统服务不同.
连接建立后,COM底层库不再被需要,停止耗用系统资源,与API相比,操作系统必须一直管理组件之间的连接.

COM用接口的概念对组件的功能属性进行完全的封装.与组件的通信必须通过接口进行.接口不仅是一个逻辑上
的概念,而且也存在着与之相对应的物理内存结构(VTABLE).一个对象可以对应多个接口,一个接口也可以由多
个对象所实现,表现出灵活的多态性.同时也为版本管理提供了方便.当使用新版本的组件替换老版本时,只要该
组件实现了旧版本的接口(通过包容,聚合等手段),就保证了其与原用软件系统的兼容.同时新增功能(新的接口
)又可被自然的使用.

接口完全封装了内部功能,属性的具体实现,使得COM对象对外表现为"黑盒"结构,完全吻合面向对象系统所要求
的"强内聚性".但由于对接口的过多强调,COM组件一般不具备广泛提倡的"弱耦合性"的特点.不过,微软一向重
视接口的不变性,试图用接口的标准化推动服务的标准化,以接口为基础为软件复用建立实用的框架.其实
ActiveX技术规范中的相当大一部分都是通过定义标准的接口及其相互之间的逻辑关系来确定的.

二  自动化

在考虑调用接口内成员函数的具体实现时,就会发现由于组件的特殊性,这种实现需要与通常完全不同的规范.
需要解决的问题有:源程序中如何标识一个组件(物理上,就是一段已经存在了的,具有一定功能的二进制代码)
,对于组件内特定函数的调用,编译器将如何做出处理,如何进行参数的检验及返回值的收集.

在旧的编程模式中,以上问题的解决均需要一个对组件进行充分定义的说明性文件.而且,该说明性文件的格式
必须完全符合所用的编程语言的语法.这就产生了以下一些矛盾.首先,为每一个发行组件均配置各种不同版本
的说明文件在实践中并不可行;第二,即使这样的头文件通过类型库自动转换得到,为各种编程语言提供这种转
换工具同样是不可行的;第三,组件中所用到的数据类型并不一定总能与目标编称语言一一对应;第四,这种笨拙
的实现方法,与构件的"即插即用"概念相去甚远,程序员难以接受.

针对以上问题,COM规范提出了自动化技术,较好的实现了以符号为导航的动态绑定.Idispatch是实现这一点的
关键接口.

Class Idispatch : public Iunknown

        {

            public:

               virtual HRESULT GetTypeInfoCount(UINT * pctinfo) = 0;

               virtual HRESULT GetTypeInfo(UINT iTinfo,LCID

                    lcid,ItypeInfo ** ppTInfo) = 0;

               virtual HRESULT GetIDsOfNames(REFIID riid,LPOLESTR *

                    rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) = 0;

               virtual HRESULT Invoke(DISPID dispIdMember,REFIID

                    riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,

                    VARIANT *pVarResult,EXCEINFO *pExcepInfo,

                    UINT *puArgErr) = 0;

        };

在自动化对象中,每一个成员函数均对应一个分发ID(DISPID),服务导航器InVoke就是通过此分发ID建立与目标
函数的连接.可以用GetIDsofName实现符号(函数名)到ID的映射.因此,应用程序就有了一个统一的界面来使用
组件提供的各项服务.

对于数据类型的兼容性问题,微软提供了一个生硬的解决方法.定义一个尽可能"包罗万象"的大的数据结构
VARIANT

                typedef struct tagVARIANT

                {

                    VARTYPE     vt;  //类型标示

                    union

                    {   // 传值类型

                       short    iVal;

                       long     lVal;

                       byte     bVal;

                       float    fltVal;

                       ……

                       // 引用类型

                       short    *piVal;

                       ……

                       IUnknown  **ppunkVal;

                       IDispatch **ppdispVal;

                       VARIANT   *pvarVal;

                       void      *byref;

                     };

                  };

自动化对象与其调用者之间参数与返回值的传递,必须在VARIANT的范围之内进行.各种不同种类的VARIANT型参
数之间的转换,可以在InVoke中实现.为程序员提供更加智能化的编程界面(如VB中实现的那样).

COM为所有的组件对象规定了一个必须实现的基接口IUnknown,这不仅定义了最基本的公共服务,而且还使一个
指向IUnknown接口的指针客观上成为组件实例的对象标示.除对象生存期的管理外,这种对象标示还使COM组件
具有了自解释的特性:通过对Iunknown接口的成员函数QueryInterface的调用可以查询到对象实现的所有接口
.

不过上述自动化的各种优点是以其数据类型的限制和性能的部分损失为代价的.虽然编译器可以通过类型库进
行前绑定(参数类型的检查,符号到分发ID的转换),但是最耗时的InVoke却难以优化.为此COM规定了双接口机制
,为程序员提供了在动态绑定与静态联编之间选择的自由.同时,自动化技术的存在,也为脚本语言(VBScript,
JavaScript)提供了活力.

三  包容和聚合

作为面向对象系统的重要特性,COM支持两种重用模型:包容(containment)和聚合(aggregation)它们的思路基
本一致,只是在实现方法上有所不同.

考虑包容的情况,假定已经有一个实现了接口IReuseInterface的COM对象A,由于新的需求,我们又要实现一个新
的COM对象B,它既要实现接口IReuseInterface,又要实现接口INewInterface,而且IreuseInterface所提供的服
务与对象A的接口基本一致,只要再实现新添加的功能就可完成对象B的开发.最直观的想法就是在对象B的内部
"包容"一个对象A的实例.所有对B的接口IreuseInterface成员函数的调用均在其内部简单地转发给对象A,对于
B的客户来说,更本无需知道A的存在.这种包容关系可用下图表示:


   


包容模型在实现时较为灵活,可以再将调用转发给内部对象的前后,进行一些本地化的处理,从而弥补A和B各自
IreuseInterface接口在功能上的微小差异.

依然考虑上面的例子,如果B的IReuseInterface接口在功能上与A实现的完全一致,不需要做任何改动.现在采用
聚合模型来实现B.对象B本身并不是实现接口IreuseInterface,它只实现接口InewInterface.当B客户请求
IreuseInterface 接口时,对象B把对象A的IreuseInterface接口指针传递给客户程序,因此客户直接与A进行了
交互(虽然它并不知道对象A的存在).聚合模型的实现如下图所示:


    


当然,聚合模型在对Iunknown指针的处理上要比包容模型复杂一些.需要进行对象双方的合作,并不是每对象都
能支持聚合的特性.但聚合体现了组件软件真正意义上的复用,而包容的重用性只是体现在客户服务器模型相对
性的基础上.实际也就是客户程序和组件程序的嵌套关系.这是包容和聚合的本质不同.

四  统一数据传输和消息传递

在基于软件复用开发的应用系统中,各分立的组件对象要相互协作来共同完成某一特定任务逻辑.为支持各种可
能复杂的协作关系,仅有参数信息的传递是远远不够的,必须提供应用间数据交换的标准方案和事件,消息的通
知机制.

在这两方面,COM均提供了较为成熟的规范.即统一数据传输(UDT,Uniform Data Transfer)和MSMQ.

众所周知的OLE程序利用剪贴板传输连接对象信息,就是UDT的一种典型应用.统一数据传输建立在结构化存储的
基础上,包括两方面的内容:首先是数据格式的统一,其次是传输协议的建立.统一数据传输机制使用"数据对象
"作为信息实体,通过IDataObject接口暴露其内部信息.由于数据对象本身是一个COM对象,因此它不仅可以表达
一般的结构化信息,也可以表达一些非结构化信息.

传输协议任务就是将一个组件提供的数据对象即IdataObject接口指针传递给另一个组件对象.接收方得到
IdataObject接口指针后就可以利用其成员函数获取所需的数据.传输协议的具体实现与数据交换是完全分开的
,因此可以在最大限度与原系统保持兼容的情况下,方便的扩充协议.较常见的传输协议包括剪贴板,"拖-放"技
术等.另外,为适应一些实时性比较强的应用,COM还提供了"数据变化通知"机制,以扩充数据对象与客户程序之
间的双向通信.MicroSoft Message Queue(MSMQ)版本1是Windows NT操作系统的一个新特征.MSMQ提供可在不可
靠的网络上进行可靠的关键任务信息通信.与大多数现代应用程序用紧密耦合且同步通信相反,MSMQ基于一个消
息排队模型来提供一个异步,松散耦合,可靠的网络通信.出于功能复用及标准化的考虑,MSMQ 使用了面向消息
的中间件(MOM Message_Oriented Middleware).MOM提供了一个队列和消息的通信基础结构.应用程序向队列写
入消息,消息中间件将消息传递给被请求的队列,另一个应用程序(或同一应用程序的另一个组件)从目标队列读
取消息并进行处理.消息的内容完全由读写队列的应用程序控制.MSMQ支持大范围的队列类型.公共应用程序队
列对MSMQ客户是可见的,因为它们发布在一个命名服务器上,即MQIS(Message Queue Information Store,消息
队列信息存储).MSMQ客户能够查询MQIS来确定是否存在某一公共应用程序队列以及它已哪台计算机为主机.另
一方面,私有的应用程序队列不在MQIS中发布.因此,想向私有队列发送消息,就必须详细知道此队列的主机.

五  总结

企业级应用系统领域中的构件复用,由于有了三层体系结构的支持而变得清晰,明确.在Windows DNA框架中应用
系统被分为了表现层,业务层和数据层.其中的业务层又可根据需要分为多个子层.表现层和数据层的重用已经
相当标准化了,如各种支持GUI开发的类库,ActiveX控件,OLEDB,ODBC等.构件复用的重点在业务处理层.笔者认
为通过对商业世界中各项服务的明确划分,对东服务接口的定义标准化,可以有效地实现体系结构和组件的复用
.

随着Windows 2000的发布,即将浮出水面的COM+作为COM,DCOM,MTS的某种集成,与操作系统的结合更加紧密.
COM+提供了对负载平衡,安全性,消息事件模型,MTS服务的更好支持.同时,COM+的部分特性将在下一代编译器
(Visual Studio 7.0)中有所体现,使得组件化程序设计更加自然,友好.随着COM+的发表,从现在到将来,COM将
成为一条基于Windows的面向组件对象的软件开发之路.





参考文献

① Stephen R.Schach,Software Engineering with JAVA,McGraw-HIll

② Component Object Model specification,MicroSoft Corp.,1993

③ 潘爱民,COM原理与应用 ,清华大却出版社

④ 袁小玲,组件技术--企业管理信息系统开发的新曙光,计算机工程与应用

   1999,9

⑤ 徐正权,骆婷,异质可复用软构件属性模型,计算机应用研究,2000,3

⑥ 来欣,邓铁清,分布对象与WWW技术的集成研究与实践,计算机工程与应用,

   1999,7

⑦ Rogerson Dale,Inside COM,Microsoft Press,1997.ISBN 1572313498.

⑧ Don Benage Azam Mirza,Building Enterprise Solutions with Visual Studio   

   6.0,Macmillan Computer Publishing U.S.A

基于构件的软件工程CBSE 基于构件的软件工程(Component - Based Software Engineering,CBSE)是一种基于分布象技术、强调通过可复用构件设计与构造软件系统的软件复用途径。 阅读详情

相关推荐

【系统架构设计师】论文:论基于构件的软件开发

本文以我主持的某商业银行交易监控分析系统项目为实例,探讨了作为开发方公司基于构件技术开发项目碰到的问题以及解决的方法。文章首先解释了基于构件技术开发软件的基本概念,认为目前大多数开发单位的产品存在重复的功能模块,而重复的开发工作,直接导致了项目周期以及成本不必要的增加,针对这一问题,提出了应该及时整理已有的系统,形成企业构建库,针对性的选择构件,从而基于构件开发新的软件项目,在保证软件产品质量的前提下,缩短项目周期和开发成本,最终使企业盈利。

数据知道的博客 1万+

软件架构设计---构件及其复用

    软件企业为了提高开发效率,越来越注重软件元素的复用(也称重用),因此,架构设计师在进行架构设计时,必须关注复用,例如,考虑丰富企业构件和充分使用已有的构件。本节从构件角度研究如何使用软件复用技术,下一节重点讨论基于产品线的软件复用。     与复用技术密切相关的概念是构件(component,组件),业界对构件还没有公认的定义,如下为几种常见的定义。     定义 1:构件是指软件系统...

hu19930613的博客 6008

避开ns-3学习深坑:用sns3模块快速搭建GEO卫星通信仿真(附GitHub代码解读)

本文介绍了如何使用sns3模块快速搭建GEO卫星通信仿真环境,绕过复杂的ns-3底层细节。通过详细的Linux环境配置、sns3模块安装和示例代码解读,帮助开发者快速上手卫星通信仿真,并提供了常见问题的解决方案和性能优化技巧。

weixin_28720573的博客 439

软件重用——类构件

11.3.2 类构件 利用面向对象技术,可以更方便更有效地实现软件重用。面向对象技术中的“类”,是比较理想的可重用软构件,不妨称之为类构件。类构件有3种重用方式,分别是实例重用、继承重用和多态重用。下面进一步讲述与类构件有关的内容。 1.可重用软构件应具备的特点 为使软构件也像硬件集成电路那样,能在构造各种各样的软件系统时方便地重复使用,就必须使它们满足下列要求: (...

FRESHET的专栏 5025

UE4虚拟现实实习总结---蓝图中的常用交互事件|人物行走|物体移动|动态触发|材质改变

这周是ue4实习周,老师给我们的任务就是基于中学物理和化学实验的虚拟实验室,要有交互事件,后期可以链接vr手柄进行操作。 但是实习开始老师影都没了,全靠自己学习。感觉自己学习了不少东西,这里就来总结一下!顺便感叹一下,ue4好玩又强大! 以下主要介绍蓝图中的几种交互事件1.新建游戏角色并且进行角色行走旋转,2.如何控制物体移动旋转,3.如何控制物体材质动态变化 大家可以举一反三,作出更好的作品 1.新建游戏角色并且进行角色行走旋转 步骤 在刚刚新建的文件夹中鼠标右击新建蓝图类,然后分别创建以下:chara

weixin_43902063的博客 6123

SQL实现数据仓库ETL:分层设计、增量抽取与性能优化实践

在数据仓库建设过程中,ETL(抽取、转换、加载)是数据流转的核心环节。传统观点常将ETL与专业工具或大数据框架绑定,但在中小规模数据场景下,基于SQL的ETL方案凭借低门槛、高可维护性和直观的排错体验,成为高效且务实的选择。本文从ETL的基础概念出发,阐述数据仓库分层(ODS、DWD、DWS、ADS)中每层ETL的定位与职责,重点剖析增量抽取策略(时间戳、主键、日志)下的SQL实现方式,以及数据清洗、去重和格式化的常见写法。同时,结合真实项目经验,分享慢SQL优化技巧、任务调度依赖设计、幂等性保障和常见问题

weixin_33290540的博客 346

软件体系结构 构件和软件复用

一在业界,软件体系结构和建筑学的设计框架可以类比。如果把软件体系结构类比做建筑学的蓝图,那构件就可以比作一砖一瓦,或者更大概念如:庭院,花园等。软件体系结构之所以可以独立于软件的数据结构和软件的算法,是因为业界把软件的数据结构和算法看做了烧砖的方法,或设计庭院的思想。但没有扩展到整个软件系统。一个软件系统是庞杂的。但是分治之后的东西仍然用到了最基本的软件算法和数据结构思想。之所以也有些人说SA可以

帐前卒 专栏 2647

智慧矿山无人机空地一体化解决方案

未来,随着技术的不断进步和应用场景的不断拓展,智慧矿山无人机空地一体化解决方案将在矿业领域发挥更加重要的作用,为矿山的可持续发展提供更加有力的保障。该系统能够实现矿山的全方位、全天候监测与管理,提升矿山生产效率,降低安全风险,并为矿山的可持续发展提供有力支持。智慧矿山无人机空地一体化解决方案是当前矿业领域技术创新的重要方向,旨在通过集成无人机技术、物联网、大数据、人工智能等先进技术,实现矿山的智能化、高效化和安全化运营。在矿山爆破、挖掘等危险作业中,无人机可进行远程监控和指挥,降低人员安全风险。

专注多旋翼、复合翼无人机技术研究,从事低空经济行业。 1110

基于可重用构件的软件开发过程模型

摘要:基于构件的开发(CBD)观念已广泛应用于软件开发中,便于构件的重用。众所周知的CBD体系结构有 ActiveX, CORBA, RMI以及 SOAP 等。文章主要通过与传统软件开发方法的比较研究支持基于CBD的实践,同时也评价了面向对象的过程模型以及提出了一种新型的基于 CBD 的软件开发过程模型,并探讨了仓储的重要概念。 关键字:构件重用;基于构件的开发;软件开发过程;仓储 1.引言 ...

weixin_30416497的博客 774

【MMDetection3.0实战】从零构建自定义数据集训练流程

本文详细介绍了使用MMDetection3.0框架从零开始构建自定义目标检测数据集的完整训练流程。内容涵盖环境配置、COCO格式数据准备、核心代码改造、模型配置与训练策略调优,以及最终的模型测试与验证,帮助开发者快速上手并训练自己的检测模型。

l6m7n8的博客 314

工程制图习题集张大庆课后习题答案解析

所以,我想向大家求助,希望能得到一些学习资料、学习方法和学习经验,帮助我更好地理解和掌握这门课程。在寻找学习资料的过程中,我发现了一款叫做资小料的APP,它里面有很多关于工程制图的学习资料,包括视频教程、习题解答和考试真题等。通过使用资小料,我逐渐掌握了工程制图的基本理论和方法,解决了很多学习中遇到的问题。在这里,我想推荐给和我一样在学习《工程制图习题集》这门课的同学们,希望大家也能从这款APP中受益,共同进步。上传者: 『Consentesdei』蒼迷穀。出版社: 清华大学出版社。

weixin_58833001的博客 925

基于构件复用的软件方法与COM支持 (转)

基于构件复用的软件方法与COM支持 (转)[@more@]摘要 作为研究的热点,近年来提出构件模型层出不穷.出于相互之间互操作性的考虑,必须具备一个公共的构件底层框架.分析各种实际的因素,COM是一个可行的选择.本文讨论了COM...

cuiji1279的博客 118

TI IWR6843AOP雷达+DCA1000EVM数据采集:官方手册里的坑,我帮你踩完了

本文详细解析了TI IWR6843AOP雷达与DCA1000EVM数据采集实战中的12个关键细节,包括硬件连接陷阱、mmWave Studio隐藏设置、数据采集参数优化等,帮助开发者避开官方手册未提及的常见问题,提升数据采集效率和系统稳定性。

weixin_28366475的博客 1102

AI自动化SEO实战:用Python实现关键词分类与技术巡检全流程

搜索引擎优化正在从依赖经验和人工操作,转向数据驱动与自动化工程。在SEO工作流中,关键词研究是决策基础,通过AI模型对海量搜索词进行意图分类,可以将信息型、交易型等关键词自动归类,并生成内容主题簇,从而提升选题效率。技术巡检则是保障网站可索引性的关键环节,利用Python脚本定期检查页面状态码、标题完整性、Schema合法性、死链等问题,能有效降低收录风险。这种以代码为核心的方式,将关键词分类、内容编排、结构化数据生成与自动化监测串联起来,帮助企业从重复劳动中解放出来,更专注于质量评审与策略优化。本文基于A

ciya3282的博客 467

【导航理论&实战篇】四足机器人弹簧倒立摆(SLIP)动力学模型

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对四足机器人动力学模型-VMC、SLIP和浮动机体模型做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章四足机器人弹簧加载倒立摆(SLIP)动力学模型是一种用于描述和分析四足机器人在运动过程中动态特性的理论模型。这种模型将四足机器人的腿部简化为弹簧,而机器人的身体则被视为一个倒立摆,这样的抽象使得研究者能够更容易地分析和控制机器人的运动。提示:以下是本篇文章正文内容。

qq_35635374的博客 806

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

软件技术发展史

当前软件工程领域和软件产业界的热点技术包括原型开发方法、C/S与B/S结构、软件构件、软件复用等。本文针对这些当今软件开发的主流技术加以评述,以期对实际工作做出指导。   企业软件热点文章   经济危机下值得青睐的开源软件猜想09年saas趋于成熟发展   更新换代 新IT架构管理势在必行高成长中型企业实施ERP关键因素   实施ITIL服务支持 不提倡“爆发式”技术角度谈CRM项目选

n567656756765676567的专栏 2851

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

论基于构件的软件开发

系统基于Spring Cloud微服务框架来进行构件化开发,在构件获取阶段通过对接现有系统、使用构件库、集成第三方软件来实现需求,在构件开发阶段使用了多种设计模式来保证构件的可重用性,在构件组装阶段使用了同步消息、异步消息、工作流方式来实现不同业务类型下构件的组合。

sinat_31152963的博客 9630

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

软考笔记--构件与软件复用

软件开发的声生命周期都有可复用的价值,包括项目的组织,软件需求、设计、文档、实现,测试方法和测试用例,都是可以被重复利用和借鉴的有效资源,可复用性体现在软件的各个层次。要使库中的构件在当前的开发项目中发挥作用,准确地理解构件是至关重要的,要求构件的开发过程遵循公共标准,在构件库的文档中全面而准的说明构件的功能与行为、相关领域的知识、可适应性约束条件与例外情形、可预见的修改部分及修改方法。对构件可复用性的评价,是通过收集并分析构件的复用者在实际复用该构件的历史过程中的各种反馈信息来完成的。

zhongcaogen的专栏 1003

基于构件的软件开发方法:软件系统的构件

软件构件是现代软件工程,特别是基于构件的软件工程(CBSE)的核心概念。它代表了软件复用的高级形态,是实现“搭积木式”软件开发的基础单元。构件通过封装、接口和标准化,极大地提高了软件开发的效率、系统的可维护性和可扩展性。在复杂的分布式系统、企业级应用和微服务架构中,构件化思想无处不在。掌握构件的概念、特性和模型,是系统架构师设计高内聚、低耦合、易于演进的软件系统的关键能力,它直接关系到软件资产的积累、开发成本的控制和系统质量的保障。

谦与谦寻的神隐 863

构件技术是一种软件复用和系统集成的技术,旨在通过标准化的可复用组件(构件)快速构建复杂软件系统

构件技术是一种软件复用和系统集成的技术,旨在通过标准化的可复用组件(构件)快速构建复杂软件系统。其核心思想是将软件系统分解为独立、可交互的构件,每个构件实现特定功能,并通过标准化接口与其他构件协作,从而提高开发效率、降低复杂度并增强系统灵活性。核心概念与特点构件(Component)定义:封装了数据和功能的独立单元,具有明确的接口(输入/输出)和实现细节的隐藏性。特性:独立性:可独立开发、测试、部署,不依赖特定平台或编程语言。复用性:可在不同系统中重复使用,减少重复开发成本。标准化接口。

[Blog][Domain] programb.blog.youkuaiyun.com 1192

构件与中间件技术:概念、复用、分类及标准全解析

本文聚焦构件与中间件技术。构件是可独立部署、遵循接口标准的软件模块,能提升软件复用性等;中间件位于底层与应用软件间,可屏蔽底层复杂,增强软件性能。构件复用可提高开发效率,有多种复用方式及流程。构件依功能、粒度等可分类。常见构件标准含 CORBA 构件模型、COM/DCOM/COM+、EJB 。CORBA 是分布式系统中对象通信的中间件,有独特体系结构和工作原理,虽优缺点并存,在特定领域仍具价值 。

编程在手天下我有的博客 1134

系统架构设计笔记(50)—— 构件及其复用

软件企业为了提高开发效率,越来越注重软件元素的复用(也称重用),因此,架构设计师在进行架构设计时,必须关注复用,例如,考虑丰富企业构件和充分使用已有的构件。 与复用技术密切相关的概念是构件( component ,组件),业界对构件还没有公认的定义,如下为几种常见的定义。 定义1:构件是指软件系统中可以明确辨识的构成成分。而可复用构件(reusable component )是指具有相对独立的功能和可复用价值的构件。 定义2:构件是一个组装单元,它具有约定式规范的接口及明确的依赖环境。 定义3:构件是软件系

读万卷书,行万里路 1984

UML组件图/构件图

组件(Component/构件)是系统设计的一个模块化部分,并对外提供了一组接口。组件是一个独立的封装单位(封装性) ,是系统中可替换的物理单元(替换性),需要遵循并提供一组接口的实现。组件与接口 接口(Interface)是一组操作的集合,它指明了由类或组件所请求或者所提供的服务。组件(Component)是系统中可替换的物理部分,它遵循并提供了一组接口的实现

lin_xi_xi的博客 1万+

构件组装-理论与技术

第二章 相关理论与技术 本章主要介绍了本文研究的相关理论与技术,包括构件组装相关理论、SOA相关技术标准、OSGi相关技术标准、模型驱动相关技术标准、代码生成相关概念与技术以及领域工程相关理论,这些理论与技术构成了本文研究的基础。 2.1构件组装相关理论 1968年的NATO软件工程会议上,Mcllroy在提交会议的论文《大量生产的软件构件》中,提出了“软件组装生产线”的思想【5】。简单的

leveretz的博客 9385
上一篇: 《ATL Internals》书评 . 潘爱民
下一篇: ATL接口映射宏详解
ShowMan
博客等级 码龄26年 280粉丝 321原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值