CPS系统 ​

什么是CPS系统?​

CPS全称Cyber-Physical Systems,即信息物理融合系

CPS系统的特征​

系统建模复习_状态图

系统建模复习_用例_02

由新需求和应用驱动的信息物理耦合每个物理组件中的信息能力

系统建模复习_系统分析_03

大规模有线/无线网

系统建模复习_状态图_04

系统建模复习_状态图_05

网络在多个极端尺度上建立系统之系统

系统建模复习_状态图_06

系统建模复习_用例_07

个人理解为建立一个系统,这个系统包含的第一公民是更小的系统新的时空限制

系统建模复习_用例_08

多样的时空复杂

系统建模复习_系统分析_09

系统建模复习_系统分析_10

动态地再组织,再配置非常规计算与物理基

系统建模复习_用例_11

通信/计算/控制之间的新型交

系统建模复习_用例_12

系统建模复习_系统分析_13

高度自动化,在所有维度上的控制回路必须是闭环的控制回路中,存在大量不熟悉技术的用户

系统建模复习_系统分析_14

无处不在的安全与隐私要

系统建模复习_系统分析_15

在一些情况下,操作必须是可靠的,可验证

系统建模复习_系统分析_16

系统建模复习_系统分析_17

CPS不是什么?不是桌面计算,传统的事后嵌入式/实时系统和传感器网络。CPS研究计划的目标:

系统建模复习_用例_18

系统建模复习_系统分析_19

一门面向未来工程和监控/控制物理系统的新科学(以10-20年的视角展望物理和信息技术(计算、通信、控制)设计深度融合

系统建模复习_用例_20

× CPS应用领域( 不在review.ppt)

系统建模复习_系统分析_21

医疗健康 (医疗用具,健康管理系统)

系统建模复习_用例_22

防御系

系统建模复习_用例_23

远程物理操作 (远程医疗)

系统建模复习_系统分析_24

交通运输 (汽车电子,航空与空域管理,铁路系统)

系统建模复习_用例_25

过程控制 (大规模基建,物理基础设施的监控与控制,发电与配电)



MDA与模型驱动开发 ​

系统建模复习_状态图_26

What is MDA?(review.ppt内容)

Model Driven Architecture® (MDA®) is an approach to software design, development and implementation spearheaded by the OMG. MDA provides guidelines for structuring software specifications that are expressed as models. MDA separates business and application logic from underlying platform technology

模型驱动架构®MDA®)是由OMG牵头的软件设计、开发和实施方法MDA提供了构建以模型表示的软件规范的指南。MDA将业务和应用程序逻辑与底层平台技术分离

总结:模型驱动架构(MDA)是软件开发流程的方

[from www.omg.org]

系统建模复习_状态图_27

何为模型

它是某些系统的简化/抽象表示,从给定的角度突出感兴趣的属性

这个观点(即上文提及的给定的角度)定义了模型的关注点和关注范围


系统层次图:


系统建模复习_状态图_28



系统建模复习_状态图_29

MDA的三种模

系统建模复习_系统分析_30

