OCL Benchmark B3

abstract Person
ada : Person
cyd : Person
eve : Person
bob : Person
dan : Person
abstract Exam
date : string
[ this != "" ]
recorder -> Person
examiner -> Person
examinee -> Person
ada_bob_cyd : Exam
[ date = "20001023" ][ recorder = cyd ][ examiner = bob ][ examinee = ada ]
dan_bob_ada : Exam
[ date = "20040817" ][ recorder = ada ][ examiner = bob ][ examinee = dan ]
eve_ada_dan : Exam
[ date = "20080331" ][ recorder = dan ][ examiner = ada ][ examinee = eve ]
examineeAda -> Exam *
[ this.examinee = ada ]
[ all e : Exam | e.examinee = ada => e in examineeAda ]
recorderAda -> Exam *
[ this.recorder = ada ]
[ all e : Exam | e.recorder = ada => e in recorderAda ]
examinerAda -> Exam *
[ this.examiner = ada ]
[ all e : Exam | e.examiner = ada => e in examinerAda ]
examineeOfAdaAsExaminer -> Person *
[ one e : Exam | e.examiner = ada && e.examinee = this ]
examineeOfAdaAsRecorder -> Person *
[ one e : Exam | e.recorder = ada && e.examinee = this ]
examinerOfAdaAsExaminee -> Person *
[ one e : Exam | e.examinee = ada && e.examiner = this ]
examinerOfAdaAsRecorder -> Person *
[ one e : Exam | e.recorder = ada && e.examiner = this ]
recorderOfAdaAsExaminee -> Person *
[ one e : Exam | e.examinee = ada && e.recorder = this ]
recorderOfAdaAsExaminer -> Person *
[ one e : Exam | e.examiner = ada && e.recorder = this ]
c0_Person abstract Person c0_ada ada : Person c0_ada->c0_Person c0_cyd cyd : Person c0_cyd->c0_Person c0_eve eve : Person c0_eve->c0_Person c0_bob bob : Person c0_bob->c0_Person c0_dan dan : Person c0_dan->c0_Person c0_Exam abstract Exam c0_Exam->c0_Person recorder c0_Exam->c0_Person examiner c0_Exam->c0_Person examinee c0_ada_bob_cyd ada_bob_cyd : Exam c0_ada_bob_cyd->c0_Exam c0_dan_bob_ada dan_bob_ada : Exam c0_dan_bob_ada->c0_Exam c0_eve_ada_dan eve_ada_dan : Exam c0_eve_ada_dan->c0_Exam c0_examineeAda examineeAda -> Exam * c0_examineeAda->c0_Exam c0_recorderAda recorderAda -> Exam * c0_recorderAda->c0_Exam c0_examinerAda examinerAda -> Exam * c0_examinerAda->c0_Exam c0_examineeOfAdaAsExaminer examineeOfAdaAsExaminer -> Person * c0_examineeOfAdaAsExaminer->c0_Person c0_examineeOfAdaAsRecorder examineeOfAdaAsRecorder -> Person * c0_examineeOfAdaAsRecorder->c0_Person c0_examinerOfAdaAsExaminee examinerOfAdaAsExaminee -> Person * c0_examinerOfAdaAsExaminee->c0_Person c0_examinerOfAdaAsRecorder examinerOfAdaAsRecorder -> Person * c0_examinerOfAdaAsRecorder->c0_Person c0_recorderOfAdaAsExaminee recorderOfAdaAsExaminee -> Person * c0_recorderOfAdaAsExaminee->c0_Person c0_recorderOfAdaAsExaminer recorderOfAdaAsExaminer -> Person * c0_recorderOfAdaAsExaminer->c0_Person
Module Statistics: | All clafers: 23 | Abstract: 2 | Concrete: 21 | Reference: 13 | Constraints: 22 | Goals: 0 | Global scope: 1..* | Can skip name resolver: no |

Module Downloads: | [.cfr] | [.html] |