Text this: Practical object-oriented development with UML and Java