Poseidon for UML

User Guide

Dr. Marko Boger

Elizabeth Graß

Matthias Köster


Table of Contents

1. About Gentleware and Poseidon for UML
1. About Gentleware and Poseidon for UML
1.1. Our Vision
1.2. Innovation
1.3. Cooperation
1.4. Contact
2. New Features in Version 5.x
3. About This Document
2. Editions
1. Community Edition
2. Standard Edition
3. Professional Edition
4. Embedded Edition
5. Edition Comparison
3. Installation and First Start
1. Prerequisites
1.1. Additional Requirements for MacOS X Users
1.1.1. Jaguar (MacOS X 10.2.x)
1.1.2. Panther (10.3.x)
1.1.3. Tiger (10.4.x)
2. Moving from a Previous Poseidon Installation to Version 5.x
2.1. Models Created in Poseidon 3.0.1 and Lower
3. Community, Standard, and Professional Editions
3.1. Install Using InstallAnywhere
3.1.1. Windows
3.1.2. *NIX
3.2. Install Through Java Web Start (Community Edition Only)
3.3. Install from a ZIP File
3.4. Silent Installation
3.4.1. Installer Properties File
3.4.2. Command Line Parameter
3.4.3. Uninstallation
3.5. Uninstallation
4. Environment Variables
5. Keys and Registration
5.1. Types and Terminology
5.2. Community Edition
5.3. Evaluation Copy
5.4. Premium Version Purchase
5.5. Premium Version Upgrade/Update
5.6. Keys for Plug-Ins
6. License Manager
6.1. Key Descriptions
6.2. Buttons
6.3. Add a Key
6.4. Using Concurrent Licenses with the Professional, Enterprise, and Embedded Enterprise Editions
4. A Short Tour of Poseidon for UML
1. Opening the Default Example
2. Introducing the Work Area
2.1. The Navigation Pane
2.1.1. Changing the Navigation View (for Poseidon 4.2 and lower)
2.1.2. Opening Multiple Navigation Panes (for Poseidon 4.2 and lower)
2.2. The Diagram Pane
2.3. The Details Pane
2.4. The Overview Pane
3. Navigation
3.1. Navigating with the Navigation Pane
3.2. Navigating in the Properties Tab
4. Modify Elements
4.1. Change Elements
4.2. Create Elements
4.3. Delete Elements
5. Interface
1. Toolbar
2. Menus
2.1. File
2.2. Edit
2.3. View
2.4. Create Diagram
2.5. Align
2.6. Generation
2.7. Plug-Ins
2.8. Help
6. Panes
1. Navigation Pane
1.1. Navigation Tabs
1.2. Delete a Diagram
2. Diagram Pane
2.1. Diagram Display Modes
2.2. Diagram Pane Toolbar
2.3. Remove Tabs
2.4. Change Properties of the Diagram Pane
2.4.1. Grid Settings
2.4.2. Other Settings
3. Details Pane
3.1. Selection Bar
3.2. Properties Tab
3.3. C++ Properties
3.4. Style Tab
3.5. Source Code Tab
3.6. Documentation Tab
3.6.1. Toolbar
3.6.2. Dropdowns
3.7. Constraints Tab
3.8. Tagged Values Tab
4. Overview Pane
4.1. Birdview Tab
4.1.1. Redisplay a Section of a Diagram
4.1.2. Zoom in Birdview Only
4.1.3. Zoom in a Diagram
4.1.4. Turn Off Birdview in Settings
7. Setting Properties
1. General Tab
1.1. General
1.2. Appearance
1.3. Modeling
1.4. Environment
1.5. User
1.6. Profiles
1.7. Key Mappings
1.8. Printing
1.8.1. Page Setup
1.8.2. Scaling
1.8.3. Appearance
1.9. Diagram Display
1.10. Code Generation
1.10.1. Documentation Generation
1.10.2. Java
1.11. Automatic Layout
2. Project Tab
2.1. General
2.2. Profiles
2.3. Import
2.3.1. Java/Jar Import
2.3.2. MDL Import
2.4. Roundtrip
2.4.1. Roundtrip Settings
2.4.2. Classifier Mapping
2.4.3. Import and Code Generation Settings
8. Model Reference
1. Views
2. Default Naming
9. Using Models
1. Creating New Models
2. Saving and Loading Models
3. Importing Files
4. Importing Models
5. Merging Models
6. Exporting Models
7. Exporting Graphics and Printing
10. Diagram Reference
1. Structural Diagrams
2. Class Diagram
2.1. Diagram Elements
2.2. Toolbar
3. Object Diagram
3.1. Diagram Elements
3.2. Toolbar
4. Component Diagrams
4.1. Diagram Elements
4.2. Toolbar
5. Deployment Diagrams
5.1. Diagram Elements
5.2. Toolbar
6. Behavioral Diagrams
7. Use Case Diagrams
7.1. Diagram Elements
7.2. Toolbar
8. Sequence Diagrams
8.1. Diagram Elements
8.2. Toolbar
9. Collaboration Diagrams
9.1. Diagram Elements
9.2. Toolbar
10. State Machine Diagrams
10.1. States
10.2. Creating Diagrams
10.3. Editing Diagrams
10.4. Diagram Elements
10.5. Toolbar
11. Activity Diagrams
11.1. Creating Activity Diagrams
11.1.1. Using the Spacer Feature
11.2. Actions
11.2.1. Call Action
11.2.2. Send Signal Action
11.2.3. Accept Event Action
11.3. Nodes
11.3.1. Input and Output Pins
11.3.2. Object Node
11.3.3. Initial, Final Activity, and Final Flow Nodes
11.3.4. Fork and Join Nodes
11.3.5. Decision and Merge Nodes
11.3.6. Activity Parameter Node
11.4. Flow
11.4.1. Object and Control Flow
11.4.2. Exception Handler
11.5. Activity Groups
11.5.1. Activity Partitions
11.5.2. Interruptable Activity Regions
11.5.3. Expansion Regions
11.5.4. Conditional Nodes
11.5.5. Loop Node
11.6. Diagram Elements
11.7. Toolbar
11. Using Diagrams
1. Creating New Diagrams
1.1. Cloning Diagrams
2. Opening Diagrams
3. Viewing Diagrams
3.1. Details Pane
3.2. Zooming
3.3. Scrolling
3.4. Birdview Tab
4. Navigation
4.1. Navigation Pane
4.2. Details Pane
4.3. Diagram Pane
5. Editing Diagrams
5.1. Adding Elements
5.2. Editing Elements
5.3. Deleting Elements
5.4. Drag and Drop
5.5. Drag and Drop Elements within other Elements
5.6. Changing Namespaces
5.7. Visibilities
5.8. Layout Functions
5.9. Undo/Redo
5.10. Non-UML Additions
5.10.1. Select
5.10.2. Comments
5.10.3. Drawing Tools
5.10.4. Toggle Between Editing Modes
5.10.5. Close Shape
5.10.6. Opacity
5.10.7. Waypoints
5.10.8. Diagram-specific Tools
12. Element Reference
1. Relationships
1.1. Types of Relationships
1.2. Navigability
1.3. Hiding and Displaying Multiplicity of 1
1.4. Self-Associations
2. Classes
2.1. Attributes
2.2. Operations
2.3. Association Classes
3. Interfaces
3.1. Box Notation
3.2. Lollipop Notation
3.2.1. Sockets
3.3. Ports
3.3.1. Adding a Port
3.3.2. Adding an Interface to a Port
3.3.3. Deleting an Interface from a Port
4. States
4.1. Types
4.1.1. Simple States
4.1.2. Composite States
4.1.3. Orthogonal States
4.1.4. Submachine States
4.1.5. Additional States (Pseudostates)
4.2. Regions
4.3. Entry and Exit Points
4.3.1. Entry and Exit Points
4.3.2. Entry and Exit Point References
4.4. Transitions
4.4.1. Between States
4.4.2. Internal Transitions
4.5. Activities, Triggers, and Guards
4.5.1. Activities
4.5.2. Trigger
4.5.3. Guard
13. Using Elements
1. Creating New Elements
1.1. Diagram Pane Toolbar
1.2. The Rapid Buttons
2. Editing Elements
2.1. Inline Editing Text Values
2.2. Editing Via the Details Pane
2.2.1. The Properties Tab
2.2.2. The Style Tab
2.2.3. The Documentation Tab
2.3. Editing Via the Context Menu
2.4. Undo/Redo
2.5. Stereotypes
2.5.1. Stereotype Properties
2.6. Copying, Cutting, and Pasting Elements
2.6.1. Elements
2.6.2. Element Representations
2.7. Removing and Deleting Elements
14. Generation
1. Code Generation
1.1. Generation Settings
1.2. Reverse Engineering
1.3. Roundtrip Engineering
1.3.1. Using Roundtrip
1.3.2. Conflict Resolution
1.3.3. Accessor Methods
1.4. Fine Tuning Code Generation
2. Advanced Code Generation
2.1. Velocity Template Language
2.1.1. References
2.1.2. Directives
2.1.3. Comments
2.1.4. Examples
2.2. Working with the Standard Templates
2.3. Code Generation API
3. Documentation Generation
3.1. Generation Dialog
3.1.1. Project Tree
3.1.2. Chapter Tree
3.1.3. Books
3.1.4. Book Templates
3.1.5. Settings Tab
3.2. Included Diagrams
3.3. Supported Javadoc Tags
15. Plug-Ins
1. The Plug-In Manager
1.1. Installing a New Plug-In
1.1.1. Add the Plug-In License
1.1.2. Install the Plug-In
1.1.3. Enable the Plug-In
2. Removing Plug-Ins
3. Available Plug-Ins
3.1. UML-to-Ecore Plug-In
3.1.1. EMF and Ecore
3.2. JAR Import
3.3. RoundTrip UML/Java
3.4. MDL Import
3.4.1. Using MDL Import
3.4.2. Supported Diagrams
3.4.3. Unsupported Features
3.4.4. Display Issues
3.4.5. Status
16. Advanced Features
1. Constraints with OCL
2. Searching for Model Elements
3. Profiles
17. Poseidon in Eclipse
1. Installing Poseidon within Eclipse
2. Start Poseidon in Eclipse
2.1. New Eclipse Project, New Poseidon Model
2.1.1. Create a Project from Scratch
2.2. Existing Poseidon Model
2.3. Existing Eclipse Project
3. Working with Projects
3.1. Importing Source Code
3.1.1. Roundtrip Import - Roundtrip is enabled
3.1.2. Normal Import - Roundtrip is disabled
3.2. Generating Source Code
3.2.1. Add Additional Source Directories
3.2.2. Generate Source Code with Roundtrip
3.2.3. Generate Source Code without Roundtrip.
3.3. General
3.3.1. Drag and Drop
3.3.2. Working with the UML Model outside of Eclipse
3.3.3. Saving the UML Model
3.4. Summary
3.4.1. Edit Projects with Roundtrip Engineering
3.4.2. Edit Projects with Roundtrip Disabled
4. Interface
4.1. Poseidon Entries in the Eclipse Toolbar
4.2. UML Menu
4.3. The Java Perspective
4.4. The UML Perspective
18. Epilogue
A. UML-to-Ecore Plug-In
1. Mappings
1.1. UML Package
1.2. UML Class
1.3. UML Attributes
1.4. UML AssociationEnds
B. Poseidon C# Code Generation Plug-In Guide
1. General Rules
1.1. Tagged Values
1.2. Additional Stereotypes
2. Modeling Element Rules
2.1. Classes
2.1.1. Class Signature
2.1.2. Class Attributes
2.1.3. Class Operations
2.2. Interface
2.2.1. Interface Signature
2.2.2. Interface Members
2.3. Structure
2.3.1. Structure Signature
2.3.2. Structure Members
2.4. Enumeration
2.4.1. Enumeration Signature
2.5. Delegate
2.5.1. Delegate Signature
2.6. C# Event
2.7. Operations
C. Poseidon CORBA IDL Code Generation Plug-In Guide
1. General Rules
2. CORBA Interface
3. CORBA Value
4. CORBA Struct
5. CORBA Enum
6. CORBA Exception
7. CORBA Union
D. Poseidon Delphi Code Generation Plug-In Guide
1. Classfiers
2. Tagged Values
2.1. Classifier
2.2. Attribute
2.3. Operation
2.4. Exception
3. Stereotypes
3.1. Attribute
3.2. Operation
3.3. Classifier
4. Modeling Element Rules
4.1. Class
4.2. Interface
4.3. Enumeration
4.4. Record
4.5. Set
4.6. Sub Range
4.7. Array
4.8. Exception
5. Specific Rules
E. Poseidon PHP4 Code Generation Plug-In Guide
1. General Rules
1.1. Tagged Values
2. PHP4 Class Modeling Rules
2.1. Class Signature
2.2. Class Attributes
2.3. Class Operations
F. Poseidon Perl Code Generation Guide
1. General Rules
2. Classes
3. Class Attributes
4. Class Operations
5. Associations
6. Aggregation
7. Inheritance
G. Poseidon SQL DDL Code Generation Plug-In Guide
1. Modeling Element Rules
1.1. Classes
1.2. Attributes
1.3. Association Ends
2. Tagged Values
3. Additional Stereotypes
H. Poseidon VB.Net Code Generation Plug-In Guide
1. General Rules
2. Classes
3. Interfaces
4. Modules
5. Structures
6. Enums
7. Operations
8. Operation's Parameters
9. Visual Basic Properties
10. Visual Basic Events
11. Attribute & Association Ends
I. Keyboard Shortcuts
Glossary

