Object-Oriented Analysis and Design for Information Systems: Modeling with UML, OCL, and IFML