# Model Refactoring

You are to do all homework assignments yourself -- do NOT work with others.

In the UML3 (MetaModeling) lecture, I showed you 2 instances of a 'graph':

And two class
diagrams were suggested as their meta-model. The first (left
below) was proposed by one of you and the second (right below) I presented:

I said in class
that these two diagrams were equivalent. I want you to show me
how to transform class diagram (a) above into class diagram (b).
Each step you will define a refactoring (a graph identity)
that allows you to replace equals with equals. Two
identities that we have covered in class and that I used in my answer
are show below. The first graph identity says: I can rename class
A to class B (and vice versa) without changing the semantics of the
diagram. The second graph identity is that I can represent a *-*
association as a pair of 1-* associations (and vice versa):

Your task is to define a series refactorings that maps (a) into
(b). I have arranged my solution in the form below -- which I
suggest that you follow. It shows a class diagram before and
after the application of an identity, with a brief explanation of the
identity.

## What
to
Submit

Submit
a SINGLE PDF
with the following information, using the required
format:
- Your mapping of class diagram (a) to class diagram (b) + explanations, as above.
- Any explanation of constraints on the limitations of the identity that you use.
* *