Object-Oriented Analysis and Design for Information Systems: Modeling with Uml, Ocl, and Ifml