Part 3 OCL: Derivation properties
No edit summary
No edit summary
Line 80: Line 80:
</script>
</script>
</html>
</html>
'''Raw subtitles text'''
Hi welcome back to Part3 of Ocl
let's say someone changes the requirements
all of a sudden, the fruit can be in
multiple bowls, so I should have changed
the cardinality of the inbowl
property, but then we need to add a
Association object and association class
called fruit part in this case
I also add a percentage property on it,
so I know how much of the fruit that's in
the fruit bowl and all of a sudden,
we have quite different problem
we need to be able to calculate depending on
how much of the total fruits that's
in the fruit bowl, so fruit.allinstances
but we also have the link end
so if we watched the innerlink name
so these are the names to the fruit part in the association
so we find that fruit part
so fruit.allinstances and fruit part the
percentage, so if we select this you
should see, ok,okay I have the fruit allinstances
but since I changed the model
so all the data I had before is gone
so I need to update it
ok let's add a new attribute, so that we
know how much of the fruit is in  bowls
since the fruit is one fruit hundred
percent it shouldn't be more than a hundred
so we have the fruit parts that
this fruit takes part in and the
percentage of that and we sum that together
yeah we need to reload the model had
some changes, saving those okay then
I want to, the fruit I want to assign a
value to the percentage one just use a
random value to get some spreading my
data, so this is issuing the ocl editor
tend to the percentage int32.random
there should be random operator
the max value is a hundred so anything
between 0 and a hundred, execute that on
this glass bowl, okay and on the plastic bowl
oh I add semicolon too much
ok so now we have some random value in
the percentage in the fruit part now
we can make some use in the derivation of
the weight of the contents of the fruit bowl
because this is currently not
correct just summing up the weight of the fruits
we need to consider the part
of the fruits that that we use
so we iterate over fruit part the percentage
then we divide that by hundred to get a
fraction and we multiply it with now we
can follow the single link back to fruitInBowl
and get the weight of the
of the whole fruit
and we need to sum that up but that
would be a double and we need an int 32
so we need first to convert it to a
decimal, because that's the highest
position and then we can take it to int32 like that
ok so now we fix that one
let's see how much is in the bowls
so are there any bowls that
oh I should use two errors in
this expression is no one meant I meant
first of all this is spelled like wrong
but what the type is, ok that's the error it was fruit bowl
should have been fruit
okay how much is using bowls, if its
larger than a hundred then that fruit is overused
so we could warn about this in
our application of course, now I have the weight of the
contents as actually and considering the
the percentage of the fruit that's in
there the bowl, let's see what's this then
adding a new derived attribute and
presentation and grab the type name
from the fruit that's in the single link
fruit bowl, that's not like that with
weight of and same thing here back to
the single link fruitInBowl weight
but we want to multiply it by our percentage
how much did we use
ok let's do this, we calculate the actual weight
in separate drived attribute
fruit inbowl, weight, times percentage
devided by hundred,  to decimal, we need to go to decimal
because there's the conversion
to int32 is from decimal, ok it's the actual
weight now we have that and we can head back
yeah we have an error in
this expression presentation expression
because you can't just add int32 to a
string, we need to make it ok
and back to the debugger, re-read the model
check the fruit bowl hasn't change
that's because we haven't actually made
use of your presentation on the
fruit part, we're going to need to have
back to fruit bowl, in this one fruitinbowl presentation
that's not correct we should use the
fruit part of that, but we need to say
self in front of it, like so
reloading the model, now we can see that
we have detailed information about
what we actually have in the bowl and since
the weight of the contents now actually
is calculated in the fruit part for each
and the weight of each part is
calculated we might as well just sum
those up to reduced the need for definition
and like that doesn't change anything so
these are some examples on how you can
use ocl to navigate your data to
calculate your data to derive data
new information from your existing data and
there's loads of applications for
this and following these rules you can
actually complete the whole software
system only with business rules
expressed in icl, so hopefully
ypu will check out some of our other videos to
learn more about that, thank you for watching this Ocl introduction

Revision as of 19:04, 5 January 2017

An introduction to OCL - the object constraints language - by example. The session also introduce the new MDriven debugger and shows how to get instant results of modelling efforts. Learn more about percentage and other useful properties to operate and moderate your model properly.

