Borrowing heavily from the psychologists definition of the analogy and the software designers interface/class,...the structure for the analogy can be represented as here.
An analogy is the mapping of similar attributes, operations and rules between two or more varieties. Each variety specifies a value for attributes as well as an implementation for the operations.
In the code structure examples in the next few slides We will use the annotations N, A & O for the Name, Attribute and Operation. The subscript a (for analogy) will be for the analogy description and the subscript v (for variety) will be for the implementations by the varieties
To discuss the restriction depicted by the dotted lines I will use the following example