没有合适的资源?快使用搜索试试~ 我知道了~
理论计算机科学电子笔记274(2011)33-50www.elsevier.com/locate/entcs基于需求文档的汽车软件Xiaojian Liu <$,Zhilin Zhu§汽车电子技术山东省重点实验室山东省科学院自动化研究所,济南,中国中国山东工商学院摘要在复杂软件密集型系统的模型驱动开发中,如何在开发的最初阶段捕获软件模型是首要问题。 在本文中,我们关注的领域汽车软件,探索如何从需求文档中捕获软件模型。 为此,我们主要研究了这三个密切相关的问题:什么需求信息应该从需求文档中引出;如何将这些信息组织为方面模型;以及如何将方面模型集成在一起以形成完整的需求规范。 这项工作将有助于软件分析人员将复杂的需求文档分解为独立的关注点,并将基本的需求信息组织为严格的模型,这将有助于模拟和验证需求,并为模型驱动的开发奠定基础关键词:模型驱动开发;需求建模;汽车软件;体系结构描述语言;时间自动机1介绍模型驱动开发方法是开发复杂软件密集型系统的一种很有前途的方法它要求在开发过程中,每个阶段都以模型的构建为基础,后期的模型是通过模型转换从前期的模型中构建出来的,代码是从设计阶段的模型中生成的可执行模型[2]。然而,将模型驱动方法应用于实际开发并不是一件容易的事情-其中一个困难的问题是如何在开发的最初阶段获得模型,即,在需求分析阶段。 在这个阶段,要开发的软件被表示为一个集合的需求文件,通常是用自然语言编写的非形式化的描述、模糊的状态和非结构化的组织往往阻碍我们构建严谨的模型。1571-0661 Crown版权所有© 2011由Elsevier B. V.出版。CC BY-NC-ND许可证下开放访问。doi:10.1016/j.entcs.2011.07.00534X. Liu,Z.Zhu/Electronic Notes in Theoretical Computer Science 274(2011)33本文以汽车软件为研究对象,探讨了如何从需求文档中构造模型 我们主要研究这些密切相关的问题:从文档中应该引出哪些基本的需求信息;如何将这些信息组织和表示为模型;如何将各个模型集成在一起以形成完整的需求规范;以及如何使用工具支持模型的构建和分析。虽然我们专注于汽车领域的背景下,我们相信,这些问题的基本思想和解决方案也适用于一般复杂的软件密集型系统。在汽车系统的开发中,开发人员通常从三种需求文档开始开发:功能描述文档,它描述了要开发的ECU(电子控制单元)的功能;应用协议文档,它指定了目标ECU与其环境(包括传感器,执行器和其他ECU)之间的通信信号;以及一些约束,包括硬件约束,非功能需求等。然而,从软件开发者例如,设计师通常希望找到:软件与其环境交互的边界是什么;复杂功能中包含哪些子功能;功能如何通过产生输出对输入做出反应;ECU如何通过通信介质与其他ECU交换数据和控制。这些信息通常分散在文档的一个或多个位置,在某些情况下甚至分散在几个不同的文档中。因此,当软件的规模增加时,组织和链接相关的需求信息成为一项艰巨的任务。为了解决这个问题,我们需要从文档中提取基本的需求信息,并将它们重新组织为一组模型,开发人员可以很容易地理解和设计软件。从需求文档中提取四类信息:结构信息、行为信息、通信信息和平台及非功能约束。有了这些信息在手,设计人员就能够开始他们的设计活动:结构信息将帮助他们设计数据结构;行为信息将引导他们设计控制算法;通信信息将支持他们设计消息和通信协议;平台和性能约束将为进一步的软件分配和性能测试提供信息。为了表示和组织这些信息,我们首先应该选择合适的符号,它应该满足以下基本标准:(1)每个符号只表示一种信息;(2)符号应该是特定领域的,可以很容易地被工程师理解和使用;(3)表示应该是可分析的,以确保正确在此基础上,我们分别采用EAST-ADL 2、时间自动机和信号矩阵对网络的结构、行为和通信信息进行建模。X. Liu,Z.Zhu/Electronic Notes in Theoretical Computer Science 274(2011)3335Req 1:驾驶员可以使用遥控器锁定和解锁车门;Req 2:在车内,驾驶员可以使用中控锁系统锁定和解锁车门;要求3:当车速超过30 m/h时,车门自动锁止; Req 4:当发生碰撞时,车门自动解锁救援; Req 5:锁止/解锁车门驱动电机必须保持至少200 ms。为了捕获全面的需求规范,我们需要将构建的模型集成在一起。为此,我们使用4变量需求模型[9],一种用于需求规格说明的关系理论,作为公共基础,并将方面模型的所有元素映射到4变量模型的术语。这种集成方法为我们提供了一种理解每个模型如何对完整的需求规范做出贡献的方法。这项工作还处于初步阶段。我们的最终目标是开发一种特定领域的语言和环境,以支持汽车软件的模型驱动目前,我们已经开发了一个工具来支持上述思想,并将其应用到实际开发中,以考察其适用性。到目前为止,来自工程师的反馈表明,所提出的想法有助于他们清晰地塑造汽车软件的需求,并且该工具大大有助于他们改进开发过程本文的其余部分组织如下。第2节介绍了从需求文档中应该提取哪些需求信息;第3节介绍了用于表示需求信息的建模符号;第4节描述了如何基于4变量需求模型集成各个模型;第5节说明了对我们思想的工具支持;第6节总结了相关工作;最后第7节总结了本文。2需求信息在这一节中,我们使用车身控制系统(Vehicle Body Control System)作为一个运行示例来说明应该从汽车软件的文档中获取哪些需求信息。ECU是一个控制车身部件的ECU,其主要功能包括锁/解锁车门、升降车窗、打开/关闭多盏灯以及控制雨刷器和清洗器等。在此,我们选择其中一个功能,锁/解锁车门(简称LOCKCTR)进行简要说明。下面,我们首先描述了LOCKCTR的一些场景,然后分析了LOCKCTR的领域特征,这将有助于我们理解需要从文档中提取哪些必要的需求信息。结构信息包括输入和输出,以及功能的分解。通常,控制系统的输入或输出是从时域到值域的函数。对于输入,我们可能希望观察其36X. Liu,Z.Zhu/Electronic Notes in Theoretical Computer Science 274(2011)33状态,或者想要观察状态的变化,即,事件,或两者。例如,对于车辆速度的输入,我们希望观察其值及其在不同情况下的变化。因此,在需求层次,为了获得输入和输出的抽象和简洁的描述,我们需要将它们分为两类:流和事件。流输入(输出)可以被认为是一个变量,只有它的值是要观察的;而事件输入(输出)表示当输入(输出)的值改变时引发的事件。在某些情况下,识别和描述一个事件是困难的,特别是当涉及输入(输出)的时间属性对于一个复杂的功能,它的需求通常被分解成几个子模块。例如,嵌入式系统的功能可以包括锁定/解锁控制、灯光控制和窗户控制等子功能。如果将功能分解,我们特别关注顶层功能的输入(输出)与子功能的输入(输出)之间的委托和组装行为信息。对于嵌入式应用程序,其行为表现出离散性、反应性和时序性。因此,行为信息应该包括输入和输出之间的关系,几个功能之间的协作,以及一些定时约束,如超时,截止日期等。通信信息。它主要包括ECU与环境之间的通信拓扑、通信信号和通信协议。在汽车系统中,总线技术(CAN,LIN,Flexray和MOST)被广泛用于连接ECU与其环境,并通过总线传输信号以传输数据和控制命令。在通信信息和行为信息之间存在密切关系,因为功能通常由接收到的信号触发,并且它们的输出也经由信号传输。平台和非功能限制:例如机械和电子限制、预定义的硬件架构、时间和资源限制。这些信息对于硬件设计以及进一步的软件分配和性能测试是必不可少的。3需求信息的表示为了表示需求信息,我们选择了不同的建模符号来表示它们:EAST-ADL 2表示结构信息,时间自动机表示对象结构,通信体系结构表示通信信息。在这些形式主义,我们将把重点放在EAST-ADL 2和通信体系结构。时间自动机的形式主义将被简单地介绍,感兴趣的读者请参考工作[4]以了解其详细定义。3.1EAST-ADL 2由于本文仅讨论需求建模,因此我们选择EAST-ADL 2的一个子集,即,EAST-ADL 2的功能建模包,作为建模X. Liu,Z.Zhu/Electronic Notes in Theoretical Computer Science 274(2011)3337+ 期间:ADL浮动ADLFlowPort+ flowPortADLInOutFlowPort+客户端服务器端口ADLClientServerPort10.. 2+ isTriggered:布尔ADLClientPortADLServerPortADLClientServerInterface+型ADLConnectorPrototype+ flowPort*+客户端服务器端口ctor0..*+ conne枚举+布尔值:+枚举:+:+实数:+字符串:ADLDesignDataTypeKind枚举+活动:+时间:TrigPolicyKind语言来指定功能的结构。图1展示了这个子集的元模型。Rs0.. 1+ 111*0.. 2+ isTriggered:布尔ADLInFlowPortFig. 1. EAST-ADL 2功能建模使用EAST-ADL 2语言,功能被建模为ADLFunctionType的元素,其包含一组端口(ADLFlowPort或ADLCli-entServerPort的元素)、一组函数原型(ADLFunctionProto的元素)、一组函数原型(ADLFunctionProto的元素)、一组函数原型(ADLFunctionProto的元素)、一组函数原型(ADLFunctionProto的元素)和一组函数原型(ADLFunctionProto的元素)。类型)和一组连接器(ADLConnectorPrototype的元素)。函数原型必须作为ADLFunctionType元素的一部分出现,并且本身由ADLFunctionType元素类型化。连接器可以分为两类:委托和装配,前者连接函数类型的端口和它所包含的函数原型的端口,后者连接两个函数原型的端口。每个数据流端口都与一个数据类型相关联,该数据类型指定了通过该端口交换的数据ADLInFlowPort和ADLServerPort可以分别用于对状态输入和事件输入进行建模,并且可以使用函数原型和将函数类型及其所有原型链接在一起的连接器来对功能的内部分解结构进行建模。Example.图2说明了XML的结构模型。在这里,两个函数原型lockCtr和lightCtr在函数类型中描述。EQUIPMENT的输入被委托给其中一个原型或两者。结构模型实际上指定了与功能及其环境共享的一组常见现象为了便于下面的讨论,我们将功能的端口分为四组:入流端口、出流端口、服务器端口和客户端端口。对于LOCKCTR功能,其端口为:服务器端口={ RKELOCK,RKELOCK,DCLLOCK,DCLLOCK,VehicleCrash,SpeedUp}在低速端口中={ VehicleSpeed,VehicleStatus,KeyStatus,TouchStatus}输出流端口={LockEnable,UnlockEnable}。+accuracy:String[0..[1]+adlBaseDataType:ADLDesignDataTypeKind=String+defaultValue:String[0..[1]+描述:字符串+physicalMax:String[0..[1]+physicalMin:String[0..[1]+resolution:String[0..[1]+significantDigits:Int[0..[1]+ 类型1ADLDesignDataType触发+offset:TimingRestriction+制造商条件:OCL+时间限制:TimingRestriction+trigPolicy:TrigPolicyKind0.. 1+测量参数ADLFunctionType+部分ADLFunctionPrototype+ isComponent:Boolean[0..[1]+ isDiscrete:布尔+ isElementary:布尔0..十..*138X. Liu,Z.Zhu/Electronic Notes in Theoretical Computer Science 274(2011)33<>BCM客户端-服务器端口流动端口<>lockCtr:LOCKCTRRKE_Lock联系我们<>lightCtr:LIGHTCTR车辆碰撞开启锁定启用DCL_锁定DCL_电子邮锁定启用岔道解锁启用车辆碰撞解锁启用加速车辆速度触摸状态触摸KeyStatusRKE_Lock联系我们车速监测状态LightSwitchLightSwitchLightFlashLightFlashAlmStatus图二. 结构模型的研究3.2时间自动机时间自动机是传统的非时间自动机的一种扩展,它通过引入时钟和时间不变量来描述系统的时间行为时间自动机通过通道和全局变量与环境交互。为了模拟和验证一个目标时间自动机,我们必须额外地根据时间自动机对其环境进行建模,并将它们并行组合以形成一个时间自动机网络为了模拟和验证的目的,在本文中,我们选择UPPAAL版本[17]的时间自动机作为形式主义。UPPAAL版本扩展了纯时间自动机的一些功能。其中一个重要的特点是表达式允许使用有界整数变量(或这些类型的数组)以及时钟,这种扩展将增强时间自动机的表达能力,使我们能够对复杂的保护条件,赋值和不变量进行建模。在下文中,如果没有具体的解释,术语时间自动机是指UPPAAL扩展版本。设C是一组时钟,V是一组有界整数变量.Φ(C,V)和R(C,V)分别表示C和V上的条件集和复位操作集时间自动机是一个元组(L,B,C,V,E,I,l0),其中L是位置的集合; l0∈ L是初始位置; B是通道的集合; E<$L×B?!×Φ(C,V)×R(C,V)<$×L是边的集合,其中B?! ={a?|a∈B} ∪{a! |a∈B} ∪{τ}isthesetof内部行动和内部行动。一个元素(l,α,r,l′)∈E描述了从l到l′的一 条边,它具有动作α,guard和一个重置操作列表r;并且I:L→Φ(C,r)将定时不变量分配给位置。3.3通信架构通信体系结构主要描述硬件组件及其连接。硬件组件包括ECU、传感器、执行器和电源;连接通常包括I/O连接、电源连接和将ECU与其他ECU或传感器(执行器)连接的总线唯一的办法X. Liu,Z.Zhu/Electronic Notes in Theoretical Computer Science 274(2011)3339<信号矩阵><信号kind=“公交车信号”,name=“车速信号”,period=“10ms”,优先级=//>>个<信号种类=......0..*0..*0..*电源供应ECUIOComponent+ isActive:布尔0..*总线信号+ name:String+ 期间:+ 优先级:+ size:整数+ 单位:字符串+ sender:String+ 接收器:字符串+ 分辨率:实数+ 偏移量:实数+ maxValue:0+ 最小值:+ defaultValue:0IoSignal+ name:String+ pin:String+ 类型:字符串+活性:{High,低}+load:Real+ 描述:字符串总线连接器IoHw连接器PowerHw连接器透射穿过透射穿过执行器传感器信号ADLH连接器ADLHwElement图3.第三章。通信体系结构的元模型ECU与其环境的交互是通过经由物理连接传输的信号。通信体系结构的元模型如图3所示。一般来说,信号分为两类:总线信号和IO信号。 总线信号是一串比特,通过帧在总线上传输; I/O信号通过I/O物理布线传输,其值由高/低电平的时间模式确定。例3.1我们通常使用信号矩阵,一个二维表格,来记录ECU的所有相关信号。为了有效地记录信号并便于在工具支持中共享,我们采用XML文件作为存储信号的中间格式。XML文件的模式应该遵循信号的属性。下面的XML文件给出了一个信号矩阵的例子,其中VehicleSpeed Signal是通过CAN总线传输的总线信号,DCLUn-锁定信号是通过引脚D24接收的I/O信号。总线信号总是周期性地传输,它们需要优先级以避免传输中的冲突。属性resolution和o resolution set用于通过公式将信号值转换为其实际值实际值=信号值×分辨率+偏移。I/O信号的PIN号代表接收或发送信号的硬件接口的ID信号的值由物理线上的高/低电平表示。例如,我们将信号分为输入信号和输出信号。对于LOCKCTR应用,输入和输出信号为:40X. Liu,Z.Zhu/Electronic Notes in Theoretical Computer Science 274(2011)33系统(软件+硬件)MON CON请求IN输入设备输出设备出来SOF输入输出软件见图4。 4-可变需求模型输入信号={车速信号、车内温度信号、电池电压信号、DCL锁定信号、DCL锁定信号、RKE锁定信号、RKE锁定信号、钥匙状态信号、钥匙状态信号、触摸状态信号、车辆碰撞信号},输出信号={锁定使能信号、解锁使能信号}。4集成方面模型在这一部分中,我们讨论了如何将这三个方面的模型(结构模型、行为模型和通信体系结构)结合起来,形成一个完整的系统模型。为此,我们必须找到一个通用的框架,在这个框架上,方面模型可以得到一致的解释。在本文中,我们选择了4变量需求模型,需求规格说明的关系理论,作为共同的基础,和方面模型的元素映射到这个模型的条款4.1四变量模型4变量模型概述见图4。根据该模型,嵌入式软件的合理需求规格说明应根据四组变量和五种关系进行规格说明。该模型中的变量与时间相关:• 被控变量MON,即影响系统(包括硬件部分和软件部分)行为的环境量• 受控变量CON,系统控制的环境量• 输入变量INPUT,输入设备(如传感器或硬件/软件驱动程序)写入软件的软件边界;以及• 输出变量OUTPUT,输出设备(如执行器或硬件/软件驱动程序)从软件中读取的软件边界。这些变量之间的五个数学关系是:• NAT定义了施加在MON和CON变量上的自然法则或物理约束例如,车速的合理范围为:0~ 254 KHP;• MON和CON之间的关系,它通过产生受控变量的值来定义系统对监控变量值的响应。X. Liu,Z.Zhu/Electronic Notes in Theoretical Computer Science 274(2011)3341表1将方面模型映射到4变量模型要素四变量模型方面模型Mon在Windows端口中,Windows服务器端口CON输出流端口输出客户端端口输入输入信号输出输出信号Nat与端口在数据细化映射:服务器端口插入到流端口→输入信号。出来数据细化映射:客户端端口输出当前端口→输出信号。请求时间自动机模型描述的关系。SOFSOF可以从IN、OUT和CLK导出。设TA是一个功能的时间自动机模型。SOF是一种可以用一种新的时间自动机来描述的关系,这种时间自动机是通过将TA的每条边(l,α,r,l')变换为一条新的边(l,α',r ',l')而得到的,使得α ' =IN(α),r'和r'是关于信号的表达式,并且r = IN = r',r = OUT变量;• IN是MON和INPUT之间的关系。它是输入设备的抽象;• OUT,CON和OUTPUT之间的关系,其是输出设备的抽象;以及• SOF是INPUT和OUTPUT之间的关系,指定软件行为。4.2集成方面模型四变量模型实际上建立了一个标准,用于确定需求文件是否完整和一致。因此,为了集成方面模型,形成一个完整的、一致的需求模型,我们必须将方面模型与四变量模型进行比较,即在方面模型的元素与四变量模型的术语之间建立一个对应的关系。如果四变量模型中的每一个元素都能在体模型中找到对应的元素,那么我们就说体模型是可以集成的。该对应关系如表1所示。在下文中,我们将解释映射的含义。42X. Liu,Z.Zhu/Electronic Notes in Theoretical Computer Science 274(2011)33在需求阶段,我们通常通过识别输入和输出变量来识别系统(包括这些变量通常是时变函数,或者代表数据值随时间的变化,或者代表触发事件。为了有效地记录和管理这些变量,我们通常使用ADLFlowPort和ADLClientServerPort(参见图1)来描述它们。因此,输入数据流端口的数据流端口集合和接收到的事件的服务器端口集合的并集实际上构成监控变量集合MON;并且输出数据流端口的数据流端口集合和发送事件的客户端端口集合的并集构成受控变量集合CON。与数据流端口相关联的数据类型实际上约束了经由端口交换的数据的性质。因此,在某种意义上,它们可以被认为是NAT对MON和CON的约束。事实上,这些信号是仅由ECU的软件处理的变量。ECU可以通过传感器(或致动器)、物理布线或总线网络来感测(或作用于)其环境。无论ECU使用何种设备或介质与其环境进行通信,从软件的角度来看,信号是ECU感知和驱动其环境的唯一方式,所有设备和介质都可以抽象为将环境的物理变量(用端口描述)转换为软件的逻辑变量(用信号描述)的转换器。因此,输入信号input signals实际上构成变量INPUT,输出信号output signals实际上构成变量OUTPUT;并且IN和OUT具有数据细化关系(例如,变压器)之间的端口和信号。一般来说,数据细化关系IN和OUT是简单的数学公式,但在某些情况下,它们可能变得复杂,特别是当涉及定时时。我们用下面两个例子来说明关系IN。例4.1车厢内部温度InteriorTemp由温度传感器检测,并通过CAN总线的InteriorTemp信号传输至车身控制单元。内部温度信号的分辨率为0.03125μC/bit,输出电压为-237。然后,端口InteriorTemp和信号InteriorTemp Signal之间的关系为:InteriorTemp= InteriorTemp信号× 0。03125− 237例4.2通过识别物理线路上的信号碰撞信号的时间模式来检测车辆碰撞事件:碰撞信号在“低”电平200 ms,随后在“高”电平40 ms。该时间模式由信号值的时序图(见图5)说明。如果我们使用端口Crash∈{0, 1}来表示崩溃事件,则端口Crash和信号Crash Signal之间的关系可以通过以下持续时间演算[8]公式来描述:Crash=1i崩溃([碰撞信号=低|200);([碰撞信号=高|(40); true holds.X. Liu,Z.Zhu/Electronic Notes in Theoretical Computer Science 274(2011)3343高40ms低图五、信号的时序图Crash Signal需求关系实际上是由行为规范描述的,即,时间自动机结构规范和行为规范之间存在着密切的联系:结构规范的服务器端和客户端构成了时间自动机的通道;结构规范的入流端和出流端构成了时间自动机的全局变量或形式参数。因此,从时间自动机导出的转移关系实际上反映了输入端口和输出端口之间的关系。SOF是输入信号和输出信号之间的关系,它可以从CLK,IN和OUT导出。该示例(参见图6)演示了如何从XML派生SOF。“Unlocked” and “Locking” are two locations of the timedautomaton for 边缘的标签分别代表动作、警戒状态和任务。SOF可以通过以下方式将每个边的SOF转换为SOF的边而从SOF导出:输入和输出的关系:IN/OUT如果车速信号≥30,则加速发生关于我们 i显示状态信号=Low状态=电源关闭状态信号=高电平触摸状态信号=低电平触摸状态=触摸状态信号=高电平LockEnable=LockEnable信号其中@T(车速信号≥30)表示条件事件,可重写为车速信号“VehicleSpeed Signal“的启动版本5工具支持本节将报告我们在开发工具方面的经验,该工具实现了我们之前介绍的基本规范方法。该工具具有这些200ms44X. Liu,Z.Zhu/Electronic Notes in Theoretical Computer Science 274(2011)33:SOF:加速?[触摸状态=打开/\触摸状态=关闭]/锁定启用:=1解锁锁定吸气@T(速度_信号>=30)[锁定状态_信号=低/\触摸状态_信号=高]/锁定启用_信号:=1解锁锁定图第六章从(IN,IN,OUT)导出SOF文档生成器可扩展性分析仪C代码生成器模拟器和验证器EAST-ADL 2模型编辑器通信架构模型编辑器信号矩阵编辑器UPPAAL(Timed AutomataEditor)OCL系列附加接口模型访问接口GME见图7。 工具的结构能力:(1)允许开发者建立方面模型;(2)支持开发者建立方面模型之间的联系;(3)能够集成一些外部的COTS(Commercial-O-The-Shelf)进行模型仿真和验证;(4)具有代码生成、文档生成和可扩展性分析的能力。5.1工具的结构该工具的开发基于通用建模环境GME(Generic Modeling Environment)[10]平台,一个UML元建模环境,用于开发嵌入式系统的领域专用语言。GME的主要优势在于它允许我们通过构建其元模型来开发建模环境,这将大大降低开发成本并便于管理更改。例如,要构建EAST-ADL 2建模编辑器,我们只需使用GME工具构建EAST-ADL 2的元模型(如图[3]),使用OCL语言定义该元模型上的约束,并选择有利的图标和线条样式来演示建模元素和关系。之后,GME元解释器可以将元模型解释为范例文件(*.xmp文件),开发人员可以在GME环境中构建他们的EAST-ADL 2模型工具架构如图7所示。所有的建模工具和辅助工具都是在GME环境的基础上开发的。无色块代表GME环境提供的内置机制或接口,灰色块代表我们自己开发的工具或从外部COTS集成的主要组成部分包括:• OCL接口、附加接口和模型访问接口是内置块X. Liu,Z.Zhu/Electronic Notes in Theoretical Computer Science 274(2011)3345由GME提供。在GME中,使用OCL语言在Meta模型的元素上定义约束。开发人员应该指定(元模型的)模型元素,其中约束将被附加,以及触发约束检查当建模时违反约束时,触发时会出现警报;Add-on接口为开发人员提供了一种开发自己的程序并将其与GME集成的方法。例如,在我们的工具支持中,UPPAAL工具是通过这些接口集成的;模型访问接口提供了一组接口,允许我们通过编程访问模型元素。• EAST-ADL 2模型编辑器和通信架构模型编辑器是用前面提到的GME元建模技术开发的;信号矩阵编辑器是一个单独的程序,允许我们编辑,修改和记录ECU的信号; UPPAAL工具也松散地集成在我们的工具集中,它 仅从我们的工具中调用,因此其集成不会侵犯UPPAAL的版权。• 文档生成器从模型中生成格式化的文档。它通过使用模型访问接口从模型中提取必要的建模信息,然后将其导出到WORD文档;代码生成器将定时自动机作为输入,并生成C代码段来实现它们;我们还实现了一个可扩展性分析器,该分析器能够计算CAN总线信号的WCRT(最坏情况响应时间)[11]。在未来,我们还希望将任务调度和总线调度结合在一起,并将整体可扩展性分析集成到这个工具中;模拟器和验证器可以基于其时间自动机模型模拟功能并验证其属性。在下一小节中,我们将展示一个借助UPPAAL工具进行模拟和验证的示例。目前,该工具已在工程中使用。本项目共包括8个主要功能,涉及40多个端口和90个信号显然,如果没有可用的工具支持,管理如此大的模型是困难的5.2使用UPPAAL进行在本节中,我们将介绍如何使用我们的工具模拟和验证功能。由于我们的工具借用UPPAAL工具来完成这些任务,我们主要介绍将模型转换为UPPAAL规范的过程。转换过程将结构模型和行为模型结合在一起,因为UPPAAL规范中出现的通道、全局变量因此,我们也可以将转换后的UPPAAL规范视为结构和行为模型的集成。为了使用UPPAAL工具模拟和验证需求,我们应该执行以下步骤将方面模型转换为UPPAAL规范:• 转换功能46X. Liu,Z.Zhu/Electronic Notes in Theoretical Computer Science 274(2011)33第一步,将结构模型的服务器端口和客户端端口分别decrypt为全局步骤2:将结构模型的入流端口和出流端口分别作为模板的全局数据变量或形式参数;第三步:将行为需求和本地时钟、本地数据变量作为时间自动机的模板进行建模;第四步:步骤5:将创建流程时需要实例化的变量和通道声明为模 板的 形式参数;步骤6:与系统定义并行地组合功能及其环境用UPPAAL工具构造时间自动机• 将功能环境建模为时间自动机;• 将功能及其环境的时间自动机组合在一起,形成UPPAAL规范,然后使用UPPAAL工具执行仿真和验证活动UPPAAL规范包括四个部分:全局声明,时间自动机模板,过程分配和系统定义。全局声明声明时钟、数据变量、通道和常量,所有这些都与系统中的每个时间自动机共享;模板是配备有形式参数列表和时钟、数据变量、通道和常量的本地声明实例化的模板称为进程。一个系统定义由一系列并行运行的进程组成我们提出了一些转换程序,将结构模型和行为要求转换为UPPAAL规范:例5.1LOCKCTR的UPPAAL规格见表2和图8。LOCKCTR的结构模型和行为要求如图2和第2节中的“Req 1-Req 5”所示注意,LOCKCTR的环境可以包括驾驶员、锁致动器和诸如EMS(发动机管理系统)的其他ECU。作为一个例子,这里我们只选择驱动程序和EMS作为LOCKCTR的环境。 它们初始化必须与LOCKCTR自动机的协同动作同步的动作。因为变量借助UPPAAL工具,我们可以对UPPAAL规范进行仿真和验证。模拟探索所有可能的运行的组合系统(CTR-CTR- DRIVER- EMS)在一步一步的或随机的方式,通过它的分析人员可以检测到潜在的错误的需求模型。UPPAAL工具还允许我们验证规范的一些属性通常,属性可以是非常通用的属性,例如死锁自由,它必须适用于任何有效的需求模型,或者是特定于域的属性,应该根据X. Liu,Z.Zhu/Electronic Notes in Theoretical Computer Science 274(2011)3347全局声明chan RKELOCK、RKELOCK、DCLLOCK、DCLLOCK; chan VehicleCrash、SpeedUp;const int[0,1]OPENED=1,CLOSED=0,IN=1,OUT=0,ON=1,OFF=0;int[0,1] UnlockEnable=0,LockEnable=0;模板LOCKCTR(int[0,254] VehicleSpeed,int[0,1]AccessStatus,int[0,1]KeyStatus,int[0,1]TouchStatus)println();System. out.println();系统声明const int[0,254]speed=30;lockcontrol=LOCKCTR(speed,ON,IN,OPENED); drivers = Drivers();int n = int n();表2LOCKCTR的UPPAAL规范应用领域的知识。在本文中,我们不讨论如何验证UPPAAL规范,以及如何通过验证机制检测和纠正可能的需求错误。这是一个值得进一步探讨的课题。6相关作品这部作品的灵感来自于作品[1],[2],[5]和[6]。[1]是一种基于平台的嵌入式系统设计方法,并开发了一个支持该方法的环境Metropolis,该方法将嵌入式系统划分为计算与通信、功能与结构、行为与性能参数等几个正交的方面。每个方面都用UML符号表示。工作[2,5]提出了基于构件的软件模型驱动设计的rCOS方法。它强调多维建模中不同建模符号的集成使用,以支持关注点分离和增量开发。[6]中提出的工作定义了结构、数据、功能和交互的不同维度,并展示了它们如何在UML图中表示关系的理论研究48X. Liu,Z.Zhu/Electronic Notes in Theoretical Computer Science 274(2011)33锁定锁定司机EMS见图8。 LOCKCTR的时间自动机及其环境[7]中面向对象编程上下文中的结构和行为方面,其中结构方面表示类图中的属性和关联,行为方面表示类方法。它研究了如何从结构方面推导类方法,给出了一个小的结构细化规则集本文的主要思想来源于这些工作,但在本文中,我们试图将它们应用到汽车软件领域,并试图使它们在实际开发中实用化。汽车软件的领域特点和应用背景决定了汽车软件的建模标记法的选择例如,我们选择EAST-ADL 2来描述软件的结构,一方面是因为EAST-ADL 2是一个被工程师们广泛认可的工业标准,另一方面是因为EAST-ADL 2具有足够的限制性和表达性来表达期望的结构信息。SaveCCM [12]和AML(Automotive UML)[14]是与本文类似的作品与本文中所表达的基本思想一样,SaveCCM也将软件分为结构和行为两个方面。它的行为模型由任务自动机形式化[13]指定,这是带有任务的时间自动机的扩展。注意,SaveCCM是用于软件设计目的而不是需求分析的模型,因为任务自动机主要用于执行任务的可扩展性分析,但在需求级别尚未识别出任务。SaveCCM的主要缺点是它没有用于描述汽车系统的通信架构的符号AML是一种根据开发需求X. Liu,Z.Zhu/Electronic Notes in Theoretical Computer Science 274(2011)3349汽车嵌入式系统它为汽车应用提供了抽象层次和必要的建模元素,如功能,功能变体和功能网络。AML的主要弱点是它没有提供行为建模的符号。对于复杂的软件系统,单一的形式化方法往往不能适用于系统的所有方面,因此许多研究工作致力于综合形式化方法的研究,即把几种形式化方法结合起来描述整个系统。CSP-OZ [15]是一种集成CSP和Object-Z形式主义的方法。CSP用于为数据结构和基于状态的规范建模行为方面和Object-Z。为了对与时间相关的行为进行建模,提出了CSP-OZ-DC [16]形式主义,该形式主义还集成了持续时间演算公式以指定系统的时序属性。本文采用时间自动机和持续时间演算公式对时间行为进行了建模。前者用于模拟软件的顶层操作(反应)行为,后者用于指定信号值的时间变化7结论和未来工作本文对如何从需求文档中提取模型进行了研究支持汽车软件的模型驱动方法。我们还提出了一种将这些方面模型连接在一起以形成完整的需求规范的方法。在未来,我们希望在两个方向上继续这项工作:首先,我们希望扩展我们的框架,以包括额外的建模概念和性能特征,例如函数变量,QoS,安全性和可靠性,资源和调度属性。有了这些性能参数,我们就可以对模型进行性能分析;第二个工作是扩展现有的工具,以支持模型仿真,整体可扩展性分析和性能分析。引用[1] R. Chen,M.斯格罗伊湖拉瓦尼奥湾Martin,A. Sangiovanni-Vincentelli和J. Rabaey。UML和基于平台的设计。UML for
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功