版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SDL语言SDLmechineinputportFSMtimerdataoutputsignalinputsignalreveal/viewsavequeuesavetimeouttimeropdataopSDL语言中的语法构件定义包(Package)代理(Agent)系统图System功能块图Block进程Process通信信道Channel信号Signal状态机动作/迁移过程定时器SDL系统组成System&EnvironmentSDL规格定义了系统(System)对来自环境(Environment)的事件的反应环境通过信号(Signals)向系统发送事件信号是SDL中描述系统和环境间通信的唯一形式SDLSystemENVIRONMENTsignalsSDL的描述和具体系统的关系SDLOverview-Process在SDL中的进程(Process)通常是一个eFMS系统由一系列互相通信的进程(processinstances)实例组成SystemInstanceProcessInstanceProcessInstancesignalssignalssignalsSDLOverview-Blocks当一个系统由大量的进程组成时,没有适当的静态结构会导致无法快速获得系统的整体目标功能块(Blocks)用于在SDL中适当的进行结构化和层次化的定义在进程间使用信号路由(Signalroutes),在功能块间采用信道(channels)来描述通信路径BlockSystem(oranotherblock)ProcessInstanceProcessInstancesignalroutesBlockBlockchannelsBlock在SDL中的通信方式signal:信号时SDL中最基本的通信表达方式由发送代理所发送(Output)由接收代理所接收(Input)channel:信道是代理间通信的路径stimulus:激励是导致代理自发转移的一种事件 SDL概览总结环境,指在SDL规格之外的一切东西如人(用户),其他互联系统等不是SDL中的一个元素SDLsystem是针对真实世界所建立的模型用于定义系统中的各个组成部分采用层次化的方式System
包含blocks,功能块之间用信道连接Block
包含processes,进程间使用信道连接blocks,子功能块Process
含有使用变量和过程所定义的属性使用状态(states)和迁移过程(transitions)所定义的行为Types
可用于定义system系统类,block功能块类和processes进程类1定义包(Package)含义用于定义代理类型、信号、变量、数据、过程等,解决可重用性在SDL的各个层次的代理图和过程图中用来进行SDL的结构化用来使用外部定义和提供给其他系统和包使用,可含有系统类,功能块类,进程类的定义信号定义packageAccessPointLib
AccessPointBlockingAccessPointuseSignalLib
;
LoggingAccessPoint例子:定义包signalopened,closed;/*DoortoController*/signalopen,close;/*ControllertoDoor*/packageSignalLib
signal
eject-card,lock,unlockinput-card,isOpen,isCloseddisplay,keys;signalCode(integer,integer);signalOK,NOK,ERR;signallistvalidity=OK,NOK,ERR;signallistoutp=EjectCard,display;signallistinp=InputCard,keys;/*AccessPoint/*ENV/*Display/*ENV/*AccessPoint/*CentralUnittoENV*/toAccessPoint*/toENV*/toKeyboard*/toCentralUnit*/toAccessPoint*/signalDisable,Enable/*CentralUnitto/*CentralUnittoBlockingAccessPoint*/BlockingAccessPoint*/例子:定义包(续)包的图形语法<packagediagram>::=<framesymbol> contains{<packageheading> {{<packagetextarea>}* {<diagraminpackage>}*}set} [isassociatedwith<packageusearea>]
包的图形语法(续)<packageheading>::=
package[<qualifier>]<packagename>
<packageusearea>::= <textsymbol> contains{<packageuseclause>}*<packageuseclause>::=
use<packageidentifier>包的图形语法(续)<packagetextarea>::=<textsymbol>contains {<agenttypereference> | <packagereference> | <signaldefinition> | <signalreference> | <signallistdefinition> | <remotevariabledefinition> | <datadefinition> | <datatypereference> | <proceduredefinition> | <procedurereference> | <remoteproceduredefinition> | <exceptiondefinition> | <selectdefinition> | <macrodefinition> | <interfacereference>}*包的图形语法(续)<diagraminpackage>::= <packagediagram> | <packagereferencearea> | <typeinagentarea> | <datatypereferencearea> | <signalreferencearea> | <procedurereferencearea> | <interfacereferencearea> | <createlinearea> | <optionarea>
2代理(Agent)一、代理图1、代理是SDL2000中的概念2、代理可以表示为系统、功能块、进程3、图形语法,代理图包括三种类型<agentdiagram>::=<systemdiagram> |<blockdiagram> |<processdiagram>代理图的图形语法<agentdiagramcontent>::= {{<agenttextarea>}* {<interactionarea> |<agentbodyarea>}}set<agentbodyarea>::= <statemachinegrapharea>系统System一个SDL规格所定义的全部内容完整地描述一个真实系统或真实系统中相对独立的一个部分可划分为若干功能块,功能块之间用信道来连接功能块和环境之间用信道来连接不包含任何行为只包含抽象的结构,即blackboxes通常含有信号和数据类型的定义用于定义系统中的内部数据类似头文件定义例子:系统图系统图的图形语法<systemdiagram>::=<framsymbol>contains{<systemheading> <agentdiagramcontent>} [isassociatedwith<packageusearea>]<systemheading>::=
system<systemname>系统图使用注意系统图分页时,系统名不变页码格式系统图包括:包引用域、头部、文本域、交互域系统方框图的边界是与环境的交界定义部分可放在包中再引用例子:系统和包systemAccessControl
1(1)C[(validity)][Code][(validity),Enable,Disable][Code]CBap(100):AccessPointCbap(20):BlockingAccessPointCCentralUnituseSignalLib;useAccessPointLib/AccessPoint,BlockingAccessPoint,LoggingAccessPoint;CLlap(20):LoggingAccessPointC[(validity)][Code]CEedDCEedDCEedD功能块Block可定义子功能块和进程图形语法<blockdiagram>::=<framesymbol> contains{<blockheading> <agentdiagramcontent>} isconnectedto{{<gateondiagram>}* <externalchannelidentifiers>}set [isassociatedwith<packageusearea>]例子:功能块图进程图引用符进程创建,创建符进程名(N1,N2)N1为初始化创建的进程实例数N2为运行时允许创建的进程最多实例数例:Manager(1,1)
Caller(0,1000)
功能块图中使用进程Static&DynamicSDLSDL语法中包括静态构件和动态构建静态构件描述和规定系统的结构功能分解功能间的连接关系功能间通信的信号动态构件描述和规定系统的运行-行为SDL的迁移过程,迁移中的动作通信进程的生命周期,创建、运行和终止StaticSDL在进行系统模型化分析是,用于对系统进行高层的抽象描述一个SDL的系统(system)可以包含一个或多个功能块(block)一个SDL的功能块(block)可以包含进程和功能块进程即eFSM,用来定义动态行为SystemBlockProcessSystem的功能分解原则当面对一个复杂系统时,最好的办法是:大事化小,将系统分解为可以处理的复杂程度的逻辑单位:BLOCKs功能分解时按照系统的自身规律来进行:
BLOCKs要反应真正的软件/硬件模块将功能块间的接口最小化:减少功能块间交换的信号的数量和种类StructuringoftheSystemDescriptionDecompositionRules:
NoLimitinnumberofBlocklevelsDecompositionRules:BlocksandProcesscannotsharealevel进程Process用于对真实世界进行建模的基本组件采用FSM作为其数学基础进程包含属性(data)行为(statemachine)进程间通信可以发生在进程间,进程和环境之间通常使用信号signals来进行通信通过信道来进行通信通信是以异步方式进行的其他通信方式远端过程调用(remoteprocess)和远端变量(remotevariable)进程的行为和信号之间有关联关系行为是由一系列信号引起的状态转移用Input-Action-Transition来定义行为asignalisreceivedsometasksarecarriedout,signal(s)sentouttransitiontoanotherstate每个进程都有一个或多个实例进程标识类型:PId4个保留字self (constant)本进程的PIDparent (constant)父进程的PIDsender (varies)最近被消耗信号的进程的PIDoffspring (varies)最近被本进程创建的进程的PID进程Process(续)进程的图形语法<processdiagram>::=<framesymbol>
contains{<processheading> <agentdiagramcontent>} [isassociatedwith<packageusearea>]<processheading>::= process<processname> [<numberofinstances>]过程进程的一部分,可被进程调用过程符号, 在进程和过程中说明一个被调用的过程1、图形语法<procedurediagram>::=<framesymbol> contains{<procedureheading> {<proceduretextarea>* <procedurearea>* <proceduregrapharea>}set} [isassociatedwith<packageusearea>]
<procedureheading>::=
procedure<procedurename> [<procedureformalparameters>] [<procedureresult>]<procedureformalparameters>::= (<formalvariableparameters> {,<formalvariableparameters>}*)<formalvariableparameters>::= <parameterkind><parameterofsort>
<parameterkind>::=[in/out|in|out]<parametersofsort>::= <variablename>{,<variablename>}*<sort><procedureresult>::= <resultsign>[<variablename>]<sort><resultsign>::=-><proceduretextarea>::=<textsymbol>contains {<variabledefinition>|<datadefinition>|……}<procedurearea>::=<procedurediagram> |<procedurereferencearea>
说明:过程图不是代理图,但可以使用包过程头包括:关键字、过程名、可带形式参数和返回值形式参数可包括:参数类型、变量名、数据类型过程文本域中定义局部变量2、举例过程调用符3通信通常在通信中,有两种对通信的抽象描述:异步通信Asynchronous同步通信Synchronous在同步通信中:要求参与通信的进程同时参与通信,如果进程A准备发送信息而进程B没有准备好接收,进程A必须等待直到进程B准备好接收。3通信在异步通信中:参与通信的进程不需要同时参与如果进程A准备发送信息而进程B没有准备好接收,进程A无需等待直接发送如果进程B准备接收信息,而进程A没有发送,进程B必须等待在异步通信中,必然要用到缓冲区来保存信息在协议通信中,绝大多数是采用异步通信的在异步通信中的FIFOs在绝大多数通信系统中,采用FIFO(FirstInFirstOut)的原则来处理信息的发送和接收在发送一个信息时,把信息附加在FIFO的队尾在接收时,从FIFO的队头取走ProcessProcessFIFOCHANNELFIFOCHANNELSendReceiveReceiveSend在异步通信中的FIFOs在通信系统中,可采取一些办法来进行有优先级别的通信如优先级队列带外信道在实际的通信过程中,FIFO队列可以用来吸收通信时延的变化处理时延抖动,将抖动平滑的基本方法3通信一、SDL中的通信方式异步信号同步远端过程调用共享变量,远端变量(remotevariable)1、异步方式功能块之间、进程之间的信号收发无需等待确认2、同步方式一个进程实例调用另一个进程实例中定义的过程,等待返回通信(续)二、信道(channel)1、含义代理之间、代理与系统环境之间传递信号的通路单向和双向信道延迟和非延迟信道2、图形语法4种信道符,标有信道名称、信关、信号列表信道符与代理域、状态机域或图边界信关连接<channeldefinitionarea>::=<channelsymbol>
isassociatedwith {[<channelname>] {[<gate>][<signallistarea>]}set
}
isconnectedto
{{<agentarea> |<statemachinearea> |<gateondiagram>} {<agentarea> |<statemachinearea> |<gateondiagram>}}set
<channelsymbol>::= <delayingchannelsymbol1> | <delayingchannelsymbol2> | <nondelayingchannelsymbol1> | <nondelayingchannelsymbol2><delayingchannelsymbol1>::=
<delayingchannelsymbol2>::=
<nondelayingchannelsymbol1>::=
<nondelayingchannelsymbol2>::=
信号三、信号(signal)代理之间、代理与环境之间传递的信息是进程间通信的基本单位信号可以定义参数抽象数据结构定义的参数信号列表,signallist可使用定义过的信号定义信号列表相似含义的一组信号的集合在信道上使用时,要用()来括起来和信号进行区别信号的文本语法<signaldefinition>::= signal<signaldefinitionitem> {,<signaldefinitionitem>}*<signaldefinitionitem>::= <signalname> [(<sort>{,<sort>}*)]信号的文本语法<signallistdefinition>::=
signallist<signallistname>
=<signallist><signallist>::= <signallistitem> {,<signallistitem>}*<signallistitem>::= <signalidentifier> |(<signallistidentifier>)信号的图形语法2、图形语法<signallistarea>::=<signallistsymbol> contains<signallist><signallistsymbol>::=[]3、举例门控系统功能块:控制面板、卡校验器、门控制器内部信道、外部信道例子:信号FSM例子(VS-FSM)进程图中的几个核心组件状态(STATEs):在进程(PROCESS)中监视输入队列,获得输入信号(SIGNALs)的点等待输入的状态状态迁移后的下一个状态
输入(INPUT):当到达的信号和输入中的“信号”一致时,将执行输入下面的状态迁移过程INPUTs可以指定信号和信号中的值INPUTs可以是一个特定的定时器的超时输出(OUTPUT):规定了发送给另外一个进程的信号(SIGNAL)state_asig_astate_asig_cFSM例子(VS-FSM)VS-FSM的进程图(ProcessDiagram)用EFSM描述时转移函数扩充t=e/p:a e输入事件,p谓词,a动作若t=e,则收到e,不执行动作就转移若t=e/a,则收到e,无条件执行动作并转移若t=e/p:a,则收到e,根据守护条件决定是否执行动作,同时状态转移动作–任务TASK判断和转移—分支DECISION进程图中增加的组件任务(TASK):表示对变量操作和其他操作在动作的符号内部来表示,如赋值语句、定时器设置等分支(DECISION):根据其内部表示的判断条件来决定进程的下一个分支汇接:相当于GOTOdo_somethingmake_decisionyesnoAA进程图例子
processcalling2/5wait_for_numT1busyToneVIAuGwait_for_onHooknum(toNum)reset(T1)getUserPid(toNum,otherPid)otherPid=NULLTruemsg('Sorry,wrongnumber')wait_for_onHookFalsewait_for_connReplonHookreset(T1)A1在SDL中描述系统行为的组件通过状态机(EFSM)描述系统行为状态机的启动状态、后继状态触发事件自发转移保存迁移过程输出、创建、任务、过程调用、分支、定时器、汇接一、启动1、图形语法<startarea>::=<startsymbol>
isfollowedby<transitionarea><startsymbol>::=
2、举例启动符后可接初始状态或迁移过程。状态1、图形语法<statearea>::=<statesymbol>
contains<statelist>isassociatedwith
<inputassociationarea> |<priorityinputassociationarea> |<continuoussignalassociationarea> |<saveassociationarea>}*<statesymbol>::=
①状态域可定义为状态符,包含状态列表<statelist>::=<statename> {,<statename>}* |<asteriskstatelist><askeriskstatelist>::= <asterisk> [(<statename> {,<statename>}*)]<asterisk>::=*在状态列表中表示状态的几种形式单个状态名多个状态名,如S1,S2,S3所有状态*除一些状态外的所有状态*(S1,S2,S3)下一个状态是自身状态时-S1S1,S2,S3*-*(S1,S2,S3)
②状态符可接输入符、优先输入符、连续信号符、保存符③状态机转移的结果是进入后继状态<nextstatearea>::=<statesymbol> contains<nextstatebody><nextstatebody>::=<statename>|-触发事件三种触发事件输入事件、优先输入事件、连续信号事件在SDLmachine中隐含着输入队列例子:键盘输入触发事件-输入事件1、输入状态机接收并消耗信号①图形语法<inputarea>::=<inputsymbol>
contains
<inputlist> [isconnectedto<enablingconditionarea>]
isfollowedby<transitionarea><inputsymbol>::=
<inputlist>::=<stimulus>{,<stimulus>}* |<asteriskinputlist><stimulus>::=<signallistitem> [(<variable>{,[<variable>]}*)]<asteriskinputlist>::=<asterisk>②允许条件(使能条件)True:消耗信号,False:保存信号<enablingconditionarea>::= <enablingconditionsymbol>
contains<Booleanexpression><enablingconditionsymbol>::=③输入信号可带参数使用变量接收参数值输入接允许条件(使能条件)当状态在S1时,收到输入信号msg后,系统计算“X<MAX”的结果结果为真,消耗msg信号,继续进行后续状态转移过程;结果为假,不消耗msg信号,msg信号依然在输入队列中,系统持续计算表达式“X<MAX”,直到结果为真或系统由于其他输入信号而执行了其他状态迁移过程S1msgX<MAX触发事件-优先输入事件2、优先输入信号队列FIFO原则处理,但优先输入除外不接允许条件符图形语法<priorityinputarea>::=<priorityinputsymbol> contains<priorityinputlist>
isfollowedby<transitionarea><priorityinputlist>::= <stimulus>{,<stimulus>}*<stimulus>::=<signallistitem> [(<variable>{,[<variable>]}*)]<priorityinputsymbol>::=触发事件-输入事件3、连续信号状态转移由布尔表达式取值引起图形语法<continuoussignalarea>::= <enablingconditionsymbol>
contains{<Booleanexpression> [;priority<priorityname>]}
isfollowedby<transitionarea><priorityname>::=<Naturalliteralname><enablingconditionsymbol>::=注意连续信号和允许条件的区别自发转移非外部激励也能使状态机发生转移1、图形语法<spontaneoustransition>::= <inputsymbol>
contains
none
isfollowedby<transitionarea>进程实例PId值:Sender=Self2、举例none保存
1、图形语法<savearea>::=<savesymbol>
contains<savelist><savelist>::=<signallist> |<asterisksavelist><savesymbol>::=2、举例保存例子processP11(1)ac,dS1bdS2dS3eS4S5P1S1ecdabe保存(上一个例子的处理过程1)当前状态接收信号处理方式信号队列(用从左到右表示信号的先后次序)下一个状态信号队列保存队列
e,c,d,a,b,e空
S1e丢弃c,d,a,b,e空S1S1c保存d,a,b,ecS1S1d保存a,b,ec,dS1S1a消耗b,ec,dS2S2c丢弃b,edS2S2d保存b,edS2S2b消耗edS3S3d消耗e空S4S4e丢弃空空S4注:从上到下表示处理的顺序保存(上一个例子的处理过程2)当前状态接收信号处理方式信号队列(用从左到右表示信号的先后次序,用红色表示保存的信号)下一个状态
e,c,d,a,b,e
S1e丢弃c,d,a,b,eS1S1c保存c,d,a,b,eS1S1d保存c,d,a,b,eS1S1a消耗c,d,b,eS2S2c丢弃d,b,eS2S2d保存d,b,eS2S2b消耗d,eS3S3d消耗eS4S4e丢弃空S4注:从上到下表示处理的顺序在输入中表示信号**ssS1,S2,S3S1,S2,S3单个信号多条信号S1,S2,S3除了在本状态下已经列出的信号外的所有信号*输入、连续信号、保存迁移过程状态机受到激励之后,执行的一系列动作1、输出通过信道一个代理实例发信号给另一个代理实例①图形语法<outputarea>::=<outputsymbol>
contains<outputbody><outputsymbol>::=迁移过程-输出<outputbody>::= <signalidentifier>[<actualparameters>] {,<signalidentifier>[<actualparameters>]}* <communicationconstrains><actualparameters>::=(<actualparameterlist>)<actualparameterlist>::= [expression]{,[<expression>]}*<communicationconstrains>::=
{to<destination>|<viapath>}*<destination>::= <pidexpression>|<agentidentifier>|this<viapath>::=
via{<channelidentifier>|<gateidentifier>}迁移过程-输出②说明输出体中信号标识符可带参数,可以为数值、表达式、变量等信号最终要被一个进程或过程消耗(to)pidexpression:self、sender、parent、offspringagentidentifier:进程实例名this:本进程类型通过的路径(via)承载信号的信道名经过的信关to和via不能同时使用;都不使用时,通过唯一的信道发送出去③举例:门控系统的控制面板进程用户通过迁移过程-创建进程2、创建静态创建,在系统初始化时创建动态创建①图形语法<createrequestarea>::=<createrequestsymbol>
contains<createbody><createrequestsymbol>::=<createbody>::= {<agentidentifier>|this} [<actualparameters>]②举例动态进程处理在SDL中可以动态创建和撤销(createdanddestroyed)可以使用创建符号来创建一个进程;在创建符号内包含着被创建的进程类型用offspring保留变量来返回被创建的进程ID在SDL中用终止符号(Stop)来表示进程结束ProcessAoffspring>0yesnoTheUserServer
InitialisationProcedure迁移过程-任务3、任务执行与变量有关的动作①图形语法<taskarea>::=<tasksymbol>
contains<graphictaskbody><tasksymbol>::=<graphictaskbody>::= <statementlist>|<informaltext>迁移过程-任务②说明任务符包含语句列表赋值语句、条件语句、分支语句、复合语句、设置语句、复位语句a)赋值<variable>:=<expression>x:=1;y:=x+1迁移过程-任务b)IFIf(<Booleanexpression>)<consequencestatement> [else<alternativestatement>]c)DecisionDecision(<expression>){ {(<rangecondition>):<statement>}+
[else:<alternativestatement>] }d)组合语句e)非形式化文本描述if(x<0)x:=1;elsex:=x+1;decision(a){(<=0):b:=1;(1:9):b:=2;else:b:=3;}迁移过程-过程调用4、过程调用在进程或过程中都可以调用过程进程图和过程图的区别①图形语法<procedurecallarea>::= <procedurecallsymbol> contains<procedurecallbody><procedurecallsymbol>::=过程图ProcedurePROCEDURE:和子程序类似
用于在SDL进行代码重用减少SDL进程图的大小,将注意力集中在主要迁移过程可以通过value(IN)或reference(IN/OUT)的方式传递参数sigAstateCProcB(SENDER)PROCEDUREProcBfparplayerPId;Gameidtoplayer
迁移过程-调用和返回<procedurecallbody>::= <procedureidentifier>[<actualparameters>]<returnarea>::=<returnsymbol> [isassociatedwith<expression>]<returnsymbol>::=②说明过程调用符中的实参与过程图中定义的形参匹配过程图中定义的形参为in、out、in/out型过程可有返回值,标在返回符旁调用过程可认为是一个任务过程与进程起始符不同过程必须有返回符进程可以没有结束,即没有终止符过程可以使用状态过程没有信号输入队列,信号来自调用者(调用过程的进程)的信号输入队列迁移过程-分支5、分支分支操作是一个动作,通过计算条件表达式选择不同迁移过程①图形语法<decisionarea>::=<decisionsymbol>
contains<question>
isfollowedby<graphicaldecisionbody><decisionsymbol>::= 迁移过程-分支<question>::=<expression>|<informaltext>|any
<graphicaldecisionbody>::= {<graphicalanswerpart>+
[<graphicalelsepart>]}
set<graphicalanswerpart>::=<flowlinesymbol> isassociatedwith<graphicalanswer>
isfollowedby
<transitionarea><graphicalanswer>::= [<answer>]|([<answer>])<graphicalelsepart>::=<flowlinesymbol> isassociatedwith
else
isfollowedby
<transitionarea>
<answer>::=<rangecondition>|<informaltext>
<flowlinesymbol>::=分支
processcalling2/5wait_for_numT1busyToneVIAuGwait_for_onHooknum(toNum)reset(T1)getUserPid(toNum,otherPid)otherPid=NULLTruemsg('Sorry,wrongnumber')wait_for_onHookFalsewait_for_connReplonHookreset(T1)A1迁移过程-定时器6、定时器在状态机图中,监视激励信号是否在定时器规定时间间隔内到达。若无激励到达,则触发超时事件,作为激励输入。定时器操作包括:设置和复位执行一个定时器操作即执行一个任务超时作为一个触发事件,引起状态的迁移过程迁移过程-定时器①文本语法<timerdefinition>::=timer<timerdefinitonitem> {,<timerdefinitionitem>}*;<timerdefinitionitem>::=<timername> [<sortlist>][:=<Durationconstantexpression>]<sortlist>::=(<sort>{,<sort>}*)②图形语法设置定时器、复位定时器超时事件迁移过程-定时器<setarea>
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026电信转正面试题及答案
- 2026返乡人就业面试题及答案
- 2026飞力达理货面试题及答案
- 2026服务顾问情境面试题及答案
- 2026岗位规划面试题目及答案
- 2026公共领导面试题型及答案
- 2026国家线面试题及答案
- 2026国企审计面试题库及答案
- 油库储存企业危险作业安全管理制度
- 管理学测验试题及答案
- 氢能与燃料电池技术 课件 5-燃料电池
- 减震器知识培训课件图片
- 国家保密知识培训课件
- 燃气安全使用操作规程
- JBT 8457-2024 冷挤压压接钳的一般要求和试验方法(正式版)
- 航天禁(限)用工艺目录(2021版)-发文稿(公开)
- 公司突发公共卫生事件应急预案
- 奇瑞瑞虎8PLUS保养手册
- TCALC 003-2023 手术室患者人文关怀管理规范
- 2024年广东清远市国有资产经营有限公司招聘笔试参考题库含答案解析
- 上海交通大学学生生存手册
评论
0/150
提交评论