OCL 式に関するいくつかの質問に出くわしました。いくつかの大学のスライドを読んでグーグルで調べた後でも、まだ正しく理解できません。
このことを理解するために読むべき良いリソースを知っている人がいるのだろうか.
気になる制約:
- 部門で働く全員が同じマネージャーを持っています。
- 会社の誰も彼/彼女自身のマネージャーではありません。
- 会社の誰も彼のマネージャーよりも稼いでいません。
私が持っている最初のものについて:
コンテキスト部門
inv self.stuff -> forAll(manager = self.staff.manager)
2つ目:
コンテキスト 会社
inv self.employee -> select(manager = manager.manager) -> isEmpty()
3つ目:
コンテキスト 会社
inv self.employee -> select(salary > manager.salary) -> isEmpty()
しかし、私はこれらが正しいとは思いません。私が最も確信が持てないのは、例 2 と 3 で個々の従業員を実際のマネージャー/マネージャーの給与と実際に比較しているかどうかです。