Poseidon for UML

Dr. Marko Boger

Elizabeth Grass

Matthias Koester


Table of Contents
1. About Gentleware and Poseidon for UML
1.1. About Gentleware and Poseidon for UML
1.1.1. Our Vision
1.1.2. Innovation
1.1.3. Cooperation
1.1.4. Contact
1.2. New Features in Version 6.x
1.3. About This Document
2. Editions
2.1. Community Edition
2.2. Standard Edition
2.3. Professional Edition
2.4. Embedded Edition
2.5. Edition Comparison
3. Installation and First Start
3.1. Prerequisites
3.1.1. Additional Requirements for MacOS X Users
3.2. Moving from a Previous Poseidon Installation to Version 6.x
3.2.1. Models Created in Poseidon 3.0.1 and Lower
3.3. Community, Standard, and Professional Editions
3.3.1. Install Using InstallAnywhere
3.3.2. Install from a ZIP File
3.3.3. Silent Installation
3.3.4. Uninstallation
3.4. Environment Variables
3.5. Keys and Registration
3.5.1. Types and Terminology
3.5.2. Community Edition
3.5.3. Evaluation Copy
3.5.4. Premium Version Purchase
3.5.5. Premium Version Upgrade/Update
3.5.6. Keys for Plug-Ins
3.6. License Manager
3.6.1. Key Descriptions
3.6.2. Buttons
3.6.3. Add a Key
3.6.4. Using Concurrent Licenses with the Professional and Embedded Editions
4. A Short Tour of Poseidon for UML
4.1. Opening the Default Example
4.2. Introducing the Work Area
4.2.1. The Navigation Pane
4.2.2. The Diagram Pane
4.2.3. The Details Pane
4.2.4. The Overview Pane
4.3. Navigation
4.3.1. Navigating with the Navigation Pane
4.3.2. Navigating in the Properties Tab
4.4. Modify Elements
4.4.1. Change Elements
4.4.2. Create Elements
4.4.3. Delete Elements
5. Interface
5.1. Toolbar
5.2. Menus
5.2.1. File
5.2.2. Edit
5.2.3. View
5.2.4. Create Diagram
5.2.5. Align
5.2.6. Generation
5.2.7. Plug-Ins
5.2.8. Help
6. Panes
6.1. Navigation Pane
6.1.1. Navigation Tabs
6.1.2. Delete a Diagram
6.2. Diagram Pane
6.2.1. Diagram Display Modes
6.2.2. Diagram Pane Toolbar
6.2.3. Remove Tabs
6.2.4. Change Properties of the Diagram Pane
6.3. Details Pane
6.3.1. Selection Bar
6.3.2. Properties Tab
6.3.3. C++ Properties
6.3.4. Style Tab
6.3.5. Source Code Tab
6.3.6. Documentation Tab
6.3.7. Constraints Tab
6.3.8. Tagged Values Tab
6.4. Overview Pane
6.4.1. Birdview Tab
7. Setting Properties
7.1. General Tab
7.1.1. General
7.1.2. Appearance
7.1.3. Modeling
7.1.4. Environment
7.1.5. User
7.1.6. Profiles
7.1.7. Key Mappings
7.1.8. Printing
7.1.9. Diagram Display
7.1.10. Automatic Layout
7.1.11. Code Generation
7.1.12. Stereotype Icons
7.2. Project Tab
7.2.1. General
7.2.2. Profiles
7.2.3. Import
7.2.4. Roundtrip
8. Model Reference
8.1. Views
8.2. Default Naming
9. Using Models
9.1. Creating New Models
9.2. Navigation
9.2.1. Navigation Pane
9.2.2. Details Pane
9.2.3. Diagram Pane
9.3. Saving and Loading Models
9.4. Importing Files
9.5. Importing Models
9.6. Merging Models
9.7. Exporting Models
9.8. Exporting Graphics and Printing
10. Diagram Reference
10.1. Structural Diagrams
10.2. Class Diagram
10.2.1. Diagram Elements
10.2.2. Toolbar
10.3. Object Diagram
10.3.1. Diagram Elements
10.3.2. Toolbar
10.4. Component Diagrams
10.4.1. Diagram Elements
10.4.2. Toolbar
10.5. Deployment Diagrams
10.5.1. Diagram Elements
10.5.2. Toolbar
10.6. Behavioral Diagrams
10.7. Use Case Diagrams
10.7.1. Diagram Elements
10.7.2. Toolbar
10.8. Sequence Diagrams
10.8.1. Diagram Elements
10.8.2. Toolbar
10.9. Collaboration Diagrams
10.9.1. Diagram Elements
10.9.2. Toolbar
10.10. State Machine Diagrams
10.10.1. States
10.10.2. Creating Diagrams
10.10.3. Editing Diagrams
10.10.4. Diagram Elements
10.10.5. Toolbar
10.11. Activity Diagrams
10.11.1. Creating Activity Diagrams
10.11.2. Actions
10.11.3. Nodes
10.11.4. Flow
10.11.5. Activity Groups
10.11.6. Diagram Elements
10.11.7. Toolbar
11. Using Diagrams
11.1. Creating New Diagrams
11.1.1. Cloning Diagrams
11.2. Opening Diagrams
11.3. Viewing Diagrams
11.3.1. Details Pane
11.3.2. Zooming
11.3.3. Scrolling
11.3.4. Birdview Tab
11.4. Editing Diagrams
11.4.1. Adding Elements
11.4.2. Editing Elements
11.4.3. Deleting Elements
11.4.4. Full-Screen Editing
11.4.5. Drag and Drop
11.4.6. Changing Namespaces
11.4.7. Visibilities
11.4.8. Layout Functions
11.4.9. Undo/Redo
11.4.10. Non-UML Additions
12. Element Reference
12.1. Relationships
12.1.1. Types of Relationships
12.1.2. Navigability
12.1.3. Hiding and Displaying Multiplicity of 1
12.1.4. Self-Associations
12.2. Classes
12.2.1. Attributes
12.2.2. Operations
12.2.3. Association Classes
12.3. Interfaces
12.3.1. Box Notation
12.3.2. Lollipop Notation
12.3.3. Ports
12.4. States
12.4.1. Types
12.4.2. Regions
12.4.3. Entry and Exit Points
12.4.4. Transitions
12.4.5. Activities, Triggers, and Guards
13. Using Elements
13.1. Creating New Elements
13.1.1. Diagram Pane Toolbar
13.1.2. The Rapid Buttons
13.2. Editing Elements
13.2.1. Inline Editing Text Values
13.2.2. Editing Via the Details Pane
13.2.3. Editing Via the Context Menu
13.2.4. Graphic Representations
13.2.5. Undo/Redo
13.2.6. Stereotypes
13.2.7. Copying, Cutting, and Pasting Elements
13.2.8. Removing and Deleting Elements
14. Generation
14.1. Code Generation
14.1.1. Generation Settings
14.1.2. Reverse Engineering
14.1.3. Roundtrip Engineering
14.1.4. Fine Tuning Code Generation
14.2. Advanced Code Generation
14.2.1. Velocity Template Language
14.2.2. Working with the Standard Templates
14.2.3. Code Generation API
14.3. Documentation Generation
14.3.1. HTML Preview
14.3.2. Generation Dialog (for Poseidon 5.x and lower)
14.3.3. Included Diagrams
14.3.4. Supported Javadoc Tags
15. Plug-Ins
15.1. The Plug-In Manager
15.1.1. Installing a New Plug-In
15.2. Removing Plug-Ins
15.3. Available Plug-Ins
15.3.1. UML-to-Ecore Plug-In
15.3.2. JAR Import
15.3.3. RoundTrip UML/Java
15.3.4. MDL Import
16. Advanced Features
16.1. Constraints with OCL
16.2. Searching for Model Elements
16.3. Profiles
17. Poseidon in Eclipse
17.1. Installing Poseidon within Eclipse
17.2. Start Poseidon in Eclipse
17.2.1. New Eclipse Project, New Poseidon Model
17.2.2. Existing Poseidon Model
17.2.3. Existing Eclipse Project
17.3. Working with Projects
17.3.1. Importing Source Code
17.3.2. Generating Source Code
17.3.3. General
17.3.4. Summary
17.4. Interface
17.4.1. Poseidon Entries in the Eclipse Toolbar
17.4.2. UML Menu
17.4.3. The Java Perspective
17.4.4. The UML Perspective
18. Epilogue
A. UML-to-Ecore Plug-In
A.1. Mappings
A.1.1. UML Package
A.1.2. UML Class
A.1.3. UML Attributes
A.1.4. UML AssociationEnds
B. Poseidon C# Code Generation Plug-In Guide
B.1. General Rules
B.1.1. Tagged Values
B.1.2. Additional Stereotypes
B.2. Modeling Element Rules
B.2.1. Classes
B.2.2. Interface
B.2.3. Structure
B.2.4. Enumeration
B.2.5. Delegate
B.2.6. C# Event
B.2.7. Operations
C. Poseidon CORBA IDL Code Generation Plug-In Guide
C.1. General Rules
C.2. CORBA Interface
C.3. CORBA Value
C.4. CORBA Struct
C.5. CORBA Enum
C.6. CORBA Exception
C.7. CORBA Union
D. Poseidon Delphi Code Generation Plug-In Guide
D.1. Classfiers
D.2. Tagged Values
D.2.1. Classifier
D.2.2. Attribute
D.2.3. Operation
D.2.4. Exception
D.3. Stereotypes
D.3.1. Attribute
D.3.2. Operation
D.3.3. Classifier
D.4. Modeling Element Rules
D.4.1. Class
D.4.2. Interface
D.4.3. Enumeration
D.4.4. Record
D.4.5. Set
D.4.6. Sub Range
D.4.7. Array
D.4.8. Exception
D.5. Specific Rules
E. Poseidon PHP4 Code Generation Plug-In Guide
E.1. General Rules
E.1.1. Tagged Values
E.2. PHP4 Class Modeling Rules
E.2.1. Class Signature
E.2.2. Class Attributes
E.2.3. Class Operations
F. Poseidon Perl Code Generation Guide
F.1. General Rules
F.2. Classes
F.3. Class Attributes
F.4. Class Operations
F.5. Associations
F.6. Aggregation
F.7. Inheritance
G. Poseidon SQL DDL Code Generation Plug-In Guide
G.1. Modeling Element Rules
G.1.1. Classes
G.1.2. Attributes
G.1.3. Association Ends
G.2. Tagged Values
G.3. Additional Stereotypes
H. Poseidon VB.Net Code Generation Plug-In Guide
H.1. General Rules
H.2. Classes
H.3. Interfaces
H.4. Modules
H.5. Structures
H.6. Enums
H.7. Operations
H.8. Operation's Parameters
H.9. Visual Basic Properties
H.10. Visual Basic Events
H.11. Attribute & Association Ends
I. Keyboard Shortcuts
Glossary
List of Tables
2-1. Edition Comparison
List of Figures
4-1. Poseidon for UML application work area.
4-2. Navigation pane in the Webstore model.
4-3. Class diagram 'Overview'
4-4. The Diagram pane displaying the diagram 'Design'.
4-5. The Details pane with class 'Customer' selected.
4-6. Class diagram as seen in the Birdview tab
4-7. The Navigation pane in a Diagram view.
4-8. Select class 'Customer' from the Diagram view
4-9. The Details pane with the class 'Customer' selected.
4-10. The Properties tab with the attribute 'email' selected.
4-11. Change an operation name in a diagram
4-12. Change operation name from the Details pane
4-13. Add a package to a diagram with the rapid buttons
4-14. Delete an element from a model
4-15. 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 Automatic Layout settings tab.
7-13. The Documentation Generation settings tab
7-14. The Java Code Generation settings tab
7-15. The Stereotype Icons settings tab.
7-16. The General Project settings tab.
7-17. The Project Profile settings tab.
7-18. The Project Java/Jar Import settings tab.
7-19. The Roundtrip settings tab
7-20. The Roundtrip Classifier Mapping settings tab
7-21. 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. Drag and Drop from Properties tab
11-9. Drag and Drop completed
11-10. Visibility options for a Component
11-11. Selecting multiple elements with the mouse.
11-12. Adding waypoints.
11-13. Moving adornments.
11-14. A new comment
11-15. Add a waypoint to a rectangle
11-16. Open and closed lines
11-17. 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 Examples
14-1. Simple HTML Template
14-2. Simple Java template
User Guide