UML中九种图的建模元素, 以及九种模型图的作用, 画法 (用例图 时序图 状态图为主)
UML
用例图
Use Case Diagram( ) 用于描述系统的功能需求和用户角色: 主要包含用例, Use Case( ) 参与者、 Actor( 和关系) Relationship( 三个建模元素) 用例图的作用是帮助开发人员和客户之间共同理解系统的功能需求。 。 活动图
Activity Diagram( ) 用于描述系统的业务流程和操作流程: 主要包含活动, Activity( ) 控制流、 Control Flow( 和对象流) Object Flow( 三个建模元素) 活动图的作用是帮助开发人员和用户之间共同理解系统的业务流程。 。 类图
Class Diagram( ) 用于描述系统的类和类之间的关系: 主要包含类, Class( ) 接口、 Interface( ) 关系、 Relationship( 等建模元素) 类图的作用是帮助开发人员理解系统的静态结构和对象之间的关系。 。 对象图
Object Diagram( ) 用于描述系统中的对象及其之间的关系: 主要包含对象, Object( ) 关系、 Relationship( 等建模元素) 对象图的作用是帮助开发人员理解系统中对象的实例化和关系。 。 时序图
Sequence Diagram( ) 用于描述系统中对象之间的时间顺序关系: 主要包含对象, Object( ) 生命线、 Lifeline( ) 消息、 Message( 等建模元素) 时序图的作用是帮助开发人员理解系统中对象之间的时间顺序关系。 。 协作图
Collaboration Diagram( ) 用于描述系统中对象之间的协作关系: 主要包含对象, Object( ) 消息、 Message( 等建模元素) 协作图的作用是帮助开发人员理解系统中对象之间的协作关系。 。 状态图
Statechart Diagram( ) 用于描述系统中对象的状态和状态之间的转换: 主要包含状态, State( ) 转换、 Transition( 等建模元素) 状态图的作用是帮助开发人员理解系统中对象的状态和状态之间的转换。 。 部署图
Deployment Diagram( ) 用于描述系统中组件和节点之间的部署关系: 主要包含节点, Node( ) 组件、 Component( 等建模元素) 部署图的作用是帮助开发人员理解系统中组件和节点之间的部署关系。 。 包图
Package Diagram( ) 用于描述系统的包和包之间的关系: 主要包含包, Package( ) 依赖关系、 Dependency( 等建模元素) 包图的作用是帮助开发人员理解系统包之间的关系。 。
用例图, 类图, 时序图(画用例图, 其中某个功能的时序图)
在UML中
用例图
用例图的画法比较简单: 用椭圆形表示用例, 用人形图标表示参与者, 用线条表示关系, 用例图通常从左侧开始。 用例向右侧展开, 参与者位于用例图的左侧或上方, 。 时序图
时序图的画法比较复杂: 需要画出对象的生命线和消息的流向, 通常从上往下画, 生命线用竖线表示。 消息用箭头表示, 可以用实线, 虚线等不同类型的线条表示不同类型的消息、 。 状态图
状态图的画法比较简单: 用圆角矩形表示状态, 用箭头表示状态之间的转换, 可以用实心, 空心等不同类型的箭头表示不同类型的转换、 状态图通常从上往下画。 从初始状态开始, 沿着状态之间的转换路径画出状态图, 。 类图: UML类图是一种用于表示面向对象程序设计中的类
接口、 关系等元素的图形化表示法 添加关系、 使用箭头表示类或对象之间的关系: 例如。 使用实线箭头表示继承关系, 使用虚线箭头表示关联关系, 添加多重性。 可以在关系箭头上添加多重性符号: 以表示类或对象之间的关系的多重性, 例如。 * 表示多个, 1 表示一个, 。
什么是用例, 那些图用来详细描述用例
在软件开发中
在UML中
除了用例图和用例规范
活动图
Activity Diagram( ) 用于描述用例场景中的活动和流程: 。 时序图
Sequence Diagram( ) 用于描述用例场景中的交互和消息传递: 。 协作图
Collaboration Diagram( ) 用于描述用例场景中的对象和它们之间的交互: 。
画出录音机的用例图, 顺序图
CPS系统
CPS系统指的是嵌入式计算机系统和物理系统之间的集成
实时系统
实时系统指的是需要在严格的时间限制内完成任务的计算机系统
名词解释
时间约束
发布时间
截止时间
响应时间
及时性
并发性
可预测性
正确性和鲁棒性
实时操作系统特点
MDA模型驱动开发 (CIV-PIM-PSID) ; ( 概念为主)
MDA模型驱动开发
MDA 定义了三种模型
- 计算独立模型
Computation-Independent Model( CIM, )
描述系统的需求和将在其中使用系统的业务上下文 此模型通常描述系统将用于做什么。 而不描述如何实现系统, CIM 通常用业务语言或领域特定语言来表示。 用例图。 - 平台独立模型
Platform-Independent Model( PIM, )
描述如何构造系统 而不涉及到用于实现模型的技术, 此模型不描述用于为特定平台构建解决方案的机制。 PIM 在由特定平台实现时可能是适当的。 或者可能适合于多种平台上的实现, 类图。 顺序图、 - 平台特定模型
Platform-Specific Model( PSM, )
从特定平台的角度描述解决方案 其中包括如何实现 CIM 和如何在特定平台上完成该实现的细节。 如Spring。 JSP模型、
RM EDF调度机制
ROPES开发流程(需求分析、 系统设计、 系统实现);
Rapid Object-Oriented Process Embedded System 用于嵌入式系统的快速面向对象过程
以下过程都建立在系统的模型之上
分析(analysis)阶段对所有可能的正确方案的本质特征进行识别
。 - 需求分析(requirements analysis)是从客户获取需求及把这些需求组织为容易理解的形式的过程
。 - 系统分析(system analysis)要构造定义更为严格的模型
并且以这些需求为基础, 将系统的行为划分为机械组件, 电子组件和软件组件、 。 - 对象分析(Object Analysis)要给出重要的对象和类
以及它们的主要属性, 前面的子阶段定义了系统要求具备的行为, 这些需求由本阶段给出的对象结构予以满足, 它还包括两个子阶段。 : - 结构对象分析(structural object analysis)以类和对象的形式标识对象分解的结构单元
同时建立对象分解的组织单元, 包( 节点和组件、 以及这些元素之间的内在关系) 。 - 行为对象分析(behavioral object analysis)为已识别的类定义必要的动态行为模型
。
- 结构对象分析(structural object analysis)以类和对象的形式标识对象分解的结构单元
- 需求分析(requirements analysis)是从客户获取需求及把这些需求组织为容易理解的形式的过程
设计(design)则在分析的结果中添加了一些元素
这些元素根据对某些判定准则的优化, 定义了一份特定的解决方案, 。 - 架构设计(architectural design)能够给出可部署软件系统的大尺度组织分解
。 - 机制设计(Mechanistic Design)
对对象间的协作具体化: 。 - 详细设计(detailed design)定义类的结构和并对各个类的内部进行组织
。
- 架构设计(architectural design)能够给出可部署软件系统的大尺度组织分解
转化(translation)阶段为设计创建一个可执行的
可部署的实现、 。 如将UML模型转化成源代码( ) 测试(testing)要检查转化的结果是否与设计等价
并验证具体实现是否满足了分析阶段建立的正确性准则, 。
自动机的事件、 迁移等内容理解; ( 结合实验)
MARTE语言的建模思想;
MARTE
MARTE语言的建模思想主要包括以下几个方面
- 面向模型的建模思想
MARTE语言采用基于模型的方法进行系统建模
- 面向实时和嵌入式系统的建模思想
MARTE语言的建模思想是面向实时和嵌入式系统的
- 面向多视图和多层次的建模思想
MARTE语言的建模思想是面向多视图和多层次的
- 面向分析和仿真的建模思想
MARTE语言的建模思想是面向分析和仿真的
总之
MARTE中什么是refinement
在MARTE中
MARTE中的Refinement可以分为两个方面
在MARTE中
SysML与UML语言的区别? ( 从语义、 语法和所面向建模场景方面进行区分)
SysML和UML都是基于图形化建模的语言
- 语义方面的区别
:
SysML是一种专门用于系统工程的建模语言
UML则是一种通用的建模语言
- 语法方面的区别
:
SysML是基于UML2.0的扩展
- 面向建模场景方面的区别
:
SysML主要面向系统工程领域
UML则主要面向软件工程领域
总之
描述一下什么是模型驱动开发(MDD)
模型驱动开发
在MDD中
在MDD中
MDD的优点包括
提高开发效率
通过模型自动生成代码: 可以减少手工编写代码的时间和精力, 从而提高开发效率, 。 提高代码质量
由于代码是通过模型自动生成的: 因此可以减少代码错误和缺陷, 从而提高代码质量, 。 改善软件维护性
由于模型是对系统的抽象描述: 因此可以更好地理解和维护软件系统, 。
总之
自动机的事件, 状态迁移等内容理解,
自动机是一种用于描述计算过程或系统行为的数学模型
自动机可以分为两种类型
在自动机中
在实际应用中
顺序图的偏序
顺序图是一种UML图
顺序图中的偏序是指消息传递之间的先后顺序
例如
状态迁移时, 动作执行的顺序
在状态迁移时
动作在状态迁移之前执行
这种情况下: 动作会在状态迁移之前执行, 然后才进行状态的迁移, 这种情况通常称为”动作优先”。 它意味着动作的执行对状态的迁移是有影响的, 例如。 在状态迁移之前, 可能需要对一些变量进行计算或更新, 这些计算或更新的结果可能会影响状态的迁移, 。 动作在状态迁移之后执行
这种情况下: 动作会在状态迁移之后执行, 这种情况通常称为”状态优先”。 它意味着状态的迁移对动作的执行是有影响的, 例如。 在状态迁移之后, 可能需要执行一些操作来处理新状态的变化, 这些操作可能会影响系统的行为或输出, 。
UML profile 用处, 和UML区别
UML Profile是一种UML扩展机制
与UML的区别在于
UML Profile则是在UML基础上进行扩展