Modeling is one of the most crucial activities during all the phases in any software development life cycle. Typically, system development is a very complex task, and working with models helps to handle this complexity in an organized way, allowing us to reason about the properties that entities possess. In software engineering, notation, techniques and methodology for object-oriented model building has been lately the focus of active research work. In the case of object-oriented software development, models are composed by a number of communicating and well delimited elements. Although such models are sometimes harder to develop, they are easier to understand, and simpler to maintain and modify.Thus, reusability of elements among models is...