系统建模复习重点
系统建模复习
概论
考点
2021春:这两天复习可以看看AADL建模语言和MARTE中时间模型两个内容。
概念定义:CPS,及时性,并发性,可预测性,准确性和鲁棒性
调度方法,RM,EDF
AADL
状态图的状态迁移执行过程
活动图和状态图的区别
UML1.x中的活动图在语义上等同于状态图,并且共享一个公共的元模型。在UML2.0中,活动图被赋予了独立于状态图的自己的语义基础。在UML2.0中,活动图有多个级别:基本的、中间的、完整的,等等。
深层和浅层历史状态
浅历史状态只记录最外层组合状态,深历史状态可以记录任意深度的组合状态历史记录,历史状态指示器可以有进入的迁移,但没有离开的迁移
序列图确定部分有序的内容
跨多个处理器和物理位置分配对象会出现什么问题
UML profile 优点
用以扩展uml语言,用于将附加信息附加到辅助用途所需的模型
Model Evolution: Refinement(考refinement定义)
ropes 快速面向对象的过程嵌入式系统
时间自动机
给出图例,判断验证条件是否成立
CPS
定义
Cyber-Physical Systems(信息物理融合系统): systems in which the cyber and physical systems are tightly integrated at all scales and levels ( 网络和物理系统紧密结合在一起的系统)
Cyber(信息技术):computation, communication, and control that are discrete, logical, and switched (3C技术(计算,通信,控制),并且离散,逻辑,交换的系统)
Physical(物理系统): natural and human-made systems governed by the laws of physics and operating in continuous time (自然的和人造的系统受物理定律的支配,并持续运行)
特点
不是桌面计算;不是传统的,事后嵌入式/实时系统;不是今天的传感器网络。其研究目标是物理和网络(计算,通信,控制)设计深度集成。
应用
- 防御系统
- 远程物理操作(如:远程医疗,远程操控)
模型驱动建模
Model-Drive Development
Model Driven Architecture
定义
modeling(建模):A reduced/abstract representation of some system that highlights theproperties of interest from a given point of view. The point of view defines concern and scope of the model. (是指某个系统的简化/抽象表示,从给定的角度突出显示感兴趣的属性。这个观点定义了模型的关注和范围。)
模型
-
计算独立(无关)模型(CIM,Computation-Independent Model)
描述系统的需求和将在其中使用系统的业务上下文。此模型通常描述系统将用于做什么,而不描述如何实现系统。CIM 通常用业务语言或领域特定语言来表示。
-
平台独立(无关)模型(PIM,Platform-Independent Model)
描述如何构造系统,而不涉及到用于实现模型的技术。此模型不描述用于为特定平台构建解决方案的机制。PIM 在由特定平台实现时可能是适当的,或者可能适合于多种平台上的实现。
-
平台特定模型 (PSM,Platform-Specific Model)
从特定平台的角度描述解决方案。其中包括如何实现 CIM 和如何在特定平台上完成该实现的细节。
MARTE
Model and Analysis of Real-Time Embedded system
UML
( 统一建模语言, Unified Modeling Language) 用于创建PIM和PSM ,是一种用于软件密集型系统进行可视化、 详述、 构造和文档化的建模语言。
结构
图之间的关系
UML2.0(Unified Modeling Language)提出Profile提供了一个通用的扩展机制,用于对特定领域或平台自定义相关的UML模型。
元模型( metamodel) : 元模型是关于模型的模型。
AADL
Architecture Analysis and Design Language
AADL涉及系统全生命周期的各个阶段, AADL的发展及研究与传统软件工程、软件体系结构发展类似, 首先关注全生命周期的设计阶段, 然后过渡到设计之后的实现、 后开发阶段, 最后再关注设计之前的需求分析阶段, 覆盖全生命周期的整体框架
AADL定义了3类构件:软件构件、 执行平台构件以及系统构件
-
软件构件用于软件体系结构建模,包括数据(data)、线程(thread)、线程组(thread group)、进程(process)、子程序(subprogram)构件;
-
执行平台构件用于硬件体系结构建模,包括处理器(processor)、虚拟处理器(virtual processor)、存储器(memory)、总线(bus)、虚拟总线(virtual bus)、外设(device)构件;
-
系统构件(复合组件)组合所有的构件,层次化地建立系统的体系结构.
安全关键系统与实时系统
**Safety-Critcal Systems and Real-Time Systems **
概念
设计过程(The Design Process)
- 建模(Modeling):建模是通过模型获得对系统更深层次的理解的过程。 模型模拟系统并反映系统的属性。 模型指定了系统的功能。
- 设计(Design):设计是工件的结构化创造过程,它指定了系统如何执行它的功能。
- 分析(Analysis):分析是通过“解剖”获得对系统更深入理解的过程。它规定了一个系统为什么会这么做(或者不能做一个模型所要做的事情)
定义
-
实时系统(Real-Time System):在计算和操作上具有性能最后期限的系统。 实时系统常常被忽略。意味着计算系统存在于一个更大的系统内部,目的是帮助系统实现其整体职责。
-
事件驱动系统(Event-Driven System):其行为主要是对外部事件的特定反应来驱动而不是自发产生的。
-
时间驱动系统驱动(Time-Driven Systems):其行为主要由时间推移或时间的到来驱动。
以上为对外部设备的几种响应方式。
-
时间约束(Timing constraint):对执行时间行为的约束(包括硬实时和软实时)
-
发布时间(Release Time):作业变成为可执行的时间。如果所有的工作在系统开始执行时被释放,那么就认为没有释放时间
-
截止时间(Deadline):工作被要求执行完成的时间。如果截止时间是无限的,那么工作就没有最后期限。绝对截止时间等于发布时间加上相对截止时间
-
响应时间(Response time):作业从发布到执行完成的时间长度
实时系统的描述
-
及时性(timeless):行为的及时性与时间约束有关,如截止时间。最后期限可能很硬或很软。时效性的重要建模问题是建模执行时间,截止时间,到达模式,同步模式和时间源。
-
并发性(concurrency):多个操作顺序链的同时执行。
围绕并发系统执行的问题与此有关:
- 并发线程的调度特性
- 即将到来的事件的到来模式
- 线程必须同步时使用的集合点模式
- 控制对共享资源访问的方法
-
可预测性(predictability)
-
正确性和鲁棒性(correctness and robustness):正确性表明一个系统总是运行正确。鲁棒性表明系统即使在遇到新的情况(不在计划中)下也是可靠的。因此必须警惕死锁,竞争以及其他异常情况
死锁,竞争,与异常情况
死锁产生的条件:
- 系统资源不足
- 任务推进不合理
- 资源分配不当等
死锁的四个必要条件:
- 互斥。任务要求对共享资源进行独占控制,即一个资源每次只能被一个进程使用
- 占有且等待。任务在等待其他资源被放弃的同时保持资源,即一个进程因请求资源而阻塞时,对已获得的资源保持不放
- 不可剥夺性。任务已获得的资源,在未使用完之前,不能强行剥夺
- 循环等待。若干进程之间形成一种头尾相接的循环等待资源关系
处理死锁的基本方法:
- 死锁预防:破坏死锁的必要条件
- 死锁避免:允许前三个必要条件,但采取措施避免形成循环等待(如,银行家算法)
- 死锁检查和死锁解除:系统检查是否存在死锁,若存在,则通过撤销部分进程等方法回收资源,解除死锁
否定条件4的方法:
- 信号量机制(如,哲学家进餐问题)
- 使用定时会合(timed rendezvous)
实时系统任务调度(Real-time workload)
概念
实时工作量
- 工作(Job,工作单位):计算,文件读取,消息传输等
- 属性(Attributes):推进需要的资源,时间参数
实时任务
-
任务:从读取输入数据和内部状态开始,结束生成结果并更新内部状态。在调用点没有内部状态的任务称为无状态任务,否则称为有状态任务。
-
对于周期任务(p,e),任务周期性的重复。
-
周期 p = inter - release time;p>0
-
执行时间 e = maximum execution time (0 < e < p)
-
利用率 U = e/p
-
-
截止时间:硬截止时间 VS 软截止时间
- 硬截止时间:如果错过了最后期限,可能会造成灾难性的或非常严重的后果。因此验证是至关重要的:即使在最坏的情况下,系统运行是否能够满足所有的截止时间。确定性保证
- 软截止时间:理想情况下,截止时间应该达到最高性能。 在最后期限未到的情况下,性能会下降。属于尽最大努力保证实时服务一类
RM调度
EDF调度
提高内核实时性的方法:任务互斥、同步
- 资源有限等待:任务没能获得需要的资源会被阻塞。如果资源不是任务继续运行必备的,任务可选择有限等待该资源
- 优先级反转问题解决:抢占式任务调度中的资源竞争,采用优先级继承协议消除
UML建模
图
用例图(Use case diagrams):描述用户所看到的系统的功能行为,用例图从用户的角度来表示系统的功能(静态视图)
类图(Class diagrams):描述系统的静态结构(对象,属性,联系),类图表示系统的结构
序列图(Sequence diagrams):描述系统对象之间的动态行为,序列图将系统的行为表示为不同对象之间的消息交互
状态图(State diagrams):描述单个对象的动态行为,用有趣的动态行为来表示单个对象的行为
状态图
特点:
可以在状态图上捕获行为的对象被认为是被动的。这样一个对象的行为空间被分解为存在的不相交和不相交的条件,称为状态。 转换是对导致状态改变的事件的响应。该对象可以在接收到事件(尽管不进行转换)或者进行转换时执行动作,进入或退出状态。
事件与迁移
事件
- SignalEvent:与信号相关的事件。
Signal是一个异步通信的规范,所以SignalEvent是一个与异步接收信号相关的事件。
- CallEvent:与调用相关联的事件。
Call是一个同步通信的规范,所以CallEvent允许一个对象直接调用其中一个方法来影响另一个对象的状态。
-
TimeEvent:与时间流逝相关的事件,通常用tm(
)或after( )表示。 几乎所有的TimeEvents都是相对的时间。也就是说,它们指定事件将在对象处于指定状态至少
时间单位后发生。 如果对象在超时之前离开该状态,则与该持续时间关联的逻辑计时器将消失,而不会创建超时事件
-
ChangeEvent:与属性的值更改关联的事件。
它很少用在软件应用程序中。然而,当一个状态属性被内存映射到一个硬件上时,它可以用来指示内存地址改变的值
转换(transition)
转换是从起始状态开始并在目标状态结束的弧。
转换通常具有命名的事件触发器,可选地随后是执行转换时执行的动作(即可执行语句或操作)。
过渡事件签名的格式为:
event-name '(' parameter-list ')' '[' guard-expression ']' '/' action-list
注:事件可以指定形式参数列表,这意味着事件可以携带实际的参数。
digit(key: keyType)/ show(key)
约束(Guard)和行为执行顺序(Execution Order)
guard表达式是一个布尔表达式,包含在方括号中,必须计算为true或false。
行动的执行顺序很重要,基本规则是退出->转换->进入(exit-transition-entry)。
也就是说,先行状态的退出动作首先执行,然后是转换动作,随后是后续状态的进入动作。
注:Guard的原意为“保卫,守卫”,根据实际意义暂译为“约束”,不一定准确。
时间自动机
时间自动机是实时系统建模与验证的理论。 具有相同目的的其他形式的例子还有时间Petri网(timed Petri Nets),时间过程代数(timed process algebras)和实时逻辑(real time logics)
公平地说,以时间自动机作为输入语言的核心开发的几种模型检查器是理论应用和发展的动力。
时间自动机本质上是一个用实值变量(时间系统)进行扩展的有限自动机(包含一组有限节点和一组有限带有标记的边的图)
- 变量(variables)对系统中的逻辑时钟进行建模,在系统启动时用零初始化,然后以相同的速率同步增加
- 时钟约束(clock constraints),即边上用于限制自动机行为的约束(Guard)
- 当时钟值满足在边上标记约束(Guard)时,边表示的转换(transition)就可以发生。 当进行转换时,时钟可能被重置为零。
时间自动机工具UPPAAL
- 同步通信(synchronous)通过使用输入输出行为的握手同步(hand-shake synchronization)来实现
- 异步通信(asynchronous)使用共享变量(shared variables)来实现
为了对握手同步进行建模,字母 ∑ 定义为包括:输入动作 a?,输出动作a!,内部行为 ‘T’
时间自动机示例:铁路交叉口控制系统的建模与验证
UML 预定义包
一个UML预定义包是一个扩充具有补充信息的UML模型的工具。 这种机制可以以两种方式使用:
- 用以扩展UML语言。
例如,UML没有提供明确的信号量概念,但可以通过重载现有的UML概念(如Class)来添加它。
结果是一种特殊的类,它除了标准的类语义之外,还包含信号量语义。
- 可用于将附加信息附加到辅助用途(如模型分析或代码生成)所需的模型。
例如,可以使用这种注释来指定类的某些操作的最差情况执行时间,这可能需要用于分析应用程序的时序特性。
TimedObservation是TimedInstantObservation和TimedDurationObservation的抽象超类。
TimedInstantObservation表示与事件发生(eocc属性)相关联并且在给定时钟上观察到的时刻。
UML预定义包的优点:
- 语言基础设施的再利用(工具,规格)
- 需要较少的语言设计技能
- 允许扩展构造型采用新(图形)符号
- 配置文件可以定义模型视点
缺点:受UML元模型的约束
ROPES
在ROPES模型中确定的阶段被组织成一个迭代的生命周期。每个原型通常实现一个或多个用例,按风险
进行组织(风险更大的优先)。这允许对风险进行早期探索,并最小化由于这些风险而必须修改的模型
方面的数量。
为了探索这些风险,必须开发可执行的原型,因为只能测试可执行的东西。因此,使这一过程快速和高
效的关键启用技术是将模型自动转换为可执行代码。这将完成迭代所需的时间从几周或几个月减少到几
小时或几天。
ROPES支持精细(elaborative)和转化(translative)的发展微周期,但倾向于后者(即转化)。
设计阶段
架构设计(Architectural design)详细介绍了最大的软件结构,如子系统,软件包和任务
机械设计(Mechanistic design)包括共同努力实现共同目标的类
详细设计(Detailed design)指定了各个类内部的原始数据结构和算法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」