Ernest Micklei, PhilemonWorks.com UMLX: a pragmatic solution to documenting design Ernest Micklei...
-
Upload
suzan-gibbs -
Category
Documents
-
view
214 -
download
0
Transcript of Ernest Micklei, PhilemonWorks.com UMLX: a pragmatic solution to documenting design Ernest Micklei...
![Page 2: Ernest Micklei, PhilemonWorks.com UMLX: a pragmatic solution to documenting design Ernest Micklei emicklei@PhilemonWorks.com.](https://reader036.fdocuments.in/reader036/viewer/2022071808/56649ee55503460f94bf437e/html5/thumbnails/2.jpg)
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
![Page 3: Ernest Micklei, PhilemonWorks.com UMLX: a pragmatic solution to documenting design Ernest Micklei emicklei@PhilemonWorks.com.](https://reader036.fdocuments.in/reader036/viewer/2022071808/56649ee55503460f94bf437e/html5/thumbnails/3.jpg)
Typical iteration
Code
Design Doc
![Page 4: Ernest Micklei, PhilemonWorks.com UMLX: a pragmatic solution to documenting design Ernest Micklei emicklei@PhilemonWorks.com.](https://reader036.fdocuments.in/reader036/viewer/2022071808/56649ee55503460f94bf437e/html5/thumbnails/4.jpg)
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
![Page 5: Ernest Micklei, PhilemonWorks.com UMLX: a pragmatic solution to documenting design Ernest Micklei emicklei@PhilemonWorks.com.](https://reader036.fdocuments.in/reader036/viewer/2022071808/56649ee55503460f94bf437e/html5/thumbnails/5.jpg)
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)
![Page 6: Ernest Micklei, PhilemonWorks.com UMLX: a pragmatic solution to documenting design Ernest Micklei emicklei@PhilemonWorks.com.](https://reader036.fdocuments.in/reader036/viewer/2022071808/56649ee55503460f94bf437e/html5/thumbnails/6.jpg)
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
![Page 7: Ernest Micklei, PhilemonWorks.com UMLX: a pragmatic solution to documenting design Ernest Micklei emicklei@PhilemonWorks.com.](https://reader036.fdocuments.in/reader036/viewer/2022071808/56649ee55503460f94bf437e/html5/thumbnails/7.jpg)
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>
![Page 8: Ernest Micklei, PhilemonWorks.com UMLX: a pragmatic solution to documenting design Ernest Micklei emicklei@PhilemonWorks.com.](https://reader036.fdocuments.in/reader036/viewer/2022071808/56649ee55503460f94bf437e/html5/thumbnails/8.jpg)
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>
![Page 9: Ernest Micklei, PhilemonWorks.com UMLX: a pragmatic solution to documenting design Ernest Micklei emicklei@PhilemonWorks.com.](https://reader036.fdocuments.in/reader036/viewer/2022071808/56649ee55503460f94bf437e/html5/thumbnails/9.jpg)
Design in UMLX
<model name="Wizard Design"><package file="WizardSupport" /><association
class1="Wizard" class2="WizardProgram" role2="program" cardinality2="1" />
</model>
![Page 10: Ernest Micklei, PhilemonWorks.com UMLX: a pragmatic solution to documenting design Ernest Micklei emicklei@PhilemonWorks.com.](https://reader036.fdocuments.in/reader036/viewer/2022071808/56649ee55503460f94bf437e/html5/thumbnails/10.jpg)
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
![Page 11: Ernest Micklei, PhilemonWorks.com UMLX: a pragmatic solution to documenting design Ernest Micklei emicklei@PhilemonWorks.com.](https://reader036.fdocuments.in/reader036/viewer/2022071808/56649ee55503460f94bf437e/html5/thumbnails/11.jpg)
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
![Page 12: Ernest Micklei, PhilemonWorks.com UMLX: a pragmatic solution to documenting design Ernest Micklei emicklei@PhilemonWorks.com.](https://reader036.fdocuments.in/reader036/viewer/2022071808/56649ee55503460f94bf437e/html5/thumbnails/12.jpg)
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• ...
![Page 13: Ernest Micklei, PhilemonWorks.com UMLX: a pragmatic solution to documenting design Ernest Micklei emicklei@PhilemonWorks.com.](https://reader036.fdocuments.in/reader036/viewer/2022071808/56649ee55503460f94bf437e/html5/thumbnails/13.jpg)
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