Skip to main content
aboutsummaryrefslogtreecommitdiffstats
blob: 91ffcdef4f5ec141050adde383b4604db89bce81 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="20110701" xmlns:xmi="http://www.omg.org/spec/XMI/20110701" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Requirements="http://www.eclipse.org/papyrus/0.7.0/SysML/Requirements" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/papyrus/0.7.0/SysML/Requirements http://www.eclipse.org/papyrus/0.7.0/SysML#//requirements">
  <uml:Model xmi:id="_60RQ0KNFEeKIdex8oETe9g" name="ConstraintGenerationFromProfile">
    <packagedElement xmi:type="uml:Package" xmi:id="_SKH78KNREeKYtpMIQ0VJGQ" name="Requirement">
      <packagedElement xmi:type="uml:Class" xmi:id="_z1zMYKNREeKYtpMIQ0VJGQ" name="ModelValidation"/>
      <packagedElement xmi:type="uml:Class" xmi:id="_2d4XAKNTEeKYtpMIQ0VJGQ" name="ConstraintRequirement"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="_aRu8QKNREeKYtpMIQ0VJGQ" name="UseCase">
      <ownedComment xmi:type="uml:Comment" xmi:id="_aejqsNKNEeKWVoUNffjMVg">
        <body>In order to validate constraints from a profile, first creation of constraint with specific annotations will be explained and then generation of validation will be explained. </body>
      </ownedComment>
      <packagedElement xmi:type="uml:Component" xmi:id="_9HsZEKNSEeKYtpMIQ0VJGQ" name="ValidationModule" useCase="_D0UpIKNTEeKYtpMIQ0VJGQ _RCkMEKNTEeKYtpMIQ0VJGQ _U89lEKNTEeKYtpMIQ0VJGQ _nSqKAKNTEeKYtpMIQ0VJGQ">
        <ownedUseCase xmi:type="uml:UseCase" xmi:id="_D0UpIKNTEeKYtpMIQ0VJGQ" name="Generate constraints directly into the definition" subject="_9HsZEKNSEeKYtpMIQ0VJGQ">
          <ownedComment xmi:type="uml:Comment" xmi:id="_r4fLAKNmEeK7_saMR_mmoA" annotatedElement="_D0UpIKNTEeKYtpMIQ0VJGQ">
            <body>Constraint written in OCL in the profile can be generated into the definition of the profile and taken in charge during the validation of the model.&#xD;
The problem with this use case if to know if it is possible to respect the requirement ValidationReq002.&#xD;
</body>
          </ownedComment>
        </ownedUseCase>
        <ownedUseCase xmi:type="uml:UseCase" xmi:id="_RCkMEKNTEeKYtpMIQ0VJGQ" name="Generate constraints as EMF validation plugins" subject="_9HsZEKNSEeKYtpMIQ0VJGQ">
          <ownedComment xmi:type="uml:Comment" xmi:id="_-oMLYKNmEeK7_saMR_mmoA" annotatedElement="_RCkMEKNTEeKYtpMIQ0VJGQ">
            <body>The user can generate plugins that wrap constraint and can be used in the EMF plugin validation.&#xD;
The constraint can be generated in Java code, or directly from OCL.&#xD;
</body>
          </ownedComment>
          <extensionPoint xmi:type="uml:ExtensionPoint" xmi:id="_rPSXoaNTEeKYtpMIQ0VJGQ" name="point"/>
        </ownedUseCase>
        <ownedUseCase xmi:type="uml:UseCase" xmi:id="_U89lEKNTEeKYtpMIQ0VJGQ" name="Generation from OCL constraint" subject="_9HsZEKNSEeKYtpMIQ0VJGQ">
          <ownedComment xmi:type="uml:Comment" xmi:id="_yAMJANKNEeKWVoUNffjMVg">
            <body>From OCL constraints, Papyrus can product a EMF validation plugin that can be installed in the platform and used to validate a model&#xD;
