组件

定义: 组件是被封装起来的软件系统的一部分,包含一个借口。组件是用于打造系统的构件。在编程语言层面,组件可能由模块、类、对象或一组相关的函数表示。

 

[PW92]将组件分为三类,并称之为元素:

处理元素
数据元素
连接元素
面向对象编程范式中采用了另一种分类方案,将组件分为如下几类:

控制组件
协调组件
接口组件
服务提供组件
信息存储组件
组织组件
这一节中描述了组件是什么,组件的外在表现形式是什么,以及组件的分类。

个人理解:尽管分类这个东西对于学术界意义更大,但是对我等开发设计人员来说也具有积极的指导意义。明确了我们要分解或者设计的组件是什么类型,能够帮助我们设计更加高内聚的组件。

关系

关系指的是组件之间的联系,可以是静态的例如子类和父类之间的继承关系,也可以是动态关系例如publisher-subscriber之间的关系,容器和元素之间的动态关系。

通过各种组件间的关系,组件一起合成系统或者更大的逻辑单元。对于组件之间关系建模的好坏,决定了软件系统的可修改性。有实际项目经验的开发者,大概都见过修改某一个类或模块,影响到许多想关的类或模块的情况吧。

视图(View)

视图呈现软件架构的某个方面,展示软件系统的某些具体特征。组件的状态图,组件的协作图,组件部署图等等都是视图的例子。

著名的4+1架构视图模型中用四种视图来描绘架构。

逻辑视图:设计方案的对象模型或通信模型,如实体关系图
流程视图:并发性和同步方面
物理视图:软件与硬件的对应关系以及分布
开发视图:软件在开发环境中的静态组织结构