To make your experience more comfortable, we set the main tags mentioned in the video to the right bar menu of this mini player. Choose the interesting subtitle on the list and immediately get to the exact theme timeplace in the video. Now you can pick any topic to be instructed without watching the whole video.

derivation properties
    percentage property calculation in oc
random operator toDecimal operation

Raw subtitles text

Hi welcome back to Part3 of Ocl

let's say someone changes the requirements

all of a sudden, the fruit can be in

multiple bowls, so I should have changed

the cardinality of the inbowl

property, but then we need to add a

Association object and association class

called fruit part in this case

I also add a percentage property on it,

so I know how much of the fruit that's in

the fruit bowl and all of a sudden,

we have quite different problem

we need to be able to calculate depending on

how much of the total fruits that's

in the fruit bowl, so fruit.allinstances

but we also have the link end

so if we watched the innerlink name

so these are the names to the fruit part in the association

so we find that fruit part

so fruit.allinstances and fruit part the

percentage, so if we select this you

should see, ok,okay I have the fruit allinstances

but since I changed the model

so all the data I had before is gone

so I need to update it

ok let's add a new attribute, so that we

know how much of the fruit is in  bowls

since the fruit is one fruit hundred

percent it shouldn't be more than a hundred

so we have the fruit parts that

this fruit takes part in and the

percentage of that and we sum that together

yeah we need to reload the model had

some changes, saving those okay then

I want to, the fruit I want to assign a

value to the percentage one just use a

random value to get some spreading my

data, so this is issuing the ocl editor

tend to the percentage int32.random

there should be random operator

the max value is a hundred so anything

between 0 and a hundred, execute that on

this glass bowl, okay and on the plastic bowl

oh I add semicolon too much

ok so now we have some random value in

the percentage in the fruit part now

we can make some use in the derivation of

the weight of the contents of the fruit bowl

because this is currently not

correct just summing up the weight of the fruits

we need to consider the part

of the fruits that that we use

so we iterate over fruit part the percentage

then we divide that by hundred to get a

fraction and we multiply it with now we

can follow the single link back to fruitInBowl

and get the weight of the

of the whole fruit

and we need to sum that up but that

would be a double and we need an int 32

so we need first to convert it to a

decimal, because that's the highest

position and then we can take it to int32 like that

ok so now we fix that one

let's see how much is in the bowls

so are there any bowls that

oh I should use two errors in

this expression is no one meant I meant

first of all this is spelled like wrong

but what the type is, ok that's the error it was fruit bowl

should have been fruit

okay how much is using bowls, if its

larger than a hundred then that fruit is overused

so we could warn about this in

our application of course, now I have the weight of the

contents as actually and considering the

the percentage of the fruit that's in

there the bowl, let's see what's this then

adding a new derived attribute and

presentation and grab the type name

from the fruit that's in the single link

fruit bowl, that's not like that with

weight of and same thing here back to

the single link fruitInBowl weight

but we want to multiply it by our percentage

how much did we use

ok let's do this, we calculate the actual weight

in separate drived attribute

fruit inbowl, weight, times percentage

devided by hundred, to decimal, we need to go to decimal

because there's the conversion

to int32 is from decimal, ok it's the actual

weight now we have that and we can head back

yeah we have an error in

this expression presentation expression

because you can't just add int32 to a

string, we need to make it ok

and back to the debugger, re-read the model

check the fruit bowl hasn't change

that's because we haven't actually made

use of your presentation on the

fruit part, we're going to need to have

back to fruit bowl, in this one fruitinbowl presentation

that's not correct we should use the

fruit part of that, but we need to say

self in front of it, like so

reloading the model, now we can see that

we have detailed information about

what we actually have in the bowl and since

the weight of the contents now actually

is calculated in the fruit part for each

and the weight of each part is

calculated we might as well just sum

those up to reduced the need for definition

and like that doesn't change anything so

these are some examples on how you can

use ocl to navigate your data to

calculate your data to derive data

new information from your existing data and

there's loads of applications for

this and following these rules you can

actually complete the whole software

system only with business rules

expressed in icl, so hopefully

ypu will check out some of our other videos to

learn more about that, thank you for watching this Ocl introduction

This page was edited 93 days ago on 02/10/2024. What links here