OCLを用いた記述
Object Constraint Language : UMLの一部
action Calendar::removeEvent (e: Event)
pre schedule->includes(e)
post not schedule->includes(e) and
not e.instructor.schedule@pre->includes(e)
function Calendar::calendarFor(i: Instructor): Enumeration
post result: Enumeration.new [unvisited = i.schedule]
inv Event::overlaps(d: Date) = (start <= d & end >= d)