CN102880548A - 一种基于行为描述的aadl可靠性模型生成方法 - Google Patents
一种基于行为描述的aadl可靠性模型生成方法 Download PDFInfo
- Publication number
- CN102880548A CN102880548A CN201210345740XA CN201210345740A CN102880548A CN 102880548 A CN102880548 A CN 102880548A CN 201210345740X A CN201210345740X A CN 201210345740XA CN 201210345740 A CN201210345740 A CN 201210345740A CN 102880548 A CN102880548 A CN 102880548A
- Authority
- CN
- China
- Prior art keywords
- error
- model
- state
- error model
- aadl
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及一种基于行为描述的AADL可靠性模型生成方法,根据行为模型说明了构件的演化过程,若错误模型是基于行为模型产生的,那么每个错误就会明确地与构件的具体行为联系起来。另一方面,错误模型间的交互若能依赖于架构模型自动生成,则可以保证可靠性模型的准确性和全面性。因此,本发明在深入研究AADL架构模型、错误模型和行为模型的基础上,提出在构件层实现错误模型的自动化生成。本发明能够保证错误模型间交互的准确性和全面性,时的系统可靠性模型的完整性,保证可靠性评估的准确性。
Description
技术领域
本发明涉及嵌入式系统,具体涉及一种基于行为描述的AADL可靠性模型生成方法。
背景技术
为了满足开发新型的嵌入式系统的需求,美国自动化工程师协会发布了航空标准AS5506——架构分析与设计语言(Architecture Analysis and Design Language,AADL)。AADL对基于模型的分析和复杂实时嵌入式系统的描述有很好的支持,通过构件以及构件间的交互、软件构件、硬件构件和系统构件的绑定,对实时高可靠嵌入式系统进行描述与分析;并基于系统的交互模型对系统非功能属性进行分析与评估,如果AADL模型不能满足非功能属性的需求,那么可以在架构这一级别对系统进行重新设计和构造,使得最终满足可靠性的要求。
AADL架构模型:描述了系统层次化的组成结构,从功能实现和分解的角度,将系统逐层分解,将系统的功能逐步分解到系统、子系统和构件级别。在AADL架构模型中可以定义系统中软构件、硬构件以及构件间的交互。构件定义包括构件类型和构件实现,前者呈现了构件对外的接口特征,后者包括了构件内部的实现细节。
AADL错误模型:以附录库的形式存在,支持AADL对系统可靠性的建模。AADL错误模型定义包括错误模型类型和错误模型实现。错误状态和错误事件或错误传播定义在错误模型类型中,描述了构件可能处于的状态以及可能发生的错误。错误模型实现中定义了错误状态间的迁移,描述了构件或系统的错误行为。
基于AADL描述的系统可靠性模型由架构模型和错误模型组成,描述了系统的架构层次和可靠性相关的信息。
AADL行为模型:也被称为行为说明(behavior-specification),和错误模型类似,AADL行为模型也是通过扩展AADL标准实现的。不同的是,AADL行为模型必须与架构模型定义在一起。在行为模型中,设计者不仅可以对构件的状态进行详细地定义,而且还可以对状态迁移的发生条件(guard)以及伴随着状态转换构件所执行的处理(action)进行详细刻画,较全面准确地描述了构件所实现的功能。
构件的错误模型宏观地描述了构件可能处于的状态以及由错误事件驱动的状态间的转换,整体说明了错误导致构件的状态演化过程。但是,对于设计者来说,并不清楚构件的哪些行为可能导致了构件进入错误状态,导致这种错误的原因什么更是不知道,不能将构件的行为与其可能导致的错误联系起来,建模者无法从错误模型中找出影响系统可靠性的重要因素。
错误模型间的交互依赖于系统架构模型中构件间的交互,错误如何在错误模型间传播,依赖于系统中构件间的消息传递。但是目前错误模型间的交互仅靠建模者对系统架构模型的理解,不能保证错误模型间交互的准确性和全面性,影响系统可靠性模型的完整性,最终导致可靠性评估不准确。
发明内容
要解决的技术问题
为了避免现有技术的不足之处,本发明提出一种基于行为描述的AADL可靠性模型生成方法。
技术方案
一种基于行为描述的AADL可靠性模型生成方法,其特征在于步骤如下:
步骤1:遍历系统基于AADL描述的架构模型,对定义了行为说明的构件进行标记;并在与架构模型相同的工程目录下,构造一个空的错误附录库;
步骤2:构造一个通用错误模型并加入到步骤1构造的错误附录库中,得到一个仅含通用错误模型的附录库;
步骤3:针对步骤1中被标记的构件分别生成空的错误模型类型error model type和空的错误模型实现error model implementation,并存放到步骤1生成的错误附录库中;所述错误模型类型和错误模型实现的命名匹配方式符合AADL错误附录中的要求;
步骤4:将系统内AADL描述的架构模型中、行为模型中定义的状态作为错误状态全部添加到错误模型类型中;若状态在行为模型中被标记为初始状态,则在错误模型中也将其标记为初始错误状态initial error state,其他的直接定义为一般错误状态error state;
步骤5:将系统的AADL描述的架构模型中、构件行为模型中transitions部分中定义的每一个transition,在构件对应的错误模型类型和错误模型实现中进行如下操作:
在错误模型类型中添加错误事件free;
当行为模型中状态迁移中初始状态和目的状态是不同的状态时,找出错误模型类型中经过步骤4已生成的错误状态,并以事件free作为驱动事件,建立错误状态迁移,并添加到错误模型实现中;
步骤6:查看构件行为模型中transitions部分中定义的每一个transition转换条件guard和依附其的操作部分action,若在所有的transition中二者都为空,直接进入步骤7;否则,在错误模型类型中添加错误状态failed;然后在构件对应的错误模型类型和错误模型实现中进行如下操作:
步骤(1)当transition的转换的条件guard不为空时,根据错误分类表提取里面发生的错误,并生成错误事件,添加到错误模型类型中;
步骤(2)当依附于transition的操作action部分不为空时,对其中构件执行的动作语句参照错误分类表,提取构件在操作的过程中可能出现的错误或故障,生成错误事件error event,添加到错误模型类型中;
步骤(3)根据行为模型中该迁移的源状态,找出对应错误模型类型中的错误状态并作为源状态,目的状态为failed状态,以步骤(1)和步骤(2)中生成的错误事件为驱动事件,生成错误状态迁移,并添加到构件的错误模型实现中;
所述步骤3-6对在步骤1中被标记的构件都要执行一遍:
步骤7:利用osate提供的系统实例化功能,对最外层的系统进行实例化;
步骤8:找到实例化后的系统中连接的最初的源构件和最终的目的构件,在最初的源最初源构件的错误模型中添加向外错误传播,在最终的目的构件的错误模型中添加接收错误传播;所述向外错误传播和接收错误传播的命名方式遵循AADL约束要求;
若在上述给错误模型添加错误传播的过程中,构件不存在错误模型,则查看其所在的上层构件是否存在错误模型,存在的话,则直接在上层构件的错误模型中添加错误传播;如果一直找不到错误模型,则将通用错误模型作为该构件的错误模型,并且向错误模型类型中添加命名相匹配的错误传播;
步骤9:以初始错误状态和“failed“分别为源状态和目的状态,以错误传播为驱动事件,在错误模型实现中,添加错误状态迁移;
步骤10:将原来架构模型里构件实现中定义的行为附录子库去掉,并添加错误附录子库annex error_model;在附录子库中添加Model属性,将生成的错误模型实例化给架构模型中的构件;
所述错误分类表为:
有益效果
本发明提出的一种基于行为描述的AADL可靠性模型生成方法,根据行为模型说明了构件的演化过程,若错误模型是基于行为模型产生的,那么每个错误就会明确地与构件的具体行为联系起来。另一方面,错误模型间的交互若能依赖于架构模型自动生成,则可以保证可靠性模型的准确性和全面性。因此,本发明在深入研究AADL架构模型、错误模型和行为模型的基础上,提出在构件层实现错误模型的自动化生成。本发明能够保证错误模型间交互的准确性和全面性,时的系统可靠性模型的完整性,保证可靠性评估的准确性。
附图说明
图1为本发明实施例的系统架构图;
图2仅包含通用错误模型的错误附录库;
图3经过步骤5后,错误模型附录库;
图4线程th_average的错误模型;
图5线程th_merge的错误模型;
图6线程th_screen的错误模型;
图7系统的错误附录库,包含系统中所有构件的错误模型;
图8添加了错误附录子库的系统架构模型。
具体实施方式
现结合实施例、附图对本发明作进一步描述:
下面是基于AADL描述的系统架构模型:
1、按步骤1,遍历查看系统的AADL架构模型,因为线程构件th_average.impl和th_merge.impl中定义了行为说明,被标记;
2、按步骤2,构造一个空的错误附录库,包名取为myerrormodels;生成通用错误模型,并加入到附录库中。此时,错误附录库如图2所示
3、按步骤3,给构件th_average生成错误模型类型和错误模型实现:
error model EM_th_average
end EM_th_average;
error model EM_th_average.impl
end EM_th_average.impl;
4、按步骤4,参照行为说明中的states部分,在线程th_average的错误模型类型中添加错误状态,即在EM_th_average中添加错误状态s0、s1,并且将s0标记为初始错误状态。
5、按步骤5:参照行为说明中的transitions部分,首先在错误模型中添加错误事件free,然后建立错误状态间的迁移:
s0-[free]->s1,此时错误附录库如图3所示。
6、按步骤6:查看行为说明中的transitions部分,首先分析第一个transition:
s0-[indata?]->s0{
if(indata>=0)sum:=sum+indata;cont:=cont+1;
else outdata:=sum/cont;outdata!;end if;};
guard和action都不为空,则向EM_th_average添加:failed:error state;
(1)分析transition发生的guard条件,不在考虑范围内;
(2)分析依附于transition发生的action部分,结合错误的分类,可知线程th_average在运行的过程中,可能出现运算错误和逻辑错误。因此向错误模型类型EM_th_average中添加:
operatingerror:error event;
logicerror:error event;
(3)查看行为说明,可知上述所分析的transition的源状态是s0,因此向EM_th_average.impl中添加:
s0-[operatingerror,logicerror]->failed;
同样,对第二个transition,进行分析处理:
s0-[outdata!]->s1{sum:=0;}
分析action部分,很明显可能会发生运算错误,运算错误在错误模型中已经添加过,不需要在错误模型类型中添加;且发生错误的源状态相同,因此错误模型实现中也不需要添加新元素。线程th_average的错误模型如图4所示。
按照步骤3-步骤6的说明,生成构件th_merge的错误模型EM_th_merge和EM_th_merge.impl,如图5所示。
7、按步骤7,首先利用OSATE提供的实例化功能,对最外层的系统进行实例化,结果如下所示:
system_example_impl_Instance.sub_sys1.sub_pro.sub_th.outdata
->system_example_impl_Instance.sub_sys2.sub_pr.sub_th1.p1
system_example_impl_Instance.sub_sys2.sub_pr.sub_th1.m
->system_example_impl_Instance.sub_sys2.sub_pr.sub_th2.indata
8、按步骤8,通过实例化结果,能够很容易地找到每一个连接的源和目的。
对于第一个连接实例化,源构件和目的构件都存在错误模型,因此直接添加新元素:
(1)源构件:在错误模型EM_th_average中分别添加:Errorpropagation_fth_averge:outerror propagation;
(2)目的构件:在错误模型EM_th_merge添加:Errorpropagation_fth_averge:in errorpropagation;
对于第二个连接实例化,只有源构件存在错误模型,因此执行下面的处理:
(1)源构件:在错误模型EM_th_merge直接添加:errorpropagation_fth_merge:out errorpropagation;
(2)目的构件:对通用错误模型类型进行复制,然后将错误模型类型的名字分别改为EM_th_screen,并在错误模型中添加:errorpropagation_fth_merge:in errorpropagation;
9、按步骤9,添加错误状态间的迁移:
对于第一个连接实例,执行下面的处理::
(1)源构件:在错误模型实现EM_th_average.impl中分别添加:
s0-[Errorpropagation_fth_averge]->failed;
(2)目的构件:在错误模型实现EM_th_merge.impl中分别添加:
s0-[Errorpropagation_fth_averge]->failed;
对于第二个连接实例,执行下面的处理:
(1)源构件:在错误模型实现EM_th_merge.impl中,直接添加:
s0-[errorpropagation_fth_merge]->failed;
(2)目的构件:对通用错误模型实现进行复制,然后将错误模型实现的名字改为EM_th_screen.impl,并在错误模型实现中添加:
errorfree-[errorpropagation_fth_merge]->failed;
对线程th_screen构造的错误模型如图6所示,系统的错误附录库如图7所示。
10、把原来构件实现中的行为说明去掉,并添加错误附录子库(annex error_model);在附录子库中添加Model属性,将生成的错误模型实例化给架构模型中的构件,如下所示,添加了错误附录子库的系统的架构模型如图8所示。
Claims (1)
1.一种基于行为描述的AADL可靠性模型生成方法,其特征在于步骤如下:
步骤1:遍历系统基于AADL描述的架构模型,对定义了行为说明的构件进行标记;并在与架构模型相同的工程目录下,构造一个空的错误附录库;
步骤2:构造一个通用错误模型并加入到步骤1构造的错误附录库中,得到一个仅含通用错误模型的附录库;
步骤3:针对步骤1中被标记的构件分别生成空的错误模型类型error model type和空的错误模型实现error model implementation,并存放到步骤1生成的错误附录库中;所述错误模型类型和错误模型实现的命名匹配方式符合AADL错误附录中的要求;
步骤4:将系统内AADL描述的架构模型中、行为模型中定义的状态作为错误状态全部添加到错误模型类型中;若状态在行为模型中被标记为初始状态,则在错误模型中也将其标记为初始错误状态initial error state,其他的直接定义为一般错误状态error state;
步骤5:将系统的AADL描述的架构模型中、构件行为模型中transitions部分中定义的每一个transition,在构件对应的错误模型类型和错误模型实现中进行如下操作:
在错误模型类型中添加错误事件free;
当行为模型中状态迁移中初始状态和目的状态是不同的状态时,找出错误模型类型中经过步骤4已生成的错误状态,并以事件free作为驱动事件,建立错误状态迁移,并添加到错误模型实现中;
步骤6:查看构件行为模型中transitions部分中定义的每一个transition转换条件guard和依附其的操作部分action,若在所有的transition中二者都为空,直接进入步骤7;否则,在错误模型类型中添加错误状态failed;然后在构件对应的错误模型类型和错误模型实现中进行如下操作:
步骤(1)当transition的转换的条件guard不为空时,根据错误分类表提取里面发生的错误,并生成错误事件,添加到错误模型类型中;
步骤(2)当依附于transition的操作action部分不为空时,对其中构件执行的动作语句参照错误分类表,提取构件在操作的过程中可能出现的错误或故障,生成错误事件error event,添加到错误模型类型中;
步骤(3)根据行为模型中该迁移的源状态,找出对应错误模型类型中的错误状态并作为源状态,目的状态为failed状态,以步骤(1)和步骤(2)中生成的错误事件为驱动事件,生成错误状态迁移,并添加到构件的错误模型实现中;
所述步骤3-6对在步骤1中被标记的构件都要执行一遍:
步骤7:利用osate提供的系统实例化功能,对最外层的系统进行实例化;
步骤8:找到实例化后的系统中连接的最初的源构件和最终的目的构件,在最初的源最初源构件的错误模型中添加向外错误传播,在最终的目的构件的错误模型中添加接收错误传播;所述向外错误传播和接收错误传播的命名方式遵循AADL约束要求;
若在上述给错误模型添加错误传播的过程中,构件不存在错误模型,则查看其所在的上层构件是否存在错误模型,存在的话,则直接在上层构件的错误模型中添加错误传播;如果一直找不到错误模型,则将通用错误模型作为该构件的错误模型,并且向错误模型类型中添加命名相匹配的错误传播;
步骤9:以初始错误状态和“failed“分别为源状态和目的状态,以错误传播为驱动事件,在错误模型实现中,添加错误状态迁移;
步骤10:将原来架构模型里构件实现中定义的行为附录子库去掉,并添加错误附录子库annex error_model;在附录子库中添加Model属性,将生成的错误模型实例化给架构模型中的构件;
所述错误分类表为:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210345740.XA CN102880548B (zh) | 2012-09-18 | 2012-09-18 | 一种基于行为描述的aadl可靠性模型生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210345740.XA CN102880548B (zh) | 2012-09-18 | 2012-09-18 | 一种基于行为描述的aadl可靠性模型生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102880548A true CN102880548A (zh) | 2013-01-16 |
CN102880548B CN102880548B (zh) | 2015-07-15 |
Family
ID=47481882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210345740.XA Expired - Fee Related CN102880548B (zh) | 2012-09-18 | 2012-09-18 | 一种基于行为描述的aadl可靠性模型生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102880548B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106325855A (zh) * | 2016-08-11 | 2017-01-11 | 南京航空航天大学 | 基于Prolog的AADL行为模型时间一致性验证方法 |
CN106874200A (zh) * | 2017-02-14 | 2017-06-20 | 南京航空航天大学 | 基于aadl的嵌入式软件可靠性建模与评估方法 |
CN110134599A (zh) * | 2019-05-09 | 2019-08-16 | 中国航空工业集团公司西安航空计算技术研究所 | 一种系统体系结构错误行为验证方法及装置 |
CN111274699A (zh) * | 2020-01-19 | 2020-06-12 | 北京航空航天大学 | 一种基于smartIflow的AADL模型的安全性分析方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070028220A1 (en) * | 2004-10-15 | 2007-02-01 | Xerox Corporation | Fault detection and root cause identification in complex systems |
CN102063369A (zh) * | 2010-12-23 | 2011-05-18 | 西北工业大学 | 一种基于aadl模态时间自动机模型的嵌入式软件测试方法 |
-
2012
- 2012-09-18 CN CN201210345740.XA patent/CN102880548B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070028220A1 (en) * | 2004-10-15 | 2007-02-01 | Xerox Corporation | Fault detection and root cause identification in complex systems |
CN102063369A (zh) * | 2010-12-23 | 2011-05-18 | 西北工业大学 | 一种基于aadl模态时间自动机模型的嵌入式软件测试方法 |
Non-Patent Citations (2)
Title |
---|
HU JIANG 等: "Implementing the compiler of AADL behavior annex using ANTLR", 《SOFTWARE ENGINEERING AND SERVICE SCIENCE (ICSESS), 2011 IEEE 2ND INTERNATIONAL CONFERENCE ON》 * |
冯冰 等: "一种面向AADL架构的模型测试方法", 《计算机测量与控制》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106325855A (zh) * | 2016-08-11 | 2017-01-11 | 南京航空航天大学 | 基于Prolog的AADL行为模型时间一致性验证方法 |
CN106325855B (zh) * | 2016-08-11 | 2019-07-23 | 南京航空航天大学 | 基于Prolog的AADL行为模型时间一致性验证方法 |
CN106874200A (zh) * | 2017-02-14 | 2017-06-20 | 南京航空航天大学 | 基于aadl的嵌入式软件可靠性建模与评估方法 |
CN110134599A (zh) * | 2019-05-09 | 2019-08-16 | 中国航空工业集团公司西安航空计算技术研究所 | 一种系统体系结构错误行为验证方法及装置 |
CN110134599B (zh) * | 2019-05-09 | 2023-06-23 | 中国航空工业集团公司西安航空计算技术研究所 | 一种系统体系结构错误行为验证方法及装置 |
CN111274699A (zh) * | 2020-01-19 | 2020-06-12 | 北京航空航天大学 | 一种基于smartIflow的AADL模型的安全性分析方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102880548B (zh) | 2015-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Beschastnikh et al. | Inferring models of concurrent systems from logs of their behavior with CSight | |
US10354042B2 (en) | Selectively reducing graph based analysis pessimism | |
CN101901186A (zh) | 一种嵌入式系统可靠性分析与评估方法 | |
CN102880548B (zh) | 一种基于行为描述的aadl可靠性模型生成方法 | |
CN101694618A (zh) | 适用于ajax框架的模型层与视图层数据自动映射方法 | |
WO2015143750A1 (zh) | 一种高速铁路列车运行控制车载系统故障逻辑建模方法 | |
US10169495B2 (en) | Method for verifying hardware/software co-designs | |
CN109634600B (zh) | 一种基于安全扩展SysML和AADL模型的代码生成方法 | |
CN111209203B (zh) | 一种基于源代码的模型验证方法 | |
CN105185414A (zh) | 一种测试方法和装置 | |
Li et al. | jQuery-based Ajax general interactive architecture | |
CN111324526A (zh) | 接口测试系统、方法和服务器 | |
WO2020000952A1 (zh) | 一种板卡互联网络数据的整合方法及装置 | |
CN111630950B (zh) | 一种基于双立互锁电路和冗余结构的集成电路设计方法 | |
EP3859528A2 (en) | Method and apparatus for handling memory failure, electronic device and storage medium | |
CN102156789B (zh) | Fpga约束文件自动生成系统及方法 | |
CN116541020A (zh) | 基于领域模型的代码生成方法、装置、设备、介质及产品 | |
Reiter et al. | Fault injection ecosystem for assisted safety validation of automotive systems | |
CN101034351A (zh) | 一种基于构件的模拟器自动生成方法 | |
CN105786787A (zh) | 基于Java的高效PDF报表测试方法 | |
CN111240972B (zh) | 一种基于源代码的模型验证装置 | |
JP2013235508A (ja) | オブジェクト指向プログラム生成装置、その方法、プログラム | |
US20150276872A1 (en) | Digital ic simulation | |
CN107153567B (zh) | 一种基于数据驱动的仿真模块 | |
Gao et al. | A model-based software development method for automotive cyber-physical systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150715 Termination date: 20170918 |
|
CF01 | Termination of patent right due to non-payment of annual fee |