Dear all,
I am trying to integrate ocl operations extracted from the omg norm.
I am not able to generate the code. And I would like to know if you have any advice for that puprpiose.
I am following the process:
· Extraction of all OCL constraint and operation [1]
· For Requirement [2]
· Creation of an operation with an associated opaque behavior written in OCL
o getSatisfiedBy
o Satisfy.allInstances()->select(base_class.supplier=self).base_Abstraction.client
My first concern is the the OCL editor for the opaque behavior.
It seems not to have any OCL completion
>> Any idea why?
Secundly, it seems that the OCL is not record… If I double click on my method associated with the operation, I am not able to see the OCL I have just written.
>>How can I confirm the OCL is not store in my profile?
Thirdly, when I reload the UML profil to ecore and regenerate the Model/Edit code, I am able to see the operation but I am not able to see any OCL implementation.
>>Any idea?
Thanks for your help.
Francois
[1]: https://bugs.eclipse.org/bugs/attachment.cgi?id=256993
[2]: Requirement
16.3.2.4 Requirement
Constraints
[1] The property “ownedOperation” must be empty.
[2] The property “ownedAttribute” must be empty.
[3] Classes stereotyped by «requirement» may not participate in associations.
[4] Classes stereotyped by «requirement» may not participate in generalizations.
[5] A nested classifier of a class stereotyped by «requirement» must also be stereotyped by «requirement».
[6] Classes stereotyped by «requirement» may not be used to type any other model element.
Operations
[1] Requirement::getSatisfiedBy : Set(NamedElement)
getSatisfiedBy = Satisfy.allInstances()->select(base_class.supplier=self).
base_Abstraction.client
[2] Requirement::getVerifiedBy : Set(NamedElement)
getVerifiedBy = Verify.allInstances()->select(base_Abstraction.supplier=self).
base_class.client
[3] Requirement::getTracedTo() : Set(NamedElement)
getTracedTo =Trace.allInstances()->select(base_Abstraction.client=self).
base_class.supplier
[4] Requirement::getDerived() : Set(Requirement)
getDerived = DeriveReqt.allInstances()->select(base_Abstraction.supplier=self).
base_class.client
[5] Requirement::getDerivedFrom() : Set(Requirement)
getDerivedFrom = DeriveReqt.allInstances()->select(base_Abstraction.client=self).
base_class.supplier
[6] Requirement::getRefinedBy: Set(NamedElement)
getRefinedBy = Refine.allInstances()->select(base_Abstraction.supplier=self).
base_class.client
[7] Requirement::getMaster() : Requirement
getMaster = Copy.allInstances()->select(base_Abstraction.client=self).base_class.supplier


| Francois LE FEVRE Research Engineer Commission for Atomic Energy and Alternative Energies (CEA) Model-driven Engineering for Embedded Systems Laboratory (LISE) Projet: Papyrus: https://www.eclipse.org/papyrus/ 
Commissariat à l’énergie atomique et aux énergies alternatives (CEA) Paris-Saclay Campus - Nano-INNOV | Bât. 862-PC1087 | F-91191 Gif-sur-Yvette Cedex T. +33 (0)1 69 08 49 86 | F. +33 (0)1 69 08 83 95 | francois.le-fevre@xxxxxx | Blog: http://biocamp.blogspot.fr/ |