什么是构件?

原创 2002年10月23日 09:33:00
 

什么是构件?

作者: 贾育

email: jia_yu@263.net

 

[版权所有 任何形式的拷贝和引用必须得到作者的许可]

 

 

要想弄懂CBDcomponent-based development,基于构件的软件开发)的原理,首先要搞清楚什么是构件(component,也译为组件)。这个问题看起来简单,却是CBD中最难回答的问题之一,因为构件的内涵十分丰富,CBD又处在一个发展阶段,所以出现了许多不很一致的构件定义,也出现许多容易混淆的概念,例如对象、中间件、框架(framework)、构架(Software Archiecture)、子系统(subsystem)、COTS、产品线,下面是一些理论家和实践者们从不同的角度、不同的层次提出对构件看法。

 

一、构件的描述性定义

 

1)著名的BrownWallnau描述构件为“一个非平凡的、几乎独立的、可替换的系统组成部分,它在定义完善的体系结构环境中实现某一清晰的功能”(a nontrivial, nearly independent, and replaceable part of a system that fulfils a clear function in the context of a well defined architecture)。同时他们进一步认为软件构件只能是“一个说明了合同并且明显地与语境无关的组合单元”A unit of composition with contractually specified and explicit context dependencies only”)。

2Clemens认为:构件是一个独立部署的的单元,是一个第三方合成的单元,构件没有一致性的状态(A component is a unit of independent deployment .A component is a unit of third-party composition. A component has no persistent state.[见《构件是什么,不是什么》]

3OMG的定义更通俗、详细一些,在Modeling Language Specification(Revision1.3)写道:构件是一个物理的、可替换的系统组成部分,它包装了实现体且提供了对一组接口的实现方法。构件表示了系统实现体的一个物理片段,包括软件代码(源代码、二进制代码或可执行代码),或者等同体,例如脚本或命令文件。由之,构件自身必须相容于接口且实现接口,接口表示了驻留在构件内的成分所实现的服务。这些服务定义了的一个整合的行为,从一些构件实例提供给其它客户端构件实例。UML里,构件是一个分类器(classifier),是一个建模成分的聚集,它也许实现了接口,有着可执行行为和状态,在执行时驻留在一个节点上。

4Gartner Group定义:运行时软件构件是一个可动态绑定的、含一个或多个程序的软件包,它作为一个独立单位,通过运行时可辨别的文档化接口加以管理和存取(A runtime software component is a dynamically bindable package of one or more programs managed as a unit and accessed through documented interfaces that can be discovered at runtime.)。

5BertrandMeyer定义了构件的七个条件,

a.也许被其它软件成分使用(客户)。

b.也许客户的使用并不干扰构件的开发者。

c.包括以来的全部说明(硬软件平台、版本、其它构件)。

d.包括它提供功能的精确说明。

e.说明是它的唯一使用依据。

f.可以和其它构件合成。

g.可以快速且平滑地集成到系统。

 

 

二、构件的理论模型

 

理论上,一直没有停止对构件模型的争论,有代表性的理论模型包括:

13C模型

3C模型是学术界普遍认同的一个具有指导性作用的构件模型。该模型从概念(concept)、内容(content)和语境(context)三个不同方面来描述构件。

*概念 关于构件做什么的抽象描述,可以通过概念去理解构件的功能。概念包括接口规约和语义描述两个部分;

*内容 概念的具体实现,描述构件如何完成概念所刻划的功能;

*语境 构件和外围环境在概念级和内容级的关系。语境刻划构件的应用环境,为构件的选用和适应性修改提供指导。

2REBOOT模型(刻面模型)

REBOOT模型是基于已有软构件的一种刻面分类和检索模型,从各个角度,即刻面(Facet)刻画软构件属性。

3青鸟模型

北京大学青鸟工程以三个视角(形态、层次和表示)和九个方面定义构件模型。

1 概念 对构件功能的抽象描述。

2 操作规约:用来指称构件对外提供的、可被请求的服务。

3 接口:给出了构件的对外行为描述。

4 类型:用于定义“什么值可用作为操作参数”。

5 实现体:这是构件的具体实现部分,是实际完成被请求服务的系统。

6 构件复合:构件通过复合组成系统。

7 构件性质:指明构件的形态、层次和表示。

8 构件注释:描述和构件库相关的其他性质。

9 构件语景:描述构件的软、硬件使用环境和实现依赖。

青鸟构件模型更多地关心构件的易理解性、封装性及间关系,通过给构件提供明确的对外接口实现服务提供者和其服务请求者的分离,更多地关心构件及其使用者间的交互,特别是对构件使用者有意义的部分。

 

 

软件构件与中间件

软件的本质特性: 构造性,演化性,知识密集,逻辑产物。 软件开发模型:瀑布模型,螺旋模型,喷泉模型,演化模型 瀑布模型:文档驱动。系统可能不满足客户的需求 螺旋模型:风险驱动。风险分析人员需要...
  • LGCSSX
  • LGCSSX
  • 2013年06月05日 10:25
  • 2334

构件技术与中间件

引言    网络计算带领软件产业进入了一个新的时代,商机无限,但同时挑战也无限。以电子商务为代表的技术潮流正将大到企业计算、小到个人数字代理的各种应用,在世界范围内联结起来,软件制造业正面临着一些新...
  • holandstone
  • holandstone
  • 2014年03月11日 09:45
  • 836

软件架构设计之五:基于构件的开发

一、本章要点 1)信息系统综合知识。包括构件与软件复用;构件的概念与分类;中间件技术;典型应用架构(J2EE、.NET)。 2)系统架构设计案例分析。包括中间件、应用服务器。 二、构件与软件重用...
  • slowwind2007_lishu
  • slowwind2007_lishu
  • 2013年08月04日 19:34
  • 1582

