基于构件的软件开发-百度文库 基于uddi的web服务注册中心开发
基于构件的软件开发研究基于构件的软件开发研究现今的软件开发已脱离了传统的手工坊模式 ,更注重现今的软件开发已脱离了传统的手工坊模式 ,更注重 软件开发效率及软件产品质量的提高。要在软件开发中解决重复 软件开发效率及软件产品质量的提高。要在软件开发中解决重复 劳动的问题 ,可采取软件复用技术 ,以不断提高软件开发的质量 劳动的问题 ,可采取软件复用技术 ,以不断提高软件开发的质量 及效率。而软件构件是当前支持软件产品复用的有效形式 ,是支 及效率。而软件构件是当前支持软件产品复用的有效形式 ,是支 持软件复用的核心技术。不断进展及成熟的软件构件技术为现今 持软件复用的核心技术。不断进展及成熟的软件构件技术为现今 的软件开发提供了新的方法 ,也能有效地推进软件生产方式的变 的软件开发提供了新的方法 ,也能有效地推进软件生产方式的变 革 ,提高软件产品的质量及软件生产的效率。 革 ,提高软件产品的质量及软件生产的效率。1 基于构件的软件开发1 基于构件的软件开发基于构件的软件开发将现成的软件构件集成并构造成一个基于构件的软件开发将现成的软件构件集成并构造成一个 大型得软件系统 ,此方法可以快速组装系统 ,有效降低软件开发 大型得软件系统 ,此方法可以快速组装系统 ,有效降低软件开发 成本 ,提高软件系统的可维护性及灵活性 ,降低系统的维护费用。
成本 ,提高软件系统的可维护性及灵活性 ,降低系统的维护费用。 与传统的软件系统开发注重开发 ,而忽略可复用构件的存在这一 与传统的软件系统开发注重开发 ,而忽略可复用构件的存在这一 做法不同,基于构件的软件系统开发更注重如何获得己经存在的 做法不同,基于构件的软件系统开发更注重如何获得己经存在的 构件,而不是开发 ,组装和集成现有的构件是基于构件的软件系 构件,而不是开发 ,组装和集成现有的构件是基于构件的软件系 统开发的主要着眼点。基于构件的软件系统开发的过程如下 :(1 ) 统开发的主要着眼点。基于构件的软件系统开发的过程如下 :(1 ) 检索构件 :检索构件的过程包括如何根据描述构件、创建构件库。 检索构件 :检索构件的过程包括如何根据描述构件、创建构件库。 领域工程师开发出新的应用构件 ,并用文档加以描述。通过领域 领域工程师开发出新的应用构件 ,并用文档加以描述。通过领域 分析、自行开发、逆向工程或者商业购买等途径来获得所需要的 分析、自行开发、逆向工程或者商业购买等途径来获得所需要的 构件。(2 )选择构件 :从构件库中选择合适的构件 ,并验证构件 构件。(2 )选择构件 :从构件库中选择合适的构件 ,并验证构件 的功能、接口等。
(3 )适配构件 :修改或者定制所选择的构件来 的功能、接口等。(3 )适配构件 :修改或者定制所选择的构件来 满足新的应用环境的系统需求 ,以便能与其他构件进行集成。(4 ) 满足新的应用环境的系统需求 ,以便能与其他构件进行集成。(4 )11组合构件 :将不同的构件集成和组装在一起。 组合构件 :将不同的构件集成和组装在一起。2 检索构件2 检索构件检索构件指的是大量的构件所构成的构件库 中找 出合适检索构件指的是大量的构件所构成的构件库 中找 出合适 的构件。目前互联 XX 上有许多专门的构件库 ,各个 Web 站点 的构件。目前互联 XX 上有许多专门的构件库 ,各个 Web 站点 上也提供了构件的链接 ,但是不同的构件库有不同的组织和访问 上也提供了构件的链接 ,但是不同的构件库有不同的组织和访问 方式基于构件的软件开发,而造成了对各构件库中的构件访问困难 ,并且 Web 站 方式 ,而造成了对各构件库中的构件访问困难 ,并且 Web 站 点上链接的构件也无法用传统的检索引擎检索到。只有将 XX 络 点上链接的构件也无法用传统的检索引擎检索到。只有将 XX 络 上的构件资源加以利用到构件系统的开发中 ,才能实现缩短软件 上的构件资源加以利用到构件系统的开发中 ,才能实现缩短软件 开发周期 ,提高软件质量的目的。
现今人们对软件需求愈加体现 开发周期 ,提高软件质量的目的。现今人们对软件需求愈加体现 了个性化、多样性的特点 ,以往的多种功能单一软件包方式无法 了个性化、多样性的特点 ,以往的多种功能单一软件包方式无法 满足用户的需求 ,因此在基于构件的软件开发研究中 ,应在同意 满足用户的需求 ,因此在基于构件的软件开发研究中 ,应在同意 用户选择服务组合的基础上 ,同意在构件级别上对单一的服务进 用户选择服务组合的基础上 ,同意在构件级别上对单一的服务进 行功能集和界面等的定制 ,在服务定制的粒度上应该更细 ,也应 行功能集和界面等的定制 ,在服务定制的粒度上应该更细 ,也应 该更具灵活性。基于构件的软件开发成功依赖于构件分类和检索 该更具灵活性。基于构件的软件开发成功依赖于构件分类和检索 技术。由于构件的信息量比较丰富 ,相互之间也缺乏很多相似性 , 技术。由于构件的信息量比较丰富 ,相互之间也缺乏很多相似性 , 构件之间缺乏有意义的联系 ,这给构件的分类带来了很多困难。 构件之间缺乏有意义的联系 ,这给构件的分类带来了很多困难。 目前有很多构件分类检索方法 , 构件表示出发可分为人工智能 目前有很多构件分类检索方法 , 构件表示出发可分为人工智能 方法、超文本方法和信息科学方法三类。
而根据复杂度和检索效 方法、超文本方法和信息科学方法三类。而根据复杂度和检索效 果的不同可以分为基于文本的、基于词法描述字的和基于规约的 果的不同可以分为基于文本的、基于词法描述字的和基于规约的编码和检索。 编码和检索。3 适配构件3 适配构件适配构件是泛化的构件来创建特定应用的构件 ,主要采纳适配构件是泛化的构件来创建特定应用的构件 ,主要采纳11以下方法 :部分实现 :构件只实现一部分功能或行为 ,其他部分 以下方法 :部分实现 :构件只实现一部分功能或行为 ,其他部分 仅提供接口。不如在面向对象的软件开发中 ,通常会有一部分抽 仅提供接口。不如在面向对象的软件开发中 ,通常会有一部分抽 象方法留给用户来实现。重载 :构建提供了缺省的实现 ,用户在 象方法留给用户来实现。重载 :构建提供了缺省的实现 ,用户在 具体应用时可以重载这些行为。但是要求开发构件的程序语言支 具体应用时可以重载这些行为。但是要求开发构件的程序语言支 持重载机制 ,比如 c++ ,Jv。插件 :通过编写插件的形式为粗 持重载机制 ,比如 c++ ,Jv。插件 :通过编写插件的形式为粗 粒度的构件添加新的功能 ,插件在构件总注册其提供的服务 ,构 粒度的构件添加新的功能 ,插件在构件总注册其提供的服务 ,构 件需要使用该服务时调用该插件。
各个构件在生产时是为了满足 件需要使用该服务时调用该插件。各个构件在生产时是为了满足 不同的需求 ,并基于对环境的不同假设 ,因此构件在用于新系统 不同的需求 ,并基于对环境的不同假设 ,因此构件在用于新系统 时经常要进行剪裁。构件剪裁必须基于构件之间的冲突最小化原 时经常要进行剪裁。构件剪裁必须基于构件之间的冲突最小化原 则 ,消除体系结构的不匹配同题。针对不同的构件类型 ,可以采 则 ,消除体系结构的不匹配同题。针对不同的构件类型 ,可以采取不同的剪裁策略。 取不同的剪裁策略。4 组装构件4 组装构件为是软件系统的基本组成成分 ,构件通过契约式接口指明为是软件系统的基本组成成分 ,构件通过契约式接口指明 对语境的依赖 ,可以实现独立部署。构件组装的本质是在构件之 对语境的依赖 ,可以实现独立部署。构件组装的本质是在构件之 间建立关联。构件之间的组装关系由组装逻辑描述 ,组装逻辑规 间建立关联。构件之间的组装关系由组装逻辑描述 ,组装逻辑规 定了中各个构件之间的用形式和构件在运行期间的通信机制。 定了中各个构件之间的用形式和构件在运行期间的通信机制。 根据其特征来划分 ,构建组装方法可分为黑盒组装方法 ,白盒组 根据其特征来划分 ,构建组装方法可分为黑盒组装方法 ,白盒组 装方法,灰盒组装方法 ,三类组装方法的划分依据是构件组装时 装方法,灰盒组装方法 ,三类组装方法的划分依据是构件组装时 对构件内部细节的了解程度。
其中 ,黑盒组装无需对构件实现细 对构件内部细节的了解程度。其中 ,黑盒组装无需对构件实现细 节有任何了解 ,也不需要对其进行配置和修改 ,这对构件的要求 节有任何了解 ,也不需要对其进行配置和修改基于构件的软件开发,这对构件的要求 高 ,实现难度大 ,白盒组装要求将构件的所有细节都展现出来 , 高 ,实现难度大 ,白盒组装要求将构件的所有细节都展现出来 , 让复用者理解后再进行组装 ,并可对构件按应用的需要进行修改 , 让复用者理解后再进行组装 ,并可对构件按应用的需要进行修改 ,11从构件的复用角度分析 ,白盒组装的存在只能是局部的和临时的。 从构件的复用角度分析 ,白盒组装的存在只能是局部的和临时的。 一个可以随意修改的软件构件并不是真正意义上的可复用产品 , 一个可以随意修改的软件构件并不是真正意义上的可复用产品 , 因为弄清一个构件并对其进行合适的修改代价会很高 ,其安全性 因为弄清一个构件并对其进行合适的修改代价会很高 ,其安全性 可靠性得不到保证。灰盒方法介于黑、白盒之间 ,是当前技术进 可靠性得不到保证。灰盒方法介于黑、白盒之间 ,是当前技术进 展的合适选择。灰盒方法通过调整构件的组装机制而不是修改构 展的合适选择。
灰盒方法通过调整构件的组装机制而不是修改构 件来满足应用系统组装的需求 ,既实现了构件组装的灵活性 ,又 件来满足应用系统组装的需求 ,既实现了构件组装的灵活性 ,又不至于过于复杂。 不至于过于复杂。总之 ,基于构件的软件开发过程关注可复用构件的存在 ,更总之 ,基于构件的软件开发过程关注可复用构件的存在 ,更 关注组装和集成现有的构件 ,将 己经存在的构件加以有效用。 关注组装和集成现有的构件 ,将 己经存在的构件加以有效用。 本文对基于构件的软件开发生命期的几个个环节检索构件、适配 本文对基于构件的软件开发生命期的几个个环节检索构件、适配 构件、组装构件加以探讨 ,旨在实现构件的软件开发方法更灵活 , 构件、组装构件加以探讨 ,旨在实现构件的软件开发方法更灵活 , 有效地推进软件生产方式的变革 ,提高软件产品的质量及软件生 有效地推进软件生产方式的变革 ,提高软件产品的质量及软件生产的效率。 产的效率。[[