Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[mdt-papyrus.dev] OCL and operation generation with opaque behavior written with OCL

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

 

cid:part1.06060709.08040600@ericsson.com

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/

cid:part5.02030405.05090707@ericsson.com

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/

 

 

Attachment: smime.p7s
Description: S/MIME cryptographic signature


Back to the top