Skip to main content

7.1 语言概述

SysML包含用于在某个上下文中对系统、组件以及外部环境进行建模的概念。

SysML语言对KerML规范中定义的内核建模语言(KerML)进行了扩展。 SysML直接使用了一些KerML中的元素,但是大部分SysML元素是KerML元素的特化。 本节对所有这些概念在SysML中的使用上下文中进行了描述。

SysML直接使用了以下KerML中的概念:

  • 元素关系,用于定义模型的基本图形结构。
  • 依赖,用于定义模型元素之间的依赖关系
  • 注解,用于对模型附着元数据,包括注释和文本表示。
  • 命名空间,用于包含和命名元素,以及,用于组织模型中的元素
  • 特化,包括子分类、子划分、重定义以及特征表征。
  • 表达式,用于表示计算、用例结果、约束以及形式化需求。 在KerML规范中描述的完整KerML表达式子语言可以在SysML中使用。 该子语言的描述不在SysML规范中重述。

SysML中特有的建模构件,是在KerML基础上建立的,覆盖了以下方面:

  • 构建模型的基础方面,包括:
    • 定义(definition)使用(usage)的一般模式,许多SysML语言构件都应用了该模式。 定义和使用的模式有助于模型重用,一个概念可以定义一次,然后在多个不同的上下文中使用。 一个使用可以在其特定的上下文中,进一步的特化。
    • 可变性(variability)的建模能力,包括对模型中变异(variation)点的定义, 在变异点上可以选择一个特定的变体(variant),而特定变体的选择可能约束其他变异点的可用的选择。 系统可以通过对一个可变性模型的每一个变异点上,进行合适的选择而被配置(configured)。 变异点可以在下面所列的任意特定的建模方面定义,因此对可变性的建模能力是构建在定义和使用的基本语法之上的。
  • 对事物的修饰信息建模,包括:
    • 属性(attribute),用于表示事物的可以用简单或者复合的数据类型来定义的特征, 以及量纲数值,例如重量、长度等。
    • 枚举(enumeration),用于定义限制取值为某个枚举值集合的属性。
  • 对时间和空间范畴中的实存(occurrence)进行建模。 时间范畴使得实存可以表示在某个时间点,或者一段时间,或者整个生命周期。 空间范畴使得实存可以表示在某个相对于坐标系的位置和角度上,并且可以拥有形状和尺寸。
  • 对具有特定身份的个体(individual)进行建模。
  • 结构(structure)进行建模,表示部件如何分解、相互连接以及归类,包括:
    • 项目(item): 描述流经进程或者系统,或者被系统存储的项目。
    • 部件(part): 作为结构的基础单元,可以组装和相互连接,形成复合部件,以及整个系统。
    • 端口(port): 定义部件上的连接点,使得部件之间可以相互连接。
    • 连接器(connection)接口(interface): 定义部件和端口如何相互连接。
    • 分配(allocation): 将实现一个元素的特征的责任,赋给另一个元素。
  • 行为(behavior)建模,用于指定部件如何交互,包括:
    • 动作(action): 部件所执行的动作,包括时间顺序,以及之间的项目的流动。
    • 状态(state)转换(transition):部件所展示出来的状态,以及状态之间允许的转换, 以及状态或转钟中启用的动作。
  • 计算(calculation)建模,表示参数化的表达式,可以求解得到特定的结果。
  • 约束(constraint)建模,表示可以求解为true或false的条件,或者。
  • 需求(requirement)建模,表示一种特殊的约束,其主体(subject)必须满足一个有效的方案。
  • 案例(case)建模,用于定义相对于一个主体,产生某个期望的结果所需的步骤,以达到特定的目标(objective)。 案例可能有外部的参与者(actor)。案例包括:
    • 分析案例(analysis case):其步骤是用于分析主题所必要的动作
    • 验证案例(verification case):其目标是验证需求如何被主题所满足。
    • 用例(use case):指定主题所需的行为,其目标是对一个或多个外部参与者提供可测量的益处。
  • 视角(viewpoint)建模,指定一系列利益相关者所感兴趣的信息;对视图(view)建模,指定模型的某个查询条件, 和对查询结果的渲染方法,以满足特定的视角。
  • 对用户定义的元数据(metadata),支持带有额外模型层面信息的简单的元素标签, 以及更复杂的对SysML语言的语义扩展。 和SysML扩展KerML的方式类似,建模者可以使用这种元数据能力,来建立SysML的领域和用户扩展。 这使得SysML在保持高度的底层标准化和工具互操作性的同时,对领域和用户需要具有高度的适应性。

应该注意的是,SysML不包括叫做系统、子系统、配件、组件以及其他常用术语的语言构件。 具有结构和行为的实体,在SysML中被简单的表示为部件。 语言本身提供直接的扩展机制,来对感兴趣的领域建立合适的术语。