List of Figures

4.1. Poseidon for UML application work area.
4.2. Navigation pane in the Stattauto model.
4.3. Class diagram 'Container Class Analysis-Packages'
4.4. Change a view in the Navigation pane
4.5. Add a navigation view tab
4.6. Delete a navigation view tab
4.7. LThe Diagram pane displaying the diagram 'Entity Class Model Overview'.
4.8. The Details pane with class 'Reservation' selected.
4.9. Class diagram as seen in the Birdview tab
4.10. The Navigation pane in a Diagram Centric view.
4.11. Select class 'Reservation' from Diagram Centric view
4.12. The Details pane with the class 'Reservation' selected.
4.13. The Properties tab with the attribute 'number' selected.
4.14. Change an operation name in a diagram
4.15. Change operation name from the Details pane
4.16. Add a package to a diagram with the rapid buttons
4.17. Delete an element from a model
4.18. Remove an element from a diagram
6.1. Panes in Poseidon
6.2. Diagram pane in Standard and Full-Screen modes.
6.3. Grid Settings dialog
6.4. Visibility options for a Component
6.5. Properties tab with zoom
6.6. Drill-down navigation
6.7. C++ tab for an association end
6.8. Style tab for a class
6.9. Source code tab for a class
6.10. Documentation tab for a class - WYSIWYG and source
6.11. New constraint in the Constraints tab
6.12. Documentation stored in the Tagged Values tab
7.1. The General settings tab.
7.2. The Appearance settings tab.
7.3. The Modeling settings tab.
7.4. The Environment settings tab.
7.5. The User settings tab.
7.6. The Profile settings tab.
7.7. The Key Mappings settings tab.
7.8. The Printing Page Setup settings tab
7.9. The Printing Scale settings tab
7.10. The Printing Appearance settings tab
7.11. The Diagram display settings tab.
7.12. The Documentation Generation settings tab
7.13. The Java Code Generation settings tab
7.14. The Automatic Layout settings tab.
7.15. The General Project settings tab.
7.16. The Project Profile settings tab.
7.17. The Project Java/Jar Import settings tab.
7.18. The Roundtrip settings tab
7.19. The Roundtrip Classifier Mapping settings tab
7.20. The Roundtrip Import and Code Generation settings tab
9.1. Export a project to XMI
9.2. Watermarked Community Edition diagram graphic
9.3. Premium Edition diagram graphic without watermark
10.1. A Class diagram.
10.2. A Component diagram.
10.3. Deployment diagram, two representations.
10.4. A Use Case diagram.
10.5. A Sequence diagram.
10.6. Class with two state machines, State machine with two state machine diagrams.
10.7. A State Machine diagram
10.8. An Activity diagram.
11.1. Tooltip displaying documentation
11.2. Properties tab displaying class 'Reservation'
11.3. Properties tab with operation 'Member' selected.
11.4. Zooming by changing the properties of a diagram.
11.5. Zooming from the Birdview tab
11.6. Drag and Drop with preview
11.7. Drag and Drop completed
11.8. Visibility options for a Component
11.9. Selecting multiple elements with the mouse.
11.10. Adding waypoints.
11.11. Moving adornments.
11.12. A new comment
11.13. Add a waypoint to a rectangle
11.14. Open and closed lines
11.15. Changing opacity
12.1. Properties tab for an association.
12.2. Properties tab for an association end.
12.3. Highlight hints for associations.
12.4. Style tab with multiplicity set
12.5. The rapid button for self-associations
12.6. Properties of an attribute.
12.7. 'Remove Attributes' setting
12.8. Properties of an operation.
12.9. Uni-Directional Port
13.1. Rapid buttons for a class element.
13.2. Expanded rapid buttons for a class element.
13.3. Toggled representations of actors and interfaces
13.4. Additional rapid buttons for a class element.
13.5. Add a new attribute or operation to a class inline
13.6. Properties tab for a class
13.7. Style tab for a class
13.8. Editing a method documentation.
13.9. Context menu options for a Use Case
13.10. A Class diagram using stereotypes.
13.11. Stereotype dialog
14.1. Generation menu
14.2. Code Generation dialog and settings - Java
16.1. A Constraints tab.
16.2. Searching for a class
16.3. The Profile Manager

List of Tables

2.1. Edition Comparison

List of Examples

14.1. Simple HTML Template
14.2. Simple Java template