Model-Driven Software Development With UML and Java