0

添付のクラス図で、ローンを要求する人の年齢が 18 歳以上であることを示す不変条件を定義する必要がある場合、これは次のようになります。

context Person
inv: age > 18

また

context Person
inv: self.age > 18

2つの違いは何ですか?

ここに画像の説明を入力 ご指導ありがとうございました

4

2 に答える 2

1

ジョルディがすでに言ったように、それらは意味的に同等です。最初のものにはself暗黙的に含まれます。

彼が言及したように、あなたの OCL 不変条件は、あなたが提供したテキスト表現と一致しません。あなたの不変条件では、人々は 18 歳以上でなければなりません。しかし、負荷の所有者は 18 歳以上でなければなりませんLoan

context Loan inv: owner.age > 18

これには暗黙の自己も含まれているため、2 番目は最初のものと意味的に同等です。

context Loan inv: self.owner.age > 18

于 2014-05-26T12:28:53.630 に答える
1

あなたの例の両方の不変条件はまったく同じです(最初の「自己」は暗黙的です)。それにもかかわらず、すべての「人」オブジェクトは少なくとも18歳の値を持っている必要があると言っていますが、これはあなたが説明した不変条件ではありません(あなたの不変条件では、システムに18歳未満の人がいる可能性があるように見えました.ただ、18 歳未満の人はローンに関連付けることができませんでした)

于 2014-05-24T17:01:54.957 に答える