2. UML Modes
● UML as sketch
– selective, incomplete
– communication/thinking tool
● UML as blueprint
– valid, complete models (structural viewpoint)
– good for partial code generation
● UML as programming language
– model describes structure and behavior
– model execution, “full” code generation
3. The TextUML Toolkit
● UML authoring tool
● textual notation (TextUML)
● IDE-like
● free (not OSS)
● focus on code generation (UML as blueprint)
– “class diagram” elements
– valid, detailed models
● target is developers, not BAs
● available on Windows, Linux* and Mac OS X**
4.
5. Why a textual notation?
● productivity
– text editor vs. diagram editor
– details vs. big picture
● developer-oriented features:
– text editing, search and replace, diff'ing/patches,
history, auto-format, content assist*, hyperlinking*...
● UML as programming language
● it really does not matter...
6. TextUML Toolkit is UML-compliant
● Notation != language
● language specification defines:
– semantics
– syntax
● Types of compliance
– abstract syntax (representation)
– concrete syntax (notation)
● Notation is for users
● Representation is for tools
7. Compatibility and integration
● models based on Eclipse UML2 (UML 2.1)
● native compatibility
– commercial: Omondo EclipseUML, MyEclipse UML
– open source: Eclipse MDT UML2Tools, Topcased,
Papyrus UML
● import/export
– Rational UML products
– Borland Together
● reverse engineering
10. Code generation strategy
● domain modeled using UML
● a template (set) for each kind of artifact (pojos,
Hibernate mapping file, value objects, ...)
● stereotypes and tagged values drive code
generation