Executable UML allows precisely describing the software system at level of abstraction. The executable models can be translated to a less programming language completely or executed directly. Object Constraint Language (OCL), as a formal specification language, is a standard published along with UML. It is primitively used to describe constraints for UML models. In this paper, we explore some general features of executable UML and propose using OCL in executable UML. We extend OCL to support actions with side-effect in order to precisely model behavior. We also discuss some open issues.