Patterns in Property Specifications for Finite-State Verification
design patterns : elements of reusable object - oriented software .