23Spring_建模复习

目录

  1. 1. UML中九种图的建模元素,以及九种模型图的作用,画法 (用例图 时序图 状态图为主)
  2. 2. 用例图,类图,时序图(画用例图,其中某个功能的时序图)
  3. 3. 什么是用例, 那些图用来详细描述用例
  4. 4. 画出录音机的用例图, 顺序图
  5. 5. CPS系统
  6. 6. 实时系统
  7. 7. MDA模型驱动开发 (CIV-PIM-PSID);(概念为主)
  8. 8. RM EDF调度机制
  9. 9. ROPES开发流程(需求分析、系统设计、系统实现);
  10. 10. 自动机的事件、迁移等内容理解;(结合实验)
  11. 11. MARTE语言的建模思想;
  12. 12. MARTE中什么是refinement
  13. 13. SysML与UML语言的区别?(从语义、语法和所面向建模场景方面进行区分)
  14. 14. 描述一下什么是模型驱动开发(MDD)
  15. 15. 自动机的事件,状态迁移等内容理解,
  16. 16. 顺序图的偏序
  17. 17. 状态迁移时, 动作执行的顺序
  18. 18. UML profile 用处, 和UML区别
  19. 19. 描述系统的执行过程 各次实验的理解(三选二),考察查询语言
  20. 20. 实验ATM中死锁, 危害
UML中九种图的建模元素以及九种模型图的作用画法 (用例图 时序图 状态图为主)

UMLUnified Modeling Language是一种通用的建模语言用于描述和设计软件系统在UML中有九种不同类型的图分别用于不同的建模目的下面分别介绍它们的建模元素和作用

  1. 用例图Use Case Diagram用于描述系统的功能需求和用户角色主要包含用例Use Case参与者Actor和关系Relationship三个建模元素用例图的作用是帮助开发人员和客户之间共同理解系统的功能需求

  2. 活动图Activity Diagram用于描述系统的业务流程和操作流程主要包含活动Activity控制流Control Flow和对象流Object Flow三个建模元素活动图的作用是帮助开发人员和用户之间共同理解系统的业务流程

  3. 类图Class Diagram用于描述系统的类和类之间的关系主要包含类Class接口Interface关系Relationship等建模元素类图的作用是帮助开发人员理解系统的静态结构和对象之间的关系

  4. 对象图Object Diagram用于描述系统中的对象及其之间的关系主要包含对象Object关系Relationship等建模元素对象图的作用是帮助开发人员理解系统中对象的实例化和关系

  5. 时序图Sequence Diagram用于描述系统中对象之间的时间顺序关系主要包含对象Object生命线Lifeline消息Message等建模元素时序图的作用是帮助开发人员理解系统中对象之间的时间顺序关系

  6. 协作图Collaboration Diagram用于描述系统中对象之间的协作关系主要包含对象Object消息Message等建模元素协作图的作用是帮助开发人员理解系统中对象之间的协作关系

  7. 状态图Statechart Diagram用于描述系统中对象的状态和状态之间的转换主要包含状态State转换Transition等建模元素状态图的作用是帮助开发人员理解系统中对象的状态和状态之间的转换

  8. 部署图Deployment Diagram用于描述系统中组件和节点之间的部署关系主要包含节点Node组件Component等建模元素部署图的作用是帮助开发人员理解系统中组件和节点之间的部署关系

  9. 包图Package Diagram用于描述系统的包和包之间的关系主要包含包Package依赖关系Dependency等建模元素包图的作用是帮助开发人员理解系统包之间的关系

用例图类图时序图(画用例图其中某个功能的时序图)

