1

ということで、3時間ほど前にOCLの勉強を始めました。いつ使用できるか、いつandinvを使用する必要があるかについて、私は非常に混乱しています。このような状況で使用できるかどうか疑問に思っていましたか?prepostinv

context Service :: cost(d : double)
   inv result = workDone.cost -> sum()

これは質問への答えです: サービスの総コストが車で行われたすべての作業のコストの合計であることを示す OCL 不変条件を記述し、メソッド Service::cost() の存在を想定して指定する必要があります結果。

ocl invariant ステートメントを要求していることがわかりますが、これは使用する必要があることを意味しますinvか?

乾杯

4

1 に答える 1

0

不変式を使用するのは適切ではないと思います。メソッドが実装言語で最初に開始されたとき、合計が最終的な値になる前に、不変式に違反します。したがって、投稿条件が必要だと思います。事後条件は、メソッドが返されたときに何が真であるべきかを示します。

于 2015-11-26T20:16:14.610 に答える