计算独立模型(CIM ,Coputation-Independent Model

描述系统的需求和将在其中使用系统的业务上下文此模型通常描述系统将用于做什么,而不描述如何实现系统。CIM 通常用业务语言或领域特定语言来表示

系统建模复习_用例_31

平台独立模型 PIM,Platform-Idenpendent Model

描述如何构造系统,而不涉及到用于实现模型的技术。此模型不描述用于为特定平台构建解决方案的机制PIM 在由特定平台实现时可能是适当的,或者可能适合于多种平台上的实现。

系统建模复习_系统分析_32

平台特定模型 PSM,Platform-Specific Model

从特定平台的角度描述解决方案。其中包括如何实现 CIM 和如何在特定平台上完成该实现的细节。​


这个图描述了开发时,CIM,PIM,PSM三者之间在时间上关


系统建模复习_用例_33


这个图描述了开发时,CIM,PIM,PSM具体做什么,他们之间的层次结构是怎么样


系统建模复习_系统分析_34


系统建模复习_系统分析_35


这个图进一步具体化描述了三者之间的层次关


系统建模复习_状态图_36


安全攸关系统与实时系统 ​


实时系统定义​

在实时系统中,系统的正确性不仅取决于计算的逻辑结果,而且还取决于结果产生的时间


系统建模复习_状态图_37


一些实时系统相关定义​

  1. 时间约束(Timing constraint):对执行时间行为的约束(包括硬实时和软实时
  2. 发布时间(Release Time):作业变成为可执行的时间。如果所有的工作在系统开始执行时被发布,那么就认为没有发布时间
  3. 截止期(Deadline):工作被要求执行完成的时间。如果截止期是无限的,那么工作就没有截止期。绝对截止期等于发布时间加上相对截止期
  4. 响应时间(Response time):作业从发布到执行完成的时间长

三种类型的系统​

系统建模复习_系统分析_38

事件驱动系统(Event-Driven System

系统建模复习_状态图_39

其行为主要是对外部事件的特定反应来驱动而不是自发产生的。时间驱动系统(Time-Driven Systems

其行为主要由时间推移或时间的到来驱动


下图主要为事件驱动和时间驱动的区


系统建模复习_状态图_40





及时性​

(时效性?我不知道怎么翻译,反正是这个意思,你懂就好)

行动的及时性与满足时间限制的动作有关,如截止期时间。截止期可能是硬的,也可能是软的。错过一个硬截止期会构成某种系统故障,因此必须非常小心地确保所有此类操作都能及时执行。及时性的重要建模关注点是对执行时间、截止期、到达模式、同步模式和时间源进行建模


系统建模复习_状态图_41



并发性​

并发是同时执行多个连续的操作链。这些操作链可以在一个处理器(伪并发)或多个处理器(真并发上执行。围绕并发系统执行,必须处理一下问题:

系统建模复习_用例_42

系统建模复习_用例_43

并发线程的调度特性进入事件的到达模

系统建模复习_状态图_44

系统建模复习_用例_45

当进程必须同步时使用的复制模式控制共享资源访问的方法

正确性与鲁棒性​

当一个系统在任何时候都做对的事情时,它就是正确的。这样一个系统在新的(计划外)情况下做对的事情时是健壮,即使在系统的某些部分出现计划外故障的情况下也是如此。必须警惕死锁、竞争条件和其他特殊情况。

死锁​

产生死锁的四个条件​

  1. 互斥,任务要求独占共享资
  2. 占有且等待,当等待其他资源被释放时,任务保留资
  3. 不可剥夺性,任务的资源无法被剥
  4. 循环等待,存在循环等待条


系统建模复习_状态图_46



处理死锁的方法​

系统建模复习_状态图_47

死锁预防:破坏死锁的必要条

系统建模复习_用例_48

死锁避免:允许前三个必要条件,但采取措施避免形成循环等待(如,银行家算法

系统建模复习_用例_49

死锁检查和死锁解除:系统检查是否存在死锁,若存在,则通过撤销部分进程等方法回收资源,解除死锁

否定条件4的方法

系统建模复习_系统分析_50

系统建模复习_系统分析_51

信号量机制(如,哲学家进餐问题)使用定时会合(timed rendezvous

时间自动机 ​

时间自动机是实时系统建模与验证的理论。时间自动机本质上是一个用实值变量(时间系统)进行扩展的有限自动机(包含一组有限节点和一组有限带有标记的边的图)

UPPAAL分为三部分:编辑器,模拟器,验证

其中编辑器用于设计模型,模拟器用于模拟时间自动机的进行,验证器用于验证模型是否符合特定的性

时间自动机的定义与元素构成​

系统建模复习_系统分析_52

变量(variables对系统中的逻辑时钟进行建模,在系统启动时用零初始化,然后以相同的速率同步增加

系统建模复习_状态图_53

时钟约束(clock constraints),即边上用于限制自动机行为的约束Guard

系统建模复习_用例_54

当时钟值满足在边上标记约束(Guard)时,边表示的转换(transition)就可以发生。 当进行转换时,时钟可能被重置为零。

系统建模复习_状态图_55




使用UPPAAL描述时间自动机​

模拟器与编辑


系统建模复习_系统分析_56


系统建模复习_用例_57



系统建模复习_系统分析_58


系统建模复习_系统分析_59



系统建模复习_系统分析_60


系统建模复习_用例_61



系统建模复习_状态图_62



编辑器-声明的语法


系统建模复习_用例_63



验证器-性质验证的语法todo

时间自动机的形式化表达​

(并不想翻译这个,数学什么的最烦了啦


系统建模复习_状态图_64




系统建模复习_状态图_65



几个时间自动机的例子


系统建模复习_用例_66





系统建模复习_用例_67


系统建模复习_状态图_68




系统建模复习_用例_69


系统建模复习_用例_70




实时系统 ​

实时系统的调度算法

(后边会讲这两个算法)

固定优先级算法, RMRate Monotonic,单调速率

动态优先级算法,如EDF,(Earliest Deadline First,最早截止期优先

实时操作系统的特性​

实时操作系统内核的实时性能定量指标包

系统建模复习_系统分析_71

系统建模复习_状态图_72

任务上下文切换时间:中断延迟,响应,恢复时间,任务响应时间最大中断禁止时间:反映内核对外界停止中断响应的最长时间

系统建模复习_系统分析_73

任务上下文切换时间:系统中最频繁发生的动作,影响整个系统性

包括:保存当前任务上下文、选择新任务,及恢复新任务上下文三个阶

一些实时系统的概念​

这里的Job,Work,Task含义是不同

系统建模复习_用例_74

系统建模复习_状态图_75

Job( 我翻译成作业),工作(work)的单位比方说计算,文件读取,消息传输

系统建模复习_状态图_76

系统建模复习_状态图_77

系统建模复习_状态图_78

执行所需的资源时间参数


系统建模复习_状态图_79


任务(Task):它从读取输入数据及其内部状态开始,以生成结果和更新内部状态结束

系统建模复习_系统分析_80

系统建模复习_用例_81

(stateless)无状态任务:调用点上没有内部状

系统建模复习_系统分析_82

(statefull)有状态任务:有内部状

系统建模复习_系统分析_83

Task就是一系列类似的jobs

系统建模复习_用例_84

定期任务是这样定义的: Periodic task(p,e)

系统建模复习_用例_85

(Period)这个工作每p单位时间内都要执

系统建模复习_系统分析_86

系统建模复习_状态图_87

(Execution time)e是在p时间段内,这个任务的最大执行时间(Utilization)利用率U= e/p


系统建模复习_用例_88


截止期(Deadline):软实时与硬实时​

硬截止期(Hard deadline,硬实时)​

超时则会发生灾难性和非常严重的后果 (记住它)​

系统建模复习_用例_89

系统建模复习_用例_90

验证是至关重要的:即使是在最坏的情况下,所有的最后期限都能得到满足吗?确定性的保证

软截止期(Soft deadline,软实时)​

理想情况下,截止期前发挥最大性能。超时则性能下降。​

系统建模复习_用例_91

尽可能地通过各类方法和统计去保

可调度性​

指示实时系统(一组实时任务)是否能在截止期前完成任务的属性

实时调度​

系统建模复习_状态图_92

系统建模复习_系统分析_93

决定实时任务的执行序列静态优先级调度

系统建模复习_状态图_94

动态优先级调

RM (Rate Monotonic)调度算法​

中文名:单调速率调度算法​

系统建模复习_用例_95

最佳静态优先级调度算

系统建模复习_系统分析_96

系统建模复习_状态图_97

根据周期(Period)分配优先级周期越短,优先级越高

系统建模复习_系统分析_98

每次执行最段周期的任

系统建模复习_用例_99



系统建模复习_状态图_100

系统建模复习_状态图_101




该算法的几个限制:第三句自己理解

The original Rate Monotonic approach had several restrictions:


  1. all tasks are independent of each other(e.g. they do not interact)
  2. alltasksareperiodic
no task can block waiting for an external event.​
  1. all tasks share a common release time(caled the critical instant)
  2. all tasks have a deadline equal to their period.

最初的速率单调法有几个限制

  1. 所有任务相互独立(例如,它们不相互作用
  2. 所有任务都是周期性
任何任务都不能阻止等待外部事件。​
  1. 所有任务共享一个共同的发布时间(按关键时刻计算
  2. 所有任务的截止期都与任务周期相等
  1. SignalEvent:信号事信号异步通信的规范,信号不知道什么时候来,当信号来的时候,将会作出某个动作。(相当于软件层面上的中断)
  2. CallEvent:调用事调用是同步通信的规
  3. TimeEvent:定时事
  4. ChangeEvent:变化事


响应时间​

这里不知道是所有任务执行完的时间还是任务3的响应时间,猜测应该是单个任务


系统建模复习_系统分析_102


RM算法的利用率绑定(Utilization Bound)​

借由该性质,可以判断一系列实时任务是否具有可调度


系统建模复习_状态图_103



EDF(Earliest Deadline First)调度算法​

中文名:最早截止期优

系统建模复习_状态图_104

截止期越短,优先级越

系统建模复习_系统分析_105

每次选择最早截止期的任务进行调

系统建模复习_系统分析_106



系统建模复习_系统分析_107

系统建模复习_用例_108




这句话应该是说EDF可以调度的任务集


系统建模复习_用例_109


实时操作系统特点​

提高内核实时性的方法: 任务互斥、同步​

系统建模复习_用例_110

资源有限等

任务没能获得需要的资源会被阻塞。如果资源不是任务继续运行必备的,任务可选择有限等待该资源。

系统建模复习_系统分析_111

优先级反

什么是优先级反转呢


系统建模复习_系统分析_112


解决方法


系统建模复习_系统分析_113

系统建模复习_系统分析_114

优先级继承协议(课程只教了这个)低优先级任务继承高优先级的优先

多任务内核应允许动态改变任务的优先级以避免发生优先级反转现象 。为防止发生优先级反转,核能自动变换任务的优先级,这叫做优先级继承(Priority inheritance)

系统建模复习_状态图_115

(不在复习范围内)优先权极

任务进入临界区时,提升其优先级至最高,退出临界区后,优先权恢复。使得任务可以尽快退出临界区。

ROPES ​

前言说明​

注意,本节基本上是翻译其他ppt的内

其主要介绍ROPES的开发流程,以及每个流程中具体的步

每个流程主要分这几部分讲述:是什么,元模型实体,Artifact,活

系统建模复习_系统分析_116

是什么主要讲述这部分主要干什

系统建模复习_用例_117

系统建模复习_状态图_118

元模型实体主要讲述了它用的元模型内容是啥,其实就是构成这部分流程的用到的模型是什么Arrifact我不知道怎么翻译,它是指每个流程中,会用到的东西,比方说,需求,用例场景,类图等等

系统建模复习_状态图_119

活动主要讲这部分流程中,要做什

系统建模复习_状态图_120

流程主要是分析-设计-实现-测试这四个部

元模型​

参考链接:http://blog.sina.com.cn/s/blog_8077b6d901012iyf.html 1 什么是元模型

首先我们知道,软件系统的开发过程中有很多种模型,这些模型往往有相似的地方,比方说活动图和状态图。

元模型定义了描述某一类模型的规范,具体来说就是组成模型的元素和元素之间的关系


系统建模复习_状态图_121

系统建模复习_用例_122




系统建模复习_状态图_123



ROPES: Rapid Object-Oriented Process Embedded System

快速面向对象过程嵌入式系

开发过程的步骤​

分析(Analysis)->设计(Design)->转化(Translation)->测试(Testing)每个阶段都允许关注同一系统的不同方面。

分析阶段进一步划分为:需求分析,系统分析,对象分析。设计阶段进一步划分为:架构设计,机制设计,详细设

×需求分析-活动(指如何进行需求分析)​

PS:下面讨论会用到用例图和序列图,请注意,用例和用例图不是一个概念用例包含了用例图,状态图,外部事件列表,上下文图等​

系统建模复习_状态图_124

需求分析步

系统建模复习_状态图_125


系统建模复习_用例_126

系统建模复习_状态图_127

确定用例与相关的参与者用以下关系分解用例

系统建模复习_系统分析_128

泛化generalization

系统建模复习_用例_129

系统建模复习_状态图_130

使用(包含)(uses (or includes) 拓展(extends

系统建模复习_系统分析_131

识别并描述影响系统的外部事

系统建模复习_用例_132

系统建模复习_状态图_133

定义可捕获系统动态行为的行为场景确定所需的约束

系统建模复习_状态图_134

系统建模复习_系统分析_135

与其他系统进行交互所需要的接口性能约束

系统建模复习_系统分析_136

大多数系统由三种类型的用例构成

系统建模复习_用例_137

主要用例:系统外部可见且明显的功

系统建模复习_状态图_138

辅助用例(次要用例):不太常见,但仍可以识别出重要的功

系统建模复习_用例_139

安全相关用例:这些用例存在于除了正常功能外,系统还充当另一个系统的安全监视器或启用器时

系统建模复习_用例_140

一旦用例被定义了,则场景(Senarios可以被更加详细地进行检查。场景是用例的实例化。


系统建模复习_状态图_141


PS:下面是讨论的其实是序列图​


系统建模复习_状态图_142


系统建模复习_状态图_143

在需求分析期间,还可以识别与系统及其属性相关的事件。此分析包括参与者发送到系统的消息和事件,以及系统对这些消息的响应。在此级层次上的每个消息的性能属性包括以下内容:

系统建模复习_系统分析_144

参与者

系统建模复习_用例_145

消息发送

系统建模复习_系统分析_146

做出反应的接收

系统建模复习_系统分析_147

到达模式(周期性或突发性):周期性就是周期地来,突发性就是不知道什么时候

系统建模复习_用例_148

消息的到达时

系统建模复习_状态图_149

周期消息的周期和抖

系统建模复习_用例_150

系统建模复习_用例_151

突发消息的最小到达间隔或突发长度消息响应特性

系统建模复习_用例_152

为硬截止期消息设定的截止

系统建模复习_系统分析_153

系统建模复习_系统分析_154

为软截止期消息设定的平均响应时间消息状态信息

系统建模复习_状态图_155

系统建模复习_系统分析_156

该消息的先决条件不变量通信协议

系统建模复习_用例_157

消息数

系统建模复习_系统分析_158

响应的后条件不变

×需求分析-所用的元模型实体​


系统建模复习_系统分析_159


需求分析中,用到两种不同的元素:上下文元素和行为元素上下文元素定义了以下内容

系统建模复习_状态图_160

系统建模复习_状态图_161

参与者(存在于系统范围之外的对象

系统建模复习_用例_162

系统建模复习_系统分析_163

系统对象用例

系统建模复习_状态图_164

用例关

系统建模复习_状态图_165

系统建模复习_系统分析_166

外部消息(包括事件)危险

系统建模复习_状态图_167

系统建模复习_状态图_168

行为元素包含了以下内容约束

系统建模复习_用例_169

系统建模复习_状态图_170

性能要求错容时

系统建模复习_系统分析_171

状态

系统建模复习_用例_172

系统建模复习_系统分析_173

系统建模复习_系统分析_174

转移边(transition,直接翻译是转移,其实就是状态之间的有向边场景(scenario

系统建模复习_状态图_175

交互协议(在参与者和系统交互时用到

× 需求分析-Artifacts​

系统建模复习_状态图_176

工件Artifact:

系统建模复习_状态图_177

其定义是这样的

An artifact is one of many kinds of tangible by-products produced during the development of software. Some artifacts (e.g., use cases, class diagrams, and other Unified Modeling Language (UML) models, requirements and design documents) help describe the function, architecture, and design of software. Other artifacts are concerned with the process of development itself—such as project plans, business cases, and risk assessments.

下面是各类工件的介


系统建模复习_系统分析_178


系统建模复习_用例_179



×系统分析​

系统分析是什么

系统分析是大型复杂实时系统的一个重要阶段,如航空航天和汽车应用的系统。系统分析通常会详细阐述关键算法,并将需求划分为电子、机械和软件组件。通常,行为建模工具,如状态图,被用来构建可执行模型和探索系统动力学。

×系统分析-活动(指如何进行系统分析)​

主要流程

系统建模复习_系统分析_180

系统建模复习_用例_181

识别划分出复杂系统的大规模组织单元为组织单元构建和分析复杂的行为规

系统建模复习_用例_182

系统建模复习_用例_183

将系统级的功能划分为三个工程学科: 软件,电子,机械(我翻译成机械,mechanics用可执行模型测试行为(behavior

×系统分析-活动所用的元模型实体​

这图的“Artifact”与前边需求分析的Artifact差不多一个意思,只不过具体指代的东西有所区


系统建模复习_状态图_184



× 系统分析-对象分析-活动​

主要流程

系统建模复习_状态图_185

系统建模复习_状态图_186

应用对象识别策略来发现系统的基本对象抽象对象得到类

系统建模复习_系统分析_187

显化类和对象之间的关系,关联是怎么样

系统建模复习_状态图_188

构建满足用例行为需求的对象协作机制(就是说根据这个用例,对象之间要怎么样进行通信,产生对应的行为)

系统建模复习_用例_189

系统建模复习_用例_190

定义可反应对象的基本行为(可反应对象应该就是说你可以通过某种方法触发这个对象的行为确定对象的基本操作和属性

用场景测试已识别的机制(就是你发现的对象之间的协作机制)​

系统建模复习_用例_191

将端到端性能约束分解为类操作的性能约束(就是要把两个端的,比方说两台机器的,性能约束具体到每个类的操作上,这样才能满足实时性的要求。举例,AB进行通信,RTT需要小于10ms,则具体到类的操作上,可以是send不超过5ms,receive不超过5ms

系统建模复习_系统分析_192



× 系统分析-对象分析-Artifacts​


系统建模复习_用例_193


× 设计

当分析确定系统的逻辑或基本模型时,设计定义了一个在某种意义上是最优的单一特定解决方案。例如,设计将识别以下的东西:

系统建模复习_用例_194

系统建模复习_用例_195

哪些对象是活动的(并发模型)应用程序任务调度策略

系统建模复习_用例_196

系统建模复习_状态图_197

可部署组件内的类和对象的组织处理器间通信介质和协议

系统建模复习_系统分析_198

把软件组件分配到节点(特别是,当跳过了系统分析步骤)

系统建模复习_系统分析_199

系统建模复习_用例_200

关系实现策略(关联应该如何实现?指针?引用?TCP/IP套接字?)状态机的实现模式;

系统建模复习_系统分析_201

系统建模复习_用例_202

多值角色的管理(举例,1-*关联)错误处理策略

系统建模复习_系统分析_203

内存管理策

系统建模复习_用例_204



× 架构设计-活动​

ROPES确定了架构的五个重要视图:子系统和组件、并发性和资源、分配、安全性和可靠性、部署。架构设计的主要活动是

系统建模复习_用例_205

系统建模复习_状态图_206

线程的识别和表征软件组件及其分

系统建模复习_状态图_207

架构设计模式的应用

系统建模复习_系统分析_208

系统建模复习_系统分析_209

全局错误处理安全处理

系统建模复习_状态图_210

× 架构设计-所用的元模型实体​

由于设计模型是对分析模型的一种详细阐述,因此它由相同的一组元素组成。基本元素是协作、类、对象及它们之间的关系

在体系结构设计中,特别关注的是节点、组件和活动类。节点和组件捕获了物理部署体系结构。

活动对象是作为线程的起源的对象。它们构成了UML并发模型的基础。


× 架构设计-Artifacts​


系统建模复习_用例_211


× 机制设计-活动

在机制设计中,通过添加其他对象来细化对象协作的细节

例如,如果一个控制器必须管理许多未决的消息,则可以应用容器-迭代器模式。​

这将导致插入一个容器(例如一个FIFO用来保存消息的队列)和允许操作该容器的迭代器。容器类和迭代器类充当粘合剂,以促进协作的执行。

× 机制设计-Artifacts​



系统建模复习_系统分析_212


× 详细设计

详细设计是设计的最低水平。它涉及到单个类的内部结构和行为的定义

(其实就是打代码



系统建模复习_状态图_213




× 详细设计-活动​

一个典型系统中的大多数类都非常简单,不需要太多详细的设计。然而,即使在此时,也必须定义关联、聚合和组合的实现。

此外,还必须指定操作的前条件不变量和后条件不变量、类的异常处理模型以及属性的精确类型和有效范围。

对于一些小的类集,必须澄清复杂的算法

× 详细设计-活动-Artifacts​


系统建模复习_状态图_214


× 转化Translation:todo

转化阶段将UML模型转换为源代码,并通过编译器转换为可执行系统,如图所示


系统建模复习_用例_215



× 转化(Translation)-活动​

在一个不完整的转化微周期中,转化多少有一部分是自动化的

在详细说明的方法中,开发人员必须将UML模型元素映射到编程语言元素

如果使用了一种面向对象的语言,这个过程是相当机械的,因为所有重要的决策都已经在分析和设计过程中做出了。

如果使用了一种非面向对象的语言,那么编程工作就会更具创造性。在这种情况下,通常要编写一个转化风格指南。本指南定义了程序员用目标语言实现UML模型的转化规则,无论是C语言、Pascal还是汇编语言。

ROPES过程还包括本阶段的单元测试。单元测试是一组白盒测试,以确保被测试的单元实际上是内部正确的,并符合设计的要求。

这通常由单元测试计划和单元测试程序文件组成,并最终形成一个单元测试结果文件。单元测试计划通常围绕类的基本单元进行组织。文档通常是在包或组件级别编写。

× 转化(Translation)-Artifacts​


系统建模复习_系统分析_216



系统建模复习_状态图_217



× 测试

ROPES过程中的测试阶段包括集成测试和有效测试

测试将一组测试向量应用于具有可观察结果的应用程序。测试向量主要基于在需求和对象分析阶段中确定的场景

生成的工件(artifacts)是一个经过测试的应用程序及其显示的缺陷(比方说bug


系统建模复习_用例_218



× 测试-活动​

所有的测试都应根据测试计划来执行,并严格按照测试程序文件来执行

在集成测试中,该系统是通过每次添加一个组件来构建的。在添加新组件的每个点上,都将测试通过添加该组件而创建的接口。

有效测试由测试团队定义,并表示早期完成的需求和系统分析集

有效测试基本上是黑盒子。唯一的例外是对安全方面的测试。这些测试是白盒,因为通常需要进入系统内部并打破(break)一些东西,以确保安全操作被正确执行。

× 测试-Artifacts​


系统建模复习_用例_219





系统建模复习_系统分析_220



× ROPES

ROPES模型中确定的阶段被组织成一个迭代的生命周期。每个原型通常实现一个或多个用例,按风险进行组织(风险更大的优先)。这允许对风险进行早期探索,并最小化由于这些风险而必须修改的模型方面的数量。

为了探索这些风险,必须开发可执行的原型,因为只能测试可执行的东西。因此,使这一过程快速和高效的关键启用技术是将模型自动转换为可执行代码。这将完成迭代所需的时间从几周或几个月减少到几小时或几天。

ROPES支持精细(elaborative)和转化(translative)的发展微周期,但倾向于后者(即转化)

UML建模(强烈建议直接看第三个ppt,复习PPT讲得有点拐弯抹角的,断断续续的) ​


将会讨论到的符号与概念​

以下是手动翻


英文

中文

AdvantagesofObjects

对象的优

StructuredClasses

结构化

Packages

InterfacesandPorts

接口与端

Stereotypes

Components

Architecture

ClassesandObjects

类与对

Constraints

Subsystems

子系

Relations

Tags


对象,类与接口​

系统建模复习_状态图_221

属性(数据Attributes

系统建模复习_状态图_222

系统建模复习_状态图_223

行为(操作或方法)Behavior状态(内存)State

系统建模复习_系统分析_224

身份 Identity

系统建模复习_用例_225

责任(就是该干啥) Responsibility

举例

概览图:​


系统建模复习_系统分析_226


详细举

系统建模复习_状态图_227

系统建模复习_状态图_228

操作与方

系统建模复习_用例_229



概览:动态行为的建模​

系统建模复习_状态图_230

系统建模复习_状态图_231

行为的类型状态图

系统建模复习_状态图_232

系统建模复习_系统分析_233

活动图序列

行为和UML​

QOS约束:非功能性约

QOS约束通常使用一种约束语言进行建模。(OCL)

行为与单一的对象​

系统建模复习_系统分析_234

UML的主要特征是他支持有限状态自动机(FSM)

系统建模复习_用例_235

状态图的两个基本概念:状态与转移(是有向边附带了一些动作和其他属性,类似于下边的箭头


系统建模复习_系统分析_236




系统建模复习_系统分析_237

一个状态是一个不同于其他条件的实例的存在的条件

系统建模复习_状态图_238

不相交的状态被称为 -状态(or-states ,因为对象必须处于其中状态之一

状态图​

这两个图主要说明了状态图是怎么样的,以及状态图进行状态转移时有进入状态和退出状态等动作


系统建模复习_用例_239



系统建模复习_状态图_240



事件​

UML一共包含4种事


到达规定时间就会触发,但是规定时间之内离开了这个状态,就不会触

与属性的值更改关联的事件。它很少用于软件应用程序;但是,当一个状态属性被内存映射到一个硬件上时,它可以用来指示改变了值的内存地址。

Transitions(转换)​

转移(Transition)是从起始状态开始到在目标状态结束的定向弧。转移通常可以指定事件触发器,然后选择在执行转移时执行的操作(即可执行语句或操作)。转移的事件签名的形式为:


系统建模复习_系统分析_241



系统建模复习_用例_242

guard-expression指的是某个布尔表达式,比方说x==0,在判断约束表达式时,约束表达式里面的任何变量,比方说x,此时都是只供该约束的转移使用的,即实现了临界区互斥。

系统建模复习_状态图_243

事件可以指定正式的参数列表,这意味着事件可以携带实际的参数

系统建模复习_用例_244

行为的执行顺序很重要。最基本的规则是 exit-transition-entryexit动作(从某个状态退出执行的动作)-转移(转移边上的动作)-entry(进入某个状态执行的动作)


系统建模复习_状态图_245




系统建模复习_状态图_246


参阅 https://www.cnblogs.com/yxx123/p/5227267.html

要会看懂这个


系统建模复习_用例_247



活动图​

UML1.x中的活动图在语义上等同于状态图,并共享一个共同的元模型。在UML2.0中,活动图的语义基础独立于状态图。在UML2.0中,有多个层次的活动图:基本、中间、完整,等等

交互​

UML中有三种主要的图解形式,用于描述交互场

系统建模复习_用例_248

系统建模复习_系统分析_249

系统建模复习_状态图_250

通信图序列图时序

序列图(Sqeuence Diagram


系统建模复习_系统分析_251



序列图-部分顺


系统建模复习_状态图_252


系统建模复习_系统分析_253



序列图-替代、分支、选项与循


系统建模复习_用例_254


时间图


系统建模复习_系统分析_255


UML预定义包

UML预定义包是一种用于使用补充信息来扩充UML模型的工具。这种机制可以用两种方式来使用:

  1. 它可以用于扩展UML语言。例如,UML不提供显式的信号量概念,但是可以通过重载现有的UML概念来添加它,例如Class。其结果是一种特殊的类,除了标准的类语义外,还包含了语量语义。
  2. 它可用于附加附加信息到辅助目的所需的模型,如模型分析或代码生成。例如,这样的注释可以用于指定类的某个操作的最坏情况执行时间,这可能需要用于分析应用程序的定时特性。


系统建模复习_系统分析_256


实验 ​

实验一:学会使用Rhapsody创建新工

主要内容

在默认组件(Default Component)下创建了一个类,名为Display,然后右击类,选择显示所有属性和操作(即函数)。



系统建模复习_用例_257



接下来为类新增一个Constructor(构造函数),并在构造函数里面写入输出语句,这样这个类被实例化的时候即可输出信息。


系统建模复习_系统分析_258


右击Diskplay,选择属性,在Propetires->ImpIndudes中填入<iostream>,相当于指示包含进去这个文件,以供输出


系统建模复习_用例_259



更改DefaultComponent的名称为Test


系统建模复习_系统分析_260


将配置(Configurations)下的默认配置信息(DefaultConfig)改名Release点击Release并在初始化中选择初始化Display的一个实例


系统建模复习_状态图_261



再次点击Release配置,选择设置,指定好Cygwin作为本项目的编译


系统建模复习_系统分析_262


此时点击生成并运行,则可以生成程序并看到输出(注意一开始,可能目录内并无所需的库,会开始编译这些库,此时需要比较长的时间)


系统建模复习_用例_263



你也可以右击Display类,在Display类中编辑代


系统建模复习_用例_264


设置自建选

选择Tools->Customize->helper点击新建一个命令


系统建模复习_系统分析_265



这样你就可以在Tools选择Explore,直接打开当前代码的文件


系统建模复习_用例_266


实验二:时序图和状态

将实验一创建好的项目,点击另存,并新建一个文件夹进行保存,命名为CountDown然后打开这个项目

接下来点击DisPlay这个类,执行以下操作(基本就是点点点吧,也没啥好说的,当然也可以右

DisPlay然后选择编辑代码

新增属性:int count;此时会自动增加操作:setCountgetCount

新增两个重载的函数print,一个参数为int,一个参数为const char *,代码实现分别输出参数的内容将构造函数的语句改为


系统建模复习_状态图_267



实现函数isDone其内容为


系统建模复习_系统分析_268



(写不下去了,感觉不如直接看指导书,后边直接说重点了)

在类中新建一个状态图,记住,这个状态图是静态的,后边会说到运行时会有动态的状态


系统建模复习_用例_269



tm是延时函


C是伪状态之一的条件连接符然后run一下

看到下


系统建模复习_状态图_270


复制原有的Release配置,改名Debug,把里面改为动


系统建模复习_状态图_271


接下来运行的时候,你就能像调试一样一步一步地运行程序,然后会有DisPlay的实例生成,这个时候你可以右击实例看他的动态状态图


系统建模复习_用例_272



这时你可以看到实例处于哪个状态


系统建模复习_系统分析_273


接下来创建时序图,并增加两条边界系统边界和Display的边界

这样就可以显示系统和Display之间和他们自身的时间序列行


同样,这个时序图也是静态


系统建模复习_用例_274


然后再次点击运行,系统会在你打开静态时序图时,自动地为你创建一个动态时序


系统建模复习_系统分析_275


最后你可以自己增加一个状


系统建模复习_用例_276



实验三:UPPAAL增加状态和写性质验

主要内容就是找出-ATM-银行能否顺畅运行,会不会产生问题,会的话修


系统建模复习_状态图_277


从上到下分别检查三个性质第一个是总钱数恒为一个数第二个是不会出现死锁


第三个是ATM永远大于0(其实应该大于等于0


系统建模复习_用例_278


实验四:UPPAAL写同步机制与互斥机


系统建模复习_状态图_279


性质一表示不可能有两个系统同时进入临界区性质二表示不可能死锁

系统建模复习_系统分析_280