本章内容
- 结点和连接
- 对处理器和设备建模
- 对制品的分布建模
- 系统工程
正如制品一样,结点存在于物质世界中,在对系统的物理方面建模中它是一个重要构造块。结点是一个在运行时存在并代表一项计算资源的物理元素,通常至少拥有一些内存,而且常常具有处理能力。
利用结点可以对系统在其上执行的硬件拓扑结构建模。一个结点通常表示一个可以在其上部署制品的处理器或设备。
1.入门
作为软件密集型系统组成部分而开发或复用的制品必须部署到一些硬件装置上才能执行。实际上,这就是关于软件密集型系统的全部---这样的系统应该既包含软件又包含硬件。
当构造一个软件密集型系统时,必须考虑逻辑和物理两个方面。在逻辑方面,需要发现诸如类、接口、协作、交互和状态机这样的事物;在物理方面,需要发现制品(表示上述逻辑元素的物理打包)和结点(表示在其上部署和运行这些制品的硬件)。
UML提供了结点的图形表示法
2.概念和术语
结点(node)是存在于运行时并代表一项计算资源的物理元素,一般至少拥有一些内存,而且常常具有处理能力。在图形上,把结点画成一个立方体。
2.1名称
每一个结点必须具有一个有别于其他结点的名称。名称(name)是一个文本串,单独一个的名称叫做简单名(simple name);受限名(qualified name)是用结点所在包的包名作为前缀的结点名。
2.2 结点和制品
结点在许多方面与制品相同:二者都有名称;都可以参与依赖、泛化、和关联关系;都可以被嵌套;都可以有实例;都可以参与交互。但是结点和制品之间也有一些显著的差别:
- 制品是参与系统执行的事物,而结点是执行制品的事物。
- 制品表示对逻辑元素的物理打包,而结点表示对制品的物理部署。
第一项差别是最重要的。简单地来说,结点执行制品,制品是由结点执行的事物。
从第二项差别中可以看出类、制品与结点之间的关系。特别是,制品是对一组逻辑元素(如类和协作)的承载,而结点是部署制品的位置。一个类可以有一个或多个制品承载,而一个制品可以部署在一个或多个结点上。
分配在一个结点上的一组对象或制品的集合称为一个分布单元(distribution unit) 。
2.3 组织结点
与类和制品组织方式相同,可以通过把结点分组为包来组织结点。也可以通过定义结点之间的依赖、泛化和关联关系来组织结点。
2.4 连接
3.常用建模技术
3.1 对处理器和设备建模
结点的最普遍的用处是对形成单机式、嵌入式、客户、服务器或分布式系统的拓跋结构的处理器和设备进行建模。
因为UML的所有拓展机制都适用于结点,所以常常要利用衍型来规定新的结点类型,用来表达特定类型的处理器和设备。处理器(process)是具有处理器能力的结点,即它能执行制品。设备(device)是一个没有处理能力的结点,通常表示某些与现实世界衔接的事物。
对处理器和设备建模,要遵循如下策略:
- 识别系统部署视图中的计算元素,并将每个计算元素建模为一个结点。
- 如果这些模型元素代表一般的处理器和设备,则按照原样将它们衍型化。如果它们是作为领域词汇的一部分的那种处理器和设备,则用图标为它们定义相应的衍型。
- 像对类建模那样,考虑可以应用到各结点的属性和操作。
3.2 对制品的分布建模
当对系统的拓扑结构建模时,可视化或说明其制品在构成系统的处理器和设备上的物理分布通常是有用的。
对制品的分布建模,要遵循如下策略:
- 对系统中的每个有意义的制品,将其分配到一个给定的结点上。
- 考虑制品在结点上的重复放置。同种制品同时存在于多个不同结点上是很常见的。
4.提示和技巧
一个结构良好的结点,应满足如下的要求:
- 提供对从解域硬件词汇中提取的事物明确抽象。
- 只分解到向读者传达意图所必需的程度。
- 只显露与建模的领域有关的那些属性和操作。
- 直接部署驻留在结点上的一组制品。
- 以反映现实世界中系统拓扑结构的方式,将这个结点与其他结点连接。
用UML绘制一个结点,要遵循如下策略:
- 为整个项目或组织定义一组用户容易理解的带图标的衍型,以便向读者提供意义鲜明的可视化提示。
- 仅显示对理解结点在给定语境中的含义是必要的那些属性和操作。