




已阅读5页,还剩62页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本资料来源 软件方法学 第4章 面向对象的中间件软件体系结构 基于构件的软件开发目标 长期以来的软件开发状况多数软件都是针对某个具体的应用系统从头进行开发的导致 出现了大量的同类软件重复开发 造成大量人力 财力的浪费 而且软件的质量也不高对比 汽车工业的生产模式在已有的部件基础上通过组装进行生产 有专门的部件生产工厂 汽车设计者在设计中选择市场上已有的合适的部件避免了大量的重复劳动 提高了产品质量和生产效率 促进分工合作我们的目标 将制造业中的组装式生产模式引入到软件开发中 内容摘要 基于构件的软件开发概述建造可复用构件应用系统工程构件的管理小结 内容摘要 基于构件的软件开发概述建造可复用构件应用系统工程构件的管理小结 基于构件的软件开发 基于构件的软件开发Component BasedSoftwareDevelopment简称CBSD是指使用可复用构件来开发应用软件基于构件的软件工程Component BasedSoftwareEngineering简称CBSE 构件 Component 的典型定义 Pressman书中的定义 构件是某系统中有价值的 几乎独立的并可替换的一个部分 它在良好定义的体系结构语境内满足某清晰的功能Brown的定义 构件是一个独立发布的功能部分 可以通过其接口访问它的服务 计算机科学技术百科全书 的定义 软件构件是软件系统中具有相对独立功能 可以明确标识 接口由规约指定 与语境有明显依赖关系 可独立部署 且多由第三方提供的可组装软件实体 软件构件须承载有用的功能 并遵循某种构件模型 可复用构件是指具有可复用价值的构件 商用成品构件 Commercialoff the shelf简称COTS指由第三方开发的满足一定构件标准的 可组装的软件构件 构件的要素 规格说明 建立在接口概念之上 作为服务提供方与客户方之间的契约一个或多个实现受约束的构件标准包装方法部署方法 3C构件模型 关于构件的一个指导性模型由构件的三个不同方面的描述组成概念 concept 关于 构件做什么 的抽象描述 可以通过概念去理解构件的功能 概念包括接口规约和语义描述两部分 语义描述和每个操作相关联 至少表示为前后置谓词形式 内容 content 概念的具体实现 描述构件如何完成概念所刻画的功能周境 context 描述构件和外围环境在概念级和内容级的关系 刻画构件的应用环境 为构件的选用和适应性修改提供指导 REBOOT构件模型 REBOOT ReuseBasedonObject OrientedTechnology 基于面向对象技术的复用一种基于刻面 facet 的模型刻面 对领域进行分析 所得到的一组基本的描述特征刻面可以描述构件执行的功能 所操作的数据 构件应用的周境或任何其它特征通常的刻面描述限制在不超过7或8个刻面一个构件通常包括以下刻面 抽象 abstraction 它是构件概念的抽象性描述操作 operation 它是构件所提供的操作的描述操作对象 operand 它描述操作的对象依赖 dependency 它描述构件与外界的依赖关系 常用的构件标准 CORBA 公共对象请求代理体系结构 CommonObjectRequestBrokerArchitectureOMG发布的构件标准核心是ORB ObjectRequestBroker 定义了异构环境下对象透明地发送请求和接收响应的基本机制COM 微软开发的一个构件对象模型 提供了在运行于Windows操作系统之上的单个应用中使用不同厂商生产的对象的规约EJB 一种基于Java的构件标准提供了让客户端使用远程的分布式对象的框架EJB规约规定了EJB构件如何与EJB容器进行行交互 CORBA技术规范CORBA是OMG组织在1991年提出的公用对象请求代理程序结构技术规范 CORBA的底层结构是基于面向对象模型的模块组成 1接口描述语言 OMGInterfaceDefinitionLanguage OMGIDL 2对象请求代理 ObjectRequestBroker ORB 3IIOP标准协议 InternetInter ORBProtocol 使用接口描述语言编写的对象接口 使得与语言无关的独立性成为可能 IDL使得所有CORBA对象以一种方式被描述 仅仅需要一个由语言 C C CORBA或Java 到IDL的 桥梁 CORBA对象的互通要以对象请求代理为中介 这种互通信可以在多种流行通信协议之上实现 在TCP IP上 来自于不同开发商的ORB用IIOP标准协议进行通讯 COM DCOM技术规范COM ComponentObjectModel 组件对象模型 是Microsoft软件组件标准 是构造二进制兼容软件组件的规范 COM的体系结构包括统一数据传输 持久存储和智能命名 COM核心等 其中 1COM核心 包括服务控制管理 接口代理 接口基和COM库 COM核心定义了COM对象与使用者如何通过二进制标准接口进行交换的规格说明 2持久存储 通过Istorage和Istream接口提供一个 文件系统 3智能命名 通过对象实现接口 使用户可以在以后重新连接一个指定的对象实例 并且使对象实例仍保持原来的状态 另外还提供保存它们名字和其它持久信息的机制 COM库提供对所有客户及组件都非常有用的组件管理服务 DCOM是COM的分布式扩展 Microsoft把DCOM作为开发Internet和组件的基础 当客户和组件位于不同机器时 DCOM用TCP IP协议等取代COM中的本地进程间通信LRPC 从而对位于Internet不同机器上的组件对象之间的相互通讯提供了透明的支持 目前可以支持DCOM部件开发的编程语言很多 如Java VisualC VisualBasic Delphi PowerBuilder等 具有较好的集成性和扩展性 微软的许多其它软件如OLE OLEDB ADO都是基于COM DCOM技术 COM DCOM并没有真正实现跨平台 目前基于COM的软件较多 但没有运行于异构平台上的基于DCOM的分布式软件 COM DCOM在微软平台上运行情况较好 但对实时性 可靠性等的支持较少 COM 技术规范COM 是微软公司在COM DCOM DistributedCOM 和MTS MicrosoftTransactionServer 基础上进一步优化了组件管理环境与事务服务 3 提供了无缝连接系统 它以系统服务的形式把原先一些分散的技术综合起来 并提供简单的编程模型 以直接应用层的编程接口为应用程序提供服务 使创建服务器应用就像实现客户应用一样简单 COM 把COM模型推向了更高层次 成为了企业级别分布式软件开发领域的重要技术 COM 组件提供了ASP ASPServlet ASPBean等技术 实现页面动态内容的实现与显示 ASPServlet运行在Web服务器端的Servlet程序 支持多线程 多用户访问 能完成所有CGI功能 以SOAP为基础的Microsoft的 NET显现出减少实现RPC的困难 快速实现互操作性的潜力 使COM 组件可以与CORBA和Java标准进行通信 采用MFC Microsoftfoundationclasslibrary 和ATL activetemplatelibrary 作为开发工具 用COM 技术把模块的类做成动态链接库 DLL 的形式来发布 可以在物理上把模块类的包装与客户的包装脱离开来 SOAP通讯协议 SimpleObjectAccessProtocol 简单对象访问协议 的英文缩写 目前已经得到IBM Ariba CommerceOne SAP 康柏 惠普等公司的支持 它能够让不同应用程序之间通过HTTP通讯协议 以XML格式互相交换彼此的资料 作为新生事物 SOAP通过建立HTTP连接隧道来部署自己的协议 SOAP要求把请求参数组织在XML文档中 该文档然后被放到HTTPPOST请求体中发送到运行在Web主机基于SOAP的Web服务 同样 现在正在做很多扩展SOAP的工作 使它能使用其它的传输协议 例如HTTPS和SMTP 它包括四个部分 1SOAP封装 envelop 封装定义了一个描述消息中的内容是什么 是谁发送的 谁应当接受并处理它以及如何处理它们的框架 2SOAP编码规则 encodingrules 用于表示应用程序需要使用的数据类型的实例 3SOAPRPC表示 RPCrepresentation 表示远程过程4SOAP绑定 binding 使用底层协议交换信息 EJB技术规范EJB EnterpriseJavaBeans 是J2EE的核心技术之一 它是建立基于Java的服务器端组件的标准 EJB是以部件为基础框架 其中每个部件都是分布式对象 可以扩展 也可以适配在不同应用中使用 大大方便了企业应用开发 EJB不局限于一种特定的操作系统 也不局限于任何一种特别的机构 服务器解决方案 中间件或者通信协议 是一种可重用的具有高度可移植性的组件 EJB组件模型包含了EJB服务器 容器 Home接口 Remote接口等 三种分布式组件对象模型的比较 表1 三种模型各有其优势 Java由于平台无关性的优势显著 成为理想的Internet技术 而Windows平台的广泛使用也使COM DCOM具有深厚的基础 OMG组织在10几年来一直在为自己的组件软件建立标准 而且已被很多组织和公司采用 对于异构环境下的企业应用开发 CORBA和EJB有着明显的优势 并且CORBA和EJB所依赖Java技术可以很好的互补 CORBA处理网络透明性 EJB处理实现透明性 因此 CORBA和EJB技术紧密结合应是今后多层分布式系统发展的一大趋势 基于构件的软件开发过程 领域工程步骤 1 领域分析 首先要进行领域分析 收集领域中有代表性的应用样本 分析应用中的公共部分或相似部分 抽取该领域的应用体系结构建立领域特定的基准体系结构模型 在领域分析的基础上 构造该领域的基准体系结构 这个基准体系结构应是可以裁剪和扩充的 并可供该领域的应用复用标识候选构件 在领域分析和领域基准体系结构模型的基础上标识该领域的候选构件泛化 generalization 和可变性 variability 分析 提高其通用性 同时寻找候选构件在不同应用中的变化点 variationpoint 通过设置参数 继承或其它手段 使可变部分局部化 领域工程步骤 2 重建构件 在泛化和可变性分析的基础上 重建构件 使它成为可复用构件构件的测试 对重建的可复用的构件要严格测试 以提高其可靠性构件的包装 经测试的构件应根据构件库的要求 对它进行包装 以便构件库对它分类储存和检索构件入库 包装后的构件即可存入构件库 应用系统工程的步骤 1 建立应用系统的体系结构模型 可以使用构件生产者提供的领域特定的基准体系结构经裁剪和 或扩充而获得寻找候选构件 根据应用系统的体系结构模型 从构件库或其它可利用的构件源中寻找候选构件评价和选择合适的构件 评价候选构件以判断是否适合于待开发的软件构件的修改 modify 和特化 specialize 在复用时对构件进行特化以满足特定应用的需要 应用系统工程的步骤 2 开发未被复用的部分 对新系统中未复用的部分进行开发构件的组装 将特化和修改后的可复用构件和新开发的部分组装成一个新的软件系统集成测试 对组装后的软件系统进行集成测试评价被复用的构件 并推荐可能的新构件 CBSD对质量 生产率和成本的影响 对质量的影响 随着长期的测试和使用 构件能够保证很高的质量 因此可以使系统开发的质量得到保证对生产率的影响 一般来说 大约30 50 的复用可使生产率提高25 40 对成本的影响与复用相关的成本应由多个采用复用技术的项目来分担通常要经过2 3个采用复用的生产周期 大约3年左右 复用才能带来显著的效益 内容摘要 基于构件的软件开发概述建造可复用构件应用系统工程构件的管理小结 建造可复用构件 建造构件的目的是为了以后复用构件 即为复用而建造构件在建造构件时仍应遵循抽象 逐步求精 信息隐蔽 功能独立 结构化程序设计等思想和原则由于面向对象方法具有封装性 继承等特点 能有力地支持复用 所以应尽可能考虑采用面向对象方法 对可复用构件的要求 构件的设计应具有较高的通用程度构件应易于调整构件应易于组装构件必须具有可检索性构件必须经过充分的测试 创建领域构件的设计框架 除应遵循已有的设计概念和原则外 还必须考虑应用领域的特征 例如 标准数据 应该研究应用领域 并标识出标准的全局数据结构 如文件结构或完整的数据库 于是所有设计的构件都可以用这些标准数据结构来刻画标准接口协议 应该建立三个层次的接口协议 构件内 intramodular 接口 构件外接口以及人机接口程序模板 程序的结构模型可以作为新程序的体系结构设计的模板 可变性分析 构件应具有较强的通用性和可变性为了满足不同的复用需求 需要在构件复用时可能发生变化的一个或多个位置上标识变化点 variationpoint 同时为变化点附加一个或多个变体 variant 例如Account构件的帐号编码规则以及透支规则在不同的国家可能不一样 构件系统中的门面和变体 可变性机制 继承 在变化点上创建指定抽象类型或抽象类的子类型或子类 扩展和扩展点 可以在用况和对象构件中的变化点 或扩展点 上附加变体 或扩展 参数化 用于模板 框架和宏的类型和类适用于变体较小时 经常是一个数值 短语或表达式 内容摘要 基于构件的软件开发概述建造可复用构件应用系统工程构件的管理小结 应用系统工程 任务 通过组装可复用构件得到应用系统CBSD中构件是组成应用系统的基本单元注重体系结构和构件接口的分析和设计 忽略构件内部实现的设计 关注接口的设计 接口是构件行为的描述机制 并提供了对其服务的访问供应接口 Providedinterface 描述构件所提供的服务 可以被其它构件访问请求接口 requivedinterface 请求接口描述构件为完成其功能 服务 需请求其它构件为其提供的服务一个接口可以有多种实现 并且对使用者隐蔽接口描述是构件使用者能依赖的所有信息 因此构件接口描述的表达能力和完整性是CBSD方法主要关注的问题之一 基于构件的体系结构 基于构件的应用系统体系结构描述了组成应用系统的构件 构件之间的组织结构 交互 约束和关系对系统的组成 结构以及系统如何工作的较为宏观的描述如果在领域工程中已开发了领域基准体系结构 referencearchitecture 则可以通过对基准体系结构的剪裁和 或扩充获得应用系统的体系结构 基于构件的体系结构层次 逻辑体系结构以接口形式对每组服务进行描述 并描述那些包怎样交互来满足通常的用户使用场景展示了系统设计的蓝图 可用于验证系统是否提供了适当的功能 并能在系统功能需求变化时方便地改变系统的设计物理体系结构描述系统的物理设计 包括硬件及其拓扑结构 网络和通信协议 基础设施 如运行平台 中间件 数据库管理系统等 以及软件系统的部署展示了系统的实现构架 有助于理解系统的许多非功能属性 如性能 吞吐量 服务的可用性等 基于构件的应用系统开发方法 Rationel统一过程Rational sUnifiedProcess 简称RUP一个关于软件开发的广泛的过程框架 覆盖了整个软件生命周期使用UML进行分析和设计建模 鼓励使用CBSD方法TheSelectPerspectiveMethod支持通用的构件设计方法 并以SelectComponentManager为目标通用构件设计准则使用UML作为构件设计符号SterlingSoftware的Enterprise CBD方法鼓励使用UML的扩展形式把构件的规格说明和实现分离允许制作技术中立的规格说明 然后再使用不同的实现技术来实现规格说明共同点 关注构件库中的构件 接口的设计和基于构件构架的应用程序组装 构件鉴定 qualification 目的 确保获得的构件可以完成所需的功能并能被集成在系统中与系统的其它构件正确交互主要依据是构件的接口描述和相关的规格说明 但这些信息往往还不足以确保构件能成功地集成到系统中对于外部提供的成品构件 COTS 可通过运行构件测试版进行鉴定 构件鉴定需考虑的因素 应用编程接口 API 该构件所需的开发和集成工具运行时需求 包括使用的资源 如内存或存储器 时间或速度以及网络协议服务需求 包括操作系统接口和来自其他构件的支持安全特征 包括访问控制和身份验证协议嵌入式设计假定 包括特定的数值或非数值算法的使用异常处理 构件的特化和组装 构件特化根据应用系统的具体情况对其进行特化 对变化点配置特定的变体 必要时要自行开发变体如果所选的构件不能完全满足应用系统的功能需求 还需对构件作适当的修改如果所选的构件未按构件标准开发 如遗产系统中抽取的构件 时 还需按某种构件标准对其进行包装构件组装将经过鉴定和特化后的构件组装成应用系统提倡使用构件组装工具来组装应用系统 能检查接口匹配中的错误 实现组装的自动化或半自动化 内容摘要 基于构件的软件开发概述建造可复用构件应用系统工程构件的管理小结 构件的管理 构件的分类描述对构件库中的构件进行合理的分类和组织 帮助软件开发人员方便地找到所需要的构件大多数的研究都建议使用图书馆科学索引方法进行构件分类构件库管理系统 主要用于构件的储存 检索 浏览和管理 常用的构件分类模式 1 枚举分类 EnumeratedClassification 将构件组织成分类层次结构 构件库中的构件按某些性质分成若干大类 每个大类又分成若干较小的类 经过若干次分解 形成构件分类的层次结构 实际的构件位于层次结构的最低层 其它层次则表示构件的类或子类枚举分类模式的分层结构易于理解和检索 但是 在建立层次结构之前 必须进行领域分析 寻找合适的供分类的性质 属性 值分类 Attribute ValueClassification 为所有构件定义一组属性 每个构件都具有一组属性值 开发人员通过指定一组属性值对构件库检索与刻面分类方法非常类似 不同点在于 属性 值分类法对可使用的属性数量没有限制 属性没有优先级 不使用同义词 常用的构件分类模式 2 刻面分类 FacetedClassification 根据一组刻面对构件分类 每个刻面从不同的侧面对构件库中的构件进行分类 并根据重要性设置刻面的优先级每个刻面由一组术语 term 构成 称之为术语空间 termspace 这些术语通常是描述性的关键词检索 用户通过指定一组刻面的术语值寻找匹配的构件使用同义词词典 thesaurus 解决用户指定的术语值与库中构件所对应的术语值之间的不一致问题评价 具有较好的灵活性 易于加入新的刻面值 比枚举分类模式易于扩展和修改 构件库管理系统的主要功能 构件的分类存储 即添加构件 根据构件库的分类模型将入库的构件储存在构件库中构件检索 从构件库中检索出满足用户要求或接近用户要求的构件 构件库浏览 浏览库中的全部或部分构件删除构件 将不再使用的构件从构件库中删去构件使用情况评价 根据用户使用和检索构件的反馈意见对构件作出评价 为进一步的改进提供依据 构件的描述和检索 构件库管理系统的两个关键技术直接影响到构件库检索的查准率 precision 查全率 recall 和效率 efficient 常用的构件检索方法规约匹配 基于有序的谓词逻辑的匹配 通过谓词演算公式进行精确匹配 通过逻辑连接符和逻辑量词进行部分精确匹配特征 signature 匹配 通过接口的定义进行匹配 适用于函数之类的构件术语轮廓匹配 基于构件编目描述语言的匹配 将每一个构件的编目描述作为该构件的一个特征矢量 通过测算矢量的距离进行匹配行为采样 基于构件测试的匹配 根据测试结果相同的概率进行匹配 内容摘要 基于构件的软件开发概述建造可复用构件应用系统工程构件的管理小结 小结 基于构件的软件开发 CBSD 是20世纪90年代开始流行的开发方法 CBSD支持软件复用 能有效提高软件的开发效率和质量 降低开发和维护成本 因此受到人们的关注 本章内容 基于构件的软件开发的概念 领域工程过程和应用系统工程过程 可复用构件的建造 基于CBSD的应用系统分析和设计 以及构件的管理 Serplogic青鸟软件构件库管理系统 JBCLMS Main do系统特点 1系统采用基于B S的多层体系结构 2采用分布式的应用架构 3完全支持UDDIV2 0标准规范 4采用J2EEV2 0 基于EJB技术 具有较强的灵5活性和扩充性 6支持刻面分类等多种分类模式 7提出并采用基于角色的用户管理机制 使系统具 8有灵活的权限分配和安全的控制方式 系统功能 1提供分布式构件及其服务的注册 发布 查询 管理等功能 提供构件管理信息与实体的有效管理平台 2实现软件构件库中构件管理与构件服务的集成 软件资产与构件服务的集成 3结合配置管理技术 对构件的构造性和演化性进行支持 4以UDDIRegistry UDDI注册中心 形式对Webservices形态的构件提供有效管理支持 并对外界提供服务 5提供以刻面分类为主 结合多种标准的分类方法对构件库中大量构件进行有效的管理 6供多样化的检索机制 用户可以更加灵活地查找构件 7实行基于角色的用户管理 提供更灵活的访问控制机制 构件是构件库中最重要的实体
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年汾阳市属事业单位考试试卷
- 2025年4月广东潮州市第三人民医院招聘编外人员49人考前自测高频考点模拟试题有答案详解
- 2025湖南高速土地资源经营有限公司第二批任务型劳动合同人员招聘1人考前自测高频考点模拟试题及答案详解(易错题)
- 2025贵州兴义民族师范学院招聘二级学院院长考前自测高频考点模拟试题有完整答案详解
- 2025年宁东镇公开招聘公益性岗位人员模拟试卷及一套完整答案详解
- 2025甘肃陇南慈航精神康复医院招聘17人考前自测高频考点模拟试题附答案详解(模拟题)
- 2025年洛阳市考古研究院引进急需短缺人才模拟试卷完整答案详解
- 2025广东清远市清城区公路事务中心招聘1人模拟试卷及一套参考答案详解
- 2025广东深圳长虹聚和源科技有限公司招聘业务经理岗位人员考前自测高频考点模拟试题及答案详解(网校专用)
- 2025年枣庄市市直公立医院公开招聘备案制工作人员(141人)考前自测高频考点模拟试题附答案详解
- 高速公路工作人员安全教育培训
- 湖南省2025年普通高等学校对口招生考试种植类专业综合知识试题
- 汽车废电池管理制度
- 预包装中药管理制度
- 利用沼液养殖微藻研究进展
- 2025年五四制部编版道德与法治五年级上册教学计划(含进度表)
- 心率变异性与情绪状态的相关性-洞察阐释
- 塔吊合同终止协议书
- 挖机干活合同协议
- 数学个人学习规划
- 非标设备维护培训
评论
0/150
提交评论