Source: https://www5.in.tum.de/lehre/vorlesungen/adv_prog/ws11/tutorials/uml.pdf