</body>
          </ownedComment>
          <extend xmi:type="uml:Extend" xmi:id="_rOr6sKNTEeKYtpMIQ0VJGQ" extendedCase="_RCkMEKNTEeKYtpMIQ0VJGQ" extensionLocation="_rPSXoaNTEeKYtpMIQ0VJGQ"/>
          <include xmi:type="uml:Include" xmi:id="_3nutMNJ1EeKWVoUNffjMVg" addition="_zdHt8NJ1EeKWVoUNffjMVg"/>
        </ownedUseCase>
        <ownedUseCase xmi:type="uml:UseCase" xmi:id="_nSqKAKNTEeKYtpMIQ0VJGQ" name="Generation from Java constraint" subject="_9HsZEKNSEeKYtpMIQ0VJGQ">
          <ownedComment xmi:type="uml:Comment" xmi:id="_1n-vENKNEeKWVoUNffjMVg">
            <body>From Java constraints, Papyrus can product a EMF validation plugin that can be installed in the platform and used to validate a model</body>
          </ownedComment>
          <extend xmi:type="uml:Extend" xmi:id="_sItS8KNTEeKYtpMIQ0VJGQ" extendedCase="_RCkMEKNTEeKYtpMIQ0VJGQ" extensionLocation="_rPSXoaNTEeKYtpMIQ0VJGQ"/>
          <include xmi:type="uml:Include" xmi:id="_4hdKgNJ1EeKWVoUNffjMVg" addition="_zdHt8NJ1EeKWVoUNffjMVg"/>
        </ownedUseCase>
      </packagedElement>
      <packagedElement xmi:type="uml:Actor" xmi:id="_DPIRYKNTEeKYtpMIQ0VJGQ" name="User"/>
      <packagedElement xmi:type="uml:Association" xmi:id="_tU4yMKNTEeKYtpMIQ0VJGQ" name="A_actor_generation constraints as emf validation plugins" memberEnd="_tU4yMaNTEeKYtpMIQ0VJGQ _tU4yNKNTEeKYtpMIQ0VJGQ">
        <ownedEnd xmi:type="uml:Property" xmi:id="_tU4yMaNTEeKYtpMIQ0VJGQ" name="actor" type="_DPIRYKNTEeKYtpMIQ0VJGQ" association="_tU4yMKNTEeKYtpMIQ0VJGQ">
          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tU4yMqNTEeKYtpMIQ0VJGQ" value="1"/>
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tU4yM6NTEeKYtpMIQ0VJGQ" value="1"/>
        </ownedEnd>
        <ownedEnd xmi:type="uml:Property" xmi:id="_tU4yNKNTEeKYtpMIQ0VJGQ" name="generation constraints as emf validation plugins" type="_RCkMEKNTEeKYtpMIQ0VJGQ" association="_tU4yMKNTEeKYtpMIQ0VJGQ">
          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tU4yNaNTEeKYtpMIQ0VJGQ" value="1"/>
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tU4yNqNTEeKYtpMIQ0VJGQ" value="1"/>
        </ownedEnd>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_uBhOsKNTEeKYtpMIQ0VJGQ" name="A_actor_generate constraints directly into the definition" memberEnd="_uBhOsaNTEeKYtpMIQ0VJGQ _uBhOtKNTEeKYtpMIQ0VJGQ">
        <ownedEnd xmi:type="uml:Property" xmi:id="_uBhOsaNTEeKYtpMIQ0VJGQ" name="actor" type="_DPIRYKNTEeKYtpMIQ0VJGQ" association="_uBhOsKNTEeKYtpMIQ0VJGQ">
          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uBhOsqNTEeKYtpMIQ0VJGQ" value="1"/>
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uBhOs6NTEeKYtpMIQ0VJGQ" value="1"/>
        </ownedEnd>
        <ownedEnd xmi:type="uml:Property" xmi:id="_uBhOtKNTEeKYtpMIQ0VJGQ" name="generate constraints directly into the definition" type="_D0UpIKNTEeKYtpMIQ0VJGQ" association="_uBhOsKNTEeKYtpMIQ0VJGQ">
          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uBhOtaNTEeKYtpMIQ0VJGQ" value="1"/>
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uBhOtqNTEeKYtpMIQ0VJGQ" value="1"/>
        </ownedEnd>
      </packagedElement>
      <packagedElement xmi:type="uml:UseCase" xmi:id="_zdHt8NJ1EeKWVoUNffjMVg" name="Create a constraint">
        <ownedComment xmi:type="uml:Comment" xmi:id="_fCnEsNKNEeKWVoUNffjMVg">
          <body>In the context of the construction of a profile, it is possible to add constraints.&#xD;
