实现图表示与实现有关的方面
SJ/T XXXX.1 - XXXX
12 实现图
实现图表示与实现有关的方面,包括源代码结构和运行时的实现结构。实现图有两种形式:
1) 构件图表示代码自身的结构;
2) 部署图表示运行时系统的结构。
在广义上也可以用它们对业务建模,其中“代码”构件是业务程序和文件,而“运行时结构”是组织单元和业务资源(人和其他因素)。
12.1 构件图
12.1.1 语义
构件图表示软件构件间的依赖,其中包括源代码构件、二进制代码构件和可执行构件。对业务来说,“软件”构件有更广的意义,包括业务程序和文档。可以把软件模块表示为构件的衍型。一些构件在编译的时候存在,一些在链接时存在,一些在运行时存在,一些还可以在多个阶段存在。只编译构件是指仅在编译的时候有意义的构件,运行时构件是可执行的程序。
构件图只是一种类型形式,而不是实例形式。为了显示构件的实例,要使用部署图(可能退化成没有节点的部署图)。
12.1.2 表示法
构件图是用依赖关系把构件连接起来的图。也可以通过表示组合关系的物理包含把构件连接到构件。
可以用包含构件类型和节点类型的图表示静态依赖,例如程序之间的编译器依赖。客户构件以某种方式依赖提供者构件,用从客户构件到其依赖的提供者构件的虚线箭头表示这种依赖。这种依赖与具体实现有关,可以把它显示为依赖的衍型。
作为类目,构件可以有操作,并且可以实现接口。通过使用从构件到其他构件上的接口的虚线箭头,可以在图中显示这些接口和构件间的调用依赖。
12.1.3 例子
图12-1 构件图
SJ/T XXXX.1 - XXXX
12.1.4 映射
构件图映射为其元素包括构件的静态模型。
12.2 部署图
12.2.1 语义
部署图表示数据处理元素在运行时的配置以及生存在其上的软件构件、进程和对象。软件构件实例表示运行时的代码单元。不能作为运行时的实体存在的构件(已经被编译过了)不能在这些图上显示,而应该在构件图上显示。
对业务建模而言,运行时处理元素包括工作人员和组织单位,软件构件包括工作人员和组织单位使用的业务程序和文档。
12.2.2 表示法
部署图是用通讯关联把节点连接起来的图。节点中可以包含构件实例,这表示构件生存或运行在这个节点上。构件可以包含对象,这表明对象驻留在构件上。通过用表示为虚箭头的依赖(可能通过接口)把一个构件连接到另一个构件,这表明一个构件使用另一个构件的服务。如有必要,可以用衍型表示精确的依赖。
部署类型图也可以用于表示什么构件可以驻留在什么节点上,这可以通过带有衍型《support》的从构件符号到节点符号的虚线箭头或在图形上通过在节点符号中嵌入构件符号来表示。
可以通过使用依赖关系的衍型《become》来表示构件实例在节点实例间的迁移,或对象在构件实例中的迁移。在这种情况下,构件实例或对象生存在其节点实例中,或部分时间生存在其节点实例中。
注意进程是一种特殊的对象。(见9.8“主动对象”)
12.2.3 例子
图12-2 节点
12.2.4 映射
部署图映射为其元素包含节点的静态模型。模型中不特殊地区别它。
SJ/T XXXX.1 - XXXX
12.3 节点
12.3.1 语义
节点是一种表示处理资源的物理对象,一般地至少具有存储器,经常也具有处理能力。节点可以是计算设备,也可以是人力资源或机械处理资源。可以把节点表示成类型和实例。运行时可计算的实例可以是对象或是构件实例,这样的实例可以驻留在节点实例上。 12.3.2 表示法
把节点表示为一个看起来象三维立方体的图。节点类型有类型名:节点类型。
节点实例有名称和类型名。在节点里面或下方可以出现带下划线的名称串。名称串的语法为:
名称“:”节点类型
名称是个体节点的名字。节点类型说明节点实例的类型。这两个元素都是可选的;如果省略了节点类型,也可以省略冒号。
带有关键字《support》的虚线箭头表明一个节点类型支持一种构件类型的能力。也可以选择通过在节点符号内嵌套构件符号表示这种情况。
构件实例和对象可以包含在节点实例符号内。这表明这些元素驻留在节点实例中。 节点可以通过关联与其它节点相连。节点之间的关联表明节点间的通讯路径。关联可以有衍型,以表明通讯路径的性质(例如:通道或网络的类型)。
12.3.3 例子
图12-3 对容纳构件的节点的应用
12.3.4 映射
节点符号映射为节点。
《support》箭头或节点符号内嵌套构件符号映射为构件和节点
之间的元连接。节点实例符号内的嵌套构件实例符号映射为构件实例和节点实例之间驻留的元链。
12.4 构件
12.4.1 语义
构件类型表示系统实现的分布块,包括软件代码(源代码、二进制代码或可执行代码)和在人工系统中的业务文档等。可用构件表示依赖,例如编译器依赖和运行时依赖,或人员
SJ/T XXXX.1 - XXXX
组织中的信息依赖。构件实例代表运行时的执行单元,它也可以用于表示在运行时有标识(包括它们在节点上的位置)的执行单元。
12.4.2 表示法
把构件表示为在其一侧带有两个小方框的矩形。构件类型具有类型名:构件类型。 构件实例有名称和类型。可以把构件名和它的类型表示为在构件符号的里面、上方或下方的带下划线的串。其语法为:
构件名称“:” 构件类型
这些元素都是可选的。如果省略了构件类型,也可以省略冒号。
可以用性质指明构件所处的生命期阶段(源代码、二进制代码、可执行代码或它们中的几个)。构件(包括程序、DLL、运行时可连接的图象)可以放置在节点上。
把驻留在构件实例上的对象(即,它实现构件)嵌套地表示在构件实例符号的内部。类似地,把构件实现的类嵌套地表示在其内部;这表明是实现而非拥有。
把驻留在构件内的元素(被其实现)嵌套地表示在构件符号的内部。用与包的内容的可见性(对包的名字预置的可见性符号)一样的表示法表示驻留元素对其它构件的可见性。可见性的含义依赖构件的性质。对于源代码语言构件(如程序文本),可见性将控制源代码语言结构的可访问性。对于运行时代码构件(如可执行代码),可见性将控制其它构件对代码的调用能力或访问本构件的代码的能力。
12.4.3 例子
本例表示具有接口的构件和在运行时包含对象的构件。
图12-4 构件
12.4.4 映射
构件符号映射为构件。
构件符号中的在图形上嵌套的元素(不是构件符号)映射为在模型元素和构件之间的元素驻留元链。在另一个构件符号中在图形上嵌套的构件符号映射为组成关联。在构件实例符号中的在图形上嵌套的实例符号映射为在实例和构件实例之间的驻留元链。
用实线依附到构件符号的接口圆映射为到接口的支持依赖。