在UML中不同类型的图有不同的画法和符号其中用例图时序图和状态图是比较常用的三种图下面分别介绍它们的画法

  1. 用例图用例图的画法比较简单用椭圆形表示用例用人形图标表示参与者用线条表示关系用例图通常从左侧开始用例向右侧展开参与者位于用例图的左侧或上方
    录音机用例图

  2. 时序图时序图的画法比较复杂需要画出对象的生命线和消息的流向通常从上往下画生命线用竖线表示消息用箭头表示可以用实线虚线等不同类型的线条表示不同类型的消息
    录音机顺序图

  3. 状态图状态图的画法比较简单用圆角矩形表示状态用箭头表示状态之间的转换可以用实心空心等不同类型的箭头表示不同类型的转换状态图通常从上往下画从初始状态开始沿着状态之间的转换路径画出状态图

  4. 类图: UML类图是一种用于表示面向对象程序设计中的类接口关系等元素的图形化表示法 添加关系使用箭头表示类或对象之间的关系例如使用实线箭头表示继承关系使用虚线箭头表示关联关系添加多重性可以在关系箭头上添加多重性符号以表示类或对象之间的关系的多重性例如* 表示多个1 表示一个

什么是用例, 那些图用来详细描述用例

在软件开发中用例Use Case是一种描述系统功能和行为的技术用例描述了系统的各种功能以及这些功能是如何与系统的用户角色和其他系统进行交互的用例通常用于捕捉系统需求和用户需求以便开发人员和系统分析师能够更好地理解系统的功能和行为并在开发过程中进行测试和验证

在UML中用例可以通过用例图Use Case Diagram和详细用例规范Detailed Use Case Specification来表示和描述用例图是一种UML图形表示方法用于描述系统的用例和角色之间的关系用例图通常包括用例角色和系统边界等元素用例规范则是一种文档用于详细描述每个用例的场景前置条件后置条件流程和其他相关信息

除了用例图和用例规范还有其他UML图形表示方法可以用来描述用例例如

  1. 活动图Activity Diagram用于描述用例场景中的活动和流程

  2. 时序图Sequence Diagram用于描述用例场景中的交互和消息传递

  3. 协作图Collaboration Diagram用于描述用例场景中的对象和它们之间的交互

画出录音机的用例图, 顺序图
CPS系统

CPS系统指的是嵌入式计算机系统和物理系统之间的集成它们共同工作以控制监视和优化物理过程如工业自动化智能交通系统智能制造和智能医疗系统等CPS系统通常需要高度可靠性实时性和安全性因此需要采用特殊的设计方法和技术

实时系统

实时系统指的是需要在严格的时间限制内完成任务的计算机系统这些任务需要在特定的时间内产生正确的结果否则可能会对系统的正常运行产生严重影响实时系统可以分为硬实时系统和软实时系统硬实时系统必须在规定的时间内完成任务而软实时系统可以在某些情况下稍微超过规定的时间限制

名词解释
时间约束Timing constraint实时系统的任务具有一定的时间约束截止时间根据截止时间实时系统的实时性分为硬实时软实时硬实时是指应用的时间需求必须得到完全满足否则就造成重大安全事故
发布时间Release Time作业变成为可执行的时间如果所有的工作在系统开始执行时被释放那么就认为没有发布时间
截止时间Deadline工作被要求执行完成的时间如果截止时间是无限的那么工作就没有最后期限绝对截止时间等于发布时间加上相对截止时间
响应时间Response time作业从发布到执行完成的时间长度

及时性timeless:实时系统中动作必须在事件到达或者预期时间到达时开始执行作出响应在动作开始后的某个时刻必须完成,否则就会造成重大安全事故
并发性concurrency是指多个动作顺序链的同时执行
可预测性predictability系统的可预测性就是系统的响应特性所达到的可预知程度
正确性和鲁棒性correctness and robustness正确性表明一个系统总是运行正确鲁棒性表明系统即使在遇到新的情况不在计划中下也是可靠的因此必须警惕死锁竞争以及其他异常情况
实时操作系统特点 及时性可靠性工业控制武器发射等领域

