Extending OCL for semantic representation of software systems | Synapse