基于组件的体系结构侧重于将设计分解为单个功能或逻辑组件,这些组件表示包含方法、事件和属性的明确定义的通信接口。它提供了更高级别的抽象,并将问题划分为子问题,每个子问题都与组件分区相关联。
基于组件的体系结构的主要目标是确保组件的可重用性。组件将软件元素的功能和行为封装到可重用和可自行部署的二进制单元中。有许多标准组件框架,例如 COM/DCOM、JavaBean、EJB、CORBA、.NET、Web 服务和网格服务。这些技术广泛用于本地桌面 GUI 应用程序设计,例如图形 JavaBean 组件、MS ActiveX 组件和 COM 组件,这些组件可以通过简单的拖放操作来重用。
与传统的面向对象方法相比,面向组件的软件设计具有许多优势,例如:
什么是组件?
组件是一组模块化、可移植、可替换和可重用的明确定义的功能,用于封装其实现并将其导出为更高级别的接口。
组件是一个软件对象,旨在与其他组件进行交互,封装某些功能或一组功能。它具有明确定义的接口,并符合体系结构中所有组件通用的推荐行为。
软件组件可以定义为一个组合单元,仅具有合同指定的接口和显式上下文依赖关系。也就是说,软件组件可以独立部署,并由第三方组成。
组件的视图
一个组件可以有三种不同的视图:面向对象视图、常规视图和进程相关视图。
面向对象视图
组件被视为一个或多个协作类的集合。对每个问题域类(分析)和基础结构类(设计)进行了解释,以标识适用于其实现的所有属性和操作。它还涉及定义使类能够进行通信和协作的接口。
传统视图
它被看作是程序的一个功能元素或模块,它集成了处理逻辑、实现处理逻辑所需的内部数据结构以及允许调用组件并将数据传递给它的接口。
与流程相关的视图
在此视图中,系统不是从头开始创建每个组件,而是从库中维护的现有组件进行构建。在制定软件架构时,会从库中选择组件并用于填充架构。
组件特性
基于组件的设计原则
组件级设计可以通过使用一些可以转换为源代码的中间表示(例如图形、表格或基于文本)来表示。数据结构、接口和算法的设计应符合既定的准则,以帮助我们避免引入错误。
组件级设计指南
为指定为体系结构模型一部分的组件创建命名约定,然后作为组件级模型的一部分进行优化或详细说明。
进行组件级设计
识别与分析模型和体系结构模型中定义的问题域相对应的所有设计类。
优势