1. Introduction
Models and diagrams are useful in separating concerns and handling complexity by providing different viewpoints. Diagrams have in common that they break up software development into smaller, more comprehensible pieces utilizing a divide and conquer strategy. These pieces are related in the system they describe and, combined, they form a model description of a system [2].