Enterprise Architect 中的可追溯性状态图(需求覆盖范围)

问题描述 投票:0回答:1

我正在努力使用 EA v15.0 创建图表来显示可追溯性状态 我定义了一个具有两个构造型“客户需求”和“软件需求”的模型(eapx 文件),它们应通过实现链接链接在一起。

主要目标是获得类似 this 的图表 将至少有一个与软件需求的实现链接的客户需求显示为“是”(已涵盖),否则显示为“否”(未涵盖)。

您对创建这个有什么建议吗?我认为自定义 SQL 可以完成这项工作...

我已经使用以下 SQL 查询创建了一些 SQL 查询来获取涵盖的客户需求列表(对于未涵盖的客户需求也类似)作为 ModelView 元素:


SELECT t_object.ea_guid AS CLASSGUID, t_object.Object_Type AS CLASSTYPE, t_object.Name AS [Requirement], t_package.Name AS Package, t_object.Status, t_object.Stereotype 
FROM t_package 
INNER JOIN t_object ON t_package.Package_ID=t_object.Package_ID 
WHERE t_object.Object_ID IN 
(
    SELECT t_connector.End_Object_ID 
    FROM t_connector 
    INNER JOIN t_object on t_connector.Start_Object_ID = t_object.Object_ID
    WHERE t_connector.connector_Type='Realisation'
    AND t_object.Stereotype = 'Software Requirement'
) 
AND t_object.Stereotype='Customer Requirement' 

我获得了一个元素列表,例如this

但是,出于报告目的,我想在图表中总结需求覆盖率状态。我认为这可以通过使用自定义 SQL 作为源的标准图表来实现,但我无法定义 SQL 查询。

sql charts enterprise-architect traceability
1个回答
0
投票

使用这样的查询应该可以工作。
您正在寻找两套:

A) 通过软件需求实现的客户需求。这些在第一个查询中由 Realized

表示

B) 通过软件需求实现的客户需求。这些在第一个查询中由 Not Realized

表示

两个查询均使用

union all
连接。然后,EA 只需计算已实现和未实现的数量,并将它们放入饼图中。

select 'Realized' AS Series  
from t_object o
where o.Stereotype = 'Customer Requirement' 
and exists 
    (select o.ea_guid from (t_object rq
    inner join t_connector c on (c.Start_Object_ID = rq.Object_ID
                            and c.Connector_Type = 'Realisation'))
    where rq.Stereotype = 'Software Requirement'
    and c.End_Object_ID = o.Object_ID)
union all
select 'Not Realised' AS Series  
from t_object o
where o.Stereotype = 'Customer Requirement' 
and not exists 
    (select o.ea_guid from (t_object rq
    inner join t_connector c on (c.Start_Object_ID = rq.Object_ID
                            and c.Connector_Type = 'Realisation'))
    where rq.Stereotype = 'Software Requirement'
    and c.End_Object_ID = o.Object_ID)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.