DXL 的需求覆盖

Requirement Coverage with DXL

我想通过 inlinks 从其他 doors 文档中找出我的要求的覆盖范围。 这是脚本:

Module m = current  
Object o = null

string NameLinkModule = "./xyz/abc"
Link InLink

int Req_Count = 0
int noInLinkCount = 0

for o in m do {
    
    if ((isMember(o."a","aaa")) && (isMember(o."b","bbb"))) {
        Req_Count++
        // Check for any inlinks at all
        bool no_inlink_flag = true
        for InLink in o <- NameLinkModule do {
            // If this executes, at least 1 inlink- flag and break
            no_inlink_flag = false
            break
        }
        // If no inlinks, increment and print object ID without inlink
        if ( no_inlink_flag ) {
            print o."ID"
            noInLinkCount++
        }
    }
}

print "Total Requirement Number = "
print Req_Count 
print "No In Link Count = "
print noInLinkCount
print "Coverage = "
int coverage = 100 * ((Req_Count - noInLinkCount) / Req_Count)
print coverage

不知何故没有任何inlink对象的个数不正确,它等于要求的总数,也就是说没有单个对象有任何inlink。但是我在当前模块中有 inlinks。我检查了 link 模块,那里还有 links.

我在做什么假的?

提前致谢!

使用 LinkRef 代替 Link

LinkRef InLink

在 GUI 中,当您单击传入 link 时,您会看到文本“未加载”,只有当您打开带有传出 link 的模块时,您才会看到有关的信息连接的对象。

这个转换为 DXL 的概念是 link 引用 (LinkRef) 和 links (Link) 之间的区别。在您的情况下,计算 LinkRefs 就足够了。仅当您需要有关远程对象的更多信息时,您首先必须使用传出的 link 打开模块,然后除了 LinkRef 之外,您还将拥有 Links link-传入模块