A constraint is a condition or restriction expressed in a language for the purpose of declaring some of the semantics of an element.&#xD;
</body>
        </ownedComment>
        <include xmi:type="uml:Include" xmi:id="_BFjSgNJ2EeKWVoUNffjMVg" addition="_6RCRwNJ1EeKWVoUNffjMVg"/>
        <include xmi:type="uml:Include" xmi:id="_M6OacNJ2EeKWVoUNffjMVg" addition="_CQ-j0NJ2EeKWVoUNffjMVg"/>
        <include xmi:type="uml:Include" xmi:id="_XW-tMNJ2EeKWVoUNffjMVg" addition="_Up9GQNJ2EeKWVoUNffjMVg"/>
      </packagedElement>
      <packagedElement xmi:type="uml:UseCase" xmi:id="_6RCRwNJ1EeKWVoUNffjMVg" name="Specify the language">
        <ownedComment xmi:type="uml:Comment" xmi:id="_ll3WUNKNEeKWVoUNffjMVg">
          <body>It is possible to precise the language of the constraint into Papyrus. The constraint body may be written into OCL, JAVA, or natural language. In order to make constraints usable by the Papyrus, constraint must be written in OCL or JAVA. </body>
        </ownedComment>
      </packagedElement>
      <packagedElement xmi:type="uml:UseCase" xmi:id="_CQ-j0NJ2EeKWVoUNffjMVg" name="Specify the behavior of the constraint in the context of validation">
        <ownedComment xmi:type="uml:Comment" xmi:id="_pbWaINKNEeKWVoUNffjMVg">
          <body>Into Papyrus, the behavior of the constraint during the validation can be precised.&#xD;
It is possible to precise:&#xD;
•	The mode, if the validation of the constraint can be done, in t “batch” or “live” mode.&#xD;
•	The severity: The severity of the problem if the constraint is violated. This correlates to the severity of tasks in the Tasks view of the Eclipse environment. The default severity (if none specified) is ERROR. The CANCEL severity should be used with caution, as it causes the validation operation to be interrupted, possibly resulting in the loss of valuable diagnostic information from other constraints.&#xD;
•	The message: the message that will be displayed if the constraints is violated&#xD;
•	The description: a description of the constraint&#xD;
•	If it is enable by default: Indicates if this constraint should be enabled by default.&#xD;
&#xD;
For advanced user you can also precise:&#xD;
•	The Id : the constraint id&#xD;
•	The status code: The plug-in unique status code, useful for logging.&#xD;
•	the target of validation, the element to be validated&#xD;
</body>
        </ownedComment>
      </packagedElement>
      <packagedElement xmi:type="uml:UseCase" xmi:id="_Up9GQNJ2EeKWVoUNffjMVg" name="specify the context">
        <ownedComment xmi:type="uml:Comment" xmi:id="_iV4MQNKNEeKWVoUNffjMVg">
          <body>Before editing a constraint, it is important to specify the constraint; it can be a stereotype, an operation.</body>
        </ownedComment>
      </packagedElement>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="_dXgaYKNREeKYtpMIQ0VJGQ" name="SolutionProposal"/>
    <packagedElement xmi:type="uml:Package" xmi:id="_hNWqkKNREeKYtpMIQ0VJGQ" name="TestUseCase"/>
    <packagedElement xmi:type="uml:Package" xmi:id="_kHLXYKNREeKYtpMIQ0VJGQ" name="TestProposal"/>
    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_s2R1gKNREeKYtpMIQ0VJGQ">
      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s3UXUKNREeKYtpMIQ0VJGQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//requirements"/>
      </eAnnotations>
      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_OOJC4LX8EduFmqQsrNB9lw"/>
    </profileApplication>
  </uml:Model>
  <Requirements:Requirement xmi:id="_z2GHUKNREeKYtpMIQ0VJGQ" text="Papyrus shall validate constraints from profiles on models" id="ValidationReq001" base_Class="_z1zMYKNREeKYtpMIQ0VJGQ"/>
  <Requirements:Requirement xmi:id="_2eBg8KNTEeKYtpMIQ0VJGQ" text="User can precise on constraints if they may be validated live or batch mode, the associated error message and if it is activated by default" id="ValidationReq002" base_Class="_2d4XAKNTEeKYtpMIQ0VJGQ"/>
</xmi:XMI>

Back to the top