UMLX: a pragmatic solution to documenting design Ernest Micklei [email_address]
Motivation <ul><li>keep design (UML) and code better synchronized </li></ul><ul><li>single point of definition </li></ul><...
Typical iteration Code Design Doc
Motivation (ii) <ul><li>Extracting design from code is impossible </li></ul><ul><ul><li>need original abstraction level </...
UML &quot;formats&quot; <ul><li>Rose-mdl/petal, XMI, UXF, others... </li></ul><ul><li>Targeted at exchange between Tools <...
UMLX <ul><li>UML notation in XML, but ... </li></ul><ul><li>Readable  by developer </li></ul><ul><li>Writable  by develope...
Class in UMLX <ul><li><class name=&quot; Point3D &quot; superclass=&quot; Point &quot;> </li></ul><ul><li><attribute name=...
Package in UMLX <ul><li><package name=&quot; ExpressionSupport &quot;> </li></ul><ul><li><class file=&quot; MessageSendNod...
Design in UMLX <ul><li><model name=&quot; Wizard Design &quot;> </li></ul><ul><li><package file=&quot; WizardSupport &quot...
Diagram <ul><li>is just a representation (view) on a design </li></ul><ul><ul><li>can have multiple diagrams on single des...
Using UMLX XML-files producing UMLX - using a text editor - generating jumpstarts from classes  - collecting strings using...
Using UMLX (ii) <ul><li>store as class methods in classes,packages </li></ul><ul><ul><li>export to files </li></ul></ul><u...
Status <ul><li>UMLX for class diagrams </li></ul><ul><li>UMLX documentation ( Open ) </li></ul><ul><ul><li>http://www.phil...
Thanx  <ul><li>Get it from  http://www.philemonworks.com </li></ul><ul><li>Send comments to  [email_address] </li></ul>
Upcoming SlideShare
Loading in …5
×

Umlx

712 views

Published on