将本地构件部署至nexus

本文介绍如何将本地项目打包发布到nexus服务器上,以及如何将第三方jar包发布到nexus服务器上。个人珍藏资料!!!...
  • jaune161
  • jaune161
  • 2015年03月11日 14:17
  • 1634

【UML入门教程】——构件图、部署图、包图

构件图和部署图同属于实现图。包图就是把类组合成包。下面将对它们逐一介绍。 【构件图】  1.构件是什么? 构件是系统的一个物理的和可替代的组成部分,该组成部分遵循并实现了一组给定的接口。 ...
  • successA
  • successA
  • 2014年04月01日 19:30
  • 2625

UML-构件图和部署图

【前言】     实现图包括构件图和部署图。用来描述系统实现方面的信息,它从系统的层次描述硬件的组成和布局,软件系统的划分和功能实现。构件图显示一组构件之间的组织和依赖关系,并秒速其中的构造细节。部署...
  • z15732621582
  • z15732621582
  • 2015年11月02日 16:44
  • 1234

读后感---ABC:基于体系结构、面向构件的软件开发方法

应用基于构件的软件复用来提高软件生产率和软件质量。 基于构件的软件复用的过程:构件的开发、构件的管理、基于构件组装的系统开发。 在基于构件的软件开发中,系统开发的重点,不再仅是程序设计,进而变成构件组...
  • u011296723
  • u011296723
  • 2016年09月03日 15:31
  • 277

UML——构件图、部署图

综述:       实现图用来描述实现方面的信息,它从系统的层次来描述硬件的组成和布局、软件系统的划分和功能实现。实现图包括构件图和部署图。 构件图: 一.概念:      用来显示一...
  • m15732622413
  • m15732622413
  • 2015年12月12日 17:08
  • 391

Windows下使用Nexus创建私服

一、介绍Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问 和部署在你所维护仓库中的每个Artifact。...
  • limuzi13
  • limuzi13
  • 2015年12月05日 22:07
  • 281

uml 9种图之构件图和部署图

构件图(Component diagram)是面向对象系统从物理方面建模时用到的图之一,显示一组构件之间的组织和依赖关系。使用构件图的思想是复用。就像是我们盖房子,当房子的大体框架建好之后,剩下的门和...
  • xdd19910505
  • xdd19910505
  • 2014年02月09日 08:16
  • 3991
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:什么是构件?
举报原因:
原因补充:

(最多只允许输入30个字)