umlx: a pragmatic solution to documenting design ernest micklei emicklei@philemonworks
DESCRIPTION
UMLX: a pragmatic solution to documenting design Ernest Micklei [email protected]. Motivation. keep design (UML) and code better synchronized single point of definition separate view from model textual readable/writeable notation but not yet another UML tool. Typical iteration. - PowerPoint PPT PresentationTRANSCRIPT
UMLX: a pragmatic solution to documenting design
Ernest [email protected]
Motivation
• keep design (UML) and code better synchronized
• single point of definition• separate view from model• textual readable/writeable notation• but not yet another UML tool
Typical iteration
Code
Design Doc
Motivation (ii)
• Extracting design from code is impossible– need original abstraction level– implementation diagrams are not of interest (to us)
• Keep design info where the code is– UMLX in class methods or in files
• Use (external) tools to create diagrams– e.g. SUMO
UML "formats"
• Rose-mdl/petal, XMI, UXF, others...• Targeted at exchange between Tools• Proprietary• Not meant for "maintenance" by hand• All in one big file (views and models)
UMLX
• UML notation in XML, but ...
• Readable by developer• Writable by developer• Simplest structure possible
– no xml namespaces
• Separate files, external to IDE– MyClass.class.umlx– MyPackage.package.umlx– MyModel.model.umlx
Class in UMLX
<class name="Point3D" superclass="Point"><attribute name="x" type="Number"/><operation name="rotateBy" return="Point3D">
<parameter name="rotationPoint" type="Point3D"/></operation>
</class>
Package in UMLX
<package name="ExpressionSupport"><class file="MessageSendNode.class.umlx"/><class file="ArgumentsNode.class.umlx"/><class file="ExpressionNode.class.umlx"/><class file="ConstantNode.class.umlx"/><class file="BracketedNode.class.umlx"/><class file="VariableNode.class.umlx"/><class file="UnaryNode.class.umlx"/><class file="FunctionNode.class.umlx"/><class file="BinaryNode.class.umlx"/><class file="ExpressionParser.class.umlx"/>
</package>
Design in UMLX
<model name="Wizard Design"><package file="WizardSupport" /><association
class1="Wizard" class2="WizardProgram" role2="program" cardinality2="1" />
</model>
Diagram
• is just a representation (view) on a design– can have multiple diagrams on single design
• can be separated from the design specification– not part of UMLX
• building it is a time-consuming activity
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
Using UMLX (ii)
• store as class methods in classes,packages– export to files
• generate from code and edit (strip) manually– UMLClassBuilder
• input for tools to build diagrams from UMLX– e.g. SUMO
• input for tools to generate initial source code• converter (XSL) to/from XMI• ...
Status
• UMLX for class diagrams• UMLX documentation ( Open )
– http://www.philemonworks.com/UMLX– http://philemon.swiki.net for comments
• SUMO, simple UMLX diagramming tool ( Free )– http://www.philemonworks.com/SUMO
• OMA, an archive of reusable models– http://www.philemonworks.com/OMA
• SDK on its way (exporter,classes,meta model)– http://www.philemonworks.com/UMLX