Ernest Micklei:
UMLX: a pragmatic solution to documenting design
(ESUG 2003, Bled)

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Umlx

  1. 1. UMLX: a pragmatic solution to documenting design Ernest Micklei [email_address]
  2. 2. Motivation <ul><li>keep design (UML) and code better synchronized </li></ul><ul><li>single point of definition </li></ul><ul><li>separate view from model </li></ul><ul><li>textual readable/writeable notation </li></ul><ul><li>but not yet another UML tool </li></ul>
  3. 3. Typical iteration Code Design Doc
  4. 4. Motivation (ii) <ul><li>Extracting design from code is impossible </li></ul><ul><ul><li>need original abstraction level </li></ul></ul><ul><ul><li>implementation diagrams are not of interest (to us) </li></ul></ul><ul><li>Keep design info where the code is </li></ul><ul><ul><li>UMLX in class methods or in files </li></ul></ul><ul><li>Use (external) tools to create diagrams </li></ul><ul><ul><li>e.g. SUMO </li></ul></ul>
  5. 5. UML &quot;formats&quot; <ul><li>Rose-mdl/petal, XMI, UXF, others... </li></ul><ul><li>Targeted at exchange between Tools </li></ul><ul><li>Proprietary </li></ul><ul><li>Not meant for &quot;maintenance&quot; by hand </li></ul><ul><li>All in one big file (views and models) </li></ul>
  6. 6. UMLX <ul><li>UML notation in XML, but ... </li></ul><ul><li>Readable by developer </li></ul><ul><li>Writable by developer </li></ul><ul><li>Simplest structure possible </li></ul><ul><ul><li>no xml namespaces </li></ul></ul><ul><li>Separate files, external to IDE </li></ul><ul><ul><li>MyClass. class.umlx </li></ul></ul><ul><ul><li>MyPackage. package.umlx </li></ul></ul><ul><ul><li>MyModel. model.umlx </li></ul></ul>
  7. 7. Class in UMLX <ul><li><class name=&quot; Point3D &quot; superclass=&quot; Point &quot;> </li></ul><ul><li><attribute name=&quot; x &quot; type=&quot; Number &quot;/> </li></ul><ul><li><operation name=&quot; rotateBy &quot; return=&quot; Point3D &quot;> </li></ul><ul><li><parameter name=&quot; rotationPoint &quot; type=&quot;Point3D&quot;/> </li></ul><ul><li></operation> </li></ul><ul><li></class> </li></ul>
  8. 8. Package in UMLX <ul><li><package name=&quot; ExpressionSupport &quot;> </li></ul><ul><li><class file=&quot; MessageSendNode .class.umlx&quot;/> </li></ul><ul><li><class file=&quot; ArgumentsNode .class.umlx&quot;/> </li></ul><ul><li><class file=&quot; ExpressionNode .class.umlx&quot;/> </li></ul><ul><li><class file=&quot; ConstantNode .class.umlx&quot;/> </li></ul><ul><li><class file=&quot; BracketedNode .class.umlx&quot;/> </li></ul><ul><li><class file=&quot; VariableNode .class.umlx&quot;/> </li></ul><ul><li><class file=&quot; UnaryNode .class.umlx&quot;/> </li></ul><ul><li><class file=&quot; FunctionNode .class.umlx&quot;/> </li></ul><ul><li><class file=&quot; BinaryNode .class.umlx&quot;/> </li></ul><ul><li><class file=&quot; ExpressionParser .class.umlx&quot;/> </li></ul><ul><li></package> </li></ul>
  9. 9. Design in UMLX <ul><li><model name=&quot; Wizard Design &quot;> </li></ul><ul><li><package file=&quot; WizardSupport &quot; /> </li></ul><ul><li><association </li></ul><ul><li>class1=&quot; Wizard &quot; </li></ul><ul><li>class2=&quot; WizardProgram &quot; </li></ul><ul><li>role2=&quot; program &quot; </li></ul><ul><li>cardinality2=&quot; 1 &quot; /> </li></ul><ul><li></model> </li></ul>
  10. 10. Diagram <ul><li>is just a representation (view) on a design </li></ul><ul><ul><li>can have multiple diagrams on single design </li></ul></ul><ul><li>can be separated from the design specification </li></ul><ul><ul><li>not part of UMLX </li></ul></ul><ul><li>building it is a time-consuming activity </li></ul>
  11. 11. Using UMLX XML-files producing UMLX - using a text editor - generating jumpstarts from classes - collecting strings using methods making a Diagram - read UMLX files - decide which elements to show - layout them + export HTML,GIF,SVG Diagrams
  12. 12. Using UMLX (ii) <ul><li>store as class methods in classes,packages </li></ul><ul><ul><li>export to files </li></ul></ul><ul><li>generate from code and edit (strip) manually </li></ul><ul><ul><li>UMLClassBuilder </li></ul></ul><ul><li>input for tools to build diagrams from UMLX </li></ul><ul><ul><li>e.g. SUMO </li></ul></ul><ul><li>input for tools to generate initial source code </li></ul><ul><li>converter (XSL) to/from XMI </li></ul><ul><li>... </li></ul>
  13. 13. Status <ul><li>UMLX for class diagrams </li></ul><ul><li>UMLX documentation ( Open ) </li></ul><ul><ul><li>http://www.philemonworks.com/UMLX </li></ul></ul><ul><ul><li>http://philemon.swiki.net for comments </li></ul></ul><ul><li>SUMO, simple UMLX diagramming tool ( Free ) </li></ul><ul><ul><li>http://www.philemonworks.com/SUMO </li></ul></ul><ul><li>OMA, an archive of reusable models </li></ul><ul><ul><li>http://www.philemonworks.com/OMA </li></ul></ul><ul><li>SDK on its way (exporter,classes,meta model) </li></ul><ul><ul><li>http://www.philemonworks.com/UMLX </li></ul></ul>
  14. 14. Thanx <ul><li>Get it from http://www.philemonworks.com </li></ul><ul><li>Send comments to [email_address] </li></ul>

×