第八章:组件图
逻辑视图:
- 描述的内容
静态结构:类、接口、对象、类图
动态行为:用例/用例图、交互/交互图、状态机/状态图/活动图 - 描述的是概念空间中的事物
- 软件系统的设计建造不能只停留于概念空间
实现视图:
- 内容
运行时刻:可执行文件、程序库(dll)、数据文件(数据库、配置文件、求助文件…)
建造时刻:源程序文件、工程文件
概述:
-
定义:组件是系统的一个物理的和可替代的组成部分,该组成部分遵循并实现了一组给定的接口。
通过将软件系统的划分为不同的可执行组件,可以实现软件系统的组件化。
软件系统在物理上由不同组件构成,有些组件向外部提供由接口规定的服务,有些组件使用这些服务。 -
表示:
特性:
- 存在于物理世界中:形式:计算机文件
- 实现给定的动态行为
- 建造时刻:源代码文件: 是设计概念的实现
- 运行时刻:可执行文件、运行库:实现给定的动态行为,可替代
分类:
(1)源代码组件
(2)二进制组件
(3)可执行组件
也可以分为:
(1)开发用组件:是开发过程的剩余物(residue),它不参加软件系统的运行。它用来建造软件系统
(2)发布组件:用来组成一个完整的运行系统的组件。例如:DLL、EXE、COM+、Enterprise Java Bean、动态 页、数据库文件
(3)运行用组件:作为一个可执行系统的运行结果而产生的组件。例如:COM+对象,它由DLL实例化而来
作用:
描述代码构件的物理结构以及各种构建之间的依赖关系。
组件化的好处
- 组件是可替换的:边界清晰、便于维护、升级

组件和接口的关系
- 实现与输出:
实现关系:一个组件实现了一个接口。
输出接口:被一个组件实现的接口是该组件的实现接口 - 依赖与输入
依赖关系:一个组件使用了另一个组件通过接口提供的服务
输入接口:被一个组件调用的接口是该组件的输入接口
对比
- 组件VS类
相同点:
- 二者都有名称;
- 都可以实现一组接口;
- 都可以参与依赖、继承、关联等关系和交互;
- 都可以被嵌套;
- 都可以有实例。
不同点:
- 组件存在于物理空间;类存在于概念空间
- 抽象的方式不同;
- 抽象的级别不同;
- 访问方式不同;
联系:
- 组件实现类的结构和动态行为
- 接口(类的一种变体)规定组件为外界提供的服务
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!