Hi Kedar: as you point out, we have two translations: from cds to UML and vice-versa. We want to be able to represent any kind of Demeter/Java cd as a UML class diagram: you describe below how to do that. On the other hand, we want to provide support for "most" features of the UML class diagram notation. How does the translation look in the other direction? For example, we could inherit from a non-abstract class in UML. Or we can have undirected edges in UML. How well debugged is the translation from cds to UML at this point? This is certainly the more important direction. Which features do we currently want to exclude from UML so that if we draw a UML picture with AP Studio, we create the cd and we read the cd back in, we get a graph which is isomorphic to the original one? -- Karl >From kedar@ccs.neu.edu Wed Sep 17 16:24:25 1997 >Subject: Re: default implementation >Date: Wed, 17 Sep 1997 16:24:14 -0400 > >Karl Lieberherr wrote: >> >> Hi Kedar and Binoy: >> >> AP Studio allows us to draw annotated UML class diagrams and you assign >to those >> UML class diagrams a default implementation which is expressed in terms >> of class dictionaries. For example, a cardinality 0..* is represented by >> a repetition class. >> >> For the current AP Studio, please can you write down how you do >> the translation. This is an important part of the USER'S GUIDE for AP >Studio. >> >> Do a first version asap. >> >> -- Karl > >I'm not quite sure that I have understood your question. But here is the >first version : > >Graphical representation of any class dictionary is basically composed of >Vertices and edges. >The different kinds are - >Vertex :: Construction, Alternation, Interface, External or terminal >(construction/interface). >Edges :: Construction(with cardinality), Alternation, Extends, Implements. > >In case of textual class dictionary it has : >Class :: Construction, Alternation, Interface, Terminal >Edge :: Construction, Alternation, Repetition, Optional Repetition, >Optional > >Translation : > >All the classes in the textual class dictionary are mapped into vertices of >corresponding type in the graphical form. >If a class is not defined in the class dictionary but referred in it, it >becomes terminal class. > >Translation of a repetition class declaration in textual class dictionary : >Construction vertex for the repetition(container) class connected to the >vertex representing repeated part by a construction edge >with cardinality equal to "0..*" or "1..*" depending upon whether the >repeated part is optional or not. > >Optional part relation in textual class dictionary is represented by an >edge with multiplicity "0..1". > >"*extends*" & "*implements*" lead to corresponding extends and >implements edges in ApStudio. > >kedar ... > >