umlx: a pragmatic solution to documenting design ernest micklei emicklei@philemonworks

14
UMLX: a pragmatic solution to documenting design Ernest Micklei [email protected]

Upload: barrett-morse

Post on 31-Dec-2015

15 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: UMLX: a pragmatic solution to documenting design Ernest Micklei emicklei@PhilemonWorks

UMLX: a pragmatic solution to documenting design

Ernest [email protected]

Page 2: UMLX: a pragmatic solution to documenting design Ernest Micklei emicklei@PhilemonWorks

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: UMLX: a pragmatic solution to documenting design Ernest Micklei emicklei@PhilemonWorks

Typical iteration

Code

Design Doc

Page 4: UMLX: a pragmatic solution to documenting design Ernest Micklei emicklei@PhilemonWorks

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: UMLX: a pragmatic solution to documenting design Ernest Micklei emicklei@PhilemonWorks

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: UMLX: a pragmatic solution to documenting design Ernest Micklei emicklei@PhilemonWorks

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: UMLX: a pragmatic solution to documenting design Ernest Micklei emicklei@PhilemonWorks

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: UMLX: a pragmatic solution to documenting design Ernest Micklei emicklei@PhilemonWorks

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: UMLX: a pragmatic solution to documenting design Ernest Micklei emicklei@PhilemonWorks

Design in UMLX

<model name="Wizard Design"><package file="WizardSupport" /><association

class1="Wizard" class2="WizardProgram" role2="program" cardinality2="1" />

</model>

Page 10: UMLX: a pragmatic solution to documenting design Ernest Micklei emicklei@PhilemonWorks

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: UMLX: a pragmatic solution to documenting design Ernest Micklei emicklei@PhilemonWorks

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: UMLX: a pragmatic solution to documenting design Ernest Micklei emicklei@PhilemonWorks

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: UMLX: a pragmatic solution to documenting design Ernest Micklei emicklei@PhilemonWorks

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

Page 14: UMLX: a pragmatic solution to documenting design Ernest Micklei emicklei@PhilemonWorks

Thanx

• Get it from http://www.philemonworks.com

• Send comments to [email protected]