- SysML语言框架
本章开始介绍SysML语言的详细描述,包含第二部分的剩余章节,包含SysML语言框架的一个讨论并提供一个通用概念的介绍,应用到所有SysML图。也包含一个例子的介绍使用贯穿在第二部分的章节中来说明语言的概念。第二部分剩余的章节提供语言的详细描述。
-
- OMG SYSML语言规范
官方的OMG SysML规范[1]被开发响应需求,明确说明在系统工程的UML需求建议种(系统工程UML需求建议)[35]。作为统一建模语言(UML)[36]的扩展它被OMG正式采纳在2006年。第一个版本发布在2007年9月。SysML标准被维护和更新通过OMG SysML修订任务小组(RTF)。
SysML规范定义一组语言概念,可以被用来建模系统。SysML概念被描述在三个部分:
- 一个抽象语法或schema,定义语言概念并被描述通过一个元模型
- 一个具体语法、或符号定义语言概念如何被表示和被描述使用表中的符号
- 语义,或语言概念的意义在系统工程领域
SysML衍生自UML,UML被初始指定作为软件设计的一种建模语言,它已经被扩展到SysML,来支持系统建模。如图5.1的Venn图所示,SysML重用UML的一个子集并添加扩展来满足在系统工程的UML需求建议中的需求。
图 5.1 SysML和UML之间的联系
接近一半的UML被重用。UML被SysML重用的子集称为UML4SysML,如图所示。UML的其它部分没显示作为必须的来满足系统工程UML需求建议。限制使用UML的部分降低了要求,培训和工具实现SysML,同时满足对系统建模的要求。
由于一些原因重用的UML部分,使用并没有进行修改,诸如,交互、状态机、和用例。UML的重用并被扩展来解决系统工程的唯一需要使用一个配置文件。配置文件是标准的UML机制,使用来扩展语言并被详细描述在第15章。基于配置文件的方法贯穿于其它扩展机制,由于许多UML工具可以直接解释配置文件。这使系统建模社区广泛使用UML建模工具进行系统建模。一个附加的好处是,一个UML的配置文件可以被使用在与 SysML结合来帮助减小系统和软件建模之间的间隙。
SysML配置文件被组织到下面的分离的语言单元,扩展UML来提供附加的系统建模功能:
- 模型元素:扩展来支持视图和视点和其它通用建模机制
- 需求:扩展来支持文本需求和它们相互之间以及与模型的联系
- 模块:扩展来表示系统结构和属性
- 活动:扩展来支持持续的行为
- 约束模块:扩展到模型约束和参数模型来支持工程分析
- 端口和流:扩展来支持信息流,事件,和能量在系统元素之间
- 分配:扩展来支持模型元素之间的映射关系
SysML配置文件试图被直接应用,意味着模型开发者使用SysML扩展可以仅使用UML定义在UML4SysML中的子集。SysML描述在规范中是UML4SysML和SysML配置文件的组合,正如指示在图5.1。
-
- SYSML语言的框架
典型的,一种建模语言有三个层次的概念:
- 建模的领域的概念(例,对于SysML,系统建模概念的通用目的,诸如,系统和功能)
- 领域概念到语言概念的映射(例,模块、活动),常常称为元模型
- 语言概念的表示和实例,正如它们应用到一个特定的系统(例,一个模块称为airplane),常常称为用户模型
本节更详细描述这些层次。元建模的理论被讨论在一个标题为“On Ontology, ontologies,Conceptualizations,Modeling Languages,and (Meta) Models”[37]文档中。
建模语言的目标是描述一些感兴趣的领域。对于SysML感兴趣的领域常常是建模一个系统,诸如,飞机、汽车、和信息系统。领域概念被定义在系统工程(SE)的UML RFP中,指定相应的SysML需求。语言需求的需要被组织来建模结构、行为、属性、需和系统的其它建模构件概念。下面是RFP的在结构章节的一个需求的一个例子:
6.5.1.1. System hierarchy. UML for SE shall provide the capability to model the hierarchical decomposition of a system into lower-level logical or physical components.
其它例子包含系统的需求到模型、它的环境、功能、输入/输出、事件、和属性值。这些概念使建模者能描述一个系统诸如,一架飞机。
图5.2显示一架飞机的一个模型称为Bill’s Plane,和一些它相关的特征。
在这个例子中,飞机的结构由它的机身、机翼、和起落架组成。飞机行为被描述根据它与飞行员和物理环境的交互支持起飞、飞行、和着陆。它的一些性能和物理属性可以包含它的速度、净重、和燃油装载。这架飞机的的主要需求是飞行一个特定的距离,和在一定的装载的情况下飞行在一个特定的时间,但也需要满足其它需求,诸如,安全性、可靠性、和成本。
图5.2 一个典型的系统
SysML的核心是一个元模型(metamodel),描述语言中的概念、它们的特征、和相互关系。有时被称为语言的抽象语法,区别于具体语法,指定语言的符号。OMG定义一种语言对应表示元模型,称为元对象机制(MOF)[23],使用来定义UML和其它元模型。
在一个元模型中,一种语言中个体概念被描述通过元类,其被关联到每个其它使用的关系,诸如,范化和关联。每种元类有一组属性集,其刻画它表示的语言概念,和一个约束集,其实施规则在那些属性的值上。
在图5.3的包图中显示一个UML的小片段,元模型是SysML的基础。它显示UML的一个基础概念,称为类,和它的一些重要联系。类特定的分类,其使它形成分类层次。图也显示一个类和属性之间的关联,其允许类有属性。另外的分类,数据类型被使用来描述属性的值,诸如,整数和实数。最后,一个包的符号被引入;它可以被用来分组模型元素,通常称为包元素。所有分类是包元素和所以是它的规范,诸如,类和数据类型。
图5.3 UML元模型的一个片段
一个配置文件在UML,是用来客户化UML语言的机制。一个配置文件包含构造类型,其类似于元类,并被使用来扩展在UML中的元类以客户化的方式生成新的或修订的概念。扩展到UML包含在SysML中,被描述使用一个配置文件称为SysML配置文件。
图5.4显示2个SysML概念在模块语言单元中和和它们如何关联到UML元类。类和数据类型是UML的元类,来自UML4SysML子集。模块扩展类,并作为基础的结构概念在SysML中。数值类型扩展数据类型和添加数量特征诸如,单位制。
图 5.4 SysML 配置文件对应模块的一个片段
一种语言的语义描述它的概念的意义在关联的领域。语义被描述通过一个领域概念和语言概念之间的映射。领域概念可以被定义以自然语言(例,英语文本)或更正式的数学定义。对于SysML,领域概念被定义通过需求在系统工程UML需求建议作为英语文本,正如先前描述的,辅以一系列非正式的UML类图。
在系统建模领域概念和语言概念直接映射,在SysML中被执行通过映射需求进系统工程UML需求建议到元类在SysML元模型中,和它被绘制在一个需求追溯矩阵[38]。例如,一个系统和它的组件映射到模块,一个组合关联到一个组合关联,一个功能映射到一个活动,和一个需求在域中在SysML元模型映射到一个需求。
有可能来捕捉领域概念和它们正式的映射到建模语言。例如,FUML(或fUML)[39]是UML的一个子集,其被映射到一组领域概念定义使用一个正式语言称为PSL。SysML也受益于这种正式定义的UML子集。参考第9.14.1节获取更详细的有关fUML。
正如描述在第2章,系统模型是一个系统和它的换将对应一个特定目的的描述,诸如,需求的有效性对应系统或来指定系统的组件。一个SysML模型包含模型元素,其是SysML元模型中元类的实例;例如,一个SysML模块可以被实例化正如,一架飞机、一个机身、一个机翼、和一个起落架在用户模型中。模型元素表示在这个模型必须符合元类属性,约束,和联系定义通过元模型。这些模型元素是可视的使用一种具体语法(例,标志在图上)正如描述在第5.3节。具体语法被映射到抽象语法,所以每个标志表示一个特定的概念。例如,一个模块和它的属性由一种特定的图形表示方式作为一个盒子标志带有舱段。
图5.5显示一个模块定义图的一个片段对应定义飞机,伴随映射到元类,其表示多种概念。飞机模型是一个包包含飞机和机翼模块;飞行员,一个参与者(即,外部到系统);和升,一个数值类型。飞机有两个属性,其描述其描述两个它的数值型特征:称为标志,它的有效值被描述通过字符串(一个基本概念定义通过SysML),和油料装载,使用单位制升。飞机有一个关系到模块机翼,其描述它的结构的部分,在这种情况下它的(2个)机翼。
图5.5 在用户模型中元类与模型元素的关系
正如描述在第2.1.2节,一个SysML建模工具可以存储一个系统模型正如结构数据在一个模型库。建模者使用工具进入和获取这个信息从模型库,主要通过使用通过SysML图的图形表示方式。一个SysML建模工具,其符合SysML标准执行元类属性、约束、和关系如何输入或接收信息来自模型库。
图5.6显示初始概念如何描述在图5.2关联到用户模型片段描述在图5.5。图显示飞机的类,但在这个例子中,我们引用一个特定的飞机。比尔号飞机是一个Airplane模块的实例带有值对应调用标志和油料装载关联到相应属性模块。比尔号是一个飞行员的实例和比尔号飞机的机翼是模块Wing的实例。升(little)数值类型描述如何来解释油料装载的值,其比尔号飞机是500升的情形下。注:一些构造类型和元类引用通过模型元素在图5.5—模块、数值类型、参与者、和属性—表示现实世界中用户的一些事物。包,然而不它被简化用来携带结构到用户模型。
XML元数据交换或XMI。XMI指定,UML模型,包含使用配置文件的模型,诸如,SysML, 获得转换到XML。XMI规范 [26]的实施试图来使SysML工具能导入和导出SysML模型。所以建模信息可以在工具之间交换。XMI被汇总在第18.4.2节。
此外对于一个元模型,SysML定义一个符号,或具体语法,其描述SysML概念如何可可视化作为图形或文本标志。在SysML规范中,这个符号被描述在符号表,其映射语言概念到图形化标志在图上。任何给定的模型元素可以被可视化通过标志在多个图上。
图5.6 关联现实世界概念来建模概念
图5.7显示SysML图分类,其被先前汇总在第3.2节。SysML符号基于UML的符号,虽然一些UML图,包含对象图,协同图,部署图,通讯图,交互概述图,时间图,和配置文件图被忽略。忽略的图没有必要来满足RFP需求或它们的目的可以被获取使用其SysML图。SysML包含其它UML图的修订,诸如,类图、组合结构图、和活动图、和它添加两个新图对应需求和参数。的符号表。详细的符号表其描述标志使用在这些图可以是查找在附录中。
此外对于使用在SysML图中的图形表示形式,SysML也标识表格的需要和模型的树表示数据,这些的例子被包含在本书第二部分的多个章节包含第13和14章有关需求和分配。
图5.7 SysML图分类
在SysML中,每张图有一个框架,正如显示在图5.8。图框架提供一个图的可视语境。框架表示一个模型元素,提供绘图内容的语境。一定的图形绘制标志在图上或连接到框架边界来连接到模型元素表示通过图框架。
图框架代标题或标签的矩形区域,包含标准信息在图的左上角。剩余的区域封闭通过图框架是内容区,或画布,其中标志表示的内容被绘制。一个可选的图描述,提供详细描述关于与的状态和目的,可以被附着到框架边界。
标题是一个它的右上角被剪切掉的矩形。包含下面的信息:
- 图的类型(diagram kind):一个简写说明图的类型
- 模型元素类型(model element type):图框架表示的模型元素的类型
- 模型元素名称(model element name):表示的模型元素的名称
- 图名称(diagram name):图的名称,常常被使用来提供一些关于图的目的的信息
- 图用法(diagram usage):一个关键字说明一个特定的一个图的使用
一个图框架带有一个标题的一个例子,其包含所有上面的信息被显示在图5.3。
图5.8 一个图框架
-
-
-
- 图的类型(diagram kind)
-
-
图的类型可以是下面的值之一,依赖于图的类型:
- 活动图:act
- 模块定义图:bdd
- 内部模块图:ibd
- 包图:pkg
- 参数图:par
- 需求图:req
- 序列图:sd
- 状态机图:stm
- 用例图:uc
-
-
- 模型元素类型(model element type)
-
-
不同的图的类型有不同的图框架,表示不同类型的模型元素。图的类型的有效的排列列举如下:
- 活动图:活动
- 模块定义图:模块、约束模块、包、模型、模型库
- 内部模块图:模块
- 包图:包、模型、模型库、配置文件、视图
- 参数图:活动、模块、约束模块
- 需求图:包、模型、模型库、需求
- 序列图:交互
- 状态机图:状态机
- 用例图:包、模型,模型库
模型元素类型的选项被详细解释在下面图被讨论的章节。模型元素类型仅需要被包含在标题中来避免歧义性,如果图可表示有超过1个可用的模型元素类型,虽然它也帮助来理解图语境。SysML也规定模型元素类型将是一个用户定义的模型元素类型的构造类型前面提及的。
-
-
-
- 图名称
-
-
图名称是用户定义的,并试图来提供一个有关图的目标的精确的描述。由于一个模型可以包含大量的信息, 在一个特定的图上,建模者可以仅显示选择的模型元素对应一个给定的目标,并在图上隐藏可能偏离这个目标的其它模型元素。
-
-
-
- 图用法
-
-
图用法描述图的类型的一个特定的使用。图用法名称被包含进标题在用引号。例如,一个建模者可以指定的那个一个语境图,作为一个用例图的一种用法。图用法符号没有任何语义基础,但是一个有用的符号扩展。
图描述是一种可选的注释附着到内部或图框架的外部。它试图使建模者能捕捉捕捉有关图的附件的信息。信息包含一些预定义的字段,但也有用户定义字段的建议。下面的是预先定义的字段。
- 版本:图的版本。
- 完整性状态:一个陈述来自图作者关于图的一个完整性的描述。它可以包含一个陈述,诸如,in-process、draft或complete和也可以包含信息的一个特定描述,其一直丢失从图中。这个字段的一个非常重要的使用是来说明,是否图是一个给定的它的范围的一个完整视图。系统工程师使用建模工具,其显示一个给定范围的完整细节,其中作为SysML的图可以显示一些可能的细节的一个子集。这个字段可以因此被使用提供图作者来评估它覆盖目标的完整性。
- 描述:描述图的内容或目的以自由文本形式。
- 参考:引用到图或超链接来关联到图辅助在向导中的其它信息绘图内容
- 图内容绘制区:或画布,包含图形表示的模型元素。SysML图由两种类型的图形化元素组成:节点和路径。一个节点是一个标志,其可以包含文本和/或其它标志来表示标识的模型元素的内部细节。路径,也被称为边,是直线,其是直线可以有多个附加的修饰,诸如,箭头和文本字符串。信息的数量在许多模型元素的描述中是潜在的非常巨大的并可以导致图混乱,为了帮助减轻这个问题,SysML工具典型的提供用户选项来隐藏细节。
-
-
- 关键字和属性
-
-
SysML包含一个关键字的符号,其被包含进括号称为书名号,正如«keyword»在一些模型元素的名称之前。一个关键字在一个标志上标识模型元素的类型(即,元类),使用它来删除歧义性,当一个标志(例,矩形、虚线箭头)可以表示超过一个建模概念。用户可以生成它们子集的关键字和相关的意义来进一步客户化语言使用构造类型,正如描述在第15章。
标志显示一定的通用使用信息关于它们的模型元素,诸如,名称和类型,以一种格式化字符串也即常常被称为它们的名称字符串。模型元素常常有附加的属性,其也需要来被显示在图上。这些被显示作为一个逗号分隔列表,封闭在括号中,跟随模型元素的名称字符串。一个用户也可以添加附加的属性到模型元素与一个关键字相关,有时称为标签。为了区分这些从其它属性,这些属性被显示名称之前和它们相关的关键字之后使用相同的形式(即,一个逗号分隔的列表在括号中)。参考第15.6节对应这个符号。
-
-
-
- 节点标志
-
-
节点标志通常是矩形,但也可以是圆形、椭圆形、等等。所有节点标志有一个名称舱段,用来显示表示的模型元素的名称字符串,伴随任何可应用的关键字、和属性。一些节点标志,有附加的舱段用来显示元素的内嵌细节,或以文本形式或以图形形式。此外,对于它的预先定义的内嵌元素,舱段可以被用来显示内嵌元素的标签,用户添加。
图5.9显示两个节点标志的例子,一个用例称为Fly Airplane和另一个模块Airplane。Airplane标志显示一个内部舱段标签为values来存储数值属性。
图5.9节点标志示例 图5.10 路径标志示例
-
-
-
- 路径标志
-
-
所有路径标志是一些直线,但有不同样式并且终点依赖于它们表示的建模概念。路径可以有一个文本修饰,包含名称字符串、关键字和附加的属性。尽管这常常被隐藏,当表示的模型元素需要它时,附加的文本信息可以被显示在直线的终点。
图5.10显示路径标志的两个例子,一个关联和一个范化。关联标志说明一架飞机精确的有两个机翼。范化标志说明,一架飞机是一种类型的飞行事物。
-
-
-
- 图标标志
-
-
图标典型用来表示一个特定的领域概念,诸如,一个文档。一个构造类型也可以指定一个图标,可以被用来显示一个构造类型元素,常常表示一个领域概念。如果模型元素表示通过一个图标有属性,属性被显示以文本字符串方式浮动在对象的周边。典型的图标出现在图的画布区,或在一个节点标志内部,但图标也可以出现在线上。图5.11显示图标的两个例子:一个贴图表示飞行员和一个小盒子包含一个箭头,表示油料流进飞机模块。
图5.11 图标标志示例
-
-
-
- 备注标志
-
-
备注标志可以被附加通过一条虚线到一个标志,对应任何模型元素或模型元素集。备注标志被使用来注释模型,使用附加的文本信息,可以包含一个超链接到一个参考文档。备注标志是一个右上角折叠的矩形盒子包含文本信息。备注标注可以简单作为一个图形修饰在一个图上,没有关联到一个潜在的模型元素。当一个备注关联到一个模型元素时,它常常包含一个自由格式的文本描述,详细描述模型的一些方面,称为一个注释。注释是模型库的部分。备注标志也可以被用来显示用户定义的标签。在SysML中,它们被使用扩展的来显示交叉信息,诸如,追溯到需求(参考第13.5.3节)和分配(参考第14.3节)。
图5.12显示两个备注标志的例子。一个仅存储一个关于飞行员的注释,另一个表示申明Airplane的调用标志满足Airplane唯一标识需求。
图5.12 备注标志示例
SysML也包含模型信息的非图形表示形式,常常有效的显示大量有用的信息。SysML支持的非图形表示形式是表格、矩阵和树。
表格可以是一个高级有效的和表达方式来表示信息。表格已经被传统上使用来绘制更广泛范围的系统工程信息,诸如,需求表和表示接口信息的N方图(N2)[40]。SysML允许使用表格形式作为一个备选的形式表示包含在一个SysML模型库中的建模信息。表格格式可以使用来表示模型元素的属性和/或模型元素之间的联系。信息表示在表格中是不确定的,但工具供应商被鼓励支持表格形式表示。第13和14章的需求分配描述典型使用表格形式,工具供应商被期望提供这种支持。
当一个表格被使用时,图框架带有图的类型table显示在标签上。图的标签格式与其它任何类型的图相似。图5.13显示一个简单的需求表的一个例子。
图5.13 在SysML中表格格式的例子
矩阵:标识图的类型为matrix,表示关系时非常有用,典型的矩阵的顶层的行和第一列表示模型元素,其它单元格描述行和列元素之间的一个关系。图13.9显示矩阵表示方式的一个例子,矩阵的第一行表示模型的其它元素,第一行表示需求,其它单元格说明满足关系。树,标识通过图的类型tree,典型的描述层次和其它关系类型,常常被表示在SysML中建模工具模型浏览器中。
一个案例研究被使用贯穿本书的第二部分来帮助说明和演示SysML语言中的概念。
一个名为CME Surveillance Inc的公司,他们生产和销售监控系统。他们的监控系统产品的范围包含为家庭或小的商业站点提供安全监控产品。它们的系统通过平移和旋转摄像头来生成周围区域的视频图像,并提供一个免费的可以被连接的中央监控站。ACME也生产摄像头并销售它们作为独立的产品面向do-it-yourself的爱好者。
在本书的第二部分的章节中,使用的模型抽取自ACME Surveillance Inc公司解决方案对应的系统模型。抽取的模型用来强调SysML的特征。第17章提供了一个类似的的例子,但用来演示使用OOSEM方法来开发对应的住宅安全系统模型的过程。
图5.14显示一个典型的监控系统对应一个小的商业站点。系统有4个安装在墙上的监控摄像头,三个采用有线连接到公司的以太网和第四个通过无线连接。一个办公室被使用作为对应的监控站,也被连接到办公室网络。这个监控站也有一台工作站和一个附加的屏幕。办公室有一个PBX,监控站使用来与它的设计命令中心进行通讯。
图5.14 监控系统例子的描述
命名元素在例子模型中时,名称通常选取有效的英文名称。名称超过1个词,词之间使用空格分隔。模型元素的名称,表示定义的,所有词的第一个字母以大写格式。特征的名称都以小写形式。模型元素的定义和特征参考描述在第7章的类型。
下面章节包含许多SysML图用来说明语言中的概念。很少有例外,每张图带有一个描述,和更好描述图的连接,名称使用在图上使用斜体字体。术语使用黑体字体,强调SysML语言中的基础概念。
本书的第二部分:第6到第15章描述SysML语言的概念并且演示且语言和符号如何被用来建模一个系统。章节的次序基于语言概念的逻辑开发次序,包含概念对应模型组织、结构、行为、分配、需求、和配置文件。次序不是基于一个系统工程过程。第三部分包含基于模型的系统工程方法的例子,作为一个系统工程过程的部分,显示语言如何被使用来开发系统模型。
每章描述可应用的语言概念、图符号、和例子图来显示,如何来生成符合语言规范的语法正确的图和模型。
-
-
- OCSMP 认证覆盖SysML 1.3
-
OMG认证的系统建模专家(OCSMP)认证程序评估一个候选者的基于模型的系统工程概念的知识,特别是SysML知识。基于通过的考试,将授予下面的四个级别的认证:
- OCSMP模型使用者(OCSMP Model User)
- CCSMP模型构建者(OCSMP Model Builder)–初级
- CCSMP模型构建者(OCSMP Model Builder)–中级
- CCSMP模型构建者(OCSMP Model Builder)–高级
OCSMP认证程序划分SysML到两个特征集, 基础特征集和完整特征集。头2个OCSMP认证程序的考试使用SysML的一个子集称为基础特征集,其中第三个考试级别使用SysML的完整特征集。本书的第二部分试图来作为前三个级别考试的一本参考书籍。第四个级别的认证解决系统建模更通用的问题,讨论到在本书的第一、三和四部分中。
OCSMP不覆盖SysML 1.3,但本书依然包含。SysML1.3增加和丢弃了一些特征。丢弃的特征被保留,在本书的第7章进行说明。特征添加通过SysML 1.3被被标识在附录表的符号描述中。
- 一种建模语言描述的抽象语法是什么?
- SysML的两模块抽象语法是什么?
- 语言概念如何定义在一个元模型中?
- 什么是一个配置文件和它包含什么?
- 一个建模语言语义描述的是什么?
- XMI用来做什么?
- 一个建模语言的具体语言描述什么?
- 一个标题的5个元素是什么和它们被用来做什么?
- 什么是四种类型的标志其可以出现在一个图?
- 何时一个关键字必须需要作为一个图形化标志的部分?
SysML完全可以被描述作为一个元模型,而不是使用了UML配置文件机制。讨论这两种选项的好处。
传统的工程建模工具显示所有相关的模型元素在任何给定图中,其中作为SysML允许建模者来选择性的隐藏细节。讨论着两种方法的相对益处。
此外,模型的图形表示方式使用图,SysML支持使用非图形表示,诸如,表和树。在这种环境下,在一定条件下,这些不同的表示的使用是否有意义?