我正在努力使用 EA v15.0 创建图表来显示可追溯性状态 我定义了一个具有两个构造型“客户需求”和“软件需求”的模型(eapx 文件),它们应通过实现链接链接在一起。
主要目标是获得类似 的图表 将至少有一个与软件需求的实现链接的客户需求显示为“是”(已涵盖),否则显示为“否”(未涵盖)。
您对创建这个有什么建议吗?我认为自定义 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'
但是,出于报告目的,我想在图表中总结需求覆盖率状态。我认为这可以通过使用自定义 SQL 作为源的标准图表来实现,但我无法定义 SQL 查询。
使用这样的查询应该可以工作。
您正在寻找两套:
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)