一. 统一建模语言UML
统一建模语言(Unified Modeling Language,UML)是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它的作用不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。
UML的组成要素
UML由3个要素构成:
1. 基本构造块:事物、关系、图
2. 规则:支配基本构造块如何放置在一起的规则
3. 运用于整个语言的公用机制
UML的4种事物
1. 结构事物
模型的静态部分,描述概念或物理元素。
类、接口、协作、用例、主动类、构件、制品、节点。
2. 行为事物
模型的动态部分,描述了跨越时间和空间的行为。
交互、状态机、活动。
3. 分组事物
模型的组织部分,最主要的分组事物是包,仅在开发时存在。
4. 注释事物
模型的解释部分。
UML的4种关系
依赖、关联、泛化、实现
UML的主要模型
1. 功能模型:从用户角度展示系统的功能,包括用例图。
2. 对象模型:采用对象、属性、操作、关联等概念展示系统的结构和基础,类图、对象图。
3. 动态模型:展示系统的内部行为,序列图、活动图、状态图。
UML的14种图
二. 系统建模语言SysML
系统建模语言(System Modeling Language,SysML)是一种专门为系统工程应用开发的标准建模语言,它是由对UML2.0的子集进行重用和扩展而来的。
SysML的优势
-
系统级视角:SysML能更好地描述多个组件(包括软件和非软件)如何协同工作。
-
全面的需求分析:除了功能需求,SysML还可以描述非功能性需求,如性能、可靠性等。
-
更丰富的交互描述:SysML提供了用于描述复杂系统内部和外部交互的建模元素。
SysML的9种图
1. 用例图(Use Case Diagram):用于表达系统执行的用例,以及引起用例的行为者和其中的参与者。用例图是系统在行为者的协作下所执行服务的黑盒视图。
2. 状态机图(State Machine Diagram):用于指定一种行为,主要关注模块的一系列状态,以及响应事件时,状态之间的可能转换。
3. 活动图(Activity Diagram):用于指定一种行为,主要关注控制流程,以及输入通过一系列动作转换为输出的过程。活动图一般用作一种分析工具,以理解和表达系统所需要的行为。
4. 序列图(Sequence Diagram):用于指定一种行为,主要关注模块的组成部分如何通过操作调用和异步信号交互。序列图通常用作详细设计工具,以精确地把一种行为指定为生命周期开发阶段的输入项。
5. 时间图:SysML时间图重用了UML时间图,但在UML中时间图并不常用。时间图描述的是系统的某个活动状态或属性值随时间的变化。
6. 模块定义图(Block Definition Diagram,BDD):用于表示模块和值类型之类的元素(定义能够在可操作的系统中存在的事物类型)以及那些元素之间的关系。BDD的通常用法包括显示系统层级关系树以及分类树。
7. 内部模块图(Internal Block Diagram,IBD):用于指定单个模块的内部结构。更精确的说法是,IBD会显示模块内部组成部分之间的关系,以及它们之间的接口。
7. 参数图(Parametric Diagram):用于表示一种或多种约束——特别是等式和不等式——如何与系统的属性绑定。参数图支持工程分析,包括性能、可靠性、可用性、电力、人力和成本。参数图还可以用于支持候选物理架构的优劣势研究。
9. 需求图(Requirement Diagram):用于表示基于文字的需求、需求之间7种关系。
需求之间7种关系
1. 包含(十字剪头):可以理解为需求的分解,例如用户的信息管理包括基本信息管理、个性化设置等。
2. 跟踪(trace):一个需求的变化会引起另外一个需求的变化,跟踪关系是一种弱关系,它只是表达了一种基本的依赖关系,例如用户的积分管理规则的变化会引起用户使用权限的变化。
3. 继承(deriveReqt):是另一种依赖关系且依赖关系可以传递,如果基本的需求发生变更,那么下游的影响会贯穿整个继承需求关系链。
4. 改善(refine):对抽象需求的具象化处理,一般使用用例对文本的功能性需求进行改善。用例更精确,并且还带有说明。
5. 满足(satisfy):一个需求的实例会满足另外一个需求。
6. 验证(verify):将测试用例(可以是活动、交互或者状态图)与需求进行关联,表示用关联的测试用例可以验证这个需求。
7. 复制(copy)
三. SysML与UML的区别
1. SysML是专门为系统工程开发的,而UML更多的是面向软件工程。
2. SysML是从UML的基础上重用扩展而来,提供了额外的建模构造和扩展,以满足系统工程领域的特定需求。
3. SysML是一种专门用于系统工程领域的建模语言,强调系统的结构、行为和交互的建模和分析。