2.建模
本章将详细讲解架构的创建方法。
2.1 名称与描述
2.1.1 名称
每个元素都必须赋予一个尽可能唯一的名称。如果创建的元素名称属于缩写,或是特定专业/组织内部的专有称呼,则必须将其录入到术语表(Glossar)中。
活动(OPERATIONALACTIVITIES 和 OPERATIONALACTIVITYACTIONS)、IT 服务功能(SERVICEFUNCTIONS)以及功能(FUNCTIONS)的命名必须遵循“名词+动词”的结构(例如:Befehl verfassen / 下达命令)。
当复用某个类型(Type)作为部件(Part)时(关于类型和部件的说明请参阅“创建部件”章节),其命名必须尽可能准确地反映该类型的实际角色。不应使用“士兵”这类泛泛的称呼,而应赋予元素更具体的名称,例如“操作员”。
2.1.2 描述
每个元素都必须在备注(Notes)字段中填写描述。描述应遵循“少即是多,但必须充分”的原则,确保没有任何背景知识的第三方也能看懂并准确理解该元素的定位。在此过程中,可以参考德国联邦国防军的术语数据库(DBTermBw)。
2.1.3 架构中的语言规范
所有元素名称和描述都必须使用德语编写。如果确实需要额外添加英文术语和描述,目前可以通过 SPARX EA 的别名(Alias)功能来实现。只有在专业领域或德国联邦国防军内部已经约定俗成的情况下(例如 UAV = unmanned aerial vehicle / 无人机),才允许单独使用英文命名。
2.1.4 包
可以使用包(Packages)来对架构进行结构化组织。创建新包时,点击浏览器菜单栏中的“新建包”按钮(1)。在弹出的菜单中输入名称(2),并勾选“仅作为包”(Package Only)选项(3)。如果创建成功,浏览器中就会显示这个新包。
图 1 包的创建示例
在创建 QEAX 文件时,系统会自动在最顶层生成一个包(Package)。如果确有必要再创建一个新的根节点(Root-Node),可以在现有的根节点上点击鼠标右键(1)。在弹出的右键菜单中,选择“添加根节点”(Add Root Node)(2)即可创建新节点,并为其输入一个模型名称(Model Name)(3) 创建后,如果需要修改根节点的名称,可以按下 F2 键进行重命名。新的根节点随后会显示在浏览器中,参考(4)。
图 2 示例:创建根节点
2.2 图
图表用于可视化架构中的元素和关系,因此具有至关重要的作用。在大多数情况下,图表会位于浏览器中的包( package )之下,少数情况下也可能出现在元素( element )中。
2.2.1 绘制图表
在选定的包中创建图表有两种方式:
图 3 图表创建示例
2.2.2 打开图表
如需打开现有图表,可通过“开始 (Start) | 所有窗口 (All Windows) | 设计 (Design) | 浏览器 (Browser)”进行调用。
2.2.3 创建图表注释
图表注释(Diagram Notes)用于可视化展示图表的作者以及创建或修改的时间等元数据信息。该注释必须放置在所有图表的左上角(1)。 添加方法:
你可以通过拖放(Drag & Drop)操作,将“图表注释”从工具箱(Toolbox)的“通用(Common)”区域直接拖拽到图表中(2)。 如果图表注释添加正确,你的图表上就会显示相应的文本框。
图 4 创建图表节点(Diagram Nodes)示例
2.2.4 图表保存操作
对图表所做的修改 不会 被自动保存。 你可以通过以下两种方式进行保存:
图 5:保存图表示例
2.3 元素
元素是任何架构的核心组成部分。在 ADMBw 中定义了多种不同的构造型(Stereotypen)。构造型是指在 ADMBw 中定义的实体(元素或关系),它封装了特定的信息。 ADMBw 中的元素构造型在核心上基于统一建模语言(UML)的三种基本元素类型。这三种元素类型分别是:
图 6 示例刻板印象与元素
上述每一种元素类型在创建时都有其特殊之处,具体说明如下。
2.3.1 创建元素
在图表上创建元素时,你可以选择新建一个元素,也可以选择复用一个已经存在的元素。
图 7 新建元素示例
新建元素
若要在图表上新建一个元素,必须在工具箱(Toolbox)(1)中选择所需的构造型(Stereotyp),然后通过拖放(Drag & Drop)将其拖拽到工作区或图表上。 作为替代方案,也可以先在图表上左键单击选中一个同类型的现有元素,然后在图表的空白处再次单击,即可快速创建同类型的新元素。 创建后,必须在属性(Properties)窗口的“名称”字段(2)中为其命名,并在“备注”窗口(Notes)(3)中填写该元素的描述信息。
复用现有元素
若要在图表上添加一个已经存在的元素,必须在浏览器(Browser)(4)中选中该目标元素,然后通过拖放(Drag & Drop)将其拖拽到工作区或图表上。 当元素被放置到工作区或图表上时,会弹出一个菜单,此时需要选择该元素的具体使用方式(Art der Verwendung)。
图 8 创建现有元素示例
在创建 ADMBw 的大多数构造型时,实际上是在创建元素类型,例如 CAPABILITY(能力)、OPERATIONALPERFORMER(作战执行者)、SERVICESPECIFICATION(服务规范)、RESOURCEPERFORMER(资源执行者)和 OPERATIONALACTIVITY(作战活动)。对于这些类型的元素,无需进行额外的建模步骤。而用于描述对象、部件(Part)或端口(Port)的 ADMBw 构造型,则需要额外的建模操作,具体将在后续章节中介绍。
2.3.2 创建对象
如前所述,对象(即元素实例)是类的具体实例化表达。因此,要创建一个对象,必须有一个类作为生成该具体实例的基础。类的创建方法已在 2.3.1 节中说明。要创建对象或元素实例,有两种方法可供选择:
第一种方法是:如 2.3.1 节所述,将所需的对象通过拖放(Drag&Drop)从工具箱拖拽到工作区上;或者先选中一个所选类型的现有元素,然后在图表上单击(1)。随后,右键单击该对象,在弹出的右键菜单中选择“Advanced – Instance Classifier…”(高级 – 实例分类器…)来为其分配一个类(2)。如果类被正确分配给该对象,对象的名称后将会出现一个冒号,紧接着显示该类的名称(3)。
图 9 新对象创建示例
第二种方法是利用浏览器(Browser)中现有的元素(类)。将其通过拖放(Drag&Drop)拖拽到工作区或图表上。
当将其放置到工作区或图表上时,在弹出的菜单中,需要在“Drop as”(拖放为)字段下选择具体的使用方式。此时应选择带有括号且附加了“Object”(对象)字样的 ADMBw 构造型(1)。
需要注意的是,并非所有的 ADMBw 类都拥有专属的对象构造型。因此,如果在列表中没有找到带有“Object”字样的 ADMBw 构造型,则应选择列表中的“Instance(Objekt)”(实例/对象)选项(2)。
图 10 创建现有对象示例
2.3.3 创建部件(Parts)
部件(Parts)代表一个元素的组成部分,即用于描述其内部结构。与对象类似,部件也是类的具体实例化表达。因此,要创建一个部件,必须有一个类来为其定义类型。类的创建方法已在 2.3.1 节中说明。
如 2.3.1 节所述,必须将所需的部件通过拖放(Drag&Drop)从工具箱拖拽到工作区上;或者先选中图表上同类型的现有元素,然后在图表上单击(1)。随后,右键单击该部件,在弹出的右键菜单中选择“Advanced – Set Property Type…”(高级 – 设置属性类型…)来为其分配一个类(2)。如果类被正确分配给该部件,部件的名称后将会出现一个冒号,紧接着显示该类的名称(3)。
一个部件可以描述一个元素的一个或多个组件。组件的准确数量可以通过右键单击该部件,在弹出的右键菜单中选择“Advanced – Multiplicity…”(高级 – 多重性…)来进行设置。具体包含以下几种选项:
图 11 创建示例零件
2.3.4 创建端口(Ports)
端口(Ports)通常用于描述一个元素的接口(Schnittstellen)。创建接口的方法与 2.3.3 节中创建部件(Parts)的方法类似。
对于服务端口(SERVICEPORTS),其名称必须指定为“provided”(提供)或“required”(需求)。其中,提供某项服务的接口被称为“provided”,而需要某项服务的接口被称为“required”。
服务端口通过“SERVICEINTERFACE”(服务接口)来进行类型化定义。该服务接口的名称与提供服务的 SERVICEPORT 所属的“SERVICESPECIFICATION”(服务规范)的名称完全相同。
端口的准确数量可以通过右键单击该端口,在弹出的右键菜单中选择“Advanced – Multiplicity…”(高级 – 多重性…)来进行设置。具体包含以下几种选项:
2.3.5 创建流程步骤
流程步骤代表一个流程中的单个活动(Aktivität)。每个流程步骤都应明确归属于一个执行角色(durchführende Rolle),并且只处理一项或极少数信息。
在操作时,需将“流程步骤”通过拖放(Drag&Drop)从工具箱(Toolbox)中拖拽到工作区上。
图 12 创建示例流程步骤
2.3.6 数据模型中的元素分类
可以将某个信息分配给特定的数据模型。为此,必须在浏览器(Browser)(1)中将元素(INFORMATIONELEMENT 或 DATAELEMENT)拖拽(2)到数据模型上,使其被放置在该数据模型的下方(3)。在图表上,这一关联关系也会被同步可视化展示(4)。
图 13 将示例元素归类到数据模型中
2.3.7 显示内部元素结构
为了显示一个元素类型的组成部分,必须在工作区上左键单击相应的元素,然后在菜单栏中选择“Design | Element | Properties | Element Features”下的“Features”菜单(1)。
在弹出的“Features”窗口中,勾选“Parts / Properties”条目(2),或者直接勾选“Element Features”下的“Parts / Properties”条目。接着,选择需要在图表上的该元素中显示的具体元素(3)。
选择完成后,可以通过点击“X”按钮关闭“Features”窗口(4)。如果还需要显示继承的内部元素,则必须勾选“Show Owned/Inherited”(显示自有/继承)复选框(5)。
图 14 显示内部元素结构示例
2.3.8 将元素与图关联(复合图)
可以将一个元素与某个图表进行关联,这样当左键双击该元素时,就会自动打开关联的图表。
具体操作为:在工作区上右键单击相应的元素,然后在菜单中选择“New Child Diagram – Select Composite Diagram”(新建子图 – 选择组合图)(1)。在弹出的窗口中,即可为其分配一个图表。
如果图表被正确关联,元素的右下角会出现一个“眼镜”图标,用于标识该链接(2)。
图 15 示例元素与图表的关联示例(复合图)
2.3.9 属性(度量 / Measurement)
元素的属性被建模为 MEASUREMENT(度量)。其中,MEASUREMENT(1)表示一个具体的值,通过分配一个 MEASUREMENTTYPE(度量类型)(2),该值会被赋予包含度量单位在内的具体含义。属性的创建方法与 2.3.3 节中创建部件(Parts)的方法类似。
2.3.10 元信息(标记值)
标记值(TaggedValues)是元素或关系的元信息。若要维护某个元素或关系的标记值,需在图表上选中该元素或关系(1)。随后,在属性(Properties)窗口中可以对现有的标记值进行维护(2),或者创建新的标记值(3)。标记值的形式可以是自由文本、下拉选择列表或其他结构化形式。
图 16 示例元信息(标记值)
2.3.11 结论与建议(发现与推荐)
在进行与架构相关的研究及工作过程中,可以展示结论(发现)并提出建议 / 改进方案(推荐)。这些信息还应在架构中通过使用“发现”和“推荐”这两个元素进行记录。在每个“发现与建议”工具箱中都有相应的功能。一个“发现”可以通过拖放的方式放置到工作区( 1 )。此时,“发现”的名称描述了具体的结论。在“标记值类型”( 2 )中,可以确定结论的类型:
• Method(方法):关于方法论的发现;
• Tool (SPARX EA)(工具):关于 SPARX EA 工具的发现;
• Subject(主题):关于模型业务/专业内容的发现;
• Others(其他):不属于上述三类的发现。
如有需要,该“发现”可以与任何元素通过“ RESULTSFROM” ( 3 )进行关联。
如果可能的话,对于每个“发现”,都应该提出一个改进方案的形式为“建议”。建议可以通过拖放的方式放置到工作区( 4 )。除此之外,还可以通过在工具栏中点击该元素,然后在图表中再次点击以将其放置到位。建议名称描述了改进方案。在“标记值类型”中,与“发现”类似,可以获取改进方案的类型。为了能够展示一个建议所关联的发现是哪一个,需要通过“引用”关系将该建议与相应的发现连接起来( 5 )。此外,建议可以通过“实现建议”关系与执行该建议的元素相连接。
图 17:发现与建议示例(Findings & Recommendations)
2.3.12 规范与约束
规范和框架条件是提升架构元素质量的重要手段。例如,这些条件可以是限制性因素,涉及流程、信息、交流需求以及其他与架构相关的内容。在 ADMBw-Grid 的各个行中,存在多种约束条件:
• STRATEGICCONSTRAINT (战略约束)——战略规定(概念行)
• OPERATIONALCONSTRAINT (运营约束)——运营规定(逻辑规范行)
• SERVICEPOLICY (服务政策)——对某一服务的规定(服务规范行)
• RESOURCECONSTRAINT (资源约束)——对某一系统的规定(物理规范行)
规定和框架条件可以在任何一张图表中设置。为此,在每个工具箱区域中都有“约束”选项,但每个行可能有所不同。约束可以通过拖放的方式将它们拖到工作区( 1 )。或者,也可以通过在工具箱中单击链接来选择该元素,然后在图表中通过再次单击链接将其放置到位。约束的名称应具有明确的含义。此外,在备注字段中应补充描述,如果有必要的话。要说明某个元素在 ...... 中的作用,可以这样做:
图 18 示例设定及框架条件(约束条件)
2.3.13 参考文献
在架构模型中,所有实质性的内容声明都必须附带来源信息,其核心目的是提高模型的可追溯性与透明度。架构中区分了三种不同类型的来源(References):
DOCUMENTREFERENCE(文档引用):例如规章制度、指导方针等
SMEREFERENCE(主题专家引用):例如研讨会得出的结论、专家知识等
REFERENCE(通用引用):非特定类型的参考来源
为此,每个工具箱 包含操作约束部分,除了不同类型的约束外,还包含参考资料。可以拖拽参考到画布上( 1 )。或者,可以通过工具箱中的左键点击选择该元素,并通过第二次左键点击放置在图中。 根据引用类型,需要填充不同的 TaggedValues ( 2 ):
日期:文件生效日期(格式: DD.MM.YYYY ) 参考
日期:获取信息的日期(格式: DD.MM.YYYY )参考
日期:信息获取日期(格式: DD.MM.YYYY )
若要说明架构中的某个元素源自特定的参考来源,需使用“ORIGINATESFROM”(源自)关系(3)。若要说明某项运行约束(OPERATIONALCONSTRAINT)是基于某个参考来源推导而来的,则需使用“JUSTIFIEDBY”(由...证明合理)关系(4)。 如果需要指明参考来源中的具体章节或出处,应在“ORIGINATESFROM”或“JUSTIFIEDBY”关系的名称字段中,明确标注该参考来源中的具体位置(Fundstelle)。
图 19 示例 参考文献(参考资料)
2.3.14 注释与提示(注释)
元素本身的详细描述应始终填写在该元素的“Notes”(备注)字段中。而针对元素或图表的额外注释与提示,则需要使用“NOTE”(注释)元素来创建。
创建与放置操作:
“NOTE”元素位于每个工具箱的“Common Elements”(通用元素)区域中。可以通过拖放(Drag&Drop)将其放置到工作区上(1)。或者,也可以在工具箱中左键单击选中该元素,然后在图表上再次左键单击进行放置。
建立关联:
如有需要,可以通过“LINK”(链接)关系(2)将“NOTE”元素与任意其他元素连接起来。
图 20 示例笔记及说明(注释)
2.3.15 注释(问题)
与普通的备注或提示(Notizen/Hinweise)不同,待办事项(ToDos)和缺陷(Mängel)需要作为独立的“ISSUE”(问题/事项)元素来创建,并与相关元素建立关联。这样做的优势在于,ISSUE 会作为一个独立元素出现在浏览器(Browser)中,从而更易于查找和管理。
“ISSUE”元素位于每个工具箱的“Governance”(治理)区域中。可以通过拖放(Drag&Drop)将其放置到工作区上(1)。 如有需要,可以通过“TRACE”(追踪)关系(2)将 ISSUE 元素与任意其他元素连接起来。
图 21 示例 注释(问题)
2.3.16 图例
在架构模型中使用颜色可以提升其直观性和可读性。一旦使用了不同于默认标准色的颜色,就必须创建颜色图例(Farblegende)。该图例适用于元素和关系的颜色说明。
色彩说明(图例)可在 “ 常见元素 ” 区域的每个工具箱中找到,并可通过拖放操作将其拖到工作区上( 1 )。然后,通过左键双击图例,可以打开图例的配置菜单( 2 )。菜单中包含一个元素模板和一个连接器模板( 3 )。在两个模板中,设置方式相同。要添加新的图例条目,需要填写以下字段( 4 ):
完成所有输入后,点击“Save”(保存)按钮确认输入(5)。如果需要在图例中补充其他条目,请点击“New”(新建)按钮(6),然后按照上述步骤继续操作即可。
图 22 示例颜色图例(图例)
2.3.17 设置图形(默认图像)
在 EA 中,可以为模型元素分配自定义的图形。具体操作步骤如下:
图 23 示例图形分配(默认图像)
2.4 关系
关联用于描述关系,与元素一起构成了每种架构的第二个核心组成部分。与元素一样,在 ADMBw 中,关联也拥有大量不同的构造型(Stereotype)
2.4.1 建立关系
建立关系有两种方式:
从工具箱中创作
使用 Quicklinker 创建
1. 从工具箱创建关系
图 24:从工具箱创建关系示例
如果要在两个元素之间、元素与关系之间,或者两个关系之间建立关联,首先需要先在工具箱中选中你想要的关系类型 (1)。接着,按住鼠标左键在图表中点击源元素(或源关系),然后将其拖拽到目标元素(或目标关系)上。如果目标是一个元素,且拖拽操作正确,该元素的边框上会出现一条虚线提示 (3)。
2. 用快速链接器 ( Quicklinker )创建元素间的关系
用快捷链接来建关系有个很大的好处:它能防止出错,因为系统只会让你选择那些合法的关系类型。具体操作是:用鼠标左键点击作为起点的源元素,这时元素边缘会弹出一个箭头图标 (4)。按住左键拖动这个箭头到目标元素上松开,就会弹出一个快捷菜单,里面列出了所有可用的关系类型,直接挑选你需要的就行了 (5)。
图 25:使用 Quicklinker 在元素之间创建关系示例
使用快速链接器创建关系与元素之间的关系
图 26:使用 Quicklinker 在关联与元素之间创建关系示例
使用快速连接器在关系与元素之间创建关系时,请执行以下操作:
先用鼠标左键点击该关系。随后,该关系的中间会出现一个箭头符号 (6)。用鼠标左键选择该箭头符号,并按住鼠标左键将其拖动到该关系应结束的那个元素上(目标位置)。此时会出现一个上下文菜单,其中会显示所有可能的关系,您可以从中选择所需的关系 (7)。
使用快速连接器在关系与关系之间创建关系
可以通过快速链接器连接两个关系,但不包括 ADMBw 的关系。
要在两个关系之间创建关系,请按照上述在关系与元素之间拖动关系的步骤进行操作。唯一的例外是,这次的目标是一个关系,而不是一个元素。
关联的细化
图 27:关联细化示例
2.4.2 展示与隐藏关系
可以在图表中显示或隐藏关系线。为此,有以下几种方法:
显示与隐藏关系
具体操作是:先用鼠标左键选中该关系线,然后按下键盘上的“Delete(删除)”键。此时会弹出一个对话框,在其中勾选“隐藏关系线(Hide connector)”复选框,然后确认你的操作即可。
简单来说,就是选中连线按 Delete 键,然后在弹出的提示框里选择“隐藏”而不是“彻底删除”。
图 28:显示与隐藏关联示例(通过连接线)
通过关系的起点或终点元素操作
具体步骤如下:
图 29:显示与隐藏关联示例(通过关系的起点或终点元素)
通过“Set Visible Relationships”(设置可见关系)菜单项操作
你可以通过依次点击“Layout”(布局)选项卡 | “Diagram”(图表) | “Appearance”(外观) – “Set Visible Relationships”(设置可见关系)来打开该设置窗口 (1 – 3)。
在弹出的对话框中,若要显示或隐藏某条关系,只需勾选或取消勾选对应关系线(Connector)前面的复选框即可 (4)。 简单来说,这就是一个“总开关”面板,你可以在这里通过打勾或取消打勾的方式,集中控制图表里哪些关系线需要显示,哪些需要隐藏。
图 30:显示与隐藏关联示例(通过‘Set Visible Relationships’菜单项)
2.4.3 删除关系
删除关系有两种方式:
通过关系线(Connector)本身进行删除
通过关系的起点或终点元素进行删除
通过关系线(Connector)本身删除
具体操作是:先用鼠标左键选中该关系线,然后按下键盘上的“Delete(删除)”键。此时会弹出一个对话框,在其中勾选“从模型中删除该关系线(Delete the connector from the model)”复选框,然后确认操作即可。
简单来说,就是选中连线按 Delete 键,然后在弹出的提示框里选择“从模型中删除”。(注意:这和前面提到的“隐藏”操作不同,勾选此项后,这条关系线会在整个模型中被彻底抹除。)
图 31:删除关联示例(通过连接线)
通过关系的起点或终点元素进行删除
具体操作步骤如下:
图 32:删除关联示例(通过关系的起点或终点元素)
2.4.4 在关系上添加传输项(Conveyed Items)
这段德语主要讲解了在建模时,如何为关系线添加“传输项(Conveyed Items)”,以表达信息或物质的流动。用中文可以这样清晰地表达: 2.4.4 在关系上添加传输项(Conveyed Items)
关系线可以用来传输元素,例如用于表示信息流或物质流。
图 33:将元素传输到关联上的示例(传递项)
2.5 术语表
在 SPARX EA 中,可以创建一个或多个词汇表。
2.5.1 创建词汇表
要创建术语表,首先需要新建一个 GLOSSARY 类型的图表(在 Glossary Diagrams 分类下)。
接着,从工具箱里拖出一个 GLOSSARYCATEGORY (1),并在弹出的“New Package Name”窗口中,把它命名为你的术语表名称(2)。 如果术语表创建成功,图表和浏览器(Browser)里都会出现一个 GLOSSARYCATEGORY 元素(3),同时浏览器里还会多出一个子图表(Child-Diagram)(3)。
接下来,打开这个子图表,为每一个术语创建一个 GLOSSARY ENTRY ,并在“Name”字段填上术语名称,在“Note”字段写上具体解释(4)。 修改术语表后,记得刷新一下。操作方法是:在浏览器里右键点击那个 GLOSSARYCATEGORY 元素,选择 Reload Glossary (重新加载术语表)。
刷新后,文本框里包含术语的词会被加上 下划线 。这时候只要把鼠标悬停在带有术语表词条的词语上,就会弹出一个提示框(Tooltip),显示所有相关的术语解释。
图 34:创建词汇表示例