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 identity says I can rename class A to class B (and vice versa) without changing the semantics of the diagram.  The second identity says 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:
  1. Your  mapping of  class diagram (a) to class diagram (b) + explanations, as above.
  2. Any explanation of constraints on the limitations of the identity that you use.