16、基于测试估值的Alloy模型求解器草图绘制

基于测试估值的Alloy模型求解器草图绘制

1. 利用测试估值完成草图模型

在进行Alloy模型草图绘制时,要让最终的草图模型一次性满足所有测试。例如,将测试转化为相应的事实,像Test0会变成如下事实:

fact Test0 {
    some L0: List {
        let ls = L0 | let header = none->none | let ns = none | let links = none->none |
        Acyclic[ls, header, ns, links] 
    }
}
2. 调用Alloy分析器填补漏洞

最终的元模型由之前生成的各个部分组成。ASketch会调用Alloy分析器,对最终的元模型执行一个空的运行命令( run {} )。分析器会搜索结果R sigs的可能估值,使其符合所有测试。例如,RQ1评估为Q_All,RCO2评估为CO_In,RE3评估为E3_1,RCO4评估为CO_NIn,RE5评估为E3_2。最后,ASketch会将结果值映射到相应的Alloy片段,并向用户报告所有漏洞的具体值。完成后的草图模型如下:

one sig List { header: lone Node }
sig Node { link: lone Node }
pred Acyclic() { all n: Node | n in List.header.*link => n !in n.^l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值