UML in Practice: The Art of Modeling Software Systems Demonstrated through Worked Examples and Solutions