Skip to content

Commit 9511422

Browse files
Giu PlataniaGiu Platania
authored andcommitted
moving from Master to Main
1 parent 3d5143b commit 9511422

File tree

593 files changed

+448324
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

593 files changed

+448324
-0
lines changed

Checks/DAF Validator V1.xlsx

13.7 KB
Binary file not shown.

Checks/Daf.xml

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Check>
3+
<CheckId>0901</CheckId>
4+
<CheckDescription>Use Cases that are not in exactly one Boundary</CheckDescription>
5+
<QueryToFindElements>
6+
<Main>
7+
SELECT o.ea_guid AS ItemGuid
8+
FROM ((((((t_object o
9+
INNER JOIN t_package p ON p.Package_ID = o.Package_ID)
10+
LEFT JOIN t_package Package_p1 ON Package_p1.Package_id = p.parent_id)
11+
LEFT JOIN t_package Package_p2 ON Package_p2.Package_id = Package_p1.parent_id)
12+
LEFT JOIN t_package Package_p3 ON Package_p3.Package_id = Package_p2.parent_id)
13+
LEFT JOIN t_package Package_p4 ON Package_p4.Package_id = Package_p3.parent_id)
14+
LEFT JOIN t_package Package_p5 ON Package_p5.Package_id = Package_p4.parent_id)
15+
WHERE o.Object_Type = 'UseCase'
16+
AND (o.StereoType IS NULL OR (o.Stereotype &lt;&gt; 'bProcessUC' AND o.Stereotype &lt;&gt; 'Business Transaction'))
17+
</Main>
18+
<Filters>
19+
<Change>
20+
AND o.ea_guid in (
21+
SELECT oChange.ea_guid
22+
FROM t_object oChange
23+
INNER JOIN t_objectproperties opChange ON oChange.Object_ID = opChange.Object_ID
24+
WHERE opChange.Property = 'CR'
25+
AND opChange.Value = '#SearchTerm#'
26+
)
27+
</Change>
28+
<Release>
29+
AND o.ea_guid in (
30+
SELECT o2.ea_guid
31+
FROM (t_object o2
32+
INNER JOIN t_objectproperties op2 ON o2.Object_ID = op2.Object_ID)
33+
WHERE op2.Property = 'CR'
34+
AND op2.Value in (
35+
SELECT oChange.ea_guid
36+
FROM ((t_object oRelease
37+
INNER JOIN t_connector con ON oRelease.Object_ID = con.End_Object_ID)
38+
INNER JOIN t_object oChange ON con.Start_Object_ID = oChange.Object_ID)
39+
WHERE oRelease.ea_guid = '#SearchTerm#'
40+
)
41+
)
42+
</Release>
43+
<Package>
44+
AND p.Package_ID in (#Branch#)
45+
</Package>
46+
<FunctionalDesign>
47+
AND o.ea_guid in (
48+
SELECT o1.ea_guid
49+
FROM t_object o1
50+
INNER JOIN t_diagramobjects do1 ON do1.Object_ID = o1.Object_ID
51+
INNER JOIN t_diagram d1 ON d1.Diagram_ID = do1.Diagram_ID
52+
WHERE d1.ea_guid = '#SearchTerm#'
53+
)
54+
</FunctionalDesign>
55+
</Filters>
56+
</QueryToFindElements>
57+
<QueryToCheckFoundElements>
58+
<Main>
59+
SELECT o.Name AS ItemName
60+
, 'object' as ItemType
61+
, o.ea_guid AS ItemGuid
62+
, o.Object_Type AS ElementType
63+
, o.StereoType AS ElementStereotype
64+
, p.name AS PackageName
65+
, package_p1.name AS PackageParentLevel1
66+
, package_p2.name AS PackageParentLevel2
67+
, package_p3.name AS PackageParentLevel3
68+
, package_p4.name AS PackageParentLevel4
69+
, package_p5.name AS PackageParentLevel5
70+
FROM ((((((t_object o
71+
INNER JOIN t_package p ON p.Package_ID = o.Package_ID)
72+
LEFT JOIN t_package Package_p1 ON Package_p1.Package_id = p.parent_id)
73+
LEFT JOIN t_package Package_p2 ON Package_p2.Package_id = Package_p1.parent_id)
74+
LEFT JOIN t_package Package_p3 ON Package_p3.Package_id = Package_p2.parent_id)
75+
LEFT JOIN t_package Package_p4 ON Package_p4.Package_id = Package_p3.parent_id)
76+
LEFT JOIN t_package Package_p5 ON Package_p5.Package_id = Package_p4.parent_id)
77+
WHERE o.ea_guid in (#ElementGuids#)
78+
AND o.ea_guid NOT IN
79+
(
80+
SELECT o.ea_guid
81+
FROM t_object o
82+
INNER JOIN t_diagramobjects do on do.Object_ID = o.Object_ID
83+
INNER JOIN t_diagram d on d.Diagram_ID = do.Diagram_ID
84+
INNER JOIN t_diagramobjects do2 on do2.Diagram_ID = d.Diagram_ID
85+
INNER JOIN t_object o2 on o2.Object_ID = do2.Object_ID
86+
WHERE o.Object_Type = 'UseCase'
87+
AND d.Diagram_Type = 'Use Case'
88+
AND (o.StereoType IS NULL OR (o.Stereotype &lt;&gt; 'bProcessUC' AND o.Stereotype &lt;&gt; 'Business Transaction'))
89+
AND o2.Object_Type = 'Boundary'
90+
AND do2.RectRight &gt;= do.RectRight
91+
AND do2.RectLeft &lt;= do.RectLeft
92+
AND do2.RectBottom &lt;= do.RectBottom
93+
AND do2.RectTop &gt;= do.RectTop
94+
GROUP BY o.ea_guid
95+
HAVING COUNT(o.ea_guid)=1
96+
)
97+
</Main>
98+
<Parameters></Parameters>
99+
</QueryToCheckFoundElements>
100+
<WarningType>Error</WarningType>
101+
<Rationale>A UseCase must appear in exactly 1 Boundary (of all Use Case-diagrams)</Rationale>
102+
<ProposedSolution></ProposedSolution>
103+
</Check>
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Check>
3+
<CheckId>00</CheckId>
4+
<CheckDescription>Elements with the EA status Approved</CheckDescription>
5+
<QueryToFindElements>
6+
<Main>SELECT o1.ea_guid AS ItemGuid
7+
FROM ((((((t_object as o1
8+
INNER JOIN t_Package p ON p.Package_ID = o1.Package_ID)
9+
LEFT JOIN t_Package Package_p1 ON Package_p1.Package_id = p.parent_id)
10+
LEFT JOIN t_Package Package_p2 ON Package_p2.Package_id = Package_p1.parent_id)
11+
LEFT JOIN t_Package Package_p3 ON Package_p3.Package_id = Package_p2.parent_id)
12+
LEFT JOIN t_Package Package_p4 ON Package_p4.Package_id = Package_p3.parent_id)
13+
LEFT JOIN t_Package Package_p5 ON Package_p5.Package_id = Package_p4.parent_id)
14+
15+
Where o1.Status IS NOT NULL</Main>
16+
<Filters>
17+
<Change>
18+
AND o.ea_guid in (
19+
SELECT oChange.ea_guid
20+
FROM t_object oChange
21+
INNER JOIN t_objectproperties opChange ON oChange.Object_ID = opChange.Object_ID
22+
WHERE opChange.Property = 'CR'
23+
AND opChange.Value = '#SearchTerm#'
24+
)
25+
</Change>
26+
<Release>
27+
AND o.ea_guid in (
28+
SELECT o2.ea_guid
29+
FROM (t_object o2
30+
INNER JOIN t_objectproperties op2 ON o2.Object_ID = op2.Object_ID)
31+
WHERE op2.Property = 'CR'
32+
AND op2.Value in (
33+
SELECT oChange.ea_guid
34+
FROM ((t_object oRelease
35+
INNER JOIN t_connector con ON oRelease.Object_ID = con.End_Object_ID)
36+
INNER JOIN t_object oChange ON con.Start_Object_ID = oChange.Object_ID)
37+
WHERE oRelease.ea_guid = '#SearchTerm#'
38+
)
39+
)
40+
</Release>
41+
<Package>
42+
AND p.Package_ID in (#Branch#)
43+
</Package>
44+
<FunctionalDesign></FunctionalDesign>
45+
</Filters>
46+
</QueryToFindElements>
47+
<QueryToCheckFoundElements>
48+
<Main>SELECT o.Name AS ItemName
49+
, 'object' as ItemType
50+
, o.ea_guid AS ItemGuid
51+
, o.Object_Type AS ElementType
52+
, o.StereoType AS ElementStereotype
53+
, p.name AS PackageName
54+
, package_p1.name AS PackageParentLevel1
55+
, package_p2.name AS PackageParentLevel2
56+
, package_p3.name AS PackageParentLevel3
57+
, package_p4.name AS PackageParentLevel4
58+
, package_p5.name AS PackageParentLevel5
59+
FROM ((((((t_object o
60+
INNER JOIN t_package p ON p.Package_ID = o.Package_ID)
61+
LEFT JOIN t_package package_p1 ON package_p1.package_id = p.parent_id)
62+
LEFT JOIN t_package package_p2 ON package_p2.package_id = package_p1.parent_id)
63+
LEFT JOIN t_package package_p3 ON package_p3.package_id = package_p2.parent_id)
64+
LEFT JOIN t_package package_p4 on package_p4.package_id = package_p3.parent_id)
65+
LEFT JOIN t_package package_p5 on package_p5.package_id = package_p4.parent_id)
66+
WHERE o.ea_guid in (#ElementGuids#)
67+
AND o.ea_guid not in (
68+
69+
Select o1.ea_guid
70+
from t_object as o1
71+
72+
Where o1.Status = 'Approved'
73+
74+
)</Main>
75+
<Parameters></Parameters>
76+
</QueryToCheckFoundElements>
77+
<WarningType>Warning</WarningType>
78+
<Rationale>Approved status indicates that the Element is not managed</Rationale>
79+
<ProposedSolution>Sewt the status</ProposedSolution>
80+
</Check>
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Check>
3+
<CheckId>01</CheckId>
4+
<CheckDescription>a Diagram must not contain more than 25 elements</CheckDescription>
5+
<QueryToFindElements>
6+
<Main>SELECT DISTINCT d.ea_guid AS ItemGuid
7+
FROM (((((((t_DiagramObjects as o1
8+
INNER JOIN t_diagram as d on d.Diagram_ID = o1.Diagram_ID)
9+
INNER JOIN t_Package p ON p.Package_ID = d.Package_ID)
10+
LEFT JOIN t_Package Package_p1 ON Package_p1.Package_id = p.parent_id)
11+
LEFT JOIN t_Package Package_p2 ON Package_p2.Package_id = Package_p1.parent_id)
12+
LEFT JOIN t_Package Package_p3 ON Package_p3.Package_id = Package_p2.parent_id)
13+
LEFT JOIN t_Package Package_p4 ON Package_p4.Package_id = Package_p3.parent_id)
14+
LEFT JOIN t_Package Package_p5 ON Package_p5.Package_id = Package_p4.parent_id)
15+
16+
WHERE d.ea_GUID IS NOT NULL</Main>
17+
<Filters>
18+
<Change>
19+
AND o.ea_guid in (
20+
SELECT oChange.ea_guid
21+
FROM t_object oChange
22+
INNER JOIN t_objectproperties opChange ON oChange.Object_ID = opChange.Object_ID
23+
WHERE opChange.Property = 'CR'
24+
AND opChange.Value = '#SearchTerm#'
25+
)
26+
</Change>
27+
<Release>
28+
AND o.ea_guid in (
29+
SELECT o2.ea_guid
30+
FROM (t_object o2
31+
INNER JOIN t_objectproperties op2 ON o2.Object_ID = op2.Object_ID)
32+
WHERE op2.Property = 'CR'
33+
AND op2.Value in (
34+
SELECT oChange.ea_guid
35+
FROM ((t_object oRelease
36+
INNER JOIN t_connector con ON oRelease.Object_ID = con.End_Object_ID)
37+
INNER JOIN t_object oChange ON con.Start_Object_ID = oChange.Object_ID)
38+
WHERE oRelease.ea_guid = '#SearchTerm#'
39+
)
40+
)
41+
</Release>
42+
<Package>
43+
AND p.Package_ID in (#Branch#)
44+
</Package>
45+
<FunctionalDesign></FunctionalDesign>
46+
</Filters>
47+
</QueryToFindElements>
48+
<QueryToCheckFoundElements>
49+
<Main>SELECT COUNT (o.Object_ID) AS 'ElementCount', d.Name AS ItemName
50+
, 'Diagram' as ItemType
51+
, d.ea_guid AS ItemGuid
52+
, d.Diagram_Type AS ElementType
53+
, d.StereoType AS ElementStereotype
54+
, p.name AS PackageName
55+
, package_p1.name AS PackageParentLevel1
56+
, package_p2.name AS PackageParentLevel2
57+
, package_p3.name AS PackageParentLevel3
58+
, package_p4.name AS PackageParentLevel4
59+
, package_p5.name AS PackageParentLevel5
60+
FROM (((((( (t_Diagramobjects o
61+
INNER JOIN t_Diagram as d on d.Diagram_ID = o.Diagram_ID)
62+
INNER JOIN t_package p ON p.Package_ID = d.Package_ID)
63+
LEFT JOIN t_package package_p1 ON package_p1.package_id = p.parent_id)
64+
LEFT JOIN t_package package_p2 ON package_p2.package_id = package_p1.parent_id)
65+
LEFT JOIN t_package package_p3 ON package_p3.package_id = package_p2.parent_id)
66+
LEFT JOIN t_package package_p4 on package_p4.package_id = package_p3.parent_id)
67+
LEFT JOIN t_package package_p5 on package_p5.package_id = package_p4.parent_id)
68+
69+
GROUP BY d.EA_GUID, d.Name, d.ea_guid, d.Diagram_Type, d.Stereotype, p.name, package_p1.name, package_p2.name, package_p3.name, package_p4.name, package_p5.name
70+
71+
Having COUNT(o.Object_ID)&gt;25
72+
AND d.EA_GUID IN (#ElementGuids#)</Main>
73+
<Parameters></Parameters>
74+
</QueryToCheckFoundElements>
75+
<WarningType>Warning</WarningType>
76+
<Rationale>Ideally a diagram should not contains more that seven elements</Rationale>
77+
<ProposedSolution>Relocate elelements, create frill-in visualization </ProposedSolution>
78+
</Check>
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Check>
3+
<CheckId>003</CheckId>
4+
<CheckDescription> diagrams without objects</CheckDescription>
5+
<QueryToFindElements>
6+
<Main>SELECT d.ea_guid AS ItemGuid
7+
FROM (((((((t_diagram d
8+
INNER JOIN t_package p on p.Package_ID = d.Package_ID)
9+
INNER JOIN t_object o on (o.Object_ID = d.ParentID and o.Stereotype in ('TMF_Process', 'TMF_ABE', 'TMF_Application','TMF_Domain', 'TMF_Vertical', 'TMF_IIC', 'TMF_Function' )))
10+
LEFT JOIN t_package package_p1 on package_p1.package_id = p.parent_id)
11+
LEFT JOIN t_package package_p2 on package_p2.package_id = package_p1.parent_id)
12+
LEFT JOIN t_package package_p3 on package_p3.package_id = package_p2.parent_id)
13+
LEFT JOIN t_Package Package_p4 on Package_p4.Package_id = Package_p3.parent_id)
14+
LEFT JOIN t_Package Package_p5 on Package_p5.Package_id = Package_p4.parent_id)
15+
WHERE d.Diagram_Type = 'Custom'</Main>
16+
<Filters>
17+
<Change></Change>
18+
<Release></Release>
19+
<Package>
20+
AND p.Package_ID in (#Branch#)
21+
</Package>
22+
<FunctionalDesign></FunctionalDesign>
23+
</Filters>
24+
</QueryToFindElements>
25+
<QueryToCheckFoundElements>
26+
<Main>
27+
SELECT d.Name AS ItemName
28+
, 'diagram' as ItemType
29+
, d.ea_guid AS ItemGuid
30+
, d.Diagram_Type AS ElementType
31+
, d.StereoType AS ElementStereotype
32+
, p.name AS PackageName
33+
, package_p1.name AS PackageParentLevel1
34+
, package_p2.name AS PackageParentLevel2
35+
, package_p3.name AS PackageParentLevel3
36+
, package_p4.name AS PackageParentLevel4
37+
, package_p5.name AS PackageParentLevel5
38+
FROM ((((((t_diagram d
39+
INNER JOIN t_package p on p.Package_ID = d.Package_ID)
40+
LEFT JOIN t_package package_p1 on package_p1.package_id = p.parent_id)
41+
LEFT JOIN t_package package_p2 on package_p2.package_id = package_p1.parent_id)
42+
LEFT JOIN t_package package_p3 on package_p3.package_id = package_p2.parent_id)
43+
LEFT JOIN t_package package_p4 on package_p4.package_id = package_p3.parent_id)
44+
LEFT JOIN t_package package_p5 on package_p5.package_id = package_p4.parent_id)
45+
WHERE d.ea_guid in (#ElementGuids#)
46+
AND not exists (
47+
SELECT do.Diagram_ID
48+
FROM t_diagramobjects do
49+
WHERE do.Diagram_ID = d.Diagram_ID
50+
)
51+
</Main>
52+
<Parameters></Parameters>
53+
</QueryToCheckFoundElements>
54+
<WarningType>Error</WarningType>
55+
<Rationale>an empty diagram is confusing</Rationale>
56+
<ProposedSolution>delete the diagram</ProposedSolution>
57+
</Check>

0 commit comments

Comments
 (0)