Gallery: Tutorial: port-based software engineering with UML and Java