软件构件文档格式.docx
- 文档编号:15959687
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:17
- 大小:181.23KB
软件构件文档格式.docx
《软件构件文档格式.docx》由会员分享,可在线阅读,更多相关《软件构件文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
使用组件可以实现拖放式编程、快速的属性处理以及真正的面向对象的设计。
VCL和CLX组件是C++Builder系统的核心。
1.1.2组件应用
使用现成的组件来开发应用程序时,组件工作在两种模式下:
设计时态和运行时态。
在设计时态下,组件显示在C++Builder窗体编辑器下的一个窗体中。
设计时态下组件的方法不能被调用,组件不能与最终用户直接进行交互操作,也不需要实现组件的全部功能。
在运行状态下,组件工作在一个确实已经运行的应用程序中。
组件必须正确地将自身表示出来,它需要对方法的调用进行处理并实现与其他组件之间有效的协同工作。
设计时态下所有的组件在窗体中都是可见的,但在运行时态下不一定可见。
如TTable、TQuery和TDataSet在运行时态下就不可见,但他们均完成了重要的功能。
1.1.3组件创建
创建组件就是自行设计制作出新的组件。
设计组件是一项繁重的工作。
自行开发组件与使用组件进行可视化程序开发存在着极大的不同,要求程序员熟知原有的VCL类库结构,精通面向对象程序设计。
设计组件是一项艰苦的工作。
对于组件的开发者,组件是纯粹的代码。
组件的开发不是一个可视化的开发过程,而是用C++或ObjectPascal严格编制代码的工作。
实际上,创建新组件使我们回到传统开发工具的时代。
虽然这是一个复杂的过程,但也是一个一劳永逸的过程。
创建组件的最大意义在于封装重复的工作,其次是可以扩充现有组件的功能。
组件创建过程包括设计、开发、调试(就是所谓的3D'
s)工作,然后是组件的使用。
组件开发者应该掌握的三项主要内容是:
属性、事件和方法。
1.2软件构件
1.2.1软件构件的定义
软件成分包括程序代码、测试用例、设计文档、设计过程、需求分析文档,软件构件的可信性研究,甚至领域知识,通常把这种可复用的软件成分称为软件构件,简称软构件或者构件,这是对构件的广义理解。
自从构件的概念提出以来,许多专家学者从不同角度不同侧面对软件构件进行了刻画。
1996年ECOOP(EuropeanConferenceonobject--OrientedProgramming)将软件构件定义为:
一个具有规范接口和确定的上下文依赖的组装单元,它能够被独立部署或被第三方组装。
美国卡内基。
梅隆大学的软件工程研究所的构件定义:
在2001年的一份技术报告中指出“构件是一个不透明的功能实体,能够被第三方组织,且符合一个构件模型”。
国际上第一部软件构件专著的作者Szyperski将它定义为:
可单独生产、获取、部署的二进制单元,它们之间可以相互作用构成一个功能系统。
CMU/SEI把构件定义为:
一个不透明的功能实现;
能够被第三方组装;
还符合一个构件模型。
还有人从其他侧面给出定义:
一个软件构件是可执行软件的一个可分离的单元;
只能通过构件的接口来访问它的服务;
可以与其他构件实现互操作;
为了能与其他构件一同工作,必须能得到其接口的细节;
该构件的应用需要某种环境的支持。
这些概念都很相似,但迄今为止还没有一个被大家所公认的定义。
一般认为,构件是指语义完整、语法正确和有可复用价值的单位软件,是软件复用过程中可以明确辨识的成分;
结构上,它是语义描述、通信接口和实现代码的复合体。
从程序角度理解,可以把构件看作是有一定功能、能够独立工作或能同其他构件装配起来协一调工作的程序体。
此外,为了更好地理解构件,从编写程序代码这个狭义的角度来描述一下构件。
构件是一些二进制代码,它隐藏了内部的实现细节,进而保护了构件开发商的智力投资。
虽然它们是二进制代码的形式,但都符合一种模型--构件模型,且其中的构件接口是复用者理解构件的桥梁,也是他们进行构件制作和组装的基础。
而且,这些构件具有可插拔性,允许对一不同构件开发商开发的构件进行组装。
再举例来说,面向对象技术己经达到了类级复用,它以类作为封装单位。
但这样的复用粒度还太小,不足以解决异构互操作和效率更高的复用。
构件则更为抽象,它是对一组类的组合进行封装,并代表完成一个或多个功能的特点服务,也为用户提供了多个接口,每个接口代表对外联系的一种“角色”,使构件成为与外界发生联系的“窗口”。
因此,可以说,整个构件对外隐藏了具体实现,只用接口提供对外服务功能。
由此可见,我们将软件构件理解为:
(l)构件是预先创建的。
这是因为在软件的开发周期中,源代码复用代价高,最好预先创建。
在开发过程中,适用于渐进的开发方式。
应用集成要求以未预料的方式复用构件。
在可维护性问题上,构件间的界限可以更加明确。
(2)构件是黑盒的。
它的内部结构进行了良好的封装,并通过接口提供服务。
(3)构件是可分离的。
构件的封装体现了构件内部的高内聚和构件之间的低祸合性,使得其他构件无须了解其内部知识,便可方便地与其一起协同工作。
(4)构件能用于组装和部署。
构件组装在编译之后,构件部署在组装之后,也有着运行时组装的。
(5)构件需要成为构件容器技术的支持。
构件容器提供支持构件的运行时环境,构件在进行了必要的组装和配置之后,才能以接口规定的方式使用。
从系统的构成上看,任何在系统运行中承担一定功能、发挥一定作用的软件体都可以看成构件,如中断程序、设备驱动程序、过程、各种功能库、各种服务器和文件等。
而且根据这些构件在系统中的作用,又可以分为:
负责系统运行管理的控制构件、负责构件间协作关系的协调构件、负责构件间连接作用和转换的连接构件、为其他构件提供特定服务功能的服务提供构件、负责安全检查和信息转借传递的信息控制构件、完成对象生成和撤销的构造构件等。
可见,系统可以看成是构件及其关联的集合。
在分析系统时,首先需要了解系统中所有构件、构件的功能和特性,然后才能通过构件之间的关联关系,认识整个系统。
而在设计系统时,需要根据对构件的特性和功能要求,以及与其他构件的关联,建立内部处理和控制结构,并实现对外的操作服务。
由上面的分析能够看出,一个完成的构件应包含6个要素。
(1)受约束的构件标准:
符合某种构件模型。
(2)规格说明:
构件提供服务的抽象描述,用作服务的客户方和提供方之间的契约。
(3)实现:
必须符合规格说明,各自实现。
(4)包装方法:
按不同的方式分组来提供一套可以替换的服务。
(5)注册:
可在构件支持环境中注册。
(6)部署方法:
构件可以部署多个实例。
软件构件化可以分为两个层面:
一个是在软件企业内部实施基于构件的软件开发,形成构件开发、管理、应用组装的流水线模式,实现企业内部的软件工程化开发;
另一个是在软件产业范围内形成构件生产企业、构件流通中介、软件集成企业等的专业化分工与协作,构筑软件生产上下游产业链,实现软件工业化生产。
总之,随着软件构件技术的飞速发展,构件的定义和内涵也必然会更加完善。
1.2.2软件构件模型
软件构件模型是对构件本质特征的抽象描述。
目前,国际上己经形成了许多构件模型,这些模型的类型如下:
(l)与构件部署/实现相关的模型:
这类模型用于帮助人们决定如何用某种程序设计语言,或以某种可执行单元的形式来实现构件,所以也称为基础设施模型。
构件最终必须被实现为某种直接可用的形式,因此,此类模型具有非常重要的地位。
实现模型主要分为3大流派,分别是对象管理集团(ObjectManagementGroup,OMG)的通用对象请求代理结构(commonObjectRequestBrokerArchitecture,CORBA)、sun的EJB(EnterpriseJavaBean)和Microsoft的分布式构件对象模型(DistributedcomponentobjectModel,DCOM)。
这些模型将构件的接口和构件软件构件的可信性研究的实现进行了有效的分离,增加了复用的机会,和网络环境中大型软件系统的需要相适应,有力地支持了运行态的软件构件。
与构件部署/实现相关的模型规定了构件开发者和构件使用者必须遵循的标准和规定。
例如,构件的定位方式、构件的管理方式、构件的部署方式、构件的组装方式、构件的访问方式、构件的描述方式等。
(2)与构件规约/组装相关的模型:
这类模型以描述构件的功能规约为主要目标,即构件对一外提供何种功能、构件需要外界为它提供何种功能、构件被用于何种语境、构件如何被定制等。
它描述构件的功能和行为规约,并通过配置这些规约来刻画系统。
这类模型用来规约构件,并在设计级上组装构件。
这也正是当前接l习定义语言(interfacedescriptionlanguage,IDL)、构件描述语一言(componentdescriptionlanguage,CDL)和软件体系结构描述语一言(architecturedescriptionlanguage,ADL)研究的目的。
代表性的工作主要有:
指导性模型3C、REsoLvE模型、JBecM(Jadebirdcomponentmodel)等。
(3)与构件分类/描述相关的模型:
这类模型以综合的方式描述构件,用于管理大量的静态构件,使得构件易于为用户所理解,易于在库中被有效、高效地分类、存储和检索。
从本质上看,就是构件库的信息模型。
相关的工作主要有:
REBOOT(REusebasedonobject--orientedtechnology)模型、ALOAF模型(assetlibraryopenarchitectureframework)、RIG提出的UDM(uniformdatamodel)和BxoM(basicinteroperabilitydatamodel)以及青鸟构件库JBCL(jadebirdcomponentlibrary)模型。
由于在不同软件设计环境下服务于不同的目的,构件具有不同的类型和名称,比较统一的表达方式就是具有操作接口定义的抽象数据类型描述。
具体未说,构件模型定义了什么是构件、构件的依据、如何使用其他构件提供的服务等。
将构件的规格说明和具体实现分离,依靠构件实现的具体模式来推导出构件所提供的服务,可以构造一个构件模型。
构件之间对使用的接口应有统一的理解。
此外,使用中间件也可以使构件之间进行更好地通信。
如构件之间直接进行通信,当构成系统的构件数量庞大时,其复杂程度迅速提高;
如能引入中间件,则可很好地避免构件间复杂的交互。
国内许多学者在构件模型的研究方面做了不少的工作,其中较为突出的是北京大学杨芙清院士等人提出的“青鸟软件构件模型(JBCOM)”。
它由外部接口与内部接口两部分组成。
构件的外部接口是指构件向其复用者提供的基本信息,包括:
构件名称、功能描述、对外功能接口,所需服务的构件和参数化属性等。
外部接口是构件与外界的一组交互点,说明了构件所提供的那些服务。
构件的内部结构包括两方面的内容:
内部成员以及内部成员之间的关系。
其中,内部成员包括具体成员与虚拟成员,而成员关系包括成员之间的互联,以及内部成员与外部接口之间的互联。
1.2.3软件构件的粒度
软件构件的一个关键特征是可复用。
可复用的元素越大,就说构件复用的粒度越大。
随着构件粒度的增大,使用和复用的成本效益会提供,但符合要求的程度和更改的灵活度会降低。
软件构件的粒度可以划分为大粒度构件、中粒度构件和小粒度构件。
一般而言,功能数目与相应的代码量是一种正比关系。
例如,实现“三个数相加”的构件,功能单一、编
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 构件