MDA模型驱动开发 (CIV-PIM-PSID概念为主

MDA模型驱动开发Model Driven Architecture是一种软件开发方法它将模型作为软件系统的核心MDA的核心思想是将系统的设计和实现从平台特定的细节中分离出来以便更容易地实现跨平台的开发在MDA中开发人员首先定义系统的抽象模型然后使用模型转换工具将其转换为特定平台的代码这种方法可以提高开发效率和系统可维护性并提高软件的质量和可重用性

MDA 定义了三种模型

  • 计算独立模型Computation-Independent ModelCIM
    描述系统的需求和将在其中使用系统的业务上下文此模型通常描述系统将用于做什么而不描述如何实现系统CIM 通常用业务语言或领域特定语言来表示 用例图
  • 平台独立模型Platform-Independent ModelPIM
    描述如何构造系统而不涉及到用于实现模型的技术此模型不描述用于为特定平台构建解决方案的机制PIM 在由特定平台实现时可能是适当的或者可能适合于多种平台上的实现 类图顺序图
  • 平台特定模型Platform-Specific ModelPSM
    从特定平台的角度描述解决方案其中包括如何实现 CIM 和如何在特定平台上完成该实现的细节 如SpringJSP模型

RM EDF调度机制

ROPES开发流程(需求分析系统设计系统实现)

Rapid Object-Oriented Process Embedded System 用于嵌入式系统的快速面向对象过程

以下过程都建立在系统的模型之上这些过程可以理解为同一模型的不同视图要明白分析设计阶段用到的UML图

  1. 分析(analysis)阶段对所有可能的正确方案的本质特征进行识别

    • 需求分析(requirements analysis)是从客户获取需求及把这些需求组织为容易理解的形式的过程
    • 系统分析(system analysis)要构造定义更为严格的模型并且以这些需求为基础将系统的行为划分为机械组件电子组件和软件组件
    • 对象分析(Object Analysis)要给出重要的对象和类以及它们的主要属性前面的子阶段定义了系统要求具备的行为这些需求由本阶段给出的对象结构予以满足它还包括两个子阶段
      • 结构对象分析(structural object analysis)以类和对象的形式标识对象分解的结构单元同时建立对象分解的组织单元节点和组件以及这些元素之间的内在关系
      • 行为对象分析(behavioral object analysis)为已识别的类定义必要的动态行为模型
  2. 设计(design)则在分析的结果中添加了一些元素这些元素根据对某些判定准则的优化定义了一份特定的解决方案

    • 架构设计(architectural design)能够给出可部署软件系统的大尺度组织分解
    • 机制设计(Mechanistic Design)对对象间的协作具体化
    • 详细设计(detailed design)定义类的结构和并对各个类的内部进行组织
  3. 转化(translation)阶段为设计创建一个可执行的可部署的实现如将UML模型转化成源代码

  4. 测试(testing)要检查转化的结果是否与设计等价并验证具体实现是否满足了分析阶段建立的正确性准则

自动机的事件迁移等内容理解结合实验



MARTE语言的建模思想;

MARTEModeling and Analysis of Real-Time and Embedded systems是UML的一个扩展语言它特别针对实时和嵌入式系统的建模和分析进行了扩展MARTE提供了一组新的建模元素和工具用于描述实时和嵌入式系统的特性和行为如并发时间资源能耗等方面MARTE还为UML提供了一些新的分析方法和工具用于对实时和嵌入式系统进行性能分析可靠性分析功耗分析等

MARTE语言的建模思想主要包括以下几个方面

  1. 面向模型的建模思想

MARTE语言采用基于模型的方法进行系统建模将系统的各个方面都抽象成模型包括功能架构行为时间和资源等每个模型都有其特定的目的和意义并且可以在系统开发的不同阶段使用和分析

  1. 面向实时和嵌入式系统的建模思想

MARTE语言的建模思想是面向实时和嵌入式系统的因此它包括对实时性可靠性安全性资源约束等方面的建模和分析这些方面在实时和嵌入式系统中都是至关重要的因此MARTE语言的建模思想能够帮助开发人员更好地理解和分析系统的实时性能和约束条件

  1. 面向多视图和多层次的建模思想

MARTE语言的建模思想是面向多视图和多层次的它允许开发人员从不同的视角和层次来描述和分析系统这些视图和层次包括功能架构行为时间和资源等可以帮助开发人员更好地理解系统的不同方面并且可以在不同的开发阶段进行使用和分析

  1. 面向分析和仿真的建模思想

MARTE语言的建模思想是面向分析和仿真的它提供了一系列的分析和仿真工具可以对系统的实时性能和资源利用率等方面进行分析和评估这些工具可以帮助开发人员在系统设计的早期阶段发现和解决问题并且可以提高系统的可靠性和效率

总之MARTE语言的建模思想是面向模型实时和嵌入式系统多视图和多层次分析和仿真等方面的它提供了一种统一的框架可以帮助开发人员更好地进行系统级别的建模和分析

MARTE中什么是refinement

在MARTE中Refinement细化指的是从高层次的抽象模型到低层次的更具体的模型的转换过程在这个过程中高层次的抽象模型被逐步细化成更具体更详细的模型以便更好地描述系统的细节和行为

MARTE中的Refinement可以分为两个方面模型细化和执行细化模型细化是指将高层次的模型转换为低层次的模型以描述系统的结构和行为执行细化是指将高层次的执行模型转换为低层次的执行模型以支持系统的实时性和可靠性

在MARTE中Refinement是一个重要的概念它使得开发人员可以在不同的抽象层次上进行建模和分析从而更好地理解和描述系统的行为和性能通过Refinement开发人员可以逐步深入系统的细节从而更好地理解和优化系统的性能和可靠性

SysML与UML语言的区别从语义语法和所面向建模场景方面进行区分

SysML和UML都是基于图形化建模的语言但它们在语义语法和所面向建模场景方面存在一些区别

  1. 语义方面的区别

SysML是一种专门用于系统工程的建模语言它强调对系统的结构行为和性能等方面进行建模SysML包括对系统的需求结构行为和资源等方面的建模而且可以支持多个视图和层次的建模

UML则是一种通用的建模语言主要用于软件系统的建模和设计UML包括对软件系统的需求结构行为交互和状态等方面的建模而且也可以支持多个视图和层次的建模

  1. 语法方面的区别

SysML是基于UML2.0的扩展它保留了UML的核心概念和语法同时还添加了一些新的元素和语法规则SysML中包括了UML的类图活动图状态图序列图等多种图形化表示法并增加了需求图块定义图行为图等特定于系统工程的图

  1. 面向建模场景方面的区别

SysML主要面向系统工程领域支持对系统需求结构行为资源等多个方面进行建模以及进行系统级别的建模和分析SysML常用于建模和设计复杂的物理系统航空航天系统汽车系统医疗设备等

UML则主要面向软件工程领域支持对软件系统的需求结构行为交互和状态等多个方面进行建模以及进行软件级别的建模和分析UML常用于建模和设计软件系统网络应用系统数据库系统等

总之SysML和UML在语义语法和所面向建模场景方面存在一些区别SysML主要面向系统工程领域强调对系统的结构行为和性能等方面进行建模而UML则主要面向软件工程领域强调对软件系统的需求结构行为交互和状态等方面进行建模

描述一下什么是模型驱动开发(MDD)

模型驱动开发Model-Driven DevelopmentMDD是一种软件开发方法它将建模作为主要活动并通过自动生成代码的方式来实现软件开发MDD是基于模型的软件开发方法之一它提供了一种利用模型来描述软件系统的方法从而可以帮助开发人员更好地理解和实现软件系统

在MDD中模型是软件系统的基础它是对系统的结构行为和功能等方面的抽象描述模型通常使用图形化表示法如UMLSysML等来描述包括用例图类图活动图状态图等这些图形化表示法可以帮助开发人员更好地理解和描述软件系统的各个方面

在MDD中模型不仅仅是一个文档或图形而且它是软件开发的中心所有的代码都是通过模型自动生成的开发人员在模型中定义系统的结构行为和功能等方面的信息然后使用模型转换器将模型转换为代码这些代码可以是各种编程语言如JavaC++Python等的代码也可以是配置文件数据库脚本等

MDD的优点包括

  1. 提高开发效率通过模型自动生成代码可以减少手工编写代码的时间和精力从而提高开发效率

  2. 提高代码质量由于代码是通过模型自动生成的因此可以减少代码错误和缺陷从而提高代码质量

  3. 改善软件维护性由于模型是对系统的抽象描述因此可以更好地理解和维护软件系统

总之模型驱动开发是一种基于模型的软件开发方法它将模型作为软件开发的中心通过自动生成代码的方式来实现软件开发从而提高开发效率代码质量和软件维护性

自动机的事件状态迁移等内容理解

自动机是一种用于描述计算过程或系统行为的数学模型它由一组状态和一组转移函数组成每个状态代表系统或计算过程的一种状态每个转移函数描述了从一种状态到另一种状态的转移过程

自动机可以分为两种类型有限自动机和无限自动机有限自动机是指状态有限的自动机而无限自动机则是状态无限的自动机有限自动机通常用于描述具有固定数量的输入和输出的系统而无限自动机通常用于描述具有无限数量输入和输出的系统例如程序或操作系统

在自动机中事件是指输入到系统的信号或数据状态迁移是指自动机从一种状态到另一种状态的转移过程当自动机接收到一个事件时它会根据当前状态和转移函数计算出下一个状态并根据该状态执行相应的操作或输出

在实际应用中自动机常用于模拟计算机程序控制系统通信协议等它们也可以用于验证系统的正确性和安全性以及用于构建人工智能系统和机器学习模型

顺序图的偏序

顺序图是一种UML图用于描述对象之间的交互关系和消息传递顺序在顺序图中对象之间的交互被表示为一系列的消息传递每个消息传递都有一个发送者和一个接收者

顺序图中的偏序是指消息传递之间的先后顺序如果两个消息传递之间存在偏序关系意味着其中一个消息传递必须在另一个消息传递之前发生这种偏序关系可以通过在顺序图中使用垂直的虚线来表示

例如假设有两个对象A和B之间的交互其中A先发送了一条消息给B然后B再发送一条消息给A在顺序图中可以使用两个垂直的虚线表示这两个消息传递之间的偏序关系具体来说第一个虚线表示A发送消息的时间第二个虚线表示B发送消息的时间这种偏序关系可以帮助开发人员更好地理解和描述对象之间的交互顺序从而更好地设计和实现系统

状态迁移时, 动作执行的顺序

在状态迁移时动作的执行顺序可以分为两种情况

  1. 动作在状态迁移之前执行这种情况下动作会在状态迁移之前执行然后才进行状态的迁移这种情况通常称为”动作优先”它意味着动作的执行对状态的迁移是有影响的例如在状态迁移之前可能需要对一些变量进行计算或更新这些计算或更新的结果可能会影响状态的迁移

  2. 动作在状态迁移之后执行这种情况下动作会在状态迁移之后执行这种情况通常称为”状态优先”它意味着状态的迁移对动作的执行是有影响的例如在状态迁移之后可能需要执行一些操作来处理新状态的变化这些操作可能会影响系统的行为或输出

UML profile 用处, 和UML区别

UML Profile是一种UML扩展机制它允许用户自定义UML元素和图形符号以满足特定领域的需求或特定的开发过程UML Profile提供了一种机制使得用户可以在UML中创建新的元素关系图形符号限制和约束等从而扩展UML的能力和适应性UML Profile可以用于各种领域如嵌入式系统Web应用企业架构等

与UML的区别在于UML是一种通用的建模语言它提供了一套标准化的符号和图形表示方法用于描述软件系统的结构和行为UML包括一些基本元素如类对象接口关系活动用例等以及一些图形符号如类图活动图时序图等UML的目标是提供一种通用的建模语言以便开发人员和系统工程师能够更好地理解和描述软件系统的结构和行为

UML Profile则是在UML基础上进行扩展它允许用户自定义UML元素和图形符号以扩展UML的能力和适应性UML Profile提供了一种机制使得用户可以在UML中创建新的元素关系图形符号限制和约束等从而满足特定领域的需求或特定的开发过程因此UML Profile可以看作是UML的一个扩展它提供了更多的建模元素和自定义能力以适应不同的建模需求

描述系统的执行过程 各次实验的理解(三选二)考察查询语言
实验ATM中死锁, 危害