RE: OCL question



RE: OCL question

From: Jorn Guy Suess <jgsuess_at_itee.uq.edu.au>
Date: Sun, 24 Feb 2008 21:25:00 +1000
Message-ID: <DFA741BE6218FD4B8D9CE78434D60AAECB943D@UQEXMB3.soe.uq.edu.au>
Umberto,

It would help if you provided the portion or version of the underlying metamodel UML (1.x, 2x) and the version of OCL you are using. I believe there is at least one glitch in your statement, but I would wait to say anything until I have that information.

Kind regards,

Jörn Guy Süß

-----Original Message-----
From: puml-list-request@cs.york.ac.uk [mailto:puml-list-request@cs.york.ac.uk] On Behalf Of Humberto Castejon
Sent: Saturday, 23 February 2008 12:58 PM
To: puml-list@cs.york.ac.uk
Subject: Re: OCL question

Hi again!

I attach a diagram that may help to better understand my question.

Cheers,
Humberto

Humberto Castejon wrote:
> Hi!
> 
> I have some problems using OCL together with collaborations and 
> collaboration uses. I would be very grateful if you oculd help me with 
> the following.
> 
> Imagine we have a Sale collaboration with two roles: buyer and seller. 
> Now, by means of a collaboration use, we bind both roles to the same 
> classifier, namely Person. An instance of Person may then behave either 
> as a seller or as a buyer in a Sale collaboration. However, we do not 
> want the same instance of Person to play both the seller and the buyer 
> roles in the same occurrence of a Sale collaboration (i.e. we do not 
> want a person to sell to herself).
> 
> Would the following OCL invariant, specified in the context of the 
> collaboration use, be correct?
> 
> Context s:Sale
> inv s.roleBinding->forAll(b1, b2 | b1.client.allInstances->forall(Person 
> p1 | b2.client.allInstances->forall(Person p2 | p1 <> p2)))
> 
> Thanks for you help!
> 
> Cheers,
> Humberto
> 
Received on Sun 24 Feb 2008 - 11:25:11 GMT