Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » OCL » Re: Specifying constraints at Model Instance (M0) level
Re: Specifying constraints at Model Instance (M0) level [message #670899] Mon, 16 May 2011 06:28
Ed Willink is currently offline Ed WillinkFriend
Messages: 5834
Registered: July 2009
Senior Member
Hi Nidhi

You have a software problem that is amenable to programming, so of
course it can be done, it just depends on the costs and compromises atht
are acceptable to you and your users.

With modelling you define at M(n+1) what happens at M(n), so the
behaviour at M0 is defined at M1, so if you want your users to be able
tailor the behaviour of instances at M0 homogeneously, that is an M1
activity. If you want to tailor instances heterogeneously that is
nominally an M0 activity, but you need to configure it as an M1 capability.

Thus configuration of Ball instances to support distinctive colours
requires a Ball::color attribute at M1.

More generally, configuration of mixed behaviours may be modelled by a
Person::roles in which roles is a set Roles applicable to a Person. Some
advanced modeling research endeavours to make Role a first class
modeling concept. Thus a Person, may have a Father, Son, Employee,
Manager, Driver, TaxExile, Buddhist, etc etc role and these roles may
change without requiring redefinition of the Person class.


Ed Willink

On 16/05/2011 06:56, Nidhi wrote:
> Hi,
> I am re-posting my earlier question (posted in the EMFT
> forum) regarding defining expressions at Model Instance
> Level.
> My usecase is the following:
> 1. My domain Ecore model contains the following entities:
> Stakeholder
> - parameters : Parameter
> 2. On declaratively instantiating this model, the end user
> creates the following entities:
> Customer (corresponding to Stakeholder)
> - CustomerProfile (corresponding to Parameter)
> 3. Now I need to enable the end users of my tool to further
> decleratively define an expression on the instantiated Parameter
> entity "CustomerProfile"(and not the Parameter
> model entity itself):
> CustomerProfile == "Gold"
> This expression would later be evaluated as a business
> rule and help identify the path in a business
> process workflow to be taken. But for the time being I
> just need a mechanism to help define the expression,
> irrespective of the action that needs to be taken post
> the expression is evaluated.
> So the end user first declaratively creates a model
> instance CustomerProfile and then declaratively defines the
> expression using it. (CustomerProfile == "Gold").
> This leads to the question, would it be possible to define
> constraints at M0 level using OCL decleratively.
> As Edward replies in my earlier post:
> "if(Customer Profile == "Gold"), do this else do that... "
> is not a constraint. It is a procedure, which you may model with an
> operation whose body can be defined using
> OCL.
> @Edward: I hope I am getting this right but how can I
> achieve this, as while defining my domain model (M1) I yet
> dont know what parameters user would create and hence what
> expressions he/she would define using these parameters. Any pointers
> would really be very useful!
> Best Regards,
> Nidhi
Previous Topic:Specifying constraints at Model Instance (M0) level
Next Topic:How to extend meta model via OCL?
Goto Forum:

Current Time: Sat Apr 21 04:17:56 GMT 2018

Powered by FUDForum. Page generated in 0.01882 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software