Enterprise Architect User Guide
Enterprise Architect User Guide
Enterprise Architect User Guide
All rights reserved. No parts of this work may be reproduced in any form or by any means - graphic, electronic, or
mechanical, including photocopying, recording, taping, or information storage and retrieval systems - without the
written permission of the publisher.
Products that are referred to in this document may be either trademarks and/or registered trademarks of the
respective owners. The publisher and the author make no claim to these trademarks.
While every precaution has been taken in the preparation of this document, the publisher and the author assume no
responsibility for errors or omissions, or for damages resulting from the use of information contained in this document
or from the use of programs and source code that may accompany it. In no event shall the publisher and the author be
liable for any loss of profit or any other commercial damage caused or alleged to have been caused directly or
indirectly by this document.
Technical Editors
Geoffrey Sparks
Dermot O'Bryan
Simon McNeilly
Neil Capey
Sam Mancarella
John Redfern
Vimal Kumar
Howard Britten
Brad Maxwell
Steve Meagher
I Contents
Table of Contents
Foreword 1
Part I Introduction 3
Overview ................................................................................................................................... 4
What You ..........................................................................................................................................................
Can Do 4
Key Benefits
.......................................................................................................................................................... 5
Key Features
.......................................................................................................................................................... 8
Enterprise
...................................................................................................................................
Architect Editions 10
The Trial ..........................................................................................................................................................
Version 10
Editions Available
.......................................................................................................................................................... 12
The Read-only
..........................................................................................................................................................
'Lite' Edition 15
Formal Statements
................................................................................................................................... 16
Copyright..........................................................................................................................................................
Notice 16
End User..........................................................................................................................................................
License Agreement 16
Trademarks
.......................................................................................................................................................... 19
Acknowledgements
.......................................................................................................................................................... 20
Installation
................................................................................................................................... 21
Register ...................................................................................................................................
a Full License 22
Help and...................................................................................................................................
Support 23
Available..........................................................................................................................................................
Helpfile Formats 24
Support .......................................................................................................................................................... 24
File ......................................................................................................................................................... 56
Remove Recent .........................................................................................................................................
Projects 56
Edit ......................................................................................................................................................... 57
Paste Elements .........................................................................................................................................
Submenu 58
View ......................................................................................................................................................... 58
View Submenus ......................................................................................................................................... 59
.........................................................................................................................................................
Project 60
Documentation .........................................................................................................................................
Submenu 61
Source Code .........................................................................................................................................
Engineering Submenu 62
Execution Analyzer.........................................................................................................................................
Submenu 62
Database Engineering
.........................................................................................................................................
Submenu 63
Transformations .........................................................................................................................................
Submenu 63
Model Validation .........................................................................................................................................
Submenu 64
Web Services .........................................................................................................................................
Submenu 64
XML Schema .........................................................................................................................................
Submenu 64
Security Submenu ......................................................................................................................................... 64
Version Control .........................................................................................................................................
Submenu 65
Import/Export .........................................................................................................................................
Submenu 65
.........................................................................................................................................................
Diagram 65
.........................................................................................................................................................
Element 67
Inline Features .........................................................................................................................................
Submenu 68
Advanced Submenu ......................................................................................................................................... 68
Source Code .........................................................................................................................................
Engineering Submenu 69
Appearance.........................................................................................................................................
Submenu 69
Position Submenus ......................................................................................................................................... 70
Tools......................................................................................................................................................... 70
Data Management .........................................................................................................................................
Submenu 71
Manage .EAP .........................................................................................................................................
File Submenu 71
Addins......................................................................................................................................................... 72
.........................................................................................................................................................
Settings 73
Window......................................................................................................................................................... 74
Help ......................................................................................................................................................... 74
Standard..........................................................................................................................................................
Windows 75
Dock.........................................................................................................................................................
Windows 76
.........................................................................................................................................................
Autohide Windows 78
Standard..........................................................................................................................................................
Toolbars 79
.........................................................................................................................................................
Default Tools Toolbar 80
.........................................................................................................................................................
Project Toolbar 81
Code.........................................................................................................................................................
Generation Toolbar 81
UML .........................................................................................................................................................
Elements Toolbar 83
.........................................................................................................................................................
Diagram Toolbar 83
.........................................................................................................................................................
Current Element Toolbar 84
.........................................................................................................................................................
Current Connector Toolbar 84
Format.........................................................................................................................................................
Toolbar 85
.........................................................................................................................................................
Workspace Layouts 86
Status.........................................................................................................................................................
Bar 89
Customization
.......................................................................................................................................................... 90
.........................................................................................................................................................
The Customize Dialog 90
Customize .........................................................................................................................................
Commands 91
Customize Toolbars......................................................................................................................................... 92
Custom Tools ......................................................................................................................................... 94
Open External ...................................................................................................................................
Tools 96
Pass Parameters ...................................................................................................................................
to Applications 97
Customize Keyboard......................................................................................................................................... 98
Customize.........................................................................................................................................
Menu 100
Customize.........................................................................................................................................
Options 101
.........................................................................................................................................................
Visual Styles 101
Other Windows
.......................................................................................................................................................... 102
The.........................................................................................................................................................
Output Window 102
The.........................................................................................................................................................
Web Browser 103
Keyboard
..........................................................................................................................................................
Shortcuts 104
.........................................................................................................................................................
Keyboard-Mouse Shortcuts 109
Local Options
................................................................................................................................... 350
General.......................................................................................................................................................... 351
Standard
..........................................................................................................................................................
Colors 353
Diagram.......................................................................................................................................................... 355
.........................................................................................................................................................
Appearance 356
Set Default.........................................................................................................................................
Fonts 357
.........................................................................................................................................................
Behavior 359
.........................................................................................................................................................
Sequence 360
Objects .......................................................................................................................................................... 362
.........................................................................................................................................................
Element Visibility 363
Links .......................................................................................................................................................... 364
Communication
..........................................................................................................................................................
Message Colors 366
XML Specifications
.......................................................................................................................................................... 367
.........................................................................................................................................................
Communication Group 409
.........................................................................................................................................................
Interaction Group 410
.........................................................................................................................................................
Timing Group 410
.........................................................................................................................................................
State Group 411
.........................................................................................................................................................
Activity Group 412
.........................................................................................................................................................
Component Group 412
.........................................................................................................................................................
Deployment Group 413
.........................................................................................................................................................
Profile Group 414
.........................................................................................................................................................
Metamodel Group 415
.........................................................................................................................................................
Analysis Group 416
.........................................................................................................................................................
Custom Group 417
.........................................................................................................................................................
Requirement Group 418
.........................................................................................................................................................
Maintenance Group 418
User.........................................................................................................................................................
Interface Group 419
WSDL.........................................................................................................................................................
Group 420
XML.........................................................................................................................................................
Schema Group 420
Data.........................................................................................................................................................
Modeling Group 421
Diagram..........................................................................................................................................................
Tasks 421
Add.........................................................................................................................................................
New Diagrams 422
.........................................................................................................................................................
Diagram Properties 423
General Tab ......................................................................................................................................... 424
Diagram Tab ......................................................................................................................................... 425
Elements Tab ......................................................................................................................................... 426
Features Tab ......................................................................................................................................... 427
Connectors .........................................................................................................................................
Tab 428
Visible Class .........................................................................................................................................
Members 429
.........................................................................................................................................................
Paste from Project Browser 430
Paste Multiple .........................................................................................................................................
Items 431
Paste Composite .........................................................................................................................................
Elements 431
Paste Activities......................................................................................................................................... 432
Copy.........................................................................................................................................................
And Paste Diagram Element 433
.........................................................................................................................................................
Place Related Elements on Diagram 433
.........................................................................................................................................................
Delete Diagram 434
.........................................................................................................................................................
Rename Diagram 434
.........................................................................................................................................................
Change Diagram Type 434
.........................................................................................................................................................
Diagram Navigation Hotkeys 435
Copy.........................................................................................................................................................
Image to Disk 435
Copy.........................................................................................................................................................
Image to Clipboard 436
Copy.........................................................................................................................................................
(Duplicate) Diagram 436
.........................................................................................................................................................
Z Order Elements 437
Set .........................................................................................................................................................
the Default Diagram 437
Open.........................................................................................................................................................
Package From Diagram 438
.........................................................................................................................................................
Feature Visibility 438
.........................................................................................................................................................
Insert Diagram Properties Note 440
.........................................................................................................................................................
Create Legends 441
.........................................................................................................................................................
Autosize Elements 444
.........................................................................................................................................................
Swimlanes Matrix 444
.........................................................................................................................................................
Using the Image Manager 447
Create Custom .........................................................................................................................................
Diagram Background 448
Import Image .........................................................................................................................................
Library 449
Swimlanes......................................................................................................................................... 450
Show.........................................................................................................................................................
Realized Interfaces of Class 452
.........................................................................................................................................................
Label Menu Section 452
Pan.........................................................................................................................................................
and Zoom a Diagram 453
Move.........................................................................................................................................................
Elements In Diagram Sections 454
View.........................................................................................................................................................
Last and Next Diagram 455
Set .........................................................................................................................................................
Diagram Page Size 455
.........................................................................................................................................................
Scale Image to Page Size 456
Lock.........................................................................................................................................................
Diagram 457
Undo.........................................................................................................................................................
Last Action 458
Redo.........................................................................................................................................................
Last Action 458
Layout Diagrams
.......................................................................................................................................................... 458
.........................................................................................................................................................
Circular/Elliptical Layout 459
Box.........................................................................................................................................................
Layout 463
Per .........................................................................................................................................................
Page Layout 464
.........................................................................................................................................................
Digraph Layout 465
.........................................................................................................................................................
Spring Layout 466
.........................................................................................................................................................
Neaten Layout 467
.........................................................................................................................................................
Converge/Diverge Layout 467
Fan.........................................................................................................................................................
Relations Layout 469
Auto.........................................................................................................................................................
Route Layout 470
Lay .........................................................................................................................................................
Out a Diagram Automatically 471
The Quick
..........................................................................................................................................................
Linker 474
.........................................................................................................................................................
Create New Elements 475
.........................................................................................................................................................
Create Connectors 476
Elements
................................................................................................................................... 478
Element..........................................................................................................................................................
Property Displays 480
.........................................................................................................................................................
Properties Dialog 481
General Settings......................................................................................................................................... 482
Advanced...................................................................................................................................
Settings 483
Details ......................................................................................................................................... 484
Requirements ......................................................................................................................................... 485
...................................................................................................................................
External Requirements 487
Constraints ......................................................................................................................................... 488
Links ......................................................................................................................................... 489
Scenarios ......................................................................................................................................... 490
Structured...................................................................................................................................
Specification Tab 493
Set Up Scenario ...................................................................................................................................
Specification 494
Structured...................................................................................................................................
Specification Toolbar 495
Structured...................................................................................................................................
Specification Item Context Menu 496
Structured...................................................................................................................................
Specification Selected Text Context Menu 497
Structured...................................................................................................................................
Specification Entry Points Context Menu 498
Structured...................................................................................................................................
Specification Floating Toolbar 499
Generate ...................................................................................................................................
Diagrams 499
Generated...................................................................................................................................
Activity Diagram 500
Generated...................................................................................................................................
RuleFlow Diagram 501
Generated...................................................................................................................................
State Machine Diagram 501
Generated...................................................................................................................................
Sequence Diagram 503
Generated...................................................................................................................................
Robustness Diagram 504
Generate ...................................................................................................................................
Test Cases 505
...................................................................................................................................
Context References Tab 506
...................................................................................................................................
Scenario Constraints Tab 507
Associated.........................................................................................................................................
Files 507
Tagged Values .........................................................................................................................................
Tab 508
.........................................................................................................................................................
Properties Docked Window 508
The.........................................................................................................................................................
Element Browser 510
Generate Scenario
.........................................................................................................................................
From Activity Diagram 513
The.........................................................................................................................................................
Scenarios & Requirements Window 514
.........................................................................................................................................................
Select <Item> Dialog 515
Select Property .........................................................................................................................................
Dialog 517
Object Classifiers
.......................................................................................................................................................... 519
Using.........................................................................................................................................................
Classifiers 520
Visual Representation
.......................................................................................................................................................... 520
.........................................................................................................................................................
Element Icons 521
.........................................................................................................................................................
Compartments 521
Element..........................................................................................................................................................
Tasks 522
.........................................................................................................................................................
Create Elements 523
Add.........................................................................................................................................................
Elements Directly To Packages 524
Use.........................................................................................................................................................
Auto Naming and Auto Counters 525
Set .........................................................................................................................................................
Element Parent 526
Show .........................................................................................................................................................
Element Use 526
Set .........................................................................................................................................................
Up Cross References 527
Move .........................................................................................................................................................
Elements Within Diagrams 529
Move .........................................................................................................................................................
Elements Between Packages 530
Copy .........................................................................................................................................................
Elements Between Packages 531
.........................................................................................................................................................
Change Element Type 532
Align.........................................................................................................................................................
Elements 532
.........................................................................................................................................................
Resize Elements 533
.........................................................................................................................................................
Delete Elements 534
.........................................................................................................................................................
Customize Visibility of Elements 535
.........................................................................................................................................................
Create Notes and Text 536
Link.........................................................................................................................................................
Note to Internal Documentation 537
Set .........................................................................................................................................................
an Element's Default Appearance 538
.........................................................................................................................................................
Get/Set Project Custom Colors 540
Set .........................................................................................................................................................
Element Templates Package 542
.........................................................................................................................................................
Highlight Context Element 543
Make .........................................................................................................................................................
Linked Element a Local Copy 544
Copy .........................................................................................................................................................
Features Between Elements 544
Move .........................................................................................................................................................
Features Between Elements 545
Element..........................................................................................................................................................
Context Menu 547
.........................................................................................................................................................
Properties Menu Section 548
Advanced .........................................................................................................................................
Submenu 549
Custom Properties
.........................................................................................................................................
Dialog 550
Add.........................................................................................................................................................
Submenu 550
Insert Related .........................................................................................................................................
Elements 551
Find.........................................................................................................................................................
Submenu 552
.........................................................................................................................................................
Embedded Elements Submenu 552
Embedded.........................................................................................................................................
Elements Window 553
.........................................................................................................................................................
Features Menu Section 554
Code .........................................................................................................................................................
Engineering Menu Section 554
.........................................................................................................................................................
Appearance Menu Section 555
Set Element .........................................................................................................................................
Font 556
.........................................................................................................................................................
Element Multiple Selection Menu 557
Attributes
.......................................................................................................................................................... 558
.........................................................................................................................................................
Attributes Dialog - General Tab 560
.........................................................................................................................................................
Attributes Dialog - Detail 562
.........................................................................................................................................................
Attributes Dialog - Constraints 563
.........................................................................................................................................................
Attribute Tagged Values 564
.........................................................................................................................................................
Create Properties 565
.........................................................................................................................................................
Display Inherited Attributes 567
.........................................................................................................................................................
Create Object From Attribute 568
Behavior .......................................................................................................................................................... 569
.........................................................................................................................................................
Operations 569
Operations.........................................................................................................................................
Dialog - General 570
Operations ...................................................................................................................................
Dialog - Behavior 573
Initial Code ................................................................................................................................... 576
Operations ...................................................................................................................................
Dialog - Constraints 577
Operation .........................................................................................................................................
Tagged Values 577
Override Parent .........................................................................................................................................
Operations 578
Display Inherited
.........................................................................................................................................
Operations 579
.........................................................................................................................................................
Interactions and Activities 581
.........................................................................................................................................................
Behavior Calls 581
Associate .........................................................................................................................................
with Different Behaviors 582
Synchronize .........................................................................................................................................
Arguments 582
.........................................................................................................................................................
Behavior Call Arguments 582
.........................................................................................................................................................
Behavior Parameters 583
Parameters .........................................................................................................................................
Dialog 583
Parameter.........................................................................................................................................
Tagged Values 585
Operation .........................................................................................................................................
Parameters by Reference 586
In-place..........................................................................................................................................................
Editing Options 586
.........................................................................................................................................................
In-place Editing Tasks 586
Edit.........................................................................................................................................................
Element Item Name 588
Edit.........................................................................................................................................................
Feature Stereotype 588
Edit.........................................................................................................................................................
Feature Scope 589
Edit.........................................................................................................................................................
Attribute Keyword 590
Edit.........................................................................................................................................................
Operation Parameter Keyword 591
Edit.........................................................................................................................................................
Parameter Kind 592
.........................................................................................................................................................
Insert New Feature 592
.........................................................................................................................................................
Insert Operation Parameter 593
.........................................................................................................................................................
Insert Maintenance Feature 594
.........................................................................................................................................................
Insert Testing Features 595
Linked Documents
.......................................................................................................................................................... 597
.........................................................................................................................................................
Create Document Artifact 599
Link.........................................................................................................................................................
Document to UML Element 599
Edit.........................................................................................................................................................
Linked Documents 600
.........................................................................................................................................................
Hyperlink From Linked Document 601
.........................................................................................................................................................
Create Element From Document 602
.........................................................................................................................................................
Replace or Delete Documents 602
.........................................................................................................................................................
Create Linked Document Templates 603
Edit.........................................................................................................................................................
Linked Document Templates 604
Connectors
................................................................................................................................... 606
Connector
..........................................................................................................................................................
Context Menu 606
.........................................................................................................................................................
Properties Menu Section 607
.........................................................................................................................................................
Type-Specific Menu Section 607
.........................................................................................................................................................
Advanced Menu Section 608
Style.........................................................................................................................................................
Menu Section 608
.........................................................................................................................................................
Appearance Menu Section 609
Connector
..........................................................................................................................................................
Tasks 609
.........................................................................................................................................................
Connect Elements 610
.........................................................................................................................................................
Connect to Element Feature 611
Add.........................................................................................................................................................
a Note to a Connector 612
.........................................................................................................................................................
Arrange Connectors 613
.........................................................................................................................................................
Change Connector Type 614
.........................................................................................................................................................
Change the Source or Target Element 614
.........................................................................................................................................................
Connector Styles 615
.........................................................................................................................................................
Create Connector in Project Browser 618
.........................................................................................................................................................
Relationship Visibility 619
.........................................................................................................................................................
Delete Connectors 619
.........................................................................................................................................................
Generalization Sets 620
.........................................................................................................................................................
Hide/Show Connectors 621
.........................................................................................................................................................
Hide/Show Labels 622
.........................................................................................................................................................
Connector In-place Editing Options 623
.........................................................................................................................................................
Reverse Connector 623
Set .........................................................................................................................................................
Association Specializations 623
.........................................................................................................................................................
Change Sequence Message Scope 624
Show .........................................................................................................................................................
Uses Arrow Head 625
Tree.........................................................................................................................................................
Style Hierarchy 625
Connector
..........................................................................................................................................................
Properties 626
.........................................................................................................................................................
Connector Constraints 628
.........................................................................................................................................................
Source Role 629
.........................................................................................................................................................
Target Role 631
.........................................................................................................................................................
Connector Tagged Values 631
Tagged ...................................................................................................................................
Values 632
Quick Add
..........................................................................................................................................................
- Tagged Value To Elements 634
Assign a..........................................................................................................................................................
Tagged Value to an Item 635
Assign Notes
..........................................................................................................................................................
to a Tagged Value 636
Show Duplicate
..........................................................................................................................................................
Tags 637
Advanced..........................................................................................................................................................
Tag Management 638
Notes ................................................................................................................................... 641
Notes Toolbar
.......................................................................................................................................................... 642
Reference
...................................................................................................................................
Data 644
People .......................................................................................................................................................... 645
.........................................................................................................................................................
Project Authors 645
.........................................................................................................................................................
Project Roles 648
.........................................................................................................................................................
Project Resources 650
.........................................................................................................................................................
Project Clients 651
General..........................................................................................................................................................
Types 653
.........................................................................................................................................................
Status Types 653
.........................................................................................................................................................
Constraint Types 655
.........................................................................................................................................................
Constraint Status Types 656
.........................................................................................................................................................
Requirement Types 657
.........................................................................................................................................................
Scenario Types 658
.........................................................................................................................................................
Metrics and Estimation 659
Maintenance
.......................................................................................................................................................... 660
.........................................................................................................................................................
Problem Types 660
.........................................................................................................................................................
Testing Types 661
UML Types
.......................................................................................................................................................... 662
.........................................................................................................................................................
Stereotype Settings 662
Shape Editor ......................................................................................................................................... 664
.........................................................................................................................................................
Tagged Value Types 664
.........................................................................................................................................................
Cardinality 665
Data.........................................................................................................................................................
Types 666
Resources
.......................................................................................................................................................... 667
.........................................................................................................................................................
Favorites 669
Set a Time...................................................................................................................................
Range 692
...................................................................................................................................
Edit a Timing Diagram 692
...................................................................................................................................
Add and Edit State Lifeline 693
...................................................................................................................................
Edit States In State Lifeline 693
...................................................................................................................................
Edit Transitions In State Lifeline 694
...................................................................................................................................
Add and Edit Value Lifeline 696
Add States...................................................................................................................................
In Value Lifeline 696
...................................................................................................................................
Edit Transitions In Value Lifeline 696
Configure...................................................................................................................................
Timeline - States 697
Configure...................................................................................................................................
Timeline - Transitions 699
...................................................................................................................................
Time Intervals 700
...................................................................................................................................
Time Interval Operations 703
Sequence.........................................................................................................................................
Diagram 706
...................................................................................................................................
Denote Lifecycle of an Element 708
Layout of ...................................................................................................................................
Sequence Diagrams 709
Sequence...................................................................................................................................
Elements 710
Sequence...................................................................................................................................
Diagrams and Version Control 710
Sequence...................................................................................................................................
Element Activation 711
...................................................................................................................................
Lifeline Activation Levels 712
Sequence...................................................................................................................................
Message Label Visibility 714
Change the ...................................................................................................................................
Top Margin 714
Inline Sequence...................................................................................................................................
Elements 714
Communication .........................................................................................................................................
Diagram 715
Communication ...................................................................................................................................
Diagrams in Color 716
Interaction.........................................................................................................................................
Overview Diagram 717
.........................................................................................................................................................
Structural Diagrams 719
Package Diagram ......................................................................................................................................... 720
Class Diagram ......................................................................................................................................... 721
Object Diagram ......................................................................................................................................... 723
Composite.........................................................................................................................................
Structure Diagram 724
Properties................................................................................................................................... 726
Deployment .........................................................................................................................................
Diagram 727
Component .........................................................................................................................................
Diagram 730
Profile Diagram ......................................................................................................................................... 732
.........................................................................................................................................................
Extended Diagrams 733
Analysis Diagram......................................................................................................................................... 733
Custom Diagram ......................................................................................................................................... 734
Requirements .........................................................................................................................................
Diagram 736
Maintenance .........................................................................................................................................
Diagram 737
User Interface .........................................................................................................................................
Diagram 738
Database .........................................................................................................................................
Schema 739
Business Modeling/Interaction
......................................................................................................................................... 739
UML Elements
.......................................................................................................................................................... 741
.........................................................................................................................................................
Behavioral Diagram Elements 742
Action ......................................................................................................................................... 743
Action Notation ................................................................................................................................... 745
Set Feature ...................................................................................................................................
Dialog 748
Action Expansion...................................................................................................................................
Node 749
Action Pin................................................................................................................................... 749
Assign Action ...................................................................................................................................
Pins 751
Local Pre/Post ...................................................................................................................................
Conditions 752
Activity ......................................................................................................................................... 753
................................................................................................................................... 754
Activity Notation
...................................................................................................................................
Activity Parameter Nodes 755
................................................................................................................................... 756
Activity Partition
Actor ......................................................................................................................................... 757
Central Buffer
.........................................................................................................................................
Node 758
Choice ......................................................................................................................................... 758
Combined.........................................................................................................................................
Fragment 759
...................................................................................................................................
Create a Combined Fragment 761
Interaction...................................................................................................................................
Operators 762
Datastore ......................................................................................................................................... 764
Decision ......................................................................................................................................... 765
Diagram Frame
......................................................................................................................................... 766
Diagram Gate
......................................................................................................................................... 767
Endpoint ......................................................................................................................................... 768
Entry Point......................................................................................................................................... 769
Exception ......................................................................................................................................... 769
Expansion.........................................................................................................................................
Region 769
...................................................................................................................................
Add Expansion Region 771
Exit Point ......................................................................................................................................... 771
Final ......................................................................................................................................... 772
Flow Final......................................................................................................................................... 772
Fork/Join ......................................................................................................................................... 773
Fork ................................................................................................................................... 775
Join ................................................................................................................................... 776
History ......................................................................................................................................... 777
Initial ......................................................................................................................................... 778
Interaction......................................................................................................................................... 779
Interaction.........................................................................................................................................
Occurrence 780
Interruptible
.........................................................................................................................................
Activity Region 781
...................................................................................................................................
Add Interruptible Activity Region 782
Junction ......................................................................................................................................... 782
Lifeline ......................................................................................................................................... 783
Merge ......................................................................................................................................... 784
Message Endpoint
......................................................................................................................................... 784
Message Label
......................................................................................................................................... 785
Note ......................................................................................................................................... 785
Partition ......................................................................................................................................... 786
Receive ......................................................................................................................................... 787
Region ......................................................................................................................................... 788
Send ......................................................................................................................................... 789
State ......................................................................................................................................... 789
Composite ...................................................................................................................................
State 790
State/Continuation
......................................................................................................................................... 792
...................................................................................................................................
Continuation 792
...................................................................................................................................
State Invariant 793
State Lifeline ......................................................................................................................................... 794
State Machine ......................................................................................................................................... 796
Structured.........................................................................................................................................
Activity 796
Structured...................................................................................................................................
and Sequential Nodes 798
Loop and ...................................................................................................................................
Conditional Nodes 798
Synch ......................................................................................................................................... 802
System Boundary ......................................................................................................................................... 802
Boundary...................................................................................................................................
Element Settings 803
Terminate......................................................................................................................................... 804
Trigger ......................................................................................................................................... 804
Use Case ......................................................................................................................................... 806
Use Case...................................................................................................................................
Extension Points 807
Rectangle...................................................................................................................................
Notation 808
Value Lifeline ......................................................................................................................................... 808
.........................................................................................................................................................
Structural Diagram Elements 809
Artifact ......................................................................................................................................... 810
Class ......................................................................................................................................... 811
Active Classes ................................................................................................................................... 812
Parameterized ...................................................................................................................................
Classes (Templates) 813
Collaboration
......................................................................................................................................... 814
Collaboration
.........................................................................................................................................
Occurrence 815
Component ......................................................................................................................................... 816
Data Type......................................................................................................................................... 817
Deployment.........................................................................................................................................
Spec 818
Device ......................................................................................................................................... 818
Document.........................................................................................................................................
Artifact 819
Enumeration
......................................................................................................................................... 819
Execution .........................................................................................................................................
Environment 820
Expose Interface
......................................................................................................................................... 820
Information
.........................................................................................................................................
Item 821
Interface ......................................................................................................................................... 821
Node ......................................................................................................................................... 822
Object ......................................................................................................................................... 823
Run-time ...................................................................................................................................
State 823
...................................................................................................................................
Define a Run-time Variable 824
Remove a...................................................................................................................................
Defined Variable 824
...................................................................................................................................
Object State 824
Package ......................................................................................................................................... 825
Part ......................................................................................................................................... 825
Add Property ...................................................................................................................................
Value 826
Port ......................................................................................................................................... 826
Add a Port...................................................................................................................................
to an Element 827
Inherited and ...................................................................................................................................
Redefined Ports 827
The Property ...................................................................................................................................
Tab 829
Primitive ......................................................................................................................................... 829
Qualifiers ......................................................................................................................................... 830
Qualifiers ...................................................................................................................................
Dialog 832
Signal ......................................................................................................................................... 834
.........................................................................................................................................................
Inbuilt and Extension Stereotypes 835
Analysis Stereotypes
......................................................................................................................................... 835
Boundary ......................................................................................................................................... 836
...................................................................................................................................
Create a Boundary 836
Composite.........................................................................................................................................
Elements 837
Control ......................................................................................................................................... 838
...................................................................................................................................
Create a Control Element 838
Entity ......................................................................................................................................... 839
Create an...................................................................................................................................
Entity 839
Event ......................................................................................................................................... 839
Feature ......................................................................................................................................... 840
Hyperlinks......................................................................................................................................... 840
Hyperlinks...................................................................................................................................
To Files 842
...................................................................................................................................
Script Hyperlinks 842
Add Action ...................................................................................................................................
As Hyperlink 842
Hyperlinks...................................................................................................................................
Between Diagrams 842
N-Ary Association
......................................................................................................................................... 844
Packaging.........................................................................................................................................
Component 845
Process ......................................................................................................................................... 846
Requirements ......................................................................................................................................... 846
Screen ......................................................................................................................................... 847
Test Case......................................................................................................................................... 848
Table ......................................................................................................................................... 849
UI Control.........................................................................................................................................
Element 849
Web Stereotypes ......................................................................................................................................... 851
UML Connectors
.......................................................................................................................................................... 852
.........................................................................................................................................................
Aggregate 854
Change Aggregation
.........................................................................................................................................
Connector Form 855
.........................................................................................................................................................
Assembly 855
.........................................................................................................................................................
Associate 855
.........................................................................................................................................................
Association Class 856
Connect New .........................................................................................................................................
Class to Association 857
.........................................................................................................................................................
Communication Path 858
.........................................................................................................................................................
Compose 858
.........................................................................................................................................................
Connector 859
.........................................................................................................................................................
Control Flow 860
.........................................................................................................................................................
Delegate 861
.........................................................................................................................................................
Dependency 861
Apply a Stereotype
......................................................................................................................................... 862
.........................................................................................................................................................
Deployment 862
.........................................................................................................................................................
Extend 862
.........................................................................................................................................................
Generalize 863
.........................................................................................................................................................
Include 864
.........................................................................................................................................................
Information Flow 864
Convey Information
.........................................................................................................................................
on a Flow 865
Realize an.........................................................................................................................................
Information Flow 866
.........................................................................................................................................................
Interrupt Flow 867
.........................................................................................................................................................
Manifest 867
.........................................................................................................................................................
Message 867
Message (Sequence
.........................................................................................................................................
Diagram) 868
................................................................................................................................... 871
Self-Message
Call ................................................................................................................................... 872
Message ...................................................................................................................................
Examples 873
Change the ...................................................................................................................................
Timing Details 874
................................................................................................................................... 876
General Ordering
...................................................................................................................................
Asynchronous Signal Message 877
Message (Communication
.........................................................................................................................................
Diagram) 879
...................................................................................................................................
Create a Communication Message 880
Re-Order ...................................................................................................................................
Messages 880
Message (Timing .........................................................................................................................................
Diagram) 882
Create a Timing...................................................................................................................................
Message 883
......................................................................................................................................................... 885
Nesting
......................................................................................................................................................... 886
Notelink
.........................................................................................................................................................
Object Flow 886
Object Flows .........................................................................................................................................
in Activity Diagrams 886
.........................................................................................................................................................
Occurrence 888
.........................................................................................................................................................
Package Import 888
.........................................................................................................................................................
Package Merge 888
.........................................................................................................................................................
Realize 889
.........................................................................................................................................................
Recursion 890
Role.........................................................................................................................................................
Binding 890
.........................................................................................................................................................
Represents 891
.........................................................................................................................................................
Representation 891
.........................................................................................................................................................
Trace 892
.........................................................................................................................................................
Transition 892
Use......................................................................................................................................................... 894
UML Stereotypes
.......................................................................................................................................................... 895
.........................................................................................................................................................
Apply Stereotypes 896
.........................................................................................................................................................
Stereotype Selector 897
.........................................................................................................................................................
Stereotype Visibility 898
.........................................................................................................................................................
Standard Stereotypes 899
.........................................................................................................................................................
Stereotypes with Alternative Images 900
UML Patterns
.......................................................................................................................................................... 901
.........................................................................................................................................................
Create a Pattern 902
.........................................................................................................................................................
Import a Pattern 904
Use.........................................................................................................................................................
a Pattern 904
UML Profiles
.......................................................................................................................................................... 906
Use.........................................................................................................................................................
Profiles 907
Import a UML .........................................................................................................................................
Profile 908
Add Profile.........................................................................................................................................
Objects and Features to a Diagram 909
Tagged Values .........................................................................................................................................
in Profiles 910
Synchronize .........................................................................................................................................
Tagged Values and Constraints 910
.........................................................................................................................................................
Profile References 912
Supported.........................................................................................................................................
Types 912
Profile Structure
......................................................................................................................................... 913
Attributes .........................................................................................................................................
Supported in XML Profile 914
Example Profile ......................................................................................................................................... 915
Specialized
...................................................................................................................................
UML Models 917
Requirements
.......................................................................................................................................................... 917
.........................................................................................................................................................
Create Requirements 918
Requirement .........................................................................................................................................
Properties 919
Color Code ...................................................................................................................................
External Requirements 920
Extend Requirement
.........................................................................................................................................
Properties 920
Display Tagged ...................................................................................................................................
Values On Diagrams 921
Connect Requirements
......................................................................................................................................... 921
Import Requirements
.........................................................................................................................................
and Hierarchies in CSV 922
.........................................................................................................................................................
Model Requirements 922
Internal Requirements
......................................................................................................................................... 925
Make Internal ...................................................................................................................................
Requirement External 926
.........................................................................................................................................................
Manage Requirements 927
View Requirements
......................................................................................................................................... 928
Trace Use.........................................................................................................................................
of Requirements 928
Manage Requirement
.........................................................................................................................................
Changes 928
Report on .........................................................................................................................................
Requirements 929
Business
..........................................................................................................................................................
Models 930
.........................................................................................................................................................
Analysis Models 931
Process Modeling.........................................................................................................................................
Notation 931
Inputs, Resources
.........................................................................................................................................
and Information 931
Events ......................................................................................................................................... 932
Outputs ......................................................................................................................................... 932
Goals ......................................................................................................................................... 933
A Complete .........................................................................................................................................
Business Process 933
Business
..........................................................................................................................................................
Rules 934
.........................................................................................................................................................
Model Business Rules For RuleTasks 937
.........................................................................................................................................................
Create a Business Domain Model 938
.........................................................................................................................................................
Create a Rule Flow Model 939
Pass Parameters .........................................................................................................................................
to Rule Flow Activity 942
Model Rules .........................................................................................................................................
In an Operation 943
.........................................................................................................................................................
Compose Business Rules 945
.........................................................................................................................................................
Validate Business Rules 950
Code.........................................................................................................................................................
Generation For Business Rules 951
BPMN Models
.......................................................................................................................................................... 952
.........................................................................................................................................................
Change BPMN Element Appearance 956
.........................................................................................................................................................
Migrate BPMN 1.0 Model to BPMN 1.1 957
BPEL Models
.......................................................................................................................................................... 958
.........................................................................................................................................................
Create a BPEL Model 959
.........................................................................................................................................................
Model a BPEL Process 961
Model Start .........................................................................................................................................
Event 962
Model End.........................................................................................................................................
Event 965
Model Intermediate
.........................................................................................................................................
Event 968
Model Gateway ......................................................................................................................................... 972
Model Activity ......................................................................................................................................... 974
Model Pool ......................................................................................................................................... 979
.........................................................................................................................................................
Model a Sequence Flow Connector 980
.........................................................................................................................................................
Create Assignments 981
.........................................................................................................................................................
Generate BPEL 983
.........................................................................................................................................................
Create a BPEL Web Service 983
BPEL.........................................................................................................................................................
Model Validation 984
Systems..........................................................................................................................................................
Engineering 986
.........................................................................................................................................................
SysML 989
SysML Model .........................................................................................................................................
Elements 991
SysML Block .........................................................................................................................................
Definition 992
SysML Internal .........................................................................................................................................
Block 994
SysML Parametrics
......................................................................................................................................... 995
SysML Activity ......................................................................................................................................... 996
SysML Interaction
......................................................................................................................................... 998
SysML State .........................................................................................................................................
Machine 999
SysML Use .........................................................................................................................................
Case 1000
SysML Requirements
......................................................................................................................................... 1001
.........................................................................................................................................................
SysML Parametric Models 1002
Simulate .........................................................................................................................................
a SysML Model 1005
.........................................................................................................................................................
Create a Requirements Model 1007
.........................................................................................................................................................
Create an Operational Domain Model 1007
.........................................................................................................................................................
Compose System Design 1009
.........................................................................................................................................................
Create Reusable Subsystems 1011
Data Models
.......................................................................................................................................................... 1011
.........................................................................................................................................................
A Data Model Diagram 1013
.........................................................................................................................................................
Create a Table 1013
.........................................................................................................................................................
Working with Tables 1014
Set Table.........................................................................................................................................
Owner 1016
Set MySQL .........................................................................................................................................
Options 1016
Set Oracle .........................................................................................................................................
Table Properties 1017
Create Columns......................................................................................................................................... 1019
Create Oracle .........................................................................................................................................
Packages 1022
.........................................................................................................................................................
Primary Key 1022
SQL Server .........................................................................................................................................
Non Clustered Keys 1024
.........................................................................................................................................................
Foreign Key 1024
Create Foreign.........................................................................................................................................
Key 1025
Define Foreign.........................................................................................................................................
Key Name Template 1028
.........................................................................................................................................................
Stored Procedures 1030
Create Individual
.........................................................................................................................................
Class Procedure 1030
.........................................................................................................................................................
Advanced Topics 1031
Views ......................................................................................................................................... 1032
Index, Trigger,
.........................................................................................................................................
Check Constraint 1033
Data Type .........................................................................................................................................
Conversion Procedure 1035
Data Type .........................................................................................................................................
Conversion for a Package 1036
DBMS Datatypes......................................................................................................................................... 1037
XML Schema
..........................................................................................................................................................
- XSD 1039
XML.........................................................................................................................................................
Technologies 1039
.........................................................................................................................................................
Model XSD 1040
UML Profile .........................................................................................................................................
for XSD 1041
XSD Datatypes .........................................................................................................................................
Package 1047
Abstract .........................................................................................................................................
XSD models 1047
Default UML ...................................................................................................................................
to XSD Mappings 1049
Web Services
..........................................................................................................................................................
- WSDL 1049
.........................................................................................................................................................
Model WSDL 1050
WSDL Namespace......................................................................................................................................... 1051
WSDL Document ......................................................................................................................................... 1053
WSDL Service ......................................................................................................................................... 1054
WSDL Port .........................................................................................................................................
Type 1056
WSDL Message ......................................................................................................................................... 1056
WSDL Binding ......................................................................................................................................... 1057
WSDL Port .........................................................................................................................................
Type Operation 1059
Add RTF...................................................................................................................................
Report Templates 1132
Add Linked ...................................................................................................................................
Document Templates 1133
Working .........................................................................................................................................
with MTS Files 1133
Customize .........................................................................................................................................
Toolbox Profiles 1134
...................................................................................................................................
Create Toolbox Profiles 1134
Toolbox ...................................................................................................................................
Page Attributes 1135
Create Hidden...................................................................................................................................
Sub-Menus 1135
Override...................................................................................................................................
Default Toolboxes 1136
Assign Icons ...................................................................................................................................
To Toolbox Items 1136
...................................................................................................................................
List of Enterprise Architect Toolboxes 1137
Elements...................................................................................................................................
Used in Toolboxes 1137
Connectors ...................................................................................................................................
Used In Toolboxes 1138
Create Diagram.........................................................................................................................................
Profiles 1139
...................................................................................................................................
Built-In Diagram Types 1140
Attribute...................................................................................................................................
Values - stylex & pdata 1140
Create Tasks .........................................................................................................................................
Pane Profiles 1141
Define Tasks ...................................................................................................................................
Pane Toolboxes 1141
...................................................................................................................................
Built-In Tasks Pane Commands 1142
Run Add-In ...................................................................................................................................
Functions 1143
Define Tasks ...................................................................................................................................
Pane Contexts 1144
Allocate ...................................................................................................................................
Tasks Pane Contexts 1144
Save a Tasks ...................................................................................................................................
Pane Profile 1145
Define Validation
.........................................................................................................................................
Configuration 1145
Incorporate .........................................................................................................................................
Model Templates 1146
Deploy An .........................................................................................................................................
MDG Technology 1146
.........................................................................................................................................................
Shape Scripts 1147
Getting Started
.........................................................................................................................................
With Shape Scripts 1148
Shape Editor ......................................................................................................................................... 1150
Write Scripts ......................................................................................................................................... 1151
...................................................................................................................................
Syntax Grammar 1151
...................................................................................................................................
Shape Attributes 1152
Drawing ...................................................................................................................................
Methods 1154
Color Queries................................................................................................................................... 1158
Conditional ...................................................................................................................................
Branching 1158
Query Methods................................................................................................................................... 1158
...................................................................................................................................
Display Element/Connector Properties 1158
Sub-Shapes ................................................................................................................................... 1160
Reserved ...................................................................................................................................
Names 1161
Miscellaneous................................................................................................................................... 1162
Example .........................................................................................................................................
Scripts 1163
.........................................................................................................................................................
Tagged Value Types 1166
Predefined .........................................................................................................................................
Structured Types 1166
Create Structured
.........................................................................................................................................
Tagged Values 1168
Predefined .........................................................................................................................................
Reference Data Types 1169
Create Reference
.........................................................................................................................................
Data Tagged Values 1170
Create Custom .........................................................................................................................................
Tagged Value Type 1171
.........................................................................................................................................................
Code Template Framework 1172
Code Template .........................................................................................................................................
Syntax 1172
Literal Text ................................................................................................................................... 1172
Macros ................................................................................................................................... 1173
Template...................................................................................................................................
Substitution Macros 1173
...................................................................................................................................
Field Substitution Macros 1174
Tagged Value ...................................................................................................................................
Substitution Macros 1186
Function...................................................................................................................................
Macros 1187
...................................................................................................................................
Control Macros 1190
EASL Code ...................................................................................................................................
Generation Macros 1193
...................................................................................................................................
EASL Collections 1194
...................................................................................................................................
EASL Properties 1196
Variables................................................................................................................................... 1200
The Code.........................................................................................................................................
Template Editor in MDG Development 1202
Custom ...................................................................................................................................
Templates 1202
Override...................................................................................................................................
Default Templates 1204
Add New...................................................................................................................................
Stereotyped Templates 1205
...................................................................................................................................
Create Custom Language Template 1206
Review..........................................................................................................................................................
Source and Target Elements 1268
The Relationships
...................................................................................................................................
Window 1269
Diagram
...................................................................................................................................
Filters 1271
Work With
..........................................................................................................................................................
Diagram Filters 1272
The Pan
...................................................................................................................................
& Zoom Window 1275
Other Settings
.......................................................................................................................................................... 1335
.........................................................................................................................................................
Source Code Engineering 1336
Source Code .........................................................................................................................................
Options 1336
...................................................................................................................................
Import Component Types 1337
Options -.........................................................................................................................................
Code Editors 1337
...................................................................................................................................
Editor Language Properties 1338
Options -.........................................................................................................................................
Object Lifetimes 1340
Options -.........................................................................................................................................
Attribute/Operations 1341
Code Page .........................................................................................................................................
for Source Editing 1342
.........................................................................................................................................................
Local Paths 1343
.........................................................................................................................................................
Local Paths Dialog 1343
.........................................................................................................................................................
Language Macros 1344
Set.........................................................................................................................................................
Collection Classes 1345
.........................................................................................................................................................
Language Options 1347
ActionScript .........................................................................................................................................
Options 1348
Ada 2005.........................................................................................................................................
Options 1348
C Options ......................................................................................................................................... 1349
C# Options ......................................................................................................................................... 1350
C++ Options ......................................................................................................................................... 1351
Delphi Options......................................................................................................................................... 1352
...................................................................................................................................
Delphi Properties 1353
Java Options
......................................................................................................................................... 1355
PHP Options
......................................................................................................................................... 1356
Python Options
......................................................................................................................................... 1356
SystemC.........................................................................................................................................
Options 1357
VB.Net Options
......................................................................................................................................... 1358
Verilog Options
......................................................................................................................................... 1358
VHDL Options
......................................................................................................................................... 1359
Visual Basic
.........................................................................................................................................
Options 1360
MDG Technology
.........................................................................................................................................
Language Options 1360
Reset Options
......................................................................................................................................... 1361
Database
...................................................................................................................................
Engineering 1363
Import ..........................................................................................................................................................
Database Schema 1363
.........................................................................................................................................................
Select a Data Source 1365
.........................................................................................................................................................
Select Tables 1366
The .........................................................................................................................................................
Imported Class Elements 1367
Generate
..........................................................................................................................................................
DDL 1367
.........................................................................................................................................................
Generate DDL For a Table 1367
.........................................................................................................................................................
Generate DDL for a Package 1369
XML Engineering
................................................................................................................................... 1373
Import ..........................................................................................................................................................
XSD 1373
.........................................................................................................................................................
Global Element and ComplexType 1375
Import ..........................................................................................................................................................
WSDL 1376
Generate
..........................................................................................................................................................
XSD 1376
.........................................................................................................................................................
Generate Global Element 1378
Generate
..........................................................................................................................................................
WSDL 1379
Generate
..........................................................................................................................................................
MOF 1380
.........................................................................................................................................................
Getting Started 1381
.........................................................................................................................................................
Export MOF to XMI 1383
Model ...................................................................................................................................
Transformations - MDA 1385
Transform
..........................................................................................................................................................
Elements 1387
.........................................................................................................................................................
Chaining Transformations 1388
Built-in..........................................................................................................................................................
Transformations 1388
C#.........................................................................................................................................................
Transformation 1389
Data.........................................................................................................................................................
Model To ERD Transformation 1390
DDL .........................................................................................................................................................
Transformation 1393
EJB .........................................................................................................................................................
Transformations 1397
ERD.........................................................................................................................................................
To Data Model Transformation 1399
.........................................................................................................................................................
Java Transformation 1403
.........................................................................................................................................................
JUnit Transformation 1405
.........................................................................................................................................................
NUnit Transformation 1407
.........................................................................................................................................................
WSDL Transformation 1408
XSD.........................................................................................................................................................
Transformation 1409
Transformation
..........................................................................................................................................................
Templates 1412
.........................................................................................................................................................
Import Transformations 1414
Write Transformations
.......................................................................................................................................................... 1414
.........................................................................................................................................................
Default Transformation Templates 1415
.........................................................................................................................................................
Intermediary Language 1415
.........................................................................................................................................................
Objects 1415
.........................................................................................................................................................
Connectors 1419
.........................................................................................................................................................
Copy Information 1421
.........................................................................................................................................................
Convert Types 1421
.........................................................................................................................................................
Convert Names 1422
.........................................................................................................................................................
Cross References 1423
Integrated
...................................................................................................................................
Development 1424
Getting..........................................................................................................................................................
Started 1424
.........................................................................................................................................................
Prerequisites 1424
.........................................................................................................................................................
Available Tools 1424
.........................................................................................................................................................
Workspace Layout 1424
.........................................................................................................................................................
General Workflow 1425
.........................................................................................................................................................
Code Generation and Synchronization - Safeguards 1425
.........................................................................................................................................................
Code Editing For MDDE 1425
Setup .......................................................................................................................................................... 1425
.........................................................................................................................................................
Managing Scripts 1426
.........................................................................................................................................................
Defining Script Actions 1427
.........................................................................................................................................................
Setting the Default Script 1428
Code Editors
.......................................................................................................................................................... 1428
.........................................................................................................................................................
Syntax Highlighting 1429
.........................................................................................................................................................
Bookmarks 1430
.........................................................................................................................................................
Cursor History 1430
.........................................................................................................................................................
Brace Matching 1430
.........................................................................................................................................................
Automatic Indentation 1431
.........................................................................................................................................................
Commenting Selections 1431
.........................................................................................................................................................
Scope Guides 1431
.........................................................................................................................................................
Zooming 1432
.........................................................................................................................................................
Line Selection 1432
.........................................................................................................................................................
Intellisense 1432
.........................................................................................................................................................
Code Editor Key Bindings 1433
.........................................................................................................................................................
Code Editor Context Menu 1437
.........................................................................................................................................................
Script Editor 1439
The.........................................................................................................................................................
Source Code Viewer 1441
Source Code .........................................................................................................................................
Viewer Toolbar 1442
Build .......................................................................................................................................................... 1443
.........................................................................................................................................................
Add Commands 1444
.........................................................................................................................................................
Recursive Builds 1446
Debugging
.......................................................................................................................................................... 1446
.........................................................................................................................................................
How it Works 1446
.........................................................................................................................................................
Setup for Debugging 1447
Operating.........................................................................................................................................
System Specific Requirements 1447
UAC-Enabled ...................................................................................................................................
Operating Systems 1448
WINE Debugging................................................................................................................................... 1450
Microsoft.........................................................................................................................................
C++ and Native (C, VB) 1451
...................................................................................................................................
Debug Symbols 1452
Java ......................................................................................................................................... 1452
General ...................................................................................................................................
Setup for Java 1453
Advanced ...................................................................................................................................
Techniques 1454
Attach to...................................................................................................................................
Virtual Machine 1454
...................................................................................................................................
Internet Browser Java Applets 1454
Working ...................................................................................................................................
with Java Web Servers 1456
...................................................................................................................................
JBOSS Server 1458
...................................................................................................................................
Apache Tomcat Server 1459
...................................................................................................................................
Apache Tomcat Windows Service 1460
.NET ......................................................................................................................................... 1460
General ...................................................................................................................................
Setup for .NET 1461
...................................................................................................................................
Debug Assemblies 1461
Debug - ...................................................................................................................................
CLR Versions 1462
Debug COM ...................................................................................................................................
Interop 1463
Debug ASP ...................................................................................................................................
.NET 1463
.........................................................................................................................................................
The Debug Window 1467
.........................................................................................................................................................
Breakpoint and Marker Management 1468
How Markers .........................................................................................................................................
are Stored 1469
Setting Code .........................................................................................................................................
Breakpoints 1469
Setting Data .........................................................................................................................................
Breakpoints 1470
.........................................................................................................................................................
Debugging Actions 1470
Displaying .........................................................................................................................................
Windows 1471
Start & Stop .........................................................................................................................................
Debugger 1471
Debug Another .........................................................................................................................................
Process 1472
Step Over .........................................................................................................................................
Lines of Code 1472
Step Into.........................................................................................................................................
Function Calls 1473
Step Out.........................................................................................................................................
of Functions 1473
View the .........................................................................................................................................
Call Stack 1473
View the .........................................................................................................................................
Local Variables 1474
View Content .........................................................................................................................................
Of Long Strings 1474
View Variables.........................................................................................................................................
in Other Scopes 1475
Inspect Process
.........................................................................................................................................
Memory 1476
Break When .........................................................................................................................................
a Variable Changes Value 1477
Show Loaded .........................................................................................................................................
Modules 1478
Show Output .........................................................................................................................................
from Debugger 1478
Debug Tooltips.........................................................................................................................................
in Code Editors 1479
.........................................................................................................................................................
Recording Actions 1480
Step Through .........................................................................................................................................
Function Calls 1480
Create Sequence
.........................................................................................................................................
Diagram of Call Stack 1480
Saving the .........................................................................................................................................
Call Stack 1482
Run .......................................................................................................................................................... 1482
Add.........................................................................................................................................................
Run Command 1482
Testing.......................................................................................................................................................... 1483
Add.........................................................................................................................................................
Testing Command 1483
Deploying
.......................................................................................................................................................... 1484
Add.........................................................................................................................................................
Deploy Command 1484
Searching
..........................................................................................................................................................
Files 1485
.........................................................................................................................................................
Search in Files 1485
Visual ...................................................................................................................................
Execution Analysis 1488
Introducing
..........................................................................................................................................................
the Visual Execution Analyzer 1488
Structure
..........................................................................................................................................................
of the Visual Execution Analyzer 1489
Execution
..........................................................................................................................................................
Analysis 1490
.........................................................................................................................................................
Recording Sequence Diagrams 1490
How it Works ......................................................................................................................................... 1491
Setup for.........................................................................................................................................
Recording 1492
Pre-Requisites................................................................................................................................... 1492
Configure ...................................................................................................................................
Recording Detail 1492
Enable Filter ................................................................................................................................... 1493
...................................................................................................................................
Record Arguments To Function Calls 1494
Record Calls ...................................................................................................................................
To External Modules 1494
...................................................................................................................................
Record Calls to Dynamic Modules 1495
Limit Auto ...................................................................................................................................
Recording 1496
...................................................................................................................................
Enable Diagnostic Messages 1496
Advanced ...................................................................................................................................
Techniques 1497
Recording ...................................................................................................................................
Activity for a Class 1497
Recording ...................................................................................................................................
Activity for a Single Method 1498
Place Recording
.........................................................................................................................................
Markers 1499
...................................................................................................................................
Marker Types 1499
...................................................................................................................................
Setting Recording Markers 1502
...................................................................................................................................
The Breakpoints and Markers Window 1503
Activate ...................................................................................................................................
and Disable Markers 1503
Working ...................................................................................................................................
with Marker Sets 1503
Differences...................................................................................................................................
to Breakpoints 1503
Control the
.........................................................................................................................................
Recording Session 1504
...................................................................................................................................
Auto-Recording 1504
...................................................................................................................................
Manual Recording 1504
...................................................................................................................................
Pause Recording 1505
Resume...................................................................................................................................
Recording 1505
...................................................................................................................................
Stop Capture 1505
Generating
.........................................................................................................................................
Sequence Diagrams 1505
...................................................................................................................................
The Recording History 1506
Generate...................................................................................................................................
a Diagram 1507
Diagram...................................................................................................................................
Features 1507
...................................................................................................................................
Saving Recording 1507
Add State.........................................................................................................................................
Transitions 1507
Setup for...................................................................................................................................
Capturing State Changes 1508
The State ...................................................................................................................................
Machine 1509
Recording ...................................................................................................................................
and Mapping State Changes 1511
.........................................................................................................................................................
Unit Testing 1512
Set Up Unit .........................................................................................................................................
Testing 1512
Run Unit.........................................................................................................................................
Tests 1513
Record Test .........................................................................................................................................
Results 1514
.........................................................................................................................................................
Profiling Native Applications 1514
System Requirements
......................................................................................................................................... 1516
Getting Started
......................................................................................................................................... 1516
Start & Stop .........................................................................................................................................
the Profiler 1517
Profiler Operation
......................................................................................................................................... 1517
Setting Options
......................................................................................................................................... 1518
Save and.........................................................................................................................................
Load Reports 1518
Save Report .........................................................................................................................................
in Team Review 1519
.........................................................................................................................................................
Object Workbench 1519
How it Works ......................................................................................................................................... 1520
Workbench .........................................................................................................................................
Variables 1521
Create Workbench
.........................................................................................................................................
Variables 1521
Invoke Methods......................................................................................................................................... 1522
Unit Testing
.......................................................................................................................................................... 1539
Integration
..........................................................................................................................................................
Testing 1540
System..........................................................................................................................................................
Testing 1541
Acceptance
..........................................................................................................................................................
Testing 1542
Scenario
..........................................................................................................................................................
Testing 1543
Move or..........................................................................................................................................................
Copy Tests Between Categories 1544
Import ..........................................................................................................................................................
Scenario as Test 1544
Import ..........................................................................................................................................................
Test From Other Elements 1546
Import ..........................................................................................................................................................
Responsibility or Constraint as Test 1547
Create ..........................................................................................................................................................
Maintenance Item From Test 1548
Testing..........................................................................................................................................................
Details Report 1549
Show Test
..........................................................................................................................................................
Script Compartments 1549
Test Documentation
.......................................................................................................................................................... 1550
Spell Checking
................................................................................................................................... 1552
Using the
..........................................................................................................................................................
Spell Checker 1552
Correcting
..........................................................................................................................................................
Words 1553
Select ..........................................................................................................................................................
a Different Language 1554
Scripting
................................................................................................................................... 1660
Scripts..........................................................................................................................................................
Tab 1661
.........................................................................................................................................................
Script Group Properties 1663
Console..........................................................................................................................................................
Tab 1663
Enterprise
...................................................................................................................................
Architect Object Model 1666
Using the
..........................................................................................................................................................
Automation Interface 1666
.........................................................................................................................................................
Connect to the Interface 1666
Set References.........................................................................................................................................
In Visual Basic 1668
.........................................................................................................................................................
Examples and Tips 1669
Call from.........................................................................................................................................
Enterprise Architect 1670
Available.........................................................................................................................................
Resources 1671
Reference
.......................................................................................................................................................... 1671
.........................................................................................................................................................
Interface Overview 1672
App......................................................................................................................................................... 1674
.........................................................................................................................................................
Enumerations 1675
ConstLayoutStyles
.........................................................................................................................................
Enum 1675
CreateBaselineFlag
.........................................................................................................................................
Enum 1676
CreateModelType
.........................................................................................................................................
Enum 1676
EAEditionTypes.........................................................................................................................................
Enum 1676
EnumRelationSetType
.........................................................................................................................................
Enum 1676
ExportPackageXMIFlag
.........................................................................................................................................
Enum 1677
MDGMenus .........................................................................................................................................
Enum 1677
ObjectType .........................................................................................................................................
Enum 1677
PropType.........................................................................................................................................
Enum 1678
ReloadType .........................................................................................................................................
Enum 1678
ScenarioDiagramType
.........................................................................................................................................
Enum 1678
ScenarioStepType
.........................................................................................................................................
Enum 1679
ScenarioTestType
.........................................................................................................................................
Enum 1679
XMIType.........................................................................................................................................
Enum 1679
.........................................................................................................................................................
Repository 1679
Repository ......................................................................................................................................... 1680
Author ......................................................................................................................................... 1693
Client ......................................................................................................................................... 1694
Collection......................................................................................................................................... 1695
Datatype......................................................................................................................................... 1696
EventProperties
......................................................................................................................................... 1697
EventProperty ......................................................................................................................................... 1697
ModelWatcher ......................................................................................................................................... 1698
Package ......................................................................................................................................... 1698
ProjectIssues ......................................................................................................................................... 1703
ProjectResource
......................................................................................................................................... 1704
PropertyType ......................................................................................................................................... 1704
Reference ......................................................................................................................................... 1705
Stereotype ......................................................................................................................................... 1706
Task ......................................................................................................................................... 1707
Term ......................................................................................................................................... 1708
.........................................................................................................................................................
Element 1708
Constraint
......................................................................................................................................... 1710
Effort ......................................................................................................................................... 1710
Element ......................................................................................................................................... 1711
File ......................................................................................................................................... 1717
Issue (Maintenance)
......................................................................................................................................... 1718
Metric ......................................................................................................................................... 1719
Requirement
......................................................................................................................................... 1719
Resource......................................................................................................................................... 1720
Risk ......................................................................................................................................... 1721
Scenario......................................................................................................................................... 1722
ScenarioExtension
......................................................................................................................................... 1723
Enterprise Architect User Guide
Contents XXX
.........................................................................................................................................................
EA_MenuClick 1785
.........................................................................................................................................................
EA_OnOutputItemClicked 1785
.........................................................................................................................................................
EA_OnOutputItemDoubleClicked 1786
.........................................................................................................................................................
EA_ShowHelp 1787
Broadcast
..........................................................................................................................................................
Events 1787
.........................................................................................................................................................
EA_FileOpen 1788
.........................................................................................................................................................
EA_FileClose 1788
.........................................................................................................................................................
EA_FileNew 1789
.........................................................................................................................................................
EA_OnPostCloseDiagram 1789
.........................................................................................................................................................
EA_OnPostOpenDiagram 1789
.........................................................................................................................................................
Pre-Deletion Events 1790
EA_OnPreDeleteElement
......................................................................................................................................... 1790
EA_OnPreDeleteAttribute
......................................................................................................................................... 1791
EA_OnPreDeleteMethod
......................................................................................................................................... 1791
EA_OnPreDeleteConnector
......................................................................................................................................... 1792
EA_OnPreDeleteDiagram
......................................................................................................................................... 1792
EA_OnPreDeletePackage
......................................................................................................................................... 1793
.........................................................................................................................................................
Pre-New Events 1793
EA_OnPreNewElement
......................................................................................................................................... 1793
EA_OnPreNewConnector
......................................................................................................................................... 1794
EA_OnPreNewDiagram
......................................................................................................................................... 1795
EA_OnPreNewDiagramObject
......................................................................................................................................... 1795
EA_OnPreNewAttribute
......................................................................................................................................... 1796
EA_OnPreNewMethod
......................................................................................................................................... 1797
EA_OnPreNewPackage
......................................................................................................................................... 1797
.........................................................................................................................................................
EA_OnPreExitInstance 1798
.........................................................................................................................................................
Post-New Events 1798
EA_OnPostNewElement
......................................................................................................................................... 1798
EA_OnPostNewConnector
......................................................................................................................................... 1799
EA_OnPostNewDiagram
......................................................................................................................................... 1800
EA_OnPostNewDiagramObject
......................................................................................................................................... 1800
EA_OnPostNewAttribute
......................................................................................................................................... 1801
EA_OnPostNewMethod
......................................................................................................................................... 1801
EA_OnPostNewPackage
......................................................................................................................................... 1802
.........................................................................................................................................................
EA_OnPostInitialized 1802
.........................................................................................................................................................
EA_OnPostTransform 1803
.........................................................................................................................................................
Technology Events 1803
EA_OnInitializeTechnologies
......................................................................................................................................... 1803
EA_OnPreActivateTechnology
......................................................................................................................................... 1804
EA_OnPostActivateTechnology
......................................................................................................................................... 1805
EA_OnPreDeleteTechnology
......................................................................................................................................... 1805
EA_OnDeleteTechnology
......................................................................................................................................... 1806
EA_OnImportTechnology
......................................................................................................................................... 1806
.........................................................................................................................................................
Context Item Events 1807
EA_OnContextItemChanged
......................................................................................................................................... 1807
EA_OnContextItemDoubleClicked
......................................................................................................................................... 1808
EA_OnNotifyContextItemModified
......................................................................................................................................... 1809
.........................................................................................................................................................
Compartment Events 1809
EA_QueryAvailableCompartments
......................................................................................................................................... 1809
EA_GetCompartmentData
......................................................................................................................................... 1810
.........................................................................................................................................................
Model Validation Broadcasts 1811
EA_OnInitializeUserRules
......................................................................................................................................... 1812
EA_OnStartValidation
......................................................................................................................................... 1812
EA_OnEndValidation
......................................................................................................................................... 1813
EA_OnRunElementRule
......................................................................................................................................... 1813
EA_OnRunPackageRule
......................................................................................................................................... 1813
EA_OnRunDiagramRule
......................................................................................................................................... 1814
EA_OnRunConnectorRule
......................................................................................................................................... 1814
EA_OnRunAttributeRule
......................................................................................................................................... 1815
EA_OnRunMethodRule
......................................................................................................................................... 1815
EA_OnRunParameterRule
......................................................................................................................................... 1816
Model Validation
.........................................................................................................................................
Example 1816
.........................................................................................................................................................
EA_OnRetrieveModelTemplate 1820
Custom
..........................................................................................................................................................
Views 1820
.........................................................................................................................................................
Create a Custom View 1821
MDG Add-Ins
.......................................................................................................................................................... 1821
.........................................................................................................................................................
MDG Events 1822
MDGBuild .........................................................................................................................................
Project 1822
MDGConnect ......................................................................................................................................... 1822
MDGDisconnect ......................................................................................................................................... 1823
MDGGetConnectedPackages
......................................................................................................................................... 1824
MDGGetProperty......................................................................................................................................... 1824
MDGMerge ......................................................................................................................................... 1825
MDGNewClass ......................................................................................................................................... 1826
MDGPostGenerate
......................................................................................................................................... 1827
MDGPostMerge ......................................................................................................................................... 1827
MDGPreGenerate......................................................................................................................................... 1828
MDGPreMerge ......................................................................................................................................... 1828
MDGPreReverse ......................................................................................................................................... 1829
MDGRunExe ......................................................................................................................................... 1830
MDGView ......................................................................................................................................... 1830
Add License
...................................................................................................................................
Key 1870
Keystore
...................................................................................................................................
Troubleshooting 1872
Upgrade
...................................................................................................................................
an Existing License 1873
Register
...................................................................................................................................
Add-In 1876
Index 1878
Foreword
I
Introduction | 3
1 Introduction
Welcome to Sparx Systems Enterprise Architect, a UML 2.3 based modeling tool for designing and
constructing software systems, for business process modeling, and for generalized modeling purposes such
as visualizing existing systems and processes.
The Enterprise Architect User Guide provides tutorials, guidance and reference material to help you use
Enterprise Architect in:
· Model Development 370
· Model Management 111
· Project Management 312
· Model Auditing 270
· Model Baselining and Differencing 279
· Model User Security 188
· Model Version Control 228
· Using and Creating Modeling Languages 671
· Code Engineering 1281
· Visualization and Analysis of Code Execution 1488
· RTF and HTML Document Creation 1568 (Reports)
See the Overview 4 for further details of what Enterprise Architect can do and what you can use it for.
Enterprise Architect makes extensive use of UML, so we describe the Enterprise Architect representations 370
of UML diagrams, elements and connectors. Enterprise Architect also includes a Technology Developer's
interface (see Automation and Scripts 1659 ) that enables you to extend and customize the tool.
Your Feedback
Sparx Systems likes to stay in touch with what Enterprise Architect users require in order to accomplish their
tasks efficiently and effectively. We value any suggestions, feedback and comments you might have regarding
this product, documentation or install process.
You can access our online feedback pages at:
· www.sparxsystems.com/bug_report.htm and
· www.sparxsystems.com/feature_request.htm.
Alternatively, you can contact Sparx Systems by email at: [email protected].
1.1 Overview
Modeling
Enterprise Architect is a comprehensive model analysis and design tool. To create models with Enterprise
Architect, you therefore should become familiar with:
· how Enterprise Architect implements the UML standards and
· how you apply UML in Enterprise Architect to develop your models.
For more information, see Modeling Fundamentals 370 .
Managing Models
To manage the models in your projects, you both protect and manage the model data itself, and communicate
information on the data in the form of RTF and HTML documentation and reports.
For more information, see Projects and Teams 111 .
Code Engineering
In Enterprise Architect, UML modeling both depends on and supports code engineering - you generate and
update code from a model, and you create and update models from code. In this broad sense, Enterprise
Managing Projects
Enterprise Architect provides strong support for Project Management, particularly in the following areas:
· Project estimation - working out how much time and effort is required to build and deploy a solution, using
the Use Case metrics facility and carefully-calibrated metrics
· Defining, assigning and managing resources
· Monitoring and managing problems, changes, issues and tasks that affect both individual elements and
the project as a whole
· Managing the development, execution and results of testing, from Integration through to User Acceptance,
and
· Maintaining a project glossary of terms, procedures and policies applied to the project.
For more information, see Projects and Teams 111 .
Project management discussions and decisions can be communicated to the project through the Team
Review Tools 208 .
The scope of your project management might include upgrades to Enterprise Architect and installation of
related technologies. In this case, also see License Management 1867 .
Share Models
Enterprise Architect enables you to share complete models or specific aspects of a model between members
of a team, including (through the 'Lite', read-only 15 edition) stakeholders who can study a model but not
change or manage it.
You can make your project .EAP file available on a shared network drive 183 , or replicate 184 the .EAP file for
complex distributed development. Alternatively, you can develop the project in one of several shared DBMS
repositories 122 , such as Access 2007, SQL Server; My SQL; PostgreSQL; Oracle 9i, 10g or 11g; and Sybase
ASA. You can import and export data as XMI files 288 to distribute and update frameworks and other
package-based model structures. You control changes through the version control 228 repository. Enterprise
Architect provides a data transfer wizard 307 that enables you to upsize or downsize the complete model for
maximum flexibility, and it enables you to export and import reference data 223 so that you do not have to
recreate it for related projects.
Generate Documentation
Enterprise Architect provides powerful document generation and reporting tools with a full WYSIWYG
template editor for RTF 1569 or HTML 1647 output. You can generate complex and detailed reports from
Enterprise Architect with the information you require in the format your company or client demands.
Model Databases
Enterprise Architect enables you to reverse engineer from many popular DBMS systems, including Oracle 9i,
10g or 11g; SQL Server; My SQL; Access 2007 and PostgreSQL.
You can model database 1011 tables, columns, keys, foreign keys and complex relationships using UML and an
inbuilt data modeling profile, and forward generate DDL scripts to create target database structures.
as XMI import/export, and attached information. Most properties are fully writable from the automation client.
The Automation Interface provides great support for plug-ins, with the ability to embed automation client
windows in the main diagram view. The Interface is accessible from any automation-aware client language,
such as VB, C#, C++ and Delphi.
· Transform behavioral models into executable source code for software and hardware description
languages (HDLs) such as Verilog, VHDL, and SystemC
· Simulate SysML parametric models
· Script and automate common tasks using a detailed Automation Interface and Model Scripts
· A range of internal and external commercial MDG Add-Ins 1073 to integrate the facilities of Enterprise
Architect with IDEs and other technologies, and templates to write your own
· Read-only Viewer enables stakeholders to view but not change milestone deliverables
· Price: Enterprise Architect is priced to outfit the entire team, making collaboration and team development a
real possibility
· Speed: Enterprise Architect is quick to load and a spectacularly fast performer, even with large models
· Scalability: Enterprise Architect supports single users and the development of small models, or many
concurrent users developing extremely large models, with equal ease
· Usability: many of our users agree, Enterprise Architect gets you started and productive quickly, with a rich
user interface and the ability to create templates, model views and 'favorites' collections of
commonly-used elements and diagrams.
For a complete list of the new features of the latest version of Enterprise Architect, click on the Help | Read
Me menu option.
Enterprise Architect is available in six editions: Ultimate, Business and Software Engineering, Systems
Engineering, Corporate, Professional, and Desktop, each of which offers a different range of features. For
a comparison of the Enterprise Architect editions, see the Editions Available 12 topic.
Enterprise Architect is available in a number of different editions, each tailored to support a particular business
case.
· Before purchase, you can test the product in a number of configurations in the Trial version 10 .
· Whilst using the Trial version, consider the specific features of the six work environment editions available
12 - Desktop, Professional, Corporate, Business and Software Engineering, Systems Engineering, and
Ultimate.
· For project reviews and other read-only tasks, you can use the free, read-only or 'Lite' edition 15 .
This enables you to select the edition of Enterprise Architect to evaluate, by clicking on the appropriate radio
button. The prompt also directs you to useful information such as a comparison of the different editions, or a
walkthrough of the Enterprise Architect facilities. When using Enterprise Architect, you can select from a range
of workspace layouts 86 ; the Select Trial Version prompt enables you to select the initial layout to use.
Note:
The trial period must expire before you can enter the extension key.
To extend the trial period, after receipt of your extension key, follow the steps below:
1. Open the Enterprise Architect trial version. The Evaluation Version of Enterprise Architect dialog
displays.
Note:
Once the trial period has expired, you cannot proceed beyond this dialog without extending the trial
period.
2. Press [Ctrl] whilst you click on the Continue Trial button. The Upgrade Key dialog displays.
3. In the Upgrade Key field, type or copy-and-paste the extension key you received from Sparx Systems
Sales.
4. Click on the OK button. Enterprise Architect confirms that your trial period has been extended.
Your trial period is extended by the period of days stated in the email from Sparx Systems Sales. You can
now restart and use the Trial version of Enterprise Architect.
Tip:
To help you understand the differences between these editions and the advantages and limitations of each,
the Trial version 10 of Enterprise Architect can be opened in any required configuration. When Enterprise
Architect starts, select the mode to trial; you can close down Enterprise Architect and restart it in another
mode for comparison.
The fully functional 30 day trial version of Enterprise Architect is available free of charge at www.
sparxsystems.com/bin/easetup.exe.
Ultimate Edition
The Ultimate edition is designed for power users and those working across multiple domains, providing deep
support for Business, for Software Engineering and for Systems Development seamlessly integrated into a
single development environment. It enables you to drill down to the lowest levels of systems design and
construction, with SysML and executable code generation for standard and hardware description languages.
Business users can leverage BPEL, the Rules Composer and executable UML, in addition to all the advanced
features of the other editions of Enterprise Architect. Software developers can integrate their Eclipse and
Visual Studio projects with their UML models and leverage the advanced executable code generators to target
different domains.
This edition enables end to end traceability throughout a global vision of your enterprise - unifying strategy,
business process, interfaces, software, rules, data and fine grained systems. Powerful tools, domain-specific
technologies, frameworks, integration platforms and a consistent, scalable, and robust interface work in unison
to help you deliver on the promise of Model Driven Development.
As explained above, the Ultimate edition incorporates a number of MDG Technologies 1073 and Add-Ins. The
Ultimate edition and MDG Technologies are all available in either Fixed License or Floating License form. The
Floating License arrangement is particularly useful for companies that manage a central store of license keys,
which can be used by different employees over time, temporarily or permanently.
The Ultimate edition provides:
· Executable Code Generation - support for generating functional source code for State Machines,
Interactions and Activities in C, C++, C#, Java and VBNet
· Full round trip support for Hardware Description Languages (Verilog, VHDL and SystemC) including
support for generating State Machine code
· SysML Simulation Support - including support for simulating SysML 1.1 constraint models with results
graphing capabilities
· BPEL Generation – transform BPMN 1.1 Business process models down to BPEL 1.1 code
· Business Rules – trace from abstract business rules down to automatically generated behavioral code.
As explained above, the Business and Software Engineering edition incorporates a number of MDG
Technologies 1073 and Add-Ins. The Business and Software Engineering edition and MDG Technologies are all
available in either Fixed License or Floating License form. The Floating License arrangement is particularly
useful for companies that manage a central store of license keys, which can be used by different employees
over time, temporarily or permanently.
The Business and Software Engineering edition provides:
· Generation of Behavioral Code from State, Sequence and Activity models, supporting standard
programming languages such as Java and .NET
· Advanced math functions within the scripting engine
· BPEL Generation from BPMN 1.1 models - including validation and WSDL support
· A Business Rules Composer that enables you to build Business Domain models and generate code to
implement complex business rules in standard programming languages.
Corporate Edition
Aimed at larger development teams, the Corporate edition enables you to connect to the following DBMS back
ends as the shared repository: MySQL, SQL Server, PostgreSQL, Sybase Adaptive Server Anywhere, Access
2007 and Oracle 9i, 10g or 11g. This provides additional scalability and improved concurrency over the shared
.EAP file approach to model sharing. User security, user logins, user groups and user level locking of
elements, user/group based security (with locking at diagram and element levels) are also supported. Security
comes in two modes: in the first mode, all elements are considered 'writeable' until explicitly locked by a user
or group; in the second mode, all elements are considered locked until checked out with a user lock.
The Corporate edition forms the base for the three extended editions described above. Like those editions, it is
available in either Fixed License or Floating License form. The Floating License arrangement is particularly
useful for companies that manage a central store of license keys, which can be used by different employees
over time, temporarily or permanently.
Professional Edition
Aimed at work groups and developers, the Professional edition supports shared projects through replication
and shared network files. This edition has an ActiveX interface for interrogating Enterprise Architect projects
and extracting information in XMI format. The Professional edition fully supports code import/export and
synchronization of model elements with source code. It enables reverse engineering of SQL Server; MS
Access 97, 2000 and 2003; and Oracle 9i, 10g or 11g databases. Support for MDG Technologies and MDG
Link (sold separately) is included with the Professional version of Enterprise Architect. The shared repository
available in the Professional edition is restricted to the .EAP file format (JET database).
Desktop Edition
The Desktop edition is targeted at single analysts and developers producing UML analysis and design
models. It provides facilities for UML modeling, XMI import/export, document generation, version control
integration and profile/metamodel extensibility.
Please take the time to read the following legal statements concerning Sparx Systems Enterprise Architect:
· Software Copyright Notice 16
· Enterprise Architect End User Licensing Agreement 16
· Acknowledgement of Trademarks 19
Spark Systems would also like to gratefully acknowledge contributions 20 to the development of Enterprise
Architect.
Copyright © 1998 - 2010 Sparx Systems Pty. Ltd. All rights reserved.
The software contains proprietary information of Sparx Systems Pty Ltd. It is provided under a license
agreement containing restrictions on use and disclosure and is also protected by copyright law. Reverse
engineering of the software is prohibited. Please read the license agreement 16 for full details.
Due to continued product development, this information can change without notice. The information and
intellectual property contained herein is confidential between Sparx Systems and the client and remains the
exclusive property of Sparx Systems. If you find any problems in the documentation, please report them to us
in writing. Sparx Systems does not warrant that this document is error-free. No part of this publication may be
reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical,
photocopying, recording or otherwise without the prior written permission of Sparx Systems. Licensed users
are granted the right to print a single hardcopy of the user manual per licensed copy of the software, but may
not sell, distribute or otherwise dispose of the hardcopy without written consent of Sparx Systems.
Sparx Systems Pty. Ltd.
7 Curtis St,
Creswick, Victoria 3363,
AUSTRALIA
Phone: +61 (3) 5345 1140
Fax: +61 (3) 5345 1104
Support Email: [email protected]
Sales Email: [email protected]
Website: www.sparxsystems.com
Desktop, Professional, Corporate, Business and Software Engineering, Systems Engineering &
Ultimate Editions
Copyright (C) 1998-2010 Sparx Systems Pty Ltd. All Rights Reserved
IMPORTANT- READ CAREFULLY: This End User License Agreement ("EULA") is a legal agreement
between YOU as Licensee and SPARX SYSTEMS ("SPARX") for the SOFTWARE PRODUCT identified
above. By installing, copying, or otherwise using the SOFTWARE PRODUCT, YOU agree to be bound by the
terms of this EULA. If YOU do not agree to the terms of this EULA, promptly return the unused SOFTWARE
PRODUCT to the place of purchase for a full refund.
The copyright in the SOFTWARE PRODUCT and its documentation is owned by Sparx Systems Pty Ltd A.C.N
085 034 546. Subject to the terms of this EULA, YOU are granted a non-exclusive right for the duration of the
EULA to use the SOFTWARE PRODUCT. YOU do not acquire ownership of copyright or other intellectual
property rights in any part of the SOFTWARE PRODUCT by virtue of this EULA.
Your use of this software indicates your acceptance of this EULA and warranty.
DEFINITIONS
In this End User License Agreement, unless the contrary intention appears:
· "ACADEMIC EDITION" means an edition of the SOFTWARE PRODUCT purchased for educational
purposes at an academic discount price.
· "EULA" means this End User License Agreement.
· "SPARX" means Sparx Systems Pty Ltd A.C.N 085 034 546.
· "Licensee" means YOU, or the organization (if any) on whose behalf YOU are taking the EULA.
· "Registered Edition of Enterprise Architect" means the edition of the SOFTWARE PRODUCT which is
available for purchase from the web site: http://www.sparxsystems.com/ea_purchase.htm.
· "SOFTWARE PRODUCT" or "SOFTWARE" means Enterprise Architect, UML Case Tool, Desk Top,
Professional, Corporate, Business and Software Engineering, Systems Engineering and Ultimate editions,
which includes computer software and associated media and printed materials, and may include online or
electronic documentation.
· "Support Services" means email based support provided by SPARX, including advice on usage of
Enterprise Architect, investigation of bugs, fixes, repairs of models if and when appropriate, and general
product support.
· "SPARX support engineers" means employees of SPARX who provide on-line support services.
· "Trial edition of Enterprise Architect" means the edition of the SOFTWARE PRODUCT which is available
free of charge for evaluation purposes for a period of thirty (30) days.
· "EA LITE" means the LITE version of Enterprise Architect that is distributed free of charge as a read-only
viewer of .EAP files.
GRANT OF LICENSE
In accordance with the terms of this EULA YOU are granted the following rights:
a) To install and use one copy of the SOFTWARE PRODUCT or, in its place, any prior version for the same
operating system, on a single computer. As the primary user of the computer on which the SOFTWARE
PRODUCT is installed, YOU may make a second copy for your exclusive use on either a home or portable
computer.
b) To store or install a copy of the SOFTWARE PRODUCT on a storage device, such as a network server,
used only to install or run the SOFTWARE PRODUCT over an internal network. If YOU want to increase
the number of users entitled to concurrently access the SOFTWARE PRODUCT, YOU must notify SPARX
and agree to pay an additional fee.
c) To make copies of the SOFTWARE PRODUCT for backup and archival purposes only.
EVALUATION LICENSE
The Trial version of Enterprise Architect is not free software. Subject to the terms of this agreement, YOU are
hereby licensed to use this software for evaluation purposes without charge for a period of thirty (30) days.
Upon expiration of the thirty (30) days, the SOFTWARE PRODUCT must be removed from the computer.
Unregistered use of Enterprise Architect after the 30-day evaluation period is in violation of Australian, U.S.
and international copyright laws.
SPARX may extend the evaluation period on request and at their discretion.
If YOU choose to use this software after the 30 day evaluation period a license must be purchased (as
described at http://www.sparxsystems.com/ea_purchase.htm). Upon payment of the license fee, YOU will be
sent details on where to download the registered edition of Enterprise Architect and will be provided with a
suitable software 'key' by email.
EA LITE
Subject to the terms of this Agreement EA LITE 15 may be installed on any machine indefinitely and free of
charge. There are no fees or Sparx support services in relation to EA LITE.
ASSIGNMENT
YOU may only assign all your rights and obligations under this EULA to another party if YOU supply to the
transferee a copy of this EULA and all other documentation including proof of ownership. Your license is then
terminated.
TERMINATION
Without prejudice to any other rights, SPARX may terminate this EULA if YOU fail to comply with the terms
and conditions. Upon termination YOU or YOUR representative shall destroy all copies of the SOFTWARE
PRODUCT and all of its component parts or otherwise return or dispose of such material in the manner
directed by SPARX.
EXCLUSIONS
To the maximum extent permitted by law, SPARX excludes, for itself and for any supplier of software
incorporated in the SOFTWARE PRODUCT, all liability for all claims, expenses, losses, damages and costs
made against or incurred or suffered by YOU directly or indirectly (including without limitation lost costs, profits
and data) arising out of:
· YOUR use or misuse of the SOFTWARE PRODUCT
· YOUR inability to use or obtain access to the SOFTWARE PRODUCT
· Negligence of SPARX or its employees, contractors or agents, or of any supplier of software incorporated
in the SOFTWARE PRODUCT, in connection with the performance of SPARX' obligations under this EULA,
or
· Termination of this EULA by either party for any reason.
LIMITATION
The SOFTWARE PRODUCT and any documentation are provided "AS IS" and all warranties whether express,
implied, statutory or otherwise, relating in any way to the subject matter of this EULA or to this EULA generally,
including without limitation, warranties as to: quality, fitness; merchantability; correctness; accuracy; reliability;
correspondence with any description or sample, meeting your or any other requirements; uninterrupted use;
compliance with any relevant legislation and being error or virus free are excluded. Where any legislation
implies in this EULA any term, and that legislation avoids or prohibits provisions in a contract excluding or
modifying such a term, such term shall be deemed to be included in this EULA. However, the liability of
SPARX for any breach of such term shall if permitted by legislation be limited, at SPARX's option to any one or
more of the following upon return of the SOFTWARE PRODUCT and a copy of the receipt:
· If the breach relates to the SOFTWARE PRODUCT:
· the replacement of the SOFTWARE PRODUCT or the supply of an equivalent SOFTWARE PRODUCT
· the repair of such SOFTWARE PRODUCT
· the payment of the cost of replacing the SOFTWARE PRODUCT or of acquiring an equivalent
SOFTWARE PRODUCT, or
· the payment of the cost of having the SOFTWARE PRODUCT repaired.
· If the breach relates to services in relation to the SOFTWARE PRODUCT:
· the supplying of the services again, or
· the payment of the cost of having the services supplied again.
TRADEMARKS
All names of products and companies used in this EULA, the SOFTWARE PRODUCT, or the enclosed
documentation may be trademarks of their corresponding owners. Their use in this EULA is intended to be in
compliance with the respective guidelines and licenses.
Windowsâ, Windows 98, Windows NT, Windows ME, Windows XP, Windows Vista, Windows 2000 and
Windows 2003 Server are trademarks of Microsoftâ.
GOVERNING LAW
This agreement shall be construed in accordance with the laws of the Commonwealth of AUSTRALIA, in the
state of Victoria.
1.3.3 Trademarks
Trademarks of Microsoft
· Microsoft Word
· Microsoft Office
· Windows®
· ActiveX
· CWM™
· Model Driven Architecture™
· MDA™
· OMG Model Driven Architecture™
· OMG MDA™
1.3.4 Acknowledgements
Some parts of this application include code originally written by various authors and modified for use in
Enterprise Architect.
Marquet Mike
Print listview contents
[email protected]
Davide Pizzolato
CXImage Library
© 7-Aug-2001
[email protected]
Neil Hodgson
Scintilla editor
© 1998-2003
[email protected]
Also, many thanks to all those who have made suggestions, reported bugs, offered feedback and helped with
the beta-testing of Enterprise Architect. Your help has been invaluable.
1.4 Installation
Enterprise Architect is distributed as a single executable setup file (.exe). After you execute this file, Enterprise
Architect is immediately available to create projects as .EAP files.
If you plan to use the Corporate, Business and Software Engineering, Systems Engineering or Ultimate edition
with SQL Server, MySQL, PostgreSQL, Access 2007, Sybase Adaptive Server Anywhere or Oracle 9i, 10g or
11g as a model repository (see below), you require additional files and supplementary installation processes.
Please note that installation and maintenance of these database management systems is not covered under
the support agreement.
The latest evaluation and registered versions of Enterprise Architect are always available from the Sparx
Systems website. The registered version is available through the registered user area of the web site, which
requires a username and password to access. These are provided upon purchase of a license.
System Requirements
The system requirements for installing Enterprise Architect are defined on the Enterprise Architect | System
Requirements page of the Sparx Systems website.
Windows Vista
Under Windows Vista (with User Account Control turned on) an application starts with only Standard
permissions, regardless of what level of authority the current user has. As a result, an installer run normally
with an Admin account under Vista only has Standard privileges and either is not able to write to certain critical
areas of the registry/file system, or redirects the write requests to a per-user virtualized registry/file system.
Sparx Systems recommend that if you are installing on Windows Vista, always run the Enterprise Architect
installer with Administrator privileges (right-click on the downloaded installer icon and select the Run as
administrator menu option).
Note:
Enterprise Architect requires Read/Write access to the program files directory where Enterprise Architect has
been installed.
5. Click on the Add Key button. The Add Registration Key dialog displays.
6. Refer to the Add License Key 1870 topic.
7. Click on the OK button. The full version is now activated on your PC, and Enterprise Architect displays
the message: Registration succeeded! Thank you for purchasing Enterprise Architect <type> Edition.
See Also (in Project Development in Enterprise Architect):
· Upgrade an Existing License 1873
Enterprise Architect has three main help and information systems to assist you in using the product:
· Tasks Pane
· Enterprise Architect Help
· The Sparx Systems website.
In addition Sparx Systems recommend that you fully explore the sample project, EAExample, supplied with
Enterprise Architect. This assists you in learning to use Enterprise Architect and offers tips on getting the most
out of Enterprise Architect's features. Click on the EAExample option on the Enterprise Architect Start Page
50 .
If you have purchased Enterprise Architect and are a registered user, you can also contact Sparx Support 24
to answer any queries or problems.
Tasks Pane
The Enterprise Architect Tasks Pane 51 provides context-sensitive guidance, tools, demonstrations and other
online resources to help you understand any area of Enterprise Architect that you are interested in. The Tasks
Pane automatically displays on the right of the screen when you first open Enterprise Architect, showing the
Getting Started topics. You can select other task areas by clicking on the More tasks option in the toolbar.
Community Site
The Sparx Systems website also hosts the Sparx Systems Enterprise Architect Community Site. This is a
central location for the Enterprise Architect community to publish resources and share experiences.
From this site you can download the latest news, tutorials, resources, best practices, tips, techniques and
user-generated content for Enterprise Architect. You can also, as a registered author, contribute content and
share your expertise with the wider community.
1.6.2 Support
Technical support for Enterprise Architect is available to registered users.
Responses to support queries are sent by email. Sparx Systems endeavors to provide a rapid response to all
product-related questions or concerns.
Registered users can lodge a support request, by visiting:
http://www.sparxsystems.com/registered/reg_support.html.
Trial users can contact Sparx Systems with questions regarding their evaluation at:
[email protected].
An online user forum is also available for your questions and perusal, at
http://www.sparxsystems.com/cgi-bin/yabb/YaBB.cgi.
II
26 Getting Started |
2 Getting Started
This guide helps you understand the options available when you start Enterprise Architect 27 , and to quickly
gain an understanding of how to use these options to create models.
After starting Enterprise Architect, use the Quick Start 28 tutorial to immediately create a project.
The tutorial leads on to examining:
· Work areas applicable to certain Project Roles 37 and
· The Enterprise Architect User Interface 48 , or workspace.
At various points throughout the Enterprise Architect Help, there are further Quick Start topics and sections to
help you use the system immediately to experiment with a feature of Enterprise Architect. Use the Help Index
tab and search for Quick Start to locate these topics.
2.1 Basics
When you install Enterprise Architect on your computer, a new program folder called Enterprise Architect is
created in your Start menu (unless you changed the default name during installation).
Note:
By default, when you install Enterprise Architect, an empty 'starter' project called 'EABase.EAP' is installed,
as well as an example project named 'EAExample.EAP'. We recommend that new users select the
'EAExample' file and explore it in some detail while you become familiar with UML and software engineering
using Enterprise Architect.
To begin a guided exploration of Enterprise Architect immediately, go to the A Quick Start Tutorial 28 topic.
Tutorial
Welcome to Enterprise Architect! This quick-start tutorial helps you start UML modeling with Enterprise
Architect.
As you read through the Quick Start sections, have Enterprise Architect open so that you can explore and try
out the functions described. By the end of the Quick Start tutorial you should be able to begin modeling your
own software projects with Enterprise Architect and UML.
The tutorial guides you through creating a simple project. Throughout the descriptions there are hyperlinks to
more detailed information on a range of topics. Follow these links if you would like more information, or ignore
them if you want to just follow the steps.
Your task is to create a new project 113 and then add a View, a package, a diagram, elements and connectors.
Create a Project
When you start Enterprise Architect it opens at the Start Page 50 :
1. Click on the Create a New Project option. The New Project dialog displays.
2. In the File name field, type a meaningful name for the project and click on the Save button to create the
project file. The Select Model(s) 372 dialog displays.
3. You now select one or more model templates 373 (these provide you with the basic structures -
packages and diagrams - for your project, as well as references to useful help files to get you started).
Select the checkbox of each model that interests you.
4. Click on the OK button. Enterprise Architect creates a Model Package for each selected template and
displays it in the Project Browser 1209 , on the right-hand side of the screen.
Note:
You could also quickly create a project by copying an existing base project provided with Enterprise Architect;
see the Copy a Base Project 121 topic.
.
Enterprise Architect displays a prompt for the package name.
Note:
This prompt also contains the Automatically add new diagram option for automatically creating a diagram
for the package, which defaults to selected. This is very a useful feature, but for the purposes of this
introduction deselect the checkbox against the option.
Type in a name and click on the OK button. Enterprise Architect adds the new package subordinate to the
package you selected.
Additional Information
For additional information on packages, and adding packages and Views (top-level packages), see the
Packages 387 , Add a Package 387 and Add Views 383 topics.
Click on your new package and, in the Project Browser toolbar, click on the New Diagram icon .
The New Diagram dialog displays.
Note:
When you create a package, if you leave the Automatically add new diagram option selected, the New
Diagram dialog displays automatically.
Click on a diagram category in the Select From panel, and a diagram type in the Diagram Types panel, then
click on the OK button. Enterprise Architect adds a diagram object to the package, with the same name as the
package. It also opens the Diagram View for your diagram, in the center of the screen.
Additional Information
For additional information on diagrams and adding them to a project, see UML Diagrams 673 and Add New
Diagrams 422 .
Tip:
Enterprise Architect has two very useful features:
· To find out more about the type of element you have dragged on to a diagram, right-click on the element
and select the UML Help menu option. This displays a Help page on the element type.
· If you are creating several elements of one type, after creating the first just press [Shift]+[F3] or [Ctrl]+
click to create the next element of that type.
You can also drag or paste existing elements onto a diagram from the Project Browser. This enables you to
make use of previous work in defining elements.
Additional Information
When you click on an element on a diagram, a number of icons display outside the top right corner. These are
the Quick Linker 474 and Toolbar 521 icons that enable you to quickly add more elements and connectors and
to operate on the elements. You can read about and experiment with these later.
For additional information on elements and adding elements to a project, see UML Elements 741 , Create
Elements 523 and Paste From the Project Browser 430 .
Tip:
Enterprise Architect has three very useful features:
· To find out more about the type of connector you have dragged on to a diagram, right-click on the
connector and select the UML Help menu option. This displays a Help page on the connector type.
· If you are creating several connectors of one type, after creating the first just click on the appropriate
source element and press [F3] to create the next connector of that type.
· As you drag a connector, you can press [Shift] to create a bend in the connector. If necessary, you can put
several bends in the connector line, pressing [Shift] every time you want to change direction. To roll back
the bends, keep holding the left mouse button down and press [Backspace] as many times as is
necessary.
Additional Information
For further information on creating a connector through the Project Browser, or with the Quick Linker, see the
Create Connector in Project Browser 618 topic and the Quick Linker - Create Connectors 476 topic.
When you create elements, Enterprise Architect automatically names and numbers them by type - for
example, Class1, Class2 - so you should at least change the Name field to more easily identify each element.
Enterprise Architect does not automatically name connectors, but for many connector types you should
provide a name that describes the purpose of the connection.
See the Properties Dialog 481 topic and the Connector Properties 626 topic for a full description of the element
and connector Properties dialogs.
Notes:
· You display and work on your model in the Project Browser, and display and work on a diagram in the
Diagram View.
· In the Project Browser, the contents of a package are listed in the order diagrams | child packages |
elements. Elements are further arranged in type order. Within their types, components are initially listed in
alphabetical or numerical order.
· Moving an element or package has no effect on any relationships that the element, package, or elements
within the package have. You have to specifically create, delete or move the relationships themselves.
Note:
Moving a diagram generally does not affect the location of elements in packages. If you move the Class
Diagram out of Use Case Model into Business Process Model, all the elements in the diagram remain in the
Use Case Model package.
However, elements of certain types might be used only within one diagram, have no meaning outside that
diagram, and never be re-used in any other diagram. Such elements include Decision 765 , Initial 778 and Final
Node 772 elements. Therefore, if you move a diagram containing these elements, they are moved to the new
parent package with the diagram.
To remove Class1 from the Use Case Model diagram, click on it on the diagram and delete 35 it. Nothing
happens to the element in the Project Browser. To put Class1 into a diagram in the Business Process Model
package, open the diagram in that package and drag the element from the Business Process Model package
in the Project Browser onto the diagram.
Additional Information
See the Delete Components 35 and Save Changes 36 topics.
For additional information on moving connectors and elements, see the Arrange Connectors 613 topic and the
Order Package Contents 1210 topic.
Notes:
· Remember that the contents of the model are listed in the Project Browser. If you delete something from a
diagram, it is not deleted from the Project Browser. This is because you can use the same component in
several diagrams at once, so you only remove the representation of the component from a diagram.
· To delete a connector from a diagram, click on it and press [Delete]. This time, Enterprise Architect
prompts you to select whether to delete the connector or just hide it. Unlike elements, the same connector
is not reapplied in several places, so if you delete one it is removed completely from the model.
· Connectors can get confusing on a complex diagram, so it is useful to hide some of them to clarify a
specific aspect of a more complex picture. To identify and reveal hidden connectors, see the Links 489
topic.
Additional Information
See the Save Changes 36 topic.
For additional information on deleting elements, connectors and model views in Enterprise Architect, see the
Delete Elements 534 , Delete Connectors 619 and Delete Views 385 topics.
Enterprise Architect performs a number of tasks that are suited to a variety of professions. This topic
describes some common working practices with Enterprise Architect for a range of project roles. There are
tools for the roles of:
· Business Analyst 38
· Software Architect 40
· Software Engineer 41
· Developer 42
· Project Manager 43
· Tester 43
· Implementation Manager 45
· Technology Developer 46
· Database Developer 47
You can review a summary of the typical tasks 37 supported for each role, or click on the appropriate role title
to explore how Enterprise Architect can assist you in carrying out that role within a model driven project.
Note:
The Corporate, Business and Software Engineering, Systems Engineering and Ultimate editions of Enterprise
Architect have a user security feature that can be applied or turned off. If security is turned on, you require
the appropriate access permissions to use many of the Enterprise Architect facilities listed above. For further
information, see the List of Available Permissions 198 topic.
Technology Developer
A Technology Developer 46 might be responsible for
creating or customizing:
· UML Profiles
· UML Patterns
· Code Templates
· Tagged Value Types
· MDG Technologies
· Add-Ins.
Model Requirements
Gathering requirements 917 is typically the first step in developing a solution, be it for developing a software
application or for detailing a business process. It is an important step in the implementation of a project.
Enterprise Architect enables you to define the Requirement elements, connect Requirements to the model
elements for implementation, connect Requirements together into a hierarchy, report on Requirements, and
move Requirements out of model element responsibilities.
See Also
· Analysis Diagrams 733
· Modeling Fundamentals 370
· XMI Import and Export 288
· XML Technologies 1039
See Also
· Modeling Fundamentals 370
2.3.5 Developers
Developers can use Enterprise Architect to perform round trip code engineering 1281 , which includes reverse
engineering of existing code and generation of code 1308 from Class elements 811 .
State Machine 678 , Package 720 and Activity 674 diagrams can be used by the developer to better understand
the interaction between code elements and the arrangement of the code.
Reverse Engineering
Enterprise Architect enables developers to reverse engineer 1328 code from a number of supported languages
and view the existing code as Class 721 diagrams. The developer can use Class diagrams to illustrate the
static design view of the system. Class diagrams consist of Classes and interfaces and the relationships
between them. The Classes defined in UML Class diagrams can have direct counterparts in the
implementation of a programming language.
Forward Engineering
As well as the ability to reverse engineer code, Enterprise Architect offers the developer the option of forward
engineering code (code generation). This enables the developer to make changes to their model with
Enterprise Architect and have these changes implemented in the source code.
See Also
· XML Technologies 1039
· Model Transformations - MDA 1385
Resource Management
Managing the allocation of resources 313 in the design and development of system components is an
important and difficult task. Enterprise Architect enables the Project Manager or Development Manager to
assign resources directly to model elements and track progress over time.
Risk Management
The Project Management window can be used to assign Risk 316 to an element within a project. The Risk
Types 322 enable the Project Manager to name the risk, define the type of risk, and give it a weighting.
Maintenance
Enterprise Architect enables the Project Manager to track and assign maintenance-related items to elements
within Enterprise Architect. This enables rapid capture and record keeping for items such as issues 331 ,
changes, defects 1563 and tasks 329 . They can also create and maintain a project Glossary 323 of processes,
procedures, terms and descriptions.
2.3.7 Testers
Enterprise Architect provides support for design testing by enabling you to create test scripts against elements
in the modeling environment.
You assign test cases to individual model elements, requirements 917 and constraints 488 . You can add
scenarios to model elements, and use element defects 1559 to report problems associated with model
elements.
For more detailed information on testing, see the Introduction to Testing 1536 topic.
Test Cases
With Enterprise Architect, Quality Assurance personnel can set a series of tests for each model element. The
test types include Unit testing, Acceptance testing, System testing and Scenario testing.
Deployment diagrams provide a static view of the run-time configuration of nodes on the network or of
workstations, and the components that run on the nodes or are used in the workstations.
Maintenance
Enterprise Architect enables you to track and assign maintenance 1558 -related items to elements within
Enterprise Architect. This enables you to rapidly capture and keep records of maintenance tasks such as
issues, changes, defects and tasks. By providing a centralized facility for each element involved in the
deployment process Enterprise Architect offers a powerful solution for tracing the maintenance of the items
and processes involved in system deployment.
UML Profiles
By creating UML Profiles 906 the technology developer can create a customized extension for building UML
models that are specific to a particular domain. Profiles are stored as XML files and can be imported into any
model as required.
UML Patterns
Patterns 901 are sets of collaborating Objects and Classes that provide a generic template for repeatable
solutions to modeling problems. As patterns are discovered in any new project, the basic pattern template can
be created. Patterns can be re-used with the appropriate variable names modified for any future project.
Code Templates
Code Templates 1301 are used to customize the output of source code generated by Enterprise Architect. This
enables the generation of code languages not specifically supported by Enterprise Architect and enables you
to define the way Enterprise Architect generates source code to comply with your own company style
guidelines.
MDG Technologies
MDG Technologies 1066 can be used to create a logical collection of resources that can contain UML Profiles,
Patterns, Code Templates, Image files and Tagged Value types that are accessed through a technology file.
Generate Schema
By using Enterprise Architect's DDL generation function the Database Administrator can create a DDL script
for creation of the database table structure from the model. Enterprise Architect currently supports JET-based
databases; DB2; InterBase; Informix; Ingres; MySQL; SQL Server; PostgreSQL; Sybase Adaptive Server
Anywhere and Adaptive Server Enterprise; and Oracle 9i, 10g and 11g.
This section provides a detailed exploration of the Enterprise Architect tools and features for modeling
software systems and business processes, including:
· The User Interface 48
· Starting Enterprise Architect 27
· The Start Page 50
· The Tasks Pane 51
· The Project Browser 1209
· The Main Menu 54
· The Diagram Toolbox 399
· Workspace Toolbars 79
· Diagram Tabs 397
· The Element List 1255
· Model Views 1222
· Model Searches 1231
· The Web Browser 103
· Dockable Windows 75
· Code Editors 1428
· The Quick Linker 474
· Defaults and User Settings 90
· Keyboard Shortcuts 104
· The Team Review Tools 208
· The Spell Checker 1552
2.4.1 Introduction
The Enterprise Architect Application Workspace consists of a number of windows, menus and toolbars as
described below. Together these elements provide a simple and flexible software engineering environment.
In concept the Application Workspace is similar to programs such as Microsoft Outlook and the Microsoft
Visual Studio application suite; if you have used these applications you should find the Enterprise Architect
interface quite familiar.
Workspace Components
This section outlines the components of the Enterprise Architect Application Workspace. To obtain further
information on specific features, follow the hyperlinks in each description.
Context Menus
Throughout Enterprise Architect, if you right-click on work areas, lists and objects, Enterprise Architect
displays a menu of options specific to the work context. For examples, see:
Key Combinations
Many main menu and context menu options have alternative key combinations to perform the same operation.
Instead of displaying a menu and selecting the required option, you can press the key combination. See
Keyboard Shortcuts 104 for a full list of key combinations and their functions, or display the Help Keyboard 108
dialog (select the Help | Keyboard Accelerator Map menu option). You can also customize 98 these function
keys.
Toolbox
The Enterprise Architect Diagram Toolbox 399 is an Outlook-style toolbar from which you can select model
elements and relationships to add to your modeling diagrams. This is an important feature of Enterprise
Architect, as it provides all the components and connectors that you use to create your models in whatever
diagrams are appropriate.
Diagram View
The large central area of the Enterprise Architect display is the Diagram View 396 . This is where you can
arrange new model elements and set their characteristics in a model diagram. Note that when you first open
Enterprise Architect there is no active diagram; you must create and/or open the required diagram.
Project Browser
The Project Browser 1209 is used to navigate your project. Double-click on package icons to open them and
display the diagrams and elements they contain. Similarly, double-click on elements to open them, and on
diagrams to display them in the Diagram View. You can drag elements 430 from the Project Browser to add
them to diagrams.
Model Views
You can set up tailored views of your model, containing sections or organizations of your model that are of
particular relevance to you or your team. Model Views 1222 are stored in the model and are visible to all users.
You can set up Favorites folders to give you easy access (hyperlinks) to commonly-used packages and
elements. You also have a My Views model stored locally on your machine and only visible to you, and
Technology-defined views that are read only and stored with MDG technologies. You can associate each view
with a query-built search that you can run by either double-clicking or expanding it.
Visual Style
You can configure the look and feel 101 of Enterprise Architect to suit your working environment. Options
range from a classic windows application to an enhanced XP appearance.
Arranging Windows
You can rearrange windows and some menus to adapt the screen space to your work habits. You can:
· Dock 76 windows against any edge of the workspace, or move them freely (float them) as you work; for a
list of dockable windows, see Standard Windows 75
· Autohide 78 windows so that they display only when you are actually using them.
Option Use to
Search Locate an object in Enterprise Architect. Type the name of the object in this field
and click on the [ ... ] button. Enterprise Architect displays the results of the
search on the Model Search 1231 screen.
Click on an item in the search results to highlight it in the Project Browser 1209 .
Open a Project File Display the Open Project 114 dialog, which you use to open an existing project
(where you have more project files than can be listed in the Recent panel).
Create a New Project Save a new project and open the Model Wizard 372 dialog.
120
Copy a Base Project Select a different Base Project 121 to generate a new project from.
Connect to Server 147 Specify a Data Source name to connect to. MySQL 123 , SQL Server 126 , Oracle
9i, 10g and 11g 129 , PostgreSQL 129 , MSDE 134 , Adaptive Server Anywhere 132 ,
Access 2007 123 and Progress OpenEdge 134 repositories are supported.
Note:
This feature is available in the Corporate, Business and Software Engineering,
Systems Engineering and Ultimate editions.
Getting Started Open the Tasks Pane 51 , to display useful topics and guides for various areas of
work in Enterprise Architect.
Configure Options Display the Help on the Options 350 dialog, which enables you to define how
Enterprise Architect displays and processes information.
Online Resources & Open the Resources page of the Sparx Systems website, which provides access
Tutorials to a wide range of Enterprise Architect and UML tutorials, demonstrations,
examples, Add-Ins and advice.
Option Use to
Enterprise Architect Access the Sparx Systems Enterprise Architect Community Site, which contains
Community a range of articles, discussions, tools and resources provided by both Sparx
Systems and the Enterprise Architect user community.
You must register to use the facilities of the site; you can also register as an
author and submit material yourself, for others to read and use.
Recent Select from a list of the most recently used Enterprise Architect projects (both .
EAP files and DBMS connections). Click on the required project to open it.
If you have created and used shortcuts 115 to your models, a model might have
two entries - one for the model accessed through Enterprise Architect and one
for the model accessed through the desktop shortcut. These open the same
model, although the shortcut entry also enacts any view profile you have defined.
To remove a hyperlink to a project from this list, see Remove Recent Projects 56
.
If your model has a default diagram 437 set, the default diagram opens immediately over the top of the Start
Page. You can still access the Start Page from the diagram tabs 397 below the diagram. However, if you have
set a shortcut view profile, that overrides the default diagram setting.
The list of topic areas varies, and can include topics specific to any MDG Technologies 1066 being used with
Enterprise Architect.
To switch between the topic areas, either:
· Click on the More Tasks option in the toolbar and select the required area from the list, or
· Click on the left or right arrow buttons in the toolbar.
The 'Home' icon returns you to the Getting Started topic area.
2.4.4.1 File
The File menu provides options to create, open, close and save projects, and also to perform print tasks.
Open Source File Open any type of source file (code, XML, DDL) for editing 1442 .
[Ctrl]+[Alt]+[O]
Save Project As Save the current model 115 with a new name, or create a desktop shortcut to
the current model.
(This option is also active in the 'Lite 15 ', read-only edition of Enterprise
Architect.)
Reload Current Project Reload the current project 267 (use in a multi-user environment to refresh
[Ctrl]+[Shift]+[F11] the Project Browser).
Print Preview Preview 395 how the currently displayed diagram prints.
Recent Files List Select from a list of the most recently opened projects.
1. Select File | Open Project from the menu bar or press [Ctrl]+[O]. The Open Project dialog displays.
Note:
Removing the hyperlink to a project from the Start Page only removes the link to the project and does not
remove the .EAP file from the file system.
2.4.4.2 Edit
The Edit menu provides a range of functions to apply to diagram elements for the currently open diagram.
Undo [Ctrl]+[Z] Undo 458 the last action performed; note that some actions cannot be
undone.
Copy [Ctrl]+[C] 1. Copy the selected elements to the MS Windows clipboard. To paste
the selected elements, see the Paste Elements submenu 58 .
2. Copy an image of the selected elements to the clipboard. If no
elements are selected, the entire diagram is copied.
The image can be saved as a bitmap or a metafile; you set the format on the
Options 351 dialog.
Add to Project Clipboard Add the current element to the Enterprise Architect clipboard.
[Ctrl]+[Space]
Clear Project Clipboard Clear any elements from the Enterprise Architect clipboard.
Paste Element(s) Paste clipboard elements into current diagram. See the Paste Elements 58
submenu.
Model Search [Ctrl]+[Alt] Display the Model Search 1233 window, to search for particular phrases or
+[A] words.
File Search Display the File Search 1485 window, to search for text in code files and
scripts.
Bookmark Selected Bookmark 341 the selected element(s). If the selected element is already
[Shift]+[Space] bookmarked, this option removes the bookmark.
Clear All Bookmarks Clear bookmarks 341 from any bookmarked elements in the current diagram.
Delete Selected Element(s) Delete the selected element from the diagram.
[Ctrl]+[D]
Note:
You can paste images from the Enterprise Architect Clipboard or the MS Windows clipboard. The Enterprise
Architect clipboard takes precedence, so you must clear that clipboard before you can paste from the MS
Windows clipboard.
as Link [Shift]+[Insert] Paste the element in the buffer as a link 430 (that is, a reference) to the
element.
If there are images in the MS Windows clipboard and none in the Enterprise
Architect clipboard, you can:
· Paste an image from the MS Windows clipboard into a new element as
the appearance of the new element or
· Paste an image from the MS Windows clipboard into the diagram as a
new boundary's appearance.
as New [Ctrl]+[Shift]+[V] Paste the element in the buffer as a completely new 430 element.
Paste Image From Paste the element in the Enterprise Architect Clipboard into the same
Clipboard diagram or a different diagram, as a metafile (that is, a definition of the
[Ctrl]+[Shift]+[Insert] element) as many times as is necessary.
If you paste the element into a different diagram, the classifier identifies the
source diagram for the element.
2.4.4.3 View
From the View menu you can set local user preferences, including which toolbars or windows are hidden or
visible.
Model Views [Ctrl]+[Shift] Show or hide the Model Views 1222 window.
+[5]
Relationship Matrix Open the Relationship Matrix 1261 to cross reference elements to each
other by connector type.
Element List [Ctrl]+[Alt]+[R] Display the current diagram or package in a context-sensitive, editable
table, the Element List 1255 .
Other Project Tools Display a submenu 59 containing options for the Resources, Tasks Pane,
System, Audit View windows, and the internal Web Browser.
Diagram Filters Display the Diagram Filters 1271 window, for selecting the elements to
show or hide on a diagram.
Pan and Zoom [Ctrl]+[Shift] Display the Pan & Zoom 1275 window for panning across a diagram to
+[N] display sections at greater magnification.
Layout Tools Display the Layout Tools 458 window, for reformatting your diagram in one
of a range of layouts.
Element Browser [Alt]+[9] Explore the components of the selected element, in the Element Browser
510 window.
Traceability [Ctrl]+[Shift]+[4] Show or hide the Traceability 1253 window, for tracing the relationships of
an element through the model.
Element Properties [Alt]+[1] Show or hide the Properties 508 window for the selected element.
Scenarios & Requirements Display the Scenarios, internal Constraints and Requirements 514 for the
[Ctrl]+[Shift]+[3] selected element, as tabs of the main work space.
Other Element Tools Display a submenu 59 containing options for the Project Management,
Maintenance, Source Code and Relationships tools.
Execution Analyser Display the Debug Workbench options. See View Submenus 60 .
Add-In Windows Display a window, or list of windows, provided by any Add-Ins you have
installed and enabled.
If no windows are provided, displays an empty, docked Add-Ins window.
Workspace Layouts Displays the Workspace Layout dialog for changing the content and
layout 86 of the Enterprise Architect workspace.
· Relationships [Ctrl]+[Shift]+[2] - List the element's connectors on the Relationships 1269 window.
· Debugger [Alt]+[8] - Show or hide the Debug 1471 window, which also enables you to display some or all of
the other debugger windows listed below, at the same time.
· Profiler 1514 - displays the Profiler window.
· Call Stack 1473
· Record & Analyze 1506
· Locals 1474
· Watches 1475
· Modules 1478
· Debug Output 1478
· Workbench 1519 - enables you to create your own workbench variables 1521 and invoke methods 1522 on them
· Breakpoints & Markers 1503
· Memory Viewer 1476
· Hide or redisplay the diagram caption bar 396 at the top or bottom of a diagram. The caption bar is
illustrated below:
2.4.4.4 Project
Use the Project menu for tasks related to the management of your project, such as recording issues, setting
estimation parameters and compiling a glossary.
Add Diagram [Ctrl]+[Insert] Create a new diagram 422 in the current package.
Add Element [Ctrl]+[M] Create a new element 523 on the current diagram.
Manage Baselines [Ctrl] Store a model branch as a snapshot or baseline 281 . Available in the
+[Alt]+[B] Corporate, Business and Software Engineering, Systems Engineering and
Ultimate editions.
Use Case Metrics Set Use Case Metrics 338 to assist in estimating project size.
Rich Text Format Report [F8] Generate a report for the currently selected package in Rich Text Format
1569 .
HTML Report [Shift]+[F8] Generate a report for the currently selected package in HTML 1647 format.
Diagrams Only Report Generate an RTF report containing only diagrams 1625 .
[Ctrl]+[Shift]+[F8]
Testing Report Generate an RTF report of the model's existing tests 1550 .
Dependency Details Generate a dependency report 1624 for the currently-selected package.
Testing Details Generate test details 1549 for the currently-selected package.
Generate Package Generate source code 1311 for the currently selected package.
Source Code
[Ctrl]+[Alt]+[K]
Import Source Import 1332 and reverse engineer an entire directory structure.
Directory
[Ctrl]+[Shift]+[U]
Import ActionScript Import code written in ActionScript 1331 with the file extension .AS.
Files
Import C Files Import code written in ANSI C 1331 with the file extension .C or .H.
Import C# Files Import code written in the C# 1331 programming language with the file extension .
CS.
Import C++ Files Import code written in the C++ 1331 programming language with the file extension .
H, .HPP or .HH.
Import Delphi Files Import code written in the Delphi 1331 programming language with the file
extension .PAS.
Import Java Files Import code written in the Java 1331 programming language with the file
extension .JAVA.
Import PHP Files Import code written in PHP 1332 with the file extension .PHP, .PHP4, .INC.
Import Python Files Import code written in Python 1332 with the file extension .PY.
Import Visual Basic Import code written in the Visual Basic 1332 programming language with the file
Files extension .FRM, .CLS, .BAS or .CTL.
Import VB.Net Files Import code written in the VB.Net 1332 programming language with the file
extension .VB.
Package Build Scripts Create and configure Package Build compiler scripts 1426 .
[Shift]+[F12]
Build [Ctrl]+[Shift] Build 1444 the application for your current script. Execute the Build command in
+[F12] the Build Scripts dialog.
Test [Ctrl]+[Alt]+[T] Execute the Test 1483 command you configured in the Build Scripts dialog.
Run [Ctrl]+[Alt]+[N] Execute the Run 1482 command you configured in the Build Scripts dialog.
Deploy [Ctrl]+[Shift] Execute the Deploy 1484 command you configured in the Build Scripts dialog.
+[Alt]+[F12]
Debug Run [F6] Run the application and Debug 1447 the Run command in the Build Scripts dialog.
Start Debug Recording Start recording 1504 your trace for a debug session.
Auto Record Thread Autorecord 1504 your debug session. The Stack Trace History, Stack tab and
Source Code Editor dynamically update to reflect the current execution sequence
for the thread; Stack Trace Recording ends when the thread ends or when you
click on the Stop button.
Show/Hide Execution Display the executing code when a thread has encountered a breakpoint. The
option presents the source code file in an editor window with the current line of
code highlighted for the thread that has the current focus.
Create Sequence Create a Sequence diagram 1507 from the Stack Trace History.
Diagram
Import DB Schema from Import a database schema from an ODBC 1363 data source.
ODBC
Generate Package DDL Generate a Package DDL 1369 script to create the tables in the currently
selected package.
Transform Selected Elements Perform an MDA-style transformation to the currently selected elements
[Ctrl]+[H] 1387 .
Transform Current Package Perform an MDA-style transformation to the currently selected package
[Ctrl]+[Shift]+[H] 1387 .
Validate Selected [Ctrl]+[Alt] Validate 1528 a selected element, diagram or package from the Project
+[V] Browser.
Configure Configure the Validation 1530 rules from the list of available rules.
Import WSDL Reverse engineer 1376 a Web Service Definition Language (WSDL) file as a UML Class
model.
Generate WSDL Forward 1379 engineer a UML Class model to a WSDL file.
Import XML Schema Reverse 1373 engineer a W3C XML Schema (XSD) file as a UML Class model.
Generate XML Schema Forward 1376 engineer a UML Class model to a W3C XML Schema (XSD) file.
Note:
This feature is available in the Corporate, Business and Software Engineering, Systems Engineering and
Ultimate editions.
Manage Users Add, modify and remove users 191 , including maintaining permissions.
Manage Groups Add, modify and remove security groups 197 , including maintaining
permissions.
Enable Security Enable or disable user security 189 to limit access to update functions in the
model.
Require User Lock to Edit Toggle the security policy 190 in force.
Encrypt Password Add encryption 200 to your password (prior to Enterprise Architect Release
7.1).
Configure Current Specify whether this package 259 (and its children) is controlled and, if so, which
Package file it is controlled through.
[Ctrl]+[Alt]+[P]
Version Control Specify the options 234 required to connect to a Source Code Control (SCC)
Settings provider.
Validate Configurations Validate the version control configuration 260 of each package in the model.
Work Offline Toggle between 'offline' version control 268 and online version control.
Import Package from XMI Import a package 290 from an XMI (XML based) file.
[Ctrl]+[Alt]+[I]
Export Package to XMI Export 289 the currently selected package to an XMI (XML based) file.
[Ctrl]+[Alt]+[E]
CSV Import/Export Import 305 or Export 303 information on Enterprise Architect elements in
[Ctrl]+[Alt]+[C] CSV format.
Batch XMI Export Export a group 298 of controlled packages in one action.
2.4.4.5 Diagram
The Diagram menu enables you to save diagram images to file as well as configure diagram properties and
options.
Properties [F5] View and edit the <type> Diagram: <name> dialog for the current diagram.
Layout Diagram Automatically layout 471 the current diagram (not available for Behavioral
diagrams).
Lock Diagram Prevent the diagram from being edited, or release the locked diagram for
editing.
Note:
This does not apply in the Corporate, Business and Software Engineering,
Systems Engineering and Ultimate editions if security is enabled. In that
case, see Lock Model Elements 204 .
Save Image [Ctrl]+[T] Save the diagram as a bitmap file (.BMP), Graphics Interchange Format file (.
GIF) or Windows Metafile (.WMF).
Copy Image [Ctrl]+[B] Copy an image of the current diagram to the clipboard. The image can be in
metafile or bitmap format; you set the format on the Options 351 dialog.
Save UML Pattern Save the current diagram as a UML pattern 902 .
Swimlanes and Matrix Add, modify and delete swimlanes 450 or the swimlanes matrix 444 for the
current diagram.
Visible Relations [Ctrl] Hide or show individual connectors 619 for the current diagram.
+[Shift]+[I]
Property Note Display the properties note 440 for the current diagram on screen.
Sequence Messages Change 880 the order of the communication messages 879 in the current
diagram.
Find in Project Browser Locate the current diagram in the Project Browser window.
[Shift]+[Alt]+[G]
Make User Default (Use in the Corporate, Business and Software Engineering, Systems
Engineering and Ultimate editions of Enterprise Architect, if security is
enabled.)
Make the current diagram the default diagram opened when you re-open this
model. The User Default diagram overrides the Model Default diagram (see
Make Model Default, below).
To cancel a User Default diagram, either:
· Create a dummy diagram, set it as the User Default and delete it, or
· Delete the original diagram (if it is no longer relevant).
This still blocks the Model Default diagram, whilst Security is enabled. To re-
establish the Model Default diagram, set it as the User Default.
Make Model Default Make the current diagram the default diagram 437 opened when the current
model is re-opened (unless you set a User Default diagram, which overrides
the model default; see above).
To cancel a Model Default diagram, either:
· Create a dummy diagram, set it as the Model Default and delete it, or
· Delete the original diagram (if it is no longer relevant).
Change Type Change the type 434 of the current diagram.
Repeat Last Element Create an instance of the same type as the last element created.
[Shift]+[F3]
Repeat Last Connector Create an instance of the same type as the last connector created.
[F3]
Snap To Grid Position elements on the diagram grid. There are two options:
· Standard Grid - constrains elements to the grid when they are added to
diagrams
· Smart Placement - places elements even distances away from other
elements and spaces elements evenly.
If neither of these options are enabled, the elements can be placed freely on
the diagram.
2.4.4.6 Element
You can configure and access element details using the Element menu. This enables you to control element
layout, generate documentation and manage project resources.
Properties [Alt]+[Enter] View the Properties 481 dialog of the selected element.
Add Tagged Value [Ctrl] Add a Tagged Value 634 to the currently selected element.
+[Shift]+[T]
Linked Document [Ctrl]+[Alt] Link the element 599 to a rich text document.
+[D]
Attributes [F9] View and edit the attributes 560 for the selected element.
Operations [F10] View and edit the operations 570 (methods) for the selected element.
Feature Visibility [Ctrl]+[Shift] Select which features and characteristics of the selected element are
+[Y] visible 438 on a diagram.
Rich Text Format (RTF) Report Generate a report for the currently selected package in rich text format
1569 .
Source Code Engineering See the element Source Code Engineering Submenu 69 .
Open Source in External Open the source code of the selected Class in the default external editor
Editor [F12] for that language. (Source code must have been generated 1308 , and the
selected element must be a Class.)
Find in Project Browser [Alt] Find the currently selected element in the Project Browser window. (If no
+[G] element is selected, finds the current diagram in the Project Browser
window.)
Find in Diagrams [Ctrl]+[U] Display all occurrences of the currently selected element.
Alignment
Make Same
See the element Position Submenus 70 .
Z Order
Size
Move
Space Evenly
View Properties Open the dialog containing details of the selected element feature, or the
element if no feature is selected.
Create Linked Note Add a Note element linked to the selected item, reflecting the content of that
item.
Add Other [Ctrl]+[F11] Insert a feature on the specific element item, such as Maintenance features
and Testing features.
Delete Selected from Model Delete the selected item from the model.
[Ctrl]+[Shift]+[Delete]
Other options that are available while in editing elements mode in a diagram (when an attribute or operation is
highlighted) include:
Key Use to
[Ctrl]+[Enter] Accept current changes and open a new slot to add a new item.
Overrides & Implementations Automatically override 578 methods from parent Classes and from
Set Parents and Interfaces [Ctrl] Manually set the element's parents or an interface 526 that it realizes.
+[I]
Embedded Elements [Ctrl] Attach elements 553 to the currently selected element.
+[Shift]+[B]
Change Type Change the element type 532 of the selected element.
Generate Current Element [F11] Generate source code 1309 for the currently selected element.
Synchronize Current Element Synchronize the selected Class with the source code.
[F7]
Batch Generate Selected Batch generate source code for the currently selected element(s).
Element(s)
[Shift]+[F11]
Batch Synchronize Selected Batch synchronize the currently selected element(s) with source code.
Element(s)
[Ctrl]+[R]
Open Source Directory Open the directory containing the source for this element.
[Ctrl]+[Alt]+[Y]
Default Appearance Set border, font and background color and border thickness for the selected
[Ctrl]+[Shift]+[E] element, as its default appearance 538 .
Apply Image From Insert the image currently held on the clipboard.
Clipboard
Set Font Change the font 556 of the text displayed on the element in a diagram.
2.4.4.7 Tools
The Tools menu provides access to various tools including those related to code engineering, managing .EAP
files, spelling options, external resources and customization of features such as configuring shortcuts.
Spell Check Project [Ctrl] Spell check 1552 the current project.
+[F7]
[Ctrl]+[Shift]+[F7]
Spelling Language Select a language 1554 other than English in which to perform the spell check
(having downloaded the language dictionaries from the Sparx Systems
website).
Export Reference Data Export reference data 223 to XML files for convenient model updating.
Import Reference Data Import reference data 225 from XML files for convenient model updating.
Import Technology Import 1071 an MDG Technology file. (This method no longer recommended.)
Windows Explorer Open Windows Explorer. (Different options might be listed, to open other
applications.)
Options [Ctrl]+[F9] Customize your general settings through the Options 351 dialog 351 .
Project Transfer Move a complete project 306 from one repository to another.
Note:
You cannot move a project from a source .EAP file of a version earlier
than 3.5.0.
Project Compare Compare 308 the total project sizes of two projects.
Repair .EAP File Repair 348 an Enterprise Architect project. If a project has not been closed properly,
in rare cases it might not open correctly. This option attempts to repair such
projects.
Note:
All users must be logged off the project while it is being repaired.
Compact .EAP File Compact 348 an Enterprise Architect project. Eventually projects might benefit from
compacting to conserve space.
Note:
Ensure everyone is logged off the target project, then select this option to compact
the project.
Make Design Master Make a design master 185 project; this is the master project for creating replicas.
Create New Replica Create a new replica 184 from the Design Master 185 .
Synchronize Copy changes 186 from one replica set member to another.
Replicas
Remove Replication Remove 186 all replication features if you no longer require a model to be replicable.
Resolve Replication Resolve any conflicts 187 caused when multiple users have changed the same
Conflicts element between synchronization points.
2.4.4.8 Addins
The Add-Ins menu enables you to connect to, display information on, work with and manage your Add-Ins.
The option displays only after you have installed an Add-In on your system.
Connect External List external Add-Ins and, when you select one of them, open a project list for the Add-
Project in. If there is only one active project available, the Add-In might automatically go on to
open that project.
<Add-In Name> Access the Add-In submenu 72 for the selected Add-In.
Manage Add-Ins Display the Manage Add-Ins 1781 dialog, which you use to enable or disable Add-Ins for
use.
Any technology loaded by an Add-In is automatically enabled; if you do not want to
use it, you can disable it on the dialog.
Add-In Submenu
Menu Option Use to
<Add-In specific List options to perform various functions specific to the Add-In. For example, the MDG
options> Technology For Zachman Framework, as an Add-In, has the options Open Example
Model and Insert New Framework Model.
About Display information on the Add-In installation, such as version, registration details and
copyright statement.
2.4.4.9 Settings
The Settings menu enables you to configure various settings for your overall project.
Configure: the resources involved, general types, maintenance types, metrics and estimation types,
stereotypes, Tagged Values, cardinality values, datatypes, language macros, local directories, image
management, CSV import and export specifications, and reference data export/import.
People Display the People 645 dialog, which enables you to configure the authors,
clients, resources and roles for your project.
General Types Display the General Types 653 dialog, which enables you to configure
requirements, status types, constraints and scenarios for your project.
Maintenance Display the Maintenance 660 dialog, which enables you to track problem types
and test types.
Project Indicators Define the project indicators (risks 322 , efforts 319 and metrics 320 ) used in
Resource Management 313 .
Estimation Factors Display the Estimation factors dialog, which enables you to configure estimation
335 factor types (Technical Complexity Factors 336 , Environmental Complexity
Factors 337 , and Default Hour Rate 340 ) for your project.
UML Configure stereotypes 662 , Tagged Value Types 664 and the cardinality list 665 for
your project.
MDG Technologies Display the MDG Technologies 1069 dialog, which enables you to load in and use
MDG Technology files.
Code Datatypes Add, modify and delete programming languages datatypes 666 .
Code Generation Modify code generation templates using the Code Templates Editor 1301 .
Templates
[Ctrl]+[Shift]+[P]
Transformation Modify transformation templates using the Transformation Templates Editor 1412 .
Templates
[Ctrl]+[Alt]+[H]
Colors Configure the custom colors for the project. There are two options:
· Get Project Custom Colors - get the custom colors
· Set Project Custom Colors - set the custom colors
Custom colors are as used in the Appearance 538 dialog.
2.4.4.10 Window
The Window menu provides access to various actions related to configuring open windows.
Full Screen Reset the display to full screen so that only the work area and main menu
are shown - no toolbars or windows.
To return to your normal working display, either click on the Full Screen
option again or click on the Close Full Screen pop-up menu option.
You can also restore individual menus and toolbars using the View menu
options.
Close Active Window Close the window that currently has focus.
[Ctrl]+[F4]
Autohide Active Window Autohide 78 the window that currently has focus.
[Ctrl]+[Shift]+[F4]
Close All Except Current Close all except the currently selected view.
Close All Close all opened windows in the main tab view.
Always on Top Force the main Enterprise Architect window to be on top of all other
windows.
Set Focus to Current View Make the current view the active one, so that key strokes immediately act
[Ctrl]+[Shift]+[0] on that view.
2.4.4.11 Help
The Help menu provides access to the Enterprise Architect help files, the Read Me file, the Enterprise
Architect End User License Agreement and various features on the Sparx Systems website.
Register and Manage License Configure and manage the license keys used to register the name and
Key(s) keys for Enterprise Architect and its Add-Ins. For more information see
the License Management 1867 topic.
Read Me View the Readme.txt file, which details the changes and enhancements in
Enterprise Architect, build by build.
Open Example Model Open the EA.Example model provided with the Enterprise Architect
installer.
View License Agreement View the Enterprise Architect End User License Agreement.
Help Contents Display the introductory page of the Enterprise Architect Help.
Keyboard Accelerator Map View the keyboard accelerator map. You can customize your keyboard
shortcuts 98 , if required.
User Forum and News Visit the Enterprise Architect user forum.
Bug Report Page Report the details of a bug you have found in Enterprise Architect.
Latest Version Details Display the Announcements folder of the user forum, providing details of
the latest Enterprise Architect build.
Automation Interface Access the Enterprise Architect Automation Interface pages on the Sparx
Systems website.
Pricing and Purchase Options Purchase or upgrade Enterprise Architect over the internet.
Tip:
If the text in a window panel is too small to read comfortably, click on it, press and hold [Ctrl] and use the
mouse wheel to expand and reduce the text size.
Note:
On the Testing, Maintenance and Project Management windows, any descriptive, history, input or results text
for a selected item is also displayed in the Notes window. You cannot edit this text in the Notes window.
Floating Windows
To float a window anywhere on the screen, just drag the window by its title bar to the required position.
2. Drag the window onto a compass point. The screen display shades the area where the window is to be
placed.
3. Release the mouse button over the compass point to confirm the position; this docks the window.
In the example below, when the mouse button is released the Model Views window is docked into the shaded
area.
You can do this with all dockable windows. The following example shows the Testing, Project Browser,
Resources, Model Views and Tagged Values windows all in one frame.
To separate a window from a combined frame, click on the window tab at the bottom of the frame and drag it
away.
To turn off the autohide for a particular set of windows within a frame, click on the button.
Hover the cursor over a window symbol to expand both the tab and the associated window.
Tip:
You can also use the View | Visual Style | Animate Autohide Windows menu option to animate windows
that have been automatically hidden.
Note:
You can dock toolbars to the edge of the Enterprise Architect workspace by dragging them by the title bar
and placing them against the appropriate edge. The example below shows the Default Tools toolbar docked
to the left side of the workspace:
Each toolbar has a drop-down arrow at the right-hand end, , which can be enabled or hidden 60 . If you
click on this drop-down arrow, the Add or Remove Buttons option displays. Select this option to show a
context menu listing the toolbars that are currently displayed, and an option to customize 90 both your own
toolbars and the system-provided toolbars.
You can select one of the toolbars identified on the context menu to list the icons available through that
toolbar. Click on the icons as necessary to hide or show them in the toolbar.
The Default Tools toolbar provides quick access to the following functions (in order):
The Project toolbar provides quick access to the following functions (in order):
· Reload current project 267 [Ctrl]+[Shift]+[F11]
· New diagram
· New package [Ctrl]+[W]
· New element [Ctrl]+[M]
· Search Project Browser window [Ctrl]+[Shift]+[F]
· Search entire project, using Model Search 1233 [Ctrl]+[F]
· New RTF document [F8]
· Project issues
· Project glossary
· Options (preferences) [Ctrl]+[F9]
You can move this toolbar to any dockable position and it retains that position in subsequent sessions. You
can hide or show the toolbar by clicking on the View | Toolbars | Project menu option.
The Code Generation toolbar provides quick access to the following functions (in order):
· Set the default language
· Set the default database
· Import Classes and Interfaces from source files (see menu below)
· Generate code for a single selected Class [F11]
Import Code
To select a language for code generation, click on the drop-down arrow for the Import button.
You can move this toolbar to any dockable position and it retains that position in subsequent sessions. You
can hide or show the toolbar by clicking on the View | Toolbars | Code Generation menu option.
The UML Elements toolbar provides quick access to the following functions (in order):
· Insert new element - displays a list of elements 523 matching the content of the current Toolbox pages, with
an Other option to list other elements
· Insert new System Boundary 802 element
· Insert new Note 536
· Insert new Text element 536
· Insert new diagram note 440
· Insert diagram Legend 441
· Insert new hyperlink 840
· Insert new note link 886 .
You can move this toolbar to any dockable position and it retains that position in subsequent sessions. You
can hide or show the toolbar by clicking on the View | Toolbars | UML Elements menu option.
The specific elements and the Notelink connector are also available in the Common 405 page of the Toolbox.
The Diagram toolbar provides quick access to the following functions (in order):
· Align selected elements to the left [Ctrl]+[Alt]+[!]
· Align selected elements to the right [Ctrl]+[Alt]+["]
· Align selected elements to the top [Ctrl]+[Alt]+[#]
The Current Element toolbar provides quick access to the following functions (in order):
· View and modify element properties [Alt]+[Enter]
· Set an element's parent or implement interfaces [Ctrl]+[I]
· View and modify Operations [F10]
· View and modify Attributes [F9]
· Specify the visibility of element features and compartments [Ctrl]+[Shift]+[Y]
· Specify the run state of an element (or, for Parts, property value) [Ctrl]+[Shift]+[R]
· View use of element in other structures such as diagrams [Ctrl]+[U]
· Locate the element in the Project Browser window [Alt]+[G]
· View the cross reference list for this element [Ctrl]+[J]
· Lock or unlock the current element
Note:
This does not apply in the Corporate, Business and Software Engineering, Systems Engineering and
Ultimate editions if security is enabled. In that case, see the Lock Model Elements 204 topic.
The Current Connector toolbar provides quick access to the following functions (in order):
· View and modify properties for the current connector
Enterprise Architect User Guide
Getting Started | User Interface Guide 85
You can move this toolbar to any dockable position and it retains that position in subsequent sessions. You
can hide or show the toolbar by clicking on the View | Toolbars | Current Connector menu option.
Use the Format toolbar to change the appearance of a selected element (or several selected elements) in the
current diagram; this does not affect any other occurrence of the selected elements anywhere else in the
model.
Notes:
· To set the global appearance of all elements throughout a model, use the Options dialog. Select the Tools
| Options menu option, then select Standard Colors 353 and Diagram | Appearance 356 from the options
tree.
· To override the global appearance and define a default appearance of a selected element (or several
selected elements) on all diagrams on which it occurs, right-click on the element and select the
Appearance | Default Appearance context menu option. The Default Appearance 538 dialog displays.
The Format toolbar provides quick access to the following functions (in order):
· Text font, style, size and effects, through the Font 556 dialog
· Text Color (drop-down color palette)
· Fill Color (drop-down color palette)
· Border or Connector Line Color (drop-down color palette)
· Border or Connector Line Width (arrows increase/decrease between 1 and 5)
· Apply Style to Element(s)
· Copy Style from Element
· Style list for selecting saved styles
· Save style (see below).
If you click on the drop-down arrow for the Save Style (pencil) button, you can select an option from the
following list:
The Fill Color button can be used in conjunction with the Project Custom Colors menu options to enable
users to have access to custom-defined project colors. To activate this feature select the Tools | Options |
Standard Colors menu option and ensure that the Show Project Custom Colors in Element Format
checkbox is selected. To define a set of custom colors see the Get and Set Project Colors 540 topic.
You can move this toolbar to any dockable position and it retains that position in subsequent sessions. You
can hide or show the toolbar by clicking on the View | Toolbars | Format Tool menu option.
The Workspace Layouts toolbar provides a range of facilities for changing the content and layout of the
Enterprise Architect workspace.
You can move this toolbar to any dockable position and it retains that position in subsequent sessions. You
can hide or show the toolbar by clicking on the View | Toolbars | Workspace Layouts menu option.
The facilities on the toolbar, from left to right, are described in the following paragraphs.
In the Existing Workspace Layout panel at the bottom of the dialog, the Based On: field identifies the defined
layout that the current workspace layout was derived from - you might have moved or closed windows since
applying that layout. The highlighted (Copy of existing Workspace Layout) at the top of the Workspace Layout
dialog is a capture of the workspace layout immediately before you opened the dialog.
Change Layout
You can now change the layout in the Existing Workspace Layout panel to:
· The original layout (as identified by the Based On: field), discarding any changes you might have made
· The Copy of existing Workspace Layout, preparatory to saving the changes in a new named layout
· One of the other named layouts.
To change the layout in use, either:
· Double-click on the required layout name
· Click on the layout name and click on the Apply button or OK button, or
· Right-click on the layout name and select the Apply context menu option.
When the layout in use changes, the layout name in the toolbar Workplace Layout Selection field also
changes.
Copy Layout
To copy a layout (such as the one at the top of the list), either:
· Change the layout in use to the required layout (as above) and click on the Save As button, or
· Right-click on the layout name and select the Save As context menu option.
The Save Custom Workspace Layout dialog displays.
In the Custom Workspace Layout Name field, type a name for the layout. Again, by selecting an existing
name you can change an existing layout to something different. Click on the Save button.
If you already have tailored windows or views that you want to include in your selected layout, select the
Include active custom views checkbox.
Delete Layout
To delete a workspace layout, right-click on the layout name and select the Delete context menu option.
Enterprise Architect prompts you to confirm or cancel the deletion.
Note:
When you upgrade your system to a new edition of Enterprise Architect, the new edition might contain
window or toolbar layout changes made by Sparx Systems. These changes might impact your previously-
customized workspace layouts. In such cases, when you select each of your customized layouts in the
Selection field, the following prompt displays:
Click on the OK button to ensure that your customized layout contains the system upgrades.
Views
Clicking on the drop-down arrow for the Views icon lists options for displaying various views of information on
model content, such as the Element List 1255 , Model Search 1231 and Relationship Matrix 1261 . Click on the
appropriate option to display the required view screen.
Windows
Clicking on the drop-down arrow for the Windows icon lists options for opening each of the Enterprise
Architect windows (as on the View 58 menu options). Click on the appropriate option to open the required
window, or to transfer control to the window if it is already open.
Toolbars
Clicking on the drop-down arrow for the Toolbars icon lists options for opening or hiding each of the nine
Enterprise Architect main toolbars 79 and the diagram Status Bar 89 . Click on the appropriate option to hide
or display the required toolbar.
Full Screen
Click on this icon to switch the Enterprise Architect display to Full Screen 74 mode. A small dialog displays to
enable you to switch back to normal mode. Alternatively, click on the Window | Full Screen menu option.
· Provides a zoom slider that enables you to enlarge the scale of the current diagram by up to 50%
Note:
This facility has no impact on other users who might view the diagram. It has the same function as the
Scale view by field on the Diagram Appearance 356 page of the Options dialog; changes in the 'zoomed'
display scale of a diagram update this field and are applied to any other diagrams that you open.
This also has no impact any other diagram Zoom facility in Enterprise Architect.
· Indicates the status of [Caps Lock], [Num Lock], [ScrLk] (scroll lock) and the WAN Optimizer (bold
indicates 'in use', pale indicates 'off')
· Indicates, by the presence of a triangle in the bottom right corner, that the screen is not maximized; you
can drag the screen corner to increase the size of the window.
If you right-click on the Status bar, a context menu displays that enables you to hide or show the element
name, element coordinates, zoom slider or status indicators.
You can hide or show the Status bar from the View | Toolbars | Status Bar menu option, but you cannot dock
it in any other position.
2.4.7 Customization
You can configure various settings using the Options 350 dialog, which you display by selecting the Tools |
Options menu option. In addition, there are several options to change the overall look and feel of Enterprise
Architect 101 in the View | Visual Style submenu. Those settings and options are explored in this topic.
On occasion, you might want to use Enterprise Architect for two distinct types of operation at the same time.
You can do this by adding the following command line argument when you run Enterprise Architect:
/regkey:<regkeyname>
This stores registry settings - such as window layouts - to a different path in the registry.
See Also
· Workspace Layouts 86
Note:
If a documented toolbar icon, keyboard combination or menu option does not appear to be available, select
the appropriate tab and click on the Reset or Reset All button. This restores the toolbar, menu or key
settings to the defaults.
However:
Be aware that this also removes any customized icons, options or combinations you might have set, because
it is possible that the customization itself has displaced or affected the default setting.
To add a command to a toolbar, click on the category in the Categories: panel and select the command from
the list for that category in the Commands: panel. Drag the command on top of the toolbar to add it to.
If you right-click on the command icon in the toolbar while the Customize dialog is open, a context-sensitive
menu displays. This menu offers options for deleting commands from a toolbar, and for changing the
appearance of commands.
To remove a command from the toolbar, right-click on the command graphic or text and select the Delete
menu option.
To change the appearance of a command graphic, right-click on the command graphic or text and select the
Button Appearance context menu option. The Button Appearance dialog displays, which you can use to add
graphical icons to commands that do not have them by default.
Note:
Some commands do not come with a convenient icon, which results in an empty toolbar button. Either avoid
placing these commands on toolbars or use the context-sensitive menu to select an appropriate icon for the
command.
Tip:
Read the Create a New Toolbar and Populate it with Commands 92 procedure of the Customize Toolbars
topic.
4. In the Toolbar Name field, type a name for your new toolbar and click on the OK button. Your new
toolbar is created.
Note:
You can select the Show text labels checkbox to display textual descriptions of toolbar items.
5. Now add commands to your toolbar. Click on the Commands tab. This forces the new toolbar behind
the Customize dialog, so you might have to drag the Customize dialog to the side to find your new
toolbar.
7. Find the command to add to your toolbar in the Commands list. The Categories list on the left
represents the Enterprise Architect menu structure and the Commands list updates each time you click
on a different category.
8. Drag the selected command from the list into the new toolbar. If you selected the Show text labels
checkbox, your toolbar should now look like this:
If you did not select the Show text labels checkbox, your toolbar should look like this:
You can add as many commands to your toolbar as required. Your new toolbar behaves the same way as
other toolbars; you can position it next to the other toolbars at the top of the application workspace, dock it to
the side of the workspace or close it.
3. Click on the New icon (left of the red X ). A blank field displays in the Menu contents list.
Note:
Programs installed with your operating system (such as Notepad, Wordpad) do not require a full file
path. Programs installed separately (such as Microsoft Visual Studio) require the full file path in the
Command field. If necessary, use the [ ... ] (Browse) button to locate the tool in the file system.
6. Add any arguments required by the tool (see Opening External Tools 96 and Passing Parameters to
External Applications 97 ), and specify an initial directory if required.
7. Close the Customize dialog. Your tool should have now been added to the Tools menu as shown
below.
Example 1
This example opens the file c:\Temp\Customer Account.cls using Wordpad. If you save from within Wordpad the
initial directory is c:\Temp.
Tip:
If there are any spaces in the paths in the Command, Arguments or Initial Directory fields, you must
enclose the whole path in double quotes. For example: "c:\Temp\Customer Account.cls" must have quotes but c:
\Temp\CustomerAccount.cls does not have to have quotes.
Example 2
This example opens the file c:\Temp\Customer Account.cls using VB. As VB is not installed with the operating
system, the whole file path for VB must be included in the Command field; you can select this using the [ ... ]
(Browse) button to locate the VB executable. If you save from within VB the initial directory is c:\Temp.
$e Comma separated list of element IDs All elements selected in the current diagram.
$E Comma separated list of element GUIDs All elements selected in the current diagram.
Tip:
For more information on using the Automation Interface, visit www.sparxsystems.com/AutIntVB.htm.
command.
Note:
Press the actual keys to use. For example, to use [F5] press the [F5] key, don't type F then 5.
Note:
In the example above, the Assign button is disabled. This is because [F5] is already a shortcut to view
diagram properties. If this occurs you must select a different shortcut key.
5. Once you have selected an available shortcut, click on the Assign button to apply the change. In the
example below, the new shortcut is [N].
6. This has added a new shortcut so that both [N] and [Ctrl]+[N] create a new Enterprise Architect project.
If you intend [N] to be the only shortcut for this action, select [Ctrl]+[N] in the Current Keys list and
click on the Remove button.
Tip:
Remember that you can always revert to the default shortcut keys by clicking on the Reset All button.
Note:
Modified shortcut keys are stored in the registry, so they only affect the current user.
Context Menus
Currently this feature is disabled.
Menu Animations
The following menu animations can be selected from the Menu animations drop-down list:
Menu Shadows
Menu shadows can be toggled on or off by selecting or clearing the Menu shadows checkbox.
Note:
When you perform a major upgrade of Enterprise Architect (such as from release 7.1 to 8.0) the menus are
reset and deleted options are replaced.
You can toggle the following options by selecting or clearing the checkboxes:
· Show Screen Tips on toolbars
· Show shortcut keys in Screen Tips
· Use Large Icons.
2. Select the required style from the list. If you select the Microsoft Office 2007 radio button, you can also
select from a number of base-color options.
3. To try out styles, click on the Apply button. To set the style and resume work, click on the OK button.
You can also enable customization 100 of toolbars and menus, and animate auto-hidden 78 windows.
Double-click on model validation errors or parsing errors to display the source of the error.
You can also right-click on an item and select context menu options to:
· Copy the selected item to the clipboard
· Copy all items to the clipboard
· Save the output to an external file
· Clear the output from the window.
The Output window can also be used by Add-Ins 1776 , if they are configured to do so via the Automation
Interface 1666 .
To access the:
· Email exchange server, click on the 'envelope' icon in the toolbar; the email login window displays
· Web search engine (such as Google), click on the 'spyglass' icon in the toolbar; the search engine screen
displays
· Home web site, after displaying other web pages, click on the 'house' icon in the toolbar.
To go directly to another website or email server (your internet security permitting), in the Address field type
or select the website http address and click on the Go button.
Make text bullet list item [Ctrl]+[.] (full stop) Element notes
To list the shortcuts in a particular category (see the Command column in the above table), click on the drop-
down arrow in the Category field and select the appropriate category.
Function Shortcut
Select a range of objects for an operation [Shift]+click the first and last object
in the range
Move elements along horizontal axis or vertical [Shift]+hold left mouse button and
axis drag
Create bend in and change direction of connector [Shift]+hold left mouse button and
line drag
Move elements in any direction, including [Alt]+hold left mouse button and
diagonally drag
III
Projects and Teams | 111
Enterprise Architect helps you to create projects for development under a range of work conditions 112 , from
single user/local access through to multiple-role teams working in a distributed environment.
You both protect and manage the model data itself, and communicate information on the data in the form of
documentation and reports, using facilities such as:
· Creating the project in a local, file-based repository 120 (a Microsoft JET database)
· Creating the project in one of a range of DBMS repositories 122 (Corporate and extended editions
· Tools for enabling team development 182 in the project
· Tools for managing changes 228
· Tools for managing project activities 312
· Maintaining the integrity of the project 344
· Sharing 223 the reference data 644 used across the project, and between models and projects
· Enabling each user to configure 350 how project tools display and behave on their workstation.
You can also have recorded discussion and communication of decisions using the Team Review 208 .
3.1 Introduction
An Enterprise Architect project 113 is stored in a data repository. In Enterprise Architect Desktop and
Professional editions, you work with a single file having a .EAP extension.
In Enterprise Architect Corporate, Business and Software Engineering, Systems Engineering and Ultimate
editions you can also use a suitable DBMS database for project files.
Project Files
.EAP Files
In Enterprise Architect Desktop and Professional editions, a single file with a .EAP extension is used to store
projects. A .EAP file is a Microsoft JET database, so you can also open it using MS Access 97, 2000 or 2003,
or any other reporting tool that can work with JET databases.
DBMS Repositories
In Enterprise Architect Corporate Business and Software Engineering, Systems Engineering and Ultimate
editions, you can use a suitable DBMS database for project files. DBMS project files have the same logical
structure as .EAP files, but must be connected to using ADO/ODBC. See Connect to a Data Repository,
below.
Whenever you launch Enterprise Architect, the first thing displayed is the Start Page 50 . From here, you can
create a new project, open a project and (Corporate, Business and Software Engineering, System Engineering
and Ultimate editions) connect to a data repository.
Enterprise Architect enables you to connect to 147 any of the following data repositories:
· MS Access 97, 2000 and 2003 (in all editions - .EAP files are stored in Microsoft JET databases)
· Access 2007
Note:
If you already have a project open, Enterprise Architect prompts you to save changes before loading.
You also have the option to connect to SQL Server 126 , MySQL 123 , Oracle 9i, 10g or 11g 129 , Postgre SQL
160 , ASA 162 , MSDE Server 165 and Progress OpenEdge 165 data repositories.
· A specific diagram
· The Relationship Matrix 1261 with a saved profile
· The default Team Review 208 .
You can define more than one diagram to open (but not more than one search, Team Review or Relationship
Matrix profile). Enterprise Architect opens the appropriate windows in the sequence in which you list the
options, displaying the last view in the list. For example, you might create your shortcut to open, in sequence:
· A Development module
· The Model Search for a simple search on the term Issue
· The module Issues diagram
· The module Changes diagram.
The project would then open with the Enterprise Architect work area showing the two diagram tabs and the
Model Search tab, and with the Changes diagram displayed in the Diagram View 396 .
Notes:
· These options are not valid for a copy of the model.
· If specified, the shortcut views override any default diagram 65 defined for the model or current user.
· A shortcut does not affect the original Enterprise Architect .exe file or icon, or any other shortcut you might
have defined. You can use all of these independently.
· When you use a shortcut to access a project that you have recently opened in Enterprise Architect, the
Recent list on the Enterprise Architect Start Page has two entries for the project - one created when you
opened the project in Enterprise Architect and one created when you used the desktop shortcut.
To create a copy of your model or a shortcut to your model, you have two options:
· Define each view 116 to open (for example, if you are specifying a working environment in advance,
perhaps for other users)
· Capture the current Enterprise Architect work environment 117 to access the model at exactly the same
point in exactly the same environment when you resume work.
3. Click on the [ ... ] (Browse) button at the end of the Target File field. The Save Project As dialog
displays.
4. Browse for the appropriate file location (such as C:\Documents and Settings\<username>\Desktop) and, in
the File name field, type an appropriate filename. All shortcuts are .EAP files, regardless of whether the
model itself is a .EAP file or a DBMS model.
5. Click on the Save button to return to the Save As dialog.
6. Click on one of the following:
· The Copy radio button to create a direct copy of the model, and click on the OK button to save the
copy and end the procedure
· The Shortcut radio button to create a desktop shortcut for the model
Note:
These radio buttons display only if the model is a .EAP file. If the model is a DBMS file, the target file
can only be a shortcut. See the Encrypt Repository Password 119 topic.
7. Click on the Add Other button and select the required option to define:
· A diagram to open
· A Relationship Matrix profile to open
· The Team Review
· A Model Search to perform.
The appropriate browser or dialog displays to define the view to display. Enter the details and click on
the OK button.
8. Repeat step 7 for as many views as you require. Each entry is automatically selected, with a tick in the
checkbox.
To delete an entry, click on the checkbox to remove the tick. The entry is deleted when you save the
shortcut.
9. To change the sequence and/or make a different view display first in the Diagram View, click on the
appropriate entry and click on the 'Up Hand' or 'Down Hand' buttons.
10. Click on the OK button to save the shortcut.
When you subsequently open the Save As dialog, it lists the currently-opened views in the order in which they
were opened. You can add further views or remove them from the shortcut.
6. If you accessed Enterprise Architect via a shortcut, the Target File field displays the file location of that
shortcut. If you intend to update the shortcut, go to step 10.
7. Otherwise, click on the [ ... ] (Browse) button at the end of the Target File field. The Save Project As
dialog displays.
8. Browse for the appropriate file location (such as C:\Documents and Settings\<username>\Desktop) and, in
the File name field, type an appropriate filename. All shortcuts are .EAP files, regardless of whether the
model itself is a .EAP file or a DBMS model.
9. Click on the Save button to return to the Save As dialog.
10. Click on one of the following:
· The Copy radio button to create a direct copy of the model, and click on the OK button to save the
copy and end the procedure.
· The Shortcut radio button to create a desktop shortcut for the model.
Note:
These radio buttons display only if the model is a .EAP file. If the model is a DBMS file, the target file
can only be a shortcut. See the Encrypt Repository Password 119 topic.
11. If you decide not to have a view in the shortcut, click on the checkbox to remove the tick. The entry is
deleted when you save the shortcut.
12. If you decide to change the sequence and/or make a different view display first in the Diagram View,
click on the appropriate entry and click on the 'Up Hand' or 'Down Hand' buttons.
11. Click on the OK button to save the shortcut.
Note:
If you open the Save As dialog when no views are open, the Actions when model is opened field is empty.
You can save the shortcut like this to totally clear it. Alternatively, if views are listed that you do not want to
use again, click on the Include None button and save the shortcut.
You can create the shortcut actions as described in the Create Copy or Shortcut 116 topic and, if necessary,
select the checkbox to encrypt the database connection string. You distribute the shortcut file to the database
users who are to access the model. The users then have an encrypted string such as:
Enterprise Architect projects can be created as .eap files via the File | New Project menu option, which
displays the Save New Enterprise Architect Project dialog.
Select a directory and enter a file name for your project, then click on the Save button. Once the project has
been saved, the Select Model(s) 372 dialog displays, which makes a selection of Model Packages available.
Select the Model Packages to include and click on the OK button. Enterprise Architect adds a model
containing the selected Model Packages to the Project Browser.
You can also add Model Packages to the project using the New Model From Pattern icon in the Project
Browser toolbar 1212 . Alternatively, new projects can be created from the Start Page 50 ; select the Create a
New Project option.
Configure Project
Having created your project, you can set a range of project parameters to define defaults, tailor the project to
particular coding languages, and ensure consistent development and use of the project. See the following
topics:
· The Settings Menu 73
· Defaults and User Settings 90
You must first select the project that is to be the base template. When you install Enterprise Architect a default
base project is installed called EABase.eap.
· The Model Project field defaults to EABase.eap, as the base file for your project; however you can select
any existing project file as a Custom Template 120 - click on the Browse button after the Model Project
field and locate the custom project file
· To select the file path for saving your project, click on the Browse button after the New Project field; if this
is to be a shared project, store the file on a shared network resource such as a Network Server or
Workgroup Server
· To replace all GUIDs in the source model with fresh GUIDs, select the Reset New Projects GUIDs
checkbox.
Note:
If the new project is based on one that is already under version control, it is recommended that the Reset
New Projects GUIDs checkbox be deselected. This prevents duplication of packages when the Get
Latest facility is used.
When you have entered the filenames, click on the Create Project button to create your project. Click on the
Cancel button to close the dialog without creating a new project.
Tip:
You can also copy any Enterprise Architect project using Windows Explorer, and open the copied project as a
new project.
Introduction
The Desktop and Professional versions of Enterprise Architect use an MS JET database as the model
repository.
If you purchase the Corporate, Business and Software Engineering, Systems Engineering or Ultimate edition,
you can also create and use any of the following data repositories:
· SQL Server 126 2000, 2005 or 2008
· MySQL 123 4 or 5
· PostgreSQL 129 7 or 8
· Adaptive Server Anywhere 8 or 9, or SQL Anywhere 10 or 11 132
Note:
You cannot move a model from a source .EAP file of a version earlier than 3.5.0.
Setting up a database repository is a two- or three-stage process: firstly, you set up an ODBC driver for your
database; secondly, you create the repository tables using scripts downloaded from the Sparx Systems web
site; and finally, you connect to the repository. Full instructions on all three stages are provided below.
Note:
For Oracle, the Microsoft OLE DB Provider for Oracle is not appropriate. You use the Oracle Provider for OLE
DB 153 instead.
Create a Repository
To find out how to download the scripts and create the data repository tables, go to:
· Create a MySQL Data Repository 123
· Create an Access 2007 Repository 123
· Create a SQL Server Data Repository 126
· Create an Oracle Data Repository 129
· Create a PostgreSQL Data Repository 129
· Create an Adaptive Server Anywhere Data Repository 132
Connect to a Repository
Once the repository is created, you can connect to it.
Note:
To connect to a repository, you must have the usual SELECT, UPDATE, INSERT and DELETE permissions.
To find out how to connect to your repository, see one of the following topics:
· Connect to a MySQL Data Repository 148
· Connect to a SQL Server Data Repository 150
· Connect to an Oracle Data Repository 153
· Connect to a PostgreSQL Data Repository 160
· Connect to an Adaptive Server Anywhere Data Repository 162
Using Access 2007, open a .EAP file and allow Access to convert it to a .ACCDB file. This forms the Access
2007 repository.
Before creating a MySQL data repository in Enterprise Architect, you must set up the MySQL and MySQL
ODBC drivers. For further information on setting these up, see MySQL ODBC Driver 135 .
To create a new MySQL repository, you must first create a database into which to import the table definitions
for Enterprise Architect. Sparx Systems provide SQL scripts to create the required tables; how you create the
database and execute that script are up to you.
· Registered users can obtain the scripts from the Registered Corporate edition Resources page of the
Sparx Systems website at http://www.sparxsystems.com/registered/reg_ea_corp_ed.html
· Trial users can obtain the scripts from the Corporate edition Resources page of the Sparx Systems website
at http://www.sparxsystems.com/resources/corporate/.
2. Run MySQL Query Browser, and open and execute the MySQL repository script.
3. Below is an example showing the tables created in the MySQL repository after running the script in
MySQL Query Browser.
Before creating a SQL Server data repository, you must have SQL Server and MDAC 2.6 or higher installed,
and access permission to create a new database. Please note that setting up SQL Server and the issues
involved are beyond the scope of this user guide. Consult your program's documentation for a guide to this.
Sparx Systems provide SQL scripts to create the required tables; how you create the database and execute
that script are up to you.
· Registered users can obtain the scripts from the Registered Corporate edition Resources page of the
Sparx Systems website at http://www.sparxsystems.com/registered/reg_ea_corp_ed.html
· Trial users can obtain the scripts from the Corporate edition Resources page of the Sparx Systems website
at http://www.sparxsystems.com/resources/corporate/.
1. In SQL Enterprise Manager, locate the server on which to create your new Enterprise Architect model;
in the example below this is DBSERVER02\SQLEXPRESS.
Note:
Ensure that the database collation is case-insensitive.
4. Click on the database to select it, then select the New Query menu option.
5. In the Query window, use the Open File dialog to locate the supplied Enterprise Architect SQL Server
Model script file.
6. Click on the Open button. Check that you have selected the correct database to run the script in. In this
example the tables are being added to the ea_sqlserver database as shown in the drop-down menu
below.
7. Click on the Execute button; SQL Server executes the script, which creates the base model for an
Enterprise Architect project.
Before creating an Oracle data repository, you must have the appropriate version of Oracle (9i, 10g or 11g)
and MDAC 2.6 or higher installed, and access permission to create a new database. Please note that setting
up Oracle and the issues involved are beyond the scope of this manual. Consult your program documentation
for guidance.
Sparx Systems provide SQL scripts to create the required tables; how you create the database and execute
that script are up to you.
· Registered users can obtain the scripts from the Registered Corporate edition Resources page of the
Sparx Systems website at http://www.sparxsystems.com/registered/reg_ea_oracle_instructions.html
· Trial users can obtain the scripts from the Corporate edition Resources page of the Sparx Systems website
at http://www.sparxsystems.com/resources/corporate/.
Before creating a PostgreSQL data repository in Enterprise Architect, you must set up PostgreSQL and
PostgreSQL ODBC drivers. For further information on setting these up, see Set up a PostgreSQL ODBC
Driver 138 .
To create a new PostgreSQL repository, you must first create a database into which to import the table
definitions for Enterprise Architect. Sparx Systems provide SQL scripts to create the required tables; how you
create the database and execute that script are up to you.
· Registered users can obtain the scripts from the Registered Corporate edition Resources page of the
Sparx Systems website at http://www.sparxsystems.com/registered/reg_ea_corp_ed.html
· Trial users can obtain the scripts from the Corporate edition Resources page of the Sparx Systems website
at http://www.sparxsystems.com/resources/corporate/.
3. Below is an example showing the tables created in the PostgreSQL repository after running the script
in pgAdminIII.
Before creating an ASA data repository in Enterprise Architect, you must set up ASA and ASA ODBC drivers.
For further information on setting these up, see Setup an Adaptive Server Anywhere ODBC Driver 141 .
To create a new ASA repository, you must first create a database into which to import the table definitions for
Enterprise Architect. Sparx Systems provide SQL scripts to create the required tables - how you create the
database and execute that script are up to you.
· Registered users can obtain the scripts from the Registered Corporate edition Resources page of the
Sparx Systems website at http://www.sparxsystems.com/registered/reg_ea_corp_ed.html
· Trial users can obtain the scripts from the Corporate edition Resources page of the Sparx Systems website
at http://www.sparxsystems.com/resources/corporate/.
The following example shows the tables created in the ASA repository after running the script in EMS ASA
Manager.
Before creating a SQL Server MSDE data repository, you must have MSDE Server and MDAC 2.6 or higher
installed. Please note that setting up MSDE Server and the issues involved are beyond the scope of this user
guide. Consult your program documentation for guidance.
Sparx Systems provide SQL scripts to create the required tables; how you create the database and execute
that script are up to you.
· Registered users can obtain the scripts from the Registered Corporate edition Resources page of the
Sparx Systems website at http://www.sparxsystems.com/registered/reg_ea_corp_ed.html
· Trial users can obtain the scripts from the Corporate edition Resources page of the Sparx Systems website
at http://www.sparxsystems.com/resources/corporate/.
Use the SQL Server 2000, 2005 or 2008 script for MSDE, and follow the steps to Create a New SQL Server
Data Repository 126 .
Before creating a Progress OpenEdge data repository, you must have OpenEdge and MDAC 2.6 or higher
installed, and access permission to create a new database. Please note that setting up OpenEdge and the
issues involved are beyond the scope of this manual. Consult your OpenEdge documentation for guidance.
Sparx Systems provide SQL scripts to create the required tables; how you create the database and execute
9. Grant privileges:
grant dba, resource to <user>;
commit;
Note:
The recommended MySQL ODBC driver version is 5.1.5. (Version 3.51.14 creates problems in incorporating
tests in elements.)
2. Click on the Add button. The Create New Data Source dialog displays, enabling you to add a new DSN.
6. Click on the Details>> button and Flags 1 tab to set the advanced options.
7. Select the Return matched rows instead of affected rows and Allow big result sets checkboxes.
8. Click on the Test button to confirm that the details are correct.
9. If the test succeeds, click on the OK button to complete the configuration.
10. If the test does not succeed, review your settings.
Your MySQL connection is now available to use in Enterprise Architect.
Note:
Do not use version 8.4.1 of the PostgreSQL ODBC Driver; it presents difficulties in transferring a project to a
PostgreSQL repository.
2. Click on the Add button. The Create New Data Source dialog displays, enabling you to add a new DSN.
6. Click on the Datasource button and set the options on Page 1 and Page 2 as shown on the examples
below:
Note:
On Page 2, For PostgreSQL version 8+ select the Disallow Premature checkbox and, in the Protocol
panel, select the 7.4+ radio button.
2. Click on the Add button. The Create New Data Source dialog displays, enabling you to add a new DSN.
· The username and password on the Login tab (dba, sql are the defaults when ASA is installed).
· The server name and the path to the database, on the Database tab.
· The network protocol on the Network tab (if the database is on a network location).
6. You can now return to the ODBC tab and test the connection.
7. Click on the OK button to complete the configuration.
Your Adaptive Server Anywhere connection is now available to use in Enterprise Architect.
2. Click on the Add button. The Create New Data Source dialog displays, enabling you to add a new DSN.
6. Click on the Test Connect button to confirm that the details are correct.
7. If the test succeeds, click on the OK button to complete the configuration.
8. If the test does not succeed, review your settings.
Your OpenEdge connection is now available to use in Enterprise Architect.
Note:
To connect to a repository, you must have the usual SELECT, UPDATE, INSERT and DELETE permissions.
For information on how to connect to your database repository, click on the appropriate link below:
· MySQL Data Repository 148
· SQL Server Data Repository 150
· Oracle Data Repository 153
· PostgreSQL Data Repository 160
· Adaptive Server Anywhere Data Repository 162
In order to use a MySQL data repository, you must connect to it in Enterprise Architect first. Before connecting
to the repository, you must set up a MySQL ODBC driver 135 .
To connect to a MySQL data repository in Enterprise Architect, follow the steps below:
1. In the Open Project 114 dialog, select the Connect to Server checkbox.
2. Click on the [ ... ] (Browse) button, as you normally would to browse for a project. As you have selected
the Connect to Server checkbox, the Data Link Properties dialog displays instead of the Browse
Directories dialog.
3. Select Microsoft OLE DB Provider for ODBC Drivers from the list.
4. Click on the Next button. The Connection tab displays.
5. Click on the Use data source name radio button and on the drop-down arrow in its field. Select the
ODBC driver you have set up to connect to your MySQL repository from the list. In the setup example
135 the driver title is Changes.
12. Give the connection a suitable name so that you can recognize it in the Recent Projects panel on the
Open Project dialog.
13. If required, select the Encrypt Connection String checkbox. This encrypts and hides the connection
details of the database from the users that the connection string is given to.
14. If required, select the Lazy Load checkbox to not load the full project view when the model is loaded.
Instead, only the parts that are necessary to display the visible portion of the tree are loaded. This
means that a model loads faster and users can begin work sooner, but at the expense of later small
delays as Enterprise Architect loads specific portions of the model.
15. If required, select the Use WAN Optimization 180 checkbox. (To improve performance over a Wide
Area Network, remote database calls can be routed through a WAN Optimizer that compresses the
data returned from the repository, reducing transfer time.)
If you select this checkbox, complete the next three fields (see your administrator for the correct
values). Otherwise go to step 19.
16. In the Server field, type the network name or address of the optimizer server.
17. In the Port field, type the port on which the server is running on the remote machine.
18. In the DSN field, type the data source name of the database as it appears on the remote machine.
19. Click on the OK button to complete the configuration.
Before you can use a SQL Server data repository, you must connect to it in Enterprise Architect. To connect to
your SQL Server data repository in Enterprise Architect, follow the steps below:
1. In the Open Project dialog 114 , select the Connect to Server checkbox.
2. Click on the [ ... ] (Browse) button, as you normally would to browse for a project. As you have selected
the Connect to Server checkbox, the Data Link Properties dialog displays instead of the Select
Enterprise Architect Project to Open dialog.
3. Select Microsoft OLE DB Provider for SQL Server from the list.
4. Click on the Next>> button. The Connection tab displays.
5. Type in the server details, including Server Name, User Name and Password.
6. Click on the Select the database on the server option and on the drop-down arrow. From the list,
select the model to connect to.
7. Click on the Test Connection button to confirm that the details are correct.
8. If the test succeeds, click on the OK button. If the test does not succeed, revise your settings.
9. When you click on the OK button, the Connection Name & Type dialog displays.
10. In the Name field, type a suitable name for the connection so that you can recognize it in the Recent
Projects panel on the Open Project dialog.
11. If required, select the Encrypt Connection String checkbox. This encrypts and hides the connection
details of the database from the users that the connection string is given to.
12. If required, select the Lazy Load checkbox to not load the full project view when the model is loaded.
Instead, only the parts that are necessary to display the visible portion of the tree are loaded. This
means that a model loads faster and users can begin work sooner, but at the expense of later small
delays as Enterprise Architect loads specific portions of the model.
13. If required, select the Use WAN Optimization 180 checkbox. (To improve performance over a Wide
Area Network, remote database calls can be routed through a WAN Optimizer that compresses the
data returned from the repository, reducing transfer time.)
If you select this checkbox, complete the next two fields (see your administrator for the correct values).
Otherwise go to step 16.
14. In the Server field, type the network name or address of the optimizer server.
15. In the Port field, type the port on which the server is running on the remote machine.
16. Click on the OK button to complete the configuration.
In order to use an Oracle 9i, 10g or 11g data repository, you must connect to it in Enterprise Architect first.
You can connect using either OLE DB 153 or ODBC 156 .
Note:
Do not select Microsoft OLE DB Provider for Oracle; Enterprise Architect might not work as
expected.
5. Enter the Data Source name (the service name of the Oracle database), the database User Name and
the Password. The Location field is not required.
6. Click on the Test Connection button to confirm that the details are correct.
7. If your test succeeded, click on the OK button.
8. If your test did not succeed, revise your settings.
9. After you have clicked on the OK button, the Connection Name and Type dialog displays.
10. Give the connection a suitable name so that you can recognize it in the Recent Projects panel on the
Open Project dialog.
11. If required, select the Encrypt Connection String checkbox. This encrypts and hides the connection
details of the database from the users that the connection string is given to.
12. If required, select the Lazy Load checkbox to not load the full project view when the model is loaded.
Instead, only the parts that are necessary to display the visible portion of the tree are loaded. This
means that a model loads faster and users can begin work sooner, but at the expense of later small
delays as Enterprise Architect loads specific portions of the model.
13. If required, select the Use WAN Optimization 180 checkbox. (To improve performance over a Wide
Area Network, remote database calls can be routed through a WAN Optimizer that compresses the
data returned from the repository, reducing transfer time.)
If you select this checkbox, complete the next two fields (see your administrator for the correct values).
Otherwise go to step 16.
14. In the Server field, type the network name or address of the optimizer server.
15. In the Port field, type the port on which the server is running on the remote machine.
16. Click on the OK button to complete the configuration.
2. Click on the Add button. The Create New Data Source dialog displays, enabling you to add a new DSN.
Connect To Repository
1. In Enterprise Architect, select the File | Open Project menu option. The Open Project dialog displays.
4. Select Microsoft OLE DB Provider for ODBC Drivers from the list.
5. Click on the Next button. The Connection tab displays.
6. Select the Data Source name from the drop-down list, and type in the database User Name and
Password.
7. Click on the Test Connection button to confirm that the details are correct.
8. If your test succeeded, click on the OK button; if your test did not succeed, revise your settings.
9. After you have clicked on the OK button, Oracle prompts you for the password. Enter this. The
Connection Name and Type dialog displays.
10. Give the connection a suitable name so that you can recognize it in the Recent Projects panel on the
Open Project dialog 114 .
11. If required, select the Encrypt Connection String checkbox. This encrypts and hides the connection
details of the database from the users that the connection string is given to.
12. If required, select the Lazy Load checkbox to not load the full project view when the model is loaded.
Instead, only the parts that are necessary to display the visible portion of the tree are loaded. This
means that a model loads faster and users can begin work sooner, but at the expense of later small
delays as Enterprise Architect loads specific portions of the model.
13. If required, select the Use WAN Optimization 180 checkbox. (To improve performance over a Wide
Area Network, remote database calls can be routed through a WAN Optimizer that compresses the
data returned from the repository, reducing transfer time.)
If you select this checkbox, complete the next two fields (see your administrator for the correct values).
Otherwise go to step 16.
14. In the Server field, type the network name or address of the optimizer server.
15. In the Port field, type the port on which the server is running on the remote machine.
16. Click on the OK button to complete the configuration.
In order to use a PostgreSQL data repository, you must connect to it in Enterprise Architect first. Before
connecting to the repository, you must have set up a PostgreSQL ODBC driver 138 . To connect to a
PostgreSQL data repository in Enterprise Architect, follow the steps below:
1. In the Open Project dialog 114 , select the Connect to Server checkbox, or on the Start Page, click on
the Connect to Server link.
2. Click on the [ ... ] (Browse) button, as you normally would to browse for a project. As you have selected
the Connect to Server checkbox, the Data Link Properties dialog displays instead of the Browse
Directories dialog.
3. Select Microsoft OLE DB Provider for ODBC Drivers from the list.
4. Click on the Next button. The Connection tab displays.
5. Click on the Use data source name drop-down arrow and, from the list, select the ODBC driver you
have set up to connect to your PostgreSQL repository.
6. Click on the Test Connection button to confirm that the details are correct.
7. If your test succeeded, click on the OK button.
8. If your test did not succeed, revise your settings.
9. After you have clicked on the OK button, the Connection Name & Type dialog displays.
10. Give the connection a suitable name so that you can recognize it in the Recent Projects panel on the
Open Project dialog.
11. If required, select the Encrypt Connection String checkbox. This encrypts and hides the connection
details of the database from the users that the connection string is given to.
12. If required, select the Lazy Load checkbox to not load the full project view when the model is loaded.
Instead, only the parts that are necessary to display the visible portion of the tree are loaded. This
means that a model loads faster and users can begin work sooner, but at the expense of later small
delays as Enterprise Architect loads specific portions of the model.
13. If required, select the Use WAN Optimization 180 checkbox. (To improve performance over a Wide
Area Network, remote database calls can be routed through a WAN Optimizer that compresses the
data returned from the repository, reducing transfer time.)
If you select this checkbox, complete the next three fields (see your administrator for the correct
values). Otherwise go to step 17.
14. In the Server field, type the network name or address of the optimizer server.
15. In the Port field, type the port on which the server is running on the remote machine.
16. In the DSN field, type the data source name of the database as it appears on the remote machine.
17. Click on the OK button to complete the configuration.
In order to use an ASA data repository, you must connect to it in Enterprise Architect first. Before connecting
to the repository, you must have set up an ASA ODBC driver 141 . To connect to an ASA data repository in
Enterprise Architect, follow the steps below:
1. In the Open Project 114 dialog, select the Connect to Server checkbox or, on the Start Page, click on
the Connect to Server link.
2. Click on the [ ... ] (Browse) button, as you normally would to browse for a project. As you have selected
the Connect to Server checkbox, the Data Link Properties dialog displays instead of the browse
directories dialog.
3. Select Microsoft OLE DB Provider for ODBC Drivers from the list.
4. Click on the Next button. The Connection tab displays.
5. In the Use data source name field, click on the drop-down arrow and select the ODBC driver you set
up to connect to your ASA repository.
6. Click on the Test Connection button to confirm that the details are correct.
7. If your test succeeded, click on the OK button.
8. If your test did not succeed, revise your settings.
9. After you have clicked on the OK button, the Connection Name & Type dialog displays.
10. Give the connection a suitable name so you can recognize it in the Recent Projects panel on the Open
Project dialog.
11. If required, select the Encrypt Connection String checkbox. This encrypts and hides the connection
details of the database from the users that the connection string is given to.
12. If required, select the Lazy Load checkbox to not load the full project view when the model is loaded.
Instead, only the parts that are necessary to display the visible portion of the tree are loaded. This
means that a model loads faster and users can begin work sooner, but at the expense of later small
delays as Enterprise Architect loads specific portions of the model.
13. If required, select the Use WAN Optimization 180 checkbox. (To improve performance over a Wide
Area Network, remote database calls can be routed through a WAN Optimizer that compresses the
data returned from the repository, reducing transfer time.)
If you select this checkbox, complete the next three fields (see your administrator for the correct
values). Otherwise go to step 17.
14. In the Server field, type the network name or address of the optimizer server.
15. In the Port field, type the port on which the server is running on the remote machine.
16. In the DSN field, type the data source name of the database as it appears on the remote machine.
17. Click on the OK button to complete the configuration.
In order to use an OpenEdge data repository, you must connect to it in Enterprise Architect first; follow the
steps below:
1. In the Open Project dialog 114 , select the Connect to Server checkbox.
2. Click on the [ ... ] (Browse) button, as you normally would to browse for a project. As you have selected
Connect to Server, the Data Link Properties dialog displays instead of the Browse Directories dialog.
3. Select Microsoft OLE DB Provider for ODBC Drivers from the list.
4. Click on the Next button. The Connection tab displays.
5. In the Use data source name field, click on the drop-down arrow and select the ODBC driver you have
set up to connect to your OpenEdge repository. In the setup example 145 the driver title is
openedge_ea.
6. Enter the User name and Password.
7. Enter the initial catalog.
8. Click on the All tab, and double-click on Extended Properties.
9. In the Property Value field, edit the value to: DefaultSchema=PUB.
10. Click on the Connection tab again, and click on the Test Connection button to confirm that the details
are correct.
11. If the test succeeds, click on the OK button. If the test does not succeed, revise your settings.
12. After you have clicked on the OK button, the Logon to Progress dialog displays.
13. Check the details, and click on the OK button. The Connection Name & Type dialog displays.
14. Give the connection a suitable name so you can recognize it in the Recent Projects panel on the Open
Project dialog 114 .
15. If required, select the Encrypt Connection String checkbox. This encrypts and hides the connection
details of the database from the users that the connection string is given to.
16. If required, select the Lazy Load checkbox to not load the full project view when the model is loaded.
Instead, only the parts that are necessary to display the visible portion of the tree are loaded. This
means that a model loads faster and users can begin work sooner, but at the expense of later small
delays as Enterprise Architect loads specific portions of the model.
17. If required, select the Use WAN Optimization 180 checkbox. (To improve performance over a Wide
Area Network, remote database calls can be routed through a WAN Optimizer that compresses the
data returned from the repository, reducing transfer time.)
If you select this checkbox, complete the next three fields (see your administrator for the correct
values). Otherwise go to step 21.
18. In the Server field, type the network name or address of the optimizer server.
19. In the Port field, type the port on which the server is running on the remote machine.
20. In the DSN field, type the data source name of the database as it appears on the remote machine.
21. Click on the OK button to complete the configuration.
Note:
You cannot move a model from a source .EAP file of a version earlier than 3.5.0.
Note:
If you do not have Access 2007, you can connect by downloading the Access Database Engine from:
http://www.microsoft.com/downloads/details.aspx?FamilyID=7554F536-8C28-4598-9B72-
EF94E038C891&displaylang=en
5. At the right of the Target Project field, click on the [ ... ] (Browse) button. The Datalink Properties dialog
displays.
6. Select Microsoft Office 12.0 Access Database Engine OLE DB Provider from the list, then click on
the Next button.
7. On the Data Source Details page of the Connection dialog, type in the full path to the Access 2007 .
ACCDB file.
8. Click on the OK button to return to the Project Transfer dialog.
9. If required, select the Logfile checkbox and type in a path and filename for the data transfer log file.
10. Click on the Transfer button to begin the data transfer process.
When the process is complete, you have upsized your model to Access 2007 and can now open it from
Enterprise Architect.
Note:
You cannot move a model from a source .EAP file of a version earlier than 3.5.0.
Warning:
Before proceeding, ensure MDAC 2.6 or higher is installed on your system.
Note:
See Set up an Adaptive Server Anywhere ODBC Driver 141 .
Note:
See Create a New Adaptive Server Anywhere Repository 132 .
You now have an empty database, and can transfer an existing model into the server.
Note:
See Connect to an Adaptive Server Anywhere Data Repository 162 for more information.
Note:
You cannot move a model from a source .EAP file of a version earlier than 3.5.0.
Warning:
Before proceeding, ensure MDAC 2.6 or higher is installed on your system.
Note:
See Setup a Progress OpenEdge ODBC Driver 145 .
Note:
See Create a New Progress OpenEdge Repository 134 .
7. In the Use Data source name field, click on the drop-down arrow and select the ODBC Data Source
you configured to point to your new database.
Note:
See Connect to a Progress OpenEdge Data Repository 165 for more information.
Note:
You cannot move a model from a source .EAP file of a version earlier than 3.5.0.
Warning:
Before proceeding, ensure MDAC 2.6 or higher is installed on your system.
Note:
You cannot move a model from a source .EAP file of a version earlier than 3.5.0.
Warning:
Before proceeding, ensure MDAC 2.6 or higher is installed on your system.
Note:
See Set up a PostgreSQL ODBC Driver 138 .
Note:
See Create a New PostgreSQL Repository 129 .
You now have an empty database and can transfer an existing model into the server.
Note:
See Connect to a PostgreSQL Data Repository 160 for more information.
Note:
If an error message displays reporting '...nonstandard use of \\ in a string literal...', set the server variable in
the postgresql.conf file to:
escape_string_warning = off
When the process is complete, you have upsized your model to PostgreSQL and can now open it from
Enterprise Architect.
Note:
You cannot move a model from a source .EAP file of a version earlier than 3.5.0.
Warning:
Before proceeding, ensure MDAC 2.6 or higher is installed on your system.
Note:
See Create a New Oracle Repository 129 .
Note:
See Create a New Oracle Repository 129 .
You now have an empty database and can transfer an existing model into the server.
1. Open Enterprise Architect (click on the Cancel button on the Open Project screen to open with no
project loaded).
2. Select the Tools | Data Management | Project Transfer menu option. The Project Transfer dialog
displays:
Note:
See Connect to an Oracle Data Repository 153 for more information.
Note:
You cannot move a model from a source .EAP file of a version earlier than 3.5.0.
Warning:
Before proceeding, ensure MDAC 2.6 or higher is installed on your system.
Note:
See Create a New SQL Server Repository 126 .
Note:
See Create a New SQL Server Repository 126 .
You now have an empty database, and can transfer an existing model into the server.
1. Open Enterprise Architect (click on the Cancel button on the Open Project screen to open with no
project loaded).
2. Select the Tools | Data Management | Project Transfer menu option. The Project Transfer dialog
displays.
Note:
See Connect to a SQL Server Data Repository 150 for more information.
Note:
You cannot move a model from a source .EAP file of a version earlier than 3.5.0.
Warning:
Before proceeding, ensure MDAC 2.6 or higher is installed on your system.
Note:
There are two critical non-default settings required; see Set up a MySQL ODBC Driver 135 and ensure
you select the checkboxes in step 7.
Note:
If MyISAM table types are used (default), transactional support is disabled. To enable transactions you
must set up MySQL to use InnoDB tables and create the database tables as InnoDB type. Sparx
provide a suitable script to create InnoDB based repository tables, as well as the more common
MyISAM. These are available to registered users on the Corporate edition Resources page of the
Sparx website at www.sparxsystems.com/registered/reg_ea_corp_ed.html.
Note:
See Create a New MySQL Repository 123 .
You now have an empty database, and can transfer an existing model into the server as described below.
Note:
See Connect to a MySQL Data Repository 148 for more information.
You can download the WAN Optimizer installer from the Downloads page of the Registered Users section of
the Sparx Systems website. The Wan Optimizer Service installer package provides two installable features for
the target machine:
· WAN Optimizer Service - the installer also helps register and start the service on the target machine, and
add it to the Windows Startup folder.
· WAN Optimizer Admin Client - to enable an administrator to administer and configure the service from a
remote client.
The Optimizer has its own Sparx WAN Optimizer User Guide. See that User Guide for more information on:
· WAN Optimizer Components
· Installing and Starting the WAN Optimizer Service
· Configuring the Service
· Troubleshooting.
This section describes how Enterprise Architect enables you to develop a project across a team of people, so
that each person can access the latest data without the risk of damaging or losing that data.
Topics discussed include:
· Making project data available in a distributed environment 182
Replication
Replication 184 is a simple process that enables data interchange between .EAP based repositories and is
suitable for use in situations where many different users work independently in parallel development. Modelers
merge their changes into a Design Master only as required. It is recommended that a backup is carried out
prior to replication.
Replication cannot be performed on repositories stored on a DBMS server.
Security
User security 188 is used to limit the update access to model elements. It provides control over who in a
project can make changes to model elements.
Further Information
For more information regarding the use of Enterprise Architect with shared models and team deployment
please see the Deployment of Enterprise Architect white paper available from:
www.sparxsystems.com/downloads/whitepapers/EA_Deployment.pdf.
Note:
DBMS Repository support and User Security are available with the Corporate, Business and Software
Engineering, System Engineering and Ultimate editions of Enterprise Architect.
The most efficient way of using Enterprise Architect to manage a team development is to share a project
amongst a team of designers, developers and analysts.
By sharing a project, many people can work on the model at the same time and contribute their particular skill.
Team members can always see what the latest changes are, keeping the team informed and up to date with
the project status.
You can share an Enterprise Architect project in three ways:
1. Place the project in a shared network directory 183 .
3. Use a shared DBMS-based repository 122 (Corporate, Business and Software Engineering, System
Engineering and Ultimate editions).
Note:
Enterprise Architect accepts a number of concurrent connections without issue, although there can be
occasional 'lock-outs' when one user tries to access or update something another user is in the process of
modifying.
Network Issues
The main issues with shared network access are:
· Changes to the Project Browser (and other project views) are not automatically updated; to compensate for
this, users must occasionally reload 267 their project to see changes made by other users.
· If two or more people work on the same diagram concurrently, unexpected results can occur; it is best to
enable only one analyst to work on a diagram at a time.
· If a user's machine crashes, the network suffers an outage or a machine is turned off unexpectedly, the
project file might require repair to compensate for the sudden inconsistency; a repair 348 facility is provided
(select the Tools | Manage .EAP File | Repair .EAP File menu option) to carry out this task. This only
applies to the file-based version of Enterprise Architect; the DBMS-based version does not suffer this
problem.
Replication
Use the Replication features to enable geographically separated analysts to update and modify parts of the
model in replicas, then merge these back together at a central location. For further information see the
Replication 184 topic.
XMI Import/Export
Use the XMI-based Import/Export 288 facility to model discrete packages, export to XML and share among the
development team. This approach has several benefits over replication:
1. You can assemble a model from only the parts necessary to get your job done.
2. You can assemble a full model if required.
3. You can assemble a model from different package versions for different purposes (such as customer
visible, internal release only).
4. You can roll-back parts of a model as required.
5. There is less chance of 'collisions' between developers if each works on a discrete package.
6. The process is controllable using a version control 228 system.
Use the Import/Export context menu options 65 (below) to access this feature; they are available through
the Project | Import/Export submenu.
The Controlled Package 293 feature can also be used to assist in the process.
Note:
XMI based import/export is UML1.3 / XMI1.1 compliant. You can also write XML based tools to manipulate
and extract information from XML files to enhance the development process.
3.4.1.4 Replication
Apart from sharing Enterprise Architect projects in real time over a network, you can also share projects using
replication.
Replication is a powerful means of sharing projects between isolated or mobile users. In this scenario a
project is converted to a design master, then replicas are made of the master. Users take the replicas away,
modify the project, then bring their replicas back to be synchronized with the master file. Replication enables
different users to work independently of one another, and to merge their changes at a later time.
Note:
To avoid difficulties in this inevitably hazardous process, please read all sections of this topic carefully.
Use Replication
To use replication, follow the steps below:
1. Convert the base project to a design master 185 using the Tools | Manage .EAP File | Make Design
Master menu option.
2. Create replicas 185 from the design master using the Tools | Manage .EAP File | Create New Replica
menu option.
3. Take the replica away and work on it as required, then bring it back for synchronization with the design
master.
4. Synchronize the replicas 186 . During synchronization, all changes to both the master and the replica are
propagated in both directions, so at the end they both contain the same information.
Note:
In the Corporate, Business and Software Engineering, System Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Manage Replicas 198 permission to create a
replica.
Notes:
· In the Corporate, Business and Software Engineering, System Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Manage Replicas 198 permission to synchronize
a replica.
· Information is copied both ways, including deletes, updates and inserts.
Synchronize a Replica
To synchronize a replica and a design master, follow the steps below:
1. Open the design master project file.
2. Select the Tools | Manage .EAP File | Synchronize Replicas menu option.
3. Locate and select the required replica to merge the open project and the replica.
Note:
When you synchronize, both projects end up containing identical information.
Change Collisions
Note that if two or more people work on the same element (or package or diagram) then the replication engine
has problems in resolving which change is the master. To avoid this, always work on separate areas in the
model when you are using replicas. You can also use the Tools | Manage .EAP File | Resolve Replication
Conflicts 187 menu option.
Remove Replication
To remove replication, follow the steps below:
1. If a repository is not open, the menu option for removing replication is not enabled. A temporary
repository (not the one having replication removed) must be open at the time. Ensure you have a
repository open at the time of creation.
2. Select the Tools | Manage .EAP File | Remove Replication menu option, to open the Remove
Replication Wizard.
3. Enter the full path and file name of the project to have replication removed. Click on the Next button.
4. Enter the full path and file name of the base Enterprise Architect model (with no replication) to act as
template. Click on the Next button.
5. Enter the full path and required file name for the output file. Click on the Next button.
6. Select whether to have a log file created, and enter a file name for the log file.
7. Click on the Run button to begin removing replication. Enterprise Architect creates a new project
containing all the model information.
Your model has now had replication removed, and should be considerably smaller.
Warning:
Upgrading Replicas takes special care!
Changes to the database design in a replica set can ONLY be done to the design master. Next time the
replicas are synchronized 186 with the master, the design changes are propagated through to the replicas.
Trying to update a replica first at best does nothing, and at worst causes the update of the master to fail.
One other strategy is to remove 186 replication from a copy of the replica set, upgrade that project and convert
it into a new design master from which new replicas are created.
Notes:
· User security is not enabled by default in Enterprise Architect; you must enable it 189 first.
· For a number of operations in Enterprise Architect, if security is enabled a user must have the appropriate
user or group access permission to perform the operation. However, if security is not enabled, the user
does not have to have access permissions. See the List of Available Permissions 198 topic.
3. In the Enter authorization key field, type the authorization key from the Sparx Systems website.
4. If required, select the Automatically apply Exclusive Edit Locks to diagrams checkbox.
Note:
In standard (User/Group Locking) security mode 190 , this option blocks multiple users from
simultaneously attempting to modify the same diagram. As a user modifies a diagram, Enterprise
Architect automatically applies a User Lock to the diagram, preventing any other user from modifying it.
It is creating difference between the database and buffer versions of the diagram that triggers the
temporary lock, and elimination of difference that releases the lock. Therefore, Enterprise Architect
releases the lock when:
· The user saves the changes to the diagram, with the Save icon or keyboard keys
· The user undoes the last remaining action in the Undo list
· The user saves or discards changes via the system prompt when they close the diagram.
If the diagram already has a User Lock or Group Lock that does not exclude the current user, this lock
is set aside and saved when the temporary User Lock is applied. When the temporary User Lock is
released, the pre-existing lock is restored.
The option is ignored in Require User Lock security mode.
5. Click on the OK button. Security is enabled, and an Admin user and user group are created with full
permissions (all access rights listed in List of Available Permissions 198 ) and a password of password.
6. Select the Project | Security | Login as Another User menu option, and log in as Admin with the
initial password of password.
Note:
To change the Admin password, see the Change Password 202 topic.
Note:
Once security has been enabled, you must have the Security - Enable/Disable 198 access right to
turn it off. The initial administrator automatically has this access right.
8. To disable security, click on the Enable Security menu option, and again type the authorization key in
the Authorization dialog. Click on the OK button. Security is disabled.
Notes:
· The system prompts you to log off the project and log on again, but this is not strictly necessary.
· To re-enable security, follow the procedure above, but be aware that any changes you have made to
the admin user (password and reduced access rights) are reset to password and full access.
· The Automatically apply Exclusive Edit Locks to diagrams option is not displayed when
disabling security. Therefore, to toggle the setting whilst security is enabled you must disable
security and re-enable it. Security settings (users, groups and permissions) and locks on elements,
are NOT affected by this action.
Notes:
· When you add new elements in Mode 1 (Require User Lock to Edit deselected, elements editable by
default), no user lock is created automatically for the newly created element.
· When you add new elements in Mode 2 (Require User Lock to Edit selected, elements locked by
default), a user lock is created on the new element to enable instant editing.
Note:
You must have Security - Manage Users 198 permission to maintain users, and Change Password 198
permission to change the password of the current user; the initial Admin administrator automatically has
these permissions.
Set Up a User
To set up a user for your model, follow the steps below:
1. Select the Project | Security | Manage Users menu option. The Security Users dialog displays.
2. You can use the Security Users dialog to set up new users by providing their name and other details.
You can also import user IDs from a Windows Active Directory 192 , assign User IDs to groups 194 , set
up Single Permissions 195 or View All 196 permissions for the currently selected user.
3. To identify a new user on this dialog, click on the New button and type in the user's login ID, first name
and last name. If required, also provide the user's department name.
4. To set the user's password, click on the Change Password button. The Change Password dialog
displays.
5. In the New password field, type the user's password. This must be 12 characters or less in length.
6. In the Retype new field, type the user's password again, for confirmation.
7. Click on the OK button.
8. A 'Password Changed' message displays. Click on the OK button.
9. When you have entered the details for the user, click on the Save button. Either click on the New button
to add another user, or the Close button to exit the Security Users dialog.
Notes:
· You can transport the user definitions between models, using the Export Reference Data 223 and Import
Reference Data 225 options on the Tools menu.
· If you select the Accept Windows Authentication checkbox, when a user opens the model Enterprise
Architect checks the users database for their Windows ID and, if it matches, automatically logs the user in
without prompting for a password.
· The Accept Windows Authentication checkbox enables the Import button, which you can select to
import user IDs from a Windows Active Directory.
· As a security measure, the Accept Windows Authentication checkbox is automatically deselected if the
project .eap file is moved to a different location. Once the file has been relocated, you can select the
checkbox again to apply Windows authentication from the new database.
2. On the Import Users dialog, click on the down arrow in the Security Group field and select the
appropriate security group for the imported user IDs.
3. Click on the Add button. The Select Users screen displays.
4. Click on the Object Types button, and on the Object Types dialog select the checkbox for the type of
object to import from the Active Directory. Click on the OK button to return to the Select Users dialog.
5. Click on the Locations button, and on the Locations dialog browse for and select the checkbox for the
location to import from within the Active Directory. Click on the OK button to return to the Select Users
dialog.
6. In the Enter the object names to select field, either:
· type in the user IDs individually (click on the examples link to see examples of the correct formats)
or
· click on the Advance button to search for IDs; the Select Users dialog redisplays with a Common
Queries tab.
7. In the Name and Description fields, type any characters or text that helps identify the IDs you are
searching for. Click on the drop-down arrow of the Starts with field and select the appropriate qualifier.
8. If required, select the Disabled accounts or Non-expiring password checkboxes, and/or select a
value in the Days since last logon field, to further filter the IDs to search for.
9. Click on the Find Now button to initiate the search, and to display a list of IDs in the bottom panel of the
dialog. You can vary the types of information shown here by clicking on the Columns button and
selecting the column headings to display.
10. When you have identified the IDs to import, click on a required ID (or press [Ctrl] or [Shift] while you
click to select several) and click on the OK button. The Select Users dialog redisplays, with the selected
ID or IDs listed in the Enter the object names to select field.
11. Click on the OK button to redisplay the Import Users dialog with the selected users' names listed in the
Users panel.
12. Click on the Import button to add the user IDs to the Security Users dialog. Click on a user ID to
populate the dialog fields with the user ID details, and set group permissions 197 as required.
Notes:
· You must have Security - Manage Users 198 permission to assign users to groups; the initial Admin
administrator automatically has this permission.
· To create new user groups, see the Maintain Groups 197 topic.
· You can transport these user groups between models, using the Export Reference Data 223 and Import
Reference Data 225 options on the Tools menu.
Note:
You must have Security - Manage Users 198 permission to assign permissions to users; the initial Admin
administrator automatically has this permission.
3. Select the checkbox against each specific permission to apply to this user. Click on the Select All
button to select all permissions for the user, or click on the Deselect All button to clear all selected
permissions.
4. Click on the OK button to assign the selected permissions to the user.
Notes:
· A user's total permissions are those granted by Group Membership plus those granted by specific
permission assignment.
· You can transport these user permissions between models, using the Export Reference Data 223 and
Import Reference Data 225 options on the Tools menu.
Notes:
· You must have Security - Manage Users 198 permission to manage user groups; the initial Admin
administrator automatically has this permission.
· You do not define groups as group logins with passwords. If you intend to use a group login, you can
define a single-user login and password 191 that all group members use (that is, Enterprise Architect allows
multiple logins under one user ID).
2. In the Group Name and Description fields, type the security group name and a description of the
group.
3. Click on the Save button.
Note:
You can transport these security group definitions between models, using the Export Reference Data 223
and Import Reference Data 225 options on the Tools menu.
3. Select the checkbox against each required permission. Click on the Select All button to select all
permissions for the user, or click on the Deselect All button to clear all selected permissions.
4. Click on the OK button to assign the permissions. All of the users assigned to this group share in this
set of permissions.
Note:
You can transport these group permission definitions between models, using the Export Reference Data 223
and Import Reference Data 225 options on the Tools menu.
Note:
Some permissions take precedence over others. For example, if you set Use Version Control permission for
a user, that user can modify model elements on import even if they do not have Update Element permission.
Audit Settings Change the audit settings in the Audit Settings 271 dialog.
Audit View Enable auditing and display data in the Audit View 276 and Audit History 278
tab.
Baselines - Restore Merge data 279 into the project model from a Baseline or XML file.
Change Password Change your own password 202 or (Administrator) another user's password.
Configure Resources Create and manage Resources 667 window items: RTF templates, patterns,
profiles, favorites.
Configure Version Control Set up version control options 234 for the current model.
Generate Documents Generate RTF 1569 and HTML 1647 documents from model packages.
Generate Source Code and Generate source code 1308 and DDL 1367 from a model element. Synchronize
DDL 1327 code against model elements if it already exists.
Manage Diagrams Create 422 new diagrams, copy existing 436 and delete 434 diagrams. Also
save a diagram as a UML Pattern 902 .
Manage Project Information Update and manage resources 313 , metrics and risks.
Reverse Engineer from DDL Reverse engineer 1328 from source code or ODBC, and synchronize model
and Source Code elements against code.
Security - Manage Users Maintain users 191 , groups 194 and assigned permissions 195 .
Spell Check Spell check 1552 package and set spell check language.
Update Diagrams Update diagram appearance, properties 423 and layout, including the Page
Setup 455 dialog 455 .
Update Element Save model changes (including delete) for elements 522 , packages 387 ,
and relationships 609 .
Use Version Control Check files in and out 261 using version control.
Notes:
· You must have Security - Manage Locks 198 permission to view and delete user locks; the initial Admin
administrator automatically has this permission.
· If an element is locked, connectors attached to it are also locked. To unlock the connector, you must
unlock the element. However, under certain circumstances you can add new connectors to a locked
element 204 .
Delete a Lock
To view locks and, if necessary, delete them, follow the steps below:
1. Select the Project | Security | Manage Locks menu option. The Active Locks dialog displays.
2. In the View Locks For panel, click on the radio button for the type of lock to view: All, Groups Only or
Users Only. Locks of the appropriate type are listed in the Active Locks panel. If you want to display the
resulting information in a more readable layout, you can resize the dialog and its columns.
3. To remove a lock, click on it and click on the Unlock Selected button.
4. When finished, click on the Close button to close the dialog.
Users of SQL Server or Oracle repositories have the option of encrypting the password used to set up the
connection between Enterprise Architect and the repository.
The Enterprise Architect user does not have the real password, thereby preventing them from accessing the
repository using other tools such as Query Analyzer or SQLPlus. Once security is enabled, the administrator
must log on to access the dialog to create encrypted passwords.
To encrypt a password, follow the steps below:
1. Select the Project | Security | Encrypt Password menu option. The following dialog displays:
2. In the example above, the password password123 is used to access the repository.
3. To connect Enterprise Architect to the repository, the user enters the encrypted password prefixed with
$$, so the encrypted password becomes $$qcvtyrsf435.
For more information relating to connecting to Oracle and SQL Server, see the Connect to Oracle Data
Repository 153 and Connect to SQL Server Data Repository 150 topics respectively.
Notes:
· Do not use the Test Connection button as it can cause an error with encrypted passwords.
· For SQL Server repositories, you must enter the Initial Catalog details from the All tab of the Data Link
Properties dialog.
Note:
A user must have Change Password 198 permission to change a password; the initial Admin administrator
automatically has this permission.
User Change
If security is set and you want to change your own password, follow the steps below:
1. Select the Project | Security | Change Password menu option. The Change Password dialog displays.
6. A 'Password Changed' message displays. Click on the OK button to clear the message.
Your new password is effective next time you log in.
Administrator Change
To set or change any user's password, follow the steps below:
1. Select the Project | Security | Manage Users menu option. The Security Users dialog displays.
2. Click on the user name in the Users: panel, to display the user details in the dialog fields.
3. Click on the Change Password button. The Change Password dialog displays.
4. In the New password field, type the user's password; this must be 12 characters or less in length.
Note:
You do not have to enter the user's current password, as they might have forgotten it and therefore it is
possible that nobody can provide that value.
5. In the Retype new field, type the user's password again, for confirmation.
6. Click on the OK button.
7. A 'Password Changed' message displays. Click on the OK button.
If the item is already locked, only the appropriate lock option and No lock are available. You have to release
the lock in order to set a different type of lock.
Under the rigorous security policy, a different dialog displays. See the Apply a User Lock 205 topic.
If a diagram is locked and you select an object on it, the object border displays in red. This indicates that you
cannot change the object.
You can lock all the contents of a package (and optionally all contents in child packages) in one step, using
the Lock Package function.
The locks are automatically applied to elements and to diagrams, as if they had been individually set or
cleared. Lock types and details are the same as for locking a single element 204 .
Lock a Package
To lock a package, follow the steps below:
1. Deselect the Project | Security | Require User Lock to Edit menu option.
2. In the Project Browser, right-click on the package to lock. The context menu displays.
3. Select the Lock Package menu option. The Lock/Unlock Package(s) dialog displays.
4. In the Lock Type panel, select the appropriate radio button for the lock to apply.
5. As required, select the checkboxes to lock elements and/or diagrams, and to process child packages
(that is, lock the whole branch).
6. Click on the OK button to apply the lock.
Select the appropriate radio button to apply or release a user lock on the selected item.
Note:
For a package, you can elect to also lock all child packages at the same time. If any elements in the package
tree are locked by other users, a list of elements that couldn't be locked displays at the end of the process.
· Blue exclamation mark - the current user has applied a user lock and can edit the item; no other user can
edit the item
· Red exclamation mark - another user has applied a user lock, and the current user cannot edit the item.
If you are using the standard 190 security mode:
· No marker - there is no lock, the item is editable, but any user can now apply a user or group lock 205
· Blue exclamation mark - the item has a lock set by the current user or a group having the current user as a
member, and the user can edit the item
· Red exclamation mark - the item has a lock set by another user, or a group of which the current user is not
a member; the current user cannot edit the item.
If another user has locked an item, you can identify who has locked it 207 .
Note:
If a diagram is locked and you select an object on it, the object border displays in red. This indicates that you
cannot change the object.
A message box displays showing which group or user currently holds the lock on that item.
In the My Locks dialog you can select one or more locks and delete them (that is, unlock the object) by
clicking on the Unlock Selected button.
review Posts. This tab has a status bar that shows the item author's name, the date and time the item was
created, and the date and time the item was last modified.
· The linked objects panel, located at the bottom of the Team Review tab, is used to associate model
elements 216 , diagrams, external files and other postings, with a review posting.
You can create text to explain Categories and Topics, and you can create and respond to Posts and replies.
To display or edit the text on the Team Review tab, click on the item name in the Team Review window.
Using the Search icon in the Team Review toolbar, you can also search for text strings in the item titles 217 , to
enable you to locate posts on a specific topic.
As well as linking elements and diagrams to a Post, you can also add resources 217 to a Category, Topic or
Post. Such resources, which include diagram images and XMI files of packages, are held in a Resources
folder under the selected Team Review item.
The icons beside the review items have the following meanings:
Post read
Post unread
Reply read
Reply unread
Topic read
Topic unread
Option Use to
New Category Add a new Category 211 , new Topic 212 or new Post 213 to the Team Review.
New Topic
Alternatively, for a Topic or Post, click on the New icon in the window toolbar.
New Post
New Category From Add a new Category 211 , new Topic 212 or new Post 213 , based on a defined
Template template.
New Topic from
Template
New Post from Template
Copy Path to Clipboard Copy the path 218 of the currently-selected item to the clipboard.
Show Contents Display the description or text of the selected item in the Team Review window,
if the Team Review tab is not yet open.
Share Resource (If anything other than a Resources 217 folder is selected.)
Option Use to
This is a useful option for transferring relevant packages from the Team Review
of one model into another model.
Refresh Category 'xyz' Refresh the currently-open Category, Topic or Post, getting new replies, Posts
Refresh Topic 'xyz' and Topics that other users might have created. However, if you open another
Refresh Post 'xyz' Category, Topic or Post the Team Review always displays the latest information
from the database.
Alternatively, click on the Refresh icon in the window toolbar.
Reload Current Reload the entire Team Review connection, getting new Categories, Posts and
Connection Topics.
Review Status Assign or clear a status marker against the selected Category, Topic or Post.
You can mark the item as:
· Awaiting Approval
· Approved
· Rejected
Or clear the marker (None).
Option Use to
Connections... Access other Team Reviews 218 from other Enterprise Architect models or
models located on servers.
Alternatively, click on the drop-down arrow in the Connection Options field in
the window toolbar, and select one of the listed models. The <Configure
Connections> option enables you to add and connect to additional Team
Reviews.
Delete Category <xyz> Delete 215 this Category, Topic, Post or reply and all sub-topics and sub-posts,
Delete Topic <xyz> or delete the resource attached to the item.
Delete Post <xyz>
Delete Resource <xyz>
All items as Unread Mark the entire contents of the Team Review as unread 209 .
Branch as Read Mark this item and all its contents as read.
Branch as Unread Mark this item and all its contents as unread.
1. Right-click on a blank area in the Team Review window and select the New Category context menu 209
option. A new Category icon displays in the hierarchy.
2. Type the name of the Category in the field just after the icon, and click off the name. The Category
description is displayed in the Team Review tab. Type the appropriate Category description as required.
Alternatively:
1. Right-click on a blank area in the Team Review window and select the New Category from template
context menu 209 option. A new Category icon displays in the hierarchy.
2. Type the name of the Category in the field just after the icon, and click off the name. The Create New
Category dialog displays.
3. Click on the Copy template drop-down arrow and select a predefined template for the Category
description.
4. Click on the OK button.
5. The Category description is displayed in the Team Review tab. Amend the Category description within
the template, as required.
The Category is now available to add new topics 212 .
2. Type the name of the Topic in the field just after the icon, and click off the name. The Topic description
is displayed in the Team Review tab. Type the appropriate Topic description as required.
Alternatively:
1. Right-click on the appropriate Category name in the Team Review window and select the New Topic
from template context menu 209 option. A new Topic icon displays in the hierarchy.
2. Type the name of the Topic in the field just after the icon, and click off the name. The Create New Topic
dialog displays.
3. Click on the Copy template drop-down arrow and select a predefined template for the Topic
description.
4. Click on the OK button.
5. The Topic description is displayed in the Team Review tab. Amend the Topic description within the
template, as required.
The topic is now available for you or any other user to create Posts 213 concerning the Topic, in the Team
Review window.
Blank Post
To create a blank message into which you can type text exactly as you require, follow the steps below:
1. Either:
· Right-click on the appropriate Topic name in the Team Review window and select the New Post
context menu 209 option, or
· Click on the Topic name and on the New icon in the Team Review toolbar, or
· Click on the Topic name and press [Ctrl]+[N].
A new Post icon displays in the hierarchy.
2. Type the name of the Post in the field just after the icon, and click off the name. The Post text is
displayed in the Team Review tab.
3. Click on the Copy template drop-down arrow and select a predefined template for the Post contents.
4. Click on the OK button.
5. The template structure is displayed in the Team Review tab.
· Click on the Post name and on the New icon in the Team Review toolbar, or
· Click on the Post name and press [Ctrl]+[N].
A 'Re:<Postname>' entry displays in the Team Review hierarchy, underneath the Post you are replying
to, and the cursor becomes active in the Team Review tab to enable you to create and edit 215 your
response.
2. Type in, format and save the contents of the reply.
Alternatively:
1. Open a file browser and locate the required file.
2. Drag the file name onto the Post to which you are replying. A 'Re:<Postname>' entry displays in the
Team Review window underneath the Post, and the body of the reply is created in the Team Review
tab. A link to the source file is created at the start of the message.
3. You can create and edit text around the file link, and add further links if required.
You can also create links to 216 elements and diagrams in the Project Browser, Model Search 1231 dialog,
Model Views 1222 window and Element List 1255 , or you can add related Team Review Categories, Topics or
Posts. You can also insert other links to external files, either in the text of the Post or in the links panel.
Other users can reply to the Post and to your response.
A confirmation dialog displays. Click on the Yes button; the item and any dependent items are removed from
the Team Review.
The editor provides a set of standard functions that you access by right-clicking on the text, to display a
hierarchy of context menus. The following topics provide assistance on using the Team Review Editor.
· Scroll Through Text 1588
· File and Print Options 1588
· Cut and Paste Options 1589
· Image and Object Imports 1591
· Character Formatting 1592
· Paragraph Formatting 1593
When you have completed your editing, select the File | Save menu option and then click on another item in
the Team Review window to exit the message.
The text is saved in the Team Review item. To display the text in the Team Review tab, click on the item once.
To access the navigation options of each object in the linked elements section, right-click on the object to
display the navigation context menu. The options are outlined in the table below.
Option Use to
Find in all Diagrams Open the diagram in which the element is used, or display a list of several diagrams
in which the element has been used.
Delete Link Delete the association between the message and the object.
You create the Resources folder by creating a resource underneath the selected Category, Topic or Post.
Similarly, you delete the Resources folder by deleting the last resource within it. Having added a resource, you
can reimport the package XMI files to the model or display the diagram images
All Team Review resource management tasks are performed using options on the Team Review context
menu 209 .
1. In the Team Review window toolbar, click on the Search icon ( ). The search panel displays
underneath the toolbar.
Toolbar
To switch to another Team Review via the toolbar, follow the steps below:
1. Click on the drop-down arrow in the Connection Options field in the toolbar.
2. Select the appropriate model name from the list to connect to the Team Review for that model.
3. If the required model is not listed, click on the <Configure Connections> option. The Team Review
Server Connections dialog displays.
4. Go to step 4 219 of the procedure below.
1. Right-click anywhere in the Team Review window and select the Connections context menu option.
The Team Review Server Connections dialog displays.
2. In the list in the Connections panel, select the check box against the appropriate model name to
connect to the Team Review for that model.
3. Click on the Open button. The connection now switches to the Team Review in the selected model.
4. If the required model is not listed, select the appropriate Connection Type radio button and click on the
New button.
· For a .eap file, a browser dialog displays through which you can search for and select the
appropriate model.
· For a model in a DBMS data repository, the Microsoft Data Link dialogs display, which enable you to
locate and connect to the repository.
5. When you have selected and opened or connected to the required Enterprise Architect model, and
returned to the Team Review Server Connections dialog, the model name displays in the Connection
Name field and in the Connections panel.
6. Select the check box against the model name and click on the Open button to connect to the Team
Review for that model.
The Team Review now shows the discussion in the selected model.
For further details of the fields and buttons on the Team Review Server Connections dialog, refer to the table
below.
Option Use To
Connection Type Specify the type of Enterprise Architect model: a local .EAP file (as above) or a
model on a remote server 147 .
Delete Delete the currently selected connection from the Connections list.
Connections List all Team Review connections created. Click on the checkbox against the
required connection.
Open Switch the Team Review to the one selected in the Connections list.
Note:
In the Corporate, Business and Software Engineering, System Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Admin Workflow 198 permission to develop and
manage workflow scripts.
Project Governance
Good corporate governance relies on well written and transparent project development guidelines and
company policy. A project might be compromised if the appropriate policies and procedures are poorly
understood and not followed correctly - effective governance can be hampered by human error and the costs
of recovering from the inadequate compliance of developers.
Company policy and procedures can be integrated with the development process to manage work flows,
determine access rights, extend role based security permissions and respond to property change events. This
approach reduces compliance costs, enhances collaborative development and gives you confidence that
projects are being developed correctly the first time around. Development teams can adhere to best practice
guidelines that govern model validation, change management, access controls and general development
principles.
Project administrators can write scripts to manage the way users interact with a model, such as managing
security, staff compliance and model access, and monitoring changes made by users. Administrators can
also use workflow scripts to control a user's capacity to change a model element, taking into account factors
such as access rights, group membership and even the value of a proposed change.
When a model is launched, the Workflow Engine is initialized with the current user and group memberships.
This information determines who can access and modify parts of a given model. When a selected event
occurs, the script engine is initialized with values including the author's name and access rights, and the
element name and version details. The workflow script implements rules governing change management,
access control and model validation. If a user attempts to make changes in violation of company policy, the
script denies the update. The user is notified why the validation failed and the activity is logged. These
reminders help to reinforce company policy, reduce human error and provide management with valuable
project feedback.
Note:
If you make changes to a workflow script listed in the Scripter window, click on the Refresh Scripts button in
the Scripter window toolbar to reload the script with the changes.
PreAllowPhaseUpdate(OldVal
ue, NewValue)
Determine what information is Semi-colon separated list of additional
required to validate this change. data required in order to validate this
PreAllowStatusUpdate(OldVal
change. See the list of supported data
ue, NewValue) types 221 .
PreAllowTagUpdate(TagName
, OldValue, NewValue)
PreAllowVersionUpdate(OldV
alue, NewValue)
IsMemberOf(GroupName) Check group membership of True if the current user is a member of the
the current user. group with the specified name.
WorkflowContext
This object provides information about the object currently in context. It is filled by Enterprise Architect before
any searches except GetWorkflowTasks 221 are run. It has the following properties:
· MetaType - the type of the current object, either an Enterprise Architect core type or a profile-specified
metatype
· Name - as found in the object Properties dialog
· Status - as found in the object Properties dialog
· Phase - as found in the object Properties dialog
· Version - as found in the object Properties dialog
· GUID - the GUID of the object
· Stereotypes - an array of strings for the stereotypes applied to this object
· Tags - an array of Tagged Values, providing:
· Name - the Tagged Value name
· Value - the Tagged Value value
· Tests - an array of tests; only filled during an Allow* call after the PreAllow* call has specified that tests are
required. Provides the following details, as found in the Testing 1537 window:
· Name
· Status
· RunBy
· CheckedBy
· TestClass
· TestType
The WorkflowContext object also calls the following function:
TagValue(TagName) Get the value from a named Returns the value of the first Tagged Value
tag. with that name, or an empty string if no
Tagged Value with that name exists.
WorkflowSearches
Provides an array of searches. Use Redim WorkflowSearches(x) to specify the number of searches being
provided. Each search has the following attributes:
· Name - the name of this search
· Group - the name of the group that this search should appear under in the Search combo box
· ID - the unique GUID for this search
· Tasks - the array of tasks that this search looks for; an entry describes how to find all objects required to
meet a particular task:
· Name - the name of the task, as displayed in the Search view; workflow searches are grouped by this
field by default
· Conditions - an array of conditions, all of which must be matched for an object to be included in this
task; a condition is a comparison of a single field to a value:
· Column - the name of the field
· Operator - operator types, either = (provide matching values only) or <> (provide non-matching
values only)
· Value - if this contains a comma, the string is treated as a comma separated list of values to
compare against; otherwise the string is a single value to compare against.
NewSearch(name, group, guid, Create a new search object to be The created search.
taskcount) included in WorkflowSearches.
Initializes each member.
Procedure
To export data, follow the steps below:
1. Select the Tools | Export Reference Data menu option. The Data Exporter dialog displays.
2. From the Name list, select the table to export. You can select one or more tables for a single file.
3. Click on the Export button.
4. When prompted to do so, enter a valid file name with a .XML extension.
This exports the data to the file. You can use any text or XML viewer to examine this file.
The data exported includes all instances of the data type in the project; for example, all defined cardinality
values, or all RTF Style Templates.
Note:
If there are no instances of a selected data type in the project, the export does not generate any output for
that data type in the XML file.
For information on each category of data you can export, refer to the following topics:
· ActionScript Code Templates 1302 ; entries for code templates are listed only if templates for a particular
language exist in the model. The list entry has the format <language_name>_Code_Templates.
· Automation Scripts 1660 (JavaScript, JScript and VBScript)
· Cardinality Types 665
· Constraint Status Types 656
· CSV 300 Specifications
· Defined Metric Types 320
· Defined Problem Types 660
· Diagram Matrix Profiles 444 (Model Profiles)
· Estimation - Environment Complexity Factor Values 337
· Estimation - Technical Complexity Factor Values 336
· General Constraint Types 655
· General Effort Types 319
· Import Component Types 1337
· Linked Document Templates 603
· Macro List 1344 (Preprocessor macros)
· Maintenance Types 660 (both Problem Types and Test Types)
· Model Authors 645
· Model Data Types - Code 666 and DDL 1367
· Model Images 447
· Project Clients 651
· Project Glossary 323
· Project Issues 331
2. Click on the Import File tab and on the Select File button, then select the filename to import data from.
This must be an XML file produced by the Enterprise Architect Data Exporter 223 .
3. If you have entered the name of a valid file, a list of available tables to import displays in the Select
Datasets to Import panel.
4. Click on one or more of the tables to import (press [Ctrl] or [Shift] to click on multiple tables).
5. Click on the Import button to start the process. A message displays when the import is complete.
Generally the process is quite fast.
2. If you are changing an existing configuration to import from a different .XML file, click on the Clear
button to clear the dialog fields.
3. Click on the Select File button and browse for the filename to import data from. This must be an XML
file produced by the Enterprise Architect Data Exporter 223 .
4. If you have entered the name of a valid file, a list of tables to import displays in the Datasets in File
panel.
5. If you prefer to control whether or not the automatic import takes place, select the Always prompt
before import checkbox.
6. Click on the Import button to import the reference data now, and to enable the automatic check and
import for subsequent reloads.
This section describes the tools and facilities for controlling and monitoring changes to the data in a project.
In Change Management, you configure and maintain:
· Version Control of packages
· Tracking changes
· The transfer of data between projects in similar or different databases
Tracking Changes
Enterprise Architect provides two separate but complementary facilities for tracking changes 269 to data
across the project:
· Auditing of model changes
· Baselining and differencing to capture and roll back changes
Note:
This feature is available in the Corporate, Business and Software Engineering, Systems Engineering and
Ultimate editions.
See Also
· Project Data Integrity 344
· Model Maintenance 344
· Team Development 182
· Spell Checking 1552
· Reference Data 644
· Upgrading Projects 346
Features
Version Control provides two key facilities:
· Coordinating sharing of packages between users
· Saving a history of changes to Enterprise Architect packages, including the ability to retrieve previous
versions.
See Also
· Introduction 229
· Version Control Setup 233
· Use Version Control 256
3.5.1.1 Introduction
This section discusses some factors you should consider when setting up and using version control in your
model development, including:
· System Requirements and Configuration 229
The following products are SCC-compatible and are known to successfully integrate with Enterprise
Architect:
Products that do not appear in the list should still integrate successfully with Enterprise Architect, if there is
a client available for that product that complies with the MS SCC API specification.
Configuration
Before using Enterprise Architect's version control facility, your version control software must be installed on
each machine on which it is intended to be used.
Typically there are:
· A server component that manages a version control repository, and
· Client components on the workstations that Enterprise Architect uses to communicate with the server.
A version control client must be installed on every machine where you run Enterprise Architect and want to
access your version control system. Once the version control software has been installed and configured, you
must define a Version Control Configuration within Enterprise Architect, to use your installed version control
product.
Note:
Sparx Systems strongly urge you not to manipulate version controlled package files outside of Enterprise
Architect. It is possible to leave the package files in a state that Enterprise Architect cannot recognize.
Use Description
Single Shared model Users share an Enterprise Architect model, stored in a central .EAP file or DBMS
repository. This configuration enables you to view changes to other users' packages
without explicitly having to check them out, but by simply refreshing your view of the
model.
· Version control regulates access to packages, and maintains package revision
history.
Multiple Private An Enterprise Architect model is created by a single user who configures it for
models version control. The model file is then distributed to other users, with each user
storing their own private copy of the model.
· Users update their model's packages through version control
· Version control regulates access to packages, and maintains package revision
history
· Other users' new packages are retrieved using the Get Package menu option.
Shared packages Individual users create separate Enterprise Architect models but share one or more
packages.
· Users share packages through version control.
Standard packages A company might have a standard set of packages which are broadly shared (on a
read-only basis).
· Individual users retrieve packages with the Get Package menu option.
For a discussion of how each of these arrangements might be used, see the Version Control Best Practices
for Enterprise Architect white paper.
Note:
Reference data is exported and imported as an XMI file, which contains whatever types of reference data you
want to transfer (see the list of data types in the Export Reference Data 223 topic).
It might be useful to include, in your project management processes, version-control of this XMI file through
your version control software, external to Enterprise Architect.
Version Control of nested packages 236 together with a model structure having small individual packages also
provides greater scope for multiple users to work concurrently, as individual users are locking much smaller
parts of the model.
Notes:
· Do not place your .EAP files under version control, as this creates problems for you.
· Most version control systems mark their controlled files as read only, unless they are specifically
checked-out to you.
· The .EAP file is an MS Jet database, and Enterprise Architect must be able to open this file for read/write
access when you load your model. (Enterprise Architect displays an error message and fails to load the
model if it is read-only.)
Note:
The name of the version control configuration must be the same across all machines. That is, all version
control access to a given Enterprise Architect package must be through version control configurations with
the same name, across all models and all users. (It is possible to use multiple version control configurations
within the same model, so different packages can still use different version control configurations within the
same model, as long as any given package is always accessed via the same version control configuration.)
The easiest way to perform step 4, (throughout the team), is to have one user set up version control on the
model and then share that model with the rest of the team.
· In Shared Model deployment, all users connect to a single instance of the model database, so the model is
shared automatically.
· In Private Model deployment, it is easiest to distribute copies of the original model (after version control has
been set up) to all other members of the team.
Whenever you open a model (Private or Shared 230 ) that uses a version control configuration that is not yet
defined on your workstation, Enterprise Architect prompts you to complete the definition for that configuration.
This typically means specifying the local working copy directory and maybe choosing the version control
project associated with this Enterprise Architect project.
Once this has been done, the version controlled packages that already exist in the model are ready for use.
This package is controlled 293 and is represented by an XMI file on disk. Version
control either is not being used or is not available. You can edit the package.
This package is version controlled and checked out 261 to you, therefore you can
edit the package.
This package is version controlled and not checked out to you, therefore you cannot
edit the package (unless you check the package out).
This package is version controlled, but you checked it out whilst not connected to
the version control 268 server. You can edit the package but there could be version
conflicts when you check the package in again.
For example, below, CVSOO and CVSPackage are configured for version control. CVSOO is checked out to
you, and CVSPackage is not.
Note:
If you are using the Corporate, Business and Software Engineering, System Engineering or Ultimate editions
of Enterprise Architect with security enabled, you must also set up permissions to configure and use version
control. See the List of Available Permissions 199 topic for further information.
See Also
· Version Control with SCC 236
· Version Control with CVS 240
Note:
In the Corporate, Business and Software Engineering, System Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Configure Version Control 198 permission to set
up version control options for the current model.
To begin defining a new version control configuration, follow the steps below:
1. Click on the New button.
2. In the Unique ID field, type a suitable name.
3. Against the Type field, click on the radio button for the version control product to connect to.
At this point, the middle section of the dialog changes to display a collection of fields relating to the type
of Version Control Configuration you are defining. Go to the relevant topic below:
· Version Control with SCC 236
· Version Control with CVS 240
· Version Control with Subversion 247
· Version Control with TFS 253
To import a previously defined configuration for use in the current model, follow the steps below:
See Also
· Version Control Nested Packages 236
6. Locate and click on the local folder in which to keep local working copies of the XML files to be stored in
the Version Control repository.
7. Click on the OK button. The Select SCC Provider dialog displays.
Note:
All users of the shared database must specify the same SCC provider.
8. Click on an SCC provider, and click on the OK button to return to the Version Control Settings dialog.
9. Click on the Save button to save the configuration you have defined.
The SCC provider is likely to prompt you for various details including the name of the project to connect
to, and perhaps the user name to use when you log in.
10. The new configuration is added to the list in the Defined Configurations panel.
Note:
A new entry is also created in the Local Paths 1343 list, with the same ID as the new version control
configuration. The Local Path entry records the Local Project path, for use in subsequent path
substitutions.
11. When you have finished defining your version control configurations, click on the Close button.
For further information on the fields on the Version Control Settings dialog, see the following table.
Field Use to
This model is Specify whether all users connect to a single shared copy of the model (for example, a
private DBMS) or each user connects to their own private copy of the model.
When unselected (for shared models), the option disables the File History - Retrieve
functionality when the selected package is checked out by another user. This prevents
modifications that might have been made by the other user from being discarded
through importing a prior revision from version control.
Save nested Set nested version controlled packages to stubs or fully expanded trees. Defaults to
version controlled selected.
packages to stubs
For a full explanation of this option, see Version Control Nested Packages 236 .
only
Unique ID Specify a configuration name that readily distinguishes this configuration from other
configurations. The unique ID is displayed as a selection in the list of Version Control
configurations a package can connect to.
You can also click on the drop-down arrow and select a previous version control
configuration, providing the configuration is not in the current model.
Local Project Path Specify the folder in which the XML files representing the packages are stored. This
folder should already exist before it is specified here.
Every PC using version control should have its own local SCC project folder, and this
should not be a shared network folder. Particularly bear this in mind if you are creating
a .EAP file that is to be shared (such as a SQL database).
Current User Read only. Shows your user name as the user currently logged into the SCC provider.
SCC Provider Read only. Shows the name of the provider specified in the database.
SCC Project Read only. Shows the project selected during the initial setup of the connection to the
SCC provider.
Note:
Sparx Systems strongly urge you not to manipulate version controlled package files outside of Enterprise
Architect. It is possible to leave the package files in a state that Enterprise Architect cannot recognize.
configuration or to choose a previously created one from the Unique ID drop-down list.
3. The existing SCC configuration is the initial value, represented by SCC-XXXXX; this number is not
especially meaningful, therefore it is recommended that the configuration be given a meaningful name.
4. You can associate the version controlled package with a previously-defined configuration by selecting
an existing configuration from the Unique ID drop-down list (if one exists).
5. After you have assigned the unique ID, click on the OK button to load the model.
Note:
To see a video demonstration of setting up a CVS repository for version control, go to
http://www.sparxsystems.com.au/resources/demos/settingupCVS/CVS_Final_1.htm.
Note:
Replace myUserID with your CVS username, replace ServerName with the name of your CVS server and
replace repositoryFolder with the path to the repository on the server.
4. Create a local CVS workspace, derived from the remote repository. An example command is:
C:\myCVSWorkSpace> cvs -d:pserver:myUserID@ServerName:/cvs checkout moduleName
Note:
The above command creates a subdirectory in your current working directory, called moduleName.
(Replace moduleName with the name of the module created by your system administrator). It creates
local copies of all files contained in the CVS module found at ServerName:/cvs.
It also creates a subdirectory beneath moduleName, called CVS. This subdirectory contains a file called
Root, that contains your CVS connection information. Enterprise Architect uses this file to obtain your
CVS user ID.
14. To specify the Working Copy path 243 value, click on the Select Path button. Select the local folder in
which to keep local working copies of the XML files to be stored in the Version Control repository.
15. Click on the OK button to return to the Version Control Settings dialog.
16. The Current User 244 field should display the user name used to log into the remote CVS repository. If
this does not happen, it indicates that Enterprise Architect cannot extract the user name from the file .
..\WorkingCopyPath\CVS\Root and the configuration does not work correctly.
17. If necessary, set the CVS Exe Path 244 by clicking on the Select Path... button and browsing to the file
path for the for file cvs.exe, the CVS executable.
18. Click on the Save button to save the configuration you have defined. The new configuration is added to
the list of Defined Configurations.
Note:
A new entry is also created in the Local Paths 1343 list, with the same ID as the new version control
configuration. The Local Path entry records the Local Project path, for use in subsequent path substitutions.
Options Use to
This model is Private Specify whether all users connect to a single shared copy of the model (such as
a DBMS) or each user connects to their own private copy of the model.
When unselected (for shared models), the option disables the File History -
Retrieve functionality when the selected package is checked out by another
user. This prevents modifications that might have been made by the other user
from being discarded through importing a prior revision from version control.
Save nested version Set nested version controlled packages to stubs or fully expanded trees.
controlled packages to Defaults to selected.
stubs only For a full explanation of this option, see the Version Control Nested Packages
236 topic.
Working Copy path Specify the folder where the XML files representing the packages are stored.
This folder should already exist before it is specified here.
Options Use to
Current User Specify the CVS user name associated with all CVS commands that are issued.
This name is used by Enterprise Architect, to determine who has a package
'checked-out'.
CVS EXE Path Specify the full path of the CVS client's executable file.
Note:
Sparx Systems strongly urge you not to manipulate version controlled package files outside of Enterprise
Architect. It is possible to leave the package files in a state that Enterprise Architect cannot recognize.
6. Click on the Select Path... button to the right of the Working Copy path field and browse for and select
the local folder in which to keep local working copies of the XML files to be stored in the Version Control
repository.
7. If necessary, click on the Select Path... button to the right of the CVS Exe Path field and browse to the
file path for the file cvs.exe, the CVS executable.
8. Click on the Save button to save the configuration you have defined.
9. The new configuration is added to the list in the Defined Configurations panel.
Note:
A new entry is also created in the Local Paths 1343 list, with the same ID as the new version control
configuration. The Local Path entry records the Local Project path, for use in subsequent path substitutions.
For further information on the fields in the Version Control Settings dialog, see the following table.
Field Use to
This model is Private Specify whether all users connect to a single shared copy of the model (e.g. a
DBMS) or each user connects to their own private copy of the model.
When unselected (for shared models), the option disables the File History -
Retrieve functionality when the selected package is checked out by another
user. This prevents modifications that might have been made by the other user
from being discarded through importing a prior revision from version control.
Save nested version Set nested version controlled packages to stubs or fully expanded trees.
controlled packages to Defaults to selected.
stubs only
For a full explanation of this option, see Version Control Nested Packages 236 .
Unique ID Specify a name that readily distinguishes the configuration from other
configurations. The Unique ID is displayed as a selection in the list of Version
Control configurations a package can connect to. In addition it is possible to
select a previous version control configuration from the drop-down menu
providing the configuration is not in use in the current model.
Working Copy path The folder where the XML files representing the packages are stored. This folder
should already exist before it is specified here.
Every version control configuration you define in Enterprise Architect, should
have its own local Working Copy Folder in which to store working copies of the
XMI package files - this should not be a shared network folder. Particularly bear
this in mind if you are creating an Enterprise Architect project that is to be
shared (for example, a SQL database).
Field Use to
Current User The CVS user name associated with all CVS commands that are issued. This
name is used by Enterprise Architect, to determine who has a package
'checked-out'.
CVS EXE Path The full path name of the CVS client's executable file.
Note:
Sparx Systems strongly urge you not to manipulate version controlled package files outside of Enterprise
Architect. It is possible to leave the package files in a state that Enterprise Architect cannot recognize.
Note:
To see a video demonstration of setting up a Subversion repository for version control, go to
http://www.sparxsystems.com.au/resources/demos/settingupsubversion/svn_final.htm.
Before Enterprise Architect can be used with Subversion, the appropriate software must be installed by a
Subversion administrator. Ask your system administrator to obtain and install the Subversion server and client
applications.
Enterprise Architect must use the Subversion command line client to communicate with the Subversion server;
it cannot use other clients such as TortoiseSVN 252 .
Important:
Before you attempt to use Subversion through Enterprise Architect, you must first verify that you can use the
Subversion command line client to access and operate on files within the working copy folder that Enterprise
Architect will use. Your environment must be set up such that you can perform these operations without ever
being prompted for user ID or password. For further information, please see the topic Caching Client
Credentials in the official Subversion documentation.
The official Subversion documentation can be found at: http://www.svnbook.red-bean.com/en/1.4/index.html,
while executable files for Subversion can be obtained from: http://www.subversion.tigris.org/
project_packages.html#binary-packages.
You require the Windows executables for your client machines running Enterprise Architect in the windows
environment. If you plan to run your Subversion server on a non-windows platform, you must download a
binary suitable for that platform as well.
Chapter 6 in the Subversion documentation provides guidance on how to configure the server for different
methods of access by the client. Secure connection methods are also covered in this chapter.
Your administrator should set up user IDs and passwords for every person who is to access the repository.
Your administrator should then provide all users with the path to the repository, and ensure that they can all
connect.
Before users can make use of Subversion, they must create local working copies 249 from the repository by
checking-out a repository sub-tree 248 .
Steps for setting up a repository and creating a local working copy can be found at:
http://www.svnbook.red-bean.com/en/1.4/svn.basic.in-action.html#svn.advanced.reposurls.
Note:
Sparx Systems recommend that each new Enterprise Architect model being added to version control with
Subversion should have a separate repository sub-tree created for it, and users should create a new local
working copy from the sub-tree to be used with that model.
Repository URLs
Subversion repositories can be accessed using many different methods, on local disk or through various
network protocols. A repository location, however, is always a URL. The table below describes how different
URL schemas map to the available access methods.
See Also
· Configure Version Control with Subversion 250
tempDir
|
+--<EA_Model_Name>
|
+--trunk
|
+--branches
|
+--tags
Note:
After the import is finished, the original tree is not converted into a working copy. To start working, you
must still svn checkout a fresh working copy of the tree.
where <EA_Model_Name> is the directory name that you used in setting up the repository sub-tree
above.
After you have created your working copy, you should verify everything is working correctly before you attempt
to use it from within Enterprise Architect. You must be able to commit files to the repository, without being
prompted for ID or passwords.
Enterprise Architect interacts with Subversion using its command line client. Firstly, create a file in your
working copy folder then, from a command prompt, add and commit the file to the repository. Use the following
commands:
svn add <fileName>
svn commit <fileName> -m"A meaningful comment."
Now, update the file from the repository, lock the file, edit it and commit once more. Use the following
commands:
svn update <fileName>
svn lock <fileName>
Then edit and save the file using your preferred editor:
svn commit <fileName> -m"A meaningful comment."
--workdir "/home/user/.cxoffice/ea""/drive_c"
-- "/home/user/.cxoffice/ea/drive_c/batfile.bat"
Enterprise Architect uses the Subversion command line client to communicate with your Subversion server. In
order for Enterprise Architect to work successfully with Subversion, your Subversion working copy
environment must be set up such that you can issue commands to Subversion from the command line, without
ever being prompted for user input such as username or password.
By default, whenever the Subversion command-line client successfully responds to a server's authentication
challenge, it saves the credentials in the user's private runtime configuration area, which is:
· ~/.subversion/auth/ on Unix-like systems or
· %APPDATA%/Subversion/auth/ on Windows (which translates to .../drive_c/windows/profiles/crossover/Application
Data/Subversion/auth/ under CrossOver).
For this reason, Sparx Systems recommend that when you checkout a working copy from the Subversion
repository, you specify your username and password on the command line, such that your credentials are
cached from the outset. Use a Subversion command such as:
· Using a Unix-like client (run the command from the command line):
· Using a Win32 client (run the command within a batch file run under CrossOver):
It is a good idea to checkout your Subversion working copy into a folder within the WINE bottle where
Enterprise Architect is to run. In this way, the pathnames used for your version controlled package files are
much shorter.
If you intend to use the Win32 Subversion client with Enterprise Architect, you should create the local working
copy that Enterprise Architect is to use, by performing a Subversion checkout command using the Win32
client under WINE/CrossOver. Similarly, if you plan to use the Unix-like Subversion client with Enterprise
Architect, you should perform the initial checkout using that client. In this way, your user credentials are
cached in the correct location for the client that Enterprise Architect is using.
It is important to verify that your command line client for Subversion is working correctly before attempting to
connect from Enterprise Architect. For guidance on verifying your set up, see the Create a Local Working
Copy 249 topic.
The following is an example of a Windows batch file that can be used under CrossOver to run Subversion
commands. Simply uncomment the command to execute. Each command should be a single line - the '\' is
intended as a continuation character.
4. To the right of the Working Copy path field, click on the Select Path button and select the local folder
in which to keep local working copies of the XML files to be stored in the Version Control repository.
5. In the Workstation Settings panel, click on the Select Path button to specify the path for your
Subversion client executable.
6. Click on the Save button to save the configuration you have defined; the new configuration is added to
the Defined Configurations list.
Note:
A new entry is also created in the Local Paths 1343 list, with the same ID as the new version control
configuration. The Local Path entry records the Local Project path, for use in subsequent path
substitutions.
7. When you have finished defining your version control configurations, click on the Close button.
Option Use to
This model is private Specify whether all users connect to a single shared copy of the model (such as a
DBMS) or each user connects to their own private copy of the model.
When unselected (for shared models), the option disables the File History -
Retrieve functionality when the selected package is checked out by another user.
This prevents modifications that might have been made by the other user from
being discarded through importing a prior revision from version control.
Save nested version Set nested version controlled packages to stubs or fully expanded trees. Defaults
controlled packages to selected.
to stubs only For a full explanation of this option, see the Using Nested Version Control
Packages 236 topic.
Unique ID Specify a configuration name that readily distinguish this configuration from other
configurations. The Unique ID displays as a selection in the list of Version Control
configurations a package can connect to. In addition you can select a previous
version control configuration from this drop-down menu, providing the
configuration is not in the current model.
Working Copy path Specify the folder where the XML files representing the packages are stored. This
folder should already exist before it is specified here.
Every PC using Subversion version control should have its own Subversion
working copy folder in which to store working copies of the XMI package files; this
should not be a shared network folder. Particularly bear this in mind if you are
creating a .EAP file that is to be shared (for example, a SQL database).
Subversion Exe Path Specify the full path name of the Subversion client executable file.
Note:
Sparx Systems strongly urge you not to manipulate version controlled package files outside of Enterprise
Architect. It is possible to leave the package files in a state that Enterprise Architect cannot recognize.
3.5.1.2.4.6 TortoiseSVN
TortoiseSVN is a Windows shell extension for Subversion.
Enterprise Architect cannot use TortoiseSVN to communicate with the Subversion server; it must use the
Subversion command line client.
TortoiseSVN provides icon overlays in Windows Explorer that are useful as a tool for observing the status of
your Subversion controlled files. It enables you to create your repository sub-trees and check out local working
copies from within Windows Explorer using simple menu commands.
Note:
· Sparx Systems recommend that you test your local working copies, by adding and committing a dummy file
from the command prompt window.
· Manipulating Enterprise Architect's package files, using tools that are external to Enterprise Architect,
could leave those files in a state that Enterprise Architect cannot use.
Note:
To see a video demonstration of setting up a TFS project for version control, go to
http://www.sparxsystems.com.au/resources/demos/settinguptfs/TFS%20Project-Workspace%20Setup.htm.
4. Click on the Select Path... button to the right of the Working Copy path field, and select the local folder
in which to keep local working copies of the XML files to be stored in the Version Control repository.
Note:
Enterprise Architect queries TFS to retrieve the Server and Workspace names associated with this
folder, when attempting to save the configuration data.
5. In the User Name and Password fields, type values that enable access to the TFS workspace
associated with the Working Copy path specified above.
Note:
Users who automatically log in to TFS through means external to Enterprise Architect (for example,
through MS Integrated Security) can leave the User Name and Password fields blank. If the
Password field is blank, Enterprise Architect retrieves the current user's Windows username and uses
that value when determining whether a package is checked out to them or to some other user.
6. The TFS Exe Path field displays the default installation path; for example:
Note:
A new entry is also created in the Local Paths 1343 list, with the same ID as the new version control
configuration. The Local Path entry records the Local Project path, for use in subsequent path
substitutions.
9. When you have finished defining your version control configurations, click on the Close button.
This model is private Specify whether all users connect to a single shared copy of the model (such
as a DBMS) or each user connects to their own private copy of the model.
When unselected (for shared models), the option disables the File History -
Retrieve functionality when the selected package is checked out by another
user. This prevents modifications that might have been made by the other
user from being discarded through importing a prior revision from version
control.
Save nested version Set nested version controlled packages to stubs or fully expanded trees.
controlled packages to Defaults to selected.
stubs only For a full explanation of this option, see Use Nested Version Control
Packages 236 .
Working Copy Path Specify the folder where the XML files representing the packages are stored.
This folder should already exist before it is specified.
Every PC using TFS version control should have its own TFS Local Folder in
which to store working copies of the XMI package files - this should not be a
shared network folder. Particularly bear this in mind if you are creating a
.EAP file which is to be shared (for example, a SQL database).
Server Name Specify the name of the Team Foundation Server to connect to.
Workspace Name Specify the name of a pre-defined TFS workspace that you are using.
User Name Specify the user name that you use to connect to the Team Foundation
Server. The user name that you specify should give you read/write
permissions in the specified workspace.
Password Specify the password associated with the user name you specify. Enterprise
Architect stores this password, in encrypted form, as part of the version
control configuration data.
TFS Exe Path Browse to and select the full path name of the TFS command line client's
executable file.
Notes:
· Sparx Systems strongly urge you not to manipulate version controlled package files outside of Enterprise
Architect. It is possible to leave the package files in a state that Enterprise Architect cannot recognize.
· Visual Studio Integration (MDG Integration for Visual Studio 2005 or 2008) enhances TFS support by
providing access to, for example, work items and bugs within both Enterprise Architect and the MDG
Integration product.
General Notes
· The export/import facility is not fast and submitting packages containing many sub-nodes to version control
should be avoided. It is recommended version control is applied to individual packages. See the Version
Control Nested Packages 236 topic for more information.
· Replication 184 should not be combined with version controlled packages.
· Sparx Systems strongly urge you not to manipulate version controlled package files outside of Enterprise
Architect. It is possible to leave the package files in a state that Enterprise Architect cannot recognize.
Configure Current Display the Package Control Options 259 dialog, which enables you to specify
Package whether this package (and its children) is version controlled, and which version
[Ctrl]+[Alt]+[P] control configuration applies.
Version Control Settings Display the Version Control Settings dialog 234 .
Validate Package Test the validity 260 of the version control settings associated with each version
Configurations controlled package within your current model.
Re-Synch Statuses of All Resynchronize the version control status of packages 267 as recorded in your
Packages Enterprise Architect project when they are out of synchronization with the
version control status reported by your version control provider.
The function acts on all version controlled packages within the Enterprise
Architect project, updating the values recorded in the project to match the
values reported by the version control provider, without performing any XMI
import or export.
Work Offline Work independently of the version control server 268 , if it is unavailable to you.
Configure Display the Package Control Options 259 dialog which enables you to specify
[Ctrl]+[Alt]+[P] whether this package (and its children) is controlled, which file it is controlled
through, and which version control configuration to use.
Manage Baselines Create a Baseline 281 of the current package, or compare the current package
[Ctrl]+[Alt]+[B] with a previous Baseline.
Check In Branch For the selected branch of the model, (that is, the selected package and all of its
child packages) display the Select Packages to Check In 262 dialog, listing all
version controlled packages within that branch that are checked out to you. You
can then select packages in the displayed list, to be submitted for check-in.
Check Out Branch For the selected package, check out the package and recursively check out all of
its contained sub-packages 263 . Retrieves the latest version of the packages
from the central repository, overwriting the current packages. After check out, the
packages are available for editing.
Check In Submit the currently selected package to the central repository. Enterprise
Check Out Retrieve the latest version of the currently selected package from the central
repository, overwriting the current packages. After check out the packages are
available for editing.
Undo Check Out Cancel all changes you have made to the currently selected package. This
restores the model to the state it was in before the package was checked out,
leaving the select package and sub-packages locked.
Get Latest Retrieve the latest revision of the package from the repository. Available only for
packages that are checked in.
Get All Latest Retrieve the latest revision of all version controlled packages in the project. Only
retrieves packages that are checked in.
Put Latest Update the central repository with the currently selected package (which you
have checked out), while retaining checkout status on the package. This is
equivalent to checking a package in and immediately checking it back out again.
File Properties Ask the version control provider to show the version control properties associated
with the XML export file pertaining to the currently selected package. This also
identifies who has checked out the package.
File History Where the controlling package has been configured by an SCC provider, this
provider shows a change history for the package. See your provider's
documentation for details on how to use the control. Otherwise, if the version
control is CVS, the history is shown via Enterprise Architect's internal CVS history
menu.
Compare with version Compare the current package with the XMI version on disk.
on disk
Add Branch to Version Apply version control to all packages within a selected model branch, in a single
Control operation. In this context, a model branch is a package that is currently selected
in the Project Browser, and all of the packages contained within it.
Export as Model Export 264 a newly created model branch from your own private copy of a model.
Branch
Import a Model Branch Retrieve 265 a model branch and import it into either the source model or another
model.
Get Package Access packages in the version control repository that are not currently available
in your model.
Re-synch Status With Update the version control status value recorded for the selected package in the
VC Provider Enterprise Architect project to match the value reported by the version control
provider 267 , without performing an XMI import or export.
Use this function when the package's version control status recorded in your
Enterprise Architect project is out of synchrony with the version control status
reported by your version control provider.
Update Package Status Provide a bulk update on the status of a package, including status options such
as Proposed, Validate and Mandatory.
Note:
This option is a generic package option not specific to version control.
Note:
In the Corporate, Business and Software Engineering, System Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Configure Packages 198 permission to configure
packages for version control.
3. Select the Control Package checkbox to indicate that this is a controlled package.
4. Click on the Version Control drop-down arrow and select the version control repository; this connects
the package to a specific version control configuration.
The XMI Filename field then displays the version control configuration default path.
5. The Version ID field defaults to 1.0; if necessary, change this to the appropriate reference.
6. The Owner field defaults to your user name; if necessary, type or select the name of the user who owns
the package.
7. Click on the OK button to set the version control options. The Add Package to Version Control dialog
displays.
8. If you do not want to check-out the package immediately, clear the Keep checked out checkbox.
9. Click on the OK button. The Add Comment window displays.
This window displays the date and time at which the package was put under version control.
10. If required, type any further comments in the window. Click on the OK button.
Enterprise Architect places the package under the version control configuration you selected, and marks the
package in the Project Browser with the version controlled checked out or not checked out 233 icons, as
appropriate.
Depending on the results, you can then complete the definition of any invalid or missing version control
configurations, or correct problems with individual packages or their associated package files.
Click on an error message to highlight, in the Project Browser, the package that is in error.
Note:
In the Corporate, Business and Software Engineering, System Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Use Version Control 198 permission to check files
in and out using version control.
Option Use to
Force reload from XMI Reload the package content from the XMI file in the central repository, even
though the package and XMI file are synchronized. This ensures that links and
dependencies that might not have been refreshed are updated as well.
Accept current (The default.) Leave the package content in its current state.
package
Refresh model view Refresh the model view to show any changes from other checked out packages.
Option Use to
Always apply above Apply the settings in the above three fields every time you check out a package
settings that is found to be up to date, and therefore do not display this dialog again.
Note:
To display the dialog if, for example, you want to change the settings, press [Ctrl]
while you select the Package Control | Check Out menu option.
The package icon in the Project Browser should change. When you check out a package this is represented
by a figure 8 to the left of the package icon. When you check in a package the package icon is overlaid with a
colored rectangle and key. In the example below, the upper package is checked out whilst the lower package
is checked in.
Notes:
· If you check out a version controlled package whilst offline, the package icon has a red figure 8 in front of
it. See Offline Version Control 268 .
· If the packages under version control contain any alternative images 447 and those images are subject to
frequent change, you can set the Export alternate images option on the Options 367 dialog to export the
images to the version control repository when you check in the packages. If the images are not subject to
frequent change, do not select this option and instead use Export/Import Reference Data 223 to manage
alternative images.
Check In Branch
1. In the Project Browser, right-click on the package icon at the root of the model branch that is to be
checked in and select the Package Control | Check In Branch context menu option. The Select
Packages to Check-in dialog displays, listing all version controlled packages within the branch that you
have checked out.
4. In the Select a Version Control Configuration field, click on the drop-down arrow and select the
version control configuration associated with the package to retrieve. The file list is populated with the
names of files available through that configuration, for retrieval and import into your model.
5. Select the package file to import into your model and click on the OK button.
2. In the Select a Version Control Configuration field, click on the drop-down arrow and select the
Version Control Configuration to use.
3. If required, select the Export as Model Branch checkbox to export the selected package (and
sub-packages) as a Model Branch 264 .
4. Click on the OK button. Enterprise Architect creates a number of sub-folders within the version control
working copy folder, before exporting all of the packages within the selected model branch. Enterprise
Architect generates package filenames using the package GUIDs, before adding the resulting files to
version control.
If you have selected the Export as Model Branch checkbox, once the version control operation is complete
Enterprise Architect also creates a Model Branch file (.EAB file). You can subsequently import the
version-controlled Model Branch 265 .
3. In the EAB Filename field, type a name for your Model Branch File. Alternatively, click on [ ... ] and
browse for the file location.
Note that the package name is supplied as a default.
You can specify any file name, including sub-folder names, as long as the file is contained in or below the
working folder of your version control configuration.
3. Either:
· Click on the Find a Model Branch (.EAB) file button and browse for the Model Branch File. If the
version control configuration used by the file has not been fully set up, Enterprise Architect prompts
you to complete and save the configuration. The model branch import then proceeds. OR
· If the version control configuration used by the file has been fully set up in the current model, click on
the drop-down arrow in the Select a Version Control Configuration field and select the
configuration, then select the Model Branch File from the Select a Model Branch (.EAB) file list.
Click on the OK button to import the model branch.
Enterprise Architect imports the root package specified in the Model Branch File and recursively imports and
populates all the sub-packages contained in the root package.
3. In the Revisions field, click on a revision number to view the log entries for that revision.
4. To view the package history select a revision and then click on the Retrieve button. A warning dialog
displays, indicating that the package is being opened in read-only mode.
5. Click on the Yes button to continue or the No button to cancel the action. The package is retrieved in
read only mode, enabling you to view the history of the package at the specified version.
6. To go back to the latest version, in the Project Browser right-click on the package and select either the
Package Control | Check Out.. context menu option or the Package Control | Get Latest context
menu option.
The results of the re-synchronization process are sent to the Enterprise Architect Output window, as shown
below:
Double-click on any result message to select, in the Project Browser, the corresponding package.
Note:
This process does not cause any package data to be:
· exported from your model to the associated package file, or
· imported from a package file into your model's package data.
If a package has been checked-out and modified with Enterprise Architect, but your version control provider
reports the package file as checked-in, running this process marks the package within Enterprise Architect as
being checked-in, without exporting and committing the pending changes. Subsequently checking-out the
package imports the latest revision of the package file from version control, effectively discarding the
uncommitted modifications from the model.
Similarly, if a package file is checked-out in the version control system, but not in the Enterprise Architect
model, running this process marks the package within the model as checked-out, but it does not import the
associated package file from the version control system. Consequently, it is possible to check-in a package
from Enterprise Architect that is potentially out of date, compared to the latest revision of the package file
within the version control system.
Use Version Control Whilst Disconnected From Your Version Control Server
Enterprise Architect 'remembers' the status of a model’s version controlled packages. Packages that were
checked out 261 to you prior to disconnecting from the server are still shown as checked out to you, even
though you are no longer connected to the server. You can still edit these packages as you normally would.
Packages that were not checked out to you prior to disconnecting from the server are shown as version
controlled and locked. You cannot edit these packages until you check them out.
Important:
You should be aware that the version control system - and therefore other users - have no way of knowing
that you have 'checked-out' a package whilst offline. It is not possible to merge changes to an XMI file that
result from two users editing the same package at the same time. If an offline checkout leads to two people
editing the same package at the same time, when the changes are brought back online the first-saved set of
changes is lost.
Audit Models
Auditing 270 is a project-level feature, available in the Corporate, Business and Software Engineering, System
Engineering and Ultimate editions, that enables you to record model changes in Enterprise Architect.
By enabling this option, model administrators can view a range of information regarding changes, such as:
· Who changed an element
· How many elements they changed
· When they changed the data
· What the previous values were, and
· What type of elements they changed.
3.5.2.1 Auditing
Auditing is a project-level feature that enables model administrators to record model changes in Enterprise
Architect.
By enabling this option, you can view information on changes such as:
· Who changed an element
· How many elements they changed
· When they changed the data
· What the previous values were, and
· What type of elements they changed.
Auditing does not record changes to RTF Templates, Model Documents, Baselines or Profiles.
The Auditing facility is available in the Corporate, Business and Software Engineering, System Engineering
and Ultimate editions.
Warning:
If your site runs separate editions of Enterprise Architect, when Auditing is turned on in a project any Desktop
or Professional edition users are locked out of the project. To restore access, turn Auditing off in the project
from a Corporate, Business and Software Engineering, Systems Engineering or Ultimate edition instance of
Enterprise Architect.
Auditing Quickstart
To quickly enable auditing and see it in action, see Auditing Quickstart 271 .
Audit Settings
Once auditing is enabled within a project, you have a variety of options available for customizing what is
recorded by the audit. See Audit Settings 271 for more information on the different settings available.
Note:
If security is enabled, you must have Audit View 198 permission to display data in the Audit View.
You can also obtain a snapshot of selected items in the model, using the Model View 1222 facility. In the
Corporate, Business and Software Engineering, Systems Engineering or Ultimate editions of Enterprise
Architect, this facility enables you to automatically generate this snapshot at intervals and, if there are changes
in the items collected by the defined search, to trigger a notification to you of such changes. This enables you
RTF Report
You can generate an RTF report that includes the audit history information for the selected element or
package, by choosing the basic + audit RTF template 1573 .
Audit History
Using Auditing, you can track changes to an element or connector over time. However, enabling Auditing also
enables an Audit History 278 tab in the system Output window, which summarizes all changes made to the
selected element or connector.
Performance Issues
By enabling auditing on a project, you increase the time taken for most actions. For most modeling tasks, this
increase is insignificant. However, there are some instances where the difference is more substantial. See
Performance Issues 279 for more information.
Enable Auditing
To enable Auditing:
1. Select the View | Other Project Tools | Audit View menu option to open the Audit View 274 .
2. Click on the Audit Settings button. The Audit Settings 271 dialog displays.
3. Select the Enable Auditing checkbox.
4. Click on the OK button to close the Audit Settings dialog.
5. Close the Audit View dialog.
Make Changes
Change and save your project; for example:
· Add a new package
· Add a new Class
· Add a new connector
· Change the name of an element
· Delete an element.
Note:
If security is enabled, you must have Audit View permission to turn Auditing on, and Audit Settings 198
permission to change Audit settings.
· Audit Reverse Engineering - select this checkbox to include reverse engineering in the audit
· Use Database Timestamp - select this checkbox to use the database server's timestamp instead of each
user's local timestamp; this improves security.
Note:
The Use Database Timestamp option is not available for projects stored in .EAP Files.
Note:
Some of these functions can be accessed through the Automation Interface. For more information, see the
Repository 1680 topic.
If you save or clear the log items, Enterprise Architect prompts you to specify whether to save or clear the
items covering a specific period of time.
· If you click on the No button, you save or clear all log items currently held in the database.
· If you click on the Yes button, the Time Filter dialog displays, on which you select a standard time period or
define your own.
· Core Structural - select this radio button to audit maintenance elements plus some structural elements;
that is:
· Package
· Class
· Interface
· Signal
· Node
· Component
· Artifact
· Part
· Port
· Device
· All - select this radio button to audit all elements
· Custom - select this radio button to audit element types that you specify.
If you select the Custom option, the Customize button is made available. Click on this button to display a list
of element types, and select the checkbox against each element type to include in the audit (or click on the
Select All button to select every element type). Click on the OK button to save the selection.
Note:
Connectors are audited when they are connected to an element that is included in the Audit Options.
Note:
If security is enabled, you must have Audit View 198 permission to display data in the Audit View.
View Controls
The view controls provide a variety of settings for controlling auditing and the display of audit records.
Audit Tree
The audit tree displays the logs that have been recorded by auditing. What is displayed in the tree is affected
by the settings of the View Controls section, such as:
· Sorting
· Filter (by time)
· Mode
· Auditing settings 271 (what was actually recorded).
Record Display
The record display is in two parts: the identity of the selected change, and the actual change made.
Identity
The identity of a change consists of:
· The Windows username of the user that made the change
Note:
If security is enabled, the name is of the format: WindowsUsername(SecurityUser).
Changes
The changes are displayed in a table format, showing the Property (or data item) name, its original value
before the change and its value after the change.
If you double-click on an item in the list of changes (or right-click and select the Show Differences context
menu option) the Difference dialog displays. This shows the specific changes that have been made,
highlighting the edited, created or deleted characters.
· The Load (Advanced, Deleted or Raw 277 modes) or Refresh (Standard 277 mode) button reloads the
Audit Tree, updated with any new audit results.
· The Search button enables you to search through log items for a particular area. Log Items can be
searched by Name, Type or GUID. The items are loaded and filtered with the current Sort By, Time Filter
and Mode settings. If you refresh the Audit View, you must run the search again.
· The Audit Settings button opens the Audit Settings 271 dialog.
Sort-by Panel
The Sort By panel enables you to select one of three display settings:
· Type - changes are grouped under element type (such as Class or Requirement), and then grouped under
the changed element.
· User - changes are grouped under user name. The number of changes for each user is also displayed.
Under each user name, changes are grouped as for the Type sort.
· Deletions - displays only deletions, shown in chronological order. If used with the Search button, this can
be useful for recovering information on missing elements.
Filter by
The Filter By Date/Time checkbox enables filtering by time periods, which you set using the Time Filter
dialog; click on the Filter Settings button to display this dialog.
Select:
· Today - to display changes occurring today
· Previous Hour - to display changes occurring in the last 60 minutes
· Previous 24 Hours - to display changes occurring in the last 24 hours
· Previous Week - to display changes occurring in the last 7 days
· Previous 30 Days - to display changes occurring in the last 30 days
· Previous Year - to display changes occurring in the last 365 days
· Custom - to define your own time period, using the From and To fields.
Note:
The six pre-configured time periods automatically update when you click on the Refresh button. Custom
periods are static and do not automatically update.
Changes that occur outside the filter period you select are not shown in the Audit View. Once you have set a
filter period, it remains set if you deselect the Filter By Date/Time checkbox. The Custom time period, too, is
retained so that you can re-use it or modify it later if required.
Status Text
Beneath the Filter By Date/Time checkbox, status text displays to show which mode has been selected (see
below), and which time filter 277 is being applied to the data.
Mode Button
The Mode button enables you to change the mode of the Audit View. The button displays a drop-down menu
from which you can select:
· Standard - to interact with the Project Browser
· Advanced - to load large sets of log items
Note:
When in Advanced mode, a special Audit Settings group can be displayed in the Audit Tree 274 . This
records when Auditing has been enabled and disabled, along with who made the change, and the date
and time of the change.
· Raw - to display all audit records without sorting (although any search and filtering you define still apply).
Additional database information is displayed; this additional information might be unimportant.
Standard Mode
In Standard mode, Auditing is automatically synchronized with the Project Browser.
When synchronized, and where changes have been made, the Audit View reflects your selection from the
Project Browser. If you click on:
· An element, the Audit View displays the history for that element
· A package, the Audit View displays the history for that package and its immediate children (but not the
contents of nested packages)
· A diagram, the Audit View displays the history for that diagram and its contents (which could be drawn from
a wide area of the Project Browser).
Advanced Mode
In Advanced mode, you can load sets of audit data independent of the Project Browser. These sets of data
display all significant changes, but you can reduce the selection by filtering by time or by running a search.
Advanced mode also displays:
· Changes to the Audit Settings
· When Audit Operations are executed
· Security changes (which can be browsed in the same way as other changes).
Raw Mode
In Raw mode, all data recorded by auditing is displayed in chronological order. This enables you to see a
progression of changes, which can be especially useful in determining date-time inconsistencies. Search and
filters can still be applied, enabling you to view all of today’s changes in order, or all changes for a particular
element in order, or both.
Note:
Some information displayed in Raw mode might be insignificant or only in machine-readable format.
Note:
If security is enabled, you must have Audit View 198 permission to display data on the Audit History tab.
The information in the Audit History tab provides a history of changes to whichever element or connector you
have selected in the:
· current diagram
· Project Browser
· Audit View, or
· Element List.
As you select different elements or connectors, the Audit History automatically updates to reflect your current
selection. The information shows, for each change made to the element or connector:
· Who made the change
· When the change was made
Large Deletions
Deleting large packages or package structures, or large numbers of elements, takes significantly longer with
auditing on. You might disable auditing 271 before performing such a deletion.
XMI Imports
Importing XMI 290 takes longer with auditing enabled. A project-level option 271 is provided for disabling
auditing of XMI Imports.
Reverse Engineering
Reverse engineering 1328 code takes longer with auditing enabled. A project-level option 271 is provided for
disabling auditing of reverse engineering.
Baselines
Enterprise Architect (Corporate, Business and Software Engineering, System Engineering and Ultimate
editions) provides a facility to create a Baseline 280 or snapshot of the contents of a selected package and its
child packages at a particular point in time. This enables you to later compare that branch of the model at that
time with the current state of the branch.
Baselines are stored in the same XML format as is used for version control, but are stored within the project in
compressed format. You can also have parallel copies of parts of your model for team development, and
create Baselines within each copy to merge changes into the project master.
Differencing
Differencing (Diff, or Compare 283 ) enables you to explore the differences between the current state of a
specific part of your project, and previous or parallel versions captured in a Baseline or an XMI 1.1 file on disk.
Merges
Once Differencing is complete, you can merge information from the Baseline into the current project; it is not
possible to go the other way.
You can merge information manually, change by change, or automatically by electing to merge in all changes
in one batch procedure. You can also revert completely to the original Baseline by importing the stored XMI
directly, and merge in information and elements from a Baseline in a different project, making it possible to
keep multiple versions of a single model in synch.
The merge options 285 are available on the Compare Utility tab, which shows the results of a comparison. The
options are available through the toolbar, context menus and the keyboard.
Notes:
· You use Baselines, Differencing and Merges essentially to compare two snapshots of a specific part of
your project, to capture the differences between them and either roll back or incorporate selected changes
or all changes. Enterprise Architect Corporate, Business and Software Engineering, System Engineering
and Ultimate editions have another facility, Auditing 270 , which you can switch on to perform continuous
monitoring of changes across the project. You can dovetail your use of each facility to meet the range of
your change management requirements.
· If a package under version control forms part of a Baseline, and that package is checked in to the model,
you cannot merge the original data from the Baseline into that package.
· If security is enabled you must have Baselines - Manage 198 permission to create, import and delete
Baselines, and Baselines - Restore permission to merge data from a Baseline. Security permissions are
not required to select an existing Baseline and perform a comparison with the model.
3.5.2.2.1 Baselines
Enterprise Architect provides a facility to 'Baseline' (snapshot) a model branch at a particular point in time for
later comparison with the current package state.
Note:
This facility is available in the Corporate, Business and Software Engineering, System Engineering and
Ultimate editions of Enterprise Architect.
Baseline comparison is most useful for determining changes made to the model during development
compared to some Baseline saved at a crucial point - for example the completion of a phase or version
iteration. More than one Baseline can be stored against a single Enterprise Architect package. Baselines are
particularly useful during requirements management to check for changes, additions and deletions that have
occurred since the start of the current work phase. Knowing how a model has changed is an important part of
managing change and the overall development process.
Baselines are stored within the model in compressed XML format. You can save a Baseline to an external
XML file for storage or archive, or for distributing to other users working on models derived from a master
project.
Baselines are generally used in conjunction with the Compare utility (diff 283 ), which is built into the
Professional, Corporate, Business and Software Engineering, System Engineering and Ultimate editions of
Enterprise Architect.
A typical scenario for using Baselines 281 would be to:
1. Create 282 the base model branch to a sufficient point to create a Baseline (checkpoint). Create and
store the Baseline as Version 0.1a.
2. As work continues on development, managers and developers can check the current model branch
against the Baseline for important modifications, additions and deletions. The Compare (diff) tool can be
invoked from the Baseline dialog to check the current model branch against the stored version.
3. As required, minor Baselines can be created to check recent progress. These 'temporary Baselines' are
useful for managing change when a lot of work is being done and it is important to only see what has
changed in, for example, the last 24 hours.
4. At sign-off or the move to a new version/phase, a major Baseline can be created to capture the new
state of the model. Minor Baselines created earlier can be deleted if required to save space.
Important Considerations
· Baselines are based on the GUID or unique ID of a particular package. Enterprise Architect checks for that
ID as the root element within the XML document being used as a Baseline. When you export a package to
XML, the package you export is the root element. Likewise when you create a Baseline, the current
package is the root package of the XML Baseline. When you save information in a version control system,
the current version controlled package is again the root package of the document.
· It is not useful to create a Baseline by importing an XMI package file created by version controlling a
package that itself contains version-controlled child packages. That type of XMI package file contains stubs
for the child packages, not full information on the child packages and elements.
· XML files must be in the same format used by the Baseline engine - currently the UML 1.3 XMI 1.1 format
(plus Enterprise Architect extensions), which contains all the information necessary to reconstruct a UML
model, even a UML 2.x model.
Option Use to
Current Baselines Review the baselines for the current model branch, listed by version reference 282 with
Option Use to
Show Differences Run the Compare 283 utility on the selected Baseline and the current model branch,
and to display the differences 284 between the two.
Restore to Completely restore the model branch from the selected Baseline.
Baseline
Load Other Display a drop-down menu that enables you to load Baselines from another model, in
Baselines either a .EAP file or a DBMS file.
· For .EAP files, a browser displays; locate the required project file
· For DBMS files, the Windows Data Link Properties dialog displays; select the
data provider and click on the OK button to display the Select Data Source
dialog, from which you select the required project.
In either case, the Connected To: message at the bottom of the Manage Baselines
dialog changes to the name of the alternative model. To return the dialog to the
original project, select the third option on the drop down list: Load From Selected
Package.
Import File Import an XML 1.1 file from the file system as a new Baseline for this current model
branch.
Compare Model to Compare the selected model branch with an XML 1.1 file on disk. A browser displays,
File which you use to locate the file.
Option Use to
Name Display the package name of the currently selected model branch.
Version Type a unique version reference for this Baseline. This can consist of any alphanumeric
characters.
The Manage Baselines dialog sorts the Baselines according to the value of this field.
Option Use to
Include Include the entire sub-package hierarchy of this branch in the Baseline. Defaults to selected.
sub-
If you deselect the checkbox, only the immediate contents (XMI stubs) of the package are
packages included in the Baseline.
Note Edit the default current time and date to any other value. The field is a single-line entry, for
display on the Manage Baselines dialog (a one-line-per-entry list).
Click on the OK button to create a new Baseline and return to the Manage Baselines dialog.
Notes:
· This utility is available in the Professional, Corporate, Business and Software Engineering, System
Engineering and Ultimate editions of Enterprise Architect.
· You cannot compare the current model with an XMI 2.1 file; the utility can only compare with an XMI 1.1
file.
Enterprise Architect has a comprehensive and powerful differencing utility built in. This utility enables you to
compare a model branch in Enterprise Architect with:
· A Baseline created using the Baseline functionality (Corporate, Business and Software Engineering,
System Engineering and Ultimate editions)
· A Baseline stored in a different model
· An XML 1.1 file on disk created previously using the Enterprise Architect XML export facility (user selects
file), or
· The current version-controlled XMI 1.1 file on disk as created when using Version Control in Enterprise
Architect (file automatically selected).
Compare (diff) lets you explore what has changed within a model over time and how previous versions of a
model branch differ from what is currently in the model. It is even possible to do a full model comparison by
exporting all of Model A to XMI, then using Compare Model to File from within the current model (Model B).
Comparing and checking model development at various points in the process is an important aspect of
managing change and development, keeping track of what is being modified and ensuring the development
and design process is on track.
Access to the Compare utility is available from:
1. The Baseline 281 dialog 281 ; from the Project Browser context menu, select the Package Control |
Manage Baselines option.
2. The Project Browser context menu; select Package Control | Compare with XMI File (for a package
not under version control).
3. The Project Browser context menu; select Package Control | Compare with Controlled Version (for a
package under version control).
Option Use to
Always Expand to Always display the list of elements fully expanded to show changes.
Differences
If you deselect the checkbox, when the Compare Utility tab is first opened it lists the
package contents to element level, and you expand each element as required to show
the changed items.
For large branches of the model, it is better to leave the checkbox unselected.
If the Compare Utility tab shows the results of a Baseline comparison, when you click on the OK button the
display refreshes to refine the information according to the options you have selected.
· If you click on an item with a Status entry in the left hand pane, the right-hand pane displays a table of
properties showing the values of those properties in the current model and in the Baseline. For each
property where there is a difference between the model and the Baseline, the row is highlighted. This
example shows that the Class element named Application was moved from the Business Process Model
package (as shown in the Baseline) to the Business Rules Model package on 5 June 2009 (as shown in
the Model).
The Compare Utility tab enables you to perform operations (such as merging or rolling back changes) on the
reported information, using the toolbar, context menu and keyboard 285 .
Note:
If a package under version control forms part of a Baseline, and that package is checked in to the model, you
cannot merge the original data from the Baseline into that package.
Toolbar
The toolbar is at the top of the left-hand panel. The icons operate either on the comparison as a whole or on
The toolbar icon names and functions are, from left to right:
Option Use to
Merge To Model Merge the values of the currently-selected item in the Baseline back into the model.
Next Change Highlight the next changed item (skips Moved items).
Expand To Changed Expand the selected item to show changed items only (in the event that you have
Items selected to also show 284 unchanged items in the comparison).
Log To XML Log the changes to an XML file. A browser displays, on which you specify the file
name and location.
Help Display the Help topic Baselines, Differencing and Merges 279 .
Context Menu
Each item in the hierarchy has a context menu, which you display by right-clicking on the item. The options
displayed depend on the level of the item in the hierarchy, but include some or all of the following:
Option Use to
Merge from Baseline Restore the item in the model to the Baseline state, or restore a deleted item from
the Baseline.
Add from Baseline
Merge From Baseline (For the root node of the hierarchy on the Compare Utility tab.)
(with Options)
Display the Merge dialog (see below) which enables you to specify options for
rolling back the whole model branch to the Baseline state.
Find in Project Locate and highlight the item in the Project Browser.
Browser
Expand To Changed Expand the selected item to show changed items only.
Items
Option Use to
Log To XML Log the changes to an XML file. A browser displays, on which you specify the file
name and location.
Select the appropriate checkbox against each type of difference to roll back in the model from the Baseline.
Option Use to
Changed Restore all changed items in the model branch to the Baseline state.
In Baseline Only Restore all deleted items to the model branch from the Baseline.
In Model Only Remove all recently-created items from the model branch.
Moved Restore all moved items to their original locations, as identified in the Baseline.
Full Restore from Completely restore the model branch to the version held in the Baseline XMI 1.1
XMI file, (using the XMI Import function).
(Automatically selects all the other options.)
Keyboard
You can also use the following keyboard keys to move up and down the hierarchy, or to roll back changes:
· [Ctrl]+[$] - expand and highlight the next changed item
· [Ctrl]+[#] - expand and highlight the previous changed item
· [Ctrl]+[!] - undo the changes for a selected item (roll back to the Baseline values).
What is XMI?
XML Metadata Interchange (XMI) is an open standard file format that enables the interchange of model
information between models and tools.
XMI is based on XML, and is defined by the OMG. Enterprise Architect uses XMI as a method of importing and
exporting model specifications between different UML packages, Enterprise Architect projects and other tools
that support XMI.
Enterprise Architect supports the XMI 1.1, 1.2 and 2.1 specifications, but does not fully support the older 1.0
specification. When importing or exporting to XMI 1.0, some loss of data occurs due to the limitations of XMI
1.0. XMI 1.1 has support for UML 1.3, whereas XMI 2.1 has support for UML 2.0 and UML 2.1.
With XMI, model details can be exchanged between different UML tools and other tools that are capable of
using XMI. Limited support for export to Rational Rose is provided using the Rose version of the XMI 1.1
specification, as implemented by Unisys for Rational products.
Packages can be exported from and imported into Enterprise Architect models. This greatly improves the
flexibility and robustness of Enterprise Architect models by enabling Analysts and Modelers to externalize
model elements in XMI for version control, distributed development, post processing and transferring
packages between models. When performing Enterprise Architect-to-Enterprise Architect transfers, ensure
that the XMI version selected is 1.1 or 2.1.
XMI Tasks
Tasks you might perform in importing and exporting XMI include:
· Setting XML Options 367 : XMI import, export and package control all rely on saving and loading XML files;
you can set a number of options to streamline this process
· Exporting a package 289 to XMI in XMI 2.1 (and earlier)
· Importing from XMI 290 with support for XMI 2.1 (and earlier)
· Setting up controlled packages 293
· Manually controlling a package 299 by linking it to an XMI file
· Batch exporting 298 controlled packages
· Batch importing 298 controlled packages
· Factoring in the limitations of XMI 293
· Applying a UML Data Type Definition 293 (DTD)
For further information on XMI, including specifications, see the OMG XML/XMI Technology topic.
Important:
When you import an XML file over an existing package, ALL information in the current package is deleted
first. Before you import the XML file, please make sure you do not have important changes that you do not
want to lose.
Notes:
· XMI 2.1 exported by Enterprise Architect 7.0 (or later) might not be correctly imported into earlier versions
of Enterprise Architect.
· When you select to apply a DTD during an XMI 1.1 export, the UML_EA.DTD file is written to the output
directory into which the XML files are written (unless the UML_EA.DTD file is already present in the
directory). No error is generated if the UML_EA.DTD file is not present in this directory during the XMI
export.
However, an error does occur if you are importing an XMI 1.1 file that has been exported with the UML_EA.
DTD file, and the UML_EA.DTD file is not present in the same directory as the XMI file.
Notes:
· In the Corporate, Business and Software Engineering, System Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Export XMI 198 permission to export to XMI.
· You can post-process the XMI content before saving the package to file, using a style sheet to convert the
output to HTML, XSL, code, or other versions of XMI. If you want to do this, you must import the required
style sheet into the project through the Resources 667 window.
3. In the Filename field, type the directory path and filename into which to output the XMI file.
4. If required, in the Stylesheet field click on the drop-down arrow and select a stylesheet to post-process
XMI content before saving to the file.
5. Select the Export Diagrams checkbox to export diagrams in the file.
6. Select the Export Alternate Images checkbox to export the alternative images used in the diagrams.
7. Select the Format XMI Output checkbox to format output into readable XML (this takes a few more
seconds at the end of the run).
8. Select the Write Log file checkbox to write a log of export activity (recommended); the log file is saved
to the directory into which you export the XMI file.
9. If using XMI 1.1, select the Use DTD checkbox to use the UML1.3 DTD (recommended). Setting this
option validates the correctness of the model and checks that no syntactical errors have occurred. For
more information regarding the use of DTDs, see the UML DTD 293 topic.
10. Leave the Enable full EA Roundtrip checkbox selected to keep data specific to Enterprise Architect in
the XMI file.
11. In the XMI Type: field, click on the drop-down arrow and select the appropriate XMI format:
· XMI 1.1, to generate output in XMI 1.1 format (necessary if you intend to use this file in a comparison
with the model 283 at a later time)
· XMI 2.1, to generate output in XMI 2.1 format.
10. Select the Unisys/Rose Format checkbox to export in Rose UML 1.3, XMI 1.1 format.
11. Select the Exclude EA Tagged Values checkbox to exclude Enterprise Architect-specific information
from the export to other tools.
12. Click on the Export button.
Important:
When exporting and importing with XMI 1.0 with Enterprise Architect, some loss of data occurs due to the
limitations of XMI 1.0.
Notes:
· XMI 2.1 exported by Enterprise Architect 7.0 (or later) might not be correctly imported into earlier versions
of Enterprise Architect.
· When you select to apply a Data Type Definition (DTD) during an XMI 1.1 export, the UML_EA.DTD file is
written to the output directory into which the XML files are written (unless the UML_EA.DTD file is already
present in the directory). No error is generated if the UML_EA.DTD file is not present in this directory
during the XMI export.
Important:
· When you import an XML file over an existing package, ALL information in the current package is deleted
first. Before you import the XML file, please make sure you do not have important changes that you do not
want to lose.
· If you are importing an XMI 1.1 file that was previously exported with a UML_EA.DTD file, the UML_EA.
DTD file must be present in the directory into which the XMI file is being written. An error occurs if the
UML_EA.DTD file is absent.
Note:
In the Corporate, Business and Software Engineering, System Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Import XMI 198 permission to import packages from
XMI.
3. In the Filename field, type the directory path and filename from which to import the XMI file.
4. Select the Import diagrams checkbox to import diagrams.
5. Select the Strip GUIDs checkbox to remove Universal Identifier information from the file on import. This
enables the import of a package twice into the same model; the second import requires new GUIDs to
avoid element collisions.
6. Select the Write log file checkbox to write a log of import activity (recommended); the log file is saved
in the directory from which the file is being imported.
7. Import using single transaction defaults to selected; if the import encounters locking issues, or if you
are importing a large XMI file, deselect the checkbox to import the data items separately and identify
problem items without blocking the whole import.
8. If you are importing from Rose XMI 1.1, click on the Treat Imported Datatypes drop-down arrow and
select the datatypes to add to the model.
9. Click on the Import button.
cross-references. You therefore have the option of importing a single EMX/UML2 file or a group of EMX/UML2
files. This option enables you to select a group of related files and import them together, thereby retaining the
cross-references between the different files.
To import single or multiple *.emx /*.uml2 files into Enterprise Architect, follow the steps below:
1. In the Project Browser window, select the package into which to import the file.
2. Either:
· Right-click and select the Import/Export | Import Package from XMI context menu option, or
· Select the Project | Import/Export | Import Package from XMI menu option.
The Import Package from XMI dialog displays.
3. Click on the Import EMX / UML2 Files button. The Import Package from XMI dialog redisplays,
formatted for .EMX/.UML2 file imports.
4. Click on the [ ... ] (Browse) button next to the Directory field. The Select Import EMX / UML2 File(s)
dialog displays, which enables you to select multiple files.
5. Select the file or files (use [Ctrl]+click or [Shift]+click to select several files) and click on the Open
button. The Import Package from XMI dialog redisplays; the Selected File(s) panel lists the selected
files.
6. Select the Write Log File checkbox to write a log of import activity (recommended); the log file is saved
in the directory from which the file is being imported, with the name import.log.
7. Click on the Import button. Enterprise Architect indicates the progress of the import in the Import
Progress field.
A controlled package is a package configured to save and load in XML format to a named file. The XML output
is UML1.3 compliant XMI, with Enterprise Architect extensions to support diagrams and additional model
elements.
Important
If you are importing an XMI 1.1 file that was previously exported with a UML_EA.DTD (Data Type Definition)
file, the UML_EA.DTD file must be present in the directory into which the XMI file is being written. An error
occurs if the UML_EA.DTD file is absent.
Note:
When you select to apply a DTD during an XMI 1.1 export, the UML_EA.DTD file is written to the output
directory into which the XML files are written (unless the UML_EA.DTD file is already present in the directory).
No error is generated if the UML_EA.DTD file is not present in this directory during the XMI export.
Configure (various settings for the Display the Package Control Options 295 dialog, which enables
package) you to specify whether this package (and its child packages) is
[Ctrl]+[Alt]+[P] controlled and which file it is controlled through.
Manage Baselines [Ctrl]+[Alt]+[B] Create a Baseline 281 of the current package, or compare the
current package with a previous Baseline.
Check In Branch For the selected branch of the model, (that is, the selected
package and all of its child packages) display the Select Packages
to Check In 262 dialog, listing all version controlled packages
within that branch that are checked out to you. You can then select
packages in the displayed list, to be submitted for check-in.
Check Out Branch For the selected package, check out the package and recursively
check out all of its contained sub-packages 263 . Retrieves the
latest version of the packages from the central repository,
overwriting the current packages. After check out, the packages
are available for editing.
Save package to file [Ctrl]+[Alt]+[S] Save a controlled package 297 to an XMI file.
Load package from file [Ctrl]+[Alt] Load 297 a previously-saved XMI file.
+[L]
View package XMI [Ctrl]+[Alt]+[X] Display the package XMI after the package has been exported to
XMI.
Compare with XMI file (Package not under version control.) Compare 283 the current
package with a previously-saved XMI file of the package.
Add Branch to Version Control Apply version control to all packages within a selected model
branch 264 , in a single operation.
Export as Model Branch Export 264 a newly created model branch from your own private
copy of a model.
Import a Model Branch Retrieve 265 a model branch and import it into either the source
model or another model.
Get package (for version control) Enables you to gain access from packages in the
version-controlled 228 repository that is currently available in your
model.
Get All Latest (for version control) Retrieve the latest version 228 of the package from the repository.
Available only for packages that are checked in.
The alternative option Get Latest - if displayed - is not intended for
sharing .EAP files and should only be used when users have their
own individual databases.
Re-synch Status With VC Provider (Version controlled package.) Update the version control status
value recorded for the selected package in the Enterprise Architect
project to match the value reported by the version control provider
267 , without performing an XMI import or export.
Version Control Settings Display the Version Control Settings 234 dialog.
Update Package Status Provide a bulk update on the status of a package 340 . This
includes status options such as Proposed, Validate and
Mandatory.
Note:
In the Corporate, Business and Software Engineering, System Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Configure Packages 198 permission to configure
controlled packages and package properties.
Note:
For batch import, the file date of the XMI file is stored. You can bypass the batch import if the file date of the
last import matches that of the current file (that is, there is no change).
2. Select the Package Control | Configure menu option, or press [Ctrl]+[Alt]+[P]. The Package Control
Options dialog displays.
3. Deselect the Control Package checkbox. If the package is under version control, this sets the Version
Control field to (None).
Note:
When disconnecting a package from version control, the association between the package and the exported
XML file is removed from your model. However, the XML file itself is not removed from version control, nor is
it deleted from your local version control working copy folder. This is because it is possible for another model
to be using the version controlled package and still referencing the associated version controlled XML file.
Note:
If you are using a version control package in conjunction with the exported package files, you must check out
the XMI file first to enable Enterprise Architect to overwrite the existing version.
3. If you have configured the package control details, Enterprise Architect prompts you to confirm the
import.
Warning:
Importing deletes the current package entirely from the model, and the action cannot be undone. You
must be careful not to lose any current changes or information.
4. Click on the Yes button to confirm the import. The current package is deleted and the saved package is
imported.
2. Select the checkbox against each package to include in this export run. Select the Select All checkbox
to select all packages in the list.
3. To save this configuration as the default, click on the Save Settings button.
4. Click on the Run Export button.
Enterprise Architect cycles through each checked package and exports it using the options specified in the
Package Control Options 295 dialog. As long as a valid filename exists, Enterprise Architect exports the
package to XML and proceeds to the next package.
2. Select the checkbox against each package to include in the import. Select the Select All checkbox to
select all packages in the list.
Tip:
To avoid re-importing the same module multiple times, select the Check file date before import
checkbox. Enterprise Architect then does not import a file if the last import file date matches that of the
one currently on disk.
3. To save this configuration as the default, click on the Save Settings button.
4. Click on the Run Import button. Enterprise Architect cycles through the packages and imports each
selected package.
As Enterprise Architect processes each package, it updates the Status column against each package name
on the Batch XMI Import dialog.
· If the import is successful, Enterprise Architect updates the package status to Imported.
· If the import is unsuccessful, Enterprise Architect updates the package status to Not Imported.
Common reasons for an import to fail include:
· The package not being correctly configured
· The last import file date matches the import date of the file currently on disk.
1. Check out the package XMI file from the version control system.
2. Save the relevant package using the controlled package support.
3. Check the package back into the version control system.
The CSV Import/Export File Specification dialog provides the following functionality:
Option Use to
Note:
If a field contains an instance of the delimiter, the field is exported wrapped in "
(quotation marks) and all instances of " in the field are doubled (that is, " becomes
"").
Default Direction Set the default action - Import or Export. A specification can be used in either
direction, but this enables you to set the default type.
Default Types Limit the element types being exported, by entering a comma-separated list: for
example, class,requirement,component,node,object.
Option Use to
Note:
If you specify element types, ONLY elements of those types are exported or
imported. Therefore, in order to enable the Preserve Hierarchy option to operate
(if selected) you must include Package as an element type. Otherwise there are
no packages in which to preserve the hierarchy.
If you do not specify any default element types, all elements including Packages
are exported or imported and the hierarchy can be preserved.
Preserve Hierarchy Include fields generated by Enterprise Architect to embed/reconstruct the package
hierarchy. See the Using Preserve Hierarchy 302 section for more details.
Available Fields Select from a list of possible record fields, not yet allocated.
File Specification List the record fields (in the order they are plotted across the spreadsheet) already
assigned.
Add Field Move all selected fields in the top list to the bottom list.
Remove Field Move all selected fields in the bottom list back to the available list.
Note:
In Available Fields and File Specification, the record fields Created Date and Modified Date are not set
when imported from CSV.
Field Description
Note:
This key is unique per export; subsequent exports produce different keys for the
same set of elements.
CSV_PARENT_KEY The corresponding CSV_KEY of the current element's parent. If the field is left
blank or references a non-existent CSV_KEY, the element is added to the top level
of the package.
However, if you intend to import hierarchical information from a spreadsheet that was not populated by
exporting data from Enterprise Architect, you must add these two fields to your spreadsheet as the last two
columns, and populate the columns yourself. For example:
Note:
It is highly recommended that you do not change these fields by hand if they have been automatically
generated by Enterprise Architect's CSV exporter.
Note:
In the Corporate, Business and Software Engineering, System Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have both Export XMI 198 and Import XMI 198
permissions to use the CSV Import/Export option.
Option Use to
Types List the element types to export: leave blank for all, or enter a comma-separated list
of types.
Note:
If you specify element types, ONLY elements of those types are exported.
Therefore, in order to enable the Preserve Hierarchy option in the specification to
operate (if selected) you must include Package as an element type. Otherwise no
Packages are exported in which to preserve the hierarchy.
If you do not specify any element types, all elements including Packages are
exported and the hierarchy can be preserved.
View File View the resultant CSV file with the default Windows application for CSV files.
Notes:
· In the Corporate, Business and Software Engineering, System Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have both Export XMI 198 and Import XMI 198
permissions to use the CSV Import/Export option.
· You import the CSV file into a selected package; if this package or any element within the package has a
lock on it, you cannot import the CSV file into it. The Import option on the dialog is grayed out.
When importing, Enterprise Architect checks the specification to see if there is an EAGUID field included. If
there is, Enterprise Architect attempts to locate the element identified by the EAGUID and, if successful,
updates the current element rather than creating a new one. If no EAGUID field is defined, or Enterprise
Architect cannot locate the identified element, a new element is created and placed in the current package.
Note that during import, Type is a mandatory field in the source file and must match one or more of the legal
Enterprise Architect element types 1715 . For example: requirement, or class.
The format and content of the source data file should resemble the following:
Option Use to
Action Select the Import radio button to import from the file. (Grayed-out if the
package or a child item in the package is locked.)
View File View the source CSV file with the default Windows application for CSV files.
· Move a repository from SQL Server to MySQL or from one server to another
· Move all records from a .EAP file with replication to a model with none (Remove Replication)
· Copy all records from a .EAP file to another (recommended after serious network crash or repeated
database corruption)
· Copy all records from a JET 3.5 to JET 4 (Access 2000 or XP) repository - or back the other way.
See the Perform a Project Data Transfer 307 topic for instructions.
Warning:
All records in the target repository are overwritten.
Note:
You cannot move a model from a source .EAP file of a version earlier than 3.5.0.
Warning:
During a project data transfer, all records in the target project are overwritten. Before performing the transfer,
take a backup of the target project to ensure that you can recover any important information it contains.
Notes:
· In the Corporate, Business and Software Engineering, System Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Transfer Data 198 permission to transfer project
data between repositories.
· You cannot move a model from a source .EAP file of a version earlier than 3.5.0.
· You must transfer data into a repository (where scripts have been run to set up tables), not just a database.
If necessary, follow the steps below:
· Install the DBMS software and create a database. Ensure that the collation is set to the alphabet you
use, such as Latin or Cyrillic.
· Run a script supplied by Sparx Systems (
http://www.sparxsystems.com/resources/corporate/index.html#sql_scripts) to create the required
tables.
2. Click on the option for the required transfer type. You can choose from:
· .EAP to .EAP
· DBMS to .EAP
· .EAP to DBMS
· DBMS to DBMS
3. In the Source Project and Target Project fields, type or select the name or connection string for the
Source and Target projects.
4. If you want to capture the transfer in a log file, select the Logfile checkbox and browse for the
appropriate log file location.
5. Click on the Transfer button.
It is good practise to do a Project Compare 308 after this process to verify that all records are written.
2. Select the option for the required comparison type. You can choose from:
· .EAP to .EAP
· DBMS to .EAP
· .EAP to DBMS
· DBMS to DBMS
3. In the Source Project and Target Project fields, type the name or connection string for the Source and
Target projects.
4. Click on the Compare Projects button. The results of the comparison display in the panel at the bottom
of the dialog.
5. If required, click on the Print List button to print the results.
Procedure
To copy a package from one Enterprise Architect project to another, follow the steps below:
1. Open the Enterprise Architect project to copy from.
2. In the Project Browser, right-click on the package to copy. The context menu displays.
3. Select the Import/Export | Export package to XMI file menu option. The Export Package to XMI dialog
displays.
4. Select the appropriate options and filename (see the Export to XMI 289 topic for further information).
5. Click on the Export button to begin the export process.
6. When the export is complete, open the recipient Enterprise Architect project. In the Project Browser,
navigate to the location to import the package into.
7. Right-click to display the context menu, and select the Import/Export | Import package from XMI file
menu option. The Import Package from XMI dialog displays.
8. Select the appropriate options and filename (see the Import from XMI 290 topic for further information).
9. Click on the Import button. The package is copied from the source project to the destination project.
Note:
If the package you are importing already exists in the target project (that is, it has been imported previously),
you must either import over the existing package or select the Strip GUIDs option, in which case Enterprise
Architect creates a replica of the original package.
Enterprise Architect provides strong support for Project Management, in estimating project size, measuring
risk and effort, and assigning resources to elements. Enterprise Architect also provides support for change
control and maintenance.
Resource Management
Resources 313 are the people who work on a project. You can assign roles to them and allocate tasks on
specific model elements, which enables tracking of effort and estimation of time to complete.
Project Maintenance
During a project you monitor and manage the development and progress of individual model elements. You
can record problems, changes, issues and tasks 1558 that affect these individual elements as they arise, and
document the solution and associated details.
Similarly, Enterprise Architect helps you to manage changes and issues 1563 that apply to the whole system.
See Also
· The Project Management Window 312
Click on an element in the Project Browser 1209 to display project management information for that element in
the Project Management window.
Right-click on the list to view the context menu, which enables you to add and delete list items 330 .
Toolbar
These buttons have the following functions (in order as shown on the toolbar):
· New: Create new item
· Save: Save changes to an item
· Save As New: Enables you to duplicate an existing entry. You must change an item's Role for this to
become enabled
· Delete: Delete an item from the list
· Sort: Sort Items in the list into alphabetical order
· Print: Print item data from the list
· Browse Element: Display the Element Browser 510 window for the selected element, to list and select the
project management items for the element
· Show/Hide Details: Swap between detailed and summary new window styles
· Help: Show help contents for this window.
What is a Resource?
Resources are the people who work on a project. They can be assigned roles and allocated tasks, which
enables tracking of effort and estimation of time to complete.
Note:
In the Corporate, Business and Software Engineering, System Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Manage Project Information 198 permission to
update and manage project resources, effort, metrics and risks.
Toggle between these modes using the Show/Hide Properties button in the window toolbar. The tabs toggle
between Item mode and List mode independently.
The asterisk on a tab indicates that the tab contains saved information. If there is no information for a category
of item, or the information has not yet been saved, its tab has no asterisk.
What to Do?
To find out more information about Project Resource Management tasks, use the following guide:
· To allocate a resource to an element, see the Resource Allocation 314 topic
· To record additional project management information for an element, see:
· the Effort Management 315 topic (record effort expended on the element)
· the Risk Management 316 topic (record risk associated with the element)
· the Metrics 317 topic (record metrics measured for an element)
· To obtain a report of resource allocation details, see the Resource Report 318 topic
· To configure Project Management data and populate the drop-down lists used on the Project Management
dialog tabs, see the following topics:
· Roles 648
· Clients 651
· Effort Types 319
· Metric Types 320
· Risk Types 322
· To find out about the functions of the Project Management toolbar, see the Project Management Window
312 topic.
2. Select the View | Other Element Tools | Project Management menu option. The Project Management
window displays, showing the Resource Allocation tab.
3. Click on the New icon on the Project Management window toolbar.
The Resource Allocation tab enables you to enter the following data:
· The name of the resource (click on the drop-down arrow and select, or type the name in)
· The role of the resource (click on the drop-down arrow and select, or type the name in)
· The start and end date for the availability of the resource
· The time allocated to the resource
· The percentage of the task the resource has completed
· The expected time allocated to the resource
· The actual time expended by the resource
· A description of the work being done by the resource (this text is also displayed in the Notes 641 window
641 ; it cannot be edited in that window)
· Notes on the activity history of the resource (this text is also displayed in the Notes 641 window 641 ; it
cannot be edited in that window).
To edit existing Resource Allocation items for this element, click on the required item in the:
· list panel to the left of the window, in Item mode
· list, in List mode, or
· Project Management folder in the Element Browser 510 window; if this window is not displayed, click on the
icon in the Project Management window toolbar. Resource Allocation item icons have an R in the
bottom right corner.
To change the element to which to allocate resources, select the required element in the Project Browser.
icon in the Project Management window toolbar. Effort item icons have an E in the bottom right
corner.
To change the element to which to assign effort, select the required element in the Project Browser.
Notes:
· The drop-down arrow on the Type field displays a list of effort types as defined on the Effort tab of the
Metric and Estimation Types dialog. If required, you can type in alternative effort types, but these are not
added to the drop-down list of defined types.
· Although Enterprise Architect does not currently provide detailed reports on effort within a model, you can
use the Automation Interface 1666 or similar tools to create your own custom reports based on effort
information you enter.
icon in the Project Management window toolbar. Risk item icons have an Ri in the bottom right
corner.
To change the element to which to allocate resources, select the required element in the Project Browser.
Note:
Although Enterprise Architect does not currently provide detailed reports on risks within a model, you can use
the Automation Interface 1666 or similar tools to create your own custom reports based on risk information you
enter.
3.6.2.4 Metrics
To enter metrics for an element, follow the steps below:
1. Select the element from the Project Browser.
2. Select the View | Other Element Tools | Project Management menu option. The Project Management
window displays, showing the Resource Allocation tab.
3. Click on the Metrics tab.
4. Click on the New icon on the Project Management window toolbar.
icon in the Project Management window toolbar. Metric item icons have an M in the bottom right
corner.
To change the element to which to allocate resources, select the required element in the Project Browser.
To edit existing metric items for this element, click on the required item in the:
· list panel to the left of the window, in Item mode
· list, in List mode, or
· Project Management folder in the Element Browser 510 window (Metric item icons have an M in the bottom
right corner). If this window is not displayed, click on the icon in the Project Management window
toolbar.
To change the element to which to assign metrics, select the required element in the Project Browser.
Note:
Although Enterprise Architect does not currently provide detailed reports on metrics within a model, you can
use the Automation Interface 1666 or similar tools to create your own custom reports based on metric
information you enter.
Option Use to
Root Package Confirm the name of the root package for which resourcing is being determined.
Resource Change the (optional) name of a specific resource assigned to the project.
Cut Off Set the percentage complete limit to include or exclude resource details; see Show
Where.
Show Where Show resourcing where percentage complete is Complete, Above the cut-off,
Below the cut-off, or any of these three.
Locate Object (Click on an entry in the report.) Find the selected element from the results list in
the Project Browser.
Resourcing Details Review the list of resources that meet the search criteria.
To create a new effort type, click on the New button, or to edit an existing effort type, click on the effort type
name in the Defined Effort Types list. Complete the fields as follows:
· In the Effort field type the name of the effort type
· In the Description field type a short description of the effort type
· In the Weight field type the weighting to apply to the effort type
· In the Note field, type any additional information on the effort type
· Click on the Save button.
Notes:
· Although Enterprise Architect does not currently provide detailed reports on effort within a model, you can
use the Automation Interface 1666 or similar tools to create your own custom reports based on effort
information you enter.
· You can transport effort types between models, using the Export Reference Data 223 and Import
Reference Data 225 options on the Tools menu.
Select the Settings | Project Indicators menu option. On the Project Indicators dialog, click on the Metric tab.
To create a new metric type, click on the New button, or to edit an existing metric type, click on the metric type
name in the Defined Metrics list. Complete the fields as follows:
· In the Metric Type field type the name of the metric type
· In the Description field type a short description of the metric type
· In the Weight field type the weighting to apply to the metric type
· In the Note field, type any additional information on the metric type
· Click on the Save button.
Notes:
· Although Enterprise Architect does not currently provide detailed reports on metrics within a model, you
can use the Automation Interface 1666 or similar tools to create your own custom reports based on metrics
information you enter.
· You can transport metric types between models, using the Export Reference Data 223 and Import
Reference Data 225 options on the Tools menu.
To create a new risk type, click on the New button, or to edit an existing risk type, click on the risk type name
in the Defined Risks list. Complete the fields as follows:
· In the Risk Type field type the name of the risk type
· In the Description field type a short description of the risk type
· In the Weight field type the weighting to apply to the risk type
· In the Note field, type any additional information on the risk type
· Click on the Save button.
Notes:
· Although Enterprise Architect does not currently provide detailed reports on risks within a model, you can
use the Automation Interface 1666 or similar tools to create your own custom reports based on risk
information you enter.
· You can transport risk types between models, using the Export Reference Data 223 and Import
Reference Data 225 options on the Tools menu.
Note:
Right-clicking in the System window displays a context menu that has options for filtering tasks/issues by
status, and glossary by term. You can also rearrange the sort-order by clicking in the title bar of the column
that the items are to be indexed on.
Tip:
Include a Glossary Report 328 in your project requirements or functional specifications documents.
Note:
You can transport these glossary definitions between models, using the Export Reference Data 223 and
Import Reference Data 225 options on the Tools menu.
Option Use to
Option Use to
Limit Display To Select the appropriate type to filter the Type | Term list to show entries of
a specific type for editing or deletion.
Note:
A glossary term must have a defined type and description. You cannot save a new term without both of
these values.
Note:
A glossary term must have a defined type and description. You cannot save an edited term without
both of these values.
Tip:
To print out all of the currently listed items, right-click on the list and select the Print List context menu
option.
Right-click on an entry and use the context menu to add 326 , modify 327 , reclassify 327 , filter 327 and delete 327
glossary entries (as below). Alternatively, select the Project | Documentation | Glossary menu option and
use the Glossary 324 dialog.
Tip:
Include a Glossary Report 328 in your project requirements or functional specifications documents.
2. Enter the details for the glossary item: the Term, Type and Meaning. You can, if necessary, format the
Meaning text using the Notes 642 toolbar at the top of the field.
If the Type values are not appropriate for the term, click on the [ ... ] button and enter another type
name.
Note:
A glossary term must have a defined type and description. You cannot apply a new term without both
of these values.
Redefine Type
If a glossary term type is no longer appropriate for all terms of that type, you can redefine the type for all terms
at once. To do this, follow the steps below:
1. On the Project Glossary tab, right-click on a term of the type to be changed and select the Rename
Type context menu option. The Rename Glossary Type dialog displays.
2. In the New Type Name field type a different type name, either an existing type or a new type.
3. Click on the OK button. On the Project Glossary tab, all entries of the original type are now redefined as
being of the new type.
Note:
To reclassify a single term 324 , use the Glossary Type field on the Glossary dialog.
Filter List
To filter the Project Glossary tab display so that only terms of a specific type are listed, follow the steps below:
1. Right-click on the list and select the Set term filter context menu option. The Term Type Filter dialog
displays.
2. In the Term field, click on the drop-down arrow and select the term type for which to list Glossary terms.
3. Click on the OK button. The list of Glossary terms is filtered to the selected type.
To remove the filter, either:
· Follow the steps above and select the value <All> in the Term field, or
· Right-click on the list and select the Remove term filter context menu option.
Note:
You can view sample report output in the Glossary Report Output Sample 328 topic.
Glossary
Business Terms
Accounting Periods
A defined period of time whereby performance reports can be extracted. (normally 4
week periods).
Customer
A person or a company that requests An entity to transport goods on their behalf.
Technical Terms
Association
A relationship between two or more entities. Implies a connection of some type - for
example one entity uses the services of another, or one entity is connected to another
over a network link.
Component Model
The component model provides a detailed view of the various hardware and software
components that make up the proposed system. It shows both where these components
reside and how they inter-relate with other components. Component requirements
detail what responsibilities a component has to supply functionality or behavior within
the system.
Deployment Model
A model of the system as it is physically deployed.
Extends Relationship
A relationship between two Use Cases in which one Use Case 'extends' the behavior of
another. Typically this represents optional behavior in a Use Case scenario - for
example a user might optionally request a list or report at some point in a performing a
business Use Case.
Right-click on the list to view the context menu, and select to add, modify or delete list items, or to set a status
filter. To set the sort order, click the title-bar of the column on which to index the tasks.
For more information see the Add, Modify and Delete Tasks 330 topic.
Tip:
Select the Print List menu option to print out the currently displayed items.
Note:
You can transport these task definitions between models, using the Export Reference Data 223 and Import
Reference Data 225 options on the Tools menu.
Add a Task
To add a task, follow the steps below:
1. Double-click in a blank area of the Project Tasks tab, or right-click and select the Add New context
menu option. The Task Detail dialog displays.
2. Enter the details for the task. You can define the following:
· The task name
· Auto counters 525 - if you have configured these, click on the Auto button
· The task type
· The task owner
· The expected start and end date for the task
· The current status of the task
· The person this task has been assigned to
Modify a Task
To modify a task, on the Project Tasks tab, either:
· Double-click on the task to modify, or
· Right-click on the task to modify and, from the context menu, select the Modify Selected menu option.
The Task Detail dialog displays, and you can edit the task data.
Delete a Task
To delete a task, follow the steps below:
1. On the Project Tasks tab, right-click on the task to delete. The context menu displays.
2. Select the Delete menu option.
Notes:
· You can transport these issue definitions between models, using the Export Reference Data 223 and
Import Reference Data 225 options on the Tools menu.
· In the Corporate, Business and Software Engineering, System Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Manage Issues 198 permission to update and
delete Issues records.
You can add, delete and modify 334 Issues using either the Project Issues 331 dialog, or the Issue Detail 333
dialog from the Project Issues tab of the System window. You can also generate and view an RTF report of
your issue list, using either the Project Issues 334 dialog or the Project Issues 334 tab.
Tip:
You can view sample report output in the Report Output Sample 335 topic.
Note:
In the Corporate, Business and Software Engineering, System Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Manage Issues 198 permission to update and
delete Issues records.
Note:
In the Corporate, Business and Software Engineering, System Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Manage Issues 198 permission to update and
delete Issues records.
To access this tab, select the View | Other Project Tools | System menu option or press [Alt]+[2] to display
the System window, and click on the Project Issues tab.
Tip:
You can right-click on the list and select the Print List context menu option to print out the currently displayed
items.
To add 334 a new issue, double-click on an empty row of the Project Issues tab. To modify 334 an issue,
double-click on the required item in the list. In each case, the Issue Detail dialog displays.
You can also delete 334 an issue and generate a report 334 of your issues in Rich Text Format.
Component Description
Auto Click on the Auto button if you have auto counters 525
configured.
To modify an issue, double-click on it in the Project Issues tab or Project Issues & Discussion list, then edit the
fields as indicated in the above table.
To delete an issue, click on it in the Project Issues tab or Project Issues & Discussion list, then:
· Click on the Delete button (Project Issues dialog) or
· Right-click on the issue and select the Delete option from the context menu.
Tip:
For information on viewing sample report output, see the Report Output Sample 335 topic.
3. Right-click on a blank line of the Project Issues tab and select the Create RTF Report context menu
option. The Save As dialog displays.
4. Enter the directory location and file name to save your report to and click on the Save button. Enterprise
Architect generates the report. This should only take a few moments to complete.
Tip:
For information on viewing sample report output, see the Report Output Sample 335 topic.
Calibrating
The following values must be carefully calibrated in order to gain the best possible estimates:
· Technical Complexity Factors 336 , which are values that attempt to quantify the difficulty and complexity of
the work in hand
· Environment Complexity Factors 337 , which are values that attempt to quantify non-technical complexities
such as team experience and knowledge
· Default Hour Rate 340 , which sets the number of hours per Use Case point.
Estimating
Once you have entered all the calibration values, you can estimate the project timescale through the Use
Case Metrics dialog 338 .
Note:
You can transport the Technical Complexity Factors between models, using the Export Reference Data 223
and Import Reference Data 225 options on the Tools menu.
Weight
The TCF Weight indicates how much technical complexity you assign to a factor. For example, 'the system is
to be developed in ADA' might warrant a higher weight than 'the system is to be a shell script'. A weight
evaluates its respective factor, but is irrelevant to a project; the Value field assesses each factor's role within a
project. The supplied factors and their associated weights are defined by the Use Case Points Method,
although they can be adjusted to suit a project's specific requirements.
Value
For most purposes, the only table column requiring adjustment is Value, which indicates the degree of
influence a particular factor has on the project. As a suggested gauge, a value of 0 indicates no influence, 3
indicates average influence and 5 indicates strong influence.
Note:
You can transport the Environment Complexity Factors between models, using the Export Reference Data
223 and Import Reference Data 225 options on the Tools menu.
Weight
A Weight evaluates its respective factor's complexity in comparison to other factors, but is irrelevant to a
project; the Value field assesses each factor's role within a project. The supplied factors and their associated
weights are defined by the Use Case Points Method, although they can be adjusted to suit a project's specific
requirements.
Value
For most purposes, the only table column requiring adjustment is Value, which indicates the degree of
influence a particular factor has over the project. As a suggested gauge, a value of 0 indicates no influence, 3
indicates average influence and 5 indicates strong influence.
Note:
This technique is of value only once you have developed a couple of known projects to use as a baseline.
Please DO NOT use the provided 'guesstimates' as a real world measure until you have some real world
base lines to measure against.
Once the parameters are set up and the Use Cases defined, open the Use Case Metrics dialog by:
· Navigating to the package of interest and selecting the Project | Use Case Metrics menu option, or
· Right-clicking on the package of interest in the Project Browser and selecting the Documentation |
Package Metrics context menu option.
Option Use to
Root Package Confirm the root package in the hierarchy. All Use Cases under here could
potentially be included in the report.
Reload Re-run the search, usually after you change the filter criteria.
Phase like Include Use Cases with a phase that matches the wildcard value in the field (use * to
match any characters, for example 1.* for 1.1 and 1.2).
Keyword like Include Use Cases with a keyword that matches the wildcard value in the field (use *
to match any characters).
Technical Complexity Review the parameters that describe the degree of technical complexity of the
Factor project. While the unadjusted TCF value comes from theTechnical Complexity
Factor 336 tab of the Metrics and Estimation Types dialog, the other values compose
the Use Case Points Method formula. Modify these fields with caution. The final
project estimate is directly proportional to the TCF.
Environment Review the parameters that calculate the degree of environmental complexity of the
Complexity Factor project, from factors such as programmer motivation or experience. The listed
parameters compose the formula calculating the ECF, defined by the Use Case
Points Method; the only parameter affected by the project is the unadjusted ECF
value, derived from the Environment Complexity Factors 337 tab of the Metrics and
Estimation Types dialog. The final project estimate is directly proportional to the
ECF.
Unadjusted Use Check the sum of the Use Case complexity numbers.
Case Points (UUCP)
Ave Hours per Use Check the average of the number of hours assigned to easy, medium and difficult
Case Use Cases; for information purposes only.
Total Estimate Review the detailed breakdown of the final figure. Note that you must tailor the hours
Option Use to
per Use Case point figure to the level that matches your type of project and
capability based on known previous project outcomes.
Default Rate Set the default hours 340 fed into the final calculation.
Re-Calculate Re-run the estimate, usually after you change the hours or Use Case point number.
Report Produce a rich text formatted report from the current estimate.
Type values in the Duration and Hourly Rate fields; click on the OK button to save the current values.
Notes:
· The values you enter are stored as local settings on your computer only.
· This option is also active in the 'Lite', read-only version of Enterprise Architect.
Setting an hourly rate is the most difficult factor in an accurate estimation. Typical ranges can vary from 10 to
30 hours per Use Case point. Studying the Use Case Points Method, from which this variable is defined, can
help you to understand its role in the estimation and facilitate selection of a suitable initial value. The best way
to estimate this value is through analysis of previous completed projects. By calculating the project estimation
on a completed project for which the Use Cases and environment are configured within Enterprise Architect,
you can adjust the hour rate to render an appropriate value for your unique work environment.
3. Select:
· The new status
· Whether to recursively descend the package tree
· Whether to include elements
· Whether to include element requirements
· Whether to include element constraints
4. Click on the OK button. Enterprise Architect updates all required elements to the new status.
You clear the bookmark by clicking on the element and pressing [Shift]+[Spacebar] again, or by selecting
the Edit | Bookmark Selected menu option again.
Tip:
The Model Search window 1235 also enables searching based on bookmarked elements.
You can also bookmark all elements in a folder (and their children) using the Manage Bookmarks dialog.
Right-click on the parent package in the Project Browser and select the Bookmarks context menu option.
This dialog enables you to automatically bookmark elements that have new changes or defects defined in the
Maintenance 1558 window, or test scripts defined in the Testing 1537 window. This is useful to highlight elements
that have additional project information.
To clear all elements of bookmarks:
· In the current package tree, click on the Clear All button on the Manage Bookmarks dialog
· In the current diagram, select the Edit | Clear All Bookmarks menu option.
You should reload the project 267 to show the new or cleared bookmarks ([Ctrl]+[Shift]+[F11]).
You can therefore use the Model Views facility to monitor various events in the development project,
depending on how you set up the search in a View. You could, for example, set up a search to detect:
· Change items, or Issue items, so that Enterprise Architect would notify you as new items were created
· Element Status, Type, Phase, Version, Priority and/or date of last update, so that Enterprise Architect
would notify you as items were progressed to fall in to the level of work represented by the search
categories, and to move out of the categories into the next level of work.
· Tagged Values, so that - again - as items were changed to satisfy the criteria of a sequence of searches,
the progression of items through a set of stages could be checked and managed.
People responsible for different stages in a process could have their own Model View searches so that as a
development, validation or authorization task falls due the responsible person is automatically notified, and
when the work is complete both the next person in line and the overseeing manager are notified.
3.7 Maintenance
This topic highlights some administrative functions you might have to carry out to maintain your model:
· Check Project Data Integrity 344
Note:
This function does NOT check UML conformance, only the data relationships and repository structure.
You can select a variety of items to check, and select either to just report on the state of your model, or to try
and repair any inconsistencies. The recovery process tries to restore elements where possible, but in some
cases simply deletes the lost records.
See Also
· Run SQL Patches 346
To check the data integrity of your project, follow the steps below:
1. Select the Tools | Data Management | Project Integrity Check menu option. The Project Integrity
Check dialog displays.
Warning:
If you intend to select the Recover/Clean option, you should back up your project file first.
4. To write a log of the integrity check, click on the Save Results button and select a log file.
5. Click on the Go button to run the check. If you want to display the resulting information in a more
readable layout, you can resize the dialog and its columns.
3. To proceed, click on the OK button, or to cancel the migration click on the Cancel button.
4. If you are proceeding, click on the Go button on the Project Integrity Check dialog to perform the
migration.
Notes:
· For replicated models: If the wizard detects the project you are opening is a replica and not a Design
Master, a different upgrade path 347 is required.
· Once upgraded, the project cannot be opened with the version of Enterprise Architect in which it was
created.
Notes:
· Compacting shuffles the contents of the model around, eliminating unused space and generally reducing
the size of your model file.
· In the Corporate, Business and Software Engineering, System Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Administer Database 198 permission to compact
a project.
Warning:
Always compact and repair projects on a local drive, never on a network drive.
Warning:
Never attempt to repair a project over a network connection; copy it to a local drive first.
Notes:
· Poor network connections can also cause this symptom.
· In the Corporate, Business and Software Engineering, System Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Administer Database 198 permission to repair a
project.
Note:
All users must be logged off the project you are attempting to repair.
2. In Enterprise Architect, select the Tools | Options menu option and on the General page deselect the
Use Jet 4.0 - requires restart checkbox.
3. Close and restart Enterprise Architect and open a place holder project to enable access to the Repair
.EAP File facility.
Note:
This is NOT the project you intend to repair, it is a copy of it.
4. Select the Tools | Manage .EAP File | Repair .EAP File menu option.
5. Follow the on-screen instructions.
There are several options to customize how Enterprise Architect displays and works with models and model
elements. This topic describes those settings that are local to a particular user and machine.
Select the Tools | Options menu option to display the Options dialog.
Most of these settings are stored in your registry so they are set for your use only. For a networked workplace,
registry settings can be copied down to any network workstation you log in to. Otherwise, the settings are valid
for the current machine only.
You select the required page of options by clicking on the appropriate category name in the left hand list on
the dialog. For information on the options on a specific page, select the appropriate page title below.
Note:
The options in the second and third columns above, and additional defaults and settings, are discussed
under the various code generation and import/export topics in this User Guide.
3.8.1 General
The General page of the Options dialog is shown below:
Option Use to
Author Set the default author when new elements are created and modifications
made.
Clipboard Format Set the graphic format in which to save image to the clipboard; Metafile
has the best detail.
Use Jet 4.0 - requires restart Set JET 4.0 as the database engine; this ensures compatibility with .EAP
files that are in turn compatible with versions of MS Access later than
Access 97, and that support unicode character sets.
If your project is not in a Jet 4.0 database, you should also download a
copy of the Jet 4.0 EABase Model from the Sparx Systems website, and
do an EAP to EAP transfer 307 of your model into the Jet 4.0 file.
Use extended « and » Apply the guillemet characters to stereotypes. For some double byte
characters character sets, it is best to select this checkbox.
Option Use to
Allow custom RTF tags in Enable you to use customized rich text format code in report templates
reports when generating reports with the Legacy RTF Report Generator 1628 .
From release 7.0 of Enterprise Architect, with the Notes 642 formatting
facility, this option is not really necessary.
Web Home Specify the default home page to open when you click on the Home
button in the internal web browser 103 .
Web Search Specify the default web page to open when clicking on the Web Search
button in the internal web browser 103 .
Web Mail Specify the email server address (http://xxxxx/exchange/) for accessing
email through the web browser 103 within Enterprise Architect.
Confirm Deletes Use or bypass the Confirm Delete dialog; only clear this checkbox if you
are an experienced user!
Allow Free Sorting Enable you to re-order elements within a package regardless of element
type, in the Project Browser.
Show Stereotypes Show element and feature stereotypes in the Project Browser.
Always open maximized Ensure that Enterprise Architect always starts up in a maximized window.
Hide Properties Info Section Hide or show the properties information status bar on the Properties
window.
Docked Windows Tabs on Display the docked window tabs at the bottom of the window (default).
Bottom (requires restart) Clear the checkbox to show the tabs at the top of the windows.
Main Diagram Tabs at Bottom Display the diagram tabs at the bottom of the main view (default). Clear
(requires restart) the checkbox to show the tabs at the top of the main view.
Model Loading Strategy Select the Enterprise Architect model loading behavior; choose either:
· Load on Demand (Lazy Load)
· Preload Entire Model
Load on Demand does not load the full project view when the model is
loaded. Instead, only the parts that are necessary to display the visible
portion of the tree are loaded. This means that a model loads faster and
users can begin work sooner, but at the expense of later small delays as
Enterprise Architect loads specific portions of the model.
To display the range of colors available for an item, or define a new color, click on the down arrow at the end
of the appropriate field. The selection pallet displays.
Click on the required color. This sets the field on the Standard Colors page to the selected color.
If you require a wider selection of colors, click on the Other button and select from the color chart, or
customize a color using RBG/HSL codes.
If you decide to reset the color to the system default, click on the Default button.
Option Use to
Option Use to
Note Compartment Text Define the color of text in the element Note compartment.
Show Project Custom Enable use of project custom colors; for more information on setting and
Colors in Element Format getting the custom colors see the Get and Set Project Custom Colors 540
toolbar topic.
Notes:
· Using this page of the Options dialog, you can set the background of all diagrams to be a specific color.
You can also use the Diagram Appearance 356 page to set all diagram backgrounds to be either a uniform
color or to have a fade gradient from top to bottom. Alternatively, you can create a background image for
the diagram; see the Create Custom Diagram Background 448 topic.
· To override the default appearance of a specific element on all diagrams on which it is found, right-click on
the element and select the Appearance | Default Appearance context menu option. The Default
Appearance 538 dialog displays.
· To change the appearance of a specific element on the current diagram only, use the Format 85 toolbar
85 . If the Format toolbar is not displayed, select the View | Toolbars | Format Tool menu option.
3.8.3 Diagram
The New Diagram Defaults page of the Options dialog enables you to configure overall options for new
diagrams and general diagram behavior.
Option Use to
Default Page Size Show the default page size for new diagrams, which you set by clicking on
the Page Setup button to display the Page Setup dialog.
Landscape Print pages in landscape orientation. This checkbox is controlled from the
Page Setup dialog.
Show Diagram Notes Display the diagram details in the top left corner of all diagrams in the model.
Details include diagram name, package, version and author.
Use Opaque Diagram Specify where opaque diagram labels should display. Screen and Printing
Labels are best, Clipboard and Files might not be desirable.
Strict UML Syntax Enforce compliance with UML syntax when adding new connectors and other
structures.
Disable fully scoped Disable fully scoped object names, when an element is in a diagram; don't
object names use when the element is in its home package. A scoped name is of the
format MyClasses::foo, the :: character indicating that the Class is within
another namespace.
Allow change of Created Enable the creation date on the Diagram Properties dialog to be altered.
Date
Option Use to
Auto-pan with middle Turn on auto-panning using the middle mouse button. With this option off, the
mouse button middle mouse button causes a different type of panning.
Scale Saved Bitmaps to Enable Enterprise Architect to save bitmaps at a higher resolution, suitable for
using in published works.
Image Memory Limit Set an image memory limit when generating images for RTF or HTML and
when saving images to file. It is important when you have very large diagrams,
as it affects the point at which Enterprise Architect starts to scale down the
image; a low memory setting means it scales the image sooner.
Diagram Frames Select whether diagram frames are to be automatically added to images of
diagrams in files saved to disk, print-outs, and the default Enterprise Architect
clipboard.
A diagram frame 766 is a labeled outline around the diagram image, providing
both a border and a reference.
3.8.3.1 Appearance
The Diagram Appearance page of the Options dialog enables you to define how diagrams and their contents
appear on display.
Option Use to
Configure Default Element Set the default model and user text fonts 357 .
Fonts
Renderer Render smooth curves and diagonal lines in diagrams, so that staggered
vertical or horizontal pixels are less obvious. Select the type of renderer you
prefer to use:
Option Use to
Default Element Border Set the default element border width (in pixels).
Width
Scale view by Automatically increase the size of all objects on a diagram by up to 50%,
without affecting other users reading that diagram.
You can perform the same function with the Zoom Slider on the Status 89
bar; changes in the 'zoomed' display scale of a diagram update this field
and affect any other diagrams that you open.
This has no impact any other diagram Zoom facility in Enterprise Architect.
Print in Color Print your diagrams in color. Deselect the checkbox to print the diagrams in
black and white.
Compress text to fit within Determine the behavior of Enterprise Architect when text at zoom levels
Element other than 100% would not fit inside the boundary of an element. Enterprise
Architect either compresses the text to fit within the boundary, or expands
the element.
Element Shadows On Display a shadow around the bottom and right edges of each element in a
diagram.
Invert rotated text for Use different text format when external metafile readers are causing issues.
metafiles
Show Gradient Fill for Paper Switch between having a color gradient in the diagram background, or
Color having a solid, uniform background color.
Gradient Fill Direction For Select the direction for the color gradient within element boxes, or <none>
an Element for no color gradient.
2. To set a model font, in the Font Face field of the Model Font panel, click on the drop-down arrow and
select the appropriate typeface.
3. In the Font Size field, click on the drop-down arrow and select the required font size.
4. To clear a model font so that the user font takes effect, click on the Clear button. (Ensure that this is
acceptable to all other team members.)
5. To set a user font, in the Font Face field of the User Font panel, click on the drop-down arrow and
select the appropriate typeface.
6. In the Font Size field, click on the drop-down arrow and select the required font size.
7. To return the user font to the Enterprise Architect default (Arial 8), click on the Restore Defaults button.
8. To save the changes, click on the OK button.
Both model and user fonts are overridden by specifically-defined element fonts, so that the element is viewed
as designed regardless of the model or user defaults. To define the font for a specific element, right-click on
the element in a diagram and select the Appearance | Set Font 556 context menu option.
If you cannot read the diagrams because the default font makes the objects and text too small, you can scale
up all objects (that is, all diagram displays) to a more readable size for you only; the objects are not scaled up
for other users. Everything on the diagram is enlarged to the same extent, so it remains in proportion and
readable. To do this, return to the Diagram Appearance page of the Options dialog and enter a suitable
percentage value in the Scale view by 357 field.
3.8.3.2 Behavior
The Diagram Behavior page of the Options dialog enables you to define how a diagram responds to actions
taken on it.
Option Use to
Auto Instance Automatically create object instances when dragging certain element types -
such as Class and Component - from the Project Browser, with the dragged
element as the classifier.
Instance has Classifier Automatically apply the classifier style of the element an instance is
style instantiated from when the instance is created.
Show Life Lines Show life lines for Sequence elements in non-Sequence diagrams.
Layout uses all relations Show all relationships in a diagram layout; deselect the checkbox to show
only Generalizations and Associations.
Auto Save Changes Automatically save your changes as you work, without having to confirm
prompts to do so.
Show 'Hidden' Parents Display any parents of elements in the diagram that are not part of the
diagram.
Auto Group Elements Also move visually composed elements when moving diagram nodes. A node
is considered composed if it is contained by the moved element and has a
higher z-order. Press and hold [Alt] whilst moving an element to toggle this
option.
Show Package Item Display the + and - indicators representing the scope of the items.
Scope
Option Use to
Shift-Mouse Autoscroll Enable you to press and hold [Shift] and use the mouse to autoscroll around
diagrams.
Use Automatic Generate a new Structured Activity linked to the diagram from a Structured
SubActivities Activity diagram dragged from the Project Browser.
Always Highlight Context Show a hatch border 543 around a selected element.
Element
Grid Size Specify the grid size, if you have selected Objects Snap to Grid.
Auto Tidy Automatically tidy line angles 617 for custom connectors. This 'nudges' the
custom line into horizontal and vertical increments.
Tidy line gap Specify the amount Enterprise Architect should enable you to move a line
away from horizontal and vertical when you are tidying lines 617 for custom
connectors. (See Auto Tidy above).
Alias only Display the alias instead of the element name on elements with aliases.
Alias and Name Display both the element name and the Alias in the format (Alias) name.
Use alias field for role Replace the Alias property of instances with a Role property.
3.8.3.3 Sequence
The Sequence page of the Options dialog enables you to configure various font settings and the focus of the
control indicator for Sequence diagrams.
Option Use to
Message Spacing Specify the vertical gap (in points) between Sequence messages (can be
overridden manually by dragging a message up or down).
Default page layout is Set the default orientation of Sequence diagrams to landscape.
Landscape
Default concurrency is Set the default concurrency for Sequence Messages 868 to Asynchronous;
Asynchronous deselect to set the default concurrency to Synchronous.
Width Select the line width (in points) of the 'focus of control' rectangle (thick part of
lifeline).
Assume message returns Assume implicit returns when none are explicitly drawn (recommended).
GarbageCollect Automatically truncate lifelines for created elements after the last message
(that is, assume garbage collect rather than explicit delete).
Name Display the MS Windows Font dialog (click on [ ... ]) and define the font of the
caption bar heading (above your diagram); this is particularly useful for non-
English character sets.
Size Specify the size of the heading font (this overrides the font size in the Font
dialog, above).
Use System Apply the Enterprise Architect system default heading font.
3.8.4 Objects
The Objects page of the Options dialog enables you to configure how elements look and respond in diagrams.
Option Use to
Highlight References Highlight parameters in operations that are passed by reference rather than
value.
Prefix/Suffix Indicate whether to use the Reference Char(s) value as a prefix (before) or a
suffix (after).
Warn about spaces in Enable or hide the warning message that a Class, operation or attribute name
class names has embedded spaces (which can cause coding problems).
Classes honor analysis Show Classes as their stereotype; for example, if a Class is stereotyped as a
stereotypes Boundary, it appears as a Boundary rather than a Class.
Show stereotype icon for Show or hide a code letter in the top right corner of Requirement (E, for
requirements external), Change (C) and Issue (I) elements.
Support for Composite Enable you to drag child elements onto parent elements in a diagram 529 , and
Objects automatically embed them (and drag embedded child elements out of parent
elements, breaking the child-parent relationship).
Auto-resize marks Ensure that auto-resizing of elements (such as Classes) marks the current
diagram 'dirty' diagram as changed (asterisk on the diagram name tab), so it should be
saved.
Option Use to
Highlight {abstract} Highlight abstract elements with a suitable tag {abstract} in the top right of the
elements Class.
Allow elongated Use Stretch Use Cases or Use Case extension points with long names to enable
Cases space for the name. If you deselect the checkbox, Use Case re-sizing is
proportional.
Show status colors on Enable color coding 653 for Requirements and similar elements.
diagrams
Copy inheritance links on Duplicate Inheritance and Realization connectors when an edit/copy is
duplicate performed.
Port and Part type visible Enable Port and Part types to be shown by default.
by default
Show buttons for selected Display the floating toolbar buttons to the left of the selected object. For
Object on diagram example:
Edit Object on New Automatically show the element Properties dialog when a new element is
added.
Show «column» Hide or show the «column» stereotype used when data modeling.
stereotype
Extend Complexity Extend levels of complexity to five levels in the Complexity option in the
Properties window. Otherwise only three levels are available.
UML 1.5 Components Use UML 1.5 components (Enterprise Architect versions 4.0 and later support
UML 2.x).
Show State Compartment Show or hide the State Compartment divider under the state name.
Sort Features Sort element features alphabetically. Features include Attributes, Operations,
Alphabetically Tags, Constraints and Test Cases.
Advanced Set the visibility 363 of certain elements in reports and in diagram packages.
3.8.5 Links
The Links page of the Options dialog shown below provides options for the creation, behavior and notation for
connectors.
Option Use to
General
Edit Connector on New Automatically show the connector Properties dialog when a new
connector is added.
Association default = source --> Set the direction of new Associations to source->target (that is, with an
target arrow head at the target).
Option Use to
Draw Aggregations Reversed Draw Aggregate and Composite connectors from target element to
source element. When deselected (the default), these connectors are
drawn from source to target.
Note:
All tools have the parent as the target and the child as the source of
the connector, that is a requirement of UML; only the direction in
which you drag the mouse to draw the connector is changed.
Prompt on connector deletes Display a prompt before deleting connectors 619 , offering the choice of
hiding the connector on the diagram or deleting it completely.
If you deselect this option, the delete operation defaults to the last
setting on the dialog.
Show Override Operation dialog Show the Override Operation dialog automatically when adding
on new connector generalizations and realizations between Classes and Interfaces, if the
target element has features that can be overridden.
Suppress ' + ' Role Scope Ensure that the role and scope are not displayed on the diagram.
Default Style
Quick Linker
Show Help Add a 'help' menu option to the end of the Quick Linker menu.
Center to center
Change the position of the dashed guide line for new connectors.
Exact placement
Select the Use Communication Message Coloring checkbox to turn on colored messages. When you
enable this option, Communication messages appear in different colors depending on the sequence group
they belong to on a diagram; for example, 1.n are black, 2.n are red, 3.n are green.
Click on the down arrow in each color field, and click on the appropriate color for the message group. Set the
color sequence as required; the pattern repeats after 8 sequence groups.
Option Use to
Editor Set the default editor for any XML documents you open within Enterprise
Architect.
Format XMI Output Set whether or not formatting is applied to your XMI output.
Write Log Set whether or not to write to a log file when you import or export XML.
Export Diagrams Set whether or not to export diagrams when you export XML.
Export Alternate Images Set whether or not to export the alternative images 447 used in the model when
you export to XML.
Note:
If this option is set, and you have packages in your model under version
control, then any alternative images used in those packages are also exported
to the version control repository when you check in 261 the packages.
In this case, you would only select the checkbox if the alternative images are
subject to frequent change. Otherwise, do not select this option and instead
use Export/Import Reference Data 223 to manage alternative images.
Default XMI Version Set the XMI version to use: Enterprise Architect or Rose.
Code Page Set the Code Page to use; setting a NULL encoding string results in the
encoding tag being entirely omitted from the XML output. Click on the Default
button to restore the setting to the default Code Page.
Option Use to
Export Diagram Images Set whether or not to export diagrams as images when you export XML.
Image Type Define the format of the image to export to if Export Diagram Images is
selected.
Prefix EA Tagged Values Set whether or not to prefix any Enterprise Architect Tagged Values within any
in XMI 1.0 with ea$ XMI 1.0 you create, with ea$.
Update Last Save Time Set whether to update the timestamp of the last time controlled packages were
in Controlled Packages saved.
Default XML Directory Define the default XML directory to use when importing and exporting XML.
IV
370 Modeling Fundamentals |
4 Modeling Fundamentals
Modeling can be described as graphically representing a business process or software system. The resulting
model can be used to emphasize a certain aspect of the system being represented, and to record, document
and communicate its detail. A study of such a model can enable insight or understanding of the system.
Building a Model
Using Enterprise Architect, you can quickly build a model using a hierarchy of packages to represent the
structure and organization of the model. Each package can contain:
· Other packages
· Diagrams that represent various aspects of the equipment, environment and business processes of the
system
· Elements that represent the objects and actions within the system or process, arranged in an organization
defined by relationships represented by UML connectors.
The Quick Start Tutorial 28 topic briefly shows you how to create a diagram within a package, containing
elements and connectors. Sparx Systems also provide a demonstration of quickly developing a Use Case
model.
For specific details of configuring and combining the components of a model, see:
· Packages 387
· Diagrams 391
· Elements 478
· Connectors 606 .
Relationship Matrix
The Relationship Matrix enables you to display and manage the relationships between the elements within
selected packages. You can refine the display to show specific types of relationship between specific types of
element. The Relationship Matrix 1261 is an effective and convenient method of visualizing relationships quickly
and definitively.
4.1 Modeling
Enterprise Architect is a comprehensive UML analysis and design tool. It provides a library of UML data
structures that you can use and extend to develop your models.
For an explanation of how Enterprise Architect interprets the UML standards and specifications, see the
Standard UML Models 672 topic.
· You create your projects and models using the Start Page 50 or File Menu 56 , which provide templates
373 on which to base your models
· You initially create your packages and diagrams using the Toolbars 79 and Menus 54 , and the elements
and connectors using the Diagram Toolbox 399
· You can also create new structures through the Project Browser 1209 , and re-use existing structures using
the Project Browser, Model Views 1222 , Element List 1255 and Model Search 1231 .
Building models requires the use of various UML data structures and Enterprise Architect tools, as above, to
graphically represent a business process or software system. The resulting model can be used to emphasize
a certain aspect of the system being represented and to record and communicate its detail.
A further extremely useful tool is the:
· Relationship Matrix, which enables you to visualize and amend the relationships and hence organization
of structures within the model.
Enterprise Architect also provides particular support for:
· Requirements Management and
· Modeling the business process, an essential part of any software development process.
You can extend the scope of your models by using:
· UML Stereotypes, Profiles and Patterns, and
· MDG Technologies.
For more information, see the Modeling Fundamentals 370 , Build Your Own Modeling Language 1092 and
Requirements 917 topics.
4.2 Models
In Enterprise Architect a model is a special type of package, being the top level entry point to an Enterprise
Architect project file.
You can develop a project with one model, or with several. Each model is a root node of a hierarchy of Model
Packages and Views and, below them, packages. A model contains the diagrams, elements, relationships and
associated metadata that define the structure and function of a system or process. These components are
organized through the package hierarchy, which helps to group and manage related components. By iterating
through all models, you can access all the elements within the project.
You can create the model or models when you first create the project, or you can add and develop new
models later. You can also delete a model, but be aware that everything contained in the model is deleted as
well.
Option Use to
Select From Select the category containing the types of Model Package to create.
Technology (If you have advanced Add-Ins and MDG Technologies, this panel lists them). Select
the appropriate technology to list the associated templates in the Name panel.
To list the standard Enterprise Architect model templates 373 , select <default>.
If you are a Technology Developer, you can also create and distribute custom templates 1146 as part of your
own MDG Technology 1118 . The name of your technology displays in the Technology panel and, when you
select the technology, the model template names display in the Name panel. If you have defined a filter in your
Model Technology File, you can select that from the Select from: drop-down list.
Template Format
All the model templates provided with Enterprise Architect follow the format described below.
Note
The note introduces you to the model template and outlines its purpose.
Help Links
Help hyperlinks provide further information on how to use the model. Depending on the model template, links
to examples and other useful information are also provided.
Template
The Template section in the model template provides a framework for creating your own model.
The topics listed below provide an introduction to the terminology and icons used in the model templates, and
give you a quick guide to the UML concepts important to the templates and how they are applied in Enterprise
Architect.
· Business Process Model Template 374
Online Resources
· The Business Process Model
See Also
· Business Models 930
· Analysis Diagram 733
· Business Modeling/Interaction 739 Diagrams
Online Resources
· Requirements Management in Enterprise Architect
See Also
· Packages 387
Online Resources
· The Use Case Model
Online Resources
· The Logical Model
See Also
· Class Diagram 721
Online Resources
· UML Database Modeling
See Also
· Data Models 1011
Online Resources
· The Component Model
See Also
· Component Diagram 730
Online Resources
· The Physical Model
See Also
· Deployment Diagram 727
· Compartments - Tagged Values 521
Online Resources
· Testing Support in Enterprise Architect
See Also
· Testing 1536
· Test Case 848 element
· Show Test Script Compartments 1549
See Also
· Color Code External Requirements 920
Online Resources
· Project Manager
See Also
· Project Management 312
4.3 Views
The top level packages in a model (below the project root nodes) can be created as Views.
Views are used simply to subdivide the model into partitions such as Business Process, Logical View or
Dynamic View. Unlike Model Packages, they do not have automatically-generated components and can be
created only under a root node. They are a good way to extend the model depending on specific requirements
and modeling techniques.
There are six main types of View, each with their own package icon:
· Use Case View - containing, for example, Use Case diagrams 676 , Analysis diagrams 733
· Dynamic View - containing, for example, Activity diagrams 674 , Communication diagrams 715 , Sequence
diagrams 706 , State Machine diagrams 678
· Class View - containing, for example, Class diagrams 721 , Code Engineering 1281 , Data Models 739
· Component View - containing, for example, Component diagrams 730
· Deployment View - containing, for example, Deployment diagrams 727
· Simple View - to customize your own type of view.
You can use the first five categories, or devise your own based on the Simple View. You can create 383 Views,
rename 384 them, move them into a different order, or delete 385 them. Do this by right-clicking the mouse on
the selected View to open the context menu, and choose the appropriate option.
Create a View
To create a View, follow the steps below:
1. Right-click on the model root node in the Project Browser. The context menu displays.
2. Select the New View menu option. The Create New View dialog displays.
Procedure
To rename a view, follow the steps below:
1. Right-click on the View in the Project Browser. The context menu displays.
2. Select the Properties menu option. The Package Properties dialog displays.
3. In the Name field, type the new name and click on the OK button.
Warning:
If you delete a view, all its contents are deleted at the same time. It CANNOT be restored.
Procedure
To delete a view, follow the steps below:
1. In the Project Browser, right-click on the view to delete. The context menu displays.
2. Select the Delete <viewname> option. The following warning displays:
3. To delete the view and its contents, click on the Yes button. To cancel the deletion, click on the No
button.
4.4 Packages
A package is a container of model elements. It is represented in the Project Browser by the 'folder' icon
familiar to Windows users.
This topic explores the tasks you can perform with packages, including:
· Open a package 438
· Add a package 387
· Rename a package 388
· Copy a package 388
· Drag a package onto a diagram 389
Note:
In the Corporate, Business and Software Engineering, Systems Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Update Element 198 permission to update or delete
a package.
Tip:
Package contents are arranged alphabetically and elements can be dragged from one package to another
using the mouse.
4. In the Package Name field type the name of the new package.
5. To immediately create a diagram for the package, leave the Automatically add new diagram
checkbox selected. To avoid creating a diagram, deselect the checkbox.
6. If you are adding a package to a parent package that is under version control 228 , the Add to Version
Control option displays, with the checkbox selected. Deselect the checkbox to exclude the new
package from version control, otherwise leave it selected.
7. Click on the OK button. The new package is inserted into the tree at the current location and, if you left
the Automatically add new diagram checkbox selected, the New Diagram dialog 422 displays.
8. If you have selected to put the package under version control, the Package Control Options dialog
displays. Complete this dialog 295 as required.
Tip:
You can also add a new package element by dragging the Package icon from the Toolbox into a diagram. In
this case the package is created under the diagram's owning package, and is created with a default diagram
of the same type as that in which the package is created.
Note:
In a multi-user environment, other users do not see the change until they reload their project 267 .
Note:
In a multi-user environment, other users do not see the change until they reload their project 267 .
Notes:
· A copy of a package does not have the external cross references of the source package; that is, the
following connectors are discarded:
· Connectors coming from packages and elements outside the package being copied, into the
package being copied
· Connectors going to packages and elements outside the package being copied, from the
package being copied.
· You cannot paste a package into a parent package that is locked 205 by another user or that is checked in
261 . The Paste... option is grayed out in the context menu.
context menu option (or click on the package and press [Ctrl]+[C]). The Copy Package to Clipboard
dialog briefly displays until the copy operation completes.
See Also
· Show or Hide Package Contents 389
Warning:
Deleting a package also deletes all contents of the package, including sub-packages and elements. Make
very sure that you really want to do this before proceeding.
Note:
In a multi-user environment, other users do not see the change until they reload their project 267 .
4.5 Diagrams
Diagrams are collections of project elements laid out and inter-connected as required.
Enterprise Architect supports all of the UML diagrams, as well as several custom extensions. Together with
the Enterprise Architect elements and connectors, these form the basis of the model. Diagrams are stored in
packages and can have a parent object (optional). Diagrams can be moved from package to package.
The basic elements used in each type of diagram are shown below. After you have reviewed these
illustrations, go to the following topics:
· Diagram Context Menu 394
Tip:
If the diagram display is too small to read comfortably, click on the diagram, press and hold [Ctrl] and use the
mouse wheel to temporarily expand or reduce the display magnification.
Across the top of a diagram is the diagram caption bar, containing the diagram statistics.
This caption bar also enables you to switch or close the diagram. The caption bar provides the:
· Icon and text label for the diagram type
· Diagram name
· Date and time the diagram was created
· Date and time the diagram was last modified
· The current magnification (zoom) of the diagram
· The diagram page size, in pixels
· A drop-down arrow that lists the currently-open diagrams; click on a diagram name to switch to that
diagram
· The Window 'close cross'; click on this to close the displayed diagram.
Use the Diagram View to build model relationships and elements. Within the diagram, you can create new
elements, drag in existing elements and generally organize the elements and relationships. Most work is
carried out on elements in the Diagram View, so understanding how it works and how to manipulate elements
is essential. Use the example project supplied with Enterprise Architect to explore the capabilities and
behavior of the Diagram View.
Tip:
You can also use the Element List 1255 to manipulate elements.
Notes:
· The Component View tab is white with bold text; this means that the Component View diagram is the
diagram currently displayed in the Diagram View.
· The Use Case View tab has an asterisk. This means that there are unsaved changes in the Use Case View
diagram. To save the changes see below 398 .
· There are also tabs for other types of view, such as the Start Page (as shown), RTF reports, code editors,
the Model Search and the Relationship Matrix.
Reload '<tab name>' 1. Reopen the diagram without the unsaved changes; that is, revert to the
state before any changes were made.
2. Refresh the diagram 267 from the repository, to show any changes
made by other users in a shared model.
Close '<tab name>' Close the diagram; Enterprise Architect prompts you to save changes to the
diagram.
Close All Close all open diagrams; Enterprise Architect prompts you to save any
diagrams with unsaved changes.
Close All Except '<tab Close all diagrams except for '<tab name>'; Enterprise Architect prompts you to
name>' save any diagrams with unsaved changes.
Close All <view type> (Where several views of the same type can be opened at the same time, such
as diagrams, RTF documents, or text editors.)
Close all views of the same type as the selected tab, leaving views of other
types still open.
Tip:
You can also hide and show the whole Toolbox using the Show Element Toolbox button on the
Workspace Views toolbar.
To display specific pages in the Toolbox, select the More Tools option at the top of the Toolbox and select the
appropriate UML, Extended or customized diagram type from the menu.
In most cases, three pages display: <type> elements, <type> Relationships and Common. If you select the
<default> option, you display only the Common page.
Note:
Dropping a Package element from the Toolbox into a diagram
creates a new package in the Project Browser, and a default
diagram of the same type as the current diagram.
Tips:
· If you are creating several elements of one type, after creating the
first just press [Shift]+[F3] or [Ctrl]+click to create the next
element of that type. For connectors, click on the source element
and press [F3] to create another connector of the same type.
· You can change an unstereotyped element to one of its
stereotyped 895 elements by dragging the stereotyped element
from the Toolbox onto the unstereotyped element in the diagram.
For example, you can stereotype a Class by dragging a Table
element or a Profiled Class element onto it.
· If the diagram element already has the stereotype, you can also
drag the Toolbox element onto it to synchronize the element's
stereotype Tagged Values 910 .
Note:
Enterprise Architect provides Toolbox pages for a wide range of MDG Technologies, such as Archimate 1073 ,
BPEL, 958 BPMN 952 , Data Flow Diagrams 1076 , ICONIX 1084 and Mind Mapping 1087 , as part of the initial install.
You can also change other features of the Toolbox appearance - see Toolbox Appearance Options 401 .
Note:
On a Toolbox page for an MDG Technology or UML Profile, if you right-click directly on a profile element an
additional option - Synchronize Stereotype - is available at the end of the context menu. This enables you
to synchronize 910 the Tagged Values and constraints for all elements created from the selected profile
element.
· To hide the element or relationship labels (and subsequently redisplay them), select the Hide Labels (or
Show Labels) context menu option. The icons in the page then 'wrap' within the page, without text labels.
When you hide the labels, you can display the label of an individual element or relationship by moving the
cursor over the icon.
· To 'pin' the page so that it displays for any group in the Toolbox, select the Pin in Toolbox menu option.
(This is not available on the Common page, which displays in all groups anyway.)
For example, if you 'pinned' the Class elements page, and switched to the Communication pages, the
Toolbox would include a collapsed Class elements page underneath the Communication pages.
· To unpin the page so that it displays only in its own Toolbox group, right-click on it and select the Unpin
from Toolbox context menu option.
· To collapse a page to just show the heading (<type> elements, <type> Relationships or Common), click on
the 'minus' box at the left of the page heading. To expand the page again, click on the heading.
Alternatively, collapse the page by right-clicking on the page and selecting the Collapse context menu
option.
2. By default, the dialog lists the element pages only, in the order: UML pages, Extended pages, MDG
Technology pages. To include the corresponding relationship pages, select the Show Relationship
Pages checkbox at the bottom of the dialog.
3. For each page to display on the Toolbox, select the Visible checkbox. Deselect the checkbox if you no
longer require a page to be displayed.
4. When you have defined the list of pages to display, click on the OK button. The pages you have
selected are pinned to the Toolbox in a collapsed state, underneath the current diagram-type pages.
5. To expand a page, click on the heading. You can remove a page individually by expanding it, right-
clicking on it and selecting the Unpin from Toolbox context menu option.
Note:
MDG Technologies can impose their own Toolbox page visibility. For example, if ICONIX is the active
technology, all six ICONIX pages are automatically exposed in the Toolbox.
If the active Technology pages duplicate UML or Extended pages (as the ICONIX pages do) then the pinned
Technology pages override and replace the pinned UML and Extended pages.
For example, if ICONIX is active and you have pinned the Extended Analysis page, the Analysis page in the
list is the ICONIX-defined page, not the Extended Analysis page.
The advantage of using the Toolbox shortcut menu is that it provides an increased amount of the workspace
to be used for diagramming rather than to display fixed (instead of pop-up) menus.
To use the Toolbox shortcut menu, follow the steps below:
1. Open a diagram.
2. Either:
Note:
As with the Toolbox itself, if an MDG Technology:
· is active
· automatically pins Toolbox pages and
· duplicates UML or Extended pages
the pinned Technology pages override and replace the pinned UML or Extended pages in the initial Toolbox
shortcut menu.
The Use Case group is used to model the system functionality from the
perspective of a system user. The user is called an Actor and is drawn as a
stick figure, although the user could be another computer system or similar.
A Use Case is a discrete piece of functionality the system provides that
enables the user to perform some piece of work or something of value using
the system.
Examples of Use Cases are: login, open account, transfer funds, check
balance and logout; each of these implies some purposeful and discrete
functionality the system is to provide to a user.
A Test Case 848 describes what must be set up in order to test a particular
feature.
The connectors available include: associate (an actor uses a Use Case),
extend (one Use Case can extend another), include (one Use Case can
include another) and realize (this Use Case might realize some business
requirement).
To add an element to the current diagram, click on the required icon and
drag it into position on the diagram. Set an element name and other
properties as prompted.
To add a relationship, click on the required icon, then click on the start
element in the diagram and drag to the end element.
Note:
Invokes and Precedes relationships are defined by the Open Modeling
Language (OML). They are stereotyped Dependency relationships; Invokes
indicates that Use Case A, at some point, causes Use Case B to happen,
whilst Precedes indicates that Use Case C must complete before Use Case
D can begin.
The Class group is used for creating Class models and database models. Class
modeling is done using the Class and Interface elements, as well as occasional
use of the Object element to model Class instances. You can add Association
or Aggregation relationships. See the Class 376 model template for an example
of this.
Use the Table element to insert a stereotyped Class for use in database
modeling. See the Data Modeling 1011 topic for more details.
To add an element to the current diagram, click on the required icon and drag it
into position on the diagram. Set an element name and other properties as
prompted.
To add a relationship, click on the required icon, click on the start element in
the diagram and drag to the end element.
Object diagrams reflect multiplicity and the roles instantiated Classes could serve. They are useful in creating
different cases in which relationships and Classes are applied.
The user is called an Actor 757 and is drawn as a stick figure, although the
user could be another computer system or similar.
An Object 823 is an instance of a Class.
To add an element to the current diagram, click on the required icon, and
drag it into position on the diagram. Set an element name and other
properties as prompted.
To add a relationship, click on the required icon, then click on the start
element in the diagram and drag to the end element.
These reflect the internal collaboration of Classes, Interfaces or Components to describe a functionality or to
express run-time architectures, usage patterns and the participating elements' relationships, which static
diagrams might not show.
Note:
Communication diagrams were know as Collaboration diagrams in
UML 1.4.
Note:
Messages can be simple or recursive calls.
Activity elements enable you to describe the dynamics of the system from the
point of view of activities and flows between them. Activities can be
stereotyped as a process to display a business process icon. An Activity is
some work that is carried out; it might overlap several Use Cases or form only
a part of one Use Case.
Send and Receive events are included as triggers.
A Decision element marks a point where processing might split based on
some outcome or value.
The Flow relation models an active transition and synch points are used to
split and rejoin periods of parallel processing.
To add an element to the current diagram, click on the required icon, and drag
it into position on the diagram. Set an element name and other properties as
prompted.
To add a relationship, click on the required icon, then click on the start
element in the diagram and drag to the end element.
To add an element to the current diagram, click on the required icon, and drag it into position on the diagram.
Set an element name and other properties as prompted.
To add a relationship, click on the required icon, then click on the start element in the diagram and drag to the
end element.
The elements and relationships in the Analysis group are used for early
modeling of business processes, activities and collaborations. You can
use stereotyped activities to model business processes, or stereotyped
elements to capture standard UML business process modeling
extensions such as worker, case worker, entity, and controller.
To add an element to the current diagram, click on the required icon and
drag it into position on the diagram. Set an element name and other
properties as prompted.
To add a relationship, click on the required icon, click on the start
element in the diagram and drag to the end element.
The following diagram illustrates the GUI elements from the Toolbox, within a Screen element.
Note:
In the Corporate, Business and Software Engineering, Systems Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Update Element 198 permission to update or delete
items on a diagram, and Manage Diagram permission to create, copy or delete diagrams.
Note:
In the Corporate, Business and Software Engineering, Systems Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Manage Diagrams 198 permission to create new
diagrams.
To add a new diagram to an existing package or element, follow the steps below:
1. In the Project Browser, select the appropriate package or element under which to place the diagram.
2. Do one of the following:
· In the Project Browser toolbar click on the New Diagram icon
· Right-click to open the context menu and select the Add | Add Diagram or Add | Add <type>
Diagram menu option
· Press [Insert] and select the Add | Add Diagram or Add | Add <type> Diagram menu option, or
· Select the Project | Add Diagram menu option.
3. The Name field defaults to the name of the selected package or element; if necessary, type a different
name for the new diagram.
4. In the Select From panel, click on the appropriate diagram category 673 for the diagram. The Diagram
Types panel displays a list of the diagram types within the selected category.
5. In the Diagram Types panel, click on the type of diagram to create.
6. Click on the OK button to create your new diagram.
Note:
The diagram type determines the default toolbar associated with the diagram and whether it can be set as a
child of another element in the Project Browser (for example, a Sequence diagram under a Use Case).
Note:
· In the Corporate, Business and Software Engineering, Systems Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Update Diagrams 198 permission to change
diagram properties.
· You can also set the default diagram background color and the element fill color on the Standard Colors
353 page of the Options dialog. You can set color gradients for both diagram background and element fill
color on the Diagram Appearance 356 page of the dialog..
There are several options for opening the diagram Properties dialog for a given diagram:
· Select the Diagram | Properties menu option to open the Properties dialog for the currently active diagram
· Right-click on the required diagram in the Project Browser and select the Properties context menu option
· Right-click on the background of the open diagram and select the Properties context menu option
· Double-click in the background of the open diagram.
In the Diagram Properties dialog you can set properties including name, author and version information, zoom
factor, paper size and layout, diagram notes and various appearance attributes. Once you have made any
necessary changes, click on the OK button to save and exit.
See the following topics:
· General Tab 424
· Diagram Tab 425
· Elements Tab 426
Note:
In the Corporate, Business and Software Engineering, Systems Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Update Diagrams 198 permission to update
diagram properties.
Field Use to
Name Type the name of the diagram (defaults to the name of the parent package).
Author Type or select the name of the person who owns the diagram (defaults to the
name of the person who created the diagram).
Stereotype Type or select the name of the stereotype for the diagram. You can define
stereotypes to select here using the Settings | UML menu option, selecting the
Stereotypes 1093 tab and creating stereotypes with a Base Class of Diagram.
Modified Type the date and time on which the diagram was last modified (defaults to the
current date and time).
Notes Type any additional notes about the diagram. You can format the notes using the
Notes 642 toolbar at the top of the field.
Field Use to
Use Alias if Available Display the element alias as the name if the alias is specified.
Show Additional Parents Show the name of all parents not in the current diagram for all Classes
and interfaces.
Show Diagram Details Show diagram details in a note in the top left corner of the diagram.
(Deselect to hide the diagram details.)
Show Sequence Notes Show the Sequence Notes on the current diagram.
Show Namespace Show the namespace of each element on the diagram, under the
element; that is, PackageName::ElementName.
Always Open as Element List Always display the diagram contents as an Element List 1255 rather than
as a diagram.
Print Page Header and Page Add page headers and footers to a print-out of the diagram. The headers
Footer and footers are generated from the diagram characteristics, such as the
name of the creator and the date of modification.
RTF Document Options Options 1571 for generating RTF reports for a particular diagram.
Exclude image from RTF Exclude this diagram image from any RTF document generated on the
documents parent package or element.
Document each contained Include documentation on each element in the diagram, in any RTF
Field Use to
Divide Diagram into Multiple Divide each large diagram into separate pages in the RTF document.
Pages
Note:
This option is only effective when the Scaled Printing option 456 is set to
None on the Print Advanced dialog.
Rotate Images Rotate each diagram image by 90 degrees in the RTF document.
Note:
Only valid for bitmap (.bmp) images.
Field Use to
Use Stereotype Icons For elements that have whole shapes drawn by Enterprise Architect (such
as Analysis stereotypes 835 ), draw the alternative shape (if defined).
For elements that have an icon displayed in the top right corner, (such as
an Artifact 810 element) if Show Element Stereotypes is selected, display
the stereotype icon instead of the stereotype text.
Show Element Stereotypes For elements that have whole shapes drawn by Enterprise Architect, if Use
Stereotype Icons is deselected, display any stereotype on the element.
Field Use to
For elements that have an icon displayed in the top right corner, indicate
that a stereotype is present (icon if Use Stereotype Icons is selected, text
if not).
Show Table Owner Display the Table Owner. For more information, see the Set Table Owner
1016 topic.
Show Element Property Show the advanced property string for all elements; for example, {leaf}.
String
Show Compartments Enable the following compartments to be shown or hidden for any element
using rectangle notation:
· Attributes
· Operations
· Tags (Tagged Values)
· Requirements
· Constraints
· Testing (Testing Scripts 1549 )
· Maintenance (Maintenance Scripts) 1561
· Package Contents
· Notes.
Field Use to
Show Qualifiers and Visibility Show or hide the qualifiers and visibility indicators on the diagram.
Field Use to
Indicators Qualifiers include such things as the 'derived' symbol (/) and the public
key symbol (PK).
Visibility indicators 1282 include such things as +, -, # and ~, which
indicate the scope of access of the item (such as an attribute, operation
or role).
Show Property String Show the advanced property string for all element features, for example,
{readOnly}.
Show Operation Return Type Display the return data type of operations.
Suppress Brackets for Suppress brackets on operations that have no parameters; that is, Opn;
Operations Without Parameters rather than Opn();.
Visible Class Members Hide Class members according to their scope and methods that specify
properties. See the Visible Class Members 429 topic.
Show Attribute Detail Select whether to show both the attribute name and type or the attribute
name only.
Show Parameter Detail Control the display of method parameters. See the Visible Class
Members 429 topic.
Field Use to
Show Non-Navigable Ends Indicate when an Association end is not navigable; a cross is presented
at the Association connector.
Option Effect
If you select this option, the Copy connectors checkbox is enabled. If you select this checkbox, any
connectors between the original element and any other elements that have also been pasted to this
diagram are reproduced as connectors between the instances.
3. Create as a child of the source element. This automatically creates a new Class - which you are
prompted to name - with a Generalization connector back to the source. This is very useful when you
have a Class library or framework from which you inherit new forms; for example, you can paste a
Hashtable as "MyHashtable" which automatically becomes a child of the original Hashtable. Used with
the Override parent operations 578 feature, this is a quick way to create new structures based on
frameworks such as the Java SDK and the .NET SDK.
You can make your selection on this dialog the default for:
· all drag and drop operations, or
· only those where you display this Paste Element dialog.
If you select the This Dialog checkbox, you should then select the Only show this dialog when [Ctrl]
+Mouse drag is used checkbox and, on the Diagram Behavior 359 page of the Options dialog, the Auto
Instance checkbox.
The effect of these selections is to give you two default paste options:
· Just drag the element onto the diagram and automatically create an instance
· Press [Ctrl] while you drag the element from the Project Browser, displaying the Paste Element dialog, and
click on the OK button to automatically paste the element according to whatever option you last selected
from the dialog.
If you select the All Drag and Drop checkbox on the Paste Element dialog, this deselects the Auto Instance
checkbox on the Options dialog and enables you to add existing elements to the diagram according to the
paste option you selected, without pressing [Ctrl] and without displaying a dialog. (If you want to change the
default paste option, press [Ctrl] as you drag to display the dialog again and make your changes.)
See Also
· Connect Requirements 921
· Create Object From Attribute 568
· Make Linked Element A Local Copy 544
You can then drag the selected elements from the Project Browser onto the current diagram, pressing and
holding [Ctrl]; for each element you have selected, the Paste Element dialog displays, prompting you to select
the type of paste action 430 to carry out.
Two advanced options are available for pasting Composite elements; these require the include Embedded
Elements checkbox to be selected:
1. The All Embedded Elements option, which pastes all of the Composite element's embedded elements.
2. The Based on instance option, which pastes only the elements contained in a specific instance of the
Composite element, maintaining the layout of the embedded elements.
Click on the drop-down arrow and select the appropriate instance.
For details of the other options on this dialog, see the Paste from Project Browser 430 topic.
If you select this checkbox, any connectors between the original Activity and any other elements that have
also been pasted to this diagram are reproduced as connectors between the instances.
For details of the other options on this dialog, see the Paste from Project Browser 430 topic.
Note:
The Date Created and Time Created parameters of a pasted-as-new element are set to the current date and
time; the parameters for a linked element remain the same as the copied element.
If an element is not present in the current diagram, the context menu contains the Place Target Element in
Diagram option. This is useful when you are building up a picture of what an element interacts with, especially
when reverse engineering an existing code base.
Select the Place Target Element in Diagram option. Move the cursor to the required position in the diagram
and click to place the element. Alternatively, press [Esc] to cancel the action.
Notes:
· When you delete a diagram, you do not delete the elements in the diagram from the model.
· In the Corporate, Business and Software Engineering, Systems Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Manage Diagrams 198 permission to create new
diagrams.
Note:
Some diagram types do not transfer to others; for example you cannot change a Class diagram into a
Sequence diagram.
2. Select the Diagram | Change Type menu option. The Change Diagram Type dialog displays.
[Shift]+[Arrow], Element(s)
Move the selected element(s) by increments.
selected
[Tab] Select the first element in the diagram if none currently selected.
[Alt]+[G] Select the item in the Project Browser and give it focus.
· PNG format
· JPG
· TGA.
To copy a diagram image to file, follow the steps below:
1. Open the diagram to save.
2. Select the Diagram | Save Image menu option, or press [Ctrl]+[T].
3. When prompted, enter a name for the file and select an image format.
4. Click on the OK button.
Note:
Enterprise Architect clips the image size to the smallest bounding rectangle that encompasses all
diagram elements.
Note:
In the Corporate, Business and Software Engineering, Systems Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Manage Diagrams 198 permission to copy
diagrams.
When you copy a diagram in shallow mode, the elements in the new diagram are linked to the originals, so if
you change the properties of one, the other reflects those changes. If you copy the diagram in deep mode,
then all elements are duplicated completely, so that changing an element on one does not affect the other.
Element position and size should be independent in both copy modes.
You can also paste a copied diagram as a child of a composite 837 element.
Procedure
To duplicate a diagram, follow the steps below:
1. In the Project Browser, select the diagram to copy.
2. Right-click to display the context menu and select the Copy Diagram menu option.
3. Navigate to the package to host the new diagram, and right-click to open the context menu.
4. Select the Paste Diagram menu option. The Copy Diagram dialog displays.
5. In the Name field, type the name for the new diagram.
6. In the Type of copy panel, click on the radio button for the type of copy you require; either linked
elements (shallow copy) or complete copies of the originals (deep copy).
7. Click on the OK button.
Enterprise Architect automatically creates the new diagram, links or creates new elements and arranges them
as in the original diagram. All links are also copied between diagram elements where appropriate.
3. Select the operation to perform. The element is moved to the new position in the diagram perspective.
Tip:
Once you have specified a default diagram, the Home icon on the Diagram toolbar takes you back to that
diagram from your current location in the model.
Note:
Enterprise Architect finds the package default diagram and opens it for you. This is the first available diagram
in the package, selected in alphabetical order; for example, a diagram called Alpha in a child package or
element several levels down opens before a diagram called Beta immediately under the selected package.
Tip:
To show features for element types that do not have visible compartments, such as Use Cases and Actors,
right-click on the diagram object to display the context menu and select the Advanced Settings | Use
Rectangle Notation option.
2. To filter display of attributes or operations by scope, select the checkbox against each scope that
should be visible and clear the checkbox against each scope that should not.
Note:
The Show checkbox, if selected, overrides these selections to display all attributes or operations in the
element, except those specifically deselected in the Show Features in Diagram 440 dialog (below).
3. In the Show Element Compartments panel, select the compartments to display for the element on the
diagram.
The Fully Qualified Tags checkbox enables you to display the full provenance of a Tagged Value,
where the same Tagged Value can be used several times in different contexts with different values. The
description in the Tagged Value compartment reads:
(Only for Tagged Values created in Enterprise Architect release 7.1 or later.)
If you select the Notes checkbox, the Notes compartment on the element in the diagram displays the
text that has been typed into the Notes field of the Element Properties dialog. This checkbox also
enables the maximum chars field, which defaults to 1000 as the number of characters of notes text
displayed. Overtype this value to display less text or more text.
The change only applies to the selected elements on the diagram, so you can display full notes for a
selected element whilst the other elements on the diagram have no notes text.
Note:
If you have selected the Notes checkbox, you can select the Render Formatted Notes checkbox to
display the text on the diagram, formatted using the Notes 642 toolbar.
4. In the When Resizing Elements panel, select the appropriate option for resizing the Class, object or
table to prevent very wide diagram objects.
The selected option defaults to Resize to longest Feature, so that the minimum width for a diagram
object is determined by its longest displayed attribute, method or other compartment value. If
necessary, you can change the option to Wrap Features (so that any longer features are wrapped onto
multiple lines) or Truncate Features (so that longer features are not displayed in full).
5. If required, in the Inherited Features panel, select one or both checkboxes to set whether Enterprise
Architect should display inherited features as well as directly owned ones.
6. Click on the OK button to save changes. Enterprise Architect redraws the diagram with the appropriate
level of feature visibility.
The two dialogs are identical, but in the first you select the checkboxes of specific features to show, and in the
second you select the checkboxes of specific features to hide.
You can also use the Filter by Scope button in this dialog to, for example, list only operations that are
Protected and select, say, two of them to hide, so that on the diagram the element displays all but two of the
Protected operations and all operations of other scopes.
You can move this text box around and change its appearance 538 . You cannot change what the text box
says.
To create the note, drag the Diagram Notes element from the Common page of the Toolbox onto the diagram.
Alternatively, select the Diagram | Property Note menu option, or click on the Diagram Properties Note
button on the UML Elements toolbar and click on the diagram.
Note:
This is not the same as the diagram details note, which displays in the top left corner of the diagram if the
Show Diagram Details checkbox is selected on the Diagram Properties 425 dialog. You cannot move the
diagram details, nor change the appearance. To hide the diagram details, deselect the checkbox.
You add a Legend to the diagram, then edit it to add Legend elements, which define the colors and styles
used in the diagram.
Add a Legend
To add a Legend to a diagram, drag the Diagram Legend element from the Common page of the Toolbox
onto the diagram (or click on the New Diagram Legend icon ( ) on the UML Elements toolbar, and click
on the diagram).
The Legend dialog displays.
Click on the OK button. The Legend displays on the diagram as a simple rectangle.
Edit a Legend
To edit the Legend follow the steps below:
1. Either:
· Double-click on the Legend, or
· Right-click on the Legend and select the Properties context menu option.
The Legend dialog displays.
Note:
The Legend dialog enables you to add, delete, modify or re-sequence Legend elements. Use the Fill
tab to define the Legend elements for shapes, then click on the Line tab to define Legend elements for
lines and connectors.
2. In the Name field, type the name of the Legend element; for example, Management System or Help.
3. Use the drop-down arrows to select the fill color, line color and line thickness for the Legend element.
4. Click on the Save button to save the Legend element. The element displays in the Fill or Line tab, as
appropriate.
5. Click on the New button to add another Legend element.
Style Options
Click on the Style Options button [ ... ] to display the Style Options dialog, on which you can modify a Legend
title, font size, background color and border color. If you choose default options for the colors, the Legend
automatically assumes colors based on the diagram background color.
Click on the OK button on the Style Options dialog and again on the Legend dialog. The Legend displays on
the diagram.
Notes:
· Not all elements resize: elements such as Events remain the same; Timing and Sequence diagrams
(where position is crucial) are unchanged; and elements added from a profile or Shape Script maintain any
size definitions imposed by the profile.
· With an element image created with a Shape Script that contains a defSize command 1154 , Autosize
returns the element to the defSize value and not the element default size.
The Swimlanes Matrix divides the diagram into cells of vertical columns and horizontal rows. The cell in the top
left corner of the Swimlanes Matrix contains the heading of the matrix. The first cell at the top of each column
contains the column title text. The first cell at the left of each row contains the row title text.
At the same time, you can define the line width for all lines on the matrix; in the Line Widths field, click on the
drop-down arrow and select the appropriate width.
Note:
The heading is the first item in the list; you create only one heading.
Note:
When you define columns and rows, you define the header or title cells. The properties of these cells
do not reflect on the matrix cells themselves. For example, the intersection cell of a column and row
has a transparent background and therefore takes the color and shading effect of the diagram
background.
Model Profiles:
After creating a Swimlane Matrix, you can save it into a Model Profile and apply it to other diagrams. Model
Profiles are available on any diagram in your model.
Note:
You can also transport all the matrix profiles between models (as Diagram Matrix Profiles), using the Export
Reference Data 223 and Import Reference Data 225 options on the Tools menu.
See Also
· Swimlanes 450
Notes:
· For elements with lifelines, such as those used on Sequence diagrams, the Lifeline must remain intact to
enable messages to be created between the elements. Therefore such elements cannot have alternative
images.
· In the Corporate, Business and Software Engineering, Systems Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Configure Images 198 permission to configure
alternative element images.
To locate and display an image, click on individual image filenames, or press [#] and [$] to scroll through the
list of images. As you highlight each image filename, the Preview panel changes to reflect the image. Double-
click on the required image filename to display the image in full size.
Notes:
· If you are creating many elements of the same type that have a particular image, you should use a custom
stereotype 895 with an associated metafile.
· You can transport image files between models, using the Export Reference Data 223 and Import
Reference Data 225 options on the Tools menu.
Note:
Images contained within the Image Library are copyright of Sparx Systems, are only available for use in
conjunction with Enterprise Architect, and are supplied on the understanding that they are not used under any
other circumstance.
4.5.6.21.3 Swimlanes
Enterprise Architect diagrams support Swimlanes for all diagram types.
Swimlanes are vertical or horizontal bands in a diagram that divide the diagram into logical areas or partitions.
In the example below the activities relating to particular entities within the model (such as the User, or the back
end Repository) are placed within a containing swim lane to indicate their association.
To manage swimlanes, select the Diagram | Swimlanes and Matrix menu option to display the Swimlanes
and Matrix dialog. The dialog defaults to the Swimlanes tab.
This dialog enables you to set the orientation (vertical or horizontal), line color and width of the swimlanes, and
lock the swimlanes to prevent further movement. You can also specify the font color and bold font, hide
names, hide the classifier and show the name in the title bar. Use the New, Modify and Delete buttons to
change aspects of the selected swimlane. Use the and (up and down) buttons to change the order
of swimlanes within the diagram.
If you set a background color for a swimlane, it takes on the same shading profile as the main diagram
background.
See Also
· Swimlanes Matrix 444
In this example, Class2 realizes Interface1 and Interface2 as represented by the interface nodes protruding
from the Class. Class1 is dependent on these two interfaces, which is shown by the Dependency connectors
linking to the nodes.
To show nodes for the interfaces a Class realizes, as in the above diagram, right-click on the Class and select
the Embedded Elements | Show Realized Interfaces context menu option. This setting applies only to the
selected Class, and can be changed at any time.
Note:
As labels can be concentrated on and around the element or connector, make sure that you click on a
section of the required label that is clear of any other label or structure.
Element Labels
The Labels menu associated with embedded elements provides the following options:
Hide Label Hide the label; to unhide the label, right-click on the element and select the
Appearance | Show labels 555 context menu option.
Text Alignment Align the text within the label text area. The options available from the submenu
enable you to specify left, center and right alignment.
Label Rotation Orient the label in the horizontal or vertical planes, with the vertical plane offering the
option of clockwise or anti-clockwise position.
Connector Labels
The Labels menu associated with connectors provides the following options:
Hide Label Hide the label; to unhide the label use the Visibility | Set Label Visibility 622 option
on the connector context menu.
Text Alignment Align the text within the label text area. The options available from the submenu
enable you to specify left, center and right alignment.
Label Rotation Orientate the label horizontally or vertically and, if vertically, in a clockwise or anti-
clockwise position.
Direction Set a small arrow at the end of the label pointing to either the label source or the
destination dependent upon selection from the available options.
Default Color Set the label color to the initial default color.
Pan
Pan the Diagram View in the following ways:
· Use [!], ["], [#], [$], [Page Up], [Page Down], [Home] and [End] when the Diagram View is selected
Zoom
Zoom into and out from a diagram using the zoom buttons on the diagram toolbar, or using the Diagram |
Zoom submenu.
Change the zoom level by 10% by clicking on either the Zoom In (+) or Zoom Out (-) buttons. Alternatively,
select the Zoom In or Zoom Out options from the Diagram | Zoom submenu.
Tip:
You can zoom in and out of the main window dynamically by holding [Ctrl] and rolling the mouse wheel.
Note:
· Changes in diagram magnification through the zoom options can be saved as permanent changes to the
diagram.
· At high levels of zoom, element features cease to display. This is because of the difficulty the Windows
font mapper has in choosing a font for extreme conditions, and the result can look odd.
Fine Movement
To adjust (or 'nudge') the position of a single element or a selected group of elements, press [Shift]+["], [!],
[#] or [$].
To view the previous or next diagram use the Previous or Next buttons on the Diagram toolbar.
Use the Home button to display the default project diagram 437 (if one has been specified).
Note:
In the Corporate, Business and Software Engineering, Systems Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Update Diagrams 198 permission to change
diagram page setup.
Note:
As you adjust the settings on this dialog, the page icon at the top illustrates the effects of your
changes.
6. In the Size field, click on the drop-down arrow and select an appropriate page size.
7. In the Orientation panel click on the radio button for the orientation of the page to print.
8. In the Margins panel, type the required left, right, top and bottom page margins for the diagram, in
inches.
9. Click on the OK button on the Page Setup dialog, the Print Advanced dialog, and the Diagram
Properties dialog.
The area within the page boundary lines on your diagram is expanded or reduced accordingly. When you print
or print preview, the output is cropped to these boundary lines and the diagram divided between the necessary
number of pages.
In all three cases you also define the paper size and orientation.
Scale Images
To turn off or customize image scaling options, follow the steps below:
1. Select the diagram to scale.
2. Double-click on the diagram background to display the <type> Diagram: <name> dialog, or right-click
on the background and select the Properties context menu option.
3. Click on the Diagram tab and, in the Page Setup panel click on the Advanced button.
From the Print Advanced dialog the following options are available:
· None: select to print on as many pages as the diagram image covers
· Scale to 1 page: select to scale the diagram image to fit on the currently selected page
· Custom: select to specify the width and height of the diagram images across a specified number of pages
· Page Setup: click to select the page size and alignment 455 .
Note:
Before printing, make sure you have selected the required page layout using the Page Setup button.
Note:
This does not apply in the Corporate, Business and Software Engineering, Systems Engineering and Ultimate
editions if security is enabled. In that case, see the Lock Model Elements 204 topic.
Warning:
Currently you cannot undo element additions or connector moves.
2. Select the elements to lay out on the currently-active diagram - hold [Shift] or [Control] while you click
on each required element, or hold the mouse button down while you sweep over the area containing the
required elements.
Note:
If no elements are selected on the active diagram, then all elements on the diagram are laid out
(except where otherwise documented).
3. Click on the drop-down arrow on the top left field of the Layout Tools window, and select the required
layout type.
4. The layout type determines the fields presented in the window, therefore the appropriate fields are
described in the topic for each layout type.
· Circle/Ellipse 459
· Box 463
· Per Page 464
· Digraph 465
· Spring 466
· Neaten 467
· Converge/Diverge 467
· Fan Relations 469
· Auto Route 470
Enterprise Architect sets out the selected elements according to the options you have selected.
6. If you do not want to work with the new layout, click on the Undo button in the toolbar ( ).
Enterprise Architect also provides a facility for automatically laying out a diagram 471 . If necessary, you can
manually adjust the final result of this automatic process.
· Area (Descending) - Elements are passed to the specified layout in order of the screen space they
occupy, largest to smallest
· Name (Ascending) - Elements are passed to the specified layout in alphanumeric order, based on
the element name
· Name (Descending) - Elements are passed to the specified layout in reverse alphanumeric order,
based on the element name
· Element Type - Elements are grouped by type (for example, Class, Use Case) and in alphanumeric
order within the group by name.
3. Under the Placement option, select either:
· Top to Bottom (the elements are positioned in the required order, zig-zagged across the perimeter
of the circle or ellipse - see Diagram A)
· Circular (the elements are placed in the required order, clockwise around the perimeter of the circle
or ellipse - see Diagram B)
4. Select the Center focused element checkbox to put the last-selected element (the one with the hashed
border) in the center of the circle or ellipse - see Diagram C.
The dimensions of the box are determined by the square root of the number of selected elements (for
example, 16 elements create a 4x4 box).
To invoke this layout, follow the steps below:
1. Follow the general Layout Diagrams 458 procedure, and at step 3 select Box.
2. Click on the drop-down arrow in the Sort By: field and select the required sort parameter. The options
are:
· None - Elements are passed to the specified layout in the order in which they appear on the original
diagram (left to right, top to bottom)
· Area (Ascending) - Elements are passed to the specified layout in order of the screen space they
occupy, smallest to largest
· Area (Descending) - Elements are passed to the specified layout in order of the screen space they
occupy, largest to smallest
· Name (Ascending) - Elements are passed to the specified layout in alphanumeric order, based on
the element name
· Name (Descending) - Elements are passed to the specified layout in reverse alphanumeric order,
based on the element name
· Element Type - Elements are grouped by type (for example, Class, Use Case) and in alphanumeric
order within the group by name.
3. In the Padding (px) field, type the vertical and horizontal distance between elements, in pixels.
4. Select the appropriate element distribution option:
· Automatically distribute: Automatically calculate the dimensions of the box (the square root of the
number of selected elements; for example,16 elements create a 4x4 box)
· Specify distribution: Manually define the width of the box, in columns.
5. If you selected Specify Distribution, in the Columns field type the required number of columns.
· Area (Ascending) - Elements are passed to the specified layout in order of the screen space they
occupy, smallest to largest
· Area (Descending) - Elements are passed to the specified layout in order of the screen space they
occupy, largest to smallest
· Name (Ascending) - Elements are passed to the specified layout in alphanumeric order, based on
the element name
· Name (Descending) - Elements are passed to the specified layout in reverse alphanumeric order,
based on the element name
· Element Type - Elements are grouped by type (for example, Class, Use Case) and in alphanumeric
order within the group by name.
3. In the Padding (px) field, type the vertical and horizontal distance between cells, in pixels.
4. Select the appropriate page distribution option:
· Automatically distribute: Automatically calculate the optimum number of cells, taking into
consideration the largest horizontal and vertical element edges
· Specify distribution: Manually enter the per page grid dimensions.
5. If you selected Specify Distribution, in the Rows and Columns fields type the required number of
rows and columns.
6. Select the Center Elements checkbox to place each element in the center of its cell. Otherwise the
element placement defaults to the top left corner of the cell.
7. In the Start Page field, type the number from which to start page numbering. Pages begin at the top left
and continue horizontally to the right.
The Digraph layout provides the same behaviour as the Automatic Diagram layout. For information on how to
apply this layout, see the Layout Diagrams 458 topic and, for details of the layout parameters, the Lay out a
Diagram Automatically 471 topic.
The Spring layout employs a physical analogy to lay out elements. Each element is treated as a particle with a
like electrical charge that repels other elements. Connectors act as springs (hence the term Spring layout) that
draw connected elements back together. The layout is good for highlighting clusters of related objects and
identifying symmetry in the graph.
To invoke this layout, follow the steps below:
1. Follow the general Layout Diagrams 458 procedure, and at step 3 select Spring.
2. In the Iterations field, type the number of iterations, or rounds, to perform to reach the final layout.
The layout is developed over several iterations. Depending on the complexity of the graph, increasing
the number of iterations produces a better result but takes longer to calculate.
3. If the diagram contains elements that significantly vary in size, and that might overlap in the final layout,
select the Scale to prevent overlap checkbox to scale up the positions of the selected elements
(preserving size) until no elements overlap.
2. Select the single element around which to lay out related elements on the currently-active diagram.
3. Click on the drop-down arrow on the top left button of the Layout Tools window, and select Fan
Relations.
4. Click on the drop-down arrow in the Sort By: field and select the required sort parameter. The options
are:
· None - Elements are passed to the specified layout in the order in which they appear on the original
2. When calculating connector routes, the algorithm divides the diagram into cells of a size determined by
the Cell Size value. A smaller cell size results in connectors being placed closer together.
Notes:
· This facility is available for Structural diagrams and Extended diagrams, but not for Behavioral diagrams
(see the UML Diagrams 673 topic for a description of the diagram types). However, the facility is also
available for Sequence diagrams generated by the Enterprise Architect Debugger.
· Dynamic and Analysis diagrams are NOT suited to this form of layout - please ensure first that the diagram
type you are laying out benefits from the action.
· If you dislike the autolayout, you can reverse it before saving the diagram. Click [Ctrl]+[Z].
Layout a Diagram
To layout a diagram, follow the steps below:
1. Select a diagram.
2. Click on either:
· The Diagram | Layout Diagram option, or
· The Auto Layout button on the diagram toolbar.
You can alter any of the following settings on the Diagram Layout Options dialog to refine your layout:
· Cycle Remove Options panel - these settings remove cycles in the element organization (where element X
is the source of a path but also becomes the target of a branch of the path), by reversing the connectors
that impose the cycling and then reorganizing the diagram and reinstating the reversed relationships. This
identifies the primary source element in the diagram.
· Greedy - Select to use the Greedy Cycle Removal algorithm, which minimizes the number of
connectors reversed.
· Depth First Search - Select to use the Depth First Search Cycle Removal algorithm, which establishes
the longest linear sequence possible, before establishing parallel sequences and branches. This
algorithm is less effective in large and/or complex diagrams, but produces a more natural layout than
the Greedy algorithm.
· Crossing Reduction Options panel - these options determine how long the routine should look for ways of
reorganizing the layout to avoid crossed relationships:
· Iterations - Type the number of iterations to be used during cycle removal (more than 8 does not
usually provide any improvement).
· Aggressive - Select to use an aggressive (detailed and time-consuming) crossing reduction step.
· Layering Options panel - these settings determine how elements are organized in layers during layout:
· Longest Path Sink - Select to use the Longest Path Sink Layering algorithm, where the final target
elements (sinks, which have no relationships issuing from them) are arranged in a layer at the top of the
diagram, and the relationship paths built downwards from there in as many layers as there are nodes in
the longest path.
· Longest Path Source - Select to use the Longest Path Source Layering algorithm, where the original
source elements (those with no relationships entering them) are arranged in a layer at the bottom of the
diagram and the relationship paths built up from there in as many layers as there are nodes in the
longest path.
· Optimal Link Length - Select to use the Optimal Link Length Layering algorithm, which organizes the
elements into whichever layers minimize the total source-to-sink relationship chain; in this layout you
can have both source elements and sink elements at various levels of the diagram.
· Layout Options panel
· Layer Spacing - Type the default number of logical units between layers of elements (vertical spacing).
· Column Spacing - Type the default number of logical units between elements within a layer (horizontal
spacing).
· Up, Down, Left, Right - Select the direction in which directed connectors should point, to set the
position of the primary source element and the overall flow of the diagram.
· Initialize Options panel - the autolayout routine inserts line waypoints and connectors into relationship
paths to help plot the direction of relationships. The routine then assigns an index number to every node,
such that nodes in the same layer are numbered left to right. The settings in this panel determine how
those index numbers are assigned.
· Naive - Select to use the Naive Initialize Indices algorithm, which assigns index numbers to nodes as
they are encountered in a sweep and tends to place all waypoints to the right of real nodes (and
therefore long relationships between a small number of elements to the right of chains of short
relationships between several elements).
· Depth First Search Outward - Select to use the Depth First Out Initialize Indices algorithm, which
assigns index numbers to nodes as they are encountered in a depth first search from source nodes
outwards (and would therefore place longer relationship chains to the left of shorter chains, with the
primary source node at the start of the diagram flow).
· Depth First Search Inward - Select to use the Depth First In Initialize Indices algorithm, which also
assigns index numbers to nodes as they are encountered in a depth first search, but from sink nodes
inwards (and would therefore place longer relationship chains to the left of shorter chains, with the
ultimate target node at the end of the diagram flow).
· Set as Project Default checkbox
· Select this checkbox to apply the diagram layout settings to all diagrams in the project. If you later
check this box and click on the OK button for a different diagram, the new settings override the settings
saved earlier.
The following is an example of an automatically laid out diagram, with the following options set:
· Depth First Search
· Optimal Link Length
· Depth First Search Outward
· Direction - Up.
Simply clicking and dragging the icon enables you to create new connectors and elements on the diagram, as
explained in the following topics:
2. Drag the Quick Linker arrow onto an empty area of the diagram.
3. Use the Quick Linker context menu to select the type of element and connector to create.
Tips:
· Press and hold [Shift] while selecting the type of connector to select an existing classifier as the target.
· For rapid modeling, you can suppress the Properties dialog when creating new elements. See the option
Tools | Options | Objects | Edit Object on New.
Note:
The available Quick Linker options depend on the type of element selected. For example, the Quick Linker
options for a Class (above) differ from those of an Actor (below). These are the most appropriate, commonly
used elements and connectors for the source element; you can create other target elements and connectors
by selecting them from the appropriate Toolbox page.
2. Drag the Quick Linker arrow onto another element in the diagram.
3. Release the mouse button and use the Quick Linker context menu to select the type of connector.
Notes:
· The list of connectors provides the most appropriate, commonly-used connectors for the source and target
element types. If you want to use a different connector, select the appropriate Toolbox page, click on the
required connector and then on the source element, and drag across to the target element.
· The connector does not actually establish until you release the mouse button over the target element.
However, a dotted line shows where the connector would be at any point, and the solid outline of the
nearest element or extension changes to a hatched outline as you move the cursor onto it; this helps you
identify where the connector will connector to, if there are many closely-arranged elements, Parts, Ports
and other extensions.
· You can also bend the connector, pressing [Shift] as you drag the cursor in a new direction.
4.6 Elements
Models are constructed from elements, each of which has its own meaning, rules and notation.
The properties and features of an element can be defined and displayed through a set of windows and dialogs
480 .
Elements can be used at different stages of the design process for different purposes. The basic elements for
UML 2.3 are depicted in the following diagrams:
Note:
There are several variations of the Properties dialog:
· The dialog for a Table or Stored Procedure element has slight differences on the General tab, and a Table
(Stored Procedure) Details tab instead of a Details tab; see the Working With Tables 1014 topic.
· The dialog for a Class element of a stereotype other than Table is as shown in General Settings 482 .
· The dialog for an element of any other type does not have a Details tab.
· Port 826 and Part 825 elements have a Property 829 tab.
· Activity elements have a Behavior 581 tab, and Action and Invocation elements (depending on their type)
have other tabs such as Effect 743 , Trigger 804 and Call 581 tabs.
· Action Pins 749 have a Pin tab.
In all cases, the Properties dialog is an expandable window, which you can stretch to enable longer entry and
clearer inspection of the text field values.
The following topics describe each of the tabs in the Class Properties dialog in detail.
· General 482
· Details 484
· Requirements 485
· Constraints 488
· Links 489
· Scenarios 490
· Files 507
· Tagged Values 508
Follow the links for information on Tagged Values 632 , Object files and Classifiers 519 , and the Boundary
element 803 appearance.
Field Use to
Stereotype (Optional) Type the name of a stereotype for the element, or click on the drop-down arrow
and select one.
Status Indicate the current status of the element (such as Approved, Proposed).
Field Use to
Complexity Indicate the complexity of the element (used for project estimation). Assign Easy, Medium
or Hard.
Keywords Enter free-text items such as keywords or context information. This can be filtered in Use
Case Metrics and Search dialogs.
Phase Indicate the phase this element is to be implemented in (for example, 1, 1.1, 2.0 ...).
Notes Enter any notes text associated with the element, as described for the Notes 641 window.
You can format the notes text using the Notes 642 toolbar at the top of the field.
Further facilities are made available by pressing the Advanced button. See Advanced Settings 483 for details.
4.6.1.1.2 Details
The Details tab of the element Properties dialog enables you to define the structural and processing details for
the selected Class element.
Note:
When launched from MDG Integration, the Attributes and Operations buttons are not available.
Field/Button Use to
Cardinality Note:
Cardinality and Multiplicity are effectively the same. It is recommended that you
define the value in the Multiplicity field of the Advanced dialog 483 ; this ensures
that the value displays on the element in a diagram.
Field/Button Use to
Attributes Define attributes for the Class. The Attributes Properties 558 dialog displays.
Operations Define operations for the Class. The Operations Properties 570 dialog displays.
Collection Classes Define Collection Classes (for generating code from Association connectors) that
apply to this Class. The Collection Classes for Association Roles 1345 dialog
displays.
Type Select the type of Class template parameter to add or list. You can also edit or
delete parameters. See the Parameterised Classes 813 topic.
Arguments Select a parameter and type any required argument for that parameter.
4.6.1.1.3 Requirements
The Requirements tab of the element Properties dialog enables you to define the requirements that this
element is designed to meet.
Requirements are of two types: internal requirements 925 (responsibilities) and external requirements 487
(system requirements, elements connected to this element by a Realize connector). The Requirements tab
lists both types, but you can only edit the internal type on this tab.
You can show the requirements for an element on the diagram directly, using the Feature Visibility 438
function. (It is also possible to show inherited requirements in this way).
Field/Button Use to
Requirement Enter the name and high level detail of the requirement.
Field/Button Use to
Notes Record details of the requirement. As for the Notes 641 window, you can format
the notes text using the Notes 642 toolbar at the top of the field.
See Also
· Create Requirements 918
· Make Internal Requirement External 926
4.6.1.1.4 Constraints
Elements can have associated constraints placed on them. These are the conditions under which the element
must exist and function.
Typical constraints are pre- and post- conditions, which indicate things that must be true before the element is
created or accessed and things that must be true after the element is destroyed or its action complete.
Use the Feature Visibility 438 function to show constraints for an element directly on the diagram (it is also
possible to show inherited constraints in this way).
4.6.1.1.5 Links
The Links tab of the element Properties dialog displays a list of all relationships (connectors) active for the
current element.
The Relationships panel lists the relationships this element has. The:
· Element column identifies the elements this element is related to
· Element Stereotype column identifies the stereotype (if any) of the element
· Type column identifies the element type of the related element
· Connection column identifies the type of relationship
· Stereotype column identifies the stereotype (if any) of the relationship.
From the Links tab you can perform operations on a relationship, by right-clicking on the relationship to display
the context menu.
To:
· Hide the relationship on the diagram, click on the Hide Relation menu option; the option then changes to
Show Relation, which you select to redisplay the relationship on the diagram
· Display the relationship Properties 626 dialog, click on the Relationship Properties menu option
· Highlight the related element in the Project Browser, click on the Locate Related Object menu option
· Delete the relationship from the model and all diagrams, click on the Delete Relationship menu option; the
system prompts you to confirm the deletion.
4.6.1.1.6 Scenarios
A scenario is a real-world sequence of operations that you create to describe how an element works in real-
time; for example, its functional behavior, business work flows and end-to-end business processes.
You can create scenarios in most types of element, but they are generally most applicable to Use Cases.
The Scenario tab of the element Properties dialog has two internal tabs:
· The Description tab, which enables you to create scenarios and provide a simple text description either of
each scenario, or of the structure of each scenario.
· The Structured Specification 493 tab, which enables you to create scenarios or select those you have
created elsewhere and, for each scenario:
· Create a series of steps for each part of the scenario
· Structure the scenario to show how the basic path diverges into the alternate paths and exception paths
· Generate a number of types of diagram 499 from the structure
· Generate a structured scenario from an Activity diagram 513
· Generate a structured scenario from text on the clipboard 496 ; this option has a variation in the
Description tab that enables you to translate scenario descriptions 491 created prior to release 8.0 of
Enterprise Architect, into structured scenarios in the latest release.
Notes:
· The Scenarios tab does not prevent you from creating more than one basic path, but it would be unusual to
define more than one.
· All the functions available on the Scenarios tabs are also available through the Scenarios & Requirements
514 window/view. Use the Browse Element icon in the window toolbar to list and select the scenarios for
the element.
Description Tab
When you first select the Scenarios tab, it defaults to the Description tab and sets both the Scenario (name)
field and the Type field to Basic Path, to enable you to define the basic path first. You can overtype the
scenario name with more appropriate text if required. As you go on to create other scenarios, you set the type
to Alternate or Exception as appropriate.
Field Use to
Scenario Type in the name of the scenario (or, for existing scenarios, click on the drop-down arrow
and select one from the list).
Field Use to
The text is copied to the Structured Specification 493 tab for the current scenario, either as
a new specification or as the continuation of an existing specification, with a new step
created at each carriage return. Subsequent changes to the text on the Structured
Specification tab are not reflected on the Description tab.
New Clear the data fields so that you can enter data in them to create a new scenario.
You can change the order in which the scenarios are listed, using the and
buttons.
When you open the Structured Specification tab it defaults to the basic path (as shown above) so that if it does
not already exist, you can create it. You can create alternate paths and exception paths as part of the process
of adding them to steps of the basic path.
You can also create all three types of scenario paths on the Description 490 tab, or in the Scenarios &
Requirements 514 window.
The Structured Specification tab offers a wide range of facilities for generating and modifying scenario
specifications. These are available through the:
· Structured Specification Toolbar 495
Notes:
· By default, the steps begin with a user step (indicated by an actor icon) and alternate between user
and system (indicated by a screen icon) steps. However, you can control the responsible entity
assigned to a step by typing a keyword within the first 15 characters of the text in the Action column;
either 'User' or 'Actor' for a user step, or 'System' for a system step.
Once a step has been saved, you can change the responsible entity by either double-clicking on the
icon or right-clicking on the step, and selecting the Set Step as 'System' or Set Step as 'User'
context menu option as required.
· An entry for the basic path displays in the Entry Points tab, as Step 0 with no value in the Join
column (the basic path does not rejoin itself).
3. Tab to the Uses column and, if necessary, type the name of each element used in this step.
Note:
The values in the Uses, Results and State columns, whilst optional, are significant if you want to
generate a diagram 499 from the specification. If you type the name of an element linked to the current
element (and listed in the Context References 506 tab), the element name is highlighted and
underlined.
4. Tab to the Results column and, if necessary, type the outcome of completing this step.
5. Tab to the State column and, if necessary, type the name of the state into which the step moves the
action.
6. When you move out of the Action column, the next new step field displays underneath. Repeat steps 2
to 5 as many times as is necessary.
The Structured Specification tab should now resemble the following illustration:
As you develop the scenario, you can move steps 495 to different positions in the scenario, and insert 497 new
step lines within the body of the scenario.
You can also create constraints 507 on the element that have an impact on the scenarios.
Repeat the Scenario Steps procedure for each scenario you have created. You can now adapt, enhance and
interrelate the scenario specifications using the facilities of the Structured Specification tab:
· Structured Specification Toolbar 495
Icon Use to
Return to the basic path specification (if another specification is currently displayed).
(Only enabled when the basic path is displayed - you cannot add an alternate path to another
alternate path or an exception path.)
Create a branch from the selected step to an alternate path scenario - select the path from the
displayed list. If the appropriate scenario does not yet exist, double-click on the new path line and
type the scenario name, then click off the line and back on to it. Click on the OK button.
Icon Use to
Note:
An entry for this alternate path displays in the Entry Points tab, as Step a of the basic path step it
branches from; in the Join column, click on the drop-down arrow and select the number of the
step at which action flows back to the basic path, or select End if the path terminates separately
from the basic path.
(Only enabled when the basic path is displayed - you cannot add an exception path to another
exception path or an alternate path.)
Create a branch from the selected step to an exception path scenario - select the path from the
displayed list. If the appropriate scenario does not yet exist, double-click on the new path line and
type the scenario name, then click off the line and back on to it. Click on the OK button.
Note:
An entry for this exception path displays in the Entry Points tab, as Step a of the basic path step it
branches from; in the Join column, click on the drop-down arrow and select the number of the
step at which action flows back to the basic path, or select End if the path terminates separately
from the basic path.
Move the currently-selected step one place up (including any new step ... entry).
Move the currently-selected step one place down (including any new step ... entry).
Display a list of diagrams that you can generate from the scenario 499 ; select the type of diagram
that you want to generate.
Generate Test Cases 505 based on this Use Case scenario; you can generate either internal Test
Cases or External Test Cases.
To display this context menu, right-click on a step or blank line on the Structured Specification tab. The
following options are available:
Option Use to
Create Structure From Generate a set of steps from a text description or list captured on the
Clipboard Text - New clipboard. A new step is generated:
Line Delimited
· after each carriage return in the captured text (New Lines), or
Create Structure From
Clipboard Text - · for each sentence in the text; that is, after each full stop/space/capital letter
Sentence Delimited combination (Sentences).
If a set of steps is already displayed, it is overwritten by the generated steps.
Option Use to
Create Structure From Generate a set of steps from an Activity Diagram 513 created for a Use Case.
Generated Activity
If a set of steps is already displayed, it is overwritten by the generated steps.
Diagram
Add Alternate Path Create a branch from the selected basic path step to an alternate path (see
previously).
Add Exception Path Create a branch from the selected basic path step to an exception path (see
previously).
Insert Step Above Insert a new step... line above the currently-selected step. (Press [Esc] to return
[Shift]+[Insert] this new line to the end of the scenario.)
Insert Step Below Insert a new step... line below the currently-selected step. (Press [Esc] to return
[Insert] this new line to the end of the scenario.)
Insert End Step Insert a new step... line at the end of the scenario.
[Ctrl]+[n]
Set Step As 'User' Switch the entity responsible for performing the action of the selected step
Set Step As 'System' between user and system.
Link Step to Use Case Either include the actions of an existing Use Case element, extend an existing
Use Case element, or invoke a Use Case as the action of the selected step.
Selecting the appropriate sub-option displays the Select Use Case 515 dialog,
which you use to browse for and select the required Use Case element.
The appropriate includes, extends or invokes stereotyped connector is created
between the current element and the selected Use Case.
For the include and extend actions, any text in the Action field is overwritten by
the link to the Use Case. For the invoke action, the following link is added to the
end of the Action text:
[Invokes: <Use Case Name>]
Merge With Step Merge the selected step with another. A list of the other steps in the scenario
displays; click on the step to merge with the selected step.
Move After Step Move the selected step to another position in the scenario. A list of the other
steps in the scenario displays; click on the step after which to position the
selected step.
Delete Delete the selected step. A prompt displays to confirm the deletion. Any
subsequent steps are moved up one place.
To display this context menu, highlight the text in a user-editable field within a step on the Structured
Specification tab. The following options are available:
Option Use to
Create Create a glossary definition 641 or a new element 524 based on the highlighted
text.
Link Step to Use Case Either incorporate the actions of an existing Use Case element, extend an
existing Use Case element or invoke a Use Case element, as the action of the
selected step. Selecting the appropriate sub-option displays the Select Use
Case 515 dialog, which you use to browse for and select the required Use Case
element.
Any text in the Action field is overwritten by the link to the Use Case, except for
the invoke action where the following link is added to the end of the Action text:
[Invokes: <Use Case Name>]
Option Use to
Link to existing Element (Uses and Results fields only.) Create a Realization or Dependency
relationship to a Requirement, Feature or other element elsewhere in the
model.
You select the element and connector types from submenu options, which then
display the Select Element 515 dialog, which you use to browse for and select
the required element.
Insert context reference Add a reference to an element stored elsewhere in the model, and create an
entry for the element in the Context References 506 tab.
Selecting this option displays the Select Element 515 dialog, which you use to
browse for and select the required reference element.
See also the Structured Specification Floating Toolbar 499 topic.
Insert glossary Insert an existing glossary term at the cursor position. To select the term,
definition double-click on it in the displayed list.
When you select the term it is inserted into the field as highlighted and
underlined text, which displays the definition when you move the cursor over it. If
you highlighted part of the original text, the term overwrites that text.
Split Step Splits the selected step into two consecutive steps.
The option is available only if you highlight a portion of the text in the selected
field. The new step takes the highlighted text as its Action text.
Search for <text> Displays a sub-menu of options for locating the selected text in a number of
locations 1437 .
Undo Undo any unsaved changes you have just made in the step.
Cut
Copy
Perform simple editing operations on the highlighted text.
Paste
Delete
Select All
The Entry Points tab shows how the basic path, alternate path and exception path scenarios for the element
are organized and interrelated.
If an alternate path or exception path has been defined but has not yet been added to the basic path, it is not
listed on this tab.
You can switch focus between the Entry Points tab and the Structured Specification tab by pressing [Alt]+[Q].
To display the context menu for this tab, highlight an entry and right-click on it. The following options are
available:
Option Use to
Edit Path Display the steps of the scenario in the Structured Specification tab, with the first
step highlighted.
Join with Step (Available only if the basic path scenario is displayed in the Structured
Specification tab. Not available to edit the basic path scenario.)
Highlight the Join field and its drop-down arrow. Click on the drop-down to
define or change the step number at which the alternate or exception path
rejoins the basic path. Select End if the path does not rejoin the basic path
steps.
Option Use to
Remove Entry Point (Available only if the basic path scenario is displayed in the Structured
Specification tab. Not available to delete the basic path.)
Delete the relationship between the selected path and the basic path, and
remove the entry from the Entry Points tab.
Wherever a reference to another element exists on the Scenario tab (that is, where the text is highlighted and
underlined), if you hover the cursor over the element name a short floating toolbar displays, which you can use
to:
· display the element Properties dialog
· locate the element in its parent diagram
· locate the element in the Project Browser.
If the diagram being generated already exists under the selected element, the following prompt displays:
Note:
The Synchronize elements in existing diagram option enables the Preserve Diagram Layout checkbox,
which you can select to preserve the existing arrangement of elements and connectors on the diagram. Any
new elements are added to the diagram in the default position, and you manually position them in the
diagram as required. If you do not select the checkbox, the diagram is recast in the default layout.
It is recommended that you uncheck the Preserve Diagram Layout checkbox if you are synchronizing
elements with scenario steps:
· When new steps have been added or existing steps have been deleted or moved within the Use Case
· For the first time in a Use Case that has been imported from XMI 290 with the Strip GUIDs option selected
· For the first time in a Use Case that has been copied and pasted 531 in the Project Browser, or
· For the first time in a Use Case whose containing package has been copied and pasted 388 in the Project
Browser.
An Activity is generated as a child of the selected element, to act as a container for the diagram.
· The scenario steps are modeled as Activities
· The values of the Uses, Results and State columns for each step are added as Tagged Values of the
corresponding Activity.
Note:
ActivityParameters are added to the Project Browser and not to the diagram.
Note:
ActionPins are added to the Project Browser and not to the diagram.
A Rule Flow Activity is created as a child of the selected element, to act as a container for the diagram.
· The scenario steps are modeled as RuleTasks.
· The values of the Uses, Results and State columns are added as Tagged Values of the RuleTasks.
A StateMachine is created as a child of the selected element, to act as a container for the diagram.
· Each value in the State column is modeled as a State.
· The scenario steps become the Transition connectors between the States
· The values of the Uses and Results columns are added as Tagged Values of the Transitions.
An Interaction is created as a child of the selected element, to act as a container for the diagrams - the Basic,
Alternate and Exception paths are modeled as separate Sequence diagrams under the Interaction.
Note:
All the elements involved in the scenario should be identified in the Context Reference 506 tab. That is,
relationships must already exist between the scenario parent element and the other elements named in the
scenario.
Note:
Because the diagram generator acts on element names in the step, you should take care to avoid using the
element names as normal text. For example, in step 1 in the dialog below, the term ATM-Card is interpreted
as a reference to the ATM element, and two Customer inserts ATM-Card into ATM Messages are generated
for the step. (To avoid confusion, in the diagram the first Message has been deleted.)
· The values of the Uses, Results and State columns are added as Tagged Values of the Message.
A Collaboration 814 is created as a child of the selected element, to act as a container for the Robustness 835
diagram.
Notes:
· All the elements involved in the scenario should be identified in the Context Reference 506 tab. That is,
relationships must already exist between the scenario parent element and the other elements named in the
scenario.
· Any values in the Uses, Results and State columns are ignored and not represented in the diagram.
· Each UI element 849 in a step becomes a Boundary 836 element. A Dependency 861 relationship is
created from this Boundary element to the UI element (this connector is not shown on the diagram).
· Each Actor referenced in a step is dropped into the Robustness diagram as a simple link.
· Each Class referenced in a step is dropped into the Robustness diagram as a simple link, and is given the
stereotype entity.
· Each step with a System trigger becomes a Controller 838 . Alternate/exception path Controllers are
displayed with a red background color.
· Each step with a User trigger becomes the name of the Association 855 between Controllers.
A diagram is created under the selected element, to which the selected element and a Note (showing the
element's Structured Specification) is added. The created tests are displayed in the Test Scripts compartment
1549 of the selected element on the diagram.
Another way to view these tests is to click on the element and display the Testing 1537 window (View | Testing
).
Note:
These generated tests are written to the Scenario test tab of the Testing window. You can move 1544 the tests
to another test-type tab if required.
Note:
You can review the tests within the Test Case element using the Testing window, as for Internal Test Cases.
This tab enables you to add custom references - right-click anywhere in the list and select the Add Reference
context menu option. The Select Element 515 dialog displays, in which you can locate and select the required
cross reference element or elements. For each cross reference you can also use context menu options to
delete the entry in the list, or to open the Comment field so that you can add or edit comment text.
For each element in the Context References list, wherever the name of that element appears in the structured
specification, the name is highlighted and underlined. You can press [Ctrl]+click on the highlighted name to
view the element Properties dialog.
Note:
Linked files are a good way to link elements to additional documentation and/or source code.
You can also insert hyperlinks 840 in diagrams to other files, and launch them directly from the diagram. This is
an alternative method to that described here.
Field/Button Use to
File Path Type in or browse for the directory path and name of the file.
Last Write Display the date and time the file was last updated.
Launch Open the selected file. Local files open with their default application and
web files open in the default browser.
Tip:
The Properties window can be a quick method of setting a single property (such as Phase or Status). To
access and edit all properties of an element, double-click on the element in a diagram or in the Project
Browser.
Properties Sections
The Properties window is divided into three expandable sections:
· <Element type> Settings - for the basic element details
· Project - for general housekeeping settings
· Advanced - only active for generalizable elements.
Notes:
· When you click on a field name, a brief explanation of that field displays at the bottom of the Properties
window, unless you have selected the Hide Properties Info Section 352 checkbox on the General page of
the Options dialog (as for the above screen illustration).
· If you click on the field value for an editable field, a drop-down arrow displays that enables you to select a
different value.
The following properties are listed, where they are present in the element:
· Operations 569
· Attributes 558
· Linked Features (Linked Operations and Attributes) 611
Notes:
· If you double-click on the element name at the top of the dialog (the root node) the Properties dialog for the
element displays, at the General tab.
· If you right-click on a folder name, the Edit <object> context menu option displays. When you select this
option, the appropriate window or dialog displays, or the element Properties dialog displays the appropriate
tab, to enable you to update the items in the folder.
· If you double-click on an item within the Requirements, Scenarios or Constraints folders, the docked
window or view 514 displays with the focus on the selected item.
· If you double-click on an item within the Relationships folder, the relationship Properties 626 dialog displays
for that relationship.
· If you double-click on an item within the Files folder, the file opens either on a separate tab in the Diagram
View workspace (if the file can be opened within Enterprise Architect) or in the default Windows viewer/
editor for the file type (if the file cannot be opened within Enterprise Architect).
· If you double-click on an operation or attribute in the Operations or Attributes folders, the appropriate
Properties dialog displays.
· If you right-click on an attribute or operation, whether in the Attributes or Operations folder or in the Linked
Features folder, a context menu displays that enables you to display the source code; alternatively, click on
the attribute or operation and press [Ctrl]+[E], or - in the Linked Features folder - double-click on the
attribute or operation.
· The source code viewer in which the source code displays depends on which editor you select as the
default 1337 , either for the project as a whole or for a specific programming language. If you select the
Enterprise Architect internal editor, the code displays in the Source Code Viewer 1441 with the cursor
positioned on the selected feature.
· The right-click context menu for an operation also provides options to set a number of types of recording
marker 1499 .
Notes:
· The source Activity diagram must be generated from another Use Case Scenario.
· Any existing scenario steps are deleted and replaced by the generated scenario.
· This facility does not operate on the enhanced Activity diagrams generated from a Use Case - those
generated with ActivityParameters, Actions and Action Pins.
To generate the scenario from the Activity diagram, follow the steps below:
1. Open the element Properties dialog, select the Scenarios tab, and select the Structured Specification
tab.
2. Right-click in the empty space within the tab, and select the Create Structure From Generated
Activity Diagram context menu option. The Select an Activity 515 (generated from a UseCase
Scenario) containing the Diagram dialog displays.
3. Search for and select the Activity containing the required diagram. Enterprise Architect validates the
diagram (displaying the results in the Output 102 window) and, if the diagram is valid, generates the
scenario steps in the Structured Specification tab (replacing any existing scenario steps).
Requirements are shown on separate tabs). Use the icon in the window toolbar to toggle between these
display options.
To review an internal requirement, constraint or scenario for an element:
1. Select the element in the Project Browser or diagram and either press [Ctrl]+[Shift]+[3] or select the
View | Scenarios & Requirements menu option; the Scenarios & Requirements window displays.
2. Either:
· Click on the required item in the list panel on the left of the window, or
· If the Element Browser 510 is not already displayed, click on the icon and select the required
item from the Constraints, Requirements or Scenarios folder.
The appropriate screen displays, with the details of the selected item in the fields.
3. The toolbar icons, from left to right, enable you to :
· Add a new rule to the current screen (click on the appropriate folder to create an item of a different
type)
· Save the new or edited item
· Save the current (edited) item as a new item
· Delete the current item
· Sort the contents of the selected folder into alphabetical order
· (Print icon unavailable)
· Display the Element Browser window, or highlight the current item in the Element Browser window
· Switch between a docked window display and a workspace view display.
You can also add or edit formatted notes in the Notes field, using the Notes 642 toolbar at the top of the
field.
The list panel also provides a context menu that provides options for adding a new item to a folder, deleting
the selected item or, for a requirement, converting an internal responsibility into an external Requirement 926
element.
Click on these links for information on the fields of the Scenarios 490 , Constraints 488 and Requirements 485
tabs.
2. If required, in the Go To Namespace field select a namespace to reduce the scope of the displayed
hierarchy. The dialog opens the section of the hierarchy associated with that namespace, and closes all
previously-open sections associated with other namespaces.
3. You can either:
· expand the selected area of the hierarchy on the Browse tab, or any other package, and locate the
required item (go to step 5) or
· click on the Search tab and, in the Find field, type a partial or complete text string to search for the
item.
4. On the Search tab, you can filter the search further by selecting the Whole Word and Match Case
checkboxes.
Each list entry shows the name of the item, the type, any stereotype the item has, the immediate
package in which the item is held, and any successive parent packages (the package path). You can
either:
· Select the item immediately on the Search tab or
· Right-click on one item or a group of items and select the Locate item(s) in tree context menu
option; this redisplays the Browse tab and highlights each selected item in the <namespace>
hierarchy.
5. Click on the required item.
6. Click on the OK button.
Note:
When you have selected an item, the Select <Item> dialog retains the context and item. Next time you
display the dialog, if the context is similar the dialog opens to the same Namespace and item. For example, if
you have selected an activity for a State transition and you start to do the same for another transition, the
dialog opens to the activity you previously selected.
If the context is totally dissimilar, the dialog opens with the Namespace <any> and a collapsed model
hierarchy.
If the available items do not meet your requirements, you can create a new item and define the appropriate
properties. Click on the Add New button. The appropriate Add <Item> dialog displays, on which you define the
required item.
Note:
The Add New button is not always available, depending on the context and the type of item being searched
for.
Multiple Selection
Where an operation permits the selection of multiple items, the Select <Item> dialog is automatically enabled
to support this. To select the items, press [Ctrl] as you click on each item. Having selected an item, you can
continue to expand and browse the hierarchy, and/or search for items; the dialog retains the existing
selections until you click on the OK button.
Note:
Association ends should be owned by the Class to be listed in the dialog.
Locate and click on the required object to select it, then click on the OK button. (To select several objects at
once, press and hold [Ctrl] while you click on each object.)
Tip:
This is a powerful means of moving your model from the analysis phase into detailed design.
Elements that are classifiers and support instances of themselves at runtime can be dropped from the Project
Browser as a link to the classifier itself, or a new instance of the classifier. The example below shows a linked
Node element on the left and an instance of the Node on the right. Note that the instance is drawn like a
simple element with the : <ElementName> displayed. If you name your instance it displays <InstanceName> :
<ElementName>.
or
These icons display small versions of the diagram toolbars or perform specific actions, to enable you to
quickly edit the element you have highlighted.
Icon Description
Displays the Current Element 84 toolbar, to edit the element's properties and features.
When multiple elements are selected, displays the Diagram 83 Toolbar for changing or aligning the
elements together.
4.6.3.2 Compartments
In addition to the attributes and operations compartments shown in a Class element, Enterprise Architect also
supports other compartments that can optionally be displayed.
To set the visibility of the various compartments, see Feature Visibility 438 .
Tags Compartment
The tags compartment lists all Tagged Values for an element as entered in the Tagged Values 632 window.
Note:
The fully-qualified option operates only on those Tagged Values that were created in Enterprise Architect
release 7.1 or later. It does not expand Tagged Values created in earlier releases.
Responsibility Compartment
The responsibility compartment shows a list of responsibilities as entered on the Requirements 485 tab of the
element Properties dialog.
Constraint Compartment
The constraint compartment shows a list of element constraints as entered in the Constraints 488 tab of the
element Properties dialog.
Testing Compartment
The testing compartment lists all of the tests associated with an element as listed in the Testing 1537 window
(select the View | Testing menu option).
Maintenance Compartment
The maintenance compartment lists all of the defects, changes, issues and tasks associated with an element,
as listed in the Maintenance 1558 window (select the View | Other Element Tools | Maintenance menu
option).
Note:
In the Corporate, Business and Software Engineering, Systems Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Update Element 198 permission to update element
properties or delete an element.
You can display and select from a longer list of elements by clicking on the Other option.
The following topics describe other approaches for creating elements on a diagram:
· Create Elements In Place Using the Quick Linker 475
Tip:
If you are creating several elements of one type, after creating the first just press [Shift]+[F3] or [Ctrl]+click
to create the next element of that type.
See Also
· Behavioral Diagram Elements 742 - summary of all elements used in Behavioral diagrams
· Structural Diagram Elements 809 - summary of all elements used in Structural diagrams
Note:
The drop-down list is populated from one of the Toolbox page groups (including profile, Add-In and
MDG Technology groups). If the list does not represent the group containing the element you require,
click on the Select Group button and, from the list, select the appropriate Toolbox page group. The
drop-down list then shows the elements from that group.
The <default> group in the list contains a basic set of elements drawn from across the UML Behavioral
and Structural groups, and the Enterprise Architect Extended groups.
5. If required, in the Stereotype field either type the stereotype name or click on the drop-down arrow and
Note:
If you have a diagram open, the Add to Current Diagram checkbox is available and defaulted to selected to
add the new element to the diagram. If you do not want the element in that diagram, deselect the checkbox.
2. In the Type field, click on the drop-down arrow and select the element type (for example, Activity).
3. In the Name panel:
· In the Prefix field, type a prefix for the new name (optional).
· In Counter field, type the counter value; use as many 0's as required to pad the name.
· In the Suffix field, type a suffix for the new name (optional).
· If required, click on the Active checkbox to turn auto naming on for this element type.
4. In the Alias panel:
· In the Prefix field, type a prefix for the new alias (optional).
· In Counter field, type the counter value; use as many 0's as required to pad the alias.
· In the Suffix field, type a suffix for the new alias (optional).
· If required, click on the Active checkbox to turn alias auto naming on for this element type.
5. Click on the Save button.
New elements of this type now have an automatically-generated name and/or alias with an incrementing
counter value.
Note:
If an Alias is active then auto naming applies; however, to view the Alias in a diagram requires that the option
Use Alias if Available is selected in Diagram Properties. 425
3. You can elect to enter a parent or interface name by either manually typing it in, or clicking on the
Choose button to locate the element within the current model.
4. Set the Type of relationship (Implements or Generalizes) from the drop-down list.
5. Click on the Add button to add the relationship.
6. Click on the Delete Selected button to remove the current selected relationship.
Note:
If Parents are not in the same diagram as their corresponding related element, the parentage is shown
in the top right corner of the child element, as shown below:
3. If you want to display the usage information in a more readable layout, you can resize the dialog and its
columns.
Either:
· Double-click on a line item to open the relevant diagram and display the selected element (the
Element Usage dialog remains open), or
· Click on the Open button to display the selected diagram and close the Element Usage dialog.
Note:
You can also access this feature from the Project Browser; select an element in the tree and select the
Element | Find in Diagrams menu option. If there is only one instance of the element in any diagram, that
diagram displays instead.
4. You can open the Properties dialog for an element by highlighting it and clicking on the Open button.
5. If you have a diagram cross reference, you can open that diagram.
6. If you have a string of diagram links, click on the Home button to return to the original diagram.
Note:
You can delete a cross reference by selecting it on the Custom References dialog and clicking on the Delete
button. Cross references are also automatically deleted if the source or target element in the reference is
deleted.
· Hold down [Shift] and use the arrow keys to move the element by increments to the required position
· Use the Left, Right, Up and Down options in the Element | Move submenu
· Align multiple elements using the Element | Alignment submenu, the Alignment options in the right-click
context menu, or the Alignment buttons on the Diagram toolbar.
Notes:
· The Support for Composite Objects checkbox must be selected on the Objects 362 page of the Options
dialog (select the Tools | Options | Objects option). If this option is not selected, the dashed border does
not show and the child element cannot be embedded on the parent in the diagram.
· Both elements must already exist on the diagram; an element border does not change if you drag a
potential child element over it from the Toolbox or Project Browser.
· The child element must have equal or higher z-order placement than the parent; that is, the parent element
must be level with or behind the child.
· The child element borders must be completely within the parent element borders.
For example, if you drag a Signal over a Class, the Class border changes; a Class element can be a parent to
a Signal. If you drag a Class element over a Signal element, the Signal border does not change. A Signal
cannot be a parent to a Class.
When you embed a child element on its parent, the child element becomes part of the parent element
hierarchy in the Project Browser. Similarly, if you drag the child element out of the parent, the child element
becomes independent and is no longer embedded in the parent element hierarchy.
3. Release the mouse button. The element is moved into the target package.
Tip:
You can also drag the element under a host element in the new package; for example, drag an element
under a Class.
Notes:
· Moving an element has no effect on any relationships that the element might have.
· Moving an element in the Project Browser has no effect on the use of that element in any diagram.
· Moving a diagram generally does not affect the location of elements in packages. If you move a diagram
out of one package into another, all the elements in the diagram remain in the original package. However,
certain elements (such as Decision, Initial and Final elements) are used only within one diagram, have no
meaning outside that diagram, and are never re-used in any other diagram. Therefore, if you move a
diagram containing these elements, they are moved to the new parent package with the diagram.
Warning:
In a multi-user environment, if one person moves or updates the Project Browser structure, other users must
reload their project 267 to see the latest changes in the Project Browser. Although this is true of any addition
or modification to the tree, it is most important when big changes are made, such as dragging a package to a
different location.
Notes:
· A copy of an element does not have the external cross references of the source element; that is:
3. In the Element Type field, click on the drop-down arrow and select the required element type.
4. Click on the OK button.
The target is transformed into the required type.
Tip:
You can also use the Diagram toolbar.
The first four buttons are used to align elements, and are made available when more than one element is
selected in a diagram.
You can also select the Element | Alignment menu option.
· Press and hold [Ctrl] and use the arrow keys to resize by increments as required
· Use the Wider, Narrower, Taller and Shorter options in the Element | Move submenu
· Autosize selected element(s) using the option in the Element | Appearance submenu, or by pressing [Alt]
+[Z]. (With multiple elements selected, Autosize also appears in the right-click context menu)
· Set multiple elements to the same height, width or both, using these options in the Element | Make Same
submenu, or the options in the right-click context menu.
1. Set one element to the required size (for example, Message as above).
2. Select all other elements (for example, Account and Message Folder as above).
3. Right-click on the pre-sized element (for example, Message).
4. Select your resizing option (such as same height, width) from the context menu.
See Also
· Highlight Context Element 543
Note:
This does not delete the element from the model, only from the current diagram.
Note:
If you delete an element in this way, you delete all its properties and connectors as well.
3. Select the checkbox for each type of element to show in packages and in RTF documents.
4. Click on the Close button on each dialog.
5. Reload 267 the current diagram if required.
The package from the example above now shows the Event and Decision elements it contains:
Create a Note
To create a note, follow the steps below:
1. Drag the Note icon from the Common page of the Toolbox onto the diagram.
· If you have the Edit Object On New 362 checkbox deselected on the Objects page of the Options
dialog (Tools | Options | Objects), the Note element displays on your diagram; type your note text
directly within the Note element
· If you have the checkbox selected, the Notes 641 window displays; type your text in that window. If
you want to display the Notes information in a more readable layout, you can resize the dialog.
You can format the text if necessary, using the Notes 642 toolbar at the top of the window. When you
have completed the text, click on the OK button to save it.
Note:
You can also create a note by clicking on the New Note icon (the text page) on the UML Elements 83 toolbar
and clicking on the diagram.
Create Text
To create text, follow the steps below:
1. Drag the Text Element icon from the Common page of the Toolbox onto the diagram. The Notes 641
window displays.
2. Type your text in the window. If you want to display the Notes information in more readable layout, you
can resize the dialog.
You can format the text if necessary, using the Notes 642 toolbar at the top of the window. When you
have completed the text, click on the OK button to save it.
Your text displays on the diagram in the following format, with no border:
Procedure
To connect a Note element to a feature of another design element, follow the steps below:
1. Click on the element and then click on the feature to link the note to.
2. Select the Element | Inline Features | Create Linked Note context menu option. This creates a Note
element linked to the selected feature, reflecting the content of that feature.
Alternatively:
1. Insert the target element into a diagram.
2. Drag the Note icon from the Common page of the Toolbox onto the diagram, next to the target element.
The Notes dialog displays. Do not type any text, just click on the OK button.
3. Click on the Note Link icon from the Common page of the Toolbox, click on the Note, and drag across
to the target element to create the connector.
4. Right-click on the Note Link to display the context menu.
5. Select the Link this Note to an Element Feature menu option. The Link note to element feature dialog
displays.
6. In the Feature Type field, click on the drop-down arrow and select the type of feature to link to.
7. In the Feature list, click on the specific feature to link to.
8. Click on the OK button.
The note now automatically derives its contents from the target element.
Note:
You can adjust several elements at the same time. Select all of the required elements, right-click on one of
them and select the Default Appearance context menu option, or use the Format toolbar.
Note:
You have further options for changing the font of element text in the Set Font 556 menu option.
2. Deselect the Use Default Color checkbox, to enable the Select button.
3. Click on the Select button. The Color dialog displays.
4. Select the required color (click on the Define Custom Colors>> button and define a specific color if
necessary) and click on the OK button. You return to the Default Appearance dialog, on which the
Preview panel indicates the selected color for the element.
Note:
To change to a different color, click on the Select button again, or to return to the default color, select
the Use Default Color checkbox.
5. Click on the OK button. The new color is applied to the selected element or elements.
The Preview panel indicates the effect of the change in border thickness.
2. Click on the OK button. The new border thickness is applied to the selected element or elements.
3. Deselect the Use Default Color checkbox to enable the Select button.
4. Click on the Select button. The Color dialog displays.
7. Click on the Add to Custom Colors button to add the color to the Custom colors blocks on the left
hand side of the dialog.
8. Click on the OK button to close the Color dialog, then click on the OK button to close the Default
Appearance dialog.
9. Select the Settings | Colors | Set Project Custom Colors menu option to save the custom color you
have created.
Procedure
To set up the element Templates package, follow the steps below:
1. Create a new package in the appropriate administration View. You can give this package any name;
Templates is an unambiguous option.
2. Within the Templates package create new diagrams, one for each type of diagram to template. Give
them easily recognized names; for example ClassTemplate for the template for Class diagrams.
3. Add new elements to the template diagrams from the Toolbox and configure the size, appearance,
notes, version and other properties.
4. Select the Settings | Template Package menu option to set the templates as the default element
templates. The Browse Project window displays.
5. Locate and click on the Templates package, and click on the OK button to set the package as the
default element template.
Now each new element you add to your project is created with the settings from the appropriate Template
diagram.
Note:
If you decide not to use the default element template, set the default element template to <none> in the
Browse Project window. The <none> package is at the bottom of the hierarchy shown in the Browse Project
window.
If you have not selected the Always Highlight Context Element checkbox, the selected element does not
have a hatched border around it.
Multiple Selections
Whether you have selected the Always Highlight Context Element checkbox or not, if you select multiple
elements one of the elements you select always has a hatched border. If you align the elements, this element
is the one used to align the other elements against.
For example, if the elements in the diagram below are aligned, the top element aligns to the bottom element
(the element showing a hatched border).
The image below shows AccountItem after the attribute Account has been dropped from the browser on to it.
2. Holding down the mouse button, drag the attributes and/or operations to the target element. A single
feature symbol (and, under some operating systems, the feature name) displays during the move;
however all of the selected features are moved.
3. Release the mouse button. The image below shows the final stage of the attribute and operations move
between the Class element and the Account element.
Note:
Context menus vary between element types. The Code Engineering options won't display for a Use Case
element, for example.
Example Context Menu for a Class: Example Context Menu for an Activity:
Properties [Ctrl]+[Enter] Open the Properties dialog 481 for the selected element.
For State Lifeline and Value Lifeline elements, display the Configure
Timeline 697 dialog.
Rule Composer For a Rule Task element, invoke the Rule Composer 945 tab in Business
Rule Modeling.
Other Properties For State Lifeline and Value Lifeline elements, display the Properties
dialog 481 for the selected element.
Create (or Edit) Linked (Corporate, Business and Software Engineering, Systems Engineering
Document [Ctrl]+[Alt]+[D] and Ultimate editions) Create 599 an RTF document linked to the
element.
Delete Linked Document Delete an existing linked document for the element.
Notes:
· Context menus vary between element types. Not all menu options shown here are present on all element
context menus; for example, the Partition Activity option only displays for an Activity element.
· If an element appearance is overridden by a Shape Script 1147 , several of the appearance options are
disabled; for example, Use Rectangle (Circle) Notation.
Instance Classifier [Ctrl]+[L] Set the instance classifier 515 for the element, on the Select <Item> dialog.
Classifier Properties Open the Properties 481 dialog for the classifier of the selected element.
[Ctrl]+[Alt]+[Enter]
Change to State (Value) Switch one type of Lifeline element to the other.
Lifeline
Show Composite Diagram Display a mini-picture of the contents of a composite element within that
element.
Multiplicity Define the multiplicity for the element, using the format defined on the
Cardinality 665 tab.
This is the number of instances of the element that can exist in a set. The
value displays on the element in a diagram, in the Name compartment.
Edit Extension Points For an extended Use Case, display the Use Case Extension Points 807
dialog, which you use to insert the point at which the behavior should be
inserted.
Association Class Connect the Class to a new Association 857 (if the element is a Class).
Use Rectangle (Circle) Use rectangle notation 808 for the element.
Notation
Set Run State Add a new instance variable to the element using the Define Run State 824
dialog.
Set Property Value (Part elements) Set the property value for the Part, using the Set Property
Values dialog.
Override Attribute Pre-define initial values for attributes that can be used to override existing
Initializers defaults.
[Ctrl]+[Shift]+[R]
Convert to Instance Convert this classifier to an instance or a property, depending on the type of
(Property) classifier selected (for example, SysML classifiers are always converted to
properties).
Convert Linked Element To Convert the occurrence of the element on this diagram from a link to the
Local Copy original element to a local copy of the element.
Make Sender/Receiver Toggle the element from a sender to a receiver and vice versa.
Accept Time Event Change the notation for an Accept Event action to an Accept Time Event
action.
Set Object State [Ctrl] Set the state of an object 824 /instance based on the child states of its
+[Shift]+[S] classifier.
Define Concurrent Define a set of substates 681 that can be held simultaneously within that
Substates composite state.
Use State Label Notation Display State Label Notation for a State object (the element name is
displayed on a box on top of the element rather than inside it).
Deep History Change the type of a shallow History pseudo-state to a deep History.
Applies only when right-clicking on a History 777 pseudo-state.
Set Attached Links Attach the selected Note element 612 to a connector, or several connectors.
Link to Diagram Note Display the diagram notes as the Note element text. The option simply
deletes any current text and blocks the Note from being edited other than
through the Notes field in the diagram Properties dialog.
As shown above, you can change the values of properties either by selecting the value from the property's
drop-down list or by typing the value in the field to the right of the property.
Note Create and attach a blank Note 536 element to the current element.
Constraint Create and attach a blank Constraint 785 element to the current element.
Activity Add an Activity 753 element as a child of the current Classifier 519 element,
with either an Activity diagram or an Interaction Overview diagram.
Interaction Add an Interaction 779 element as a child of the current Classifier element,
with either a Sequence diagram, a Communication diagram or a Timing
diagram.
State Machine Add a State Machine 796 element as a child of the current Classifier element,
with a State Machine diagram.
RuleFlow activity For a Class element, create a Rule Flow Activity 939 element with a child
Rule Flow diagram, as a behavior for the Class.
Add Diagram Add a child diagram to the Classifier element, using the New Diagram 422
dialog.
Note:
Not all menu options shown here are present on all element context menus. Context menus vary between
element types. The options relating to Classifiers, for example, are not available for Object elements.
Option Use to
Insert elements to: «x» Select the level down to which to insert connected elements, between levels
levels 1 and 5.
You can select levels 4 or 5 to see how far the element/relationship
hierarchy extends, but as this can produce a complicated and tangled
diagram, it is better to use level 1 or 2 on selected elements in turn.
Option Use to
For Link Type Select a type of connector to limit the inserted elements to those connected
by that relationship type.
With Link Direction Select whether the connectors are to be a single direction or bi-directional.
Limit to Element Type Select a type of element to limit the inserted elements to those of that
element type.
Layout Diagram When Select whether Enterprise Architect should layout the diagram after the
Complete elements have been inserted. The layout applied is the Digraph 465 layout.
Note:
If no elements have been added, this option has no effect. Elements have
to be added for Enterprise Architect to adjust the layout.
Limit to this Namespace Select a specific namespace from which the inserted elements are to come.
In Project Browser [Alt]+[G] Highlight the currently selected element in the Project Browser.
Locate Classifier In Project Highlight the classifier for the currently-selected object, in the Project
Browser [Ctrl]+[Alt]+[G] Browser.
Locate Operation in Project Highlight the call operation for the currently-selected Activity 744 , in the
Browser [Ctrl]+[Alt]+[G] Project Browser.
Add to Favorites Add the element to the Favorites folder 669 in the Resources window.
Show Realized Interfaces Display each interface directly realized 452 by a Class.
Show Dependent Interfaces Display each dependency relationship for that model element as a
lollipop style node attached to its left-hand side.
Note:
Not all menu options shown here are present on all element context menus. Context menus vary slightly
between element types. Of the Add options, only Add Port displays for a Class element, for example.
In the Embedded Elements dialog, click on the New button to create a new embedded element. Enter details
such as type, name and stereotype, and click on the OK button. The embedded element now shows on the
primary element as shown below.
You can add as many embedded elements as necessary. Modify or delete embedded elements using the
Embedded Elements dialog.
To incorporate inherited or owner properties, select the Show Owned/Inherited checkbox.
The name of the embedded element is a label, which you can edit using the Labels 452 context menu.
Note:
Not all menu options shown here are present on all element context menus. Context menus vary slightly
between element types. The Attributes and Operations options won't display for an Action element, for
example.
Generate Code [F11] Generate source code 1309 for the selected element (forward
engineer).
Synchronize With Code [F7] Reverse engineer source code 1328 for the selected element.
View Source Code [F12] Open the source editor 1441 if a file exists for that selected element.
Create Workbench Instance Create a workbench instance 1521 for the Debug Workbench (if a
[Ctrl]+[Shift]+[J] debug command has been configured for the parent package).
Note:
Not all menu options shown here are present on all element context menus. Context menus vary slightly
between element types. These Code Engineering options won't appear for a Use Case element, for example.
Lock Element Lock the element so it can't be edited. To unlock the element, select Lock
Element again.
Note:
This does not apply in the Corporate, Business and Software Engineering,
Systems Engineering and Ultimate editions when security is enabled; in that
situation, see the Lock model elements 204 topic.
Selectable Toggle whether the element is selectable or not. If an element is selectable, you
can move it around the diagram and perform right-click context menu
operations.
If an element is unselectable, you cannot move it around the diagram and the
only right-click operation available is to make the element selectable.
This option has no effect on double-click operations on the element, such as
displaying child diagrams or Properties dialogs.
Note that an element on a locked diagram is also unselectable - if you click on
it, the element outline displays in red.
Dockable Align and join two elements either vertically or horizontally, on the current
diagram only.
Both elements must have the Dockable option selected, and must have the
joining edges parallel. As the distance between the elements narrows, the
moving element snaps to the edge of the other element. For Activity Partitions
786 , the option is selected by default.
Deselecting the Dockable option does not separate the elements; if necessary,
you can simply move the elements apart again.
Note:
You can also change the appearance (and other aspects) of several selected elements at once 557 .
Appearance Sub-Menu
Menu Option & Use to
Function Keys
Default Appearance Override the global default appearance of all elements (which you set on the
[F4] Options dialog, Standard Colors 353 page and Diagram Appearance 356 page)
with a different default for just the selected element 538 on all diagrams in which
it is found.
To change the appearance of the selected element on the current diagram only,
use the Format toolbar 85 .
Apply Image From Paste the image held on the clipboard onto the selected element.
Clipboard
Select Alternate Image Select an alternative image using the image manager 447 .
[Ctrl]+[Shift]+[W]
Hide/Show Name Under Hides or redisplays the name label under an element with an alternative image.
Image
Set Font Change the font 556 type, size, color and effects for the text in an element.
Copy Appearance to Copy the default element appearance (set using the Default Appearance option,
Painter above) to the painter. You then paste the default appearance using the Paste
Appearance option on the Diagram toolbar 83 .
Note:
Not all menu options shown here are present on all element context menus. Context menus vary slightly
between element types. The Alternate Image option won't display for a Lifeline element, for example.
Select the font, style, size, color and effects, and (if necessary) the script type. Click on the OK button to save
your changes.
Note:
Where elements are made the same, they are matched to the element you right-clicked on.
· Align elements (by left edge, right edge, top, bottom, center in a column or center in a row)
· Space elements evenly (across or down)
· Standardize the dimensions of the selected elements
· Specify the visibility of features 438 for all selected elements
· Add the same Tagged Value 635 to all selected elements
· Automatically resize elements to match (element content permitting)
· Turn the Dockable 555 option on or off for all selected elements on a diagram
· Set the default appearance 538 and font 556 for multiple elements at once
· Make the selected elements on the diagram non-selectable 555 ; to make them selectable again, right-click
on the diagram and select the Make All Elements Selectable context menu option
· Generate code for all selected elements at once, or synchronize the code against the selected elements
Tip:
It is much faster to assign an appearance or characteristic to a group of elements than to one element at a
time.
4.6.6 Attributes
Attributes are features of an element that represent the properties or internal data elements of that element.
Not all element types support attributes, and others have restrictions - for example, attributes of Interfaces
must have Public scope.
Elements with attributes (typically Classes) display their features in diagrams in the manner shown below.
Attributes display in the first compartment of properties in colored text - the default color is red (for example,
Age : int).
For a Customer Class, CustomerName and CustomerAddress can be attributes. Attributes have several
important characteristics, such as type, scope (visibility), static, derived and notes.
In the Project Browser, Classes with attributes have their features collected beneath them, each preceded by
a blue box ( ).
Notes:
· If you make changes and do not save them, the Cancel button prompts you to save or cancel the changes,
whilst the Close button closes the dialog immediately and does not save the changes.
· If you are creating many attributes, go to the Attribute/Operations page of the Options dialog (Tools |
Options | Source Code Engineering | Attribute/Operations) and select the After save, re-select edited
item checkbox. Now, when you create an attribute and click on the Save button, the dialog fields clear
ready for you to enter the details of the next attribute. This helps you when you want to create attributes
quickly and might not necessarily want to fully define each one as you create it.
See the topics on the Attributes dialog General 560 , Detail 562 and Constraints 563 tabs.
Note:
If the parent element provides source or target roles for a connector, the connector can be attached to a
specific attribute. See the Connect to Element Feature 611 topic.
See Also
· Attribute Tagged Values 564
· Create Properties 565
· Display Inherited Attributes 567
· Create Object From Attribute 568
To review an existing attribute, click on the attribute name in the Attributes panel.
To delete an existing attribute, click on the attribute name in the Attributes panel and click on the Delete
button.
To create a new attribute, either:
· Click on the New button, or
· Click on an existing attribute name in the Attributes panel, and click on the Copy button.
Review, edit or complete the fields as indicated in the following table.
Field Use to
Name Display the name of the attribute. For a new attribute, type the name (with no spaces).
Alias Display an optional alias for the attribute. If necessary, type in a new alias.
Type Display the attribute's type. If necessary, click on the drop-down arrow and select a
different type.
The type can be defined by the code language (data type) or by a classifier element.
When you click on the drop-down arrow, the first set of values in the list provides the
data types, and the second (longer) set provides the possible classifiers.
To add new code language data types that can be displayed in this list, see the Data
Types 666 topic.
[ ... ] (Select) Open the Select <Item> 515 dialog, which you use to select or define a different attribute
button classifier type that might not be in the Type drop-down list.
Scope Define the attribute as Public, Protected, Private or Package. If necessary, click on the
drop-down arrow and select a different scope.
Stereotype Define the optional stereotype of the attribute. If necessary, either type a different
stereotype name or click on the drop-down arrow and select a stereotype.
Containment Define the containment type (by reference, by value or not specified). If necessary, click
on the drop-down arrow and select a different containment type.
Derived Indicate that the attribute is a calculated value. If you select this checkbox, the attribute
name in the element attributes compartment has the derived symbol (/) as a prefix.
Property Indicate that the attribute has automatic property creation 565 .
Initial Display an optional initial value. If necessary, type in a new initial value.
Notes Enter any free text notes associated with the attribute. You can format the notes text
using the Notes 642 toolbar at the top of the field.
To change the position of an attribute in the list in the Attributes panel, click on the Scroll Up or Scroll Down
(hand) buttons.
Note:
By default, the attributes are listed in alphabetical order. Before changing this sequence, you must deselect
the Sort Features Alphabetically checkbox on the Objects page of the Options dialog (Tools | Options |
Objects).
If you have changed the attribute details, click on the Save button to save the changes.
Field Use to
Multiplicity
Lower bound Define a lower limit to the number of elements allowed in the
collection.
Upper bound Define an upper limit to the number of elements allowed in the
collection.
Field Use to
Other
Transient (For Java code) indicate that the attribute can change
regardless of what the code is performing.
Qualifiers Click on this button to add Qualifiers 830 to the attribute, The
Qualifiers 832 dialog displays.
When you have completed these fields, click on the Save button.
To review an existing constraint, click on the constraint name in the panel at the bottom of the dialog.
To delete an existing constraint, click on the constraint name in the panel and click on the Delete button.
Field Use to
Type Click on the drop-down arrow and select the constraint type.
If you have created or edited the data, click on the Save button to save the changes.
Note:
Tagged Values are supported for attributes, operations, objects and connectors.
2. Click on the New tag button ( ). The Tagged Value dialog displays.
3. In the Tag field, type the tag name or click on the drop-down arrow and select a defined tag.
4. If appropriate, in the Value field type a specific value for the tag.
5. Click on the OK button to confirm the operation. The tag name and value are displayed under the
attribute in the Tagged Values tab.
Note:
You can define custom tags by creating a Custom Tagged Value Type 1171 .
Select the Property checkbox. The Create Property Implementation dialog immediately displays.
The Language panel defaults to the Class language; however, you can change this and generate the
properties for any language. Each language has slightly different syntax and generates slightly different
results. For example:
· Java and C++ generate get and set functions
· C# and VB.Net create property functions
· Delphi creates get and set functions as well as a specialized Delphi property Tagged Value.
Type in the required details and click on the OK button. Enterprise Architect generates the required operations
and properties to comply with the selected language.
Note that get and set functions are stereotypes with «property get» «property set» making it easy to recognize
property functions. You can also hide these specialized functions by deselecting the Property Methods
checkbox in the Features tab of the Diagram Properties dialog for a specific diagram (select the Diagram |
Properties menu option). This makes it easier to view a Class, uncluttered by many get and set methods.
Note that for Delphi you must enable the Tagged Values compartment to see the generated properties. See
Compartments 521 for the steps for doing this.
Note that for elements that have attributes, you can also override an inherited attribute's initial value, using the
element context menu option Advanced | Override Attribute Initializers. This displays the Override Attribute
Initializers dialog.
In the Override Attribute Initializers dialog, select the variable name and enter a new initial value. If required,
you can type a note in the Note field. When you display inherited attributes, Enterprise Architect merges the
list of attributes from all ancestors and merges the attribute initializers, so that the final child Class displays the
correct attribute set and initial values.
Note:
From Enterprise Architect release 7.5, you can create this relationship more directly by linking an attribute in
an element to another element, or linking two attributes in different elements. See the Connect to Element
Feature 611 topic.
In the following diagram, the billingAddress Object was generated by dragging the billingAddress attribute from
the Account Class in the Project Browser onto the diagram. The user then created Realize relationships
between the Account element and the billingAddress element, and between the billingAddress element and
the REQ028 Requirement element.
4.6.7 Behavior
Enterprise Architect enables you to define an element's behavior through the element's operations and
parameters. You can also define the behavior of more specific behavioral elements such as Activities,
Interactions, Actions and Interaction Occurrences, through the Behavior and Call tabs of the element
Properties dialogs. For further details, see the following topics:
· Operations 569
· Interactions and Activities 581
· Behavior Calls 581 (Actions and Interaction Occurrences)
· Behavior Parameters 583
· Behavior Call Arguments 582 .
4.6.7.1 Operations
Operations are features of a Class or other element that represent the behavior or services an element
supports. For a Customer Class, UpdateCustomerName and GetCustomerAddress can be operations.
Operations have several important characteristics, such as type, scope (visibility), static, abstract and notes.
Note:
If the parent element provides source or target roles for a connector, the connector can be attached to a
specific operation. See the Connect to Element Feature 611 topic.
a pink box ( ). Right-click on an operation and select the Operation Properties context menu option to open
the Operations dialog and edit details for the feature.
From the Project Browser, you can drag operations onto new elements to give them the same operations.
See Also
· Behavior Parameters 583
· Behavior 573
· Pre-conditions and Post conditions (that is, Constraints 577 )
· Tagged Values.
The General tab of the Operations dialog enables you to define new operations and set the most common
properties, including name, access type and return.
Note:
The General tab can vary according to the type of element you are adding an operation to. If defining
operations for a data modeling table, see the Index, Trigger, Check Constraint 1033 topic. The following
illustrations are for the operations of an Object element and a State element.
Field/Button Use to
Parameters Display the parameter list. See Parameters Dialog 583 for information regarding what
this string can contain.
Field/Button Use to
[ ... ] (Return Type Open the Select <Item> 515 dialog to select the operation return type.
Browse button)
(Not shown for State or State Machine elements.)
Notes Enter free text notes. You can format this text if necessary, using the Notes toolbar
642 at the top of the field.
Virtual/Abstract If the operation's language is set to C++, map to the C++ Virtual keyword. Otherwise
this option is Abstract, pertaining to an abstract function.
(Not shown for State or State Machine elements.)
Synchronized Specify a code engineering flag that relates to multi threading in Java.
(Not shown for State or State Machine elements.)
IsQuery Indicate that this method does not modify the object.
(Not shown for State or State Machine elements.)
Field/Button Use to
Save Save a new operation, or save modified details for existing operation.
Note:
· If you make changes and do not save them, the Cancel button prompts you to confirm or cancel the
changes, whilst the Close button closes the dialog immediately and does not save the changes.
· If you are creating many operations, go to the Attribute/Operations page of the Options dialog (Tools |
Options | Source Code Engineering | Attribute/Operations) and select the After save, re-select edited
item checkbox. Now, when you create an operation and click on the Save button, the dialog fields clear
ready for you to enter the details of the next operation. This helps you when you want to create operations
quickly and might not necessarily want to fully define each one as you create it.
In behavioral code generation, the behavior of the associated behavioral element is generated as the
operation's code. In the following illustration, Op1 is associated with the Activity Activity.
See Also
· Initial Code 576
On the Behavior tab of the Operations dialog, you can use the Initial Code field to enter code to be inserted
into an operation body when the operation is first generated to file. After this point, forward code generation
and synchronization do not replace the existing operation code with the Initial Code field.
By default, the Initial Code field also is not imported into the model during reverse engineering, but you can
select to import the field by selecting the Include method bodies in model when reverse engineering
checkbox on the Options 1341 dialog.
This field is most useful when combined with UML Patterns 901 . Elements within a pattern often require the
same stub code. Notice that the language specific patterns available from www.sparxsystems.com/resources/
developers/uml_patterns.html include initial code for some of the defined operations. This helps speed up the
process of applying patterns from model to implementation. The Initial Code section is also useful for
ensuring that the generated code is directly compilable.
This example shows the contents of the Initial Code field for the Instance() operation of the Singleton element
in the C# Singleton pattern:
Tip:
Tagged Values are supported for attributes, operations, objects and connectors.
2. Click on the New Tags button. The Tagged Value dialog displays.
3. In the Tag field, type the tag name (or select a defined tag from the drop-down list), then in the Value
field type the initial tag value.
4. Click on the OK button to confirm the operation.
Note:
You can define custom tags using a predefined Tagged Value Type. For more information see Create a
Custom Tagged Value 1171 .
You can configure Enterprise Architect to display this dialog each time you add a Generalization or Realization
connector between Classes, and review their possible operations/interfaces to override/implement. Do this
from the Links page of the Options dialog (select the Tools | Options | Links menu option).
The specification field is populated automatically when an operation is associated with the activity as a
behavior 573 .
Click on the Edit button to create and delete arguments, and relate them to a corresponding parameter in the
associated behavior.
Click on the [ ... ] (Select Behavior) button to re-associate the invocation with a different behavior or to
Note:
The Synchronize with Parameters button is enabled only if the invocation is associated with a valid
behavior, as identified in the Behavior field.
1. In the Name field, type the name of an argument to map to the behavior.
2. In the Parameters field, click on the drop-down arrow and select a behaviors parameter from the list of
parameters associated with the behavior.
3. In the Value field, set any required value.
4. If a diagram is displayed, and if required, select the Show in current diagram checkbox to add an
Action Pin 749 on the diagram.
5. Click on the Save button.
6. If appropriate, click on the New button and repeat steps 1 to 5 for another argument:parameter
mapping.
If you attempt to map a newly created argument to a parameter that is already associated with a different
argument, Enterprise Architect identifies the mapping and prompts you to confirm that you intend to change
the association.
Tip:
Set the amount of parameter detail to display in a specific diagram using the Show Parameter Detail 429
drop-down list on the Diagram Properties dialog. The setting applies only to the current diagram. The default
is to show the type only.
Option Use to
Stereotype Type a stereotype name, or click on the drop-down arrow and select a stereotype
for the parameter.
Add new to end Place new parameters at the end of the list instead of the start.
Multiplicity Display the Multiplicity dialog, to specify the multiplicity of the parameters.
Multiplicity Dialog
Field Use to
Lower bound Define a lower limit to the number of elements allowed in the collection.
Upper bound Define an upper limit to the number of elements allowed in the collection.
See Also
· Parameter Tagged Values 585
· Operation Parameters by Reference 586
Tip:
Tagged Values are supported for attributes, operations, objects and connectors.
4. In the Tag field, type the tag name (or select a defined tag from the drop-down list), then in the Value
field type the initial tag value .
5. Click on the OK button to confirm the Tagged Value.
Tip:
Custom tags can be created using a predefined Tagged Value Type. For more information see Create a
Custom Tagged Value 1171 .
Note:
This facility currently applies to operations only.
You can select to highlight parameters declared as 'Kind: inout' or 'Kind: out' with an additional user-defined
prefix or suffix. On the Objects 362 page of the Options dialog (select the Tools | Options | Objects menu
option), the Feature reference indicator panel enables you to set whether references are highlighted or not.
If you select the Highlight References checkbox, you can also indicate whether a prefix or suffix should be
used, and the actual reference character to use. In the example above, the & character has been set as a
prefix.
When you declare a parameter of type inout, it is assumed you are passing the parameter by reference rather
than by value. If you have elected to highlight references, then this is displayed in the Diagram View.
The example below shows that, in the getName operation, the parameter strName is a string reference, and is
highlighted using the chosen character and position.
3. Edit and manipulate the items in the element, either by pressing the appropriate keyboard keys or by
right-clicking on the highlighted item and choosing a task from the Element Items context menu. The
following commands are available:
Display the dialog containing details of the element View Properties [Enter]
Insert a new item in the element Insert New After Selected [Insert]
Insert a feature on the specific element item, such Add Other [Ctrl]+[F11]
as Maintenance features and Testing features
Delete the selected item from the model Delete Selected from [Delete]
Model
Display the source code for the element. View Source code [F12]
Other options that are available while editing element attributes or operations in a diagram include:
To... Press...
Accept current changes and open a new slot to add a new [Ctrl]+[Enter]
item
To... Press...
Note:
Most of the in-place editing menu commands have keyboard alternatives. For many of them, if the selected
item happens to be off-screen when you press the appropriate keys, the diagram automatically scrolls to
show the whole element, so that you can see what you are changing.
6. Delete or type over the previous name to change the stereotype name of the attribute or operation.
7. Press [Enter] to accept the change or [Esc] to cancel the change.
You can assign multiple stereotypes by including a comma-separated list inside the stereotype markers.
4. Select the Edit Selected menu option (or press [F2]) to enable you to edit the attribute or operation
directly from the diagram. The name of the item is highlighted.
5. Move the cursor to the scope of the item and delete the previous entry.
If the data type is a raw data type, Enterprise Architect displays the message: The data type is a raw
data type.
If the data type is Class, Enterprise Architect locates the Class in the Project Browser and opens its
Properties 481 dialog.
If the data type is a raw data type, Enterprise Architect displays the message This data type is a raw
data type.
If the data type is not defined in the model, the message is: The data type is not defined in the
model.
6. Select the appropriate menu option for the parameter kind value: [in], [inout] and [out]. The diagram is
updated to reflect the change.
3. Press [Insert]. Alternatively, right-click on the selected element item to display the context menu and
select the Insert New After Selected menu option. Enterprise Architect inserts a new data line in the
diagram, underneath the selected item.
4. Type in the relevant information for the attribute or operation.
5. Press [Enter] to accept the change or [Esc] to cancel the change. The diagram is updated to reflect the
changes.
3. Press [F2], or right-click on the selected item to display the context menu and select the Edit Selected
option.
4. Move the cursor inside the parameter brackets and type the parameter name followed by a colon (for
example, bks: for a vector containing books).
5. Give the parameter a type. Place the cursor after the colon at the end of the name and right-click the
mouse to display the inline editing options context menu; select the Insert Classifier option.
The Select <Item> 515 dialog displays. Select the required classifier.
6. Press [Enter] to accept the change or [Esc] to cancel the change. The diagram is updated to reflect the
changes.
3. Either:
· Press [Ctrl]+[F11] or
· Right-click on the highlighted name to display the context menu, and select the Add Other option.
4. Click on the appropriate radio button option to associate the required maintenance feature with the
element item.
5. Click on the OK button. The <Maintenance Feature> details for <element> dialog displays.
6. Complete the fields to define the maintenance activity, and then click on the Apply button. To create a
subsequent maintenance activity of this type, click on the New button.
7. When you have defined all of the maintenance activities of this type, click on the OK button. The
maintenance details are added to the element.
To ensure that the maintenance items are visible in the diagram element, as shown in the example below,
select the Maintenance checkbox on the Elements tab of the Diagram Properties dialog. For more information
on diagram appearance options, see the Show Maintenance Script in Diagram 1561 topic.
3. Either:
· Press [Ctrl]+[F11] or
· Right-click on the highlighted name to display the context menu and select the Add Other option.
4. Click on the appropriate radio button option to associate the required testing feature with the element.
5. Click on the OK button. The Testing window opens, showing the appropriate panel for the type of test
selected.
6. Complete the fields 1537 to define the test activity, and then click on the Save icon in the window toolbar.
The test is added to the element.
7. To create a subsequent test activity of this type, click on the New icon, or to add items for other types of
test, click on the appropriate tab.
To ensure that the test items are visible in the diagram element, as shown in the example below, select the
Testing checkbox on the Elements tab of the Diagram Properties dialog. For more information on diagram
appearance options, see the Show Test Script Compartments 1549 topic.
Note:
When you have saved the document, an A symbol displays in the bottom right corner of the element.
Documents created via the Document Artifact element are rendered into RTF Documentation by selecting the
Linked Document checkbox in the RTF Style Template Editor. See the Select Components For
Documentation 1579 topic.
The Linked Document checkbox is within the Element hierarchy, towards the end. Remember that
checkboxes can be moved up and down the hierarchy (as has been done above) to position information in the
generated document as you require. In some templates, the Linked Document checkbox is only available as
a child of the External Requirements checkbox.
The linked document is rendered into the RTF documentation at:
<linked document
See Also
· Create Document Artifact 599
· Link Document to UML Element 599
· Edit Linked Documents 600
· Hyperlink From Linked Document 601
· Create Element From Document 602
· Replace or Delete Documents 602
· Generate RTF Documentation Dialog 1573
Double-click on the Document Artifact element. The Linked Document Editor 600 opens, with the New Linked
Document dialog.
In the Copy template field, click on the drop-down arrow and select a previously-created Linked Document
Template. Click on the OK button.
For more information on how to create and edit Linked Document Templates, see Create Linked Document
Templates 603 and Edit Linked Document Templates 604 .
Click on an element in the Project Browser, Element List, Model Search or diagram, and:
· select the Element | Linked Document menu option
· in the Notes window, click on the Linked Document icon in the toolbar
· press [Ctrl]+[Alt]+[D] or
· right-click and select the (Create) Linked Document option from the context menu.
Alternatively, open the element Properties dialog and click on the Linked Document icon in the toolbar in the
Notes field.
The following dialog displays.
Note:
When you have saved the document, an A symbol displays in the bottom right corner of the element.
For more information on how to create Linked Document Templates, see Create Linked Document Templates
603 and Edit Linked Document Templates 604 .
You can format and edit the document in a number of ways, and add links from and references to the content
of the document. For example, you can highlight a word or term in the linked document and select Create |
Glossary Definition to create a glossary definition 326 for that term. Anyone reading the document can, if they
check for the term in the Project Glossary, read the definition 324 .
The following topics provide assistance on using the Document Editor.
· Scroll Through Text 1588
· File and Print Options 1588
· Cut and Paste Options 1589
· Image and Object Imports 1591
· Character Formatting 1592
· Paragraph Formatting 1593
· Tab Support 1595
· Page Breaks and Repagination 1595
· Insert Headers and Footers 1596
· Insert Bookmarks 1597
· Table Commands 1597
· Sections and Columns 1599
· Stylesheets and Table of Contents 1600
· Text/Picture Frame and Drawing Objects 1604
· Search/Replace Commands 1605
· Hyperlink From Linked Document 601
· Create Elements From Linked Documents 602
document, right-clicking on it and selecting the Create | Link to Existing Element context menu option. This
displays the Select Classifier 515 dialog, from which you select the element to link to.
In either case, when you next open the document, you can double-click on the hyperlink to locate and highlight
the object in the Project Browser. You can then perform all normal operations on the object, including opening
any linked document on the highlighted element.
You can also create a hyperlink to a wide range of additional objects, such as web pages, Help files, Model
Searches 1235 and Team Review 208 Forums, by highlighting the appropriate text and then selecting the Create
| New | Hyperlink context menu option. This displays the Hyperlink Details 840 dialog.
For an alternative method of creating a hyperlink to an external document, Help file or web page, see the
Hyperlinks and Bookmarks 1597 topic.
· Issue 1563 .
You can create the same arrangement with existing elements, diagrams and packages by dragging them from
the Project Browser into the text of the document, creating a hyperlink 601 with the item name as the text.
Create Item
To create an element or diagram in the Project Browser, whilst in a linked document, follow the steps below:
1. Open the linked document, either from a Document Artifact 599 element or through the context menu
599 for an existing element (Corporate, Business and Software Engineering, System Engineering and
Ultimate editions).
2. Enter some text, including appropriate text to act as the link (such as the element or diagram name).
3. Highlight the appropriate text and right-click on it. The editor context menu displays.
4. Select the Create | New menu option, and the required submenu option. If you select the:
· Class, Requirement or Issue option, the corresponding element is immediately created in the
Project Browser.
· Other option, the New Element 524 dialog displays; specify the element type and - if appropriate -
stereotype, and click on the Create button.
· Diagram option, the New Diagram 422 dialog displays; specify the diagram type and click on the OK
button.
5. The highlighted text is now a hyperlink. Click on the link to highlight the new element or diagram in the
Project Browser.
You can now edit or expand the element or diagram as required.
· right-click and select the Delete Linked Document context menu option.
2. Enterprise Architect prompts you to confirm the deletion; click on the Yes button.
If required, you can now create another linked document for the element.
Under the Templates folder, right-click on the Linked Document Templates icon and click on the Create
Template context menu option. The following dialog displays.
Enter a name for your template, or select a previously-created template. Click on the OK button.
You can group your templates into folders. Right-click on your newly created template and select the Assign
Template to Group context menu option. Enter a category name and click on the OK button.
You can also modify 604 and delete the templates using the context menu options.
Note:
You can transport these linked document templates between models, using the Export Reference Data 223
and Import Reference Data 225 options on the Tools menu.
4.7 Connectors
UML connectors, along with elements, form the basis of a UML model. Connectors link elements together to
denote some kind of logical or functional relationship between them. Each connector has its own purpose,
meaning and notation and is used in specific kinds of UML diagrams. For more information on using
connectors, see:
· Connector Context Menu 606
Off-Page Connector
UML, and therefore Enterprise Architect, does not have a connector that continues activity flow between two
diagrams. In creating a model diagram, if the need arises to continue flow to another diagram, you should
consider revising and simplifying the structure of the process so that groups of Actions are captured in
composite Activity elements, and each group of Actions is modeled within the child diagram of an Activity.
BPMN 956 , however, does enable you to create off-page connectors. You can also use the Suppress Line
Segments 617 menu option to indicate continuation of flow in a large diagram that, when printed, occupies
several pages. Be aware that these options are purely diagrammatic and do not indicate any diagram
relationships in any of the relationship tools.
Note:
Not all menu options are present on all connector context menus. Context menus vary slightly between
connector types. The type-specific menu options are not always included, for example.
<Connector type> Properties Open the Properties 626 window for the selected connector.
Note:
Not all menu options are present on all connector context menus. Context menus vary slightly between
connector types. The type specific menu options are not always included, for example.
Aggregation Set Aggregation to Shared Set the Aggregation to shared. Appears after Set
Aggregation to Composite has been selected.
Note:
Not all menu options are present on all connector context menus. Context menus vary between connector
types. The type-specific menu options are not always included, for example.
Set Source and Target Change the source and/or target 614 of the connector.
Reverse Direction Reverse the direction of the connector. For example, if the connector is an
arrow, the arrowhead swaps to the other end.
Specialize Associations Specify how the properties of this Association specialize the properties of
other Associations.
Information Flows Realize 866 any information items conveyed 865 on an Information Flow 864
Realized connector between these same two elements.
Dependency Properties Select a stereotype for the Dependency (or Trace, Role Binding, Occurrence
or Represents connector).
Custom Properties Display the Custom Properties 550 dialog, on which you can set the values for
predefined properties for a particular type of connector. For example, set
isDerived to True or False for an Association.
Note:
Not all menu options are present on all connector context menus. Context menus vary slightly between
connector types. The type specific menu options are not always included, for example.
Line Style Set the connector line style 615 - options are Direct, Auto Routing, Custom,
Bezier, Tree (Horizontal) or Tree (Vertical).
Pin End(s) Pin the connector start and/or end to the current position on the target element.
A sub-menu displays to offer the options of pinning the start point only, the end
point only, or both.
Once one or both ends are pinned, a fourth option is available to unpin both
ends.
Bend Line at Cursor Insert an anchor point 615 on the line at the point of the cursor so you can
[Ctrl]+[Q] change the shape of the line.
Suppress Line Segment Hide a segment of a connector so that you can view a part of the diagram that it
crosses.
To reverse the change, right-click on the connector and select the Show All
Line Segments context menu option.
Straighten Line at Cursor Remove an anchor point 615 on the line at the point of the cursor. (This is the
[Ctrl]+[Q] exact opposite of Bend Line at Cursor, and [Ctrl]+[Q] toggles the connector
point between the options.)
Note:
Not all menu options are present on all connector context menus. Context menus vary slightly between
connector types. The type specific menu options are not always included, for example.
Appearance Set the line color and line thickness of the connector.
Visibility Set connector visibility; see table below for sub-menu options.
Tidy Line Angles Tidy the line angles 615 of a custom connector.
Visibility Sub-Menu
Menu Option Use to
Hide Connector Hide the connector. To show the connector again, follow the steps in the
Hide/Show Connectors 621 topic.
Hide Connector in Other Hide or show the connector in other diagrams 621 .
Diagrams
Hide All Labels Hide or show all labels attached to the connector.
Set Label Visibility Hide or show labels 622 attached to the connector, individually.
Note:
Not all menu options are present on all connector context menus. Context menus vary slightly between
connector types. The type specific menu options are not always included, for example.
Note:
In the Corporate, Business and Software Engineering, System Engineering and Ultimate editions, if security
is enabled, you must have Update Element 198 permission to update or delete a connector.
Tip:
To create another connector of the same type as the last connector you used, click on the appropriate source
element and press [F3].
Select Connectors
To select a connector, simply click on it. Drag handles display, indicating that the connector is selected. This
gives the connector focus for keyboard commands such as [Delete], and displays connector properties in
docked windows such as the Tagged Values window. If there is more than one connector on a diagram, you
can cycle through them using the arrow keys.
Drag Connectors
You can drag a connector to position it. Click on the connector and drag the connector to where it is to appear.
Note that there are some limitations on how far or to where you can drag a connector.
Notes:
· You can reposition a connector by selecting and dragging the connectors as required.
· If a connector has source and target roles, you can attach either end of the connector to a specific attribute
or operation 611 in the source or target element.
Tip:
To reattach the end of a connector to a different source or target element, see the Change the Source or
Target Element 614 topic.
You can also highlight the connectors on a specific element. Select the element and press [L]. All the
connectors issuing from or terminating at that element are highlighted.
3. In the Feature Type field, click on the drop-down arrow and select the required feature type - Attribute
or Operation. The attributes or operations from the element are listed in the Feature field.
4. Click on the required attribute or operation, and click on the OK button.
The end of the connector changes to a bracket next to the selected feature.
You might create a number of feature-to-feature relationships between two elements (such as a Class and a
Table that represents the Class data) to produce a diagram similar to the following:
You can change the feature to which the connector is attached by following the above procedure and selecting
the new feature.
You can break the link to the selected feature in the following ways:
· Follow the above procedure, setting the Feature Type to None.
· Delete the attribute or operation from the element
· Change the connector type to a type that does not have source and target roles
· Change the connector to a different source or target element that does not contain the feature.
Note that reversing the direction of the connector does not break the connector's attachment to the feature.
Constraints let you specify a logical or informal constraint against a set of connectors; for example the {XOR}
constraint in the image above indicates that only one of the connectors in the specified set can be true at any
one time (exclusivity).
1. Right-click on one of the connectors to attach a note to. The context menu displays.
2. Select the Attach Note or Constraint menu option. The Link Relations dialog displays.
3. Check all the connectors that participate in the set. In the example below, two connectors have been
checked to participate in a logical constraint.
Note:
The constraint note is drawn slightly differently to a regular note, and has { and } automatically added
to visually indicate the constraint form.
Move a Connector
To move a connector, follow the steps below:
1. Click once on the connector to select it.
2. Holding the mouse button down, move the connector in the required direction.
3. To refine the movement, click and hold very near to one end of the connector; this enables a slightly
different movement range.
4. To further refine the movement and range, select either a routed, direct or custom line style. Each
behaves slightly differently (see Connector Styles 615 ).
3. In the Connector Type field, click on the drop-down arrow and select the required connector type.
4. Click on the OK button to apply changes.
3. Click on the drop-down arrows on the From Element and To Element fields, and select the source and
target elements.
4. Click on the OK button to apply changes.
Note:
The connector does not actually move until you release the mouse button over the new source or target
element. However:
· A dotted line shows where the connector would be during the move, and
· The solid outline of the nearest element or extension changes to a hatched outline as you move the cursor
onto it; this helps you identify where the connector will connect to, if there are many closely-arranged
elements, Parts, Ports and other extensions.
Style Description
Direct A straight line from element A to element B. You can move the line (back and forward,
up and down) to a limited degree.
Auto Routing A vertical and horizontal route from A to B with 90-degree bends. You can move the
line to improve the route, but the location and number of bends are not configurable.
Bezier A smooth curved line from A to B. Bezier style is directly available for Data Flow
diagram connectors, Mind Mapping connectors, State Flows, State Transitions, Object
Flows, and Control Flows.
Note:
You can convert other types of relationship to Bezier style by assigning the Tagged
Value _Bezier, with an integer value other than 0. However, some relationship types
(such as Aggregate) do not accommodate this style very well.
This Tagged Value over-rides the value of the Style field in the connector Properties
626 dialog.
Custom Line The most flexible option. You can add one or more line points and bend and push the
line into virtually any shape, using the Toggle Line Point at Cursor option.
Tree Style - A line from element A to B with two right-angle bends, and the end points fixed to
Vertical selected locations on the elements (Vertical or Horizontal).
Tree Style -
Horizontal
Style Description
Note:
You can convert relationships to Tree style by assigning the Tagged Value
_TreeStyle, with a value of H (Horizontal) or V (Vertical).
This Tagged Value over-rides the value of the Style field in the connector Properties
626 dialog.
Lateral - Vertical A line from element A to B with a single right-angle bend, and the end points fixed to
selected locations on the elements (Vertical or Horizontal).
Lateral - Horizontal
Note:
You can convert relationships to Lateral style by assigning the Tagged Value
_TreeStyle, with a value of LH (lateral-horizontal) or LV (lateral vertical).
This Tagged Value over-rides the value of the Style field in the connector Properties
626 dialog.
Bend Connectors
To bend a connector to quickly and easily route connectors in the required layout, follow the steps below:
1. Right-click on the connector; the context menu displays.
2. Set the line style to Custom Line ([Ctrl]+[Shift]+[C]); this enables the Bend Line at Cursor option in
the context menu.
3. Click on the Bend Line at Cursor option to add a line point.
Note:
Right-clicking a line point displays the Straighten Line at Cursor context menu option, which you can
use to remove the line point.
4. Using the mouse, drag the line point to the required position.
Alternatively:
1. Hold down [Ctrl] or [Shift] and click on a point on the connector to create a line point.
Note:
[Ctrl]+click also removes a line point.
2. Using the mouse, drag the line point to the required position.
Note:
You can set the Tidy Line Angles option to operate by default; click on the Tools | Options menu
option to display the Options dialog, and select the Diagram Behavior page.
Note:
The segment you right-clicked on is suppressed.
4. To show the segment again, right-click on the line and click on the Show All Line Segments context
menu option.
One application for this is to represent the continuation of flow when your diagram crosses the page boundary
marker in the Diagram View. When you suppress the line segment that crosses the boundary, the link name
(connector properties) displays at both ends of the hidden segment. When you print the diagram on multiple
pages, the link name identifies the connection apparently broken by the page boundary.
3. In the Link Type field, click on the drop-down arrow and select the type of connector.
4. In the Choose target(s) list, click on the name of the target. (If necessary, in the Select Target Type
field click on the drop-down arrow and select a feature to list only elements having that feature.)
5. Click on the OK button to create the connector.
Note:
You can also reproduce an existing connector between two elements when you paste those elements from
the Project Browser into a diagram as instances. An option 430 enables you to copy the relationship as well,
or just the elements.
3. Select the checkbox against each list item to show, and clear the checkbox against each item to hide. If
you want to display the information in a more readable layout, you can resize the dialog.
4. Click on the OK button to apply the changes.
2. Select the Delete Connector option. The Remove Connector dialog displays.
3. This dialog provides the options to hide the connector so that it remains functional, or remove the
connector completely. Click on the appropriate radio button and click on the OK button.
If you select the Hide option, it has the same effect as hiding the connector 621 on the Links tab of the
source element Properties dialog, or using the Visibility | Hide Connector context menu option. It also
hides the connector on the Relationships 1269 window.
Note:
The dialog does not display if:
· You have previously selected the Don't ask again checkbox or
· On the Links page of the Options dialog (Tools | Options | Links) the Prompt on connector deletes
checkbox is not selected.
Selecting the Don't ask again checkbox also deselects the Prompt on connector deletes checkbox.
Selecting the Prompt on connector deletes checkbox restores the dialog if you have used the Don't ask
again checkbox.
If you hide the dialog, the Delete Connector context menu option defaults to the setting you last used on the
dialog. Make sure that you have selected the right option to default to.
3. In the Name field, type the name of the Generalization set; for example, Gender.
4. In the Power Type field, either type a new power type, or click on the drop-down arrow or browser
button [ ... ] and select an existing one from the Select <Item> 515 dialog.
5. Check the IsMember column for the child subtypes that are part of this Generalization set.
The OMG UML specification (UML Superstructure Specification, v2.1.1, section 7.3.21, p. 77) states:
Each Generalization is a binary relationship that relates a specific Classifier to a more general Classifier (e.g.
from a class to its superclasses). Each GeneralizationSet defines a particular set of Generalization
relationships that describe the way in which a general Classifier (or superclass) may be divided using specific
subtypes.
Tip:
Alternatively, hide a connector by right-clicking on it on the diagram and selecting the Visibility | Hide
Connector context menu option. However, you must use the Links tab of the element Properties dialog to
show the relationship again.
Note:
Certain elements, such as Requirements, do not have a Links tab in the Properties dialog. In these cases,
open the Relationships 1269 window (View | Other Element Tools | Relationships) for the element and right-
click on the relationship in the list to display the context menu. This enables you to hide or show that
relationship in the diagram. Be aware that, in the Corporate, Business and Software Engineering, System
Engineering and Ultimate editions with security on, locks on the diagram and elements can make the required
option unavailable.
3. If the two connected elements have been included in other diagrams, these diagrams are listed here. In
the list, all diagrams for which the checkbox is selected show the connector. Deselect the checkbox for
any diagrams in which to hide the connector. If you want to display the information in a more readable
layout, you can resize the dialog.
Tip:
To hide the connector in all of the diagrams listed, click on the Suppress All button.
If you have several, long labels, you can resize this dialog for greater clarity.
3. Select the checkbox against each label to display, and clear the checkbox against each label to hide.
4. Click on the OK button.
Procedure
To put a label into Edit mode, either:
· Select the Edit Label option from the context menu, or
· Select a label and press [F2].
To save the current text to the field, either press [Return] or deactivate the Edit window.
Procedure
To reverse a connector, follow the steps below:
1. Right-click on the incorrect connector to open the context menu.
2. Select the Connection Detail | Reverse Direction menu option.
The left two columns define the source role of the current Association, while the right two define the target
role. With this you are able to select the relationships of each end of the properties listed. When a relationship
is set then this is drawn at the corresponding end of the connector on any diagram it appears on.
The dialog above displays when you select the Advanced | Specialize Associations context menu option on
the lowest Association connector in the following diagram.
Note:
The Son ->Parent connector has not yet been put in Tree Style - Vertical style.
This style of diagram provides a clearer layout for inheritance hierarchies and is easy to work with.
2. Select the Generalization link style Default = Tree checkbox to make this branching style the default
style for inheritance connectors.
Option Use to
Source Type in the name of the source element for the connector.
Target Type in the name of the target element for the connector.
Name (Optional) Type a name for the connector. If entered, the name displays on the diagram.
Direction Select the appropriate direction details: from source to destination, destination to
source, or bi-directional.
Some connectors have arrow heads that depend on this setting. Some connectors are
logically dependent on this (such as Inheritance).
Style Select the appropriate connection style; choose from: Direct, Auto-Routing, Bezier,
Custom, Tree (Vertical) or Tree (Horizontal).
Stereotype (Optional) Type the name of a stereotype for the connector, or click on the drop-down
arrow and select one. Alternatively, click on the [ ... ] button and select the stereotype
from the Stereotype Selector 897 dialog.
If entered, the stereotype is displayed on the diagram and over-rides the connector type
in the RTF documentation.
Virtual Indicate that inheritance is virtual. Available only for Generalization connectors.
Inheritance
Scope Select the appropriate value for the scope (used for inheritance). Available only for
Generalization connectors where the child Class is C++.
Option Use to
Notes (Optional) Type any notes on the connector. The notes are displayed in documentation,
if required.
As for the Notes 641 window, you can format the text, using the Rich Notes Text 642
toolbar at the top of the field.
See Also
· Message Scope 624
Tip:
Constraints about an Association (connector) can be added to further refine the model. Constraints detail the
business and operational rules for the model.
Option Use to
Option Use to
Option Use to
Derived Indicate that the role value or values can be computed from other information.
Owned Indicate that the role is owned by the opposite Class rather than the Association.
Selecting this checkbox adds a 'dot' to the appropriate end of the connector. ( )
Derived Union Indicate that the role is derived from the properties that subset it.
Multiplicity Specify the role multiplicity. (You can define the values of this field on the Cardinality 665
tab of the UML Types dialog.)
This is the range of instances of the role that can be active in the relationship; for
example, one employee can be assigned to tasks; for the target role you define the range
of instances (such as tasks) the employee could be assigned to.
The values have the following formats:
· *, or 0..* - zero, one or many instances
· 0..n - zero or up to n instances, but no more than n
· n - exactly n instances
· n..* - n, or more than n instances.
Note that you can also define source and target element multiplicity in the element
Attribute properties 562 .
Ordered Indicate that the role is a list and the list is ordered.
Allow Indicate that the role can contain duplicate elements (relevant only if multiplicity is > 1).
Duplicates
Maps to the UML property isUnique (selecting the checkbox maps to the isUnique value of
FALSE).
Containment Indicate the nature of the containment at the Destination (reference, value...).
Target Scope Select the level at which this role applies (instance or classifier).
Navigability Select whether or not this role is navigable (non-navigable ends are shown depending on
diagram properties).
Qualifier(s) Type any qualifiers or restrictions on the role. Separate multiple qualifiers with a semi-
colon.
Alternatively, click on the [ ... ] button at the end of the field, and define a new qualifier on
the Qualifiers 832 dialog. (Qualifiers typed into the Qualifier(s) field are also automatically
added to this dialog.)
Stereotype (Optional) Type the name of a stereotype that applies to this end of the Association, or
click on the [ ... ] button at the end of the field and select a stereotype from the Stereotype
Selector 897 dialog.
Member Type Type a role type that can be used when generating collection Classes for multiplicity > 1.
Note:
Source role details are displayed at the start end of a connector. If you have drawn the connector the wrong
way, you can always use the Reverse Direction menu option from the connector context menu.
Note:
Destination role details are displayed at the terminating end of a connector on the diagram.
4. In the Tag field type the tag name and value, or click on the drop-down arrow and select a predefined
Tagged Value type.
5. Click on the OK button to save the changes.
Note:
Fully qualified Tagged Values can be displayed only if the Tagged Value was created in Enterprise Architect
release 7.1 or later. You cannot display the fully qualified path for Tagged Values from earlier releases.
The Tagged Values window is a dockable window. You can use it to perform the following actions:
· Assign a Tagged Value to an Item 635
· Modify Tagged Values 635
· Assign Notes to a Tagged Value 636
· Perform advanced tag management. 638
A Technology Developer can also create new structured Tagged Values, reference data Tagged Values and
custom Tagged Values 1171 from predefined Tagged Value Types 1166 .
Component Description
Elements Elements display their own Tagged Values along with any inherited values.
Object Instances Object Instances display owned tags and those obtained from their classifier.
Ports and Parts Ports and parts display information similar to objects and display Port/Part 'Type' instead
of a classifier. Tags are included for all parents and other structures of the Ports type.
Attributes Include owned Tagged Values and those received from attribute type classifiers, with the
inclusion of any inherited ones.
When over-riding an inherited property, Enterprise Architect copies the tag from the parent down to the child
element and sets the new value, leaving the original tag unchanged.
To edit Tagged Values, use the Tagged Values toolbar, as described below.
2. Click on the OK button to add your new Tagged Value to all the currently selected elements.
Note:
You can also use the Current Element toolbar. The last button is a shortcut to the Add Tagged Value
function.
To delete this property you must open the element Properties dialog, go to the Tagged Values tab and
manually delete the item. There is currently no shortcut to delete tags from multiple elements simultaneously.
To add notes to the Tagged Value, go to the Tagged Values tab, click on the Tagged Value name, and click
on the Edit Notes button in the tab toolbar. The Notes dialog displays.
Any Notes text you enter also displays in the Info section at the bottom of the Tagged Values window.
Alternatively, open the Properties dialog for the object and select the Tagged Values tab.
4. Either click on the New Tags button or press [Ctrl]+[N]. The Tagged Value dialog displays.
5. In the Tag field, type the tag name or click on the drop-down arrow and select the appropriate tag to
assign to the item.
Note:
Direct entry of predefined Tagged Values is only available for predefined tags of type string.
6. If appropriate, type a specific value for the tag in the Value field.
7. To confirm selection of the Tagged Value, click on the OK button.
Note:
To override a Tagged Value defined in a parent element, edit the value in the from <parentname>
compartment of the Tagged Values window. Once this has been done the tag is moved into the selected
element's Tagged Values; this does not affect the Tagged Values defined in the parent element.
5. In the Note field, type the information relating to the Tagged Value, then click on the OK button. The
information is displayed in the lower portion of the Tagged Values dockable window whenever the
Tagged Value is selected.
The diagram below illustrates a complex tag hierarchy and the way Tagged Values can be either inherited or
overridden in specialized Classes to create the final tagged property set for an element.
Note also that a similar concept applies to instances, in which case the full tag set is created from the directly
owned tags, plus all of those merged in from the classifier's type hierarchy, additional stereotypes and realized
interfaces.
4.9 Notes
You use the Notes window to view and edit the documentation (notes) associated with elements, diagrams,
attributes, operations and connectors, either from a diagram (for both elements and connectors) or from the
Project Browser (elements only). When you select an element, the note displayed changes to reflect the
current selection. If you make changes to notes in this window, they are saved.
Notes are the main documentation feature you use to describe an element or connector. In the documentation
that Enterprise Architect generates, notes feature prominently.
If you want to display the Notes information in a more readable layout, you can resize the dialog. You can also
format the notes text using the Notes 642 toolbar at the top of the Notes window.
You can cut, copy, paste and delete text in the Notes window, or in any Notes or Description field that shows
the Notes toolbar, using a right-click context menu. From the context menu, you can also select an option to
spell-check a highlighted word.
Tip:
You can also edit notes by double-clicking on an element or connector in a diagram or in the Project Browser,
to open the Properties dialog. Any formatting changes made in one display are reflected in the other.
Note:
On the Testing, Maintenance and Project Management windows, any descriptive, history, input or results text
for a selected item is also displayed in the Notes window. You cannot edit this text in the Notes window.
Glossary Entries
The Notes window or field also enables you to create a Project Glossary 323 entry from text you have
highlighted in the window or field. To create the Glossary entry, follow the steps below:
1. Highlight the notes text to use as the Glossary definition (if suitable text is available), and press [Ctrl]
+[C] to copy it.
2. Highlight the text to use as the Glossary term, and right-click on it to display the context menu.
3. Select the Create | Glossary Definition menu option. The Glossary Detail 325 dialog displays, with the
selected term in the Term field.
4. If you have copied some definition text, paste it into the Meaning field. Otherwise type a suitable
definition of the term in this field.
5. In the Type field, select the appropriate term type.
6. Click on the Apply button to save the new Glossary definition.
The term displays in the Notes text as a roll-over hyperlink (as shown in the above screen illustration) which,
when you move the cursor over it, displays the Glossary definition of the term.
Having created a glossary definition anywhere else in the model, you can insert the glossary term in the text of
the Notes window (or Notes panel of a dialog) as a rollover hyperlink to the definition. To do this:
1. In the Notes dialog, move the cursor to the point in the text at which to insert the glossary term.
2. Press [Ctrl]+[Space]. The glossary term selection list displays.
3. Double-click on the term to insert in the Notes text. The term is inserted as a rollover hyperlink to the
definition.
Although it is not an independent toolbar that you can pin to the screen top or sides, or float in your work area,
the Notes toolbar appears in many places across Enterprise Architect in the Notes and Description fields of:
· The element Properties dialog:
· General tab
· Requirements tab
· Scenario tab
· Hyperlink Notes
· The Diagram Properties dialog
· The Connector Properties dialog
· The Message Properties dialog
· The Operations and Attributes Properties dialogs
· The Testing Window descriptions
· The Notes window
· The Rules and Scenarios Window for:
· Requirements
· Linked Requirements
· Scenarios.
Notes:
· If the toolbar is displayed but grayed out, the text field is read-only and cannot be edited. Other
Description or Notes fields in Enterprise Architect might not have the toolbar, in which case the Notes
facility is not available for those fields.
· For any Notes text that is displayed on a diagram, you must select the Render Formatted Notes
checkbox on the Feature Visibility 438 dialog 438 in order to reproduce the formatting.
· You can create a Project Glossary 323 term and definition from text in any field that has the Notes toolbar.
See The Notes Window 641 .
The options of this toolbar operate on selected text and any new text continuing from the formatting. The
options (with some keyboard shortcuts) are, from left to right:
· Make text bold [Ctrl]+[B]
· Make text italic [Ctrl]+[I]
· Underline text [Ctrl]+[U]
· Change the font color of the text
· Insert list bullet points [Ctrl]+[.] (full stop)
· Insert list numbering [Ctrl]+[1]
· Make text superscript
· Make text subscript
· Insert a hyperlink - this displays the following Hyperlink Details dialog, on which you specify the type of
hyperlink and type in or browse for the location of the target of the hyperlink.
Reference data is used in many places to provide content for drop-down list boxes. Setting up a project often
involves setting up the base set of reference types to use. Reference data options can be set up from the
Settings menu, including:
· People 645
· General Types 653
· Maintenance 660
· Metrics and Estimation 659
· UML 662
· Data Types 666
Having set up the reference data in a project, you can also export and import 223 it between projects.
Note:
In the Corporate, Business and Software Engineering, System Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Manage Reference Data - Update 198 permission
to update and delete reference items.
4.10.1 People
The People dialog enables you to control the following for your project:
· Project Authors 645
· Project Roles 648
· Project Resources 650
· Project Clients 651
Option Use to
Note:
If you enter multiple names, Enterprise Architect adds them separately and in
alphabetical order to the Defined Authors list. If you then click on one of these names,
Enterprise Architect displays that name only in the Name field.
Role Specify the role the Project Author plays in the project (such as Designer, Analyst, or
Architect).
You can type a role name or click on the drop-down arrow and select a role defined
through the Project Roles 648 tab.
Option Use to
Note:
If you type a role, this is not added to the roles on the Project Roles tab.
Click on the Save button to add the new names to the Defined Authors list.
To delete a Project Author, click on the name in the Defined Authors list and click on the Delete button.
Note:
You can transport these author definitions between models, using the Export Reference Data 223 and
Import Reference Data 225 options on the Tools menu.
2. Click on the Object Types button and select the checkbox for the object type User.
3. Click on the OK button to return to the Select Users dialog.
4. Click on the Locations button. The Locations dialog displays.
5. Click on the appropriate area or level of the directory, and click on the OK button. The Select Users
dialog redisplays.
6. In the Enter the object names to search field, type the first letter of the user name to search for.
7. Click on the Check Names button. The Multiple Names Found dialog displays, listing the names
starting with the specified letter found in the directory location.
8. Click on the required name (or press and hold [Ctrl] and click on several names), and click on the OK
button. The simple Select Users dialog redisplays, with the selected names listed.
9. Click on the OK button. The Project Authors tab redisplays, with the selected name or names in the
Name(s) field.
To add further roles, click on the New button and complete the fields as described below:
Option Use to
Defined Roles Review all roles that have been previously defined in Enterprise Architect.
Click on the Save button to add the new role to the Defined Roles list.
The Defined Roles list is available for selection for any element in the model; for example, you can select roles
on the Project Authors 645 tab of the People dialog, and the Resource Allocation 314 tab of the Project
Management window. You can also specify other roles on these dialogs, but such roles are not added to the
Defined Roles list.
To delete a role, click on the role type in the Defined Roles list and click on the Delete button.
Notes:
· Deleting a role has no effect on any Project Author definition having this role; the deleted role becomes a
simple text entry in the Project Author definition.
· You can transport these role definitions between models, using the Export Reference Data 223 and
Import Reference Data 225 options on the Tools menu.
Option Use to
Name Type the name of the person listed as a resource. The resource name is
available for use in Resource Management 314 .
Option Use to
Role(s) Type the role the resource plays in the project (for example, Designer,
Analyst, Architect).
Phone 1, Phone 2, Mobile, Type the contact telephone numbers for the resource.
Fax
Click on the Save button to add the new resource to the Available Resources list.
To delete a resource, click on the name in the Available Resources list and click on the Delete button.
Note:
You can transport these resource definitions between models, using the Export Reference Data 223 and
Import Reference Data 225 options on the Tools menu.
Option Use to
Organization Type the name of the organization that employs the client.
Role(s) Type the role the client plays in the project (for example, Manager,
Sponsor).
Phone 1, Phone 2, Mobile, Fax Type the contact telephone numbers for the client.
Click on the Save button to add the new client to the Defined Clients list.
To delete a client record, click on the name in the Defined Clients list and click on the Delete button.
Note:
You can transport these client definitions between models, using the Export Reference Data 223 and Import
Reference Data 225 options on the Tools menu.
Note:
You can transport the status types (and the colors assigned to status types) between models, using the
Export Reference Data 223 and Import Reference Data 225 options on the Tools menu.
Note:
To ensure status colors display on your diagrams, open the Options dialog at the Objects 362 page and select
the Show status colors on diagrams checkbox.
Note:
Requirement, Feature, Issue and Change elements have a status color compartment, but other elements do
not. The status color for these elements is applied to the element shadow. Therefore, on the Options dialog
Diagram Appearance 356 page you must also select the Element Shadows on checkbox.
Note:
You can transport these constraints between models, using the Export Reference Data 223 and Import
Reference Data 225 options on the Tools menu.
To add a new constraint status type, click on the New button, type the status type in the Status field, and click
on the Save button. The constraint status type displays in the Status list.
Note:
You can transport these constraint status types between models, using the Export Reference Data 223 and
Import Reference Data 225 options on the Tools menu.
Note:
You can transport these requirement types between models, using the Export Reference Data 223 and
Import Reference Data 225 options on the Tools menu.
Note:
You can transport these scenario types between models, using the Export Reference Data 223 and Import
Reference Data 225 options on the Tools menu.
4.10.3 Maintenance
To control Testing types 661 for your project, select the Settings | Maintenance menu option to display the
Maintenance dialog.
Note:
You can transport these problem types between models, using the Export Reference Data 223 and Import
Reference Data 225 options on the Tools menu. You transport the problem types together with test types as
a Maintenance Types file.
Note:
You can transport these test types between models, using the Export Reference Data 223 and Import
Reference Data 225 options on the Tools menu. You can either export the test types together with the default
problem types, as a Maintenance Types file, or separately as a Test Types file.
Stereotypes can be modified to make use of metafiles (image files) or customized colors, or to make use of
the Enterprise Architect Shape Scripts 664 to make new element shapes to determine the shape and
dimensions of the element.
Note:
In the Corporate, Business and Software Engineering, System Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Configure Stereotypes 198 permission to add,
modify or delete stereotypes.
To display the Stereotypes tab, select the Settings | UML menu option. The UML Types dialog displays,
showing the Stereotypes tab.
Notes:
· Shape Scripts adopt the same color gradient settings as normal elements, as defined in the Standard
Colors page of the Options dialog.
· If an element's appearance is modified by a Shape Script, many of the Advanced 549 context menu
options for that element are disabled.
For information on creating Shape Scripts, see the Shape Scripts 1147 topic.
For further information on adding and modifying Tagged Values, see Tagged Value Types 1166 .
Note:
You can transport these Tagged Value Type definitions between models, using the Export Reference Data
223 and Import Reference Data 225 options on the Tools menu. Tagged Value Types are exported as
Property Types.
4.10.4.3 Cardinality
The Cardinality Values tab of the UML Types dialog enables you to add, modify and delete values in the
default cardinality list.
The cardinality values are used to define the multiplicity of source 629 and target 631 elements in relationships.
This is the range of instances of the role that can be active in the relationship; for example, one employee can
be assigned to tasks; for the target role you define the range of instances (such as tasks) the employee could
be assigned to.
The cardinality values are also used to define the multiplicity of a Classifying element; that is, the number of
instances of the element that can exist. For example, the Class element Building Walls might have a
multiplicity of 2..n, meaning that at least two walls must exist (to support the roof) but there can be many walls
if the building design required it.
The values have the following formats:
· *, or 0..* - zero, one or many instances
· 0..n - zero or up to n instances, but no more than n
· n - exactly n instances
To add a new cardinality value, click on the New button. To modify an existing value, click on it in the
Cardinality list.
In the Cardinality field, type the required cardinality value. Click on the Save button.
Note:
You can transport these cardinality values between models, using the Export Reference Data 223 and
Import Reference Data 225 options on the Tools menu.
Notes:
· In the Corporate, Business and Software Engineering, System Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Configure Datatypes 198 permission to update
and delete data types.
· You can delete data types that you have defined, but you cannot delete any of the predefined data types.
To access this dialog, select the Settings | Code Datatypes menu option.
Option Use to
Add Product Add a new programming language to the drop-down fields for Class elements within the
Enterprise Architect model and enable the new language to be made available to the
Code Template Editor 1305 once at least one datatype has been added to the language.
Datatype Specify the name of the datatype; this is the language-specific name of the datatype.
Common Type Specify the common type, the generic name of the datatype; for example, the Java
boolean datatype has a common datatype Boolean.
Note:
You can transport these data types between models, using the Export Reference Data 223 and Import
Reference Data 225 options on the Tools menu.
4.10.5 Resources
Access: View | Other Project Tools | Resources.
The Resources window displays a tree of Technologies, Templates, Documents, UML Profiles and Patterns,
commonly-used model elements and Matrix profiles. This view provides useful shortcuts and re-use functions
that you can use to add stock elements to the current model, and patterns and elements for additional
information.
Tip:
In the Corporate, Business and Software Engineering, Systems Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Configure Resources 198 permission to maintain
Resources window items.
· MDG Technologies 1066 , UML Profiles 906 and UML Patterns 901 provide a convenient way to insert
complex new elements and features without having to retype or reconfigure each element
Note:
From release 7.5 of Enterprise Architect, the method of importing MDG Technologies into the Resources
window is available but not recommended. However, you might previously have imported Technologies
into the Resources window, and these are still available until you specifically delete them (right-click on
the Technology and select the Delete Technology context menu option).
You can also synchronize 910 the Tagged Values and constraints for any elements created from a profile
element in the Resources window.
· Templates provides a range of templates for creating HTML (web) 1649 reports, RTF 1569 reports in either
the legacy report generator 1628 or the extended RTF report generator 1570 , linked documents 597 and MDG
Technology reports; you can create, edit, copy and delete your own templates, and view and copy system-
· Matrix Profiles 1267 provides quick access to saved Relationship Matrix profiles; double-click on a profile to
load the matrix with the saved settings and source-target packages
· Favorites 669 provides a shortcut to elements that you configure as a shortcut
· Stylesheets enables you to import XSL Style sheets, which are then available in the drop-down list on the
XML Export dialog.
Note:
If you select a style sheet on export, Enterprise Architect applies that style sheet to the XMI generated
before saving to file. This makes it convenient to generate other forms of output from the base XMI
content. Combined with UML Profiles, this is a powerful means of extending Enterprise Architect to
generate almost any content required.
4.10.5.1 Favorites
The Resources window contains a Favorites folder. Here you can hyperlink to any UML element from the
model as a whole, and conveniently drag and drop instances or links to this element into other diagrams. This
is particularly useful where certain elements - such as the list of Actors in a system - are re-used again and
again, and switching to the Actors folder is not convenient. In cases like this, using the Favorites folder makes
managing and creating your model much easier.
V
Modeling Languages | 671
5 Modeling Languages
Enterprise Architect is a UML-based modeling tool. However, it strongly supports modeling with extensions to
UML and with other existing modeling languages, and enables you to create your own modeling tools as MDG
Technologies.
For information on the modeling languages and facilities supported, see:
· Standard UML Models 672
· Specialized UML Models 917
· Build Your Own Modeling Language. 1092
Tip:
If you are unfamiliar with UML, please explore the topics in this section, the Diagram Toolbox 399
descriptions, and the EAExample project supplied with Enterprise Architect. The online UML Tutorial (parts 1
and 2) and UML 2.0 Tutorial are also very helpful.
Recommended Reading:
In addition to the UML Specification available from the OMG, two books that provide excellent introductions to
UML are:
· Schaum's Outlines: UML by Bennet, Skelton and Lunn. Published by McGraw Hill.
ISBN 0-07-709673-8
· Developing Software with UML by Bern Oestereich. Published by Addison Wesley.
ISBN 0-201-36826-5
Types of Diagram
There are two major groupings of UML diagrams:
· Structural Diagrams 719 which depict the structural elements composing a system or function, reflecting the
static relationships of a structure, or run-time architectures.
· Behavioral Diagrams 673 which show a dynamic view of the model, depicting the behavioral features of a
system or business process.
Enterprise Architect provides the following additional diagram types that extend the core UML diagrams for
business process modeling, formal requirements specifications and other domain-specific models:
· Analysis 733 diagrams
· Custom 734 diagrams
· Requirements 736 diagrams
· Maintenance 737 diagrams
· User Interface 738 diagrams
· Database 739 diagrams
· Business Modeling and Business Interaction 739 diagrams.
Enterprise Architect also supports diagram types specific to MDG Technologies 1066 , including integrated
technologies such as Archimate 1073 , BPMN 952 , Data Flow Diagrams 1076 , Eriksson-Penker Extensions 1080 ,
ICONIX 1084 and Mind Mapping 1087 .
Activity Diagrams
Activity diagrams 674 model the behaviors of a system, and the way in which these behaviors are related in an
overall flow of the system.
Timing Diagrams
Timing diagrams 690 define the behavior of different objects within a time-scale, providing a visual
representation of objects changing state and interacting over time.
Sequence Diagrams
Sequence diagrams 706 are structured representations of behavior as a series of sequential steps over time.
They are used to depict work flow, message passing and how elements in general cooperate over time to
achieve a result.
Communication Diagrams
Communication diagrams 715 show the interactions between elements at run-time, visualizing inter-object
relationships.
See Also
· Behavioral Modeling 569
· Code Generation from Behavioral Models 1314
Note:
You can create Analysis diagrams 733 (Simplified Activity), containing the elements most useful for business
process modeling, using the New Diagram 422 dialog.
Example Diagram
The following diagram illustrates some of the features of Activity diagrams, including Activities, Actions, Start
Nodes, End Nodes and Decision points.
Tip:
Click on the following elements and connectors for more information.
Example Diagram
The following diagram illustrates some features of Use Case diagrams:
Tip:
Click on the following elements and connectors for more information.
Note:
Invokes and Precedes relationships are defined by the Open Modeling Language (OML). They are
stereotyped Dependency relationships; Invokes indicates that Use Case A, at some point, causes Use Case
B to happen, whilst Precedes indicates that Use Case C must complete before Use Case D can begin.
Note:
State Machine diagrams were formerly known as State diagrams.
A State Machine diagram illustrates how an element (often a Class) can move between states, classifying its
behavior according to transition triggers and constraining guards. Other aspects of State Machine diagrams
further depict and explain movement and behavior 573 .
For information on code generation from State Machine diagrams, see the SW Code Generation - State
Machine Diagrams 1316 and State Machine Modeling for HDLs 1319 topics.
State Machine representations in UML are based on the Harel State Chart Notation (see the OMG UML
Superstructure Specification 2.1.1, section 15.1), and therefore are sometimes referred to as State Charts.
You can display a State Machine as a diagram (as below) or as a table 682 in one of three relationship
formats. In all formats, you use the same Toolbox elements and connectors 411 .
To select the display format, follow the steps below:
1. Right-click on the diagram background to display the context menu.
2. Select the Statechart Editor option.
3. Select the appropriate display option:
· Diagram
· Table (State-Next State)
· Table (State-Trigger)
· Table (Trigger-State).
Example Diagram
The following diagram illustrates some features of State Machine diagrams. The Saved State is a Composite
790 State, and enclosed States are sub-states 790 . Initial and final pseudo-states 682 indicate the entry to and
exit from the State Machine. Composite States and sub-states are both State 789 elements, a Composite State
being an expanded State element that encloses other State elements, which are then referred to as sub-
states. Composite States and State Machines can also contain Regions 681 .
Note:
State elements can display either with or without a line across them. The line - as shown below - displays
when the element has features such as attributes (which could be hidden) or when the Show State
Compartment 362 checkbox is selected in the Objects page of the Options dialog.
You have two options for exposing the contents of a composite State, such as Saved. Firstly, you can double-
click on the element to display its child diagram separately, as shown below:
Alternatively, you can right-click on the composite element and select the Advanced | Show Composite
Diagram context menu option, which displays the child diagram in the context of the parent diagram.
Tip:
Click on the following elements and connectors for more information.
5.1.1.1.3.1 Regions
Regions can be created in Composite States 790 or State Machines 789 on a State Machine diagram 678 .
Regions indicate concurrency, such that a single State is active in each region. Multiple transitions can occur
from a single event dispatch, so long as similarly triggered transitions are divided by Regions.
To create a Region in a Composite State or State Machine element, follow the steps below:
1. Right-click on the element, and select the Advanced | Define Concurrent Substates context menu
option. The State Regions dialog displays.
5.1.1.1.3.2 Pseudo-States
Pseudo-states are a UML 2.3 abstraction for various types of transient vertices used in State Machine 678
diagrams. Pseudo-states are used to express complex transition paths. The following types of pseudo-state
are available:
· Initial 778
· Entry Point 769
· Exit Point 771
· Choice 758
· Junction 782
· History 777
· Terminate 804
· Final 772
· Fork 775
· Join 776
You can display the state transition as one of two different relationships:
· State - Trigger: The rows indicate the current states and the columns indicate trigger events (or the other
way around if you prefer, in a Trigger - State format). The cell at the intersection of a row and column
identifies the target state in the transition if the trigger occurs, and the condition (or guard) of the transition.
· State - Next State: The rows and columns both indicate states, and the cell at the intersection of a row and
column indicates the event that triggers a transition from the current (row) state to the next (column) state,
the condition (or guard) of the event, and the effect of the transition.
Select Format
You can display a State Machine as a diagram or table, and as a table in one of three relationship formats.
To select the display format, follow the steps below:
1. Right-click on the diagram background to display the context menu.
2. Select the Statechart Editor option.
3. Select the appropriate display option:
· Diagram
· Table (State-Next State)
· Table (State-Trigger)
· Table (Trigger-State)
To define the State Machine Table further, see:
· State Machine Table Options 684
· State Machine Table Operations 686
Option Use to
Transition Cell Width Specify the width of the transition cells (that is, the column width).
Transition Cell Height Specify the height of the transition cells (that is, the row height).
Left Edge Cell Width Specify the width of the left edge (row title) cells.
Top Edge Cell Height Specify the height of the top edge (column title) cells.
Cell Color
State/Trigger Cell Select the color of the row and column title cells.
Option Use to
Transition Cell Select the color of the transition cells (in the main body of the table).
Highlight Options
Highlight Zones Related Highlight the cells for all elements involved in a selected transition - the initial
to Selected Transition state, the target state, and the trigger.
Use Different Color for Highlight the cell for the target element in a transition in a different color to the
Target State cell for the source element.
Display Options
Always Display an Add an empty row (and, on a State - Next State table, an empty column) to the
Empty State Zone end of the table.
The title cell contains an ellipsis (...). You can click twice (not double-click) on
the ellipsis to edit it and identify a new state. In this case, another empty state
zone is automatically added.
Enable State Add a cell to each state title cell, to number the state. Numbering starts at 0.
Enumeration
Prefix If required, type a prefix for the state number or delete the default S to have no
prefix.
Enable Event Add a cell to each event or trigger title cell, to number the event. Numbering
Enumeration starts at 0.
Prefix If required, type a prefix for the event number or delete the default E to have no
prefix.
Sample State Table Display a preview of the table format as you define it.
Advanced Define diagram options. The State Machine Diagram Properties 423 dialog
displays.
Overview
As a State Machine table 682 is a variant of a State Machine diagram 678 , most of the operations for
manipulating the data are the same as for State Machine diagrams. These include operations to:
· Create new items by drag-and-dropping a specified object from the Toolbox to the current diagram
· Delete an item
· Apply to the diagram elements in the Project Browser
· Display or change the properties of the State, Trigger or Transition
· Apply to the diagram, such as Lock Diagram, Zoom, and in place editing of the element.
The operations specific to State Machine tables are described in the following topics:
· Change Position of State Machine Table 687
There are three ways to change the size of the State Machine table:
· Change the cell size on the State Machine Diagram: Options 684 dialog.
· Press [Ctrl]+[A] or double click on the top left cell to select the whole State Machine table, then press
[Ctrl]+["], [!], [#] or [$] to change the size.
· Select the State Machine table, then drag the shape handles to change the size.
You can insert a new State in the State Machine table, using one of following methods:
· In the top left cell in the State Machine table, move the cursor to the word State to display a + at the end of
the word; click on the + to create a new State
· Right-click in the top left cell in the State Machine table to display the context menu, and select the Add
State menu option
· Right-click on an existing State cell in the State Machine table to display the context menu, and select the
· Insert New State Before option to insert a new State before the current State, or
· Insert New State After option to insert a new State after the current State
· Click on an existing State cell in the State Machine table, and press [Insert] to create and insert a new
State above the selected State
· In the Toolbox, on the State Elements page, click on an element and then click on:
· the diagram background to add a new State to the end of the table, or
· an existing State cell to add the new State just above it.
Note:
From the State Elements page of the Toolbox you can insert State, Initial, Final, Entry, Exit and Terminate
elements.
Add a Substate
To add a Substate to a selected State, follow the steps below:
1. Right-click on the required State cell in the State Machine table. The context menu displays.
2. Select the Add Substate menu option. Enterprise Architect adds the Substate to the State.
Note:
If the selected State does not allow a Substate, then the Add Substate menu option is grayed out.
You can also drag one existing State over another. If the second State allows Substates, the dragged State
then becomes its Substate.
Similarly, you can change the parent State of a Substate by dragging the Substate from the original parent
State to a different State.
If the State Machine table format is either State-Trigger or Trigger-State, you can use one of the following
methods to insert a new Trigger:
· In the top left cell in the State Machine table, move the cursor to the word Event to display a + at the end of
the word; click on the + to create a new Trigger
· In the top left cell in the State Machine table, right-click to display the context menu and select the Add
Trigger menu option to create a new Trigger
· Select an existing Trigger in the State Machine table, then press [Insert] to insert a new Trigger before the
existing Trigger
· Click on an existing Trigger in the State Machine table, right-click to display the context menu and select
either the:
· Insert New Trigger Before option to insert a new Trigger before the current Trigger, or
· Insert New Trigger After option to insert a new Trigger after the current Trigger.
You can insert a new Transition using one of the following methods:
· Right-click on the cell in which to create a Transition, to display the context menu
· If the State Machine table format is State-Trigger or Trigger-State, the context menu lists the States
you can choose as the target of the Transition; click on the required State name to create the
Transition
· If the State Machine table format is State-Next State, click on the Insert Transition menu option to
create the Transition.
· In the State Relationships page of the Toolbox, select the Transition element, then click on the cell in the
State Machine table in which to create the Transition. Double-click on the Transition to define it in the
Transition Properties dialog.
You can change the position of a selected State or Trigger cell in one of the following ways:
· Right-click on the State or Trigger title cell and select the appropriate Order | Move xxx context menu
option
· Click on the cell and press [Shift]+["], [!], [#] or [$].
You can add a simple legend to any State Machine Table cell that has no transition. The two legend symbols
are:
· I - Ignore
· N - Never Happen
To assign a legend symbol to a State Machine Table cell, follow the steps below:
1. Right-click on the cell to which to assign the legend. The context menu displays.
2. Select the appropriate menu option:
· Legend | Ignore
· Legend | Never Happen.
The required symbol displays in the center of the cell.
To remove a legend symbol from a cell, right-click on the cell and select the Legend | Remove Legend
context menu option.
On the State Machine table you can select a State or Trigger element and locate it in a State Machine
diagram, by selecting the Find | Locate in State Chart context menu option. Enterprise Architect switches to
the State Machine diagram and highlights the selected element. You can locate a Transition relationship in a
similar way, by selecting the Locate in State Chart context menu option.
Note:
A Trigger on a State Machine table might or might not exist on the corresponding State Machine diagram. If
the Trigger does not exist on the State Machine diagram, the Locate in State Chart option is disabled.
Conversely, on the State Machine diagram, you can select a State or Trigger element and locate it on the
corresponding State Machine table, by selecting the Find | Locate in State Table context menu option.
Enterprise Architect switches to the State Machine table and highlights the selected element. You can locate a
Transition relationship in a similar way, by selecting the Locate in State Table context menu option.
Trigger
· Deleting a Trigger removes it completely from the model, therefore you cannot UNDO a Trigger deletion
· There is a <None> column at the end of the Event heading row. This is for Transitions that have no Trigger
information.
State
From the Toolbox you can insert the following State element types only (although the State Machine table
might pick up and display other types, such as Submachine State):
· State
· Initial
· Final
· Entry
· Exit
· Terminate.
Transition
The Transition cell displays its properties in one of two ways, depending on the State Machine table format. If
the State Machine table format is State - Trigger or Trigger - State, the Transition cell displays the Guard and
Target as shown below:
If the State Machine table format is State - Next State, then the Transition cell displays the Trigger, Guard and
Effect as shown below:
The State Machine table enables you to edit the Guard and Effect in place. If the Guard or Effect is empty for
your selected Transition cell, the cell displays an ellipsis [ ... ] instead. Click twice (not double-click) on the
ellipsis to type in the Guard and Effect names.
To export a State Machine Table to a CSV file, follow the steps below:
1. Open the required State Machine Table.
2. Right-click on the diagram background and select the Export Statechart to CSV file context menu
option.
3. The Save As browser dialog displays. Select the appropriate directory location and type in the .CSV
filename.
4. Click on the Save button.
Example Diagram
An example of a Timing diagram is shown below:
(See OMG UML Superstructure Specification, v2.1.1, p. 454, figures 14.30 and 14.31).
Tip:
Click on the following elements and connectors for more information.
The primary purpose of the timing diagram is to show the change in state or condition of a lifeline
(representing a Classifier Instance or Classifier Role) over linear time. The most common usage is to show the
change in state of an object over time in response to accepted events or stimuli. The received events are
annotated as shown when it is desirable to show the event causing the change in condition or state.
3. In the Start Time and End Time fields, type the numeric values for the start and end points of the
timeline; for example, set the range 0 to 100.
Note:
The start time must be less than the end time.
4. In the Time Units field, type the unit in which the time is measured; for example, seconds or minutes.
5. If it is not necessary to show the time range on the diagram, select the Suppress In Diagram
checkbox.
6. Click on the OK button. If you have not suppressed it, the time range displays underneath the Lifeline
elements that you create on the diagram.
From the Timing elements page of the Toolbox drag a State Lifeline 794 element onto your diagram. The
element displays on the diagram.
To define the name of the State Lifeline, follow the steps below:
1. Right-click on the element. The context menu displays.
2. Select the Other Properties option. The Timeline <name> dialog displays, showing the General tab.
3. Overtype the Name field.
4. Click on the Apply button and the OK button.
Note:
In order to edit the State Lifeline element, you must click on it to select it.
80 Pixels 150
Pixels
You now edit the states 693 and transitions 694 in the State Lifeline.
Add States
1. Click on the State Lifeline element. The New State button ( ) and Edit States button ( ) display at
the bottom left of the element.
2. Click on the New State button. The New State dialog displays.
Note:
You must add at least two states; for example, On and Off.
5. As you add states, increase the height of the element by dragging a handle-box ( ) on the edge
of the element.
Note:
You can also add states using the States tab of the Configure Timeline dialog. Add either:
· Discrete states to the Timeline as described in Add a New State 698 , or
· A continuous range of numeric states as described in Numeric Range Generator 698 .
Edit States
1. Click on the State Lifeline element and click on the required state. The Edit State dialog displays.
2. In the State field, change the name as required.
3. Click on the OK button.
4. If necessary, change the order of the states by either:
· Clicking on the up or down arrows ( and ) beside each state name, or
· Right-clicking on the state name and selecting the Move Up or Move Down context menu options.
Note:
You can also edit the states using the States 697 tab of the Configure Timeline dialog.
Delete States
1. Right-click on the state name. The context menu displays.
2. Select the Delete option.
Alternatively:
1. Click on the State Lifeline element.
2. Hold down [Ctrl] and move the cursor over the state name. The cursor changes form (7 ).
3. Click the mouse button. The state name is deleted.
· The move cursor ( ) displays when it is directly over the timeline. Hold down the mouse button and drag
the line to move the timeline to a state above or below the current position. You can move the transition
more than one state up or down, if necessary.
· The new transition up cursor ( ) displays when it is just below the timeline, and there is another state
above the line. Press and hold [Alt]; the cursor changes ( ). Click to create a new transition to the state
above the line. To push the transition up more than one state, then move the cursor onto the line and drag
it up. The transition is for one interval unit; to make it longer, see Change the Transition Time below.
If you do not hold [Alt], the cursor does not change and the whole timeline from the transition onwards
moves up.
· The new transition down cursor ( ) displays when it is just above the transition line, and there is another
state below the line. Press and hold [Alt]; the cursor changes ( ). Click to create a new transition to the
state below the line. To push the transition down more than one state, then move the cursor onto the line
and drag it down. The transition is for one interval unit; to make it longer, see Change the Transition Time
below.
If you do not hold [Alt], the cursor does not change and the whole timeline from the transition onwards
moves down.
As you move the cursor over the vertical line of a transition, the time at which the transition occurs displays
next to the line.
Edit Transitions
Follow the steps below:
1. Click directly on the appropriate transition line, after the transition begins. Alternatively, right-click on the
transition line to display the context menu, and select the Edit menu option.
The Edit Transition dialog displays. The fields in this dialog are all optional.
2. In the At Time field, type the point on the timescale at which the transition occurs.
3. In the Transition To field, type the name of the state to which the transition occurs.
4. In the Event field, type the name of the event that the transition represents; this displays on the
Timeline element just above the transition line.
5. In the Duration Constraint field, type any constraint on the duration of the transition; this displays on
the Timeline element, along the top of the element over the transition.
6. In the Time Constraint field, type any constraint on the start of the transition. This displays on the
Timeline element at the start of the transition.
7. Click on the OK button.
Notes:
· Once Event, Duration Constraint or Time Constraint are displayed on the diagram, you can edit them
directly by clicking on them to display their specific dialog. You can also delete them by pressing and
holding [Ctrl] as you click on them; the cursor changes form when you press [Ctrl].
· You can also edit transitions using the Transitions 699 tab of the Configure Timeline dialog.
Merge Transitions
If necessary, you can 'push' a transition to merge it with the next or previous transition point on any Lifeline
element on the diagram.
Position the cursor off the appropriate side of the transition line; the cursor changes form ( or ). Click
the mouse button. The system locates the nearest transition in the required direction, on any element on the
diagram, and merges the current transition with that transition.
Delete Transitions
Transitions are automatically deleted when you move the transition to the same state as the previous
transition state, and release the cursor.
Alternatively, right-click on the transition line to display the context menu, and select the Delete menu option.
From the Toolbox drag a Value Lifeline 808 element onto your diagram. The element displays on the diagram.
To edit the Value Lifeline name, follow the steps below:
1. Right-click on the element. The context menu displays.
2. Select the Other Properties option. The Timeline <name> dialog displays, showing the General tab.
3. Overtype the Name field.
4. Click on the Apply button and the OK button.
Note:
In order to edit the Value Lifeline element, you must click on it to select it.
You now add states 696 and edit transitions 696 on the Value Lifeline.
Adding States to a Value Lifeline is similar to adding states to a State Lifeline 693 element.
Notes:
· For a Value Lifeline, only the first state displays on the diagram. The other states are added to a list to
access when creating transitions; they only display on the Lifeline element as you create transitions to
those states.
· You can only edit or delete states in a Value Lifeline element using the States 697 tab of the Configure
Timeline dialog.
Add Transitions
After you have added states to the Value Lifeline element, you can add transitions via the diagram. To do this,
follow the steps below:
1. Move the cursor above the transition line. The cursor changes form ( ).
2. Click the mouse button. The New Transition Event dialog displays.
3. In the Transition To field, click on the drop-down arrow and select a state from the list of available
states; this displays on the Lifeline element within the transition box. The remaining fields on the dialog
are optional.
4. In the Event field, type the name of the event that the transition represents; this displays on the Lifeline
element just below and at the start of the transition line.
5. In the Duration Constraint field, type any constraint on the duration of the transition; this displays on
the Lifeline element, along the top of the element over the transition.
6. In the Time Constraint field, type any constraint on the start of the transition. This displays on the
Lifeline element at the start of the transition, just after the Event name.
7. Click on the OK button to create the new transition.
Edit Transitions
To edit a transition, follow the steps below:
1. Click on the state name in the transition. Alternatively, right-click on the state name to display the
context menu, and select the Edit menu option.
The Edit Transition dialog displays; this is the same as the New Transition Event dialog, except that the
At Time field is enabled.
2. If necessary, overtype the At Time field to define a different start point.
Note:
You cannot change the At Time field for the first state in the timeline; this is always 0.
Delete Transitions
To delete a transition, press and hold [Ctrl] and click on the transition state name. While you hold [Ctrl] on the
transition state name, the cursor changes form (7 ).
Alternatively, right-click on the state name to display the context menu, and select the Delete menu option.
You can also manage states using the States tab of the Configure Timeline dialog. To display this, either:
· Double-click on the Lifeline element
· Right click on the Lifeline element and, from the context menu, select the Properties option, or
· On a Value Lifeline, click on the Edit States button ( ).
Important:
This operation deletes all existing states and transitions for the Timeline element.
Note:
Nonsense values do not parse; Low Value must be less than High Value, and Step Value must be a
positive value smaller than the total range.
5. In the Units field, type the name of the measurement unit; for example, minutes.
6. Click on the OK button. Enterprise Architect displays a warning that existing states and transitions will
be deleted.
7. Click on the Yes button. The Configure Timeline dialog redisplays, with the defined range of states
listed in the States panel.
8. Click on the OK button. For a:
· Value Lifeline, the first state is shown on the Timeline for the full time range of the Timeline.
· State Lifeline, the range of states is displayed as the y-axis of the Timeline.
You can also manage transitions using the Transitions tab of the Configure Timeline dialog. To display this,
either:
· Double-click on the Lifeline element
· Right click on the Lifeline element and, from the context menu, select the Properties option, or
· On a Value Lifeline, click on the Edit States button ( ).
The Configure Timeline dialog defaults to the States tab. Click on the Transitions tab.
All transitions defined for the Timeline element are listed in the Transition Points panel.
Edit a Transition
1. Click on a transition in the list.
2. In the Edit Transition panel, edit the fields for the transition as required.
3. Click on the Save button.
Delete a Transition
1. Click on a transition in the list.
2. Click on the Delete button. The transition is removed from the dialog and the Lifeline.
3. Click on the OK button.
3. Move the cursor to the edge of the Time Interval in the Interval Bar so that the cursor changes to the
drag form ( ) and drag the edge to the correct start or end point.
Notes:
· If there are other Time Intervals in this period, Enterprise Architect replaces them with the single Time
Interval for the transition state. You should consider this when creating the Time Interval, as it extends
across the other Timeline Elements in the diagram.
· A value of this method is that it creates a Time Interval for a period in which no transitions occur, which
could be lengthy. You can then compress this Time Interval (see below) to hide the period of inactivity. See
also Compress Timeline 704 .
Notice:
Item Description
25 ... 55 The compressed sections in the time range underneath the elements.
You can also compress and expand Time Intervals using context menu options; see Time Interval Operations
on Transitions 703 .
· To select a number of individual Time Intervals, press and hold [Ctrl] while clicking on the Interval Bar
within each Time Interval.
· To select all Time Intervals in a range, click on the Interval Bar within the first Time Interval in the range,
then press and hold [Shift] and click on the Interval Bar within the last Time Interval in the range. All Time
Intervals between the two are selected.
After you have selected one or more Time Intervals, you can modify the selection in the following ways:
· To exclude Lifeline elements from the selection, press and hold [Ctrl] and click on any part of the selection
within that element. In the diagram below, the Value Lifeline is excluded from selection.
Repeat the step to toggle the selection and re-include the element. See also Toggle Interval Selection 704 .
· To select only one Lifeline element and exclude all others, press and hold [Shift] and click on any part of
the selection within that element.
Note:
Selection is useful for cutting, copying and pasting transitions.
Note:
Time Intervals can meet, but cannot overlap.
Note:
Deleting the Time Interval does not delete transitions within that interval.
You can operate on selected Time Intervals 700 , or all Time Intervals in the diagram.
Selected Intervals
Note:
The Copy, Cut and Delete operations act on all selected Time Intervals over the whole diagram, not just the
current one.
To select and update specific Time Intervals, right-click on the Interval Bar within an interval. The following
context menu displays.
Option Use to
Select Interval Select the Time Interval or, if the interval is already selected, deselect it. You can
select several Time Intervals in this way, accessing the menu separately on each
Deselect Interval interval.
Toggle Interval Switch the selection or deselection of the Time Interval within the selected
Selection Timeline element.
You select or deselect a Time Interval across all Timeline Elements, but the
Toggle option acts only on the element in which you access the menu. See also
Select Time Intervals 702 .
Compress Interval Compress the Time Interval, and hide all transitions within that Time Interval.
This is also useful for hiding long sections of inactivity on the time line. Also see
Compress Timeline 704 , below.
Cut Copy and delete the selected transitions from the diagram.
Cut and Remove Time Copy and delete the transitions that lie in the selected Time Intervals from the
diagram.
This option also removes time from the timeline, the amount being the duration
of the Time Interval. All transitions and Time Intervals to the right of the selected
time interval are moved left.
Delete and Remove Delete the transitions that lie in the selected Time Intervals from the diagram.
Time
This option also removes time from the timeline, the amount being the duration
of the Time Interval. All transitions and Time Intervals to the right of the current
Time Interval are moved left.
Insert Time Add time to the timeline and move all transitions and time intervals to the right.
Also expand the duration of the current Time Interval.
Compress Timeline
The Compression toggle boxes and Compress Interval menu option operate on the Time Interval and
compress the timeline and all transitions within the Interval. You have an alternative option that operates on
Notes:
· If there are other Time Intervals in this period, Enterprise Architect replaces them with the single Time
Interval for the transition state. You should consider this when creating and compressing the Time Interval,
as it extends across the other Timeline elements in the diagram.
· A value of this method is that it creates a Time Interval for a period in which no transitions occur, which
could be lengthy, and then compresses this Time Interval to hide the period of inactivity.
Note:
The Paste menu options become active after transitions have been copied.
Expand all Time Intervals Expand all Time Intervals over the whole diagram.
Compress all Time Compress all Time Intervals over the whole diagram.
Intervals
Paste Combine Paste copied transitions over any existing transitions within the copied time
frame.
Note:
The diagram does not allow two consecutive transitions to the same state, and
removes the second transition automatically.
Paste Remove Delete all the transitions and then pastes the copied transition within the copied
time frame.
Paste Insert Insert time, moving all transitions and Time Intervals to the right to make room
to paste in the copied transitions.
Insert Time Add time to the timeline and move all transitions and Time Intervals to the right.
This option does not change the duration of any Time Interval.
Note:
Any new states created might be in the wrong order. You can change the order via the diagram quick buttons
693 .
2. Press and hold [Shift] and click on the Interval Bar (it doesn't matter which Timeline element you select)
and move the transition left or right.
Note:
You cannot drag transitions over other transitions; the move stops when the moved transition collides with a
stationary transition.
Tip:
If you have collision problems, use [Shift]+select to shift transitions for a single Timeline element.
Robustness diagrams, used extensively in ICONIX 1084 , can be created as Sequence diagrams.
To toggle the numbering of messages on a Sequence diagram, select or deselect the Show Sequence
Numbering 360 checkbox on the Options dialog.
Example Diagram
The following example Sequence diagram demonstrates several different elements:
Tip:
Click on the following elements and connectors for more information.
Note:
To show the termination X on the lifeline in the following example diagram, you must switch on garbage
collection: Tools | Options | Diagram | Sequence | Garbage Collect.
Note:
A Sequence diagram is often attached directly under the Use Case to which it refers. This helps keep
elements together, both in the model and when documentation is produced. To do this, right-click the Use
Case on the diagram and select the Advanced | Make Composite context menu option.
The example below shows some possible elements of Sequence diagrams and their stereotyped display.
· Actor - An instance of an actor at runtime.
· Lifeline - An Object element with the stereotype Lifeline.
· Boundary - Represents a user interface screen or input/output device.
· Entity - A persistent element - typically implemented as a database table or element.
· Control - The active component that controls what work gets done, when and how.
Tip:
Use Sequence diagrams early in analysis to capture the flow of information and responsibility throughout the
system. Messages between elements eventually become method calls in the Class model.
This diagram will not be damaged, because all the Lifelines are objects and these objects reside in the same
package as the Sequence diagram.
· Start New Message Group: Starts off a new round of processing in the current diagram. This enables you
to describe more than one processing scenario in a single diagram.
· Extend Source Activation Down: Forces an element to stay active beyond the normal processing period.
This could be used to express an element that continues its own processing concurrently with other
processes.
· Extend Source Activation Up: Forces an element's activation upwards.
· End Source Activation: Truncates the activation of the source element after the current message. This is
useful for expressing an asynchronous message after which the source element becomes idle.
· End Target Activation: Ends a Forced Activation started by the Extend Source Activation options.
The Raise Activation Level and Lower Activation Level options display on the context menu only where
their use is appropriate. For example, after a self-message the next message starts by default at a lower
activation level but the Raise Activation Level command displays on the context menu to enable you to raise
its level.
A more convenient way to change activation levels is directly on the diagram. Whenever appropriate, left and/
or right arrows display on specific connectors. In the following diagram, see connector 1.3. Click on the arrow
to raise or lower the activation level.
Note:
Program flow can more accurately be depicted with nested activation levels for callback messages.
In order to raise the Activation level of Sample A1, click on the raise arrow of the selected connector. The
lifeline now visually depicts that method Sample A1 is called during the processing of Sample A.
In the example below, a few more self-messages have been added. The message Sample A2a is called from
Sample A2 which in turn is called from Sample A (not Sample A1). Sample A1 is called from Sample A.
3. Select or clear the checkbox against each message label to display or hide, respectively.
4. Click on the OK button to save the settings.
1. Right-click on the sequence elements containing the child Ports or Parts, to display the context menu.
Example Diagram
The example below illustrates a Communication diagram among cooperating object instances. Note the use of
message levels to capture related flows, and the different colors 716 of the messages 879 .
Tip:
Click on the following elements and connectors for more information.
Note:
Communication diagrams were known as Collaboration diagrams in UML 1.4.
Example Diagram
The following example depicts a sample sale process, shown in an Interaction Overview diagram, with sub-
processes abstracted within Interaction Occurrences. The diagram appears very similar to an Activity diagram,
and is conceptualized the same way; as the flow moves into an interaction, the respective interaction's
process must be followed before the Interaction Overview's flow can advance.
Tip:
Click on the following elements and connectors for more information.
Class Diagrams
Class diagrams 721 capture the logical structure of the system, the Classes and objects that make up the
model, describing what exists and what attributes and behavior it has.
Component Diagrams
Component diagrams 730 illustrate the pieces of software, embedded controllers and such that make up a
system, and their organization and dependencies.
Deployment Diagrams
Deployment diagrams 727 show how and where the system is to be deployed; that is, its execution
architecture.
Object Diagrams
Object diagrams 723 depict object instances of Classes and their relationships at a point in time.
Package Diagrams
Package diagrams 720 depict the organization of model elements into packages and the dependencies
amongst them.
Profile Diagrams
Profile Diagrams 732 are those created in a <<profile>> package, to extend UML elements, connectors and
components.
The nesting connector between ConnSeq and Controller reflects what the package contents reveal. Package
contents can be listed by clicking on the diagram background to display the diagram's Properties 423 dialog,
selecting the Elements tab and selecting the Package Contents checkbox.
The «import» connector indicates that the elements within the target Integer package, which in this example is
the single Class Integer, are imported into the package Controller. The Controller's namespace gains access
to the Integer Class; the Integer namespace is not affected.
The «merge» connector indicates that the package Controller's elements are imported into GenApply,
including Controller's nested and imported contents. If an element already exists within GenApply, such as
Loader and Time, these elements' definitions are expanded by those included in the package Controller. All
elements added or updated by the merge are noted by a generalization relationship back to that package.
Notes:
· Private elements within a package cannot be imported or merged.
· If you click on an element listed in a package, and then double-click, you can display and edit the element
properties 481 .
Tip:
Click on the following elements and connectors for more information.
Example Diagram
There are two forms of the Aggregation 854 relationship in the following diagram. The pale form indicates that
the Class Account uses AddressBook, but does not necessarily contain AddressBook. The dark Composite
Aggregation form indicates ownership or containment by the target Classes (at the diamond end) of the source
Classes.
Tip:
Click on the following elements and connectors for more information.
Note:
Communication diagrams were known as Collaboration diagrams in UML 1.4.
Example Diagram
The following example first shows a simple Class diagram, with two Class 811 elements connected.
The Classes above are instantiated below as Objects in an Object diagram. There are two instances of
Computer in this model, which can prove useful for considering the relationships and interactions Classes play
in practice, as Objects.
Tip:
Click on the following elements and connectors for more information.
Example Diagram
The following diagram shows a Collaboration used in Composite Structure diagrams to model common
patterns. This particular example shows a relationship for performing an installation.
The following diagram uses the Install Collaboration in a Collaboration Occurrence 815 , and applies it to the
UtilLoad Class via a «represents» relationship. This indicates that the classifier UtilLoad uses the collaboration
pattern within its implementation.
For further examples of Composite Structure diagrams, see the Toolbox elements listed below.
Tip:
Click on the following elements and connectors for more information.
5.1.1.2.4.1 Properties
A property is a nested structure within a classifier, which is usually a Class 811 or an Interface 821 on a
Composite Structure diagram 724 . The contained structure reflects instances and relationships reflected within
the containing classifier. Properties can have multiplicity.
To demonstrate properties, consider the following diagram, which demonstrates some properties of the Library
Class.
There are two Parts 825 , libBooks and records, which are instances corresponding to the Classes Books and
Computer respectively. After dragging Parts from the Toolbox out to the workspace, right-click on a Part and
select the Advanced | Set Property Type context menu option to connect to a classifier.
Note:
If Parts disappear when dragged onto the Class, adjust the Z-order of the Class (right-click on it and select
the Z-Order context menu option).
The relationship between the two Parts is indicated by the connector, reflecting that communication between
the Parts is via the barcode. This contained structure and its Parts are properties owned by the Library Class.
To indicate a property that is not owned by composition to the containing classifier, use a box symbol with a
dashed outline, indicating association. To do this, right-click on the Part and select the Advanced | Custom
Properties context menu option. Set the IsReference option to true.
Properties can also be reflected using a normal composite structure (without containing it in a Class), with the
appropriate connectors, parts and relationships indicated through connections to the Class. This alternative
representation is shown in the following diagram. However, this depiction fails to express the ownership
immediately reflected by containing properties within a classifier.
Deployment diagrams are ideal for using alternative images 447 for the objects that the elements represent.
Such images can be substituted for the elements in the above diagram, as shown below:
Tip:
Click on the following elements and connectors for more information.
Example Diagram
The following diagram demonstrates some components and their inter-relationships. Assembly 855 connectors
connect the provided interfaces supplied by Product and Customer to the required interfaces specified by
Order. A Dependency 861 relationship maps a customer's associated account details to the required interface
Payment, indicated by Order.
Tip:
Click on the following elements and connectors for more information.
Robustness diagrams, used extensively in ICONIX 1084 , can be created as Analysis diagrams.
Tip:
Click on the following elements and connectors for more information. The Information element is a simple
flow-chart representation of data or input/output.
Tip:
Click on the following elements and connectors for more information.
Requirements can have relationships with other elements such as other Requirements and Use Cases. To
view the traceability of a requirement, use the Traceability 1253 window, which you access using the View |
Traceability menu option (or press [Ctrl]+[Shift]+[4]).
Tip:
Click on the following elements and connectors for more information.
Tip:
Click on the following elements and connectors for more information.
Note:
Click on the following elements and connectors for more information.
The following diagram shows the appearance of the elements when dragged and dropped onto a Business
Modeling diagram:
The following diagram shows the appearance of the elements when dragged and dropped onto a Business
Interaction diagram:
UML elements can be divided into two categories: those used on Behavioral Diagrams 742 and those used on
Structural Diagrams 809 . This basic set can be extended 835 almost without limit using Stereotypes 895 and
UML Profiles 906 .
Note:
Actor, Collaboration, Note, Object and Package elements are used in both Behavioral diagrams and
Structural diagrams.
5.1.2.1.1 Action
An Action element describes a basic process or transformation that occurs within a system. It is the basic
functional unit within an Activity diagram 674 . Actions can be thought of as children of Activities 753 . Both
represent processes, but Activities can contain multiple steps or decomposable processes, each of which can
be embodied in an Action. An Action cannot be further broken down or decomposed.
An Action can be further defined with pre-condition and post-condition 752 notes, and certain properties can
be graphically depicted 745 on the Action (Enterprise Architect prompts you to define the type of Action you are
creating when you first drag the Action icon from the Toolbox). The data values passed out of and into an
Action can be represented by Action Pins 749 . For a named Action (that is, other than a basic Action) you can
also assign 751 Action Pins to represent specific properties.
For a basic (Atomic) Action, you can define the effect of the Action using the Effect tab of the element
Properties dialog, and select to display the effect on the diagram.
An Action can also be depicted as an Expansion Node 749 to indicate that the Action comprises an Expansion
Region 769 .
4. When the operation has been added to the Activity diagram the Action displays the name of the Class
that features the operation.
If you right-click on the Action in the diagram, you can locate the behavior classifier (CallBehavior Activity) or
call operation (CallOperation Activity) in the Project Browser using the Find | Locate Classifier in Project
Browser and Find | Locate Operation in Project Browser context menu options.
If it becomes necessary to change the operation that this Action refers to, follow the steps below:
1. Right-click on the Action. The context menu displays.
2. Select the Advanced | Set Operation menu option. The Set Operation dialog 748 displays.
3. If necessary, in the In Namespace field, select the model that contains the required operation.
4. Double-click on the required operation. The Action updates to show the new classifier and operation.
Toolbox Icon
Action Notation Kind: Action Notation Action Notation Kind: Action Action Notation
CallOperation Kind: AcceptEvent Notation Kind: Kind:
CallBehavior AcceptEventTim SendSignal
er
When you drag the Action icon from the Activity page of the Toolbox onto your diagram, a selection list
displays showing the commonest types of Action to create. (If this list does not display, press [Ctrl] as you
drag the icon.)
When you click on one of the specific types, that type of Action element displays on diagram. If you click on
the Other option, the New Action dialog displays:
You can again select to create a normal (Atomic) Action element, a CallOperation or a CallBehavior, or you
can select the Other radio button and click on the drop-down arrow in the blank field to select the Action type
from an extensive list.
If you later decide that the Action type is not appropriate, you can change it by right-clicking on the Action and
selecting the Advanced | Custom Properties context menu option, which displays the Custom Properties
dialog. Set the Action type by selecting a value from the Kind drop-down list. For a Value Specification Action,
you also set the value on this dialog.
AcceptEvent Actions
For an Accept Event Action element, the Properties dialog contains a Triggers tab on which you define one or
more triggers to denote the type of events accepted by the Action, as defined in the following table:
Option Use to
Option Use to
Note:
Code generation for State Machines currently supports Change and Time trigger
events only, and expects a specification value.
Note:
To assign more than one Pin, press [Ctrl] whilst you select each Pin.
2. To locate the structural feature, click on the Add button. The Select Property dialog displays (a variant
of the Select <Item> 515 dialog).
3. Browse or search for the appropriate structural feature, and double-click on it. The feature name and
location displays in the structuralFeature field of the Set Structural Feature dialog.
4. Click on the OK button to save the setting.
The Set Feature dialog is the Set Operation dialog used to change the operation represented by an Action 744
on an Activity diagram.
As the Set Operation or Set Attribute dialog, it is also used to set the Value operation or attribute for Tagged
Values of type RefGUID 1167 or for the target of a hyperlink 840 in a diagram.
To use this dialog, follow the steps below:
1. The Set Operation (or Set Attribute) dialog displays, with the model hierarchy opened at the point at
which you selected the original operation or attribute.
2. If required, in the In Namespace field, click on the drop-down arrow and select another model that
contains the required operation or attribute. The package hierarchy for that model displays.
3. Browse through the hierarchy, or use the Search 515 tab to locate the required operation or attribute,
then double-click on the item to select it.
Representing an Action 743 as an Expansion Node is a shorthand notation to indicate that the Action
comprises an Expansion Region 769 .
To specify an Action as an Expansion Node, right-click on the Action to display the context menu and select
the Embedded Elements | Add Expansion Node menu option. After designating an Action as an Expansion
Node, you can modify or delete it using the Embedded Elements | Embedded Elements menu option.
An Action Pin is used to define the data values passed out of and into an Action 743 . An input pin provides
values to the Action, whereas an output pin contains the results from that Action.
Action Pins are used below to connect two Actions:
A Pin serves as an argument for Call Behavior Actions and Call Operation Actions. When an Action is
associated with a valid behavior in the model, the associated behavior's parameters are listed in the
Parameter field drop-down list to facilitate a one-to-one mapping between the argument and the parameter.
The fields in the Argument panel are enabled only for Pins belonging to Call Actions, and only when the Action
is associated with a valid behavior with valid parameters.
You can also change certain properties of an Action Pin on the Custom Properties dialog: right-click on the Pin
and select the Advanced | Custom Properties context menu option. The following properties can be set:
The format of this dialog depends on the type of Action: for a SendObject Action the dialog has two
fields (request and target); for the above TestIdentity Action, three; and for a CallBehavior Action, one (
result). The fields are populated in exactly the same way.
2. The mandatory number and type of Pins are automatically selected (if they exist) or created. To change
or add a Pin in a field, click on the corresponding Add button. The Select Pins dialog displays (a variant
of the Select <Item> 515 dialog), showing the selected Action and listing all the input Pins currently
owned by the Action.
3. Double-click on one of the Pins (or, depending on the multiplicity of the Pin, [Ctrl]+click on several
Pins). Alternatively, if no suitable Pin exists, click on the Add New button and then click on the
newly-created Pin. The selected Pin is identified in the field on the Assign Action Pins to <ActionName>
dialog.
4. Click on the OK button.
To check the exact location of an assigned Action Pin, you can right-click on the Pin name in the dialog and
select the Find in Project Browser context menu option.
Create a Constraint
To attach a constraint to an Action follow the steps below:
1. Right-click on the Action. The context menu displays:
2. Select the Add | Constraint menu option. A Note is created on the diagram, connected to the Action.
3. Right-click on the Note. The context menu displays.
4. Select the View Properties menu option. The Constraint dialog displays.
5. In the Constraint Type field, click on the drop-down arrow and select the required constraint type.
6. In the Constraint field, type the text for the constraint.
7. Click on the OK button to save the constraint.
5.1.2.1.2 Activity
An Activity organizes and specifies the participation of subordinate behaviors, such as sub-Activities or
Actions 743 , to reflect the control and data flow of a process. Activities are used in Activity diagrams 674 for
various modeling purposes, from procedural-type application development for system design, to business
process modeling of organizational structures or work flow.
The following simple diagram of an Activity contains Action elements and includes input parameters and
output parameters 755 .
You can define an Activity as a composite element 837 , either during creation or during later edits. When
creating a composite Activity element, it is simpler to apply the mechanism for creating Structured Activity
elements, which reduces the number of steps to work through. See the Structured Activity 798 topic. If
converting an existing Activity element, right-click on the element and select the Advanced | Make
Composite context menu option.
Certain properties can be graphically depicted 754 on an Activity. The Actions in an Activity can be further
organized by Activity Partitions 756 .
Toolbox Icon
also from outside the system, such as a customer call. Activities can also be used for information system
modeling to specify system level processes. Activities may contain actions of various kinds:
To define these properties, right-click on the Activity and select the Advanced | Custom Properties context
menu option. The following dialog displays:
To define an Activity Parameter Node for an Activity, follow the steps below:
1. Right-click on the element and select the Embedded Elements | Add Activity Parameter context
menu option.
2. The Properties dialog displays, which prompts for the Name and other properties of the embedded
element.
3. After closing this dialog, you can further define the new Activity Parameter; right-click on it and select
the Advanced | Custom Properties context menu option. The following dialog displays:
Similar to characterizing Action Pins 749 , Activity Parameter Nodes also have the isException and isStream
options. IsException indicates that a parameter can emit a value at the exclusion of other outputs, usually
because of some error. IsStream indicates whether or not a parameter can accept or post values during the
execution of the Activity.
The following example uses the above settings:
3. In the Name field, type the name of a partition. Click on the Save button.
4. Repeat step 3 for each partition to be created.
5.1.2.1.3 Actor
An Actor is a user of the system; user can mean a human user, a machine, or even another system or
subsystem in the model. Anything that interacts with the system from the outside or system boundary is
termed an Actor. Actors are typically associated with Use Cases 806 .
Actors can use the system through a graphical user interface, through a batch interface or through some other
media. An Actor's interaction with a Use Case is documented in a Use Case scenario, which details the
functions a system must provide to satisfy the user requirements.
Actors also represent the role of a user in Sequence Diagrams 706 . Enterprise Architect supports a
stereotyped Actor element for business modeling 739 . The business modeling elements also represent Actors
as stereotyped Objects.
Toolbox Icon
A Central Buffer Node is an object node for managing flows from multiple sources and destinations,
represented in an Activity diagram 674 . It acts as a buffer for multiple in-flows and out-flows from other object
nodes, but does not connect directly to Actions.
Toolbox Icon
5.1.2.1.5 Choice
The Choice pseudo-state 682 is used to compose complex transitional paths in, for example, a State Machine
diagram 678 , where the outgoing transition path is decided by dynamic, run-time conditions. The run-time
conditions are determined by the actions performed by the State Machine 789 on the path leading to the
choice.
The following example depicts the Choice element. Upon reaching the Filter pseudo-state, a transition fires to
the appropriate state based on the run-time value passed to the Filter. Very similar in form to a Junction 782
pseudo-state, the Choice pseudo-state's distinction is in deciding transition paths at run-time.
Toolbox Icon
A Combined Fragment reflects a piece or pieces of interaction (called interaction operands) controlled by an
interaction operator 762 , whose corresponding boolean conditions are known as interaction constraints. It
displays as a transparent window, divided by horizontal dashed lines for each operand.
The following diagram illustrates the use of Combined Fragments, with a Sequence diagram 706 modeling a
simplified purchasing process. A loop fragment is created to iterate through an unknown number of items for
purchase, after which the cashier requests payment. At this point, two payment options are considered and an
alternative fragment is created 761 , divided to show the two operands: cash and credit card. After the fragment
completes its trace, the cashier gives a receipt to the customer, under the fulfilled condition that payment
requirements were met.
The order of interaction fragment conditions can be changed directly on the diagram. Select an interaction
fragment with more than one condition defined. Up and down arrows appear on the right hand side of the each
condition. Just click on the arrow to change the order.
Note:
In order to select an interaction fragment, you must click near the inside edge or drag a selection rectangle
around the fragment. This prevents accidental selection when moving connectors inside the interaction
fragment.
Tip:
Press and hold [Alt] to move a combined fragment independently of its contents.
Toolbox Icon
2. In the Type field, click on the drop-down arrow and select the interaction operator. See the Interaction
Operators 762 topic for an explanation of the various types of Combined Fragments.
3. In the Condition field, specify a condition or interaction constraint for each operand.
4. A rectangular frame displays, partitioned by dashed lines into segments for each operand.
5. Adjust the frame to encompass the required event occurrences for each operand.
Interaction Use to
Operator
loop Indicate that the operand repeats a number of times, as specified by interaction
constraints.
neg Assert that a fragment is invalid, and implies that all other interaction is valid.
assert Specify the only valid fragment to occur. Often enclosed within a consider or ignore
operand.
strict Indicate that the behaviors of the operands must be processed in strict sequence.
seq Indicate that the Combined Fragment is weakly sequenced. This means that the
ordering within operands is maintained, but the ordering between operands is
undefined, so long as an event occurrence of the first operand precedes that of the
second operand, if the event occurrences are on the same lifeline.
ignore Indicate which messages should be ignored during execution, or can appear
anywhere in the execution trace.
consider Specify which messages should be considered in the trace. This is often used to
specify the resulting event occurrences with the use of an assert operator.
Note:
The ref fragment is not created using the method described in the Create a
Combined Fragment 761 topic. To create a ref fragment, simply drag an existing
diagram from the Project Browser onto the current diagram.
Alternatives
The interactionOperator alt designates that the CombinedFragment represents a choice of behavior. At most
one of the operands will be chosen. The chosen operand must have an explicit or implicit guard expression
that evaluates to true at this point in the interaction. An implicit true guard is implied if the operand has no
guard.
The set of traces that defines a choice is the union of the (guarded) traces of the operands.
An operand guarded by else designates a guard that is the negation of the disjunction of all other guards in
the enclosing CombinedFragment.
If none of the operands has a guard that evaluates to true, none of the operands are executed and the
remainder of the enclosing InteractionFragment is executed.
Option
The interactionOperator opt designates that the CombinedFragment represents a choice of behavior where
either the (sole) operand happens or nothing happens. An option is semantically equivalent to an alternative
CombinedFragment where there is one operand with non-empty content and the second operand is empty.
Break
The interactionOperator break designates that the CombinedFragment represents a breaking scenario in the
sense that the operand is a scenario that is performed instead of the remainder of the enclosing
InteractionFragment. A break operator with a guard is chosen when the guard is true and the rest of the
enclosing Interaction Fragment is ignored. When the guard of the break operand is false, the break operand
is ignored and the rest of the enclosing InteractionFragment is chosen. The choice between a break operand
without a guard and the rest of the enclosing InteractionFragment is done non-deterministically.
A CombinedFragment with interactionOperator break should cover all Lifelines of the enclosing
InteractionFragment.
Parallel
The interactionOperator par designates that the CombinedFragment represents a parallel merge between the
behaviors of the operands. The OccurrenceSpecifications of the different operands can be interleaved in any
way as long as the ordering imposed by each operand as such is preserved.
A parallel merge defines a set of traces that describes all the ways that OccurrenceSpecifications of the
operands may be interleaved without obstructing the order of the OccurrenceSpecifications within the
operand.
Weak Sequencing
The interactionOperator seq designates that the CombinedFragment represents a weak sequencing between
the behaviors of the operands.
Weak sequencing is defined by the set of traces with these properties:
1. The ordering of OccurrenceSpecifications within each of the operands is maintained in the result.
2. OccurrenceSpecifications on different lifelines from different operands may come in any order.
3. OccurrenceSpecifications on the same lifeline from different operands are ordered such that an
OccurrenceSpecification of the first operand comes before that of the second operand.
Thus weak sequencing reduces to a parallel merge when the operands are on disjunct sets of participants.
Weak sequencing reduces to strict sequencing when the operands work on only one participant.
Strict Sequencing
The interactionOperator strict designates that the CombinedFragment represents a strict sequencing between
the behaviors of the operands. The semantics of strict sequencing defines a strict ordering of the operands on
the first level within the CombinedIFragment with interactionOperator strict. Therefore
OccurrenceSpecifications within contained CombinedFragment will not directly be compared with other
OccurrenceSpecifications of the enclosing CombinedFragment.
Negative
The interactionOperator neg designates that the CombinedFragment represents traces that are defined to be
invalid.
The set of traces that defined a CombinedFragment with interactionOperator negative is equal to the set of
traces given by its (sole) operand, only that this set is a set of invalid rather than valid traces. All
InteractionFragments that are different from Negative are considered positive meaning that they describe
traces that are valid and should be possible.
Critical Region
The interactionOperator critical designates that the CombinedFragment represents a critical region. A critical
region means that the traces of the region cannot be interleaved by other OccurrenceSpecifications (on those
Lifelines covered by the region). This means that the region is treated atomically by the enclosing fragment
when determining the set of valid traces. Even though enclosing CombinedFragments may imply that some
OccurrenceSpecifications may interleave into the region, such as with par-operator, this is prevented by
defining a region.
Thus the set of traces of enclosing constructs are restricted by critical regions.
Ignore / Consider
(p. 473) The interactionOperator ignore designates that there are some message types that are not shown
within this combined fragment. These message types can be considered insignificant and are implicitly
ignored if they appear in a corresponding execution. Alternatively one can understand ignore to mean that the
messages that are ignored can appear anywhere in the traces.
Conversely the interactionOperator consider designates which messages should be considered within this
CombinedFragment. This is equivalent to defining every other message to be ignored.
Assertion
The interactionOperator assert designates that the CombinedFragment represents an assertion. The
sequences of the operand of the assertion are the only valid continuations. All other continuations result in an
invalid trace. Assertions are often combined with Ignore or Consider.
Loop
The interactionOperator loop designates that the CombinedFragment represents a loop. The loop operand
will be repeated a number of times.
The Guard may include a lower and an upper number of iterations of the loop as well as a Boolean
expression. The semantics is such that a loop will iterate minimum the 'minint' number of times (given by the
iteration expression in the guard) and at most the 'maxint' number of times. After the minimum number of
iterations have executed, and the boolean expression is false the loop will terminate. The loop construct
represent a recursive application of the seq operator where the loop operand is sequenced after the result of
earlier iterations.
5.1.2.1.7 Datastore
A Datastore is an element used to define permanently stored data. A token of data that enters into a Datastore
is stored permanently, updating tokens for data that already exists. A token of data that comes out of a
Datastore is a copy of the original data.
Use Object Flow 886 connectors to connect elements (such as Activities 753 ) to Datastores, as values and
information are being passed between nodes. Selection and transformation behavior, together composing a
sort of query, can be specified as to the nature of data access. For instance, selection behavior determines
which objects are affected by the connection to the Datastore. Transformation behavior might then further
specify the value of an attribute pertaining to a selected object.
To define the behavior of access to a Datastore, attach a note to the Object Flow connector. To do this, right-
click on the Object Flow and select the Attach Note or Constraint context menu option. A dialog indicates
other flows in the Activity diagram 674 , to which you can attach the note (if the behavior applies to multiple
flows). To comply with UML 2, preface behavior with the notation «selection» or «transformation».
Toolbox Icon
5.1.2.1.8 Decision
A Decision is an element of an Activity diagram 674 or Interaction Overview diagram 717 that indicates a point
of conditional progression: if a condition is true, then processing continues one way; if not, then another.
This can also be used as a Merge node 784 in that multiple alternative flows can be merged (but not
synchronized) to form one flow. The following examples show both of these modes of using the decision
element.
Used as a decision:
Note:
Moving a diagram generally does not affect the location of elements in packages. If you move a diagram out
of one package into another, all the elements in the diagram remain in the original package. However,
Decision elements are used only within one diagram, have no meaning outside that diagram, and are never
re-used in any other diagram. Therefore, if you move a diagram containing these elements, they are moved
to the new parent package with the diagram.
Toolbox Icon
A decision node is a control node that chooses between outgoing flows. A decision node has one incoming
edge and multiple outgoing activity edges.
The OMG UML specification (UML Superstructure Specification, v2.1.1, p. 387 (Merge symbol)) also states:
A merge node is a control node that brings together multiple alternate flows. It is not used to synchronize
concurrent flows but to accept one among several alternate flows... A merge node has multiple incoming
edges and a single outgoing edge.
A Diagram Frame element is a rendition of a diagram dropped from the Project Browser into another diagram.
It is a type of Combined Fragment 759 with the Interaction Operator 762 ref. However, it can be created on any
type of diagram, and is not created in the same way as other Combined Fragments.
When you drop the diagram from the Project Browser onto the open diagram, the following prompt displays:
If you click on the Diagram Frame radio button, a Diagram Frame is inserted into the diagram, containing an
image of the dropped diagram.
If you select the Diagram Reference option, an empty frame is inserted with the name of the dropped diagram
in the frame label. If you select the Hyperlink radio button, a diagram icon is inserted with no frame, and with
the parent package and diagram name next to it.
In all three cases, the object acts as a hyperlink to the real referenced diagram. You can also define properties
for the objects, as for other elements, by right-clicking on the object and selecting the element Properties
context menu option.
Notes:
· You can change the size of all three objects, but you cannot reduce a Diagram Frame to less than the size
of the enclosed diagram.
· You cannot change the diagram within a Diagram Frame. To edit the diagram, double-click within the
frame and edit the original diagram.
· The Diagram Frame element looks identical to but is not the same as a diagram frame border, which you
can set automatically on new images of diagrams using the Tools | Options | Diagram option, and
selecting the appropriate checkboxes in the Diagram Frames panel. These options set frames on print-outs
of diagrams, images of diagrams copied to file, and images of diagrams copied to the clipboard. If you
paste the image from the clipboard into another diagram, the image initially looks the same as the Diagram
Frame element but it is actually a discreet unit that you manipulate using the Image Manager 447 .
A Diagram Gate is a simple graphical way to indicate the point at which messages can be transmitted into and
out of interaction fragments. A fragment might be required to receive or deliver a message; internally, an
ordered message reflects this requirement, with a gate indicated on the boundary of the fragment's frame. Any
external messages 'synching' with this internal message must correspond appropriately. Gates can appear on
Interaction diagrams (Sequence 706 , Timing 690 , Communication 715 or Interaction Overview 717 ), interaction
occurrences 780 and combined fragments 759 (to specify the expression).
Toolbox Icon
OccurrenceSpecification that is not in the same scope as the Gate. Gates play different roles: we have formal
gates on Interactions, actual gates on InteractionUses, expression gates on CombinedFragments.
5.1.2.1.11 Endpoint
An Endpoint is used in Interaction diagrams (Sequence 706 , Timing 690 , Communication 715 or Interaction
Overview 717 ) to reflect a lost or found message in sequence. To model this, drag an Endpoint element onto
the workspace.
With Sequence diagrams, drag a message from the appropriate lifeline to the Endpoint. With Timing
diagrams, the message connecting the lifeline to the Endpoint requires some timing specifications to draw the
connection.
The following example depicts a lost message in a Sequence diagram.
Toolbox Icon
Entry Point pseudo-states 682 are used to define the beginning of a State Machine 678 . An Entry Point exists
for each region, directing the initial concurrent state configuration.
Toolbox Icon
5.1.2.1.13 Exception
The Exception Handler element defines the group of operations to carry out when an exception occurs. In an
Activity diagram 674 , the protected element can contain a set of operations and is connected to the exception
handler via an Interrupt Flow 867 connector. Any defined error contained within an element's parts can trigger
the flow to move to an exception.
Toolbox Icon
You create 771 an Expansion Region as one variant of a Region 788 (the other is an Interruptible Activity
Region 781 ).
On an Activity diagram 674 , an Expansion Region surrounds a process to be imposed multiple times on the
incoming data, once for every element in the input collection. If there are multiple inputs, the collection sizes
must match, and the elements within each collection must be of the same type. Similarly, any outputs must be
in the form of a collection matching the size of the inputs.
The concurrency of the Expansion Region's multiple executions can be specified as type parallel, iterative, or
stream. Parallel reflects that the elements in the incoming collections can be processed at the same time or
overlapping, whereas an iterative concurrency type specifies that execution must occur sequentially. A stream-
type Expansion Region indicates that the input and output come in and exit as streams, and that the
Expansion Region's process must have some method to support streams.
To modify the mode of an Expansion Region, right-click on it and select the Advanced | Custom Properties
context menu option.
Toolbox Icon
2. In the Kind field, click on the drop-down arrow and select the concurrency attribute.
Exit Points are used in Submachine states 796 and State Machines 789 to denote the point where the machine
is exited and the transition sourcing this exit point, for Submachines, is triggered. Exit points are a type of
pseudo-state 682 used in the State Machine 678 diagram.
Toolbox Icon
5.1.2.1.16 Final
There are two nodes used to define a Final state in an Activity 753 , both defined in UML 2.3 as of type Final
Node. The Activity Final element, shown above, indicates the completion of an Activity; upon reaching the
Final, all execution in the Activity diagram 674 is aborted. The other type of final node, Flow Final 772 , depicts
an exit from the system that has no effect on other executing flows in the Activity.
The following example illustrates the development of an application. The process comes to a Flow Final node
when there are no more components to be built; note that the Fork 775 element indicates a concurrent process
with the building of new components and installation of completed components. The Flow Final terminates
only the sub-process building components. Similarly, only those tokens entering the decision branch for the
installation of further components terminate with the connecting Flow Final (that is, stop installing this
component, but keep on installing other components). It is only after the Deliver Application activity is
completed, after the control flow reaches the Final node, that all flows stop.
The node that initiates a flow is the Initial 778 node.
Note:
Moving a diagram generally does not affect the location of elements in packages. If you move a diagram out
of one package into another, all the elements in the diagram remain in the original package. However, Final
elements are used only within one diagram, have no meaning outside that diagram, and are never re-used in
any other diagram. Therefore, if you move a diagram containing these elements, they are moved to the new
parent package with the diagram.
Toolbox Icon
There are two nodes used to define a final state in an Activity, both defined in UML 2.3 as of type Final Node.
The Flow Final element depicts an exit from the system, as opposed to the Activity Final 772 , which represents
the completion of the Activity. Only the flow entering the Flow Final node exits the Activity; other flows continue
undisturbed.
The following example Activity Diagram 674 illustrates the development of an application. The process comes
to a Flow Final node when there are no more components to be built; note that the Fork 775 element indicates
a concurrent process with the building of new components and installation of completed components. The
Flow Final terminates only the sub-process building components. Similarly, only those tokens entering the
decision branch for the installation of further components terminate with the connecting Flow Final (that is,
stop installing this component, but keep on installing other components). It is only after the Deliver Application
activity is completed, after the control flow reaches the Final node, that all flows stop.
Note:
Moving a diagram generally does not affect the location of elements in packages. If you move a diagram out
of one package into another, all the elements in the diagram remain in the original package. However, Flow
Final elements are used only within one diagram, have no meaning outside that diagram, and are never re-
used in any other diagram. Therefore, if you move a diagram containing these elements, they are moved to
the new parent package with the diagram.
Toolbox Icon
5.1.2.1.18 Fork/Join
777 , entry points 769 and exit points 771 . Forks are used to split an incoming transition into concurrent multiple
transitions leading to different target states. Joins are used to merge concurrent multiple transitions into a
single transition leading to a single target. They are semantic inverses. To learn more about these individual
elements see their specific topics.
Some examples of Fork/Join nodes include:
Fork or split the flow into a number of concurrent flows:
Toolbox Icon
A join node is a control node that synchronizes multiple flows... A join node has multiple incoming edges and
one outgoing edge.
5.1.2.1.18.1 Fork
5.1.2.1.18.2 Join
5.1.2.1.19 History
There are two types of History pseudo-state 682 defined in UML: shallow and deep History. A shallow History
sub-state is used to represent the most recently active sub-state of a Composite State 790 ; this pseudo-state
does not recurse into this sub-state's active configuration, should one exist. A single connector can be used to
depict the default shallow History state, in case the Composite State has never been entered.
A deep History sub-state, in contrast, reflects the most recent active configuration of the Composite State. This
includes active sub-states of all regions, and recurses into those sub-states' active sub-states, should they
exist. At most one deep History and one shallow History can dwell within a composite state. You can convert a
shallow History pseudostate to a deep History pseudostate using the Advanced 550 element context menu.
Toolbox Icon
5.1.2.1.20 Initial
The Initial element is used by Activity 674 and State Machine 678 diagrams. In Activity diagrams, it defines the
start of a flow when an Activity 753 is invoked. With State Machines, the Initial element is a pseudo-state 682
used to denote the default state of a Composite State 790 ; there can be one Initial vertex in each Region 788 of
the Composite State.
This simple example shows the start of a flow to receive an order.
Note:
Moving a diagram generally does not affect the location of elements in packages. If you move a diagram out
of one package into another, all the elements in the diagram remain in the original package. However, Initial
elements are used only within one diagram, have no meaning outside that diagram, and are never re-used in
any other diagram. Therefore, if you move a diagram containing these elements, they are moved to the new
parent package with the diagram.
Toolbox Icon
An initial node is a control node at which flow starts when the activity is invoked.
5.1.2.1.21 Interaction
An Interaction element is used to describe a system, representing its interactions at varying levels of detail, for
review not only by design professionals but also by end users and stakeholders. An Interaction element can
contain the following types of diagram:
· Sequence 706
· Interaction Overview 717
· Communication 715
· Timing 690 .
An Interaction element in Enterprise Architect is treated as a behavior of the classifier it is encapsulated within.
It can have parameters and return types, which are modeled using the Behavior tab of the Interaction
element's Properties dialog. The element is interpreted as a method of the containing Class in the generated
code (see the Generate Code From Behavioral Model 1314 topic).
An Interaction element can also be set as the classifier for an Interaction Occurrence 780 in a Sequence
diagram, or for a Call Behavior Action 745 in an Activity diagram. Establishing such an association (between a
behavior 582 and a behavior call 582 ) facilitates adding arguments 582 that can be individually mapped to the
associated behavior's parameters.
Note:
The behavioral code generation engine expects the Sequence diagram and all its associated messages and
interaction fragments to be encapsulated within an Interaction element (such as setupUSB in the example
below).
(The IO Class shown above is available in the EAExample model, under Systems Engineering Model |
Implementation Model | Software.)
Note:
The behavioral code generation engine expects the Sequence diagram and all its associated messages and
interaction fragments to be encapsulated within an Interaction element (such as doReadUSB in the example
below).
You create 782 an Interruptible Activity Region as one variant of a Region 788 (the other is an Expansion
Region 769 ).
In an Activity diagram 674 , an Interruptible Activity Region surrounds a group of Activity 753 elements, all
affected by certain interrupts in such a way that all tokens passing within the region are terminated should the
interruption(s) be raised. Any processing occurring within the bounds of an Interruptible Activity Region is
terminated when a flow is instigated across an interrupt flow to an external element.
The example below illustrates that an order cancellation kills any processing of the order at the receipt, filling
or shipping stage.
Toolbox Icon
The Select type panel defaults to InterruptibleActivityRegion 781 and the Kind field is disabled. Click on the
OK button.
5.1.2.1.24 Junction
Junction pseudo-states 682 are used to design complex transitional paths in State Machine 678 diagrams. A
Junction can be used to combine or merge multiple paths into a shared transition path. Alternatively, a
Junction can split an incoming path into multiple paths, similar to a Fork 775 pseudostate. Unlike Forks or
Joins 776 , Junctions can apply guards to each incoming or outgoing transition, such that if the guard
expression is false, the transition is disabled.
The following example illustrates how guards can be applied to transitions coming into or out of a Junction
pseudo-state.
Toolbox Icon
5.1.2.1.25 Lifeline
A Lifeline is an individual participant in an interaction (that is, Lifelines cannot have multiplicity). A Lifeline
represents a distinct connectable element. To specify that representation within Enterprise Architect, right-click
on the Lifeline and select the Advanced | Instance Classifier context menu option. The Select <Item> 515
dialog displays which you use to locate the required project classifiers.
Lifelines are available in Sequence 706 diagrams. There are different Lifeline elements for Timing diagrams 690
(State Lifeline 794 and Value Lifeline 808 ) 808 ; however, although the representation differs between the two
diagram types, the meaning of the Lifeline is the same.
Toolbox Icon
5.1.2.1.26 Merge
A Merge Node brings together a number of alternative flow paths in Activity 674 , Analysis 733 and Interaction
Overview 717 diagrams. For example, if a Decision 765 is used after a Fork 775 , the two flows coming out of the
Decision must be merged into one before going to a Join 776 ; otherwise, the Join waits for both flows, only one
of which arrives.
A Merge Node has multiple incoming edges and a single outgoing edge. The edges coming into and out of a
Merge Node must be either all object flows 886 or all control flows 860 .
Toolbox Icon
A Message Endpoint element defines the termination of a State 794 or Value 808 Lifeline in a Timing diagram
690 .
Toolbox Icon
A Message Label is an alternative way of denoting Messages 882 between Lifelines, which is useful for
'uncluttering' Timing diagrams 690 strewn with messages. To indicate a Message between Lifelines, draw a
connector from the source Lifeline into a Message Label. Next, draw a connector from another Message Label
to the target Lifeline. Note that the label names must match to reflect that the message occurs between the
two Message Labels.
The following diagram illustrates how Message Labels are used to construct a message between Lifelines.
Toolbox Icon
5.1.2.1.29 Note
A Note element is a textual annotation that can be attached to a set of elements of any other type. The
attachment is created separately, using a Notelink 886 connector. Both Note and Notelink are available in any
Enterprise Architect diagram, through the Common 405 pages of the Toolbox.
Toolbox Icon
5.1.2.1.30 Partition
The Partition orientation defaults to horizontal. To turn it into a vertical Partition, right-click on it and select the
Advanced | Vertical Partition context menu option.
You can neatly align and join the Activity Partitions on a diagram using the element context menu Dockable
555 option. For Partitions, the option defaults to selected.
Toolbox Icon
5.1.2.1.31 Receive
A Receive element is used to define the acceptance or receipt of a request, in an Activity diagram 674 .
Movement from a Receive element occurs only once receipt is fulfilled according to its specification. The
Receive element comes in two forms:
· Accept Event Action element (pennant shape)
· Accept Time Event Action element (hourglass shape)
The following example reflects a payment process on an order. Upon receiving the payment (from Request
Payments, a Send 789 element), the payment is confirmed and the flow continues to ship the order.
Toolbox Icon
5.1.2.1.32 Region
When you add a Region element to an Activity diagram 674 , the following prompt appears. You use this to
specify the Region type.
Toolbox Icon
5.1.2.1.33 Send
The Send element is used to depict the action of sending a signal, in an Activity diagram 674 . It is the opposite
of a Receive 787 element.
The following example shows an order being processed, where a signal is sent to fill the processed order and,
upon creation of the resulting invoice, a notification is sent to the customer.
Toolbox Icon
5.1.2.1.34 State
A State represents a situation where some invariant condition holds; this condition can be static (waiting for an
event) or dynamic (performing a set of activities). State modeling is usually related to Classes 811 , and
describes the enableable states a Class or element can be in and the transitions that enable the element to
move there. There are two types of State: Simple States and Composite States 790 , both created from the
State element from the Toolbox.
Furthermore, there are pseudo-states 682 , resembling some aspect of a State but with a pre-defined
implication. Pseudo-states model complex transitional paths, and classify common State Machine 678
behavior.
You can define entry, internal and exit actions for a State using operations 570 .
If a State element has features such as attributes or operations, the depiction of the element in a diagram has
a line under the element name. This line persists if the features are hidden. The line also displays if the Show
State Compartment checkbox is selected on the Objects page of the Options dialog (Tools | Options |
Objects).
Toolbox Icon
5.1.2.1.35 State/Continuation
The State/Continuation element serves two different purposes for Interaction (Sequence 706 ) diagrams, as
State Invariants 793 and Continuations 792 . Enterprise Architect prompts you to identify the purpose when you
create the element.
Toolbox Icon
5.1.2.1.35.1 Continuation
A Continuation is used in seq and alt Combined Fragments 759 , to indicate the branches of continuation an
operand follows. To indicate a continuation, end an operand with a Continuation, and indicate the continuation
branch with a matching Continuation (same name) preceding the Interaction Fragment.
You create a Continuation by dragging the State/Continuation 792 element onto the diagram from the
Interaction Elements page of the Toolbox.
For the following continuation example, an alt Combined Fragment has Continuations pathSucc and pathFail.
These Continuations are located within the Interaction Occurrence 780 ConnHandler, which has subsequent
events based on the continuation.
The following diagram shows the interaction referenced by the Interaction Occurrence.
When a State Invariant is moved near to a Lifeline, it snaps to the center. If the sequence object is dragged
left or right, the State Invariant moves with it.
A Lifeline is the path an object takes across a measure of time, as indicated by the x-axis. There are two
sorts: State Lifelines (defined here) and Value Lifelines 808 , both used in Timing diagrams 690 .
A State Lifeline follows discrete transitions between states, which are defined along the y-axis of the timeline.
Any transition has optional attributes of timing constraints, duration constraints and observations. An example
of a State Lifeline is shown below:
Property Description
Timing constraints Refers to the time taken for a state to change within a lifeline, or the time taken to
transmit a message (e.g. t..t+3).
Timing observations Provides information on the time of a state change or sent message.
Duration constraints Pertains to a lifeline's period at a particular state. The constraint could be
instigated by a change of state within a lifeline, or that lifeline's receipt of a
message.
Duration observations Indicates the interval of a lifeline at a particular state, begun from a change in
state or message receipt.
In the example diagram above, the OK transition point has these properties:
Property Value
At Time 18 ms
Transition to Idle
Event OK
Timing observations –
Duration constraints –
Duration observations –
Toolbox Icon
A State Machine element is a container for groups of related State elements. You can create sections of a
State Machine diagram, showing the organization of the inter-related State elements, and enclose each
section in a State Machine element. You can also create Regions 681 on a State Machine element.
Toolbox Icon
Note:
All four Structured Activity Nodes are created as composite elements 837 . However, for the Loop Node and
Conditional Node elements you must create the child element structure on the parent diagram within the
node element itself, as for a Composite State 790 . You cannot develop the partitioned structure of the nodes
on a child diagram.
For this reason, the Show Composite Diagram facility is not available for the Loop Node and Conditional
Node. It is also not available on the Structured Activity Node, as this is the base element for the Loop and
Conditional Nodes. You can, however, use the two basic nodes as composite elements, and display the child
diagram structure on the parent Sequential node.
When you create a Structured Activity, by selecting the icon from the Activity page of the Toolbox, the
following context menu displays:
The first two options specifically create a Loop or Conditional Node. The Other option displays the New
Structured Activity dialog, on which you can select to create any of the four nodes, or a simple Composite
Activity element.
Toolbox Icon
Sequential Node
The OMG UML specification (UML Superstructure Specification, v2.1.1, p. 408) states:
A sequence node is a structured activity node that executes its actions in order.
Loop Node
The OMG UML specification (UML Superstructure Specification, v2.1.1, pp. 384-385) states:
A loop node is a structured activity node that represents a loop with setup, test, and body sections.
Each section is a well-nested subregion of the activity whose nodes follow any predecessors of the loop and
precede any successors of the loop. The test section may precede or follow the body section. The setup
section is executed once on entry to the loop, and the test and body sections are executed repeatedly until the
test produces a false value. The results of the final execution of the test or body are available after completion
of execution of the loop.
Conditional Node
The OMG UML specification (UML Superstructure Specification, v2.1.1, p.355) states:
A conditional node is a structured activity node that represents an exclusive choice among some number of
alternatives.
A conditional node consists of one or more clauses. Each clause consists of a test section and a body section.
When the conditional node begins execution, the test sections of the clauses are executed. If one or more test
sections yield a true value, one of the corresponding body sections will be executed. If more than one test
section yields a true value, only one body section will be executed. The choice is nondeterministic unless the
test sequence of clauses is specified. If no test section yields a true value, then no body section is executed;
this may be a semantic error if output values are expected from the conditional node.
To display the Activity diagram represented by a Structured or Sequential Activity Node element, double-click
on the element.
Structured Activity Node elements can point to child diagrams that themselves contain or consist of Structured
Activity elements; that is, the Structured Activity elements are nested, as shown in the section of Project
Browser below.
You define the Loop or Condition nodes by dragging other Activity diagram elements from the Toolbox page
into the appropriate partition of the element, and linking and organizing the structure as required. The
elements are aligned on the top left of the partition, so that resizing the node maintains the organization of the
structure within and between the partitions. If you try to shrink the node below the structure size, the node
automatically defaults to the 'best fit' size.
Conditional Node
When you create 796 a Conditional Node, the element Properties dialog displays. Much of this you can
complete 481 as for any other element. However, for the Conditional Node the dialog also has a Condition tab,
as shown below:
Add an Action Pin 749 as the Result for the node, clicking on the Add button to display the Select Pins dialog
(a version of the Select <Item> 515 dialog).
On creation, the Conditional Node automatically has one Clause containing a Decider and Body Output, and
a Test partition and a Body partition. You can add further Clauses as required. For each Clause you also add
an Action Pin for the Decider and for the Body Output. Click on the Save button to save the Clause definition.
The Select Pin dialog reveals only Output pins as appropriate to the context. If the required Action Pin does
not already exist, you can click on the Add New button on the dialog to automatically create an Output pin
under the appropriate parent node.
For the Result and Body Output entries, you can check on the exact location of each Action Pin by
right-clicking on the entry and selecting the Find in Project Browser context menu option.
The Nodes panel, by default, lists the Actions and Activities contained in the Test partition. Click on the Body
radio button to list the elements contained in the Body partition. An element must be completely contained in
the Body partition to be listed there - if it overlaps with the Test partition in any way, it is treated as being part
of the Test partition.
Body Output Action Pins. New Test and Body partitions are immediately added to the element on the
diagram, and you can populate these partitions with Activity elements, which are then identified in the Nodes
panel.
To remove a Clause, highlight it in the list and click on the Delete button. This immediately removes the
Clause's corresponding partitions from the diagram, along with all their contained Activity elements. Removing
a Clause from between two other Clauses adjusts the numerical order; for example, if Clause 2 is removed
from between Clause 1 and Clause 3, Clause 3 is renamed as Clause 2, and any further Clauses are also
moved up one place.
Loop Node
When you create 796 a Loop Node, the element Properties dialog displays. Much of this you can complete 481
as for any other element. However, for the Loop Node the dialog also has a Loop tab, as shown below:
Add an Action Pin 749 for each of the Decider, Loop Variable Input, Loop Variable, Body Output and
Result fields for the node, in each case clicking on the Browse or Add button to display the Select Pins dialog
(a version of the Select <Item> 515 dialog). The Select ActionPin dialog reveals only Input pins (Loop Variable
Input) or Output pins as appropriate to the context. If the required Action Pin does not already exist, you can
click on the Add New button on the dialog to automatically create the Input pin or an Output pin under the
appropriate parent node.
You can also check on the exact location of an existing Action Pin by right-clicking on the pin name and
The Nodes panel, by default, lists the Actions and Activities contained in the Setup partition. Click on the
Body or Test radio buttons to list the elements contained in the corresponding partitions. An element must be
completely contained in a partition to be listed there - if it overlaps with the partition above in any way, it is
treated as being part of that partition.
5.1.2.1.39 Synch
A Synch state is useful for indicating that concurrent paths of a State Machine 678 are synchronized. After
bringing the paths to a synch state, the emerging transition indicates unison.
Toolbox Icon
A System Boundary element is a non-UML element used to define conceptual boundaries. You can use
System Boundaries to help group logically related elements (from a visual perspective, not as part of the UML
model).
In the UML Superstructure Specification, v2.1.1, System Boundaries are described in the sections on Use
Cases 806 , because the System Boundary is often used to indicate the application of a Use Case to another
entity. In this context, the System Boundary:
· encloses the Use Case, and
· is associated with a classifier 515 such as a Class 811 , Component 816 or Sub-system (Actor 757 ) through
the Select <Item> dialog.
By associating the System Boundary - and not the Use Case - with the classifier, the classifier is linked to the
Use Case as a user, but not as an owner.
You can also define a Use Case as the classifier of a System Boundary element, to link the elements
enclosed in the System Boundary (such as parts of an Activity diagram) to their representation in a logical
Use Case. See http://www.sparxsystems.com.au/resources/map_uc.html.
The following properties of a System Boundary can be set: the name, the border style 803 , and the number of
horizontal or vertical swim lanes.
A System Boundary element can be marked as Selectable, using the element's context menu. When not
selectable, you can click within the System Boundary space without activating or selecting the Boundary itself.
This is useful when you have many elements within the Boundary and the Boundary makes their selection
difficult.
Note:
A System Boundary can have an associated image that it displays instead of its default format. Use the
Appearance | Alternate Image 448 menu option to select an image.
Toolbox Icon
5.1.2.1.41 Terminate
The Terminate pseudo-state 682 indicates that upon entry of its pseudo-state, the State Machine's 678
execution ends.
Toolbox Icon
5.1.2.1.42 Trigger
A Trigger indicates an event that initiates an action (and might arise from completion of a previous action).
You initially define a Trigger in one of four ways:
· As a property of a Transition 892 relationship
· As a property of an Accept Event Action 743 (on the Triggers tab of the element Properties dialog)
· As an event in a State Machine Table 688
· Directly, as a Trigger element, through the New Element 524 dialog.
When you save the Trigger, it is added to the list of elements for the parent package in the Project Browser.
You can then right-click on it and select the Properties context menu option to view and, if required, edit its
properties as an element rather than as a property itself. Triggers created as events remain as Event
elements, whilst Triggers created in other ways are Trigger elements, with a Trigger tab in the Properties
dialog.
Option Use to
Ports Click on the Add button and select the appropriate Port from the Select Port 515
dialog.
Notes:
· To create new Ports using the Select Port dialog, the Trigger should be created
as a child of a Class or Component element.
· To add several Ports at once, press [Ctrl] as you select each Port.
· To check the exact location of a Port, right-click on the Port name and select the
Find in Project Browser context menu option.
You can also drag the Trigger element onto another diagram, although there are limited uses for the element
in that context.
This element is not the same as a Trigger Operation 1033 , which is an operation automatically executed as a
result of the modification of data in a database.
A Use Case is a UML modeling element that describes how a user of the proposed system interacts with the
system to perform a discrete unit of work. It describes and signifies a single interaction over time that has
meaning for the end user (person, machine or other system), and is required to leave the system in a
complete state: the interaction either completed or rolled back to the initial state. A Use Case:
· Typically has requirements and constraints that describe the essential features and rules under which it
operates
· Can have an associated Sequence diagram 706 illustrating behavior over time; who does what to whom,
and when
· Typically has scenarios associated with it that describe the work flow over time that produces the end
result; alternative work flows (for example, to capture exceptions) are also enabled.
Note:
Use a Use Case diagram and model to build up the functional requirements and implementation details of the
system.
If extending a Use Case, you can specify the points of extension with Use Case Extension Points 807 . To
display the attributes, operations or constraints of a Use Case on a diagram, use Rectangle Notation 808 .
Enterprise Architect also provides two stereotyped Use Cases - the Test Case 848 and the Business Use Case
739 .
Toolbox Icon
Note:
Conditions to apply the extending Use Case, and the extension point to use, should be attached as a note to
the extend relationship.
3. Select an extension point in the list and click on the appropriate button to edit or remove the extension
point, or to add a new one.
To show a Use Case using rectangle notation, right-click on the Use Case object on the diagram and select
the Advanced | Use Rectangle Notation context menu option. This setting only applies to the selected Use
Case, and can be toggled on and off.
Note:
Actor 757 elements can also be displayed using rectangle notation.
A Lifeline is the path an object takes across a measure of time, indicated by the x-axis. There are two sorts:
Value Lifelines (defined here) and State Lifelines 794 , both used in Timing diagrams 690 .
A Value Lifeline shows the Lifeline's state across the diagram, with parallel lines indicating a steady state. A
cross between the lines indicates a transition or change in state.
An example of a Value Lifeline is shown below:
Property Description
Property Description
Timing constraints Refers to the time taken for a state to change within a Lifeline, or the time taken to
transmit a message.
Timing observations Provides information on the time of a state change or sent message.
Duration constraints Pertains to a Lifeline's period at a particular state. The constraint could be
instigated by a change of state within a Lifeline, or that Lifeline's receipt of a
message.
Duration observations Indicates the interval of a Lifeline at a particular state, begun from a change in
state or message receipt.
In the example diagram above, the 10ms transition point has these properties:
Property Text
At Time 10ms
Transition to Waitcard
Event Switch
Timing constraints –
Timing observations –
Duration constraints d..3*d
Duration observations –
Toolbox Icon
Note:
Actor, Collaboration, Note, Object and Package elements are used in both Behavioral diagrams and
Structural diagrams.
5.1.2.2.1 Artifact
An Artifact is any physical piece of information used or produced by a system, represented in a Deployment
Diagram 727 .
Artifacts can have associated properties or operations, and can be instantiated or associated with other
Artifacts. Examples of Artifacts include model files, source files, database tables, development deliverables or
support documents. The files represented by the Artifact are listed on the Files tab of the element Properties
dialog.
To open the files represented by the Artifact, click on the element on the diagram and press [Ctrl]+[E]. Each
file is opened either on a separate tab in the Diagram View workspace (if the file can be opened within
Enterprise Architect) or in the default Windows viewer/editor for the file type (if the file cannot be opened within
Enterprise Architect).
Files can also be launched individually from the Files tab (opening in the Windows default editor), as for
elements of any other type that have associated files 507 .
Toolbox Icon
Click on the Artifact option to create the element on the diagram. The Properties dialog displays, and you can
define the name or other properties as required. Click on the OK button, and then open the Properties dialog
again and click on the Files tab. The file pathname is listed in the Files panel.
5.1.2.2.2 Class
A Class is a representation of objects that reflects their structure and behavior within the system. It is a
template from which actual running instances are created, although a Class can be defined either to control its
own execution 812 or as a template or parameterized Class 813 that specifies parameters that must be defined
by any binding Class.
A Class can have attributes 558 (data) and methods (operations 569 or behavior). Classes can inherit
characteristics from parent Classes and delegate behavior to other Classes. Class models usually describe
the logical structure of the system and are the building blocks from which components are built.
The top section of a Class, as illustrated below, shows the attributes (or data elements) associated with the
Class. These hold the 'state' of an object at run-time. If the information is saved to a data store and can be
reloaded, it is termed 'persistent'. The lower section contains the Class operations (or methods at run-time).
Operations describe the behavior a Class offers to other Classes, and the internal behavior it has (private
methods).
Class elements are generally used in Class diagrams 721 and Composite Structure diagrams 724 .
Enterprise Architect also supports a number of stereotyped Class elements to represent various entities in
web-page modeling 851 . A Class can also be integrated with an Associate 855 connector to form an
Association Class 856 , to allow the Associate connector to have operations and attributes that define certain
types of UML relationship.
Toolbox Icon
An Active Class indicates that, when instantiated, the Class controls its own execution. Rather than being
invoked or activated by other objects, it can operate standalone and define its own thread of behavior.
To define an Active Class in Enterprise Architect, follow the steps below:
1. Highlight a Class, and display its Properties dialog.
2. Click on the Advanced button.
3. Select the Is Active checkbox.
4. Click on the OK button to save the details.
An active object is an object that, as a direct consequence of its creation, commences to execute its classifier
behavior, and does not cease until either the complete behavior is executed or the object is terminated by
some external object. (This is sometimes referred to as "the object having its own thread of control.") The
points at which an active object responds to communications from other objects is determined solely by the
behavior of the active object and not by the invoking object. If the classifier behavior of an active object
completes, the object is terminated.
3. In the Type field, click on the drop-down arrow and select Parameterized.
For an instantiated template, select Instantiated and add the arguments in the Arguments field.
4. Click on the Add button and define the required parameters in the Class Parameter dialog.
Notation Example
5.1.2.2.3 Collaboration
A Collaboration defines a set of cooperating roles and their connectors. These are used to collectively
illustrate a specific functionality, in a Composite Structure diagram 724 . A Collaboration should specify only the
roles and attributes required to accomplish a specific task or function. Although in practice a behavior and its
roles could involve many tangential attributes and properties, isolating the primary roles and their requisites
simplifies and clarifies the behavior, as well as providing for reuse. A Collaboration often implements a pattern
to apply to various situations.
The following example illustrates an Install Collaboration, with three roles (Objects 823 ) connected as shown.
The process for this Collaboration can be demonstrated by attaching an Interaction diagram (Sequence 706 ,
Timing 690 , Communication 715 or Interaction Overview 717 ).
To understand referencing a Collaboration in a specific situation, see the Collaboration Occurrence 815 topic.
Enterprise Architect supports a stereotyped Collaboration to represent a Business Use Case Realization 739 in
business modeling.
Toolbox Icon
To create a Collaboration Occurrence, drag the required Collaboration from the Project Browser onto the
diagram and, on the Paste Element dialog, select the Paste as Link radio button.
5.1.2.2.5 Component
A Component is a modular part of a system, whose behavior is defined by its provided and required interfaces;
the internal workings of the Component should be invisible and its usage environment-independent. Source
code files, DLLs, Java beans and other artifacts defining the system can be manifested in Components.
A Component can be composed of multiple Classes 811 , or Components pieced together. As smaller
Components come together to create bigger Components, the eventual system can be modeled, building-
block style, in Component diagrams 730 . By building the system in discrete Components, localization of data
and behavior enables decreased dependency between Classes and Objects 823 , providing a more robust and
maintainable design.
Toolbox Icon
A Data Type is a specific kind of classifier, similar to a Class 811 except that a Data Type cannot own sub Data
Types, and instances of a Data Type are identified only by their value. For example, an instance of a Person
Class is a Helen object, but an instance of an Integer Data Type is 12.
All copies of an instance of a Data Type, and any instances of that Data Type with the same value, are
considered to be the same instance. That is, instances of Helen are not necessarily the same Helen, but all 12
s are the same 12. For example, the 12 on a watch face is exactly the same integer as the number of months
in a year.
Instances of a Data Type that have attributes (that is, are instances of a structured Data Type) are considered
to be the same if the structure is the same and the values of the corresponding attributes are the same. If a
Data Type has attributes, instances of that Data Type contain attribute values matching the attributes.
A typical use of Data Types would be to represent programming language primitive types or CORBA basic
types. For example, integer and string types are often treated as Data Types.
A Data Type is denoted by a rectangle with the keyword «dataType», as above or, when it is referenced by (for
example) an attribute, by a string containing the name of the Data Type, as below:
Toolbox Icon
Toolbox Icon
5.1.2.2.8 Device
A Device is a physical electronic resource with processing capability upon which Artifacts 810 can be deployed
for execution, as represented in a Deployment diagram 727 . Complex Devices can consist of other devices;
that is, a Device can be a nested element, where a physical machine is decomposed into its elements either
through namespace ownership or through attributes that are typed by Devices.
Toolbox Icon
A Document Artifact is an artifact 810 having a stereotype of «document». You create the Document Artifact on
a Component, Documentation or Deployment diagram, and associate it with an RTF document. Double-click
on the element to display the Linked Document Editor. See the Linked Documents 597 topic. When you have
created the linked document, the Document Artifact element on the diagram shows an A symbol in the bottom
right corner.
Toolbox Icon
5.1.2.2.10 Enumeration
An Enumeration is a data type, whose instances can be any of a number of user-defined enumeration literals.
It is possible to extend the set of applicable enumeration literals in other packages or profiles. You create
Enumerations in Class 721 or Package diagrams 720 , and in diagrams developed from the Metamodel 415 and
Profile 414 pages of the Toolbox.
Toolbox Icon
An Execution Environment is a node 822 that offers an execution environment for specific types of components
816 that are deployed on it in the form of executable artifacts 810 . This is depicted in a Deployment diagram
727 .
Execution Environments can be nested; for example, a database Execution Environment can be nested in an
operating system Execution Environment. Components of the appropriate type are then deployed to specific
Execution Environment nodes.
Toolbox Icon
The Expose Interface element is a graphical method of depicting the required or supplied interfaces 821 of a
Component 816 , Class 811 or Part 825 , in a Component 730 or Composite Structure 724 diagram. It just
identifies the fact that the element provides or requires an interface; to depict the fact that the provided
interface is used, or the required interface provided, by another element use the Assembly 855 connector.
The Expose Interface element must be attached to the Class or Component element, and it becomes a child
element of that Class or Component; it cannot exist independently. You can attach more than one Expose
Element to another element.
When you create the Expose Interface element, a dialog displays in which you enter a name for the element
and specify whether it represents a required interface or a provided interface.
Toolbox Icon
An Information Item represents an abstraction of data. It is used in Activity 674 , Analysis 733 and Object 723
diagrams. An Information Item is also represented by an Information Flow 864 connector.
Toolbox Icon
5.1.2.2.14 Interface
An Interface is a specification of behavior (or contract) that implementers agree to meet. By implementing an
Interface, Classes 721 are guaranteed to support a required behavior, which enables the system to treat non-
related elements in the same way; that is, through the common interface. You also use Interfaces in a
Composite Structure 724 diagram.
Interfaces are drawn in a similar way to a Class, with operations specified, as shown below. They can also be
drawn as a circle with no explicit operations detailed. Right-click on the element and select the Use Circle
Notation context menu option to switch between styles. Realize 889 connectors to an Interface drawn as a
Note:
An Interface cannot be instantiated (that is, you cannot create an object from an Interface). You must create a
Class that 'implements' the Interface specification, and in the Class body place operations for each of the
Interface operations. You can then instantiate the Class.
Toolbox Icon
5.1.2.2.15 Node
A Node is a physical piece of equipment on which the system is deployed, such as a workgroup server or
workstation. A Node usually hosts components and other executable pieces of code, which again can be
connected to particular processes or execution spaces. Typical Nodes are client workstations, application
servers, mainframes, routers and terminal servers.
Nodes are used in Deployment diagrams 727 to model the deployment of a system, and to illustrate the
physical allocation of implemented artifacts. They are also used in web modeling, from dedicated web
modeling pages in the Toolbox 399 .
Toolbox Icon
5.1.2.2.16 Object
An Object is a particular instance of a Class 811 at run time. For example a car with the license plate AAA-001
is an instance of the general class of cars with a license plate number attribute. Objects are often used in
analysis to represent the numerous artifacts and items that exist in any business, such as pieces of paper,
faxes and information. To model the varying behavior of Objects at run-time, use run-time states 823 .
Early in analysis, Objects can be used to quickly capture all the things that are of relevance within the system
domain, in an Object 723 , Composite Structure 724 or Communication 715 diagram. As the model progresses
these analysis Objects are refined into generic Classes from which instances can be derived to represent
common business items. Once Classes are defined, Objects can be typed; that is they can have a classifier
set that indicates their base type. See the Object Classifiers 519 topic.
Enterprise Architect also supports a number of stereotyped Object 739 elements to represent various entities in
business modeling.
Toolbox Icon
The following example defines run-time values for the listed variables, which are attributes of the instances'
classifier AccountItem.
To add run-time state 823 instance variables to an Object, follow the steps below:
1. Right-click on the Object. The context menu displays.
2. If Instance Variables are supported, select the Advanced | Set Run State menu option (or press [Ctrl]
+[Shift]+[R]). The Set Run State dialog displays.
3. In the Variable field, click on the drop-down arrow and select the variable, or type in the new variable
name.
4. Set the Operator, the Value and optionally type in a Note.
5. Click on the OK button to save the variable.
To delete a run-time state 823 variable for an Object, follow the steps below:
1. Right-click on the required Object. The context menu displays.
2. Select the Set Run State option. The Run State dialog displays.
3. In the Variable field, click on the drop-down arrow and select the variable to delete.
4. Clear the Value field.
5. Click on the OK button.
2. In the State field, either type the required State (such as Awaiting Approval) or select a State from the
drop-down list.
Note:
The drop-down list for the State field is populated with:
1. Any States owned by the object's classifier.
2. Any States owned by any superclasses of the object's classifier.
3. Any States owned by State Machines owned by the object's classifier.
4. Any States owned by State Machines owned by any superclasses of the object's classifier.
3. Click on the OK button to apply the State. The object now shows the run-time state in square brackets
below the object name.
5.1.2.2.17 Package
A Package is a namespace as well as an element that can be contained in other Package's namespaces. A
Package can own or merge with other Packages, and its elements can be imported into a Package's
namespace. In addition to using Packages in the Project Browser to organize your project contents, you can
drag these Packages onto a diagram workspace (most diagram types, both standard and extended) for
structural or relational depictions, including Package imports or merges.
Toolbox Icon
5.1.2.2.18 Part
Parts are run-time instances of Classes 811 or Interfaces 821 . Multiplicity can be specified for a Part, using the
notation:
[x{...y}]
where x specifies the initial or set amount of instances when the composite structure is created, and y
indicates the maximum amount of instances at any time.
Parts are used to express composite structures 724 , or modeling patterns that can be invoked by various
objects to accomplish a specific purpose. When illustrating the composition of structures, Parts can be
embedded as properties of other Parts. When embedded as properties 726 , Parts can be bordered by a solid
outline, indicating the surrounding Part owns the Part by composition. Alternatively, a dashed outline indicates
that the property is referenced and used by the surrounding Part, but is not composed within it.
You can also set properties 829 and property values 826 for Parts.
Toolbox Icon
3. In the Variable field, click on the drop-down arrow and select the variable, or type in the new variable
name.
4. Set the Operator, the Value and optionally type in a Note.
5. Click on the OK button to save the variable.
A Part with a property value resembles the following figure.
5.1.2.2.19 Port
Ports define the interaction between a classifier and its environment. Interfaces controlling this interaction can
be depicted using the Interface element 821 . Any connector to a Port must provide the required interface, if
defined. Ports can appear on a contained Part 825 , a Class 811 , or the boundary of a Composite element 837 .
A Port is a typed structural feature or property of its containing classifier. Ports are typically created 827 in
Class diagrams 721 , Object diagrams 723 and Composite Structure diagrams 724 .
You can expose an inherited Port, or redefine a Port 827 . You also define specific properties 829 for a Port
element.
Toolbox Icon
This tab defines the type, initial value, Qualifiers 830 , multiplicity, and redefined and subsetted properties of the
Port or Part.
You set the Qualifiers by clicking on the Qualifiers button, to display the Qualifiers 832 dialog.
You add Redefined and Subsetted Properties by clicking on the appropriate Add button, to display the
Select Property 517 dialog.
5.1.2.2.20 Primitive
A Primitive element identifies a predefined data type, without any relevant substructure (that is, it has no parts
in the context of UML). It could be regarded as a conceptual Data Type 817 .
Toolbox Icon
5.1.2.2.21 Qualifiers
Qualifiers are ordered sets of properties of an Association end point 629 , a Part 825 , a Port 826 , or an Attribute
558 , that limit the nature of the relationship between two classifiers or objects. You define a qualifier on the
Qualifiers 832 dialog, which you display by clicking on the [ ... ] button at the end of the Qualifiers field on the
Association, Part, Port or Attribute Properties dialog.
Some examples of qualified Associations are shown in the following diagram:
Notes:
· When typing multiple Qualifiers into the Qualifier(s) field on a Properties dialog, separate them with a
semi-colon; each Qualifier then displays on a separate line. For example, in the diagram the Qualifier 'rank:
Rank;file:File' has been rendered in two lines, with a line break at the ; character.
· You can enable or disable Qualifier rectangles in the Diagram page of the Options dialog (select the Tools
| Options | Diagram menu option). If disabled, the old style text Qualifiers are used. It is not recommended
that you disable Qualifiers as they are an integral part of the UML.
· You can enable or disable a mild shading on the Qualifier rectangles in the Links page of the Options
dialog.
General Tab
Review, edit or complete the fields as indicated in the following table.
Field Use to
Name Display the name of the Qualifier. For a new Qualifier, type the name (with no spaces).
Alias Display an optional alias for the Qualifier. If necessary, type in a new alias.
Scope Define the Qualifier as Public, Protected, Private or Package. If necessary, click on the
Field Use to
Stereotype Define the optional stereotype of the Qualifier. If necessary, either type a different
stereotype name or click on the drop-down arrow and select a stereotype.
Derived Indicate that the Qualifier is a calculated value. If you select this checkbox, the Qualifier
name on the element has the derived symbol (/) as a prefix.
Initial Display an optional initial value. If necessary, type in a new initial value.
Notes Enter any free text notes associated with the Qualifier. You can format the notes text
using the Notes 642 toolbar at the top of the field.
To change the position of a Qualifier in the list in the Qualifiers panel, click on the Scroll Up or Scroll Down
(hand) buttons.
Detail Tab
Use the Detail tab to model additional properties of a selected Qualifier, such as its multiplicity, redefined
properties and subsetted properties.
Select a Qualifier on the General tab, then review, edit or complete the Detail tab fields as indicated in the
following table.
Field Use to
Multiplicity
Lower bound Define a lower limit to the number of elements allowed in the
collection.
Upper bound Define an upper limit to the number of elements allowed in the
collection.
5.1.2.2.22 Signal
A Signal is a specification of Send 789 request instances communicated between objects, typically in a Class
721 or Package 720 diagram. The receiving object handles the Received 787 request instances as specified by
its receptions. The data carried by a Send request is represented as attributes of the Signal. A Signal is
defined independently of the classifiers handling the signal occurrence.
To define a reception, create an operation in the receiving object and assign the stereotype <<signal>> to it.
The reception has the same name as the signal that the object can receive.
Toolbox Icon
5.1.2.3.2 Boundary
or
A Boundary is a stereotyped Object 823 that models some system boundary, typically a user interface screen.
You can also create a Boundary as a stereotyped Class 811 . See the Create a Boundary 836 topic.
A Boundary is used in the conceptual phase to capture users interacting with the system at a screen level (or
some other boundary interface type). It is often used in Sequence 706 and Robustness (Analysis 733 )
diagrams. It is the View in the Model-View-Controller 836 pattern.
Tip:
Use Boundary elements in analysis to capture user interactions, screen flows and element interactions (or
'collaborations').
Toolbox Icon
or
Create As An Object
To create a Boundary 836 element on a diagram as an Object, follow the steps below:
1. In the Toolbox, select the More Tools | Analysis menu option.
2. From the Analysis Elements page, drag the Boundary element onto the diagram.
Create As A Class
To create a Boundary element as a stereotyped Class, using the Class Properties dialog, follow the steps
below:
1. Insert a new Class.
2. Right-click on the element and select the Properties context menu option; the Properties dialog
displays.
3. In the Stereotype field, type the value boundary.
4. Click on the Apply and OK buttons.
5. Save the diagram ([Ctrl]+[S]).
The following illustration shows an Actor 757 interacting with a Boundary (in this case, a Login screen).
Note:
The Model-View-Controller (MVC) pattern is a design pattern for building a wide range of applications that
have a user interface, business or application logic and persistent data.
Note:
If the Make Composite option is not listed in the context menu, the option is not available for the type
of element you have selected.
Note the small icon in the bottom right hand corner indicating that this is now a Composite element.
3. Double-click on the Composite element to access the child diagram that it points to.
The Composite element and its child diagram are represented in the Project Browser as follows:
Note that ClassX, ClassY and ClassZ are elements in the child diagram.
Alternative Notation
Composite elements can show their contents instead of their usual notation. To enable this, right-click on the
element to open the context menu, then select the Advanced | Show Composite Diagram option.
5.1.2.3.4 Control
or
A Control is a stereotyped Object 823 that models a controlling entity or manager. A Control organizes and
schedules other activities and elements, typically in Analysis 733 (including Robustness), Sequence 706 and
Communication 715 diagrams. It is the controller of the Model-View-Controller 838 pattern.
You can also create a Control as a stereotyped Class 811 . See the Create a Control Element 838 topic.
Toolbox Icon
or
Create As An Object
To create a Control 838 element on a diagram as an Object, follow the steps below:
1. In the Toolbox, select the More Tools | Analysis menu option.
2. From the Analysis Elements page, drag the Control element onto the diagram.
Create As A Class
To create a Control element as a stereotyped Class, using the Class Properties dialog, follow the steps below:
1. Insert a new Class.
2. Right-click on the element and select the Properties context menu option; the Properties dialog
displays.
3. In the Stereotype field, type the value control.
4. Click on the Apply and OK buttons.
5. Save the diagram ([Ctrl]+[S]).
The appearance changes as illustrated in the following diagram (for the Security Controller element):
Note:
The Model-View-Controller (MVC) pattern is a design pattern for building a wide range of applications that
have a user interface, business or application logic and persistent data.
5.1.2.3.5 Entity
From: Sequence Diagram 706 Communication 715 , Object 723 , Analysis 733
(including Robustness) Diagrams
An Entity is a stereotyped Object 823 that models a store or persistence mechanism that captures the
information or knowledge in a system. It is the Model in the Model-View-Controller 838 pattern.
You can also create an Entity as a stereotyped Class 811 . See the Create an Entity 839 topic.
Toolbox Icon
or
Create As An Object
To create an Entity 839 element on a diagram as an Object, follow the steps below:
1. In the Toolbox, select the More Tools | Analysis menu option.
2. From the Analysis Elements page, drag the Entity element onto the diagram.
Create As A Class
To create an Entity element as a stereotyped Class, using the Class Properties dialog, follow the steps below:
1. Insert a new Class.
2. Right-click on the element and select the Properties context menu option; the Properties dialog
displays.
3. In the Stereotype field, type the value entity.
4. Click on the Apply and OK buttons.
5. Save the diagram ([Ctrl]+[S]).
5.1.2.3.6 Event
UML includes two elements that are used to model Events. The first element is the Send Event. This element
models the generation of a stimulus in the system and the passing of that stimulus to other elements, either
within the system or external to the system.
The second element is the Receive Event, which is depicted as a rectangle with a recessed 'V' on the left side.
This element indicates that an event occurs in the system due to some external or internal stimulus. Typically
this invokes further activities and processing.
Send and Receive Events can be added from the Analysis 416 and Activity 412 Element pages of the Toolbox.
If you should select the wrong type of event, or otherwise want to change the type, right-click on the Event and
select the Advanced | Make Sender or Advanced | Make Receiver context menu option, as appropriate.
Toolbox Icons
5.1.2.3.7 Feature
Note:
Feature elements can be created with or without an identifying F in the top right corner of the element. To
toggle the display of this letter, select or deselect the Show stereotype icon for requirements checkbox on
the Options dialog, Objects 362 page.
Toolbox Icon
5.1.2.3.8 Hyperlinks
You can place a Hyperlink element onto a diagram. This element is a type of text element, but one that can
contain a pointer to a range of objects such as associated document files, web pages, Help, model features
and even other Enterprise Architect model files. When you double-click on the element, Enterprise Architect
executes the link. To add a Hyperlink element, drag the Hyperlink icon from the Common page of the Toolbox
onto the diagram.
(Alternatively, click on the Hyperlink icon in the UML Elements toolbar and then click on the diagram.)
You first select the type of object to link to, by clicking on the drop-down arrow in the Hyperlink Type field.
The Hyperlink Details dialog displays the appropriate fields, prompts or dialog to enable you to specify the
object to link to. For example, if you intend to hyperlink to:
· an attribute, the Set Attribute dialog 748 displays to enable you to select that attribute
· a file, the Action field displays to enable you to specify whether to Open the file in read only mode, or Edit
the file; in either case the file is opened within Enterprise Architect if possible, or, if not possible, with the
Windows default viewer/editor for the file type. For example, if you hyperlink to a .rtf file, you can view it in
whichever viewer is appropriate; however, you cannot edit .rtf files in Enterprise Architect, so the file always
opens in the Windows default .rtf editor.
· a diagram, the Select a Diagram dialog displays, which enables you to select the diagram from anywhere in
the project; you can filter the selection to diagrams of certain types.
If you select EA Command, the Hyperlink Address field changes to a drop-down list of Enterprise Architect
commands. You can select LocalPath and click on the [ ... ] (Browse) button to display the Local Paths 1343
dialog, which you complete as required. Subsequently, when you click on the hyperlink the Local Paths dialog
immediately displays and you can apply, switch, expand or update the current path.
Once you have defined the object and its location, you can change the location either by overtyping the
Hyperlink Address field or by clicking on the [ ... ] (Browse) button.
In the Alias field, type the text to display in the hyperlink. If you do not provide an alias, either the text defaults
to the link itself, or (for certain link targets such as a matrix profile) the dialog generates a simple text
instruction.
If you prefer to display only the hyperlink text, without the icon, select the Hide Icon checkbox.
Notes:
· If required, you can create a number of empty hyperlinks to complete later. If you then double-click on an
empty hyperlink, the Hyperlink Details dialog displays and you can enter the details.
· Once you have created the hyperlink, you can also edit the hyperlink text by clicking once on the field and
once on the text, then right-clicking and selecting the Edit Selected context menu option.
Note that you can add notes to the hyperlink, which display in the Hyperlink Details dialog when you right-click
on the hyperlink and select the Properties context menu option. You can format these notes using the Notes
642 toolbar.
Note:
If the hyperlink appears as a Sub Activity, select the Tools | Options | Diagram | Behavior menu option and
deselect the Use Automatic SubActivities checkbox.
1. Open the diagram in which to display the hyperlink to another diagram. From the Project Browser select
the diagram you want to create a hyperlink to.
2. Drag the diagram on to the current diagram. The Select Type dialog displays.
3. Select the Hyperlink option and click on the OK button. The final hyperlinked diagram should resemble
the diagram below, where the Class diagram is the diagram to which the Product Order diagram
hyperlinks (notice that the hyperlink icon is different).
An n-Ary Association element is used to model complex relationships between three or more elements,
typically in a Class diagram 721 . It is not a commonly-employed device, but can be used to good effect where
there is a dependant relationship between several elements. It is generally used with the Associate 855
connector, but the relationships can include other types of connector.
In the example above there is a relationship between a Company, an Employee and a Salary.
Toolbox Icon
A Packaging Component is an element that appears very similar to a Component 816 in a diagram but
behaves as a Package 825 in the Project Browser (that is, it can be version controlled and can contain other
Packages and elements). It is typically used in Component diagrams 730 .
In the Project Browser, the three elements display as shown below:
Toolbox Icon
5.1.2.3.11 Process
A Process is an Activity 753 element with the stereotype process, which expresses the concept of a business
process. Typically this involves inputs, outputs, work flows, goals and connections with other Processes. The
Process element is typically used in Analysis diagrams 733 .
Business processes typically range across many parts of the organization and span one or more systems.
Toolbox Icon
5.1.2.3.12 Requirements
As an analysis step, often it is desirable to capture simple system requirements. These are eventually realized
by Use Cases 806 .
In the initial requirement gathering phase, cataloging requirements can be achieved using the Requirement
extension on a Custom diagram 734 .
Requirements can also be aggregated to create a hierarchy. The diagram below illustrates how this might be
done.
A requirement that a user can log into a website is implemented by the Login Use Case, which in turn is
implemented by the Business Logic, ASP Pages and Login Web Page. Using this approach, you can easily
model quite detailed and complex dependencies and implementation relationships.
Notes:
· External requirements can be created with or without an identifying E in the top right corner of the element.
To toggle the display of this letter, select or deselect the Show stereotype icon for requirements
checkbox on the Options dialog, Objects 362 page.
· The colors on Requirement elements identify the status of the requirement. You change the status - and
hence color - on the element Properties 919 dialog. You set the color for each status on the Status Types
653 dialog.
Toolbox Icon
5.1.2.3.13 Screen
A Screen is used to prototype User Interface screen flow. By using UML features such as requirements,
constraints and scenarios against User Interface 738 diagram elements, you can build up a solid and detailed
understanding of user interface behavior without having to use code. This becomes an excellent means of
establishing the precise behavior the system has from a user perspective, and in conjunction with the Use
Case 375 model, defines exactly how a user gets work done.
Web pages can also be prototyped and specified rigorously using Enterprise Architect's custom interface
extensions.
The example diagram below illustrates some features of Enterprise Architect's screen modeling extensions
that support web page prototyping. By adding requirements, rules, scenarios and notes to each element, a
detailed model is built up of the form or web page, without having to resort to GUI builders or HTML.
Note:
Enterprise Architect displays UI Controls 849 as a range of special icons, depending on the stereotype used;
for example, a Control stereotyped as a «list» displays with a vertical scroll bar.
Toolbox Icon
A Test Case is a stereotyped Use Case 806 element. You might use it to extend the facilities of the Testing 1537
window, by applying element properties and capabilities to the tests of a feature represented by another
element or - more appropriately - set of elements. That is, you can define in one go - in the Testing window for
the Test Case element - the details of the tests that apply to each of several elements, instead of recording the
details separately in each element.
Within the Test Case element properties you can define test requirements and constraints, and associate the
test with test files. You can also link the element to Document Artifacts or (in the Corporate, Business and
Software Engineering, System Engineering and Ultimate editions) directly to linked documents, such as a Test
Plan.
The Test Case element enables you to give greater visibility to tests, in the Project Browser, Element List,
Model Search, Relationship Matrix, Traceability window and reports.
The Test Case element is available through the Use Case and Maintenance pages of the Toolbox.
5.1.2.3.15 Table
A Table is a stereotyped Class 811 . It is drawn with a small table icon in the upper right corner. You typically
use this element in Data Modeling 739 and Class 721 diagrams.
A Table element has a special Properties dialog, with settings for database type and the ability to set column
information and data-related operations such as triggers and indexes. When setting up a Table, make sure
you set the default database type 1014 for that Table, otherwise you do not have any data types to choose from
when creating columns.
Toolbox Icon
You can also extend the available icons by selecting other stereotypes in the UI Control Element Properties
dialog. The full set of available stereotypes is shown below; type or select the text in the Stereotype field to
create the corresponding icon.
Toolbox Icon
A similar set of web modeling elements and their relationships are also available through dedicated Web
Modeling pages in the Toolbox 399 .
What is a Connector?
A connector is a logical or functional relationship between model elements. There are several different
connector types, each having a particular purpose and syntax. Enterprise Architect supports all of the UML
connectors as well as various custom connectors. Together with the UML Elements 741 , these form the basis
of UML models.
For more information on using these connectors, consult the appropriate topic by clicking on the required
connector icon in the table below.
Notes:
· Invokes and Precedes relationships are defined by the Open Modeling Language (OML). They are
stereotyped Dependency relationships; Invokes indicates that Use Case A, at some point, causes Use
Case B to happen, whilst Precedes indicates that Use Case C must complete before Use Case D can
begin.
· An Extension relationship shows that a stereotype extends one or more metaclasses. All stereotypes must
extend either one or more Metaclasses, or another stereotype that extends a stereotype (that itself extends
a stereotype, and so on).
· A Tagged Value relationship defines a reference-type (that is, RefGUID) Tagged Value owned by the
source stereotype. The Tagged Value is named for the target role of this association, and is limited to
referencing elements with the stereotype by the association target element.
· The Application and Redefinition relationships are deprecated.
Common Connectors
Profile 906
State Diagrams
Timing Diagrams
Component Diagrams
Metamodel 1380
Sequence Diagrams
Communication Diagrams
Requirements
User Interface
Maintenance
WSDL
Object Documentation
No special connectors
Data Modeling
5.1.3.1 Aggregate
An Aggregation connector is a type of association that shows that an element contains or is composed of
other elements. It is used in Class models 721 , Package models 720 and Object models 723 to show how more
complex elements (aggregates) are built from a collection of simpler elements (component parts; for example,
a car from wheels, tires, motor and so on).
A stronger form of aggregation, known as Composite Aggregation, is used to indicate ownership of the whole
over its parts. The part can belong to only one Composite Aggregation at a time. If the composite is deleted,
all of its parts are deleted with it.
After drawing an Aggregation association, its form can be changed 855 .
Toolbox Icon
Note:
If the connector is already a Strong (Composition) connector, the context menu option changes to Set
Aggregation to Shared.
5.1.3.2 Assembly
An Assembly connector bridges a component's required interface 820 (Component1) with the provided
interface of another component (Component2), typically in a Component diagram 730 .
Toolbox Icon
5.1.3.3 Associate
An Association implies two model elements have a relationship, usually implemented as an instance variable
in one Class 811 . This connector can include named roles at each end, multiplicity, direction and constraints.
Association is the general relationship type between elements. To connect more than two elements in an
association, you can use the N-Ary Association 844 element.
When code is generated for Class diagrams 721 , Associations become instance variables in the target Class.
The relationship is also used in Package, 720 Object, 723 Communication 715 , Data Modeling 739 and
Deployment 727 diagrams.
An Associate connector can also be integrated with a Class element to form an Association Class 856 , to allow
the Associate connector to have operations and attributes that define certain types of UML relationship.
Toolbox Icon
An Association Class connector is a UML construct that enables an Associate 855 connector to have attributes
558 and operations 569 (features). This results in a hybrid relation with the characteristics of a connection and
a Class 811 . It is used to model particular types of connections in UML (see the OMG UML Specification 857 for
more details).
When you add an Association Class connection, Enterprise Architect also creates a Class that is automatically
connected to the Association. When you hide or delete the Association, the Class is also hidden or deleted.
To add an Association Class to a Class 721 or Deployment 727 diagram, click on the Association Class icon in
the Toolbox. Click and hold on the source object in the diagram while you drag the line to the target element,
then release the mouse button. Enterprise Architect draws the connector and adds the Class, then prompts
you to add the Class name. Note that the names of the Class and the connector are the same. You can also
connect a new Class to an existing Association 857 .
The following diagram illustrates an Association Class between model elements. Note the dotted line from the
Class to the Association. You cannot move or delete this line.
Note:
If you are applying a stereotype with a Shape Script 1104 to an Association Class, be aware that the Shape
Script is applied to both the Class part and the Association part. Therefore, you might have to include logic in
the shape main that tests the type of the element so that you can give separate drawing instructions for Class
and for Association. Such logic is not necessary in the:
· shape source or shape target, which are ignored by Classes, or the
· decoration shapes, which are ignored by Associate connectors.
If you dis-associate the Class from the Associate connector, both parts keep their Shape Scripts until the
stereotypes are removed.
Toolbox Icon
A Communication Path defines the path through which two DeploymentTargets are able to exchange signals
and messages. Communication Path is a specialization of Association 855 . A DeploymentTarget is the target
for a deployed Artifact 810 and can be a Node 822 , Property or InstanceSpecification 818 in a Deployment
diagram 727 .
Toolbox Icon
5.1.3.6 Compose
A Composite Aggregation 854 is used to depict an element that is made up of smaller components, typically in
a Class 721 or Package 720 diagram. A component - or part instance - can be included in a maximum of one
composition at a time. If a composition is deleted, usually all of its parts are deleted with it; however, a part
can be individually removed from a composition without having to delete the entire composition. Compositions
are transitive, asymmetric relationships and can be recursive.
See the example below.
Toolbox Icon
5.1.3.7 Connector
Connectors illustrate communication links between parts to fulfill the structure's purpose, typically in a
Composite Structure 724 diagram. Each Connector end is distinct, controlling the communication pertaining to
its connecting element. These elements can define constraints specifying this behavior. Connectors can have
multiplicity.
Toolbox Icon
The Control Flow is a connector connecting two nodes in an Activity diagram 674 . Control Flow connectors
bridge the flow between Activity nodes, by directing the flow to the target node once the source node's activity
is completed.
Control Flows and Object Flows can define a Guard and a Weight condition.
A Guard defines a condition that must be true before control passes along that activity edge. A practical
example of this is where two or more activity edges (Control Flows) exit from a Decision 765 element. Each
flow should have a Guard condition that is exclusive of the other and defines which edge is taken under what
conditions. The Control Flow Properties dialog enables you to set up Guard conditions on Control Flows and
on Object Flows.
A Weight defines the number of tokens that can flow along a Control or Object Flow connection when that
edge is traversed. Weight can also be defined on the Control Flow and Object Flow Properties dialogs.
Toolbox Icon
5.1.3.9 Delegate
A Delegate connector defines the internal assembly of a component's external Ports 826 and Interfaces 821 , on
a Component diagram 730 . Using a Delegate connector wires the internal workings of the system to the
outside world, by a delegation of the external interfaces' connections.
Toolbox Icon
5.1.3.10 Dependency
Dependency relationships are used to model a wide range of dependent relationships between model
elements in Use Case 676 , Activity 753 and Structural 719 diagrams, and even between models themselves.
You can create the Dependency from the Common 405 page of the Toolbox. The Dependencies package as
defined in UML 2.3 has many derivatives, such as Realize 889 , Deployment 862 and Use 894 . Once you create
a Dependency you can further refine its meaning by applying a specialized stereotype 862 .
Toolbox Icon
5.1.3.11 Deployment
A Deployment is a type of Dependency 861 relationship that indicates the deployment of an artifact onto a
node or executable target, typically in a Deployment diagram 727 . A Deployment can be made at type and
instance levels. At the type level, a Deployment would be made for every instance of the node. Deployment
can also be specified for an instance of a node, so that a node's instances can have varied deployed artifacts.
With composite structures modeled with nodes defined as Parts 825 , Parts can also serve as targets of a
Deployment relationship.
Toolbox Icon
5.1.3.12 Extend
An Extend connection is used to indicate that an element extends the behavior of another. Extensions are
used in Use Case models 676 to indicate that one Use Case 806 (optionally) extends the behavior of another.
An extending Use Case often expresses alternative flows.
Toolbox Icon
5.1.3.13 Generalize
A Generalize is used to indicate inheritance. Drawn from the specific classifier to a general classifier, the
generalize implication is that the source inherits the target's characteristics. It is used typically in Class 721 ,
Component 730 , Object 723 , Package 720 , Use Case 676 and Requirements 736 diagrams.
Toolbox Icon
(and )
5.1.3.14 Include
An Include connection indicates that the source element includes the functionality of the target element.
Include connections are used in Use Case models 676 to reflect that one Use Case 806 includes the behavior
of another. Use an Include relationship to avoid having the same subset of behavior in many Use Cases; this
is similar to delegation 861 used in Class models 721 .
Toolbox Icon
An Information Flow represents information items 821 or classifiers flowing between two elements in any
diagram. The connector is available from the Common page of the Toolbox and from every Quick Link menu.
You can have more than one Information Flow connector between the same two elements, identifying which
items flow between the two under differing conditions.
Example of Use
1. Open a diagram and add two elements (for example, Nodes on a Deployment diagram).
2. Click on the Information Flow connector in the Common page of the Toolbox and drag between the two
elements. The Information Items Conveyed 865 dialog displays.
3. Add the classifier or information item element(s) to the Information Flow. The diagram now resembles
the following.
4. Add another connector between the same two elements (for example, a Communication Path
connector).
5. Right-click the connector and select the Advanced | Information Flows Realized context menu option.
The Information Flows Realized 866 dialog displays.
6. Tick the checkbox against the required classifier element and click on the OK button. The combined
connector now resembles the following:
Notes:
· Once the connectors are combined, you cannot access the Information Items Conveyed dialog directly.
You add or delete information items on the connector using the Information Items Realized dialog. If you
have more than one Information Flow connector between the elements, they form part of the same
combined connector; you can again work on them separately through the Information Items Realized
dialog.
· If you have information flows in a diagram that you use as the source for a Pattern, the Information Items
Conveyed and Information Flows Realized data is not copied into the Pattern.
Toolbox Icon
Button Use to
Add Display the Select <Item> 515 dialog, from which you select the required
Information or Classifier element(s).
Note:
If you select more than one element, they are listed in one entry for the Information Flow connector.
The Information Flows Realized dialog displays all flows that can be realized on the selected connector. To
realize an Information Flow 864 on this connector, select the corresponding checkbox and click on the OK
button.
If you want to change the information items conveyed on an information flow, click on the flow text and click on
the Items button. The Information Items Conveyed 865 dialog displays, and you can add or remove items as
required. When you click on the OK button, the Information Items Realized dialog redisplays and you can
realize the selected flow or flows as above.
The Interrupt Flow is a connection used to define the two UML concepts of connectors for Exception Handler
769 and Interruptible Activity Region 781 . An Interrupt Flow is also known as an activity edge. It is typically
used in an Activity diagram 674 .
Toolbox Icon
5.1.3.17 Manifest
A Manifest relationship indicates that the Artifact 810 source embodies the target model element, typically in
Component 730 and Deployment 727 diagrams. Stereotypes 895 can be added to Enterprise Architect to
classify the type of manifestation of the model element.
Toolbox Icon
5.1.3.18 Message
Messages indicate a flow of information or transition of control between elements. Messages can be used by
Timing Diagrams 882 , Sequence Diagrams 868 and Communication Diagrams 879 (but not Interaction
Overview 717 diagrams) to reflect system behavior. If between Classes 811 or classifier instances, the
associated list of operations is available to specify the event.
Moving a Message can disrupt the organization of other features on the diagram. To avoid this, and move only
the Message, press [Alt] while you move the Message.
Toolbox Icon
Note:
Communication diagrams were known as Collaboration diagrams in UML 1.4.
Sequence diagrams 706 depict work flow or activity over time using Messages passed from element to
element. These Messages correspond in the software model to Class operations and behavior. They are
semantically similar to the Messages passed between elements in a Communication diagram, and can be of
many different types 873 .
To create a Message on a Sequence diagram, follow the steps below:
1. Access the Sequence diagram. The Interaction pages of the Toolbox display.
2. In the Interaction Relationships page, click on the Message icon, click on the source object and drag
the cursor to the destination (target) object. The Message Properties dialog displays (if not, right-click
on the Message and select the Message Properties context menu option).
Notes:
· If the Message flow is towards a Class 811 element (dropped in from a Class diagram) or a Lifeline
783 element having a classifier, and the destination Class has defined operations, you can click on
the drop-down arrow and select an appropriate operation name. The Message then reflects the
destination Class operations.
· If the available operations are not appropriate, you can click on the Operations button and define a
new operation in the target element, using the Operations 570 dialog.
· If you create a Message without making reference to the target Class operations, no new operation
is added to the target Class.
4. In the Parameters field, type any parameters that the Message has, as a comma-separated list. If
required, in the Parameter Values field type the actual value for each parameter, again as a comma-
separated list.
5. If the Message is a return message, in the Return Value field enter the returned value or type.
Note:
It is possible to depict returns from a Self Message 871 . Simply create a second Self Message at the
end of execution and select the Is Return checkbox in the Control Flow Type panel.
6. If the Message flow is from a Class element or Lifeline element with classifier that has defined attributes
, click on the drop-down arrow in the Assign to field and select an appropriate attribute name. The
Message reflects the attributes from the source Class. You cannot add further attributes to the source
Class here - if no appropriate attribute is listed, open the element Properties dialog and add the
required attribute.
Otherwise, if required, type the name of the object to assign the message flow to.
7. In the Stereotype field, type or select an optional stereotype for the connector (this is displayed on the
diagram, if entered).
8. If required, in the Alias field type an alias for the name of the Message.
Note:
On the diagram, the alias displays if the Use Alias if Available checkbox is selected on the Diagram
tab of the Diagram Properties dialog. The Alias displays instead of or as well as the Message name,
depending on the setting selected in the Alias Usage panel of the Diagram Behavior 359 page of the
Options dialog.
9. In the Condition field, type any conditions that must be true in order for the message to be sent.
10. In the Synch: field in the Control Flow Type panel, select Synchronous or Asynchronous 877 as
appropriate.
11. In the Lifecycle field, select New to create a new element at the end of the Message, or Delete to
terminate the message flow at the end of the Message. If neither case applies, leave the field at the
default of <none>.
12. If required, in the Notes field type any explanatory notes. You can format the notes using the Notes 642
toolbar at the top of the field.
13. Click on the OK button to save the Message definition.
Notes:
· You can change the timing details 874 of a message on the Timing Details dialog, and emphasize the
sequence of closely-ordered messages using General Ordering 876 .
· To toggle the numbering of messages on a Sequence diagram, select or deselect the Show Sequence
Numbering 360 checkbox on the Options dialog.
Co-Region Notation
Co-Region notation can be used as a short hand for parallel combined fragments. To access the Co-Region
submenu, right-click on a connector in a Sequence diagram and select the Co-Region context menu option.
There are four sub-options available:
· Start at head
· End at head
· Start at tail
· End at tail.
Toolbox Icon
5.1.3.18.1.1 Self-Message
A Self-Message reflects a new process or method invoked within the calling lifeline's operation. It is a
specification of a Message 867 , typically in a Sequence diagram 706 .
Self-Message as Return
It is possible to depict a return from a Self Message call.
Toolbox Icon
5.1.3.18.1.2 Call
A Call is a type of Message 868 connector that extends the level of activation from the previous Message. All
Self-Messages 871 create a new activation level, but this focus of control usually ends with the next Message
(unless activation levels 711 are manually adjusted). Self-Message Calls, as depicted above by the first Call,
indicate a nested invocation; new activation levels are added with each Call. Unlike a regular Message
between elements, a Call between elements continues the existing activation in the source element, implying
that the Call was initiated within the previous Message's activation scope.
Toolbox Icon
Option Use to
Duration Constraint Indicate the minimum and maximum limits on how long a message can last.
Duration Constraint Indicate the minimum and maximum interval between sending or receipt of the
Between Messages previous message at the current message's source Lifeline, and sending the current
Option Use to
message.
Timing Constraint Indicate the minimum and maximum time at which the message should arrive at the
target.
Timing Observation Capture the point at which the message was sent.
See the OMG UML specification (UML Superstructure Specification, v2.1.1, p. 511).
In the diagram below, on the Open Order Message:
· Duration Constraint has been set to 0...13.
On the Get Cart Message:
· Duration Constraint Between Messages has been set to d...d*3
· Duration Observation has been set to d=duration
· Timing Constraint has been set to t...t+3
· Timing Observation has been set to t=now.
By typing a value in the Duration Constraint field, you enable the Message angle to be adjusted. After
clicking on the OK button on the Timing Details dialog, click on the head of the Message connector and drag
the connector up or down to change the angle. You cannot extent the angle beyond the life line of the
connecting sequence object or create an angle of less than 5 degrees.
You can also create the Duration Constraint Between Messages line by dragging the General Ordering 876
arrow up to the point at which the previous message joins the source Lifeline for the current message. A dialog
displays on which you enter the value for the constraint. Having created the line, you can move it to any point
within half way along the current message and half way along the previous message, to avoid overlap with
other message timing details. You can edit or delete the value either through the Timing Details dialog or by
right-clicking on the line itself and selecting the appropriate context menu option.
Message 1 is earlier than Message 2. However, in a complex diagram, or when representing finely timed
operations or parallel processing, this might not be apparent. You can reinforce the sequence using a General
Ordering arrow.
Click on the Message arrow. A small arrow displays at the source anchor point.
Click on this arrow and drag it to the start of the next Message in sequence (Message 2 in the example). The
General Ordering arrow displays, indicating that the second Message follows the first.
The General Ordering arrow is exaggerated in the above figure. You would normally have the arrow running
almost horizontal across the diagram.
You can have more than one General Ordering arrow issuing from or targeting a Message, if necessary.
Note:
Return Value, Assign To and the Operations button, which are not applicable to asynchronous signals, are
disabled.
The Operations button changes to a Signal button, which you click on to associate the asynchronous signal
message with a Signal element in the model. You can type the arguments corresponding to the Signal
attributes into the Argument(s) field.
When you click on the Signal button, the Select *Signal dialog displays, through which you locate and select
the required Signal element. (The Select *Signal dialog is a variation of the Select <Item> 515 dialog.)
1
2, 2.1, 2.2, 2.3
3.
This would indicate the single sequence of events 2.1, 2.2 and 2.3 occurs within an operation initiated by
event 2. This is the default pattern applied by Enterprise architect
Alternatively, the sequence could be:
1
2, 2.1, 2.1.1, 2.1.1.1
2.2, 2.2.1, 2.2.1.1
3
This would indicate that two sequences of events can be initiated by event 2, and 2.1 and 2.2 are separate
sequences, not consecutive events in one sequence. You can set the sequence pattern and order 880 using
the Message Properties dialog and the Sequence Communications dialog.
If the target object is a Class or has its instance classifier set, the drop-down list of possible message names
2. To make the selected Message the start of a new group, select the Start New Group checkbox.
3. If required, in the Notes field, type an explanatory note. You can format the text using the Notes 642
toolbar at the top of the field.
4. Click on the OK button to save changes.
Sequence Messages
In larger and more complex diagrams, you might have to use deeper levels of Messages in a group; for
example, 1, 1.2, 1.2.1, 1.2.1.1. You might also have to change the sequence of Messages, making Message
1.3, for example, into Message 1.1.
To change the sequence or level of Messages, follow the steps below:
1. Either:
· Select the Diagram | Sequence Messages menu option
· Click on the diagram background and select the Sequence Communication Messages context
menu option or
· Right-click on a Message and select the Sequence Communication Messages context menu
option.
The Communication Messages dialog displays.
2. Click on the Message to adjust and, at the bottom of the dialog, click on the:
· 'Up Hand' or 'Down Hand' buttons to move the Message up or down the sequence (e.g. Message 1.2
to Message 1.1 or 1.3)
· 'Left Hand' or 'Right Hand' buttons to move the Message up or down a level (e.g. Message 1.2.1 to
Message 1.2 or Message 1.2.1.1).
3. Repeat step 2 until the Message sequence and levels match your requirements. You might have to
adjust other Message numbers (in group, sequence or level) to accommodate the changes you have
made.
4. Click on the OK button to save changes.
Note:
Communication diagrams were known as Collaboration diagrams in UML 1.4.
Messages are the communication links between Lifelines 783 in a Timing diagram 690 . In the case of a
Timeline, a Message is a connection between two Timeline objects.
See UML Superstructure Specification, v2.1.1, figures 14.30 and 14.31, p. 520.
Toolbox Icon
The dialog consists of a set of transition points. Each transition point can be defined with the following
properties:
Property Description
These are set by default when a Message is created by dragging the cursor between two Lifelines.
Property Description
Duration Observation Indicates the interval of a Lifeline at a particular state, begun from a
message receipt.
Transition To The state in the target Lifeline that the Message points to.
The following diagram shows the Message configured by the above dialog snapshot.
See UML Superstructure Specification, v2.1.1, figures 14.30 and 14.31, p. 520.
Note:
You can move the source end of the Message freely along the source timeline. However, the target end
(arrow head) must attach to a transition. If you create a new Message and do not give it a target transition, it
automatically finds and attaches to the nearest transition. If you move the target end, it drags the transition
with it.
5.1.3.19 Nesting
The Nesting Connector is an alternative graphical notation for expressing containment or nesting of elements
within other elements. It is most appropriately used for displaying Package 825 nesting in a Package diagram
720 .
Toolbox Icon
5.1.3.20 Notelink
A Notelink connector connects a Note 785 to one or more other elements of any other type.
Both Note and Notelink are available in any category of the Toolbox, in the Common 405 page. You can also
select them from the UML Elements 83 toolbar.
Toolbox Icon
Object Flows are used in Activity diagrams 674 and State Machine diagrams 678 . When used in an Activity
diagram, an Object Flow connects two elements, with specific data passing through it. To view sample Activity
diagrams using Object Flows, see the Object Flows in Activity Diagrams 886 topic.
In State Machine diagrams, an Object Flow is a specification of a state flow or transition. It implies the passing
of an Object 823 instance between elements at run-time.
You can insert an Object Flow from the State or Activity pages of the Toolbox, or from the drop-down list of all
relationships located in the header toolbar. You can also modify a transition connection to an Object Flow by
selecting the ObjectFlow checkbox on the connection Properties dialog.
See the Control Flow 860 topic for information on setting up Guards and Weights on Object Flows.
Toolbox Icon
5.1.3.22 Occurrence
An Occurrence relationship indicates that a Collaboration 814 represents a classifier, in a Composite Structure
diagram 724 . An Occurrence connector is drawn from the Collaboration to the classifier.
Toolbox Icon
A Package Import relationship is drawn from a source Package 825 to a Package whose contents are to be
imported. Private members of a target Package cannot be imported. The relationship is typically used in a
Package diagram 720 .
Toolbox Icon
In a Package diagram 720 , a Package Merge indicates a relationship between two Packages 825 whereby the
contents of the target Package are merged with those of the source Package. Private contents of a target
Package are not merged. The applicability of a Package Merge addresses any situation where multiple
packages contain identically-named elements, representing the same thing. A Package Merge merges all
matching elements across its merged Packages, along with their relationships and behaviors. Note that a
Package Merge essentially performs generalizations and redefinitions of all matching elements, but the
merged Packages and their independent element representations still exist and are not affected.
The Package Merge serves a graphical purpose in Enterprise Architect, but creates an ordered Package
relationship applied to related Packages (which can be seen under the Link tab in the Package's Properties
dialog). Such relationships can be reflected in XMI exports or Enterprise Architect Automation Interface scripts
for code generation or other Model Driven Architecture (MDA) interests.
Package Merge relationships are useful to reflect situations where existing architectures contain functionalities
involving like elements, which are merged in a developing architecture. Merging doesn't affect the merged
objects, and supports the common situation of product progression.
Toolbox Icon
5.1.3.25 Realize
A source object implements or Realizes its destination object. Realize connectors are used in a Use Case 676 ,
Component 730 or Requirements 736 diagram to express traceability 1245 and completeness in the model. A
business process or Requirement 846 is realized by one or more Use Cases 806 , which in turn are realized by
some Classes 811 , which in turn are realized by a Component 816 , and so on. Mapping Requirements, Classes
and such across the design of your system, up through the levels of modeling abstraction, ensures the big
picture of your system remembers and reflects all the little pictures and details that constrain and define it.
Toolbox Icon
(and )
5.1.3.26 Recursion
A Recursion is a type of Message 868 used in Sequence diagrams 706 to indicate a recursive function.
Toolbox Icon
Role Binding is the mapping between a Collaboration Occurrence's 815 internal roles and the respective Parts
825 required to implement a specific situation, typically in a Composite Structure diagram 724 . The associated
Parts can have properties defined to enable the binding to occur, and the Collaboration to take place.
A Role Binding connector is drawn between a Collaboration 814 and the classifier's fulfilling roles, with the
Collaboration's internal binding roles labeled on the classifier end of the connector.
Toolbox Icon
5.1.3.28 Represents
The Represents connector indicates that a Collaboration 814 is used in a classifier, typically in a Composite
Structure diagram 724 . The connector is drawn from the Collaboration to its owning classifier.
Toolbox Icon
5.1.3.29 Representation
The Representation relationship is a specialization of a Dependency 861 , connecting Information Item 821
elements that represent the same idea across models, typically in an Analysis diagram 733 . For example,
Bonus and Salary are both a representation of the Information Item Wage.
Toolbox Icon
5.1.3.30 Trace
The Trace relationship is a specialization of a Dependency 861 , connecting model elements or sets of
elements that represent the same concept across models. Traces are often used to track requirements and
model changes, typically in a Traceability 1250 diagram, or in a Class 721 , Use Case 676 , Object 723 or
Composite Structure 724 diagram.
As changes can occur in both directions, the order of this Dependency is usually ignored. The relationship's
properties can specify the trace mapping, but the trace is usually bi-directional, informal and rarely
computable.
Toolbox Icon
5.1.3.31 Transition
A Transition defines the logical movement from one State 789 to another, in a State Machine diagram 678 . The
Transition can be controlled through the following connector Properties dialog:
Option Use to
Guard Type in an expression that is evaluated after an Event is dispatched, but before the
corresponding Transition is triggered. If the guard is true at that time, the Transition
is enabled; otherwise, it is disabled.
Effect is a Behavior Convert the Effect field from a free-text field to the definition of a specific Activity or
behavior.
Enterprise Architect displays the Select <Item> 515 dialog to prompt you to select
the Activity or behavior element from the model.
Effect Either:
· Type a description of the effect of the Transition, or
· If you have selected the Effect is a Behavior check box, select an Activity or
behavior to be performed during the Transition (to change this subsequently,
click on the [ ... ] button to redisplay the Select <Item> dialog).
Trigger
Option Use to
Note:
Code generation for State Machines currently supports Change and Time trigger
events only, and expects a specification value.
Add Select triggers from the model using the Select Trigger 515 dialog.
Note:
To add multiple triggers, press [Ctrl] while selecting each trigger.
Note:
Fork and Join segments can have neither triggers nor guards.
Toolbox Icon
5.1.3.32 Use
A Use relationship indicates that one element requires another to perform some interaction. The Use (or
Usage) relationship does not specify how the target supplier is used, other than that the source client uses it in
definition or implementation. A Use relationship is a sub-typed Dependency 861 relationship.
You typically use the Use relationship in Use Case diagrams 676 to model how Actors 757 use system
functionality (Use Cases 806 ), or to illustrate usage dependencies between Classes 811 or Components 816 .
Notes:
· It is more usual (and correct UML) to have an Associate connector 855 between an Actor and a Use Case.
· To depict a usage dependency on a Class 721 or Component 730 diagram, draw a Dependency connector.
Right-click on the Dependency, and select the Dependency Stereotypes | Use context menu option.
Toolbox Icon
In some cases the stereotype causes the element to be drawn differently 900 , as below:
A metafile can be associated with the applied stereotype, as in the example below:
New, or customized, stereotypes can be created. Stereotypes can also be associated with new shapes, using
either metafiles (image files) and colors or Shape Scripts, to apply non-UML shapes to elements and
connectors. For further information on customizing stereotypes 1093 and applying Shape Scripts 1147 , see the
MDG Technology SDK 1092 topic.
To apply a stereotype to an element using the Properties window, select any of the following steps:
3. Select the browse other stereotypes... option in the drop-down list to use the Stereotype Selector 897
dialog.
2. Click on the Profile drop-down arrow and choose the required stereotype source.
3. In the Stereotypes list, enable or disable the required stereotype by selecting or deselecting the
checkbox against it.
4. Click on the OK button to apply the selection.
You can also define a new stereotype to apply to the required construct by clicking on the New... button and
entering the name of the new stereotype when prompted.
Use Stereotype Icons enabled: displays icons for those stereotypes with icons defined. Stereotypes without
icons defined are still displayed in the comma-separated string.
«access» Permission
«become» Flow
«call» Usage
«copy» Flow
«create» Message
«derive» Abstraction
«destroy» Message
«document» Abstraction
«executable» Abstraction
«facade» Package
«file» Abstraction
«framework» Package
«friend» Permission
«global» AssociationEnd
«implementation» Class
«implementation» Generalization
«import» Permission
«instantiate» Usage
«invariant» Constraint
«library» Abstraction
«local» AssociationEnd
«metaclass» Class
«parameter» AssociationEnd
«postcondition» Constraint
«powertype» Class
«precondition» Constraint
«process» Classifier
«refine» Abstraction
«requirement» Comment
«responsibility» Comment
«self» AssociationEnd
«send» Usage
«stub» Package
«table» Abstraction
«thread» Classifier
«trace» Abstraction
«type» Class
«utility» Classifier
What is a Pattern?
Patterns are a group of collaborating Objects/Classes that can be abstracted from a general set of modeling
scenarios. They are also known as parameterized collaborations.
Patterns are an excellent means of achieving re-use and building in robustness. As patterns are discovered in
any new project, the basic pattern template from previous engagements can be re-used with the appropriate
variable names modified for the current project.
Patterns generally describe how to solve an abstract problem, and it is the task of the pattern user to modify
the pattern elements to meet the demands of the current engagement.
Before using a pattern it must first be created 902 as a standard UML diagram and then saved as an XML
pattern file. This XML file can then be imported 904 as a UML resource that can be used 904 in any model.
Notes:
· In the Corporate, Business and Software Engineering, System Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Manage Diagrams 198 permission to save a
diagram as a Pattern.
· If your source diagram contains information flows, the Information Items Conveyed and Information Flows
Realized data is not copied into the Pattern.
Notes:
· If your Pattern includes an Object element, you would use Instance to set the classifier of the Object
to one of the Classes in the diagram onto which you are dropping the Pattern.
· If your Pattern includes a Property (Port or Part) you would use Type to set the type of the Property
to one of the Classes in the diagram onto which you are dropping the Pattern.
7. To change the name of one of the elements, double-click on the element to display the Edit dialog.
From this dialog you can also add comments detailing the element's purpose.
8. Click on the OK button twice to save the Pattern. Once saved you can load it 904 into Enterprise
Architect as a Pattern in the Resources 667 window.
Panel Use to
Preview Display a preview of the Pattern; click on the Preview link to open a view of the
Pattern and drag the sides into as large a picture as you require.
Element Notes Display the comments that describe the element in the Pattern. Highlight an
element in the Pattern Elements panel to view the notes.
5. Once the appropriate selections have been made, click on the OK button to import the Pattern into the
model, recreating the original diagram with new GUIDs.
Note:
To control the appearance of elements, you can also set a default element template. For more information,
see the Set Element Templates Package 542 topic.
Items in the Profile represent stereotypes. These can be applied to UML elements in the following ways:
· Stereotypes that apply to elements such as Classes and interfaces can be dragged directly from the
Resources window to the current diagram, automatically creating a stereotyped element. Alternatively, they
can be dragged onto existing elements, automatically applying them to the element.
· Stereotypes that apply to attributes can be drag-and-dropped onto a host element (such as a Class); a
stereotyped attribute is automatically added to the element's feature list.
· Stereotypes that apply to operations are like those that apply to attributes; drag-and-drop onto a host
element to add the stereotyped operation.
· Stereotypes that apply to connectors such as associations, generalizations, messages and dependencies
are added by selecting them in the Project Browser, then clicking on the start element in a diagram and
dragging to the end element (in the same manner as adding normal connectors). A stereotyped connector
is added.
· Stereotypes that apply to association ends can be added by dragging the connector end element over the
end of an Association in the diagram.
To get you started, some Profiles are supplied on the Sparx Systems website at www.sparxsystems.com/
uml_profiles.htm. You can download these and import them into Enterprise Architect. Over time Sparx
Systems intend to expand the range of Profiles, the content of each Profile and the degree of customization
possible in each Profile.
You can also create your own Profiles to describe modeling scenarios specific to your development
environment. For more information see the MDG Technology SDK 1092 topic.
A Technology Developer might create a new Profile, which they can save (export) to disk for future UML
models. The processes of creating 1095 and exporting 1106 a new UML Profile are described in the MDG
Technology SDK 1092 topic.
Note:
This topic describes importing a stand-alone Profile. You can also embed Profiles in an MDG Technology 1118
and import 1146 the Technology file into the Enterprise Architect installation directory.
To import a Profile you must have a suitable Profile XML file, such as the Profiles supplied on the Sparx
Systems website at www.sparxsystems.com/uml_profiles.htm. If the Profile includes references to any
metafiles, they should be in the same directory as the Profile XML file.
Import a Profile
To import a Profile, follow the steps below:
1. Open the Resources window (View | Other Project Tools | Resources).
2. Right-click on the UML Profiles tree node and select the Import Profile context menu option. The
Import UML Profile dialog displays.
3. Locate the XML Profile file to import using the [ ... ] (Browse) button.
4. Set the required import option checkboxes for all stereotypes defined in the Profile; you can select:
· Element Size - to import the element size attributes
· Color and Appearance - to import the color (background, border and font) and appearance (border
thickness) attributes
· Alternate Image - to import the metafile image
· Code Templates - to import the code templates if they exist
· Overwrite Existing Templates - to overwrite any existing code templates defined in the current
project.
5. Click on the Import button. The Profile is added to the UML Profiles folder.
If the Profile already exists, Enterprise Architect prompts you to overwrite the existing version and import the
new one (or cancel). Once the import is complete, the Profile is ready to use 909 .
To add a profile-based attribute or operation to a diagram, click on it in either the Toolbox page or the
Resources window, and drag it onto the host element on the diagram. The system prompts you to enter a
name for the feature.
Tagged Values that have default values are automatically set and displayed in the element tags section, if
applicable. When you select the element, the Tagged Values window displays all the associated tags,
including ones that have no value set. Also note that Tagged Values in the Profile that have a Values section
(for example, values="element | attribute | both" default="both") enable you to select the non-default values
from a drop-down list. (See the enum Tagged Value Type in the Predefined Structured Types 1166 topic.)
Where no Value list exists, the tag accepts free text.
Note:
The diagram does not necessarily have to contain profiled elements. The function operates from the
Toolbox. However, you might prefer to see the immediate effect of the synchronization on element
properties and Tagged Values, by opening an appropriate diagram at the start.
2. Right-click on the element profile in the Toolbox (for example, the BPMN 1.1 Activity element). The
Toolbox context menu displays.
3. Click on the Synchronize Stereotype menu option. The Synch Profiled Elements dialog displays.
4. Click on the OK button to proceed. The Actions list is populated with the items that have been modified
and the changes that were made.
You can review any changes by displaying the element Properties dialog and by opening the Tagged Values
window and clicking on an appropriate profiled element.
You can also quickly synchronize the tags and constraints of a single element in a diagram by dragging the
updated profile element from the Toolbox page onto the element in the diagram. Select the Apply
«stereotype» context menu option.
4. Click on the OK button to proceed. The Actions list is populated with the items that have been modified
and the changes that were made.
"associationEnd" AssociationEnd
Stereotype Definitions
The header is followed by one or more Stereotype definitions; for example:
<!-- «XSDComplexType» -->
<Stereotype name="XSDComplexType" notes="ComplexType definition generated in XML Schema">
<AppliesTo>
<Apply type="class"/>
</AppliesTo>
<TaggedValues>
<Tag name="mixed" description="URI to unique target namespace"/>
<Tag name="modelGroup" description="Default model group used when generating complexType definitions for this
Schema" values="all | sequence | choice" default="choice"/>
<Tag name="attributeMapping" description="Default for generating UML attributes as elements, attributes or both
within complexTypes" values="element | attribute| both" default="both"/>
<Tag name="roleMapping" description="Prefix associated with namespace"/>
<Tag name="memberNames" description="Schema version"/>
</TaggedValues>
<Constraints>
<Constraint name="" type="" notes=""/>
</Constraints>
</Stereotype>
Note the specification of Stereotype name and notes. Also note the use of Tagged Values to set properties for
the Profile element. The Tagged Values can have a default value, can be empty and can specify enableable
values. Tagged Values are edited in the Properties window of an element, method, attribute or connector.
You can also specify the default size, default comment and Metafile for drawing an element; see the fragment
below:
<Stereotype name="Router" cx="130" cy="100" notes="" metafile="router.emf">
In the above example, the metafile shape for this element is specified as 'router.emf'; when you load this Profile,
the .emf file must be in the same directory as the Profile, otherwise the load fails.
Also note how to specify a default comment for an element. All white space between lines is ignored. To force
a line break, use the \n character. To force tabs, use \t.
<Comment>
Some text here about how this works\n\t
with comments being imported from the XML description
in one long row.
</Comment>
The example above would import like this:
Some text here about how this works
with comments being imported from the XML description in one long row.
metafile Yes Filename of associated metafile; this MUST be in the same directory
as the Profile XML.
description Yes A description of the tag; appears in the tag tab and for elements in
the Properties window setting notes.
values Yes List of possible values; values separated by ' | ' (<space>|<space>);
for example, 'true | false'. For elements, populates the drop combo in
the tag section of the docked Properties window.
type Yes Constraint type (for example, 'pre' for precondition, 'post' for
postcondition).
</AppliesTo>
<TaggedValues>
<Tag name="indexed" description="indicates if indexed or not" values="true
| false" default="true"/>
</TaggedValues>
<Constraints>
<Constraint name="constraint1" type="pre" opType="pre" notes="My Notes"/
>
<Constraint name="constraint2" type="pre" opType="post" notes="My
Notes"/>
</Constraints>
</Stereotype>
<!-- «Attribute» -->
<Stereotype name="attname" notes="">
<AppliesTo>
<Apply type="attribute"/>
</AppliesTo>
<Constraints>
<Constraint name="constraint1" type="pre" notes="My Notes"/>
</Constraints>
</Stereotype>
<!-- «Association» -->
<Stereotype name="assocname" notes="">
<AppliesTo>
<Apply type="association"/>
</AppliesTo>
<Constraints>
<Constraint name="constraint1" type="pre" notes="My Notes"/>
</Constraints>
</Stereotype>
</Stereotypes>
</Content>
</UMLProfile>
Enterprise Architect provides specific modeling tools for a range of specialized model types, supporting:
· Requirements modeling 917
· Business modeling 930
· Business Rule modeling 934
· BPMN modeling 952
· BPEL modeling 958
· Systems engineering 986 (with SysML)
· Data modeling 1011
· XML Schema modeling (XSD) 1039
· Web Service modeling (WSDL) 1049
· SPEM 1061
· Various other modeling languages such as Archimate, SoaML and ICONIX, as MDG Technologies 1066
5.2.1 Requirements
Introduction
This section describes the Enterprise Architect Requirements Management facilities, and discusses:
· What requirements are
· How requirements are generated and organized
· How Enterprise Architect supports and simplifies Requirements Management.
Additional discussion of the management of requirements in Enterprise Architect can be found in the
Requirements Management with Enterprise Architect white paper on the Sparx Systems website.
What is a Requirement?
Requirements are essentially what the system, application or business process is required to do. A
requirement can be broad and high level, defining - for example - a need for a process to update a particular
database. A requirement can also be more specialized and detailed, recording the expectation that - for
example - a system call must always be acknowledged by return. Detailed requirements can be organized into
a hierarchy culminating in a high-level requirement, so that satisfying each of the detailed requirements results
in meeting the higher-level requirements and ultimately the top-level requirement. This hierarchical structure
helps manage the complexity of large systems with thousands of requirements and many processes being
developed to implement the requirements.
Gathering Requirements
Gathering requirements is typically the first step in developing a solution, be it for developing a system or a
process. Requirements are gathered from all parties expected to use, maintain or benefit from the solution,
and are organized into groups, functional areas and hierarchies as necessary. They can be transcribed into a
spreadsheet or a requirements gathering or management tool, or they can be created in an integrated
modeling tool such as Enterprise Architect.
Note:
All of these features are illustrated by examples in the EAExample.eap model, provided as part of your
Enterprise Architect installation in the Enterprise Architect Program Files directory:
..\Program Files\Sparx Systems\EA
Notes:
· The Requirement element name can be simply descriptive text, with or without a manually-typed reference
number. However, as requirements often have to have a unique reference for external checking, you can
use the Enterprise Architect auto-numbering 525 facility to automatically apply a numbering system with or
without prefixes and suffixes. Set the element type to Requirement.
· External Requirement elements can be displayed with or without an identifying E in the top right corner. To
toggle display of this letter, select or deselect the Show stereotype icon for requirements checkbox on
the Options dialog, Objects 362 page (Tools | Options | Objects).
· Requirement elements can be color coded to indicate their status; see the Color Code External
Requirements 920 topic.
Enterprise Architect creates a Requirement element in the current diagram and in the diagram's parent
package.
Note:
In Requirement Management tools and texts, the characteristics of a requirement are commonly called
attributes. However, in UML the term attribute 558 refers to a different type of feature, and the requirement
characteristics are defined as properties. In this Enterprise Architect documentation, the term properties is
used.
Requirement properties differ slightly from the properties of other elements 481 ; they are mainly focused on the
type, status, difficulty and priority of the Requirement. The Notes field is also important, as it describes
precisely what requirement the element represents.
To edit the properties of a Requirement , double-click on the element in a diagram or right-click on it in the
Project Browser and select the Properties context menu option. The Requirement Properties dialog displays.
If necessary, edit the name (Short Description) of the Requirement element, then type a detailed explanation
of the requirement in the Notes field at the bottom of the dialog. Set the Status, Difficulty, Priority and Type,
and other parameters as required.
You can add and delete Status field values, and assign a color to each value to indicate the status of the
Requirement on a diagram; for more information, see the Color Code External Requirements 920 topic.
When you have finished entering the Requirement properties, click on the OK button.
In a project, it might be necessary to define more information in a requirement than is provided by the
standard properties. For more information on extending the requirement properties, see the Extend
Requirement Properties 920 topic.
You can change these colors, and add or remove status types, using the Status Types 653 dialog.
If the appropriate predefined Tagged Value Type does not exist, a Technology Developer can create it to add
to the structured tags 1168 , reference tags 1170 , or customized tags 1171 collections.
Connect On Diagram
Relationships can be created on a diagram by clicking on the appropriate connector icon from the
Requirement 418 and Common 405 pages of the Toolbox, clicking on the source (originating) element, and
dragging to the target element.
If you are connecting elements in different packages, you can drag elements from the Project Browser onto a
common diagram and set up the relationships there. Alternatively, you can quickly generate a Realize
connector by dragging an existing Requirement element from the Project Browser over the element that
implements the Requirement. Enterprise Architect interprets this as a request to create the Realize connector
and does so automatically. The Requirement element is not added to the diagram. However, if you
subsequently drag the Requirement onto the diagram the connector is already in place.
Represent Requirements
In Enterprise Architect, a requirement can be modeled as an:
· External Requirement 846 - an expectation of the system or process, what the system or process must
provide, modeled as an element; for example, a business requirement or a stakeholder request -
Requirements at this level have their own properties and are reported on separately in RTF reports
· Internal requirement 925 – a responsibility of an existing element, what the element must do or accomplish,
defined as a property of the element.
Requirements Management in Enterprise Architect is primarily concerned with external Requirement elements
and the elements that implement or realize them.
It is quite usual to develop a package of many hundreds of Requirement elements, arranged individually and
in hierarchies of varying complexity. In the Project Browser you can use the Turn On Level Numbering 1215
facility to highlight the order and arrangement of the Requirements quickly and easily. The following illustration
shows a number of Requirements in a package, where Level Numbering makes the order and arrangement
clear:
If elements are added, moved or deleted from the package, the numbering automatically adjusts.
Note:
This numbering can also be applied in the RTF report generator 1578 using the LevelNumber field in the
Element section – {Element.LevelNumber}.
Use Cases
Requirements are implemented (realized) by model elements such as Use Cases, Classes, Interfaces and
Components. There are many ways to trace 1245 either the Requirement for the feature or service modeled by
the elements, or the elements that develop the requirement, most visibly in Traceability 1250 diagrams that
depict the Requirements and the model elements connected 921 by Realize relationships. The Realize
connector enables members of the project team to keep design objectives and development in tandem, and
the development path and purpose clear.
The more usual realization relationship is between a Requirement and a Use Case. A Requirement can be
realized by one or more Use Cases, and a Use Case can realize one or more Requirements.
Whilst a Requirement defines a condition that must be met, the Use Case 806 is the key to defining and
visualizing how that condition is met. A Use Case diagram 676 depicts the logical grouping of actions,
processes and components to achieve a required result, and through the use of Actor 757 elements also
defines the user and/or system roles participating in the process.
Each Use Case (as a composite element 837 ) can contain a combination of child diagrams that define in
greater detail how a particular activity or facility might be implemented - such diagrams include Sequence 706 ,
Communication 715 , Activity 674 , State Machine 678 and Business Rule Flow 939 diagrams. The actual
implementation of each Use Case is realized by Class, Component and Interface elements organized in their
own diagrams. These realizations can also be captured and viewed in Traceability diagrams, depicting the full
development pathway from initial requirement through to testing and production.
Internal requirements form the functional requirements of the system to be built. The meaning of the
requirement can vary depending on which element is the host; for example, a business process requirement
might mean something different to a Use Case requirement, which again might mean something different to a
Class requirement. In the example above, an internal responsibility to enable the user to login to the system
has been defined for the Login Use Case. This is a responsibility of the Use Case - an action it is responsible
for carrying out - and it applies only to this Use Case.
The significant parameters (or, in Requirement Management terms, attributes) are the Type, Status, Difficulty
and Priority. Whilst you can provide a detailed description of the responsibility in the Notes field, there is more
scope in the name (Requirement field) to define the nature of the responsibility. An additional field, Stability,
indicates the probability of the requirement changing; high stability means a low probability of change.
The example Use Case above also has connections to two external requirements, which are system functions
that the Use Case implements either in full or in part. You can convert 926 an internal responsibility into an
external requirement.
You can also create internal responsibilities for an element using the Scenarios & Requirements 514 window.
A responsibility created in the window displays in the element Properties dialog, and vice versa.
Procedure
If you have defined an internal requirement for an element and want to move it out (where it can perhaps be
implemented by multiple elements), follow the steps below:
1. Double-click on the element in a diagram or in the Project Browser to open the element Properties
dialog.
2. Click on the Requirements tab.
3. Locate and highlight the requirement.
4. Click on the Move External button. The Browse Project dialog displays.
Notice the requirement is now marked external and the dialog fields grayed out. To edit its details 919 , double-
click on the requirement.
Also notice that a Requirement element has been created in the target package.
This display shows the position of the Store User Details Requirement element in the model, and how it
relates to other Requirements (Project Browser); the default characteristics of the Requirement (Element List)
and the extended characteristics (Tagged Values window), and a detailed description of the Requirement (
Notes window). You can configure some of these windows to display more information, and/or use other
windows and facilities.
Brief descriptions of appropriate screens and their use are provided in the following topics:
· View Requirements 928
· Trace Use of Requirements 928
· Manage Requirement Changes 928
and Issues (a risk factor that might affect satisfying the requirement). They also include Tasks, which
record work items associated with the element.
Maintenance items are very specific, but if there is a possibility of an item having a wider impact on other
elements or the system in general, you can translate the item 1561 into a Change or Issue element, or any other
type of element that best identifies the problem and its solution.
Model Views
Model Views 1222 are very useful for trapping changes and issues in the model, especially on Requirements.
You can set up searches to identify the appearance of new Change or Issue elements, or to detect changes in
the properties of the Requirement elements themselves.
Baselines
A Baseline 280 is a snapshot of a package or a model branch at a particular point in time, which you
determine. You can use the Baseline as a distribution mechanism for changes to the model, but the main use
is to enable you to compare the current model with a previous stage, and detect what changes have been
made since the Baseline was captured. If you do not want a change to remain in the model, you can roll the
affected elements back to the state they had in the Baseline. Therefore, if you maintain your requirements in a
specific package or branch, you can capture Baselines of the package and ensure that changes conform to
your change management process or, if not, can be reversed.
Auditing
The Auditing 270 facility enables you to capture any changes made to your model within the selection criteria
that you define. You can, for example, configure the Auditing facility to specifically record changes to
Requirement 273 elements. As auditing is continuously monitoring, you can detect changes as they are made,
and verify that they are acceptable. You can also store the log of changes, and review it later on. Note that you
cannot reverse the changes automatically, as you can with Baselines. You might therefore use Auditing to
identify changes that you will investigate more fully and - if necessary - reverse in a Baseline comparison.
An Example
The example below demonstrates the kind of model that can be built up to represent a business process. In
this model, the goal of the business process is to take customer orders and to ship those orders out. A user
starts the process with an inquiry, which leads to the involvement of the Book Catalogue, Shopping Cart, on-
line pages and warehouse inventory. The output of significance to the business is a customer order.
The second half of the process model is to respond to a customer order and ship the required items. The
second process involves the warehouse inventory and shipping company, and completes when an order is
delivered to the customer.
See Also
· Business Modeling and Business Interaction Diagrams 739
· Events 932
· Outputs 932
· Goals 933
· A Complete Business Process 933
The process notation 846 implies a flow of activities from left to right. Typically an Event 932 element is placed
to the left of the process and the output to the right. To specifically notate the internal activities, Activity
elements 753 can be placed inside the process element.
'used up' as far as the process of recording actual train times is concerned.
The notation to illustrate information and resources is shown below.
A Supply connector indicates that the information or object linked to the process is not used up in the
processing phase. For example, order templates can be used over and over to provide new orders of a certain
style; the templates are not altered or exhausted as part of this activity.
An Input connector indicates that the attached object or resource is consumed in the processing procedure.
As an example, as customer orders are processed they are completed and signed off, and typically are used
only once per unique resource (order).
5.2.2.1.3 Events
An event 839 is the receipt of some object, a time or date reached, a notification or some other trigger that
initiates the business process. The event might be consumed and transformed (for example a customer order)
or simply act as a catalyst (for example, nightly batch job).
5.2.2.1.4 Outputs
A business process typically produces one or more outputs of value to the business, either for internal use or
to satisfy external requirements. An output might be a physical object (such as a report or invoice), a
transformation of raw resources into a new arrangement (a daily schedule or roster) or an overall business
result such as completing a customer order.
An output of one business process might feed into another process, either as a requested item or a trigger to
initiate new activities.
An Output connector indicates that the business process produces some object (either physical or logical) that
is of value to the organization, either as an externally visible item or as an internal product (possibly feeding
another process).
5.2.2.1.5 Goals
A business process has some well defined goal. This is the reason the organization does this work, and
should be defined in terms of the benefits this process has for the organization as a whole and in satisfying the
business requirements.
A Goal connector indicates that the attached object to the business process describes the goal of the process.
A goal is the business justification for performing the activity.
To model Business Rules in Enterprise Architect, you work through the following steps:
· Create a Rule model 935 to define business rules.
· Create a Business Domain model 938 , which provides the business vocabulary for defining business rules.
· Create a 939 Rule Flow 939 model 939 , which groups the rules for a specific task under a Rule Task, and
provides the order in which the business rules are executed.
· Model the rules in the Rule Composer 945 , which enables the rules to be transformed to a logical level of
detail.
· Validate 950 the rules in the Rule Composer.
· Generate code for the business rules 951 using Enterprise Architect's general code generation methods.
These steps are represented graphically in the following flow:
option, or
· Right-click on a package and select the Add | Add a New Model using Wizard context menu
option.
The Select Model(s) dialog displays.
2. In the Select From field, click on the drop-down arrow and select Business Rule Model. Alternatively,
if it is listed in the Technology panel, select the Business Rule Model item.
3. In the Name panel, select the checkbox next to the Business Rule Model icon.
4. Click on the OK button.
The Business Rules Model diagram, shown below, encapsulates the components of the Business Rules
model.
2. Drag and drop a Rule Task element (Eligibility in the example) from the Rule Flow Activity diagram
package onto the Rule Model diagram.
3. Drag as many Business Rule elements as necessary from the Toolbox (or Project Browser if they exist
already) onto the diagram. You type the rule as the element name here, then define the parameters of
the rules using the Rule Composer 945 .
4. Create a Dependency relationship between each Business Rule element and the Rule Task element.
Note:
However, when you bring the rule into the Rule Composer, it automatically creates the Dependency
relationship anyway.
After you have modeled rules for all the Rule Task elements in the Rule Flow diagram, the Business Domain
model is ready for code transformation 951 . The code templates for generating technology-specific rule code
work hand-in-hand with the EASL code templates 1193 to generate the code for the Rule Flow diagram.
Note:
When you create Classes in the Business Domain model, select the correct language for code generation to
ensure that the correct data type is set for attributes and operation parameters.
Business Rules code generation is supported for the following languages:
· C++
· C#
· Java
· VB.Net.
The following diagram shows an example Business Domain model, for a Car Rental system.
In the example Business Domain model, the Classes Rent, Customer, Car and Application, together with their
attributes and operations, provide the terms for the business vocabulary. The Class Rental System processes
the rules. To make Rental System process the rules, you add a Rule Flow Activity 939 as a behavior for this
Class.
When you create a Rule Flow behavior (Activity) under a Class you can model the rules as Rule Tasks
(Actions). When code is generated the rule flow behavior is rendered as a method inside the corresponding
Class.
Alternatively, if you have existing operations in the Class that already suit the purpose, you can model
business rules in those operations 943 . When code is generated for the Class the rules logic is generated as
the method body for the corresponding operation.
elements in a Rule Flow diagram using the associated Rule Flow pages of the Toolbox.
The following illustration is of a possible Rule Flow diagram for the car rental example.
The Rule Task elements Eligibility, Determine Rent Payable, Determine Penalty and Determine Total Amount
Payable group the business rules for the specific task indicated by the element name. You then identify the
business rules 937 for each group.
Notes:
· In a Rule Flow diagram, every Decision Node has a matching Merge Node to ensure proper code
generation.
· For code generation, the Rule Task elements must be grouped inside the appropriate Rule Flow Activity in
the Project Browser. However, Rule elements can be defined anywhere in the model, as they can be used
in more than one Rule Task.
The Rule Flow Activity parameters can be accessed by the Rule Tasks within the parent Rule Flow Activity. In
the following hierarchy, the parameters m_rent and m_application can be used by any of the Rule Tasks under
the ProcessApplication Rule Flow Activity.
You can use the parameters as condition variables or action variables in the Business Rule Decision Table 945
, or as rule variables in the Computation Table 945 for any of the Rule Tasks. If the Activity parameter is not
accessible to a Rule Task, Enterprise Architect displays an error message.
On code generation, the code for rules logic is generated in the method body.
When you drag and drop a RuleTask operation onto a Rule Flow diagram, an operation call behavior action
581 is created. To pass the parameters for this operation call, open the Properties dialog and select the Call
tab. Set the Behavior field to the operation to be called. Under the Arguments field, click on the Edit
Arguments button and edit the argument values 582 to be passed.
On the diagram, the call behavior actions for the RuleTask operations are indicated as shown below:
3. Drag the required Business Rule element from the Project Browser onto the new row. If the Business
Rule element is not already on the diagram, this adds the element to the diagram and creates a
Dependency relationship between the Business Rule and Rule Task elements.
To remove a rule that is no longer required in the Rule Composer, right-click on the appropriate No field and
select the Remove Rule context menu option.
Note:
This removes the rule from the Rule Composer and deletes the Dependency relationship with the Rule Task
element. However, it does not remove the Business Rule element from either the diagram or the Project
Browser (where, in either case, it might be in use with other Rule Task elements).
Decision Table
The Decision Table enables you to model conditional rules (for example: Cars must not be rented to
customers of age less than 18).
The table has three sections:
· Rule Conditions – to model condition variables
· Rule Actions – to model action variables
· Rule Bindings – to link the rule in the rule table.
Notes:
· The Rule Condition field enables you to use intellisense to display a list of possible entries for the
field. Press [Ctrl]+[Spacebar] in the field to display the list of entries.
· If the Rule Condition is of type enum, the Allowable Values fields are automatically set with the
enum literals. The procedure then ends here.
Type each required value or range of values in the Value field, and click on the Save button to display
the value in the Allowable Values list box; for example:
Notes:
· You can check this constraint by opening the Properties dialog for the attribute and selecting the
Constraints tab.
· If the Rule Condition references an enumeration, the enum literals are not editable in the Edit
Allowable Values dialog.
5. If the Rule Condition is an operation, you can pass parameters to it. Right click on the Allowable
Values field, and select the Edit Parameters context menu option. The Edit Parameters dialog
displays. Select the parameters and type their values into the Value text box. Click on the OK button to
cancel the dialog.
Note:
You can add an operation as a Rule Condition more than once, to allow calling the operation with
different sets of parameters.
To add another Rule Condition, right-click on the No column and select the Add Row context menu option. An
empty row is added to the table.
To remove a Rule Condition from the table, right-click on the appropriate No field and select the Delete Row
context menu option. This does not affect the original attribute or the new constraint in the model. You can
either re-use the attribute with its constraint, or use the attribute Properties dialog to remove the constraint.
Note:
The Rule Actions field enables you to use intellisense to display a list of possible entries for the field.
Press [Ctrl]+[Spacebar] in the field to display the list of entries.
2. For an attribute, double-click on the Allowable Values/Parameters field. The Edit Allowable Values
dialog displays; type the range of values in the text box (such as Yes, No; or Accept, Reject), click on
the Save button and close the dialog. Select the appropriate response in the Result column fields.
Note:
If the dropped action variable is of type enum, the Allowable Values/Parameters fields are
automatically set with the enum literals.
3. For an operation, a checkbox displays in each of the Result column fields. To call the operation, select
the checkbox in the appropriate column.
To pass parameters to the operation, double-click on the Allowable Values/Parameters field. The Edit
Parameters dialog displays. Select the parameters and type the values into the Value text box. Click on
the Save button and close the dialog.
Note:
You can add an operation as a Rule Action more than once, to allow calling the operation with different
sets of parameters.
4. Click on the Save button in the Rule Composer toolbar to save the values.
Note:
Alternatively, you can right-click on an Allowable Values/Parameters field to display a context menu with
two options:
· If the Rule Action is an attribute, the Edit Allowable Values option is enabled and this displays the Edit
Allowable Values dialog
· If the Rule Action is an operation, the Edit Parameters option is enabled and this displays the Edit
Parameters dialog.
To add another Rule Action, right-click on the No column and select the Add Row context menu option. An
empty row is added to the table.
To remove a Rule Action from the table, right-click on the appropriate No field and select the Delete Row
context menu option. This does not affect the original attribute or operation in the model.
Note:
Both the Computation Rule Actions field and the Expression field enable you to use intellisense to
display a list of possible entries for the fields. Press [Ctrl]+[Spacebar] in the field to display the list of
entries.
1. Click on the Export to CSV icon ( ) in the Rule Composer toolbar. The Windows Browser dialog
displays.
2. Browse to the required file location and type in a .CSV filename to export to.
3. Click on the Save button to export the data.
The business rules on the Rule Composer are parsed and any errors or warnings that might indicate
incomplete or unfavorable code generation are displayed on a Rule Composer Validation tab on the Output
screen. For example:
To highlight and investigate the faulty data in the Rule Composer, double-click on the appropriate warning or
error message.
///////////////////////////////////////////////////////////
// RentalSystem.cs
// Implementation of the Class RentalSystem
// Generated by Enterprise Architect
// Created on: 08-May-2009 2:39:23 PM
///////////////////////////////////////////////////////////
public RentalSystem(){
~RentalSystem(){
}
return m_application.Status;
}
}//end RentalSystem
· Organizational structures
· Functional breakdowns
· Data models
In addition, while BPMN shows the flow of data (messages) and the association of data artifacts to
activities, it is not a data flow diagram.
For further information on the concepts of BPMN, refer to the Wikipedia item and its linked sources.
Note:
The Enterprise Architect installer for releases later than 7.1 provides you with version 1.5 of MDG Technology
for BPMN, which supports BPMN version 1.1 and BPEL. This enables you to create and maintain diagrams in
the BPMN 1.1 and BPEL formats.
The installer also provides version 1.4.4 of MDG Technology for BPMN, which supports BPMN 1.0. This
enables you to maintain existing diagrams created in BPMN 1.0 format, and to create new diagrams in BPMN
1.0 if you want to maintain consistency through your project.
Enterprise Architect also enables you to migrate a BPMN 1.0 model (or part of a model) to BPMN 1.1 957 .
Core Business Process Extend a composite Activity that defines a business process.
Relationships Sequence Flow Extend a Control Flow relationship to define the flow of activity.
Types Assignment
Condition
Message
Define the properties (Tagged Values) of the Core BPMN 1.1
Participant elements such as Activities, Events and Gates.
Signal
Rule
Transaction
Web Service
Property
Disable BPMN
If you prefer not to use BPMN in Enterprise Architect, you can disable it (and subsequently re-enable it) using
the MDG Technologies 1069 dialog (Settings | MDG Technologies).
Version Differences
Some BPMN elements have changed in appearance between BPMN version 1.0 and BPMN version 1.1.
In Enterprise Architect releases later than 7.1, if you work on a model created in an earlier release, using
BPMN 1.0, existing elements default to their version 1.0 appearance. New elements assume the BPMN
version 1.1 appearance and automatically have a Tagged Value BPMNVersion set to 1.1
If you want a new element to revert to the BPMN version 1.0 appearance, set the Tagged Value to 1.0.
Conversely, if you want an older element to assume the BPMN version 1.1 appearance, assign the
BPMNVersion Tagged Value to it, with the value 1.1.
Enterprise Architect enables you to migrate a BPMN 1.0 model (or part of a model) to BPMN 1.1, using the
Automation Interface function MigrateToBPMN11() 1762 . This function updates the Tagged Values and, if
required, stereotypes to BPMN 1.1 for all elements, attributes, connectors and diagrams under the selected
package or element.
Warning:
In BPMN 1.0, various tags have free-text direct-entry value fields, and you can provide additional information
on these tags in the Tagged Value Note dialog for display at the bottom of the Tagged Values 632 window.
In BPMN 1.1, some of these tags (such as the Categories tag on a BusinessProcess stereotyped element)
have been changed to memo type, and you use the Tagged Value Note dialog to enter the value; therefore,
you cannot have additional notes for these tags, all information must be within the tag's value.
For such tags, when migrating from BPMN 1.0 to BPMN 1.1, the BPMN 1.0 tag value is moved into the BPMN
1.1 tag notes field and the BPMN 1.0 tag notes are discarded. If you want to preserve the tag notes text, take
a copy of the BPMN 1.0 model before migration to enable you to copy the tag notes text into the tag value
after migration.
The following VB script calls the MigrateToBPMN11() function to migrate the Tagged Values to BPMN 1.1:
End Sub
Sub MigrateSelectedItem
Dim selType
Dim selElement as EA.Element
Dim selPackage as EA.Package
selType = GetTreeSelectedItemType
Else
MsgBox "Select a Package or Element in the Project Browser to initiate migration",0,"BPMN 1.1 Migration"
End If
End Sub
Sub Main
MigrateSelectedItem
End Sub
Main
The following text is derived from the BPEL entry in the online Wikipedia :
Business Process Execution Language (BPEL), short for Web Services Business Process Execution
Language (WS-BPEL), is an executable language for specifying interactions with Web Services.
Processes in Business Process Execution Language export and import information by using Web
Service interfaces exclusively.
Web service interactions can be described in two ways :
1. Executable business processes, which model the actual behavior of a participant in a business
interaction.
2. Abstract business processes, which are partially specified processes that are not intended to be
executed. An Abstract Process may hide some of the required concrete operational details.
BPEL is an Orchestration language, serialized in XML, which specifies an executable process that
involves message exchanges with other systems. This messaging facility depends on the use of the
Web Services Description Language (WSDL) 1.1 to describe outgoing and incoming messages.
Although there is no standard graphical notation for WS-BPEL, Enterprise Architect uses BPMN version 1.1 as
a graphical front-end to capture BPEL 1.1 process descriptions. The BPMN specification includes an informal
and partial mapping from BPMN to BPEL 1.1.
For further information on the concepts of BPEL, refer to the Wikipedia item and its linked sources.
Modeling Restrictions
· Use the elements from the BPMN 1.1 Toolbox pages for BPEL modeling.
· Every BPEL Process and Sub-Process should start with a StartEvent and end with an EndEvent.
· A StartEvent or an EndEvent should not be attached to the boundary of a Sub-Process.
· SequenceFlow Looping is not supported - only Activity looping is supported. All SequenceFlows should
See Also
· Create a BPEL Model 959
· Model a BPEL Process 961
· Model a Sequence Flow Connector 980
See Also
· Model a BPEL Process 961
· Model a Sequence Flow Connector 980
Note:
Click on the UML button if you need to define further properties of the BPEL Process, using the normal
element Properties 481 dialog and Behavior 581 tab.
The BPEL Process element is a stereotyped Activity that, when created, has a child diagram. Double-click on
the element to display the diagram, and use further elements from the BPMN 1.1 Core page of the Toolbox to
model the process; specifically:
· Start Event 962
· End Event 965
· Intermediate Event 968
· Gateway 972
· Activity 974
· Pool 979 .
Note:
On the BPMN 1.1 Core page, the following elements are not mappable to BPEL:
· Pool
· Lane
· Data Object
· Group
· Text Annotation.
See Also
· Create a BPEL Model 959
· Model a Sequence Flow Connector 980
2. Drag the Start Event element from the BPMN 1.1 Core page of the Toolbox onto the diagram. A prompt
displays to select either an edge-mounted event (on an element border) or a standalone event.
3. Click on either option. The BPEL Properties dialog displays.
7. In the Time Cycle field, type the value of the time cycle.
8. The Time Date field defaults to today's date. If it is necessary to change the date, click on the checkbox
and the drop-down arrow and select a new date from the calendar.
Note:
The Time Cycle and Time Date fields are mutually exclusive, so you can only set one of them.
9. Go to step 10.
If you select Message:
6. The Details tab changes, as below.
7. To the right of the Web Service field, click on the [ ... ] button and select a BPEL web service 983 from
the list.
8. To the right of the Message field, click on the [ ... ] button and select a message from the list of all
messages in the selected web service.
9. Go to step 10.
If you select Conditional:
6. The Details tab changes, as below.
7. To the right of the Condition field, click on the [ ... ] button and select a Condition element from the list
of Condition elements created in the Supporting Elements package 959 .
8. Go to step 10.
If you select Multiple:
6. The Details tab changes, as below.
7. To the right of the Events field, click on the [ ... ] button and select further Start Events from the list of
events in this process that might trigger the process.
8. Go to step 10.
Resume the procedure:
11. (Optional) To the right of the field, click on the [ ... ] button and select one or more Assignment elements
from the list of Assignments created 981 in the Supporting Elements package 959 .
Note:
Click on the UML button if you need to define further properties of the Start Event, using the normal
element Properties 481 dialog.
Alternatively, right-click on the element and select the Properties context menu option.
To create a new End Event in your model, follow the steps below:
1. Open a BPEL diagram created under a BPEL Process 961 .
2. Drag the End Event element from the BPMN 1.1 Core page of the Toolbox onto the diagram. A prompt
displays to select either an edge-mounted event (on an element border) or a standalone event.
3. Click on either option. The BPEL Properties dialog displays.
© 1998-2010 Sparx Systems Pty Ltd
966 Modeling Languages | Specialized UML Models
7. To the right of the Web Service field, click on the [ ... ] button and select a BPEL web service 983 from
the list.
8. To the right of the Message field, click on the [ ... ] button and select a message from the list of all
messages in the selected web service.
9. Go to step 10.
If you select Error:
6. The Details tab changes, as below.
7. To the right of the Activity field, click on the [ ... ] button and select an Activity from the list of all
Activities in the process.
8. Go to step 10.
If you select Terminate:
6. No action is required on the Details tab. Go to step 10.
If you select Multiple:
6. The Details tab changes, as below.
7. To the right of the Events field, click on the [ ... ] button and select further events from the list of events
in this process that might terminate the process.
8. Go to step 10.
Resume the procedure:
11. (Optional) To the right of the field, click on the [ ... ] button and select one or more Assignment elements
from the list of Assignments created 981 in the Supporting Elements package 959 .
Note:
Click on the UML button if you need to define further properties of the End Event, using the normal
element Properties 481 dialog.
Alternatively, right-click on the element and select the Properties context menu option.
To create a new Intermediate Event in your model, follow the steps below:
1. Open a BPEL diagram created under a BPEL Process 961 .
2. Drag the Intermediate Event element from the BPMN 1.1 Core page of the Toolbox onto the diagram. A
prompt displays to select either an edge-mounted event (on an element border) or a standalone event.
Note:
When an Intermediate Event is created as a standalone event, it must have one incoming and one
outgoing SequenceFlow (except for a Link 971 Intermediate Event, which can have either incoming or
outgoing SequenceFlows, but not both).
6. To the right of the Web Service field, click on the [ ... ] button and select a BPEL web service 983 from
the list.
7. To the right of the Message field, click on the [ ... ] button and select a message from the list of all
messages in the selected web service.
8. Go to step 11.
If you select Error:
6. The Details tab changes, as below.
7. To the right of the Activity field, click on the [ ... ] button and select an Activity from the list of all
Activities in the process.
Note:
If the Compensation Intermediate Event is edge-mounted on an Activity, create a BPMN 1.1
Association connector from this Intermediate Event Activity to a Compensation Activity. Ensure that
the IsCompensation tag for the Activity is set to true.
8. Go to step 11.
If you select Timer:
6. The Details tab changes, as below:
7. In the Time Cycle field, type the value of the time cycle.
8. The Time Date field defaults to today's date. If it is necessary to change the date, click on the checkbox
and the drop-down arrow and select a new date from the calendar.
Note:
The Time Cycle and Time Date fields are mutually exclusive, so you can only set one of them.
9. Go to step 11.
If you select Conditional:
6. The Details tab changes, as below.
7. To the right of the Condition field, click on the [ ... ] button and select an element from the list of
Condition elements created in the Supporting Elements package 959 .
8. Go to step 11.
If you select Link:
6. The Details tab changes, as below.
Note:
A Link Intermediate Event can be used as either a GoTo or an Off-page connector. Therefore this
Event can have either incoming or outgoing Sequence Flows, but not both.
7. Close the dialog, and drag a Sequence Flow connector from the Toolbox to create a connector either
from or to the appropriate Activity element.
8. If you have created an outgoing Sequence Flow from the Event to an Activity, no further details are
required.
9. If you have created an incoming Sequence Flow to the Event from an Activity, right-click on the Event
and select the BPEL | BPEL Properties context menu option. The BPEL dialog redisplays as shown
below:
10. To the right of the Link Event field, click on the [ ... ] button and select the target Link Intermediate
Event from the list.
Note:
Click on the UML button if you have to define further properties of the Intermediate Event, using the
normal element Properties 481 dialog.
Alternatively, right-click on the element and select the Properties context menu option.
· Right-click on the element in the diagram or Project Browser and select the BPEL | BPEL Properties
context menu option.
Exclusive Gateway
An Exclusive Gateway represents a 'fork in the road'; that is, there can be two or more alternative paths but
only one can be taken. Therefore, each path is mutually exclusive (XOR). Exclusive Gateways can be one of
two types:
· Data-Based
· Event-Based
· All other Sequence Flows must have the ConditionType tag set to Expression and the ConditionExpression
tag set to a boolean expression.
The Default condition on an outgoing Sequence Flow ensures that at least this path is taken if all others
evaluate to false.
Create Gateway
To create a new Gateway element in your model, follow the steps below.
1. Open a BPEL diagram created under a BPEL Process 961 .
2. Drag the Gateway element from the BPMN 1.1 Core page of the Toolbox onto the diagram. The BPEL
Properties dialog displays.
Note:
Click on the UML button if you need to define further properties of the Gateway, using the normal
element Properties 481 dialog.
Alternatively, right-click on the element and select the Properties context menu option.
Sub-Process
The BPMN Specification defines three types of Sub-Process:
· Embedded
· References
· Reusable.
In Enterprise Architect, two of these Sub-Process types can be mapped to BPEL:
· Embedded
· References.
To create a new Sub-Process Activity in your model, follow the steps below.
1. Open a BPEL diagram created under a BPEL Process 961 .
2. Drag the Activity element from the BPMN 1.1 Core page of the Toolbox onto the diagram. The BPEL
Properties dialog displays.
6. If you select Embedded, you do not have to set any other properties.
7. If you select References, the Details tab displays as follows:
8. To the right of the SubProcess field, click on the [ ... ] button and select a Sub-Process from the list of
all Sub-Processes in the BPEL process.
Note:
Click on the UML button if you need to define further properties of the Activity, using the normal
element Properties 481 dialog.
Alternatively, right-click on the element and select the Properties context menu option.
Task
The OMG BPMN 1.1 Specification defines eight types of Task:
· Service
· User
· Receive
· Send
· Script
· Manual
· Reference
· None.
In Enterprise Architect, six of these Task types can be mapped to BPEL, as per the OMG BPMN 1.1
Specification:
· Service
· User
· Receive
· Send
· Reference
· None.
To create a new Task Activity in your model, follow the steps below.
1. Open a BPEL diagram generated under a BPEL Process 961 .
2. Drag the Activity element from the BPMN 1.1 Core page of the Toolbox onto the diagram. The BPEL
Properties dialog displays.
7. To the right of the Activity field, click on the [ ... ] button and select an Activity from the list of all Tasks
in the process.
8. Go to step 11.
If you select Send:
6. The Details tab changes, as below.
7. To the right of the Web Service field, click on the [ ... ] button and select a BPEL web service 983 from
the list.
8. To the right of the Message field, click on the [ ... ] button and select a message from the list of all
messages in the selected web service.
9. Go to step 11.
If you select Receive:
6. The Details tab changes, as below.
7. To the right of the Web Service field, click on the [ ... ] button and select a BPEL web service 983 from
the list.
8. To the right of the Message field, click on the [ ... ] button and select a message from the list of all
messages in the selected web service.
9. In the Instantiate field click on the drop-down arrow and select True if this is the first Activity after the
Start Event 962 , otherwise select False.
10. Go to step 11.
If you select Service or User:
6. The Details tab changes, as below.
7. To the right of the Web Service field, click on the [ ... ] button and select a BPEL web service 983 from
the list.
8. To the right of the Input Message field, click on the [ ... ] button and select a message from the list of
all messages in the selected web service.
9. To the right of the Output Message field, click on the [ ... ] button and select a message from the list of
all messages in the selected web service.
10. Go to step 11.
12. To the right of the field, click on the [ ... ] button and select one or more Assignment elements from the
list of Assignments created 981 in the Supporting Elements package 959 .
13. (Optional) Click on the Loop Details tab.
14. In the Type field click on the drop-down arrow and select the loop type - Standard or MultiInstance
(the field defaults to None).
15. In the Condition field, type the condition to be evaluated (boolean for a Standard loop, numeric
expression for a MultiInstance loop).
16. In the Min Value field, type the minimum value for the evaluation.
17. (Standard loop) In the Max Value field type the maximum value for the evaluation.
18. (Standard loop) In the Test Time field click on the drop-down arrow and select After to define a while
loop or Before to define an until loop.
Note:
Click on the UML button if you need to define further properties of the Activity, using the normal
element Properties 481 dialog.
Alternatively, right-click on the element and select the Properties context menu option.
2. Drag the Pool element from the BPMN 1.1 Core page of the Toolbox onto the diagram. The BPEL
Properties dialog displays.
Note:
Click on the UML button if you need to define further properties of the Activity, using the normal
element Properties 481 dialog.
Alternatively, right-click on the element and select the Properties context menu option.
2. Click on the Sequence Flow connector from the BPMN 1.1 Relationships page of the Toolbox, then click
on the start element and drag across to the target element on the diagram. Double-click on the
connector to display the Properties dialog.
If the Sequence Flow connector has a non-Gateway element as the start element, the Properties dialog
displays as shown below:
If the Sequence Flow connector has a Gateway 972 as the start element, the Properties dialog initially
displays as above but with the Assignments field enabled. An Activity 974 behaves as a Gateway if it is
the source for more than one Sequence Flow.
3. In the Condition group-box, in the Type field, either leave the value as None for the condition on the
connector, or click on the drop-down arrow and select Default (the ELSE in an IF...THEN...ELSE
statement) or Expression.
Note:
If you select Expression: all fields are enabled and:
· You must type or browse for ([ ... ]) an expression value in the Expression field.
· (Optional) In the Ordering field, type a numerical value; for an Exclusive or Inclusive Gateway, the
order of outgoing flows is based on the value of this field.
4. (Optional) In the Assignments panel, click on the [ ... ] button and select one or more Assignment
elements from the list of Assignments created 981 in the Supporting Elements package 959 .
Note:
Click on the UML button if you need to define further properties of the connector, using the normal
Control Flow connector Properties 860 dialog.
Alternatively, right-click on the connector and select the ControlFlow Properties context menu option.
Note:
If you select Expression, Enterprise Architect uses the getVariableData Xpath 1.0 function to create
the expression from the selected Message and Part.
9. To the right of the Message field, click on the [ ... ] button and select a Message created under the
SupportingElements package.
Note:
Messages are created when you create a Web Service 983 .
10. (Optional) To the right of the Part field, click on the [ ... ] button and select a Message Property.
In the Copy To panel:
11. To the right of the Message field, click on the [ ... ] button and select a Message created under the
SupportingElements package.
12. To the right of the Part field, click on the [ ... ] button and select a Message Property. This field is
mandatory if you have entered a value in the Part field in the Copy From panel.
13. Click on the OK button to close the dialog.
See Also
· Model a BPEL Process 961
· Generate BPEL 983
· BPEL Model Validation 984
2. The Namespace Details panel shows all of the Pools (participants) involved in the BPEL process. Note
that DefaultPool refers to the BPEL Process itself. Ensure that the Namespace and Prefix columns
have values for all of the Pools; if not, double-click on an entry to bring up the Namespace Details
dialog for that entry.
See Also
· BPEL Models 958
· Create Assignments 981
· Create a BPEL Model 959
· Model a BPEL Process 961
· Create a BPEL Web Service 983
See Also
· BPEL Models 958
· Create a BPEL Model 959
· Create Assignments 981
· Model a BPEL Process 961
· Generate BPEL 983
· BPEL Model Validation 984
1. StartEvent1 has its trigger set to None, which cannot be mapped to BPEL.
2. EndEvent1 has its trigger set to Cancel, which cannot be mapped to BPEL.
3. EndEvent1 cannot have any outgoing SequenceFlows, as it represents the end of a process.
4. Activity2 has no outgoing SequenceFlows. Enterprise Architect expects only an EndEvent to represent
the end of a process.
If you run Model Validation on this diagram, Enterprise Architect lists the violations in the Output window, as
shown:
See Also
· BPEL Models 958
· Create a BPEL Model 959
· Create Assignments 981
· Model a BPEL Process 961
· Generate BPEL 983
· Create a BPEL Web Service 983
To model Systems using SysML 989 in Enterprise Architect, you work through the following steps:
· Create a Systems Engineering model 987 to develop your system.
· Create a Requirements model 1007 to define the systems requirements and expectations.
· Create an Operational Domain model 1007 , which describes the environment that the system operates
within, and the entities it interacts with.
· Create Constraint models 1002 to describe the systems operating characteristics using parametric models.
· Simulate the parametric models 1005 to verify their correctness and obtain the desired characteristic.
· Design the system's composition 1009 using SysML Blocks and Parts.
· Implement the embedded software 1314 using UML Classes and behavioral models.
· Create a Library of reusable SysML blocks 1011 , representing subsystems that can be reused on other
projects, and other common Type definitions.
These steps are represented graphically in the following flow:
· Right-click on a package and select the Add | Add a New Model using Wizard context menu
option.
The Select Model(s) dialog displays.
2. In the Select From field, click on the drop-down arrow and select Systems Engineering Model.
Alternatively, if it is listed in the Technology panel, select the Systems Engineering Model item.
3. In the Name panel, select the checkbox next to the Systems Engineering Model icon.
4. Click on the OK button.
The following model structure is created in the Project Browser:
The Systems Engineering Model diagram, shown below, encapsulates the key components of the Systems
Engineering model.
5.2.6.1 SysML
Note:
Systems Modeling Language (SysML) is supported in the Systems Engineering and Ultimate editions of
Enterprise Architect.
The following text is derived from the official OMG SysML site of the Object Management Group.
The OMG systems Modeling Language (OMG SysML™) is a general-purpose graphical modeling
language for specifying, analyzing, designing, and verifying complex systems that may include
hardware, software, information, personnel, procedures, and facilities.
The language provides graphical representations with a semantic foundation for modeling system
requirements, behavior, structure, and parametrics, which is used to integrate with other engineering
analysis models.
SysML was developed in response to requirements developed jointly by the OMG and the International
Council on Systems Engineering (INCOSE) by the diverse group of tool vendors, end users, academia,
and government representatives.
For further information on the concepts of SysML, refer to the official OMG SysML website and its linked
sources.
SysML Toolboxes
You can access the SysML pages of the Toolbox through the More tools | SysML menu option. You can also
enable SysML as the active technology to access the Toolbox pages directly.
The following sets of Toolbox pages are available:
· Model Elements 991 contains the constructs needed to build SysML models, package structures and views
· Block Definition 992 contains the constructs needed to design SysML blocks, constraint blocks, data and
value types
· Internal Block 994 contains the constructs needed to design SysML block compositions within Internal Block
Diagrams
· Parametrics 995 contains the constructs needed to construct SysML Parametric Diagrams using constraint
blocks
· Activity 996 contains the constructs needed to construct SysML Activity models
· Interaction 998 contains the constructs needed to construct SysML interactions and Sequence diagrams
· State Machine 999 contains the constructs needed to build SysML State Machines
· Use Case 1000 contains the constructs needed to build SysML Use Case models
· Requirements 1001 contains the constructs needed to build SysML Requirements models.
Disable SysML
If you prefer not to use SysML in Enterprise Architect, you can disable it (and subsequently re-enable it) using
the MDG Technologies 1069 dialog (Settings | MDG Technologies).
View Point Create a stereotyped Class that defines a SysML View Point,
which specifies the rules and conventions for the construction
and use of Views.
Port (flow) Describe what flows in and out of interacting SysML Blocks.
SysML Block Item Flow Specify the items that flow across a connector in an interaction
Relationships point.
Port (flow) Describe what flows in and out of interacting SysML Blocks.
SysML Block Dependency Establish a traceable relationship describing how one element
Internal is dependant upon another.
Relationships
Item Flow Specify the items that flow across a connector in an interaction
point.
SysML Constraint Property Instantiate a Constraint Block for use in a Parametric diagram.
Parametrics
SysML Objective Function Define a SysML Constraint Block for use as an objective
Parametrics function to evaluate Measures of Effectiveness.
Extensions
Action (call behavior) Declare a unit of execution that calls another behavior.
Action (accept event) Declare a unit of execution that accepts an event raised by the
system.
Action (accept event Declare a unit of execution that accepts an event raised by a
timer) time epoch.
Action (send signal) Declare a unit of execution that sends a signal as an event.
Parameter Provide access to input and output objects within the Activity.
Central Buffer Node Declare an ObjectNode that stores tokens for consumption
throughout the Activity.
SysML Activity Control Flow Establish a flow of logic between two Activity nodes.
Relationships
Control Flow Tag a control flow with a probability of the likelihood of the
(Probability) flow's traversal.
Object Flow Establish a flow of objects (data) between two Activity nodes.
Object Flow Tag an object flow with a probability of the likelihood of the
(Probability) flow's traversal.
Interrupt Flow Declare a control flow that interrupts flow within a Region.
SysML Activity Enhanced Functional Declare an Activity used to contain an Enhanced Functional
Extensions Flow Block Flow Block Diagram (EFFBD).
Streaming Activity Declare an Activity where the flow of tokens passes through its
parameters continuously throughout the Activity's execution.
Non-Streaming Declare an Activity where the flow of tokens passes through its
Activity parameters at the start of the Activity's execution.
Diagram Gate Create an endpoint for the interaction, which bridges between
nested interactions.
State/Continuation Constrain the Interaction with assertions of the state that the
lifeline is expected to be in.
Call from Recursion Describe a message exchange between two lifelines within a
recursive exchange.
SysML State State Declare a significant condition in the life of a SysML Block
within its State Machine.
Final Declare the ending state of the State Machine, and its
completion.
History Represent the last active State of the State Machine prior to its
interruption.
SysML State Transition Establish a life-cycle path between one State and another,
Relationships based on its operational conditions.
SysML Use Actor Represent a user that interacts with one or more SysML
Cases systems.
SysML Use Communication Path Declare which Actors perform in the Use Case.
Case
Relationships
SysML Requirement Specify the capabilities of the system, or the conditions that it
Requirements should satisfy.
SysML Extended Requirement Extend a SysML Requirement with additional Tag properties.
Requirement
Extensions
Interface Requirement Declare a SysML Requirement that describes how the system
connects, or interfaces with, other systems.
SysML Parametric models support the engineering analysis of critical system parameters, including the
evaluation of key metrics such as performance, reliability and other physical characteristics. They unite
requirements models with system design models by capturing executable constraints based on complex
mathematical relationships.
The following text is derived from the SysML entry in the online Wikipedia.
The advantages of SysML over UML for systems engineering become obvious if you consider a
concrete example, such as modeling an automotive system. With SysML you can use Parametric
diagrams to precisely define performance and mechanical constraints such as maximum acceleration,
curb weight, air conditioning capacity, and interior cabin noise management.
For further information on the concepts of SysML Parametric models, refer to the official OMG SysML website
and its linked sources.
2. Right-click on each of the constraintBlocks and select the SysML | Add Element Script context menu
option to add script to the constraint block. This is where you express the relationship / behavior of the
constraint block as an executable script.
3. Create a SysML Constraint Block to contain the Parametric model to simulate. The Parametric model
contains properties and occurrences of constraint blocks as Constraint Property elements, connected in
a Parametric Diagram.
4. Right-click within a Parametric Diagram and select the SysML | Simulate Diagram... context menu
option.
5. Depending on your configuration selections 1005 , the simulation's results are either written to a
comma-separated CSV file or graphed in a 2-dimensional plot.
Note:
Systems Modeling Language (SysML) is supported in the Systems Engineering and Ultimate editions of
Enterprise Architect.
2. The Parameters panel lists all of the parameters that can be assigned input. Select each of the required
parameters and click on the right Arrow button to assign them as input. Parameters designated as
input parameters are listed in the Inputs panel on the right.
Note:
There must be at least one input parameter assigned for the simulation to execute.
3. Assign a set of values for each of the designated input parameters. For each input parameter, in the
Input Values panel select one of the two possible value kinds:
· Discrete - To enter a constant or a comma-separated range of discrete values
· Range - To enter a range of values beginning at the From value and ending at the To value. The
input values are incremented by the Step value.
4. Specify the classes of output value:
· Parameters - To output the parameters' data, select the checkbox
· Variables - To output the data generated within each internal variable, select the checkbox. Internal
variables are automatically generated by the simulator
5. Specify how the simulation results are to be reported. The Output Format panel enables you to choose
how the simulation outputs the simulation data.
· Plot To Graph: To plot the results on a 2-dimensional graph, select the checkbox; if you select this
option, you must specify an input parameter for the plot's X Axis
· Title - To enter a title for the graph, type in the title text
· Output to File - To output the results to a CSV text file, select the checkbox and type or browse ([...]
) for the file name.
6. Click on the OK button to execute the simulation.
In the example Requirements Model, each of the child packages contains child models that capture the
following aspects of the system's requirements:
· The Specifications package contains SysML Requirements describing the overall expectations of the
designed system.
· The Use Cases package contains SysML Use Cases that describe the general interaction between the
system and its users.
· The Interactions package contains SysML Interactions that describe a detailed sequence of interactions
between the system and its users.
· The State Machines package contains SysML State Machines that describe each of the operational states
the designed system has.
· The Constraint Blocks package contains SysML ConstraintBlocks that describe the expected performance
and operating boundaries of the system.
In this example, the ListeningDomain is defined as a system containing other subsystems within it. The
domain contains subsystems that define the Listener (i.e. User), the Portable Audio Player, Clothing (which
the user wears), and the External Environment.
Details of the ListeningDomain system are further detailed in the ListeningDomain's Internal Block Diagram.
In this example, the ListeningDomain's system's detailed composition shows how the Portable Audio Player
and other sub-systems fit together to form the Listening Domain. It also describes the binding relationships
between the parts, which describe how they are functionally bound to one another.
In the example above, the Portable Audio Player is defined as a SysML system containing subsystems that
perform specific tasks. The design contains subsystems for supplying power, performing playback and audio
processing, interfacing with other devices, and the user interface.
Details of the Portable Audio Player's composition are further described in detail within the Portable Audio
Player's Internal Block Diagram.
In this example, the Portable Audio Player's composition is described, detailing how each of the sub-systems
is structured. It also describes the binding relationships between the parts, which describe how they are
functionally bound to one another - for example, the CPU, Memory and Codec are interfaced together in the P
rocessing Subsystem.
In the example Library, each of the child packages contains child models that capture the following reusable
entities:
· Blocks defining systems such as those listed in the Components package, or those defined in the External
package.
· ConstraintBlocks defining parametric constraints for use in parametric models.
· Value Types describing quantities, expressed as measurable dimensions in specific units.
· Data Types and Flow Specifications describing data structures and Flows.
Note:
The UML Data Modeling Profile is not currently a ratified standard; however it has wide industry support and
is a useful method for bridging the gap between the UML and conventional relational database modeling.
Typical data modeling tasks you might perform are listed at the end of this topic.
For information on forward and reverse engineering of your data models, see the Database Engineering 1363
topic.
Database Keys
Two types of key are used to access tables: Primary Keys and Foreign Keys. A Primary Key uniquely identifies
a record in a table, while a Foreign Key accesses data in some other related table via its Primary Key.
A Primary Key consists of one or more columns; a simple Primary Key (single column) is defined as the
attribute of a stereotyped operation. A complex Primary Key (several columns) is defined as the stereotyped
operation itself.
A Foreign Key is a collection of columns (attributes) that together have some operational meaning (they
enforce a relationship to a Primary Key in another table). Foreign keys are represented in Enterprise Architect
as operations with the stereotype FK; the operation parameters become the columns involved in the key.
Supported Databases
Enterprise Architect supports import of database schema from these databases:
· DB2
· Firebird/InterBase
· Informix
· Ingres
· MS Access 97, 2000, 2003
· Access 2007
· MS SQL Server 2000, 2005, 2008
· MySQL
· Oracle 9i, 10g and 11g
· PostgreSQL
· Sybase Adaptive Server Anywhere (Sybase ASA)
· Sybase Adaptive Server Enterprise (Sybase ASE).
Notes:
· You can download SQL Server 2005 data types and SQL Server 2008 data types from the Resources page
of the Sparx Systems web site.
· Firebird 1.5 database tables can be modeled and generated as InterBase tables. Firebird tables can be
imported but are treated as InterBase tables.
Typical Tasks
Typical tasks you can perform when modeling or designing databases include:
· Create a Data Model Diagram 1013
A Data Model diagram is represented in Enterprise Architect as a Class diagram, and is created in exactly the
same way 422 as other diagrams.
What is a Table?
The basic modeling structure of a relational database is the Table. A Table represents a set of records, or
rows, with the same structure.
The UML Data Modeling Profile represents a Table as a stereotyped Class; that is, a Class element with a
stereotype of table applied to it. A table icon is shown in the upper right corner of the image when it is shown
on a Data Model diagram.
Create a Table
To create a Table, follow the steps below:
1. Select a diagram.
2. Select the More Tools | Data Modeling menu option on the Toolbox.
3. Click on the Table element in the list of elements, then click on the diagram. The Table element is
displayed on the diagram.
4. If the Class: Table n Properties dialog does not display, double-click on the Table to display it.
5. In the Name field, type a name for the Table and set any other properties 1014 as required.
6. Click on the OK button.
Once you have created your table, you can set its properties. Most table properties can be set from the
Properties dialog, as described below. However, some properties must be entered as Tagged Values as
described for setting the value of the Table Owner 1016 and, for MySQL 1016 and Oracle 1017 databases, setting
the table options.
· SQLServer7
· Sybase Adaptive Server Anywhere (Sybase ASA)
· Sybase Adaptive Server Enterprise (Sybase ASE).
To set the database type, follow the steps below:
1. Double-click on the table element in a diagram to open the Properties dialog.
2. Select the General tab.
3. In the Database field, click on the drop-down arrow and select the database type.
4. Click on the Apply button to save changes.
By clicking on the Table Detail tab on this dialog, you can access the Columns dialog 1019 or Operations dialog
1033 , or you can Generate DDL 1367 for this table.
2. Click on the New Tag button . The Tagged Value dialog displays.
3. In the Tag field, type the tag name Owner. In the Value field, type a value for the Owner tag.
Note:
For a PostgreSQL database, to define the owner name:
· In the Tag field, type the tag name OWNER TO
· In the Value field, type Owner_Name.
4. Click on the OK button to confirm the operation. Generated DDL includes the table owner in the SQL
script.
2. Click on the New Tag button . The Tagged Value dialog displays.
3. In the Tag field, type the tag name Type. In the Value field, type InnoDB as the value for the Type tag.
4. Click on the OK button to confirm the operation. Generated DDL includes the table type in the SQL
script.
5. To allow for later versions of MySQL, additional table options that can be added in the same manner
include:
ENGINE InnoDB
CHARSET latin1
COLLATE latin1_german2_ci
2. Click on the New Tag button . The Tagged Value dialog displays.
3. Define the table properties as shown in the examples below:
Note:
The same properties can be added to indexes and constraints 1033 . Highlight the index or constraint and add
the properties as Tagged Values.
Property/Tag Value
BUFFER_POOL DEFAULT
CACHE NOCACHE
DBVERSION 9.0.111
FREELISTS 1
INITIAL 65536
INITRANS 1
LOGGING LOGGING
MAXEXTENTS 2147483645
MAXTRANS 255
MINEXTENTS 1
MONITORING MONITORING
OWNER OWNER1
PARALLEL NOPARALLEL
PCTFREE 10
PCTINCREASE 0
PCTUSED 0
SYNONYMS PUBLIC:TABLE_PUB;OWNER2:TABLE_OWNER2
TABLESPACE MY_TABLESPACE
TEMPORARY YES
The properties defined for a given table are listed on the Tagged Values tab, as illustrated by the following
typical Tagged Value list:
What is a Column?
The basic organizational element of a relational database is the column. Every individual item of data entered
into a relational database is represented as a value in a column of a row in a table. Columns are represented
in the UML Data Modeling Profile as a stereotyped attribute; that is, an attribute with the Column stereotype.
Create Columns
Note:
For MySQL, before creating columns first add ENUM and SET datatypes. Select the Settings | Database
Datatypes menu option and, on the Database Datatypes dialog, in the Product Name field select MySQL.
Add the datatypes ENUM and SET.
Tip:
If the drop-down list of datatypes is empty, this means that you have not selected a target database for
the table. Close the Columns dialog and re-open the Table Properties dialog to set a database type
before continuing. To prevent this recurring, set the default database type 1337 .
Notes:
· The unique characteristic applied to a single column ensures that no two data values in the
column can be identical. The unique stereotype applied to an index 1033 ensures that no two
combinations of values across a set of columns can be identical.
· Some datatypes, such as the Oracle NUMBER type, require a precision and scale. These fields
are displayed where required and should be filled in as appropriate. For example, for Oracle:
5. Click on the Column Properties button. The Database Columns Properties dialog displays.
If you require a sequence, such as an Oracle sequence, select the AutoNum property, set the value to
True and, if necessary, define the start number and increment. Click on the OK button to return to the
<Tablename> Columns dialog.
6. Click on the Save button and on either the New button to define another column or the Close button to
exit from the dialog.
2. Click on the DDL Name Templates button. The DDL Name Template dialog displays, showing the
default name templates.
3. Edit or replace the template in the Primary Key Name Template field.
Note:
If you want to display the Primary Key description as PK_tablename_columnname then change the
Primary Key Name Template field to PK_%tablename%_%columnname%.
Note:
It isn't necessary to define a Foreign Key in order to access another table through its Primary Key. Foreign
Keys are a feature of some database management systems, providing 'extras' such as referential integrity
checking that prevents the deletion of a record if its Primary Key value exists in some other table's Foreign
Key. The same thing can be achieved programmatically.
5. The default foreign key name is set by the Foreign Key Name Template. To change the name to
something other than the default provided by the template, select the Override Template checkbox and
edit the foreign key name.
6. In the Source: panel and the Target: panel, click on the name of each of the two columns involved in the
Foreign Key relationship (in the screenshot above, the column name WarehouseID in each panel).
7. Select the appropriate referential integrity constraint from the On Delete and/or On Update combo
boxes.
8. Click on the Apply or OK buttons to automatically generate the Foreign Key operations.
You have created the Foreign Key. The example below shows how this looks in a diagram:
Tip:
If you are defining a MySQL database and want to use Foreign Keys, you must set the table type 1016 to
enable this.
This creates the composite Foreign Key. The example below shows how this looks in a diagram:
2. Click on the DDL Name Template button. The DDL Name Template dialog displays, showing the
default name templates.
3. Edit or replace the name template in the Foreign Key Name Template field.
Note:
If you want to display the Foreign Key description as
FK_foreigntablename_FKcolumnname_primarytablename_PKcolumnname then change the Foreign
Key Name Template field to FK_%foreigntablename%_%fkcolumnname%_%primarytablename%_%
pkcolumnname%.
Note:
Stored procedures are currently supported for: DB2; SQL Server; Firebird/Interbase; Informix; Ingres; Oracle
9i, 10g and 11g; MySQL; PostgreSQL; Sybase Adaptive Server Enterprise (ASE) and Sybase Adaptive
Server Anywhere (ASA).
4. In the Database field click on the drop-down arrow and select the target DBMS to model. (The field
displays the default database if it has already been set.)
5. In the Procedure definition field, type the entire procedure text.
6. Click on the OK button.
To define a name for the stored procedure, click on the element, click on the name (Class<n>) and click
again. This highlights the text for editing 588 . Type in the required name.
5.2.7.7.1 Views
Note:
Views are currently supported for: DB2; SQL Server; Firebird/Interbase; Informix; Ingres; Oracle 9i, 10g and
11g; MySQL; PostgreSQL; Sybase Adaptive Server Enterprise (ASE) and Sybase Adaptive Server Anywhere
(ASA).
Create a View
To create a database View, follow the steps below:
1. On the Data Modeling page of the Toolbox (More tools | Data Modeling), drag the View icon onto your
Data Modeling diagram.
2. If the View Properties dialog does not immediately display, double-click on the element.
3. From the Database drop-down list, select the target DBMS to model. The default database displays if it
has already been set.
4. Click on the OK button.
To define a name for the View, click on the element, click on the name (Class<n>) and click again. This
highlights the text for editing 588 . Type in the required name.
What is an Index?
An index is a sorted look-up for a table. When it is known in advance that a table must be sorted in a specific
order, it is usually worth the small processing overhead to always maintain a sorted look-up list rather than sort
the table every time it is required. In Enterprise Architect, an index is modeled as a stereotyped operation. On
generating DDL, the necessary instructions for generating indexes are written to the DDL output.
The unique characteristic applied to a single column ensures that no two data values in the column can be
identical. The unique stereotype applied to an index ensures that no two combinations of values across a set
of columns can be identical.
What is a Trigger?
A trigger is an operation automatically executed as a result of the modification of data in the database, and
usually ensures consistent behavior of the database. For example, a trigger might be used to define
validations that must be performed every time a value is modified, or might perform deletions in a secondary
table when a record in the primary table is deleted. In Enterprise Architect, a trigger is modeled as a
stereotyped operation.
Create an Index
Ensure that the column(s) to be used in the index have already been defined 1019 in the table.
1. Right-click on the required table either in a diagram or in the Project Browser.
2. Select the Operations context menu option. The Operations dialog displays.
3. Add an operation (with a name such as IDX_CustomerID; the IDX_ prefix is optional but it helps identify
the operation).
4. In the Stereotype field for the operation, select index (check and unique are also supported).
5. Click on the Column tab.
6. Select the required columns from the Columns drop-down list in the required order, then click on the
Save button to save changes.
The example below shows how an index looks in a diagram (in the Order element):
3. In the Current DBMS field, click on the drop-down arrow and select the current DBMS. In the New
DBMS field click on the drop-down arrow and select the target DBMS.
4. Select the Convert DBMS Type checkbox.
5. If there are child packages that also require changing, select the Process Child Packages checkbox.
6. Click on the OK button. All tables in the selected packages are mapped to the new DBMS.
To change the owner of the table or all of the tables in a package, follow the steps below:
1. Right-click on the package in the Project Browser to display the context menu.
2. Select the Code Engineering | Reset DBMS Options menu option. The Manage DBMS Options dialog
displays.
3. In the New Owner field, type the name for the new table owner.
4. In the Current Owner field, click on the drop-down arrow and select the current owner to change, or
select <All> to change the ownership of all tables in the package to the name you typed in the New
Owner field.
5. Select the Change Table Owner checkbox.
6. If there are child packages that also require changing, select the Process Child Packages checkbox.
7. Click on the OK button. The ownership changes for all Tables in the selected packages with the
specified current owner.
For more information on setting the table owner see the Set Table Owner 1016 topic. To display the table owner
in the current diagram see the Diagram Properties 423 topic.
You can also map database datatype sizes between products. To do this, follow the steps below:
1. On the Database Datatypes dialog, click on the Datatype Map button. The Database Datatypes
Mapping dialog displays.
2. In the From Product Name field, click on the drop-down arrow and select the DBMS product to map
datatypes from. The Defined Datatypes for Databases panel displays all the defined datatypes for the
product and, where appropriate, their sizes and values.
3. Click on the datatype to map (this must have a defined size unit and value). The Datatype and
Common type fields under the From Product Name field display this datatype.
4. In the To Product Name field, click on the drop-down arrow and select the DBMS product to map
datatypes to. The Datatype and Common Type fields under this field display the corresponding values
to those in the fields for the from product.
5. In the Size panel, click on the radio button for the appropriate size unit and type the default values in the
corresponding data fields.
6. Click on the Save button to save the mapping.
7. To map further datatypes, repeat this process from step 3.
8. When you have finished mapping datatypes, click on the Close button, and again on the Database
Datatypes dialog.
The following code shows the schema generated for the Employee Details package by default. Notice how
each UML Class corresponds to a complexType definition in the schema. The Class attributes are generated
as schema elements contained in a Sequence model group within the definition. The Enumeration Class is the
exception here - it maps directly to an XSD enumeration, contained within a simpleType definition.
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="ContactInfo" type="ContactInfo"/>
<xs:complexType name="ContactInfo">
<xs:sequence>
<xs:element name="ContactInfo.homePhone" type="xs:string" maxOccurs="1"/>
<xs:element name="ContactInfo.email" type="xs:string"/>
<xs:element name="ContactInfo.streetAddress" type="xs:string"/>
<xs:choice>
<xs:element name="ContactInfo.mobilePhone" type="xs:string"/>
<xs:element name="ContactInfo.officePhone" type="xs:string"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="Gender">
<xs:restriction base="xs:string">
<xs:pattern value="male|female"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="Employee" type="Employee"/>
<xs:complexType name="Employee">
<xs:complexContent>
<xs:extension base="Person">
<xs:sequence>
<xs:element name="status" type="Status"/>
<xs:element name="jobTitle" type="xs:string"/>
<xs:element name="startDate" type="xs:date"/>
<xs:element name="department" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="Person" type="Person"/>
<xs:complexType name="Person">
<xs:sequence>
<xs:element name="surName" type="xs:string" maxOccurs="1"/>
<xs:element name="firstName" type="xs:string" maxOccurs="1"/>
<xs:element name="birthDate" type="xs:string" maxOccurs="1"/>
<xs:element name="contactDetails" type="ContactInfo"/>
</xs:sequence>
<xs:attribute name="gender" use="optional" type="Gender"/>
</xs:complexType>
<xs:element name="EmployeeRecords" type="EmployeeRecords"/>
<xs:complexType name="EmployeeRecords">
<xs:all>
<xs:element name="Employee" type="Employee"/>
</xs:all>
</xs:complexType>
<xs:simpleType name="Status">
<xs:restriction base="xs:string">
<xs:enumeration value="Full-Time"/>
<xs:enumeration value="Part-Time"/>
<xs:enumeration value="Casual"/>
` <xs:enumeration value="Contract"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
· XSDsimpleType 1043
· XSDsequence 1044
· XSDchoice 1044
· XSDelement 1044
· XSDattribute 1045
· XSDany 1045
· XSDrestriction 1045
· XSDgroup 1046
· XSDtopLevelElement 1046
· XSDtopLevelAttribute 1046
· XSDunion 1047
· XSDattributeGroup 1047 .
The following tables list the features of the UML Profile for XSD.
Notes:
· Tagged Value names are shown in bold followed by the allowed values.
· If a default value is used by Enterprise Architect's schema generator, it is underlined.
«XSDschema»
UML Package
Construct
Description All Classes in a package are defined within one schema. This
stereotype can be used to specify schema-wide settings.
Tagged anonymousRole: Specifies if the role name is included in the element declaration
Values (true | false) for the UML attribute.
defaultNamespace: The default namespace used in this schema. This value is used
to specify the default namespace attribute (xmlns=), in the
schema element.
schemaLocation: The URI that identifies the location of the schema. This value is
used in the import and include elements.
Constraints None.
«XSDcomplexType»
UML Class
Construct
Tagged memberNames: Determines whether elements generated from the UML Class
Values (qualified | unqualified) attributes and associations have their name qualified by the
corresponding Class name for this complexType definition.
Constraints None.
«XSDsimpleType»
UML Class
Construct
Tagged derivation: Specifies the derivation of the simpleType. See the W3C XML
Values (restriction | list) Schema recommendation.
length:
minLength:
maxLength:
minInclusive:
See the W3C XML Schema recommendation.
minExclusive:
maxInclusive:
maxExclusive:
totalDigits:
fractionDigits:
whiteSpace:
pattern:
«XSDsequence»
UML Class
Construct
Note:
Tagged values specified by owners of this Class persist through
to the child elements of this model group. Thus if
memberNames are unqualified for a complexType, so are the
children of this model group when added to that complexType.
Tagged None.
Values
«XSDchoice»
UML Class
Construct
Tagged None.
Values
«XSDelement»
UML Attribute: AssociationEnd
Construct
(true | false)
default
See the W3C XML Schema recommendation.
fixed
Constraints None.
«XSDattribute»
UML Attribute: AssociationEnd
Construct
use:
(prohibited | optional |
See the W3C XML Schema recommendation.
required)
default
fixed
«XSDany»
UML Class: Attribute
Construct
Tagged namespace:
Values See the W3C XML Schema recommendation.
processContents:
(skip | lax | strict)
Constraints None.
«XSDrestriction»
UML Generalization
Construct
Description Overrides the default use of XSD extension for inheritance and
generates the child as a complexType with a restriction element
instead.
Tagged None.
Values
«XSDgroup»
UML Class
Construct
Tagged modelGroup: Overrides the default XSD model for generating this group
Values (sequence | choice | all) definition.
Constraints A group Class can only associate itself to other group Classes.
A group Class can be associated by another group Class or a
complexType Class.
The association should be via an Association connector.
A group Class cannot be inherited/aggregated.
«XSDtopLevelElement»
UML Class
Construct
Tagged default
Values See the W3C XML Schema recommendation.
fixed
«XSDtopLevelAttribute»
UML Class
Construct
Tagged use:
Values (optional | required |
See the W3C XML Schema recommendation.
prohibited)
default
fixed
«XSDunion»
UML Class
Construct
Tagged None
Values
«XSDattributeGroup»
UML Class
Construct
Tagged None
Values
The following schema fragment would be generated by Enterprise Architect, given the above model.
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="Status">
<xs:restriction base="xs:string">
<xs:enumeration value="Full-Time"/>
<xs:enumeration value="Part-Time"/>
<xs:enumeration value="Casual"/>
<xs:enumeration value="Contract"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="Person" type="Person"/>
<xs:complexType name="Person">
<xs:sequence>
<xs:element name="firstName" type="xs:string"/>
<xs:element name="surName" type="xs:string"/>
<xs:element name="birthDate" type="xs:string"/>
<xs:element name="gender" type="xs:string"/>
<xs:element name="contactDetails" type="ContactInfo"/>
</xs:sequence>
</xs:complexType>
<xs:element name="Employee" type="Employee"/>
<xs:complexType name="Employee">
<xs:complexContent>
<xs:extension base="Person">
<xs:sequence>
<xs:element name="status" type="Status"/>
<xs:element name="jobTitle" type="xs:string"/>
<xs:element name="startDate" type="xs:date"/>
<xs:element name="department" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="EmployeeRecords" type="EmployeeRecords"/>
<xs:complexType name="EmployeeRecords">
<xs:sequence>
<xs:element name="Employee" type="Employee" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:element name="ContactInfo" type="ContactInfo"/>
<xs:complexType name="ContactInfo">
<xs:sequence>
<xs:element name="homePhone" type="xs:string"/>
Package A schema element is generated for the target package. If the target package includes
Classes from another package, which has the Tagged Values targetNamespace and
targetNamespacePrefix set, these are included as attributes of the schema element.
In addition, an import or include element is created for each referenced package. (An
include element is used if the external package shares the same targetNamespace
Tagged Value as the target package. An import element is used where the
targetNamespaces differ).
Class A root-level element declaration and complexType definition are generated. The
element name and type are the same as the Class name. An XSD sequence model
group is generated to contain UML attributes generated as elements.
Attribute An element is declared for each Class attribute. The element name is set to that of the
UML attribute name. This is prefixed with the Class name to make the element unique.
The minOccurs and maxOccurs attributes are set to reflect the attribute cardinality.
Note:
If left unspecified, minOccurs and maxOccurs default to 1.
Association An element is declared for each association owned by a Class. The element name is
set to that of the association role. The minOccurs and maxOccurs reflect the
cardinality of the association.
Note:
If the direction of the association is unspecified, the owner is assumed to be the
source.
Generalization For single inheritances, an extension element is generated with the base attribute set
(Inheritance) to the base Classname. The UML attributes of the child Class are then appended to
an all model group within the extension element.
«enumeration» (st A simpleType element is declared for the enumeration Class with the name attribute
ereotype) set to the Classname. A restriction element is generated with base set to string. Each
of the Class attributes is appended to the restriction element as XSD enumeration
elements with value set to the UML attribute name. Any type specification for the UML
attributes is ignored by the schema generator.
A WSDLnamespace package can contain one or more WSDL components. Each WSDL component can be
automatically generated to a WSDL file using Enterprise Architect's built in WSDL generator 1379 . The following
topics describe the various WSDL elements and features supported by Enterprise Architect:
To create a new WSDL namespace in your model, follow the steps below.
1. Open or create the appropriate diagram.
2. Select the More Tools | WSDL menu option from the Toolbox.
3. Drag the Namespace element from the Toolbox onto the diagram. The WSDL Namespace Properties
dialog displays:
4. Type in a WSDL Package Name and Target Namespace name. You can edit these values later.
5. Click on the OK button to create a package stereotyped as WSDLnamespace. This contains the
following sub-packages and an Overview diagram to navigate between the sub-packages:
· Types: Contains the XSD types used by the WSDL Message elements; this package is modeled as
an XML Schema 1040 , and you drag XSDelement 1044 , XSDsimpleType 1043 and XSDcomplexType 1043
elements onto the Types diagram from the XML Schema 420 page 420 of the Toolbox
· Messages: Contains the WSDL Messages, modeled as UML Classes marked with the stereotype
WSDLmessage
· PortTypes: Contains the WSDL Port Types, modeled as UML interfaces marked with the stereotype
WSDLportType
· Bindings: Contains the WSDL Bindings, modeled as UML Classes that realize the PortTypes
· Services: Contains the WSDL Services, modeled as UML interfaces with associations to each
exposed Binding.
6. Use the Overview diagram to navigate between the subpackages, by double-clicking the relevant
packages. You can edit the sample WSDL elements created in the previous step, or drag new items
from the WSDL pages of the Toolbox onto the relevant diagrams.
You can edit the WSDL-specific properties of the namespace later by double-clicking the package in the
Project Browser. Alternatively, on the WSDL Namespace Properties dialog, click on the UML button to invoke
the standard Properties dialog for a package. (This button does not display on the initial WSDL Namespace
Properties dialog for a new Namespace element.)
Note:
You can also delete any namespace entries that you add. It is recommended that you do not delete
any of the default entries, as it may cause an invalid WSDL document to be generated.
4. Select one or more services that should be exposed by this document. The list of available services is
populated from the Services package 1054 .
5. Click on the OK button.
You can edit the WSDL-specific properties of the document later by double-clicking the component in the
diagram or the Project Browser. Alternatively, click on the UML button in the WSDL Document Properties
dialog to invoke the standard Properties dialog for a package. (This button does not display on the initial
WSDL Document Properties dialog for a new WSDL element.)
5. Type in the Port Name and Location, and select a Binding. The list of Bindings is taken from those
defined in the Bindings package 1057 .
6. Click on the OK button to close the WSDL Port dialog. For each Port defined in this way, Enterprise
Architect creates an Association relationship between the Service and corresponding Binding element.
7. Click on the OK button to close the WSDL Service dialog.
You can edit the WSDL-specific properties of the service later by double-clicking the Service interface in the
diagram or Project Browser. Alternatively, click on the UML button in the WSDL Service dialog to invoke the
standard Properties dialog for an interface. (This button does not display on the initial WSDL Service dialog for
a new Service element.)
dialog displays.
3. Type in a Name and Type for the message part. The type should be selected from the drop-down list of
primitive XSD types or from the types defined under the Types package.
4. Click on the OK button.
You can edit the WSDL-specific properties of the message part later by double-clicking the attribute in the
diagram or Project Browser. Alternatively, on the WSDL Message Part dialog, click on the UML button to
invoke the standard Properties dialog for an attribute. (This button does not display on the initial WSDL
Message Part dialog for a new message part attribute.)
5.2.10 SPEM
According to the Object Management Group (OMG) Software & Systems Process Engineering Meta-Model
Specification (Version 2.0, April 01 2008):
The Software and Systems Process Engineering Meta-model (SPEM) is a process engineering
meta-model as well as conceptual framework, which can provide the necessary concepts for modeling,
documenting, presenting, managing, interchanging, and enacting development methods and processes.
An implementation of this meta-model would be targeted at process engineers, project leads, project
and program managers who are responsible for maintaining and implementing processes for their
development organizations or individual projects.
In 1999, the OMG placed a Request for Proposal concerning Software Process Engineering (SPE). In
November 2002, the OMG released the Software Process Engineering Meta-model Specification 1.0. SPEM
was defined as a Profile of UML, which used UML as a notation and took an object-oriented approach. To
accommodate UML 2, the SPEM specification was upgraded to 2.0 in April 2008.
For more information on the concepts of SPEM, please refer to the full specification at
http://www.omg.org/spec/SPEM/2.0/PDF.
Disable SPEM
If you prefer not to use SPEM in Enterprise Architect, you can disable it (and subsequently re-enable it) using
the MDG Technologies 1069 dialog (Settings | MDG Technologies).
Iteration Group a set of nested Activities that are repeated more than
once. Typically, Iteration is an Activity for which the default
value of the isRepeatable attribute is True.
Tool Definition Describe the tools that are recommended or necessary for
completing a specific Task.
Work Product Define any forms of document, report or outcome that are
Definition consumed, produced or modified by Tasks.
Package Method Content Create a physical container to organize the Method Content
Package elements.
Method Library Create an overall physical container for all SPEM 2.0
elements.
Method Plugin Create a physical container for Method Content Package and
Process Packages. It can be used stand-alone as well as
extended to many other Method Plugins.
Process element.
Process Activity Define basic units of work within a Process as well as the
Process itself.
Work Product Use Represent a Work Product Definition in the context of one
specific Activity.
In Enterprise Architect, every SPEM stereotype can be presented in one of two ways:
· Iconic presentation, or
· Textual presentation.
The iconstyle tag is used for switching between these presentations. For example, in the SPEM diagram
below, if you want the SPEM_TaskDefinition to have iconic presentation you set the iconstyle Tagged Value
to True, and display the element as an icon. To get the textual presentation for SPEM_TaskDefinition, as an
outline with a decoration in the top right corner, set the Tagged Value to False.
If you set the MDG Technology to Active, its Toolbox pages override any parallel Enterprise Architect Toolbox
pages. For example, the ICONIX Class pages would override the Enterprise Architect Class pages.
You create 422 Technology-specific diagrams and populate them with elements and connectors in the same
way as for standard Enterprise Architect diagrams.
The Resources 667 window (View | Other Element Tools | Resources) displays a tree structure containing
nodes such as imported MDG Technologies, Templates, Documents, Stylesheets, Matrix profiles and UML
Profiles.
MDG Technologies can bundle the functionality provided by UML Profiles, UML Patterns, Code Templates and
Model Types.
The MDG Technologies dialog lists the technologies held in the Enterprise Architect Install directory, in
alphabetical order.
toolbar, so that you can apply the interface profiles of the MDG Technology
· At least one set of Toolbox pages for the MDG Technology is automatically added to the Toolbox 399 ; you
can access the added Toolbox pages through the More Tools menu
· Any MDG Technology-specific diagram templates are added to the New Diagram 422 dialog for selection;
when selected, these display the diagram-specific Toolbox pages.
You can quickly enable or disable all the listed MDG Technologies by clicking on the All or None buttons.
However, if you click on the None button, you should scroll to the top of the list and select the Basic UML 2
Technology checkbox to re-enable the UML and Extended Toolbox pages and diagram types.
Set as Default
You can make an MDG Technology the default interface to Enterprise Architect. Depending on the MDG
Technology selected, this can change the way Enterprise Architect windows are displayed and override the
Toolbox pages with pages specific to that Technology.
To set an MDG Technology as the default interface, click on it in the Technology panel and click on the Set
Active button.
This displays an asterisk against the MDG Technology name in the Technology panel, and selects the MDG
Technology in the profile field of the Default Tools toolbar. If the MDG Technology has not been enabled, this
also enables it.
You can also enable one or more of the MDG Technologies (and likely make one of them the default) and
then deselect the Basic UML 2 Technology checkbox, to work exclusively in the selected technologies only.
The UML and Extended Toolbox pages, diagram types and quicklinks are excluded from the Toolbox, More
tools menu, diagrams and New Diagram dialog in the user interface.
Note:
If you add or remove remote MDG Technologies, you must restart Enterprise Architect to show them on or
remove them from the list on the MDG Technologies dialog.
3. Click on the Add button. A short context menu displays, offering the options:
· Add Path
· Add URL.
4. To specify an MDG Technology in a directory folder, select the Add Path option. The Browse for Folder
dialog displays.
Browse for the MDG Technology folder, click on it, and click on the OK button. Go to step 6.
5. To specify an MDG Technology on a web site, select the Add URL option. The Input dialog displays.
In the Enter Value field, type or copy-and-paste the MDG Technology URL. Click on the OK button.
6. The folder path or URL for the MDG Technology displays in the Path panel.
To import an MDG Technology you must have a suitable MDG Technology XML file. If the MDG Technology
includes references to any metafiles, they should be in the same directory as the MDG Technology XML file.
An imported MDG Technology is available only within the model into which it has been imported, not in every
model you have in Enterprise Architect. To make the MDG Technology available across all your models,
download it into the Enterprise Architect install directory.
2. In the Filename field, type the path and filename of the MDG Technology file to import, or browse for it
using the [ ... ] button.
Note:
When you enter the filename, the MDG Technology name displays in the Technology field and the
option checkboxes become available. Any options that remain grayed out indicate that no examples of
that type exist in the MDG Technology XML file.
3. All option checkboxes default to selected. Clear those against resources you do not want to import, and
leave selected the checkbox against each of the resources to import. Leave selected:
· Patterns, to import patterns, if they exist
· Images, to import graphics
· Profiles, to import profiles, if they exist
· Element Size, to import the element size attributes
· Alternate Image, to import the metafile image
· Tagged Values, to import Tagged Values
· Color and Appearance, to import the color (background, border and font) and appearance (border
thickness) attributes
· Code Modules, to import the various languages associated with the technology, if they exist
· Data Types, to import the data types
· Code Templates, to import the code templates, if they exist
· Code Options, to import the options that include items such as default file extensions and default
file paths.
4. Click on the Import button.
If the MDG Technology already exists, Enterprise Architect displays a prompt to overwrite the existing version
and import the new one.
Once the import is complete, the MDG Technology is listed in the MDG Technologies folder of the Resources
1067 window and in the MDG Technologies 1069 dialog.
Product Information
For the latest list of available Add-Ins and an introduction to each product, including details of pricing,
purchasing and download options, see the Products Page on the Sparx Systems website. When you purchase
one of the Add-Ins, you receive one or more license keys and instructions on obtaining, installing and
registering the product.
The information page for most products provides a link to download the product User Guide in .pdf format.
The product User Guide can also be displayed as a .chm file online within the product itself. To access this
online help in Enterprise Architect, select the Add-Ins | <productname> | Help menu option.
5.2.11.4 Archimate
Archimate is an open-standard enterprise architecture language from The Open Group, based on the IEEE
1471 standard.
Archimate offers a common language for describing the construction and operation of business processes,
organizational structures, information flows, IT systems and technical infrastructure, enabling Enterprise
Architects to describe, analyse and visualize the relationships among business domains in an unambiguous
way.
Disable Archimate
If you prefer not to use Archimate in Enterprise Architect, you can disable it
(and subsequently re-enable it) using the MDG Technologies 1069 dialog (
Settings | MDG Technologies).
To preserve the simplicity and readability of the diagram, you cannot display the element compartments on the
diagram.
Context Diagram
A Context diagram is a top-level Data Flow diagram that has just one Process element representing the
system being modeled, showing its relationship to external systems.
The following text is derived from the Entity Relationship Model entry in the online Wikipedia:
An entity-relationship model (ERM) is an abstract and conceptual representation of data.
Entity-relationship modeling is a database modeling method, used to produce a type of conceptual
schema or semantic data model of a system, often a relational database, and its requirements in a
top-down fashion. Diagrams created by this process are called Entity-Relationship Diagrams, ER
Diagrams, or ERDs.
For further information on the concepts of Entity Relationship Diagrams, refer to the Wikipedia item and its
linked sources.
Enterprise Architect also provides transformation templates to transform Entity Relationship Diagrams 1399 into
Data Modeling Diagrams, and vice versa 1390 .
· Entity is an object or concept that is uniquely identifiable. The property of Multiplicity in the SourceRole and
TargetRole definitions for the Relationship connector (below) can be used to define the cardinality of an
Entity that participates in this relationship.
· Attribute is a property of an entity or a relationship type.
· N-ary Association represents unary (many-to-many recursive) or ternary relationships and can also be
used to represent relationships that have attributes among the entities; Note that the N-ary Association
element should always be at the target end of a connector.
· Connector is a connector between an Entity and an Attribute, and between two Attributes.
· Relationship is a diamond-shape connector, representing the meaningful association among entities.
· Disjoint and Overlapping represent the relationships between the super-class Entity and the sub-class
Entity.
Tagged Values
Some of the Entity Relationship diagram components can be modified by Tagged Values, as indicated below:
· normal Attribute
· primary key attribute
· multi-valued Attribute
· derived Attribute.
dbmsDataType Defines the customized DBMS data type for each attribute.
Note:
You must define the customized type first through the Settings |
Database Datatypes menu option. Also, set the
commonDataType tag to na to activate the dbmsDataType tag.
Diagram
A typical Entity Relationship Diagram is represented below:
Tip:
Sometimes you might want to limit the stretch of the diamond-shape Relationship connectors. Simply pick a
Relationship connector, right-click to display the context menu, and select the Bend Line at Cursor option.
well-respected and proven UML extensions that further enhance the capture of business activities, processes,
objects and information flows. One of these is Business Process Modeling Notation 952 (BPMN). The other is
the Eriksson-Penker profile which, through a set of stereotypes, provides a unique and powerful means of
visualizing and communicating business processes and the necessary flow of information within an
organization.
The Eriksson-Penker extensions are provided in the form of:
· An Eriksson-Penker diagram type, accessed through the New Diagram 422 dialog
· An Eriksson-Penker page in the Toolbox
· Eriksson-Penker element and relationship entries in the Toolbox Shortcut 403 Menu and Quick Linker 474 .
For further information on the MDG Technology for Eriksson-Penker Extensions, see The Business Process
Model tutorial.
When you drag one of the pattern elements onto a new diagram, the Add Pattern GoF <pattern
group><pattern type> 904 dialog displays. If necessary, modify the action and/or default for the component
elements, then click on the OK button to create a diagram based on the pattern.
The GoF patterns are drawn from the Resources window. If you delete a pattern in the Resources window the
equivalent Toolbox item cannot work. Therefore, if you cannot drop a pattern element from the Toolbox, check
that it is still available in the Resources window.
5.2.11.9 ICONIX
The following text is derived from the ICONIX entry in the online Wikipedia.
The ICONIX Process is a minimalist, streamlined approach to Use Case driven UML modeling that uses
a core subset of UML diagrams and techniques to provide thorough coverage of object-oriented
analysis and design. Its main activity is robustness analysis, a method for bridging the gap between
analysis and design. Robustness analysis reduces the ambiguity in use case descriptions, by ensuring
that they are written in the context of an accompanying domain model. This process makes the use
cases much easier to design, test and estimate.
The ICONIX Process was developed by Doug Rosenberg. For more information on ICONIX, see the ICONIX
Software Engineering Inc. website http://www.iconixsw.com/.
To further help you develop and manage a project under ICONIX, Enterprise Architect also provides a white
paper on the ICONIX Roadmap.
In addition, Enterprise Architect has an alternative visual layout 1086 specific to ICONIX.
ICONIX Layout
The ICONIX layout re-organizes the Enterprise Architect work area, opening the:
· Toolbox on the right hand side of the screen (follow the instructions above to display the ICONIX pages)
· The Tasks Pane window auto-hidden in the top right of the screen
· Project Browser window in the top left of the screen, and
· Notes, Properties and Tagged Values windows nested on the bottom left of the screen.
To apply this layout, select the View | Workspace Layouts menu option and select the Basic Layout
(Alternate) 86 option.
Disable ICONIX
If you prefer not to use ICONIX in Enterprise Architect, you can disable it (and subsequently re-enable it) using
the MDG Technologies 1069 dialog (Settings | MDG Technologies).
This does not affect the ICONIX layout, which you can switch back to your own layout or the Enterprise
Architect default layout using the View | Workspace Layouts menu option.
· Central Topic is the main theme of the Mind Map; you would normally have one or two of these on the
diagram, but can add as many as are necessary
· Main Topic represents the immediate concepts generated by the Central Topic
· Topic represents the larger divisions of a Main Topic
· Sub Topic represents the finer divisions of a Topic or Main Topic; you could also have Subtopics of
Subtopics to represent increasingly finer distinctions
· Relationship represents the connection between any two elements; you can have several Relationships per
element. Each relationship has three anchor points, so you can curve the lines to develop the flow of
concepts more easily.
When dragged onto a Mind Mapping diagram, the elements and relationship have the following appearances:
As the elements can represent any concept, object or relationship, you can use the full range of element
properties and features to expand on what the element represents, including adding Note elements. However,
to preserve the simplicity and readability of the diagram itself, you cannot display the element compartments
on the diagram.
5.2.11.11 SoaML
Note:
Service Oriented Architecture Modeling Language (SoaML) is supported in the Corporate, Systems
Engineering, Business and Software Engineering and Ultimate editions of Enterprise Architect.
The following text is derived from Service oriented architecture Modeling Language (SoaML) - Specification for
the UML Profile and metamodel for Services (UPMS) (OMG document ad/2008-11-01); pp. 25-26:
A service is an offer of value to another through a well-defined interface and available to a community
(which may be the general public). A service results in work provided to one by another.
Service Oriented Architecture (SOA) is a way of organizing and understanding [representations of]
organizations, communities and systems to maximize agility, scale and interoperability. The SOA
approach is simple - people, organizations and systems provide services to each other. These services
allow us to get something done without doing it ourselves or even without knowing how to do it -
enabling us to be more efficient and agile. Services also enable us to offer our capabilities to others in
exchange for some value - thus establishing a community, process or marketplace. The SOA paradigm
works equally well for integrating existing capabilities as for creating and integrating new capabilities.
SOA ... is an architectural paradigm for defining how people, organizations and systems provide and
use services to achieve results. SoaML ... provides a standard way to architect and model SOA
solutions using the Unified Modeling Language (UML). The profile uses the built-in extension
mechanisms of UML to define SOA concepts in terms of existing UML concepts.
... the highest leverage of employing SOA comes from understanding a community, process or
enterprise as a set of interrelated services and ... supporting that service oriented enterprise with
service-enabled systems. SoaML enables business oriented and systems oriented services
architectures to mutually and collaboratively support the enterprise mission. ... SoaML depends on
Model Driven Architecture® (MDA®) to help map business and systems architectures, the design of the
enterprise, to the technologies that support SOA, like web services and CORBA®.
For further information on the concepts of SoaML, see the specification document on the OMG website (
http://www.omg.org/docs/ad/08-11-01.pdf).
Disable SoaML
If you prefer not to use SoaML in Enterprise Architect, you can disable it (and subsequently re-enable it) using
the MDG Technologies 1069 dialog (Settings | MDG Technologies).
Enterprise Architect enables you to create models using UML. However, it also enables you to go much
further, extending the scope both of your modeling and of the UML components you use, as outlined below.
UML Stereotypes
Stereotypes are an inbuilt mechanism for logically extending or altering the meaning, display and syntax of a
model element. Different model elements have different standard stereotypes associated with them. You can
also define your own stereotypes.
For further information on stereotypes, see the UML Stereotypes 895 topic.
UML Profiles
UML Profiles are a means of extending UML, which enables you to build models in particular domains. A
Profile is a collection of additional stereotypes and Tagged Values applied to elements, attributes, methods
and connectors, which together describe some particular modeling problem and facilitate modeling constructs
in that domain.
For further information on Profiles, see the UML Profiles 906 topic.
UML Patterns
Patterns are groups of collaborating Objects/Classes that can be abstracted from a general set of modeling
scenarios (that is, parameterized collaborations). They generally describe how to solve an abstract problem,
and are an excellent means of achieving re-use and building in robustness.
For more information on Patterns, see the UML Patterns 901 topic.
MDG Technologies
The Model Driven Generation (MDG) Technologies enable you to access and use the resources of a specific
technology within Enterprise Architect. Interfaces to some technologies, such as BPMN and ICONIX, are
integrated with Enterprise Architect, whilst interfaces to others such as Eclipse and Visual Studio can be
added separately. You can also link to technologies that you have created yourself 1092 .
For more information on MDG Technologies, see the MDG Technologies 1066 topic.
Introduction
In describing aspects of developing technologies to use in conjunction with Enterprise Architect, it is expected
that you are familiar with the concepts introduced in the main body of the Enterprise Architect User Guide.
Wherever appropriate, cross-references to these concepts are provided in the text.
Contents
· Developing Profiles 1093 (incorporating Custom Stereotypes 1093 )
· MDG Technologies 1118
· Shape Scripts 1147
· Tagged Value Types 1166
· Code Template Framework 1172
Introduction
Profiles provide a means of extending the UML, which enables you to build models in particular domains. They
are based on additional stereotypes 1093 and Tagged Values 1166 that are applied to UML elements, connectors
and their components. A Profile is a collection of such extensions that together describe some particular
modeling problem and facilitate modeling constructs in that domain. UML Profiles for Enterprise Architect are
specified in XML files, with a specific format. These XML files can be imported into Enterprise Architect
through the Resources window.
The imported Profile also automatically generates a page of elements and relationships in the Toolbox.
The Resources window contains a tree structure with entries for items such as MDG Technologies,
Documents, Stylesheets, Matrix profiles and UML Profiles. The UML Profiles node initially contains no entries;
to be able to use Profiles you must import them into Enterprise Architect from supplied XML files.
Items in the Profile represent stereotypes. UML supports a large number of stereotypes, which are an inbuilt
mechanism for logically extending or altering the meaning, display, appearance and syntax of a model
element. Different model elements have different stereotypes associated with them.
For more information on the use of Profiles in Enterprise Architect, see the UML Profiles 906 topic.
For information on developing your own Profiles, see the following topics:
· Custom Stereotypes 1093
· Create Profiles 1095
· Quick Linker 1113
· Customize Toolbox Profiles 1134
· Create Diagram Profiles 1139
· Create Tasks Pane Profiles 1141
Option Use to
Group name Enable grouping of stereotype features by a plural name, for attributes and
operations, which is shown on diagrams in the attribute and operations
compartments.
Base Class Enable the stereotyped element to inherit the base characteristics from a pre-
existing element type.
Notes Type any notes concerning the stereotype (not the elements to which the stereotype
is to be applied).
Override Appearance
Metafile Enable an image file to be used for the appearance of the stereotype.
Option Use to
Shape Script Specify custom shapes for the stereotype using the Enterprise Architect Shape
Scripting language. For more information see the Shape Scripts 1147 topic.
Assign Add the associated metafile or Shape Script from the stereotyped element.
Remove Remove the associated metafile or Shape Script from the stereotyped element.
Default Colors
Reset Reset the appearance of the element to the default element appearance.
Note:
You can transport these custom stereotype definitions between models, using the Export Reference Data
223 and Import Reference Data 225 options on the Tools menu.
3. Drag the Profile item onto the Class diagram. The New Model Package dialog displays.
4. In the Package Name field, type a name for the Profile.
5. Select the Automatically add new diagram checkbox.
6. Click on the OK button. The New Diagram 422 dialog displays.
7. Provide the required diagram name, and select the diagram group UML Structural and diagram type
Class.
8. Click on the OK button. Enterprise Architect creates a package with the stereotype «profile> and with a
child Class diagram.
9. In the Project Browser, double-click on the Profile Package on the diagram to open the child diagram.
You now use this child diagram to add stereotypes 1096 to the Profile.
3. Scroll down the Element list and select the checkbox for Class.
4. Click on the OK button, display the Class Properties dialog, and in the Name field type a name for the
element. Click on the OK button again.
5. Drag a Stereotype element from the Toolbox onto the diagram. If the Properties dialog does not display,
double-click on the element on the diagram.
6. In the Name field, type a name for the stereotype.
7. Click on the OK button and, if it displays, Close the Generate Code dialog.
8. Click on the Extension relationship in the Toolbox and drag the connection from the stereotype element
to the metaclass element.
9. Your diagram should now resemble the one below:
Note:
If you want to have a stereotype extending more than one metaclass, do not create two stereotype Classes
with the same name. You cannot have two stereotypes with the same name in the same profile; one is
discarded when you save the profile. Therefore, create one stereotype Class with an Extension connector to
each of several Metaclass elements, as shown below.
You can now add stereotype Tags 1098 , Constraints 1101 , Enumerations 1103 , and/or Shape Scripts 1104 to your
Profile, and define the default appearance 1106 of the elements or connectors as required.
Supported stereotype attribute tags are special tags that set the default behavior of stereotyped elements,
such as the initial size of the element and the default location of any image files associated with the
stereotype. For a list of supported attributes, see the Supported Attributes 1108 topic.
To define tags for a stereotype with supported attributes, follow the steps below:
1. Open the Attributes dialog for the stereotyped element.
Note:
For supported attributes you set only the Name (which must match the attributes listed in the
supported attributes section) and the Initial value; do not set the other values.
In the Tagged Values window for the connector, against rootNode, you click on the selection button ([ ... ]).
This displays the Select <Item> 515 dialog, through which you locate the elements in the current model with
the «Node» stereotype. You can then select one of these elements as the value of the tag.
Note:
Enumerations defined under a Profile Package do not appear as elements in the profile when imported.
4. Click on the [ ... ] button next to the Initial field. The Shape Editor 1150 dialog displays.
5. Enter the Shape Script in the Shape Editor dialog, and click on the OK and Close buttons.
The Stereotype element now resembles the example below:
Note:
If you are creating a Shape Script for an Association Class 856 , be aware that the Shape Script is applied to
both the Class part and the Association part. Therefore, you might have to include logic in the shape main
that tests the type of the element so that you can give separate drawing instructions for Class and for
Association. Such logic is not necessary in the:
· shape source or shape target, which are ignored by Classes, or the
· decoration shapes which are ignored by Associations.
way is to review your completed profile diagram and set the default appearance of the elements and
connectors in place.
Simply click on the required element or connector and press [F4], then define the background, font and border
colors and border thickness as appropriate, on the Default Appearance 538 dialog.
When you save the profile 1106 containing the stereotyped elements and connectors, make sure that you select
the Color and Appearance checkbox on the Save UML Profile dialog.
Note:
The two menu options give slightly different results. See Save Profile Options 1107 .
3. Click on the [ ... ] (Browse) button, and select the export destination for the XML Profile file. If
necessary, edit the profile filename, but do not delete the .xml extension.
4. In the Profile Type field, click on the drop-down arrow and select XMI (UML)2.0.
Note:
The drop-down list is not available unless the package has the <<profile>> stereotype.
5. Set the required export options for all stereotypes defined in the profile:
· Element Size - select the checkbox to export the element size attributes
· Color and Appearance 1106 - select the checkbox to export the color (background, border and font)
and appearance (border thickness) attributes
· Alternate Image - select the checkbox to export the metafile images
· Code Templates - select the checkbox to export the code templates, if they exist.
6. Click on the Save button to save the profile to disk.
For information on importing and using the profile in modeling, see the Use Profiles 907 topic.
When you save a UML Profile, you can save it either from the package or from the diagram, depending on
whether the Profile is:
· a single profile spread over multiple diagrams within the same Profile package (find the Profile package in
the Project Browser, right-click on it and select the Save Package as UML Profile context menu option),
which is typically the case for a stereotypes profile
· one of multiple profiles within the same Profile package (right-click anywhere in the background of the
Profile diagram and select the Save as Profile context menu option); for example, when creating multiple
toolbox profiles
· a single diagram within the Profile Package (choose either the Save Package as UML Profile context
menu option or the Save as Profile context menu option).
The two context menu options produce slightly different results. You should take these into consideration,
especially in the third instance where you could choose either option.
The profile takes the diagram The profile takes the package Package and diagram names are not
name. name. necessarily the same, although you can
save a lot of confusion if you make them
the same or very similar. For example:
package GL with diagrams GL1, GL2,
GL3.
You can take the default size You cannot take the default size
and appearance (including and appearance from the
alternate image) from the diagram object.
diagram object.
You can use the _sizeX, _sizeY
and _image properties, but there
is no equivalent for default
colors.
Can be much faster. Can be much slower. The difference arises because diagram
objects are kept in memory and Project
Browser elements aren't.
This is only likely to be an issue if the
profile is a large one and you are using a
slow network connection to a remote
repository.
Attribute Meaning
icon Contains the path to a bitmap file to be used as the Project Browser icon for all
elements other than Package, with the given stereotype. The bitmap must be
16x16 pixels. For a transparent background, use light grey - RGB(192,192,192).
_instanceMode
_instanceType
_lineStyle Sets the line style of a connector. The value of the attribute can be one of:
· direct
· auto
· custom
· bezier
· treeH (horizontal)
· treeV (vertical)
· treeLH (lateral horizontal)
· treeLV (lateral vertical).
Attribute Meaning
Attribute Meaning
_HideStype If set to a comma-separated list of stereotypes, sets the Hide Stereotyped Features
filter.
_MakeComposite Used for creating composite elements 1111 .
_OpInh If set to 1, switches on the Inherited Features: Show Operations setting.
_OpPkg If set to 1, switches on the Operation Visibility: Package setting.
_OpPri If set to 1, switches on the Operation Visibility: Private setting.
_OpPro If set to 1, switches on the Operation Visibility: Protected setting.
_OpPub If set to 1, switches on the Operation Visibility: Public setting.
_PType If set to 1, switches on the Show element type (Port and Part only) setting.
_ResInh If set to 1, switches on the Show Element Compartments: Inherited Responsibilities
setting.
_Responsibility If set to 1, switches on the Show Element Compartments: Responsibilities setting.
_Runstate If set to 1, switches on the Hide Object Runstate in current diagram setting.
_SourceAggregation Used to set the aggregation type at the end of a connector; do not set both
_SourceAggregation and _TargetAggregation.
Set to 1 for shared, 2 for composite.
_SourceMultiplicity Used to set the multiplicity of the source element, such as 1..* or 0..1.
_SourceNavigability If the connector is non-navigable, set this attribute to Non-Navigable. For other
values, set the direction 1739 attribute.
_Tag If set to 1, switches on the Show Element Compartments: Tags setting.
_TagInh If set to 1, switches on the Show Element Compartments: Inherited Tags setting.
_TargetAggregation Used to set the aggregation type at the end of a connector; do not set both
_SourceAggregation and _TargetAggregation.
Set to 1 for shared, 2 for composite.
_TargetMultiplicity Used to set the multiplicity of the target element, such as 1..* or 0..1.
_TargetNavigability If the connector is non-navigable, set this attribute to Non-Navigable. For other
values, set the direction 1739 attribute.
The _metatype attribute is applied to a stereotype element. This is used where users want to hide the identity
of an element as a stereotyped UML element. It is also a method of getting custom types to appear in contexts
where only Enterprise Architect's inbuilt types would normally appear; for example in the lists of element types
in the Relationship Matrix.
In the following example from SysML, block is defined as a stereotype that extends a UML Class.
However, a SysML user isn't interested in UML Classes, only in SysML Blocks. An element created from a
stereotype defined this way, while behaving like a stereotyped Class in most contexts:
· Shows Block Properties rather than Class Properties as the title of its Properties dialog
· Is auto-numbered as Block1 not Class1 on creation, and
· Appears as Block not Class in many other contexts throughout Enterprise Architect.
The _strictness attribute is applied to a stereotype element. It defines to what level multiple stereotypes can
be applied to an element. The type of the attribute is StereotypeStrictnessKind and it can have one of four
values:
· profile, which states that an element of this type cannot be given more than one different stereotype from
the same profile
· technology, which states that an element of this type cannot be given more than one different stereotype
from the same technology
· all, which states that an element of this type cannot have multiple stereotypes at all, or
· none, which is the default Enterprise Architect behaviour and states that there are no restrictions on the
use of multiple stereotypes.
The following example is from SysML and shows that a «flowPort» cannot have any other stereotype applied
to it.
The _instanceType attribute is applied to a stereotype element and defines what kind of element is created as
an instance of this element type. The value corresponds to the metatype given to a stereotype using the
_metatype attribute. It is shown on the Paste Element 430 dialog and is translated if it matches an Enterprise
Architect element type.
The _instanceMode attribute is applied to a stereotype element and controls the text in the Paste Element
dialog after being translated. Valid values are instance and property, with the default being instance.
The _instanceOwner attribute is applied to a stereotype element and controls the text in the Paste Element
dialog. It is translated if it matches an Enterprise Architect element type. The default value is Element.
The following example from SysML shows that when an instance of a Block is created, it is created as a
BlockProperty element.
The _makeComposite attribute is applied to a metaclass element, not a stereotype element. It defines
whether an element is always made composite when created.
Notes:
· A stereotyped package is not by default created with a child diagram, so you should use the
_makeComposite attribute to ensure the child diagram is created.
· Unless you also use the _defaultDiagramType attribute to define the child diagram type 1111 , the child
diagram created is a Package diagram.
The following example from BPMN shows that a BusinessProcess element is always created as a Composite
element with a BPMN custom child diagram.
The _defaultDiagramType attribute is applied to a metaclass element, not a stereotype element. It defines
the type of diagram created when an element is made composite 1111 .
This attribute can take as its name any of the inbuilt diagram types of Enterprise Architect as listed in Values
Note:
The diagram profile name is the name given to the profile when you save it, which by default is the name of
the profile package or profile diagram. If you follow the recommendation in Create Diagram Profiles 1139 , the
diagram profile name is based on the technology name, but be aware that the attribute prefix is not a direct
reference to the technology name.
The following examples show a «BusinessProcess»Activity that, when made a composite element,
automatically creates an Analysis diagram, and a «block» stereotype that creates a SysML InternalBlock
custom diagram.
You can also use the _defaultDiagramType attribute for packages, extending the Package metaclass.
Introduction
The Quick Linker provides a fast and simple way to create new elements and connectors on a diagram.
When an element is selected in a diagram, the Quick Linker arrow is displayed in the upper right corner of a
element. Simply clicking and dragging the arrow enables you to create new connectors and elements. The
philosophy behind the built-in Quick Linker definitions is to provide, not a complete list of valid or legal
connections, but a short and convenient list of the commonest connections for the given context.
As part of a UML Profile, you can add to or replace the built-in Quick Linker definitions, as explained in the
following sections:
· Quick Linker Definition Format 1113
· Quick Linker Example 1115
· Hide Default Quick Linker Settings 1117
A Source Element The row is ignored unless a connector is being dragged away from this
B Source Stereotype If set, the row is ignored unless a connector is being dragged away from
Filter an element with this stereotype.
C Target Element Type If set, the row is ignored unless a connector is being dragged onto this
type of element.
If blank, the row is ignored unless a connector is being dragged onto an
empty piece of diagram.
D Target Stereotype If set and Target Element Type also set, the row is ignored unless a
Filter connector is being dragged onto an element with this stereotype.
E Diagram Filter Contains either an inclusive or exclusive list of diagrams, which limits the
diagrams the given kind of connector can be included on.
Each diagram name is terminated by a semi-colon. Excluded diagram
names are preceded by an exclamation mark.
Example of an inclusive list: Collaboration;Object;Custom;
Example of an Exclusive list: !Sequence;
F New Element Type If set and Create Element also set, results in the creation of an element of
this type.
G New Element If set and Create Element also set, results in the creation of an element
Stereotype with this stereotype.
H New Link Type If set and Create Link also set, results in the creation of a connector of
this type.
I New Link Stereotype If set and Create Link also set, results in the creation of a connector with
this stereotype.
Note:
Not all of the above work with all connector types; for example, you
cannot create a bi-directional Generalization.
K New Link Caption If a new connector is being created but not a new element, then this is the
text that appears on the context menu.
L New Link & Element If a new connector AND a new element are being created, then this is the
Caption text that appears on the context menu.
M Create Link If set to TRUE, results in creation of a new connector; otherwise should be
left blank.
N Create Element If set to TRUE the row is ignored unless a connector is being dragged
onto an empty piece of diagram and results in creation of a new element;
otherwise should be left blank.
This overrides the values of Target Element Type and Target Stereotype
Filter.
O Disallow Self Should be set to TRUE if self connectors are invalid for this kind of
connector connector; otherwise should be left blank.
P Exclusive to ST If set to TRUE, indicates that elements of type Source Element Type with
Filter + the stereotype Source Stereotype Filter do not display the Quick Linker
No inherit from definitions of the equivalent unstereotyped element.
Metatype
Q Menu Group If set, indicates the name of a sub-menu in which a menu item is created.
S Target Must Be If set to TRUE this menu item only appears when dragging from a child
Parent element to its parent; for example from a port to its containing Class.
T Embed element If set to TRUE the element being created is embedded in the target
element; otherwise should be left blank.
U Precedes Separator If set to TRUE results in a menu separator being added to the Quick
LEAF Linker menu; otherwise should be left blank.
V Precedes Separator If set to TRUE results in a menu separator being added to the Quick
GROUP Linker sub-menu; otherwise should be left blank.
W Dummy Column Depending on which spreadsheet application you use, this column might
require a value in every cell to force CSV export to work correctly with
trailing blank values.
You can create the following profile and cut and paste the CSV data into the document artifact to test the
effect.
Note:
This technique does not affect the automatic appearance of Dependency, Trace, Information Flow and Help
items on the Quick Linker menu.
An example of creating an MDG Technology for an Enterprise Architecture framework is provided in the white
paper: Enterprise Architecture Framework Design with Sparx Systems Enterprise Architect.
2. Click on the Next button to proceed. The MDG Technology Wizard prompts you to:
· Create an MDG Technology File by creating a new MDG Technology Selection (MTS) file
· Create an MDG Technology File using an existing MTS file
· Not use any MTS file.
(An MTS file stores the selected options that you define during the creation of an MDG Technology File.
If you use an MTS file, you can later modify it to add or remove specific items in the MDG Technology
File. This is the recommended process.)
3. Select the appropriate MTS file option. Click on the Next button.
If you selected an MTS file, the MDG Technology Wizard prompts you to save the changes in the
existing MTS file or into a new MTS file. This enables you to create a modification based on the existing
MTS file, while preserving the original file.
4. If necessary, type in or browse for the required file path and name. Click on the Next button. The MDG
Technology Wizard - Create screen displays.
Option Use to
Filename Type or select the path and filename of the MDG Technology File (the file
extension for this file is .xml).
Icon (Optional) Type or select the path and file name of the graphics file
containing the technology icon. The icon is a 16x16 bitmap image that is
shown in the list of technologies on the left of the MDG Technologies
dialog.
Logo (Optional) Type or select the path and file name of the graphics file
containing the technology logo. The logo is a 64x64 bitmap image that is
shown in the display pane on the top-right corner of the MDG
Technologies dialog.
URL (Optional) If you have any website product information that might be
helpful for users of this Technology, type or paste the URL in this field.
Support (Optional) If you have any web-based or other support facility that might
be helpful for users of this Technology, type or paste the contact address
in this field.
6. Click on the Next button. The MDG Technology Wizard - Contents screen displays.
7. Select the checkbox for each item to be included in the MDG Technology file. Each selection runs
specific dialogs to enable definition of the specific items to be included in the MDG Technology, as
described in the following topics:
· Add a Profile 1122
· Add a Pattern 1123
9. If you have used an MTS file and want to update it, select the Save to MTS checkbox.
10. If you are satisfied with the selection of items, click on the Finish button.
You can now edit the MTS file 1133 , if required, to add further items such as:
· Model Search definitions
· Model Views
· Model Validation configurations
· Model Templates.
To make the MDG Technology File accessible to an Enterprise Architect model, you must add the technology
file path to the MDG Technologies - Advanced dialog. See the Access Remote MDG Technologies 1070 topic.
. To use the Profiles section of the MDG Technology Wizard, follow the steps below:
1. Follow the steps in the Create MDG Technologies topic up to and including Step 6 1121 , where you select
the Profiles checkbox. The MDG Technology Wizard - Profile files selection dialog displays.
2. In the Directory field, navigate to the directory containing the required Profile or Profiles. The Profile
files are automatically listed in the Available Files panel.
3. To select each required Profile individually, highlight the Profile in the Available Files list and click on
the --> button. The file name displays in the Selected Files list. Alternatively, to select all available
Profiles, click on the -->> button.
Notes:
· DO NOT select diagram profiles or toolbox profiles on this dialog; this would generate conflicting
commands in the .MTS file.
· Make sure you do include your stereotype profile 1113 .
2. In the Directory field, navigate to the directory containing the required pattern or patterns. The pattern
files are automatically listed in the Available Files panel.
3. To select each required pattern individually, highlight the pattern in the Available Files list and click on
the --> button. The file name displays in the Selected Files list. Alternatively, to select all available
patterns, click on the -->> button.
4. Click on the Next button to proceed.
2. In the Directory field, navigate to the directory containing the required diagram profiles. The profiles in
the directory are automatically listed in the Available Files panel.
3. To select each required diagram profile individually, highlight the file name in the Available Files list and
click on the --> button. The file name displays in the Selected Files list. Alternatively, to select all
available profiles (assuming they are all diagram profiles), click on the -->> button.
4. Click on the Next button to proceed.
2. In the Directory field, navigate to the directory containing the required toolbox profiles. The profile files
are automatically listed in the Available Files panel.
3. To select each required toolbox profile individually, highlight the file name in the Available Files list and
click on the --> button. The file name displays in the Selected Files list. Alternatively, to select all
available profiles (assuming they are all toolbox profiles), click on the -->> button.
4. Click on the Next button to proceed.
2. In the Directory field, navigate to the directory containing the required taskpage profiles. The profile
files are automatically listed in the Available Files panel.
3. To select each required taskpage profile individually, highlight the file name in the Available Files list
and click on the --> button. The file name displays in the Selected Files list. Alternatively, to select all
available profiles (assuming they are all taskpage profiles), click on the -->> button.
4. Click on the Next button to proceed.
2. To select each required Tagged Value Type individually, highlight the file name in the Available Files list
and click on the --> button. The file name displays in the Selected Files list. Alternatively, to select all
available Tagged Value Types, click on the -->> button.
3. Click on the Next button to proceed.
2. Click on the checkboxes (Product, Data Types, and Code Templates) for each of the required Code
Modules.
Note:
The code modules listed are those defined in your current project. These could be the Enterprise
Architect default languages, or those you have defined yourself using code templates 1302 and the
Code Template Editor 1305 . Before you can set up a code template for the new language in the editor,
you must define at least one data type 666 for the language. Once the MDG Technology file is created
it can be loaded into your current model and into other models.
3. To select any code options for a module, click on the [ ... ] button in the Code Options column for that
module. This enables you to select an XML document that provides additional settings for the language
that are not covered by the data types or code templates.
The root node of the XML document should be CodeOptions. The child nodes should be called
CodeOption and should contain a name attribute. The supported code options are as follows:
DefaultSourceDirectory The default path to which Enterprise Architect generates new files.
Editor The external editor used for editing source of this language.
ImplementationPath The relative path from the source file to generate the implementation file.
PackagePathSeparator The delimiter used to separate package names when using the
packagePath macro from the code templates.
<CodeOptions>
<CodeOption name="DefaultExtension">.ext</CodeOption>
<CodeOption name="Editor">C:\Windows\notepad.exe</CodeOption>
</CodeOptions>
2. Click the checkbox against the template name of each required template that is present in the current
model.
3. Click on the Next button to proceed.
2. For each required model image available in the current model, select the checkbox next to the image
name. A preview of each image displays on the right of the dialog as you select the checkbox.
3. Click on the Next button to proceed.
Note:
This facility is available in the Corporate, Business and Software Engineering, Systems Engineering and
Ultimate editions of Enterprise Architect.
To use the Script Selection section of the MDG Technology Wizard, follow the steps below:
1. Follow the steps in the Create MDG Technologies topic up to and including Step 6 1121 , where you select
the Scripts checkbox. The MDG Technology Wizard - Scripts dialog displays.
2. For each required script available in the current model, select the checkbox next to the script name.
3. Click on the Next button to proceed.
2. For each required user-defined report template available in the current model, select the checkbox next
to the template name.
3. Click on the Next button to proceed.
2. For each required document template available in the current model, select the checkbox next to the
template name.
3. Click on the Next button to proceed.
Note:
If you use a custom SQL search, the SQL must include ea_guid AS CLASSGUID and the object type.
Notes:
· Technology views do not store Favorite packages, only Views.
· If your exported views run searches that you have defined you must also include those searches in your
MDG Technology.
attributes in the Class, so make use of the attribute ordering buttons to define the order of your toolbox.
Note:
To name an attribute for an item from your own technology, precede it with your profile name as the
namespace, and then follow it in brackets with the element or connector type that you are extending
(so that Enterprise Architect knows what object to create). For example, a SysML block element would
appear as SysML::Block(UML::Class). Click on the following links for a complete list of elements 1137
and connectors 1138 that can be extended.
To define a toolbox item that allows a pattern to be dropped onto a diagram, name the attribute My
Technology::MyPattern(UMLPattern) where MyTechnology is the ID of the technology and MyPattern is
the name of the pattern to drop. For example, BusFramework::Builder(UMLPattern).
To define a model-based pattern in a custom toolbox (such as the GoF patterns 901 ) create an attribute
with a name of the format PatternCategory::PatternName(UML Pattern). For example: GoF Behavioral
Patterns:: Mediator(UML Pattern).
You might not want to use names such as UML::Package or UML::Class in your toolbox, so give the
attributes an Initial Value of, for example, Package or Class.
5. To save the toolbox profile, right-click on the diagram and select the Save as Profile context menu
option.
Note:
Each profile element incorporated into an MDG Toolbox page enables synchronization 910 of the Tagged
Values and Constraints of all elements created from them.
The following attributes can be added to a stereotype Class that extends the ToolboxPage metaclass:
· ImagesOnly: if you give a toolbox page an attribute named imagesOnly with Initial Value set to true, the
toolbox page displays without the text labels next to the icons
· isCommon: if you give a toolbox page an attribute named IsCommon with Initial Value set to true, the
toolbox page is common to all defined toolboxes while your technology is active; the page is initially
displayed as collapsed
· isCollapsed: if you give a toolbox page an attribute named IsCollapsed with Initial Value set to true, the
toolbox page is initially minimized.
· Icon: see Assign Icons for Toolbox Items 1136
· isHidden: see Create Hidden Sub-Menus 1135 .
This states that the toolbox defined by this profile replaces the Enterprise Architect toolbox UML::Class as the
default toolbox for all UML Class diagrams. For a list of inbuilt toolboxes, see the List of Enterprise Architect
Toolboxes 1137 topic.
· UML::Activity · Extended::Analysis
· UML::Class · Extended::Custom
· UML::Communication · Extended::DataModeling
· UML::Component · Extended::Maintenance
· UML::Composite · Extended::Requirements
· UML::Deployment · Extended::UserInterface
· UML::Interaction · Extended::WSDL
· UML::Metamodel · Extended::XMLSchema
· UML::Object
· UML::Profile
· UML::State
· UML::Timing
· UML::UseCase
· styleex: string = one or more of a range of values; see Attribute Values - stylex & pdata 1140
· pdata: string = one or more of a range of values; see Attribute Values - stylex & pdata 1140 .
The following example shows the DFD diagram profile which defines a DFD diagram as an extension of
the Enterprise Architect Analysis diagram.
styleex: string =
· TConnectorNotation=Option; (where Option is one of UML 2.1, IDEF1X, or Information Engineering)
· ShowAsList=1; (to make the diagram open directly into the Element List 1255 )
· AdvanceElementProps=1; (to show the element property string)
· ShowTests=1; (to show the element Testing compartment)
· ShowMaint=1; (to show the element Maintenance compartment)
· ShowNotes=1; (to show the element Notes compartment)
pdata: string =
· UseAlias=1; (to use the aliases or elements in the diagram, if available)
· HideParents=0; (to show additional parents of elements in the diagram)
· HideEStereo=0; (to show element stereotypes in the diagram)
· ShowSN=1; (to show sequence notes)
· ShowIcons=1; (to use stereotype icons)
· HideAtts=0; (to show the element Attributes compartment)
· HideOps=0; (to show the element Operations compartment)
· ShowTags=1; (to show the element Tagged values compartment)
· ShowReqs=1; (to show the element Requirements compartment)
· ShowCons=1; (to show the element Constraints compartment)
· HideStereo=0; (to show attribute and operation stereotypes)
· HideProps=0; (to show property methods)
· OpParams=3; (to show operation parameters)
· HideRel=0; (to show relationships)
· SuppCN=0;(to show collaboration numbers).
The title bar of the Tasks Pane toolbox is defined by the Alias of the «stereotype» Class, in this case
Debugging Profile. This example uses the following standard attribute types:
· EASystem::MenuCmd. These entries name an Enterprise Architect main menu command inside round
brackets. See the complete list of inbuilt commands 1142 . Type the text to appear in the Tasks Pane into the
Initial Value field.
· EASystem::ShowHelp. These entries name a page from the Enterprise Architect User Guide inside round
brackets. To find out the names of pages in the Enterprise Architect User Guide, right-click on the page
and select the Properties context menu option. Type the text to appear in the Tasks Pane into the Initial
Value field.
· EASystem::ShowMovie. These entries give the URL of a movie inside round brackets. Type the text to
appear in the Tasks Pane into the Initial Value field.
· SEPARATOR. This entry indicates that a separator should be placed in the Tasks Pane toolbox. If it is
necessary to place multiple separators in a single toolbox, note that Enterprise Architect does not allow
identically named attributes for a Class: simply change the case of one or more letters to get around the
problem.
Other useful attributes include:
· EASystem::ShowURL. This entry gives the URL of a web page inside round brackets. Type the text to
appear in the Tasks Pane into the Initial Value field.
· isCommon: A boolean attribute with Initial Value set to True, defines a Tasks Pane toolbox as context-
free and common, appearing for all contexts
· You can also run Add-In functions 1143 from the Tasks Pane.
Next Step
The next step is to create a set of Tasks Pane Contexts 1144 .
The following Enterprise Architect commands can all be used in user-defined Tasks Pane profiles. Tasks Pane
pages have attributes named in the form EASystem::MenuCmd(<CommandName>) where <CommandName>
is the name chosen from the following list:
To run Add-In functions from the Tasks Pane, you create an attribute in the Tasks Pane «stereotype» Class
with the following format:
"Assembly::FunctionName()"
where Assembly is the name of the Add-In and FunctionName is the name of a public function in the Add-In.
Give the attribute an initial value of the text that is to appear in the Tasks Pane. The function receives two
parameters and returns a success status, as in the following VB.Net example:
ShowMyDiagram = True
End Function
Named Contexts
To create a context-sensitive set of Tasks Panes, you must define a set of named contexts that can be used in
the definition. A named context is a «stereotype» Class which extends a «metaclass» named ToolboxContext.
These elements must be owned by the same «profile» package that owns the Task Pane toolbox definitions
1141 . The context Class has one of the following attributes:
· contextDiagramType; this should have an Initial Value set to a valid diagram type
· contextItemType; this should have an Initial Value set to a valid element type
· contextKey.
Example Context Profile
Next Step
The next step is to allocate Tasks Pane contexts to Tasks Pane toolboxes 1144 .
Next Step
The next step is to Save your Tasks Pane Profile 1145 .
> block:
<ModelValidation isBlackList="true">
<RuleSet name="BPMNRules"/>
<RuleSet name="MVR7F0001"/>
</ModelValidation>
In the examples above, "BPMNRules" is the rule-set ID defined in the Project.DefineRuleCategory call - see
Project Interface 1753 for details. "MVR7F0001" is one of Enterprise Architect's built-in rule-sets. These validation
options are applied when you activate the appropriate technology. The global (default) technology has all rules
turned on.
Introduction
Enterprise Architect Shape Scripts enable you to specify custom shapes via a scripting language. These
custom shapes are drawn instead of the standard UML notation. Each script is associated with a particular
stereotype, and is drawn for every element of that stereotype. The following topics describe how to create and
apply Shape Scripts:
· Getting Started with Shape Scripts 1148
· Write Scripts 1151
· Example Scripts 1163
· Shape Editor 1150
· Add Shape Scripts to UML Profiles 1104
You can create a Shape Script for an existing stereotype by selecting the stereotype from the list. Alternatively,
you can create new stereotypes by clicking on the New button and giving the stereotype a name. Select a
base Class and click on the Save button. Once the stereotype is saved, it displays in the list.
To override the appearance, select the Shape Script radio button and then click on the Assign button. The
Shape Script Editor 1150 displays.
Type the example Shape Scripts in the Edit window. You can click on the Refresh button in order to view the
shape in the preview window.
Note:
If you define a composite Shape Script (such as the connector at the end of the Example Scripts 1163 topic),
click on the Next Shape button to page through the components of the shape.
Once you have finished writing your Shape Script 1151 , click on the OK button. To save the Shape Script you
must click on the Save button on the Stereotypes tab.
Once you have created your Shape Script for a particular stereotype, you can assign that stereotype to an
element or connector. The appearance reflects the Shape Script you created. To do this, drag and drop the
appropriate element or connector into your diagram.
Note:
If an element's appearance is modified by a Shape Script, many of the options on the Advanced 549 context
menu for that element are disabled.
Right-click on the element or connector and select the Properties context menu option. Click on the
Stereotype field drop-down arrow, select the stereotype you created and click on the OK button. The object's
shape now reflects the Shape Script you created.
Option Use to
OK Exit from the Shape Editor, don't forget to save your script from the
Stereotypes tab. See Getting Started With Shape Scripts 1148 .
Refresh Parse your script and display the result in the Preview window.
· Sub-shapes 1160
· Reserved Names 1161
· Miscellaneous 1162
Grammar symbols:
· * = zero or more
· + = one or more
· | = or
· ; = terminator
ReservedShapeName ::= See Reserved Names 1161 for fulled reserved shape listing
Attribute ::= See Shape Attributes 1152 for full listing of attribute names
QueryName ::= See Query Methods 1158 for a full listing of Query names
MethodName ::= See Drawing Methods 1154 for a full listing of method names
//drawing commands
rectangle(0,0,100,100);
println("foo bar");
}
bottomAnchorOffse (int,int) When creating a Shape Script for an embedded element (such as a Port),
t use this attribute to offset the shape from the bottom edge of its parent.
For example:
bottomAnchorOffset=(0,-10); move embedded element up 10 pixels from
the bottom edge
dockable string Makes the shape default to dockable 555 , so that it can be aligned with and
joined to other elements (both other Shape Scripts and standard elements)
on a diagram. You cannot reverse the dockable status with the
Appearance menu option; to change the status, you must edit the Shape
Script.
Valid values: standard or off
endPointY, integer Only used for the reserved target and source shapes for connectors; this
endPointX point determines where the main connector line connects to the end
shapes.
Default: 0 and 0
fixedAspectRatio string Set to true to fix the aspect ratio. Do not use if you do not want to fix the
aspect ratio.
h_Align string Affects horizontal placement of printed text and subshapes depending on
the layoutType attribute.
Valid values: left, center, or right
layoutType string Determines how subshapes are sized and positioned. See Subshape
Layout 1160 for further details.
Valid values: leftright, topdown, border
leftAnchorOffset (int,int) When creating a Shape Script for an embedded element (such as a Port),
use this attribute to offset the shape from the left edge of its parent.
For example:
leftAnchorOffset=(10,0); move embedded element right 10 pixels from the
left edge
noShadow string Set to true to suppress the shapes shadow from being rendered.
Valid values: true or false (default= false)
orientation string Applies to decoration shapes only. Determines where the decoration is
positioned within the containing element glyph.
Valid values: NW, N, NE, E, SE, S, SW, W
rightAnchorOffset (int,int) When creating a Shape Script for an embedded element (such as a Port),
use this attribute to offset the shape from the right edge of its parent.
For example:
rightAnchorOffset=(-10,0); move embedded element left 10 pixels from the
right edge
rotatable string Set to false to prevent rotation of the shape. This attribute is only
applicable to the source and target shapes for lines glyphs.
Valid values: true or false (default = true)
scalable string Set to false to stop the shape from being relatively sized to the associated
diagram glyph.
Valid values: true or false (default= true)
topAnchorOffset (int,int) When creating a Shape Script for an embedded element (such as a Port),
use this attribute to offset the shape from the top edge of its parent.
For example:
topAnchorOffset=(0,10); move embedded element down 10 pixels from the
top edge
v_Align string Affects vertical placement of printed text and subshapes depending on the
layoutType attribute.
Valid values: top, center, or bottom
addsubshape( Adds a sub-shape with the name shapename that must be defined within
string shapename[, the current shape definition.
int width,
int height])
arc( Draws an elliptical anticlockwise arc with the ellipse having extents at left,
int left, top, right and bottom. The start point of the arc is defined by the
int top, intersection of the ellipse and the line from the center of the ellipse to the
int right, point (startingpointx, startingpointy). The end of the arc is similarly
int bottom, defined by the intersection of the ellipse and the line from the center of the
int startingpointx, ellipse to the point (endingpointx, endingpointy).
int startingpointy, For example:
int endingpointx,
Arc(0, 0, 100, 100, 95, 0, 5, 0);
int endingpointy)
arcto( As for the arc method, except that a line is drawn from the current position
int left, to the starting point of the arc, and then the current position is updated to
int top, the end point of the arc.
int right,
int bottom,
int startingpointx,
int startingpointy,
int endingpointx,
int endingpointy)
defSize(int width, int height) Sets the default size of the element.
This can appear in IF and ELSE clauses with different values in each, and
causes the element to be resized automatically each time the values
change. For example:
if(HasTag("horizontal","true")) {
defSize(100,20);
rectangle(0,0,100,100);
}
else {
defSize(20,100);
rectangle(0,0,100,100);
}
The above example sets the shape to the specified default size each time
the
Tagged Value horizontal is changed.
When this is set, [Alt]+[Z] also resizes the shape to the defined dimensions.
Note:
The minimum value for both int width and int height is 10.
drawnativeshape() Causes Enterprise Architect to render the shape using its usual,
non-Shapescript notation. Subsequent drawing commands are
super-imposed over the native notation.
This method is only enabled for element Shape Scripts; line Shape Scripts
are not supported.
ellipse( Draws an ellipse with extents defined by left, top, right and bottom.
int left,
int top,
int right,
int bottom)
fillandstrokepath() Fills the previously defined path with the current fill color, then draws its
outline with the current pen.
fillpath() Fills the previously defined path with the current fill color.
image( Draws the image that has the name imageId in the Image Manager.
string imageId,
int left, Note:
int top,
The image must exist within the model in which the stereotype is used. If it
int right, does not already exist in the model, you must import it as reference data
int bottom) 225 .
lineto( Draws a line from the current cursor position to a point specified by x and y,
polygon( Draws a regular polygon with center at the point (centerx, centery), and
int centerx, numberofsides number of sides.
int centery,
int numberofsides,
int radius,
float rotation)
printifdefined( Prints the truepart if the given property exists and has a non-empty value,
string otherwise prints the optional falsepart.
propertyname,
string truepart[, Note:
string falsepart]) You cannot change the font size, type or color of this text.
printwrapped( Prints the specified text string, wrapped over multiple lines if the text is wider
string text) than its containing shape.
Note:
You cannot change the font size, type or color of this text.
rectangle( Draws a rectangle with extents at left, top, right, bottom. Values are
int left, percentages.
int top,
int right,
int bottom)
roundrect( Draws a rectangle with rounded corners, with extents defined by left, top,
int left, right and bottom. The size for the corners is defined by abs_cornerwidth
int top, and abs_cornerheight; these values do not scale with the shape.
int right,
int bottom,
int
abs_cornerwidth,
int
abs_cornerheight)
setdefaultcolors() Returns the brush and pen color to the default settings, or to the
user-defined colors if available. See Color Queries 1158 .
setlinestyle( Changes the stroke pattern for commands that use the pen.
string linestyle)
Parameters:
string linestyle: the following styles are valid:
· solid
· dash
· dot
· dashdot
· dashdotdot
setorigin( Positions floating text labels relative to the main shape.
string relativeTo,
relativeTo is one of N, NE, E, SE, S, SW, W, NW, CENTER
int xOffset,
int yOffset) xOffset and yOffset are in pixels, not percentage values, and can be
negative.
setpen( Sets the pen to the defined color and optionally sets the pen width.
int red,
int green, Note:
int blue[, This method is only for line-drawing commands. It does not affect any text
int penwidth]) commands.
setpenwidth( Sets the width of the pen. Pen width should be between 1 and 5.
int penwidth)
Note:
This method is only for line-drawing commands. It does not affect any text
commands.
startcloudpath( Similar to StartPath, except that it draws the path with cloud-like curved
puffWidth, segments (puffs).
puffHeight,
Parameters:
noise)
· float puffWidth (default = 30), the horizontal distance between puffs
· float puffHeight (default = 15), the vertical distance between puffs
· float noise (default = 1.0), the randomization of the puffs' positions.
startpath() Starts the sequence of drawing commands that define a path.
strokepath() Draws the outline of the previously defined path with the current pen.
rectangle(0,0,100,100);
}
Method Description
boolean HasTag( Returns true if the associated element has a tag value with the name tagname.
string tagname, If the second parameter tagvalue is provided, the tag tagname must be present,
[string and the value of the tag has to be equal to tagvalue for the method to return true
tagvalue]) .
boolean HasProperty( Returns true if the associated element has a property with the name
string propertyname. If the second parameter propertyvalue is provided, the property
propertyname, must be present, and the value of the property has to be equal to propertyvalue
[string for the method to return true.
propertyvalue])
See Display Element/Connector Properties 1158 for a list of valid values for
propertyname.
· visibility.
5.3.1.3.3.8 Sub-Shapes
Shapes can contain - and be composed of - other shapes.
Subshape Layout
To set the layout type, the layoutType attribute must be set in the initialization attributes section of the script;
in other words, before any of the methods are called. Valid values for this attribute are:
LeftRight
Shapes with leftright layout position subshapes side by side, with the first added on the left, and subsequent
subshapes to the right.
TopDown
TopDown places subshapes in a vertical arrangement, with the first shape added to the top and subsequent
shape added below.
Border
Border layout requires an additional argument to the addsubshape method to specify which region of the
containing shape the subshape is to occupy: N, E, S, W or CENTER. Each region can only be occupied by
one subshape.
A subshape that is assigned to the E or W region must have its preferredwidth attribute specified in its
declaration. Similarly, subshapes added to N or S must have their preferredheight attribute set. In this case,
the values for these attributes are treated as static lengths and do not scale glyphs.
For example:
shape main
{
layouttype="topdown";
setfillcolor{0,0,255};
rectangle{0,0,100,100};
addsubshape{"sub",50,100,20,0};
addsubshape{"sub",50,100,30,-100};
addsubshape{"sub",50,100,40,-200};
addsubshape{"sub",50,100,50,-300};
shape sub
{
setfillcolor{0,255,0};
ellipse{0,0,100,100};
}
}
Elements
Elements (such as Class, State or Event) have the following reserved names for parts of the shape.
Name Description
shape label The shape label gives the shape a detached label.
Connectors
Connectors (such as Association, Dependency or Generalization) have the following reserved names for parts
of the shape.
Name Description
shape source The source shape is an extra shape at the source end of the
connector.
shape target The target shape is an extra shape at the target end of the
connector.
shape <labelID> The <labelID> gives the connector a detached label, where
<labelID> is one of the following:
· LeftTopLabel
· MiddleTopLabel
· RightTopLabel
· LeftBottomLabel
· MiddleBottomLabel
· RightBottomLabel
5.3.1.3.3.10 Miscellaneous
Return Command
Execution of the script can be terminated by using the return command. Please see Example Scripts 1163 for an
example.
Looping
The Shape Script feature does not support looping constructs.
Comments
C-style comments are supported. For example:
// C Style Single Line comment
/* Multi Line
comment supported */
String Manipulation
Not Supported.
Arithmetical Operations
Not Supported.
Variables Declaration
Not Supported.
Code Result
//BASIC SHAPES
shape main
{
setfillcolor(255,0,0); // (R,G,B)
rectangle(0,0,90,30); // (x1,y1,x2,y2)
setfillcolor(0,255,0); // (R,G,B)
ellipse(0,30,90,60); // (x1,y1,x2,y2)
setfillcolor(0,0,255); // (R,G,B)
rectangle(0,60,90,90); // (x1,y1,x2,y2)
}
if (HasTag("Trigger","None"))
{
return;
}
if (HasTag("Trigger","Error"))
{
setfillcolor(0,0,0);
startpath();
moveto(23,77);
lineto(37,40);
lineto(60,47);
lineto(77,23);
lineto(63,60);
lineto(40,53);
lineto(23,77);
endpath();
fillandstrokepath();
return;
}
if (HasTag("Trigger","Message"))
Code Result
{
rectangle(22,22,78,78);
moveto(22,22);
lineto(50,50);
lineto(78,22);
return;
}
}
//SUB SHAPES
shape main
{
rectangle(0,0,100,100);
shape red
{
setfillcolor(200, 50, 100);
rectangle(0,0,100,100);
}
shape blue
{
setfillcolor(100, 50, 200);
rectangle(0,0,100,100);
}
shape green
{
setfillcolor(50, 200, 100);
rectangle(0,0,100,100);
}
}
//Editable Field Shape
shape main
{
rectangle(0,0,100,100);
shape namecompartment
{
h_align = "center";
editablefield = "name";
rectangle(0,0,100,100);
println("name: #name#");
}
shape stereotypecompartment
{
h_align = "center";
editablefield = "stereotype";
rectangle(0,0,100,100);
println("stereotype: #stereotype#");
}
}
Code Result
//Return Statement Shape
shape main
{
if(hasTag("alternatenotation", "false"))
{
//draw ea's inbuild glyph
drawnativeshape();
//exit script with the return statement
return;
}
// Connector Example
shape main
{
// draw a dashed line
noshadow=true;
setlinestyle("DASH");
moveto(0,0);
lineto(100,0);
}
shape source
{
// draw a circle at the source end
rotatable = true;
startpath();
ellipse(0,6,12,-6);
endpath();
fillandstrokepath();
}
shape target
{
// draw an arrowhead at the target end
rotatable = true;
startpath();
moveto(0,0);
lineto(16,6);
lineto(16,-6);
endpath();
fillandstrokepath();
}
// Double Line
shape main
{
noshadow=true;
moveto(0,-10);
lineto(100,-10);
moveto(0,10);
lineto(100,10);
Code Result
}
Note:
You can transport Tagged Value Type definitions between models, using the Export Reference Data 223 and
Import Reference Data 225 options on the Tools menu. Tagged Value Types are exported as Property
Types.
Note:
Tagged Value Type and Format entries are case-sensitive.
Custom Type= Custom; Enables you to create your own template for predefined
types; more information is provided in the Create
Custom Tagged Value Type 1171 topic.
DateTime Type=DateTime; Enables input of the date and time for the Tagged
Value from a calendar menu.
Float, Decimal, Double Type=Float; Enable entry of a Float, Decimal or Double value.
Type=Decimal; These types all map to the same type of data.
Type=Double; You can set a default for any or all of these.
Default=Val;
URL Type=URL; Enables entry of a web URL. The URL should start
Default=Val; with:
· 'http://'
· 'https://' or
· 'www.'.
You can set a default URL as a string value.
Tag Filters
The following table details filters that can be used to restrict where a Tagged Value can be applied.
AppliesTo AppliesTo=Type1, Restricts the element types this filter can be applied to,
Type2; where Type1 and Type2 are the valid types.
Possible values are:
· all element types
· all connector types
· Attribute
· Operation and
· OperationParameter.
BaseStereotype BaseStereotype=S1,S2; Restricts the stereotypes that this tag belongs to,
where S1 and S2 are the allowed stereotypes.
In the example above (which is used in the definition of a field to enable a user to set a sports handicap)
the predefined type is Spin, with the Upper and Lower Bounds set for the field values. (Spin is the
Microsoft term for selection arrows in a variable field - the user clicks on the arrows to increase or
decrease the value between the upper and lower bound limits.)
6. Click on the Save button.
The Tagged Value type displays in the Defined Tag Types list.
Authors Type=Enum; Authors that have been defined for the Enterprise Architect
List=Authors; model.
Cardinality Type=Enum; Cardinality types that have been defined for the Enterprise
List=Cardinality; Architect model.
Clients Type=Enum; Clients that have been defined for the Enterprise Architect
List=Clients; model.
ComplexityTypes Type=Enum; Complexity types that have been defined for the Enterprise
List=ComplexityTypes; Architect model.
Whilst complexity types can be exported and imported as
project reference data 644 , they cannot be updated and so
are effectively standard across all projects.
ConstraintTypes Type=Enum; Constraint types that have been defined for the Enterprise
List=ConstraintTypes; Architect model.
EffortTypes Type=Enum; Effort types that have been defined for the Enterprise
List=EffortTypes; Architect model.
MaintenanceType Type=Enum; Maintenance types that have been defined for the
s List=MaintenanceTypes Enterprise Architect model.
;
ObjectTypes Type=Enum; Object types that have been defined for the Enterprise
List=ObjectTypes; Architect model.
Phases Type=Enum; Phases that have been defined for the Enterprise Architect
List=Phases; model.
ProblemTypes Type=Enum; Problem types that have been defined for the Enterprise
List=ProblemTypes; Architect model.
RoleTypes Type=Enum; Role types that have been defined for the Enterprise
List=RoleTypes; Architect model.
RequirementType Type=Enum; Requirement types that have been defined for the
s List=RequirementTypes Enterprise Architect model.
;
Resources Type=Enum; Resources that have been defined for the Enterprise
List=Resources; Architect model.
RiskTypes Type=Enum; Risk types that have been defined for the Enterprise
List=RiskTypes; Architect model.
RTFTemplates Type=Enum; RTF Templates that have been defined for the Enterprise
List=RTFTemplates; Architect model.
ScenarioTypes Type=Enum; Scenario types that have been defined for the Enterprise
List=ScenarioTypes; Architect model.
TestTypes Type=Enum; Test types that have been defined for the Enterprise
List=TestTypes; Architect model.
This enables you to assign any of the previously defined Authors to a model feature (model features
that can have Tagged Values applied to them are detailed in the Model Elements and Features with
Tagged Values 633 topic.
Note:
If the values in the reference data are changed after the Tagged Value Type is created, Enterprise Architect
must be reloaded in order to reflect the changes in the Tagged Value Type.
Mask Description
In the diagram below the Mask configuration option shows syntax that first defines seven blank spaces, which
are occupied by characters determined by the template option. The first two visible characters in the Mask
option are represented by a lower case c indicating that the enableable information can entered as either an
alpha character or as a space. The following blank spaces again indicate space defined by the template option
and the remaining characters are defined by the d character, which represents the enableable characters as
digits or spaces. The hyphen is present in the final output, splitting up the digits.
With the Template configuration option, the syntax defines the template of the masked option by occupying
the blank spaces that are present in the Mask option. The template is used to ensure that this information is
present with every use of this custom Tagged Value. The underscored values indicate the area that is to be
occupied by data input by the user as defined in the Mask option.
On the final line, the word class, including the subsequent space, would be treated as literal text and thus
reproduced in the output. The blank line following the CONVERT_SCOPE macro, however, would have no
effect on the output.
The %, $ and " characters have special meaning in the template syntax and cannot always be used as literal
text. If these characters must be generated from within the templates, they can be safely reproduced using the
following direct substitution macros:
Macro Use to
5.3.1.5.1.2 Macros
Macros provide access to element fields within the UML model and are also used to structure the generated
output. All macros are enclosed within percent (%) signs. The CTF contains six basic types of macros:
· Template substitution macros 1173
· Field substitution macros 1174
· Tagged Value substitution macros 1186
Template substitution macros correspond to Base templates 1302 . These macros result in the execution of the
named template. By convention, template macros are named according to Pascal casing.
Structure: %<TemplateName>%
where <TemplateName> can be one of the templates listed below.
When a template is referenced from within another template, it is generated with respect to the elements
currently in scope. The specific template is selected based on the stereotypes of the elements in scope.
As noted previously, there is an implicit hierarchy among the various templates. Some care should be taken in
order to preserve a sensible hierarchy of template references. For example, it does not make sense to use
the %ClassInherits% macro within any of the attribute or operation templates. Conversely, the Operation and
Attribute templates are designed for use within the ClassBody template.
The CTF contains the following template substitution macros:
The field substitution macros provide access to data in the model. In particular, they are used to access data
fields from:
· Packages
· Classes
· Attributes
· Operations
· Parameters.
Field substitution macros are named according to Camel casing. By convention, the macro is prefixed with an
abbreviated form of the corresponding model element. For example, attribute-related macros begin with att, as
in the %attName% macro, to access the name of the attribute in scope.
The following table lists each of the field substitution macros with a description of the result.
Note:
Macros that represent checkboxes return a value of T if the box is selected. Otherwise the value is empty.
attClassifierGUID The unique GUID for the classifier of the current attribute.
attQualType The attribute type qualified by the namespace path (if generating
namespaces) and the classifier path (dot delimited). If the attribute
classBaseName Type Hierarchy dialog: Class Name (for use where no connector exists
between child and base Classes).
classBaseScope The scope of the inheritance as reverse engineered. (For use where no
connector exists between child and base Classes.)
classBaseVirtual The virtual property of the inheritance as reverse engineered. (For use
where no connector exists between child and base Classes.)
classHasConstructor Looks at the list of methods in the current object and, depending on the
conventions of the current language, returns T if one is a default
constructor. Typically used with the genOptGenConstructor 1180 macro.
classHasCopyConstructor Looks at the list of methods in the current object and, depending on the
conventions of the current language, returns T if one is a copy
constructor. Typically used with the genOptGenCopyConstructor 1180
macro.
classHasDestructor Looks at the list of methods in the current object and, depending on the
conventions of the current language, returns T if one is a destructor.
Typically used with the genOptGenDestructor 1180 macro.
classHasParent True, if the Class in scope has one or more base Classes.
classModified The date and time the Class was last modified.
classQualName The Class name prefixed by its outer Classes. Class names are
separated by double colons (::).
connectorDestElem* A set of macros that access a property of the element at the target end
of a connector. The * (asterisk) is a wildcard that corresponds to any
class substitution macro in this list; for example:
connectorDestElemAlias (classAlias), connectorDestElemAuthor (
classAuthor).
connectorDestElemType The element type of the connector destination element. (Separate from
the connectorDestElem* macros because there is no classType
substitution macro.)
connectorSourceElem* A set of macros that access a property of the element at the source end
of a connector. The * (asterisk) is a wildcard that corresponds to any
class substitution macro in this list; for example:
connectorSourceElemAlias (classAlias), connectorSourceElemAuthor (
classAuthor).
connectorSourceElemType The element type of the connector source element. (Separate from the
connectorSourceElem* macros because there is no classType
substitution macro.)
fileNameImpl The filename of the implementation file for this generation, if applicable.
fileImports Code Gen dialog: Imports. For supported languages this also includes
filePathImpl The full path of the implementation file for this generation, if applicable.
genOptGenPrefixBoolProperties Source Code Engineering dialog: Use is prefix for boolean property
Get().
genOptWrapComment Source Code Engineering dialog: Wrap length for comment lines.
importFromAtt T if an attribute of a Class in the current file is of the type of this Class,
F otherwise.
importFromMeth T if a method return type of a Class in the current file is the type of this
Class, Fotherwise.
importPackagePath The package path with a '.' separator of the Class being imported.
ImportRelativeFilePath The relative file path of the Class being imported from the file path of
the file being generated.
linkAttQualName The Association target qualified by the namespace path (if generating
namespaces) and the classifier path (dot delimited).
opReturnClassifierGUID The unique GUID for the classifier of the current operation.
opReturnQualType The operation return type qualified by the namespace path (if
generating namespaces) and the classifier path (dot delimited). If the
return type classifier has not been set, is equivalent to the
opReturnType macro.
packagePath The string representing the hierarchy of packages, for the Class in
scope. Each package name is separated by a dot (.).
paramClassifierGUID The unique GUID for the classifier of the current parameter.
paramQualType The parameter type qualified by the namespace path (if generating
namespaces) and the classifier path (dot delimited). If the parameter
classifier has not been set, is equivalent to the paramType macro.
testClass The Testing window tab (the type of test defined): Unit, Integration,
System, Acceptance, Scenario.
Structure: %<macroName>%
Examples:
· %className%
· %opName%
· %attName%
Where:
· [ <text> ] denotes that <text> is optional
· <test> is a string representing a possible value for the macro
· <subTrue> and <subFalse> can be a combination of quoted strings and the keyword value; where the value is
used, it is replaced with the macro's value in the output.
Examples:
· %classAbstract=="T" ? "pure" : ""%
· %opStereotype=="operator" ? "operator" : ""%
· %paramDefault != "" ? " = " value : ""%
The above three examples output nothing if the condition fails. In this case the false condition can be omitted,
resulting in the following usage:
Examples:
· %classAbstract=="T" ? "pure"%
· %opStereotype=="operator" ? "operator"%
· %paramDefault != "" ? " = " value%
The third example of both blocks shows a comparison checking for a non-empty value or existence. This test
can also be omitted.
· %paramDefault ? " = " value : ""%
· %paramDefault ? " = " value%
All of the above examples containing paramDefault are equivalent. If the parameter in scope had a default
value of 10, the output from each of them would normally be:
= 10
Note:
In a conditional substitution macro, any white space following <macroName> is ignored. If white space is
required in the output, it should be included within the quoted substitution strings.
Tagged Value macros are a special form of field substitution macros, which provide access to element tags
and the corresponding Tagged Values.
· connectorSourceElemTag
· connectorSourceTag
· connectorTag
· linkAttTag
· linkTag
· opTag
· packageTag
· paramTag
This corresponds to the tags for attributes, Classes, operations, packages, parameters, connectors with both
ends, elements at both ends of connectors and connectors including the attribute end.
<tagName> is a string representing the specific tag name.
Examples:
%opTag:"attribute"%
Examples:
%opTag:"opInline" ? "inline" : ""%
%opTag:"opInline" ? "inline"%
%classTag:"unsafe" == "true" ? "unsafe" : ""%
%classTag:"unsafe" == "true" ? "unsafe"%
Tagged Value macros use the same naming convention as field substitution macros.
Function macros are a convenient way of manipulating and formatting various element data. Each function
macro returns a result string. There are two primary ways to use the results of function macros:
· Direct substitution of the returned string into the output, such as: %TO_LOWER(attName)%
· Storing the returned string as part of a variable definition such as: $name = %TO_LOWER(attName)%
Function macros can take parameters, which can be passed to the macros as:
· String literals, enclosed within double quotation marks
· Direct substitution macros without the enclosing percent signs
· Variable references
· Numeric literals.
Multiple parameters are passed using a comma-separated list.
The available function macros are described below. Parameters are denoted by angle brackets, as in:
FUNCTION_NAME(<param>).
Note:
Function macros are named according to the All-Caps style, as in: %CONVERT_SCOPE(opScope)%
CONVERT_SCOPE(<umlScope>)
For use with supported languages. Converts <umlScope> to the appropriate scope keyword for the language
being generated. The following table shows the conversion of <umlScope> with respect to the given language.
COLLECTION_CLASS(<language>)
Gives the appropriate collection Class for the language specified for the current linked attribute.
CSTYLE_COMMENT(<wrap_length>)
Converts the notes for the element currently in scope to plain C-style comments, using /* and */.
DELPHI_COMMENT(<wrap_length>)
Converts the notes for the element currently in scope to Delphi comments.
FIND(<src>, <subString>)
Position of the first instance of <subString> in <src>; -1 if none.
GET_ALIGNMENT()
Returns a string where all of the text on the current line of output is converted into spaces and tabs.
JAVADOC_COMMENT(<wrap_length>)
Converts the notes for the element currently in scope to javadoc-style comments.
LEFT(<src>, <count>)
The first <count> characters of <src>.
LENGTH(<src>)
Length of <src>.
MID(<src>, <count>)
MID(<src>, <start>, <count>)
Substring of <src> starting at <start> and including <count> characters. Where <count> is omitted the rest of
PROCESS_END_OBJECT(<template_name>)
Enables the Classes that are one Class further away from the base Class, to be transformed into objects
(such as attributes, operations, packages, parameters and columns) of the base Class. <template_name>
refers to the working template that temporarily stores the data.
REMOVE_DUPLICATES(<source>, <separator>)
Where <source> is a <separator> separated list; this removes any duplicate or empty strings.
RESOLVE_OP_NAME()
Resolves clashes in interface names where two method-from interfaces have the same name.
RESOLVE_QUALIFIED_TYPE()
RESOLVE_QUALIFIED_TYPE(<separator>)
RESOLVE_QUALIFIED_TYPE(<separator>, <default>)
Generates a qualified type for the current attribute, linked attribute, linked parent, operation, or parameter.
Enables the specification of a separator other than . and a default value for when some value is required.
RIGHT(<src>, <count>)
The last <count> characters of <src>.
TO_LOWER(<string>)
Converts <string> to lower case.
TO_UPPER(<string>)
Converts <string> to upper case.
TRIM(<string>)
TRIM(<string>, <trimChars>)
Removes trailing and leading white spaces from <string>. If <trimChars> is specified, all leading and trailing
characters in the set of <trimChars> are removed.
TRIM_LEFT(<string>)
TRIM_LEFT(<string>, <trimChars>)
Removes the specified leading characters from <string>.
TRIM_RIGHT(<string>)
TRIM_RIGHT(<string>, <trimChars>)
Removes the specified trailing characters from <string>.
VB_COMMENT(<wrap_length>)
Converts the notes for the element currently in scope to Visual Basic style comments.
Note:
<wrap_length> must still be passed as a string, even though WRAP_COMMENT treats this parameter as an
integer.
XML_COMMENT(<wrap_length>)
Converts the notes for the element currently in scope to XML-style comments.
Control macros are used to control the processing and formatting of the templates. The basic types of control
macro include:
· The list macro, for generating multiple element features, such as attributes and operations
· The branching macros, which form if-then-else constructs to conditionally execute parts of a template
· The PI macro, which takes effect from the next non-empty line
· A PI function macro 1187 that enables setting PI to a variable and adds the ability to set the PI that is
generated before the next line
· The PI macro for formatting new lines in the output
· The synchronization macros.
In general, control macros are named according to Camel casing.
List
The list macro is used to generate multiple elements. The basic structure is:
%list=<TemplateName> @separator=<string> @indent=<string> [<conditions>]%
where <string> is a double-quoted literal string and <TemplateName> can be one of the following template
names:
· Attribute
· Class
· ClassBase
· ClassImpl
· ClassInterface
· Constraint
· Custom Template (custom templates enable you to define your own templates; for more information see
Custom Templates) 1202 .
· Effort
· InnerClass
· InnerClassImpl
· LinkedFile
· Metric
· Namespace
· Operation
· OperationImpl
· Parameter
· Problem
· Requirement
· Resource
· Risk
· Scenario
· Test
<conditions> is optional and appears the same as the conditions for if and elseIf statements.
Example:
%list="Attribute" @separator="\n" @indent=" "%
The separator attribute, denoted above by @separator, specifies the space that should be used between the
list items. This excludes the last item in the list.
The indent attribute, denoted by @indent, specifies the space by which each line in the generated output
should be indented.
The above example would output the result of processing the Attribute template, for each attribute element of
the Class in scope. The resultant list would separate its items with a single new line and indent them two
spaces respectively. If the Class in scope had any stereotyped attributes, they would be generated using the
appropriately specialized template.
There are some special cases to consider when using the list macro:
· If the Attribute template is used as an argument to the list macro, this also generates attributes derived
from associations by executing the appropriate LinkedAttribute template
· If the ClassBase template is used as an argument to the list macro, this also generates Class bases
derived from links in the model by executing the appropriate LinkedClassBase template
· If the ClassInterface template is used as an argument to the list macro, this also generates Class bases
derived from links in the model by executing the appropriate LinkedClassInterface template
· If InnerClass or InnerClassImpl is used as an argument to the list macro, these Classes are generated
using the Class and ClassImpl templates respectively. These arguments tell Enterprise Architect that it
should process the templates based on the inner Classes of the Class in scope.
Note:
When specifying multiple conditions, and and or have the same order of precedence, and conditions are
processed left to right.
The endif or endTemplate macros must be used to signify the end of a branch. In addition, the endTemplate
macro causes the template to return immediately, if the corresponding branch is being executed.
Example:
%if elemType == "Interface"%
;
%else%
%OperationBody%
%endIf%
Example:
$bases=%list="ClassBase" @separator=", "%
$interfaces=%list="ClassInterface" @separator=", "%
%if $bases != "" and $interfaces != ""%
: $bases, $interfaces
%elseIf $bases != ""%
: $bases
%elseIf $interfaces != ""%
: $interfaces
%endIf%
The PI Macro
There are two primary means of generating whitespace from the templates:
· Explicitly using the newline, space and tab characters (\n, ,\t) as part of Literal Text
· Using the PI macro to format lines in the template that result in non-empty substitutions in the output.
By default, each template line that generates a non-empty substitution also results in a newline being
produced in the output. This behavior can be changed through the PI macro.
To demonstrate the use of the PI macro, consider the default C# Operation template:
%opTag:"Attribute"% Default PI is \n, so any attributes would be on their
own line
Blank lines have no effect on the output
%PI=" "%
%opTag:"unsafe"=="true" ? "unsafe" : ""% Set the PI, so keywords are separated by a space
%CONVERT_SCOPE(opScope)%
%opTag:"new"=="true" ? "new" : ""% Any keyword that does not apply - that is, the macro
%opAbstract=="T" ? "abstract" : ""% produces an empty result - does not result in a space
%opConst=="T" ? "sealed" : ""%
%opStatic=="T" ? "static" : ""%
%opTag:"extern"=="true" ? "extern" : ""%
%opTag:"delegate"=="true" ? "delegate" : ""%
%opTag:"override"=="true" ? "override" : ""%
%opTag:"virtual"=="true" ? "virtual" : ""% Only one space is generated for this line
%opReturnType%%opReturnArray=="T" ? "[]" : ""%
%opStereotype=="operator" ? "operator" : ""%
%opName%(%list="Parameter" @separator=", "%)
The final line in the template does not generate a
space
In the above example macros for the various keywords are to be arranged vertically for readability. In the
output, however, each relevant keyword is to be separated by a single space. This is achieved by the line:
%PI=" "%
Notice how you do not specify the space between each of the possible keywords. This space is already
implied by setting the PI to a single space. Essentially the PI acts as a convenience mechanism for formatting
the output from within the templates.
The structure for setting the processing instruction is:
%PI=<value>%
where <value> can be a literal string enclosed by double quotes.
The following points apply to the PI macro:
· The value of the PI is not accessed explicitly
· Only template lines that result in a non-empty substitution cause the PI to be generated
· The last non-empty template line does not cause the PI to be generated
· The PI is not appended to the last substitution, regardless of which template line caused that substitution.
Synchronization Macros
The synchronization macros are used to provide formatting hints to Enterprise Architect when inserting new
sections into the source code, during forward synchronization. The values for synchronization macros must be
set in the File templates.
The structure for setting synchronization macros is:
%<name>=<value>%
where <name> can be one of the macros listed below and <value> is a literal string enclosed by double
quotes.
Enterprise Architect provides two Enterprise Architect Simulation Library (EASL) code generation macros to
generate code from behavioral models. These are:
· EASL_GET and
· EASLList.
EASL_GET
The EASL_GET macro is used to retrieve a property or a collection of an EASL object. The EASL objects and
the properties and collections for each object are identified in the EASL Collections 1194 and EASL Properties
1196 topics.
Syntax
$result = %EASL_GET(<<Property>>, <<Owner ID>>, <<Name>>)
where:
· <<Property>> is either "Property" or "Collection"
· <<OwnerID>> is the ID of the owner object for which the property/collection is to be retrieved
· <<Name>> is the name of the property or Collection being accessed
· $result is the returned value; this is “” if not a valid property.
Example
$sPropName = %EASL_GET("Property", $context, "Name")%
EASLList
The EASLList macro is used to render each object in an EASL collection using the appropriate template.
Syntax
$result = %EASLList=<<TemplateName>> @separator=<<Separator>>
@indent=<<indent>> @owner=<<OwnedID>>
@collection=<<CollectionName>> @option1=<<OPTION1>>
@option2=<<OPTION2>>......... @optionN=<<OPTIONN>>%
where:
· <<TemplateName>> is the name of any behavioral model template 1194 or custom template 1202
· <<Separator>> is a list separator (such as “\n”)
· <<indent>> is any indentation to be applied to the result
· <<owner>> is the ID of the object that contains the required collection
· <<CollectionName>>is the name of the required collection
· <<OPTION1>....<<OPTION99>> are miscellaneous options that might be passed on the template; each
option is given as an additional input parameter to the template
· $result is the resultant value; this is “” if not a valid collection.
Example
$sStates = %EASLList="State" @separator="\n" @indent="\t"
@owner=$StateMachineGUID @collection="States" @option=$sOption%
Action
Collection Name Description
Behavior
Collection Name Description
Classifier
Collection Name Description
Construct
Collection Name Description
Node
Collection Name Description
State
Collection Name Description
StateMachine
Collection Name Description
AllStates All States within the State Machine, including those within Submachine
States.
DerivedTransitions The State Machine's derived transitions with the associated valid effect.
Transition
Collection Name Description
Trigger
Collection Name Description
Vertex
Collection Name Description
DerivedOutgoingTransitions The Vertex's derived outgoing transitions after traversing the pseudo-nodes.
This topic lists the EASL properties for each of the EASL objects, as retrieved by the EASL_GET 1193 code
generation macro.
Action
Property Name Description
Behavior The Action's associated behavior (Call Behavior Action or Call Operation Action).
Argument
Property Name Description
Behavior
Property Name Description
CallEvent
Property Name Description
ChangeEvent
Property Name Description
Classifier
Property Name Description
HasBehaviors A check on whether the Classifier has behavioral models (Activity and
Interaction).
Condition
Property Name Description
Construct
Property Name Description
Edge
Property Name Description
EventObject
Property Name Description
Instance
Property Name Description
Parameter
Property Name Description
Primitive
Property Name Description
PropertyObject
Property Name Description
SignalEvent
Property Name Description
State
Property Name Description
SubMachine Get the ID of the Submachine contained by the State (if applicable).
StateMachine
Property Name Description
TimeEvent
Property Name Description
Transition
Property Name Description
IsTranscend A check on whether the transition transcends from one State Machine
(Submachine state) to another.
Trigger
Property Name Description
Vertex
Property Name Description
5.3.1.5.1.3 Variables
Template variables provide a convenient way of storing and retrieving data within a template. This section
explains how variables are defined 1200 and referenced 1201 .
Variable Definitions
Variable definitions take the basic form:
$<name> = <value>
where <name> can be any alpha-numeric sequence and <value> is derived from a macro or another variable.
A simple example definition would be:
$foo = %className%
Variables can be defined, using values from:
· Substitution, function or list macros
· String literals, enclosed within double quotation marks
· Variable references.
Definition Rules
The following rules apply to variable definitions:
· Variables have global scope within the template in which they are defined and are not accessible to other
templates
· Each variable must be defined at the start of a line, without any intervening whitespace
· Variables are denoted by prefixing the name with $, as in $foo
· Variables do not have to be declared, prior to being defined
· Variables must be defined using either the assignment operator (=), or the addition-assignment operator
(+=)
· Multiple terms can be combined in a single definition using the addition operator (+).
Examples
Using a substitution macro:
$foo = %opTag:"bar"%
Using a literal string:
$foo = "bar"
Using another variable:
$foo = $bar
Using a list macro:
$ops = %list="Operation" @separator="\n\n" @indent="\t"%
Using the addition-assignment operator (+=):
$body += %list="Operation" @separator="\n\n" @indent="\t"%
The above definition is equivalent to the following:
$body = $body + %list="Operation" @separator="\n\n" @indent="\t"%
Using multiple terms:
$templateArgs = %list="ClassParameter" @separator=", "%
$template ="template<" + $templateArgs + ">"
Variable References
Variable values can be retrieved by using a reference of the form:
$<name>
where <name> can be a previously defined variable.
Variable references can be used in one of the following ways:
· As part of a macro, such as the argument to a function macro
· As a term in a variable definition
· As a direct substitution of the variable value into the output.
Note:
It is legal to reference a variable before it is defined. In this case, the variable is assumed to contain an empty
string value: ""
Example 1
Using variables as part of a macro. The following is an excerpt from the default C++ ClassNotes template.
$wrapLen = %genOptWrapComment% Define variables to store the style and wrap length
$style = %genOptCPPCommentStyle%
options.
%if $style == "XML.NET"%
%XML_COMMENT($wrapLen)% Reference to $style as part of a condition.
%else%
%CSTYLE_COMMENT($wrapLen)%
%endIf% Reference to $wrapLen as an argument to function macro.
Example 2
Using variable references as part of a variable definitions:
$foo = "foo" Define our variables.
$bar = "bar"
$foobar now contains the value foobar.
$foobar = $foo + $bar
Example 3
Substituting variable values into the output
$bases=%classInherits% Store the result of the ClassInherits template in $bases.
Class %className%$bases Now output the value of $bases after the Class name.
The Code Template Editor provides the facilities of the Common Code Editor, including intellisense for the
code generation template macros 1173 . For more information on intellisense and the Common Code Editor, see
the Code Editors 1428 topic.
4. In the Template Type field, click on the drop-down arrow and select the appropriate element. The
elements currently supported are:
· Attribute
· Class
· Class Base
· Class Interface
· Class Parameter
· Connector
· Import
· Linked Attribute
· Linked Class Base
· Linked Class Interface
· Namespace
· Operation
· Parameter.
Note:
<None> requires special treatment. It enables the definition of a function macro that doesn't actually
apply to any of the types, but must be called as a function to define variables $parameter1,
$parameter2 and so on for each value passed in.
5. In the Template Name field, type an appropriate name, then click on the OK button.
6. On the Code Templates Editor tab, the new template displays in the Templates list with the value Yes in
the Modified field. The template is called <Template Type>_<Template Name>.
7. Select the appropriate template from the Templates list and edit the contents in the Template field to
meet your requirements.
8. Click on the Save button. This stores the new stereotyped template in the .EAP file. The template is
now available from the list of templates and via direct substitution for use.
Procedure
To override a default code generation template, follow the steps below.
1. Select the Configuration | Code Generation Templates menu option. The Code Templates Editor
displays.
2. Select the appropriate language from the Language list.
3. Select one of the base templates from the Templates list.
4. If the base template has stereotyped overrides, you can select one of these from the Stereotype
Overrides list.
5. In the Code Templates Editor, make the required modifications.
6. Click on the Save button. This stores the modified version of the template to the .EAP file. The template
is marked as modified.
When generating code, Enterprise Architect now uses the overridden template, instead of the default
template.
5. Select the required Feature and/or Class stereotype and click on the OK button.
6. The new stereotyped template override displays in Stereotype Overrides list, marked as modified.
7. Make the required modifications in the Code Templates Editor.
8. Click on the Save button. This stores the new stereotyped template in the .EAP file.
Enterprise Architect can now use the stereotyped template, when generating code for elements of that
stereotype.
Note that Class and feature stereotypes can be combined to provide a further level of specialization for
features. For example, if properties should be generated differently when the Class has a stereotype
MyStereotype, then both property and MyStereotype should be specified in the New Template Override dialog.
Note:
The File template must be defined for the custom language. The File template can then see the Import
Section, Namespace and Class templates.
VI
1208 Navigate, Search and Trace |
This section explains how you navigate through the model structures in Enterprise Architect, locate and
display specific data and structures, and trace the origins and development of the model components.
The section describes:
· The Enterprise Architect Project Browser 1209
· The use of Model Views 1222 to provide different perspectives
· The Model Search 1231 facility
· Support for Traceability 1245 during model development
· Use of the Element List 1255 to review model components
· Use of the Relationship Matrix 1261 to review relationships between model components.
The Project Browser enables you to navigate through the Enterprise Architect project space. It displays
packages, diagrams, elements and element properties.
You can drag and drop elements between folders, or drop (paste) 430 elements from the Project Browser
directly into the current diagram.
If you right-click on an item in the Project Browser to display the context menus, you can perform additional
actions such as adding new packages, creating diagrams, renaming items, creating documentation and other
reports, and deleting model elements. You can also edit the name of any item in the Project Browser by
selecting the item and pressing [F2].
Tip:
The Project Browser is the main view of all model elements in your model; use the mouse to navigate the
project.
Note:
You can hide and show the Project Browser by pressing [Alt]+[0].
Views
The Project Browser can be divided into Views 383 , each of which contains diagrams, packages and other
elements. A default View hierarchy is described below, but you can create different Views to suit your
requirements:
View Description
Use Case View The functional and early analysis View. Contains Business Process and Use Case
models.
Dynamic View Contains State Charts, Activity and Interaction diagrams. The dynamics of your system.
Component View A View for your system components. The high level view of what software is to be built
(such as executables, DLLs and components).
Deployment The physical model; what hardware is to be deployed and what software is to run on it.
View
Custom View A work area for other Views, such as formal requirements, recycle bin, interview notes
and non-functional requirements.
Selective Collapse
When you are working on an expanded project in the Project Browser, you might want to locate the parent
element or package of an item, and/or collapse the structure under that parent element or package. To do this,
follow the steps below:
1. Position the cursor on an item within the element or package.
2. Press [!] on the keyboard to highlight the parent.
3. Press the key again to collapse the structure under that parent element or package.
See Also
· Project Browser Icon Overlays 1213
Double-click Behavior
In the Double click on browser panel, select the appropriate radio button.
· Shows Properties - double-clicking an item in the Project Browser opens a Property dialog (if available)
for that element
· Opens Branch - double-clicking an item in the Project Browser expands the tree to show the item's
children; if there are no children, nothing happens
· Opens Branch & Diagram - as above, but also opens the first diagram beneath the item, if applicable.
You move elements using the icon (moves the element further up the tree) and icon (moves the
element further down the tree) in the Project Browser toolbar.
Show Stereotypes
1. On the Options dialog, in the Project Browser panel, select the Show Stereotypes checkbox.
2. When prompted, shut down and restart Enterprise Architect to enable this change to take effect.
As shown in the above screen, when a stereotype is defined for an element, the stereotype name then
displays in front of the element name (see Action4 and Activity1).
You set the stereotype of an element in its Properties dialog.
The functions of each icon in the toolbar are, from left to right:
· Create a new Model Package 372 in the project, from a predefined UML or Technology pattern
· Create a new child package 387 under the selected package
· Create a new child diagram 422 under the selected package or element
· Create a new child element 524 under the selected package or element
· Perform a simple search for a text string in the Project Browser
· Provide options to generate an RTF report 1570 , HTML report 1647 or Diagram Only 1625 report on the selected
package in the Project Browser
· Provide options to generate source code 1311 or DDL 1369 , import a source directory 1332 , binary module 1334
or database schema 1363 , generate package contents 1313 to synchronize with package code, or reset the
source code language 1361 , all for the selected package
· Move the selected package or element further up the Project Browser, within its parent package
· Move the selected package or element further down the Project Browser, within its parent package
· Open the Enterprise Architect Help on the Project Browser.
This package is controlled 293 and is represented by an XMI file on disk. Version control
either is not being used or is not available. You can edit the package.
This package is version controlled and checked out 261 to you, therefore you can edit the
package.
This package is version controlled and not checked out to you, therefore you cannot edit
the package (unless you check the package out).
This package is version controlled, but you checked it out whilst not connected to the
version control 268 server. You can edit the package but there could be version conflicts
when you check the package in again.
This package is a namespace root. It denotes where the namespace structure starts;
packages below this point are generated as namespaces 1313 to code.
<MDG Add-In MDG Add-Ins 1821 specify their own icon to denote that this branch of the model belongs
icon> to that Add-In. All packages connected to an MDG Add-In correspond to a namespace
root, so the namespace root icon is not displayed.
Similarly, the Project Browser indicates attribute and operation scope status with icons. The following table
describes what each indicator icon means.
In the Corporate, Business and Software Engineering, Systems Engineering and Ultimate editions, if Project
User Security 188 is on, the Project Browser also has element locking indicators (red and blue exclamation
marks) that indicate the lock status of individual elements and packages. The availability of these elements for
editing depends on whether user locks are required or not. For further information, see the Locked Element
Indicators 206 topic.
Add-In Access the facilities of each Add-In currently enabled for the project.
Scripts List the scripts enabled for execution directly from the Project Browser
.
(Does not display if no Project Browser scripts exist.)
Add a New Model using Wizard Add further models using the Model Wizard 372 .
Copy Package to Clipboard Copy the selected package 388 to the clipboard, to be copied into
another package in the same .eap file or a different .eap file.
Paste Package from Clipboard Paste a package 388 from the clipboard into the selected package.
Import Model from XMI Import a model 288 from an XMI file.
[Ctrl]+[Alt]+[I]
Rich Text Format (RTF) Report Produce RTF documentation 1569 for the model.
[F8]
Diagrams Only Report Produce a Diagrams Only 1625 report (in RTF) for the model.
[Ctrl]+[Shift]+[F8]
Copy Reference Copy a reference to the root node to the Enterprise Architect
clipboard. Select the appropriate sub-option to copy the:
· selected package hierarchy structure (node path) or
· node GUID.
Delete Project Root Delete the Model node and all subordinate Views and packages.
Add-In Access the facilities of each Add-In currently enabled for the project.
Scripts List the scripts 1663 enabled for execution directly from the Project Browser.
(Does not display if no Project Browser scripts exist.)
Package Control Submit packages to package control 294 and version control 257 .
Add Add 1216 a new diagram, element or another package to the current package.
View Package As List Display the Element List 1255 , showing the elements contained in the selected
package.
Turn On Level Numbering Add a sequence number to each element in the package, based on the
element's position in the package hierarchy 923 .
(Turn Off Level Numbering)
For nested elements, the numbering indicates level; that is:
3.2
3.2.1
3.2.1.1.
This option is only available for packages, and the numbering only applies to
the elements in the package, not diagrams.
If elements are added, moved or deleted from the package, the numbering
automatically adjusts.
Linked Document Create or display a linked document 597 for the package or view.
[Ctrl]+[Alt]+[D]
Delete Linked Document Delete the linked document attached to the package. The system prompts
you to confirm the deletion.
Paste Diagram If you have copied a diagram from another package, paste the diagram into
the currently-selected package.
Execution Analyzer Perform build, run 1217 and execution analysis functions.
Find in Project Browser Search the Project Browser for specific elements.
[Ctrl]+[Shift]+[F]
Copy Reference Copy a reference to the package to the Enterprise Architect clipboard. Select
the appropriate sub-option to copy the:
· selected package hierarchy structure (node path) or
· node GUID.
Copy Package to Clipboard Copy the selected package 388 to the clipboard, to be copied into another
package in the same .eap file or a different .eap file.
Paste Package from Paste a package 388 from the clipboard into the selected package.
Clipboard
Paste Element(s) from Paste elements copied to the clipboard 531 into the selected package.
Clipboard
Set View Icon Change the display icon for the selected package (View level).
Reset Sort Order Return sorting of package contents to list in alphabetical order.
Reload current package Refresh the current package 267 in the Project Browser.
Add-In Access the facilities of each Add-In currently enabled for the project.
Scripts List the scripts 1663 enabled for execution directly from the Project Browser.
(Does not display if no Project Browser scripts exist.)
Rule Composer For a Rule Task element, invoke the Rule Composer 945 tab in Business
Rule Modeling.
Create Workbench Instance Create workbench variables 1521 from the selected Class. When you select
[Ctrl]+[Shift]+[J] this option, Enterprise Architect prompts you to name the variable. It then
displays in the Workbench 1519 window.
Generate Code [F11] Generate the source code for this element. See Generate Source Code 1308
Synchronize with Code [F7] Synchronize the element in the diagram with the source code. See Import
Source Code 1328 .
View Source Code [F12] View the source code 1441 of the element.
Copy RTF Bookmark Copy a bookmark 1639 in RTF format to the clipboard.
Delete Linked Document Delete the linked document attached to the selected element.
Add Custom Reference Set up cross references 527 between elements in a diagram and the
[Ctrl]+[J] selected element in the Project Browser.
Copy Element(s) to Copy the selected element 531 or elements to the clipboard to be pasted
Clipboard into another package in this .eap file or another .eap file.
Copy Reference Copy a reference to the element to the Enterprise Architect clipboard.
Select the appropriate sub-option to copy the:
· selected element hierarchy structure (node path) or
· node GUID.
Move Up Move the element up in the list of elements within this package.
Move Down Move the element down in the list of elements within this package.
· Add a Behavior element (Activity 753 , Interaction 780 or State Machine 796 ) and one of its associated
diagrams to the selected Classifier 519 element
· Add a Rule Flow Activity 939 element to a Class, in Business Rule Modeling
· Create a diagram to explain or expand on the selected Classifier element, using the New Diagram 422
dialog, or
· Create a connector 618 to another element.
Elements such as Actors, Classes and Activities can define a large amount of information that can be
conveniently represented by or expanded in a child diagram. The Add sub-menu for these elements provides
all of the options listed above.
Other elements, such as Timing, Exit and History have much more specific functions that do not require
expansion. Therefore, the Add sub-menu for these elements only provides the option to create a connector to
another element, and does not offer options for adding child elements and diagrams.
Add-In Access the facilities of each Add-In currently enabled for the project.
Scripts List the scripts 1663 enabled for execution directly from the Project Browser.
(Does not display if no Project Browser scripts exist.)
View Diagram As List Display the Element List 1255 , listing the elements in the selected diagram.
Copy Diagram Copy the diagram for pasting into another location (see Copy a Diagram 436 ).
Copy RTF Bookmark Copy a bookmark 1639 in RTF format to the clipboard.
Add Custom Reference Add this diagram as a cross reference 527 to other elements.
Print Diagram(s) Print the currently-selected diagram or diagrams (hold [Ctrl] or [Shift] while
selecting).
Copy Reference Copy a reference to the diagram node to the Enterprise Architect clipboard.
Select the appropriate sub-option to copy the:
· selected hierarchy structure (node path) or
· node GUID.
Move up Move the diagram up in the list of diagrams within this package.
Move down Move the diagram down in the list of diagrams within this package.
Delete selected items Delete several selected diagrams (hold [Ctrl] or [Shift] while selecting).
Add-In Access the facilities of each Add-In currently enabled for the project.
Scripts List the scripts 1663 enabled for execution directly from the Project
Browser.
(Does not display if no Project Browser scripts exist.)
View Source Code [F12] Open the Source Code Viewer 1441 and display the operation.
Copy Reference Copy a reference to the operation to the Enterprise Architect clipboard.
Select the appropriate sub-option to copy the:
· selected hierarchy structure (node path) or
· node GUID.
Delete Operation Delete the operation.
You can display an equivalent context menu for an attribute by right-clicking on the attribute in the Project
Browser.
The Model Views window enables you to encapsulate your model into the areas you are interested in. You
display the window by selecting the View | Model Views menu option.
Subordinate Folders
Under the My Views root node you can add a single level of View folders, which enable you to group Search
View folders as best suit your requirements.
· A Search View is a folder of elements or structures that you assemble by assigning a model search to the
folder. When you double-click or expand the folder, the search runs and refreshes the folder contents.
You can also set a search to refresh at a defined interval, and to notify you if new results 1226 are found.
Under a Model View root node you can create Views folders that can contain Search View folders, Slideshow
folders and Favorites folders.
· A Slideshow folder contains diagrams only, which you can display as a slide show 1228 with diagrams being
shown in the sequence in which they are listed in the folder. One folder represents one slide show. You can
run the slide show automatically or manually; in either case the diagrams are closed after they have been
displayed.
· A Favorites folder gives you easy access to commonly-used items in the Project Browser. To create
hyperlinks in a Favorites folder to the required items in the Project Browser, drag items from the Project
Browser into the Favorites folder.
You can also export 1227 all of the View folders containing Views from any root section as an XML file, and
import 1227 a Views XML file as an additional, editable Model View root node.
Note:
These are single-level items; if you drag a package into the Favorites folder, you cannot expand that package
there. To select specific items inside a package, expand it in the Project Browser and then drag the items into
the Favorites folder.
- A View Folder
- A Favorites Folder
- A View (search-based)
- A Slideshow Folder
The availability of the Model Views toolbar options depends on the type of object selected. The options are,
from left to right:
Displays the appropriate Properties dialog for the item selected. Alternatively, double-click on the
item, or press [Enter].
Locates the selected object in any diagrams in which it has been used in the model, and either
displays the single diagram with the object highlighted or lists the several diagrams in which the
object has been located.
Locates and highlights the selected object in the Project Browser.
Creates a new Model View root node, and displays the New Model View dialog in which you enter
the root node name.
Creates a new Views folder in the currently-selected root node.
Creates a new View in the currently-selected Views folder, and displays the Create New View
dialog to define the search 1226 that populates the View.
Refreshes the selected Model Views root node, folder, View or Favorites. For a View, this runs the
Model Search defined in the View properties. 1226
Moves the currently-selected object up or down within its type; you cannot move - for example - a
package below a diagram, or a View above a Favorites folder.
Displays a prompt to confirm deletion of the selected object and - if appropriate - its contents. You
cannot delete the original Model Views, My Views or Recent Discussions root nodes, or any
technology-defined Views.
Properties Display the appropriate Properties dialog for the selected object. (Not the My Views,
Recent Discussions, initial Model Views or Technology-defined root nodes.)
You can edit any of the properties, if required. Changes to objects populated from the
model are reflected in all other views (Properties window, diagrams, reports) of that
object.
The Properties option for the Recent Posts folder displays the Recent Post Options
dialog, which enables you to specify the number of days back from which to extract
postings from the Team Review, and the number of postings to list.
The Properties option for a Slideshow folder displays the Slideshow Properties 1228
dialog, which enables you to automate the slide show and set the number of seconds for
which each diagram is displayed.
If you deselect the Enable checkbox, you must press [Spacebar] to display each
diagram.
New Views Display a prompt for the Views folder name and create the folder in the selected root
Folder node. (Root node only.)
Import Views Prompt for the XML file location and create a new Model Views node to hold the imported
From XML 1227 Views. (Root node only.)
Export to XML Prompt for a file path and name, and copy all Views under the selected root node to an
(Views Only) XML file at that location. (Root node only.)
1227
Remove Model Display a prompt to delete the selected user-defined Model View and, if confirmed, delete
View the root node and all contents. (Not for the My Views, initial Model Views or Technology-
defined root nodes.)
New Search Display the Create New View dialog (similar to the View Properties dialog) for you to
Folder define the search that populates the View 1226 . (View folder only.)
New Favorites Display the Create a new favorites based folder dialog, which prompts for the folder
Folder name. (View folder only.)
New Slideshow Display the Create a new slideshow 1228 dialog, in which you type the name of the slide
show. You must use the Properties dialog to define the properties of the slide show.
(Model View, View folder only)
Open Search Display the Model Search tab in the main work area, listing the full results of the search
and giving access to all the facilities of the Model Search 1233 (View only).
Alternatively, press [Shift]+[Space].
Refresh Refresh the search and open the View or Postings Repository to show the elements or
Posts retrieved by the search.
Alternatively, press [Space].
Double Click Enable you to perform the Open Search function by double-clicking on the View.
Opens Search
If you deselect this option, double-click refreshes the search and opens the View to show
the elements retrieved by the search.
Find Post Open the Project Team Review and highlight the selected post.
Open Team Open the Project Team Review at the top level (Category).
Review
Edit Display the Team Review Server Connections 218 dialog, to select which review to open.
Connections
Remove Folder Display a prompt to delete the selected Views folder and, if confirmed, delete the folder
and all contents. (View folder only.)
Remove View Display a prompt to delete the selected View and, if confirmed, delete the View and all
contents.
Remove Display a prompt to delete the selected Favorites folder and, if confirmed, delete the
Favorites folder and all contents.
Remove Display a prompt to confirm deletion of the selected slide show and, if confirmed, delete
Slideshow the slide show and all its diagrams.
Run Slideshow Run the slide show 1228 in the Diagram View.
Run Slideshow Run the slide show 1228 in full screen mode, so that the slide show fills the whole screen.
Full Screen
Stop Slideshow Cancel execution of the slide show 1228 running in the Diagram View. Alternatively, press
[Esc].
In Project Highlight the selected item in the Project Browser. (Element / Diagram / Package object
Browser only.)
In Diagrams Locate the selected object in any diagrams in which it has been used in the model, and
either display the single diagram with the object highlighted or list the several diagrams in
which the object has been located.(Element / child Package object only.)
Remove Linked Display a prompt to delete the selected object and, if confirmed, remove the object from
Item the folder. This has no effect on the object in the Project Browser or any diagrams.
(Element / Diagram / Package object only.)
Note:
You would not delete an object in a View, as it is replaced the next time the View is
refreshed.
Note:
For a custom SQL search statement, the statement should return the guid and type of the object found so
that Enterprise Architect can search for the selected item in the Project Browser. For example:
SELECT ea_guid AS CLASSGUID, Object_Type AS CLASSTYPE, Name FROM t_object
If required, in the Search Term field type a specific value to search for.
If you are working with the Corporate or extended versions of Enterprise Architect, and you want the search to
run automatically and refresh the results, select the Refresh this search checkbox. The Frequency field has
three sections, for hours, minutes and seconds. Click on the appropriate section and use the up and down
arrows at the end of the field to set the interval for refreshing the search results. You can also set the refresh
to display a pop-up notification if the search results change. To do this, select the Notify me when new
results found checkbox.
Click on the OK button. The View is created (or updated) in a collapsed state. When you expand the View, the
search executes and populates the View.
Export/Import Views
You export Views to create an XML file that you can:
· Import into another model as a user-created Model View or
· Call from an MDG Technology Selection (MTS) file to access the Technology-defined View provided by the
active MDG Technology.
The export and import functions are available from the Model Views root-node context menus.
When you use the export function, it acts on the complete set of View folders in the selected My Views root
node, Model Views root node, or user-generated root node. You cannot export individual Views, nor can you
export Favorites folders. The function displays the Save As dialog, on which you browse for the directory
location for the exported XML file, and specify the file name.
When you use the import function, it displays the Select Import Filename dialog on which you browse for the
directory and XML file you want to import. The import creates a new Model View folder with the same name as
the copied root node.
4. Create a call to the file from the technology's MTS file 1133 .
Thereafter, any model for which the MDG Technology is active automatically displays those Views in a
Technology-defined View.
Note:
The diagram items in the slide show folder are links to the diagrams in the Project Browser, not copies
of the diagrams or the diagrams themselves. Any actions you take in the slide show have no impact on
the original diagrams.
3. If you intend to automate the slide show, select the Enable checkbox. To run the slide show manually,
deselect the checkbox.
4. If you intend to automate the slide show, in the Time field type the number of seconds that each
diagram is to remain on display.
5. Click on the OK button.
5. Control the slide show using the toolbar icons and other aids, as follows:
[Spacebar] or [#]
[!]
[#]
[$]
The Model Search generates a report list that you can view in the main workspace. It lists each object in the
Project Browser that meets the search criteria you specify within the search terms and search type.
For more information on conducting searches see the Use the Model Search 1233 topic.
When you have generated your search results, you can print them or generate an RTF report 1234 on them.
To access the Model Search:
· Select the Edit | Model Search menu option
· Click on a package in the Project Browser and press either [Ctrl]+[Alt]+[A] or [Ctrl]+[F].
The Model Search tab displays.
Output Bar menu option, when you next display the menu this option becomes Dock in Main View.
The Search Options submenu also provides the means of performing advanced searches 1235 on your project,
and displaying project metrics 338 . The arrow button to the right of the Options button also enables you to
perform advanced searches.
The Toolbar
The Model Search toolbar enables you to quickly select a number of operations on the search list as a whole,
or selected items.
The View header defines the columns of information that are presented by the Model Search, and the order in
which data items are presented. By right-clicking on the header you display the Field Chooser context menu
option, which in turn displays the Field Chooser dialog. This enables you to add columns from the output.
Between them, the View header and Field Chooser dialog show the full range of column headers available.
To add a column heading to the View header, drag it from the Field Chooser
dialog onto the header, to the position you want the column of data to display.
When you have selected the column headings you require, click on the red
cross in the top right corner of the Field Chooser dialog to close it.
To remove a column from the output, drag the column heading downwards out
of the View header. A black cross displays on the heading as you move it, and
then both heading and cross disappear when you release the mouse button.
You can also change the sequence of columns, by dragging column headers left
or right.
You can organize the reported data hierarchically according to the value of one
or more of the column categories. For example, you could organize the data by
Type, and within each Type by Status. If you then click on any of the other
column headings, the data within this grouping is further sorted with the values
of the selected column (for example, Created) in ascending or descending order.
To set up the hierarchical grouping, drag the column heading representing the
primary grouping (such as Type) onto the Drag a column header here to
group by that column field. Then drag the column heading for the next level of
grouping (such as Status) to the right of the first heading. The two heading titles
display as connected blocks, as shown below.
You can, if required, add further levels of grouping by dragging other column headings onto the hierarchy, and
restructure the hierarchy by dragging existing or additional headings into the level you want them to hold. For
example, you could make Type the secondary grouping by dragging it to the right of Status, or extend the
hierarchy by dropping Object between Type and Status.
To remove a grouping level, drag the appropriate column heading out of the hierarchy and below the View
header. Any subordinate groupings move up a level.
In the Search Term field type the text to search for, and in the Search field select the type of search to
perform 1241 (the default being Simple). Click on the Run button to display your results.
You can perform more complex searches and create your own search definitions 1239 . To begin these tasks:
1. Click on the arrow button to the right of the Options button. The search manager panel 1235 displays just
above the search results panel.
An MDG Technology Selection (MTS) File Working With MTS Files 1133
Note:
Not all options are available for a diagram.
Copy Selected to Copy the selected item to the MS Windows clipboard so that it can be pasted to a
Clipboard document, spreadsheet or email.
Note:
If you generate the report using a custom SQL search, the SQL must include 1239
Create Linked Create 599 (or edit 600 ) a linked document (Corporate, Business and Software
Document [Ctrl] Engineering, Systems Engineering and Ultimate editions).
+[Alt]+[D]
See the Linked Documents 597 topic.
(Edit Linked
Document)
Delete Linked Delete an existing linked document. (Only displays if the element has a linked
Document document.)
Clear Results Clear the search results from the Model Search.
Find in Diagrams Display the diagram that uses the element or, if the element is used in multiple
diagrams, display a list of diagrams to choose from.
Delete Selected Delete the selected element from the Model Search.
Search filters enable you to perform customized searches on a Search Term in order to locate model
elements having specific characteristics. The Search drop-down list provides several pre-defined searches 1241
For ease of use, the list of available searches is separated into built-in searches, user-defined searches 1239
Important:
The fields listed in a search have an OR relationship when none of the Required checkboxes are ticked; that
is, if the search term is found in any one of those fields, then the element is displayed.
If the search definition includes one field only, the Required checkbox must be selected, otherwise the
search produces incorrect results.
In the Simple search below, the Name and Notes fields both have the Required checkbox ticked, so the two
fields have an AND relationship. The search displays only those elements that contain the search term in both
the Name and Notes fields.
Note:
Any field having the Required checkbox ticked overrides fields where the Required checkbox is not ticked.
The following search finds elements that must have the search term in the Name field and that might or might
not have the search term in the Notes field.
The search manager toolbar enables you to configure the system-provided searches, and to create and edit
your own searches. The toolbar icons, from left to right, provide access to the following functions:
Option Use to
New Search Create a new search definition, with new search criteria. See Create Search Definitions
1239 .
Copy Search Copy the existing search selected in the Search field, to modify.
Restore Default Restore any changed parameters to the default settings and format.
Delete Search Delete the search definition from the Search drop-down list.
Add Filter Add a new set 1242 of parameters to filter the search on.
Export Search Display a selection box that enables you to select searches to export to an external
directory as an XML Search file.
Import Search Display the Windows Directory Explorer Open dialog to enable you to import searches
as XML Search files from an external directory.
Search Options Display the Advanced Options 1238 dialog, to define where the search should operate and
how the search should match filters.
This icon is available only for searches created with the Query-Builder 1239 , and not for
those created with the SQL Editor 1239 .
You use the main body of the search manager panel to configure the element search filters that are contained
in the selected search. A filter item consists of the element field name (Search In), the conditions placed on
the field value, the actual value or delimiting value to search on, and whether the filter item is required
(mandatory). The components are defined in greater detail in the following table:
Column Use to
Search In Select the type and name of each element feature to search on.
Condition 1243 Select the condition of the search parameter. The available options are Contains, Equal
To, Not Equals and One Of.
Look for 1243 Specify the search term to perform the conditional search on. This value can pertain to
the selected element type. For example, the value could be a date for DateCreated or a
text value for other fields. The search term can contain multiple values, separated by
commas.
Required Indicate that the search results must include elements with your search term in that field.
You add the filters by clicking on the Add Filter toolbar icon, to display the Add Filters 1242 dialog.
2. In the Search Name field, type a name for your new search.
3. Select the radio button for the type of search you require:
· The Query Builder 1239 option provides an interface that enables you to design your own search.
· The SQL Editor 1239 option enables advanced users to directly write SQL Select statements.
· The Add-In Search 1241 option enables you to supply the name of your Add-In and a method (for
example MyAddin.RunThisMethod). This method is called whenever the search is run. This search
can be exported and distributed as a part of your Add-In. For more information, see Enterprise
Architect Add-In Model 1776 .
4. Click on the OK button.
Note:
User-defined searches are stored in the Program Files directory, and not in the project repository.
Query Builder
Your search definition now appears as being selected in the Search drop-down field. You can now click on
the Add Filter toolbar icon to Add Filters 1242 .
SQL Editor
The Custom SQL dialog displays, enabling you to input your SELECT statement. The SQL editor is based on
the common Code Editor, and provides an intellisense autocompletion list populated with Enterprise
Architect's repository structure. You can display the autocompletion list by pressing [Ctrl]+[Spacebar].
For more details on intellisense and the common Code Editor, see the Code Editors 1428 topic.
Enterprise Architect also enables you to use #xxx# macros as string replacers in WHERE statements, so that
the same search can be used by different people in different environments. These macros include:
· #WC# - Gets the appropriate wild card for the current database, and so enables the search to be
performed on models on different databases; for example, t_object.Name LIKE '#WC#Test#WC#'
· #Author# - Takes the value of the Author field in the Options dialog General page, and enables the defined
search to be performed on objects created by that user (this value can be manually re-set in the Options
dialog)
· #DB=<DBNAME># where <DBNAME> can be one of the following:
· MYSQL
· JET
· ORACLE
· SQLSVR
· ASA
· OPENEDGE
· POSTGRES.
For example, #DB=ORACLE# t_object.ModifiedDate >= (SYSDATE - INTERVAL '<Search Term>'
DAY)
· #UserName# - Gets the name of the person logged into version control; for example,
t_package.PackageFlags LIKE '#WC#VCCFG=#WC#CheckedOutTo=#UserName##WC#' (this is from
Enterprise Architect's built in search My Checked Out Packages).
Note:
For all Enterprise Architect functions in which you use a custom SQL statement (such as RTF reporting or
Model Views) the statement must return the guid and type of the object found so that Enterprise Architect can
search for the selected item in the Project Browser. For example:
SELECT ea_guid AS CLASSGUID, Object_Type AS CLASSTYPE, Name FROM t_object
You can extend the usability of your SQL searches using the aliases CLASSGUID and CLASSTYPE. These
enable Enterprise Architect to display the Properties dialog and icon for elements, connectors, attributes or
operations, as well as selecting them in the Project Browser. Some simple examples for using these aliased
fields are provided below:
SELECT ea_guid AS CLASSGUID, Object_Type AS CLASSTYPE, Name FROM t_object
SELECT ea_guid AS CLASSGUID, Connector_Type AS CLASSTYPE, Name FROM t_connector
SELECT ea_guid AS CLASSGUID, 'Operation' AS CLASSTYPE, Name FROM t_operation
SELECT ea_guid AS CLASSGUID, 'Attribute' AS CLASSTYPE, Name FROM t_attribute.
When you have defined the SELECT statement, click on the Save button to save this search. The search is
Add-In Search
Type in the field the name of your Add-In, a period (full stop) and then the name of the method to be called (for
example, MyAddin.RunThisMethod). Your search is automatically saved and available from the Search drop-
down list.
Option Use to
Search On Select items to build up search filters on any information about an object.
The following is a list of what is available, before you have defined a search.
If you are adding filters to an existing search, the list contains only items appropriate
to the initial filter. For example, if the initial filter is on diagram properties, the list for
any subsequent filters for the search only contains the Diagram option.
Include Select each field item to include in your search (select the checkbox).
Field Identify the name of the field to search. See Fields and Conditions 1243 . The list
presents items specific to the filter Search On item.
Option Use to
Condition Specify the condition of the search parameter. See Fields and Conditions 1243 .
Value Type a value pertaining to the selected element field. For example, the value could
be a date for DateCreated or a text value for other fields. The search term can
contain multiple values separated by commas; see Fields and Conditions 1243 .
Required Select a particular field to generate a result set that must contain your search term in
that field.
Check All Select all the items to include them in the search definition.
Uncheck All Deselect all the items to omit them from the search definition.
OK Apply the filter. The fields selected are added to the search definition.
You can add multiple search definitions as necessary. Note that if you select the Required field in multiple
definitions the search rapidly becomes impractical. Multiple search definitions are better for 'and/or' searches.
See Also
· Create Search Definitions 1239
For some conditions, the value field contains an ellipsis ( ). Click on this to display a selection dialog.
Examples of selection dialogs are shown below.
Example Selection dialog for One Of section Date Selection dialog for Before or After section
See Also
· Create Search Definitions 1239
6.4 Traceability
Traceability identifies the way a given process has been, or is to be, developed in a system. The process can
be an internal, model-management process, where you monitor work by asking questions such as 'what work
has been done to realize this Requirement or Use Case?', or a business or system process that is being
modeled, where you ask questions such as 'what Requirements, Use Cases, Classes, Components, Test
Cases and other elements define the implementation and deployment of this process?'
Traceability also helps to clarify the aspects of a process that the model does not address. A process typically
includes a range of manual, automated and external procedures. A correctly-structured model illustrates
exactly what requirements and functionality service a particular process; any missing functionality must come
from other systems, developments or procedures.
There are various tools in Enterprise Architect that enable you to trace the definition and implementation of a
process from initial requirement to generated code or technical deployment, or vice versa. If you have
performed any Transformations 1385 in developing your model and code, Enterprise Architect automatically
creates Transformation Dependency 1385 connectors that you can trace - with the Traceability 1253 window - to
establish what objects and code have been generated from each PSM element, or what the initial PSM
element was for a generated object. Whether you use transformations or develop the stages of the model in
other ways, you can build up a range of Traceability diagrams 1250 (Custom diagrams) to identify the
development pathway and the dependencies between entities such as Requirements, Use Cases, Classes,
Packages, Test Cases and other model artefacts, or possibly between these entities and the overall business
process model 933 .
Maintaining Traceability
The following Project Browser hierarchy represents a model that is structured to enable traceability. Notice
firstly that themes are developed in the structure - the Requirements Model, Use Case Model and Abstract
Implementation Model each contain units with the same functional names, such as Manage Users and
Manage Inventory. These units help you to quickly develop a Traceability Model within your project, to trace
development and implementation.
The Requirements diagram also makes it clear what Requirements form subsets of others, or are components
of more than one other Requirement.
The Use Case diagrams can also clarify what aspects of a process require or enable human intervention, and
which require or enable system intervention.
Implementation Stage
For completeness, you could also consider the next stage, the implementation of some of these Use Cases,
as represented by Class elements associated with this functional unit.
You initially create a Traceability diagram as a Custom 734 diagram, but if you are creating the diagram
manually you can use elements and relationships from other Toolbox pages to develop the diagram as broadly
as is necessary.
You can also generate the diagram using the Add | Related Elements context menu option 551 to
automatically bring in elements linked to the selected element. It is probably better to add the elements in
stages, one level at a time, but you could add several levels in one go to see how far the hierarchy extends
and to identify relationship and element types to exclude from the 'clean' diagram. You could perform a similar
operation, one element at a time, using the Relationships 1269 window.
The above diagram instantly shows how two levels of Requirements are realized by Use Cases, and which
Requirement is realized by which Use Case(s). It also shows how some of the Use Cases are implemented by
Class elements. Further, you can drill down on the Use Cases (or, in other Traceability diagrams, any other
composite elements) to display more detailed diagrams showing how the Use Case meets the Requirement.
The Close Account Use Case, for example, contains a Communication diagram and a Sequence diagram.
You can tailor your Traceability diagrams to depict any level of granularity and any stages of development that
are appropriate. You might narrow the above diagram, for example, to show development from just the
Remove User Requirement, and extend it to include Interfaces, Components, Test Case elements or any other
facet of the system or process.
Whilst the Traceability diagram itself provides information on the definition, design and implementation of a
business process feature, much more information can be obtained using tools 1251 such as the Relationships
Matrix and relationships Traceability window.
Traceability Window
The Traceability 1253 window is a most useful and versatile traceability tool. Starting with a Traceability diagram
or a package structure in the Project Browser, you can use the Traceability window to quickly explore the
relationship chain of which any element is a component. When you click on the element, it immediately
becomes the top point in the Traceability window. When you click on the background of a diagram, all
elements in the diagram are listed in the Traceability window, and you can follow the threads starting at each
element through the diagram.
If you require a rapid, broad-brush view of relationship flows in the project structure, starting with a general list
of - say - all functional Requirements, you can use a combination of Model Search 1231 , Project Browser and
Traceability window; this is a powerful tool for scanning your project, identifying how elements have been
organized, and how they interact. For example, the Model Search would list all the requirements, you could
rapidly click on each element and immediately see in the Project Browser where it has been grouped, and at
the same time - in the Traceability window - how that element interacts with other elements in the model.
You can select any or all of the relationship types available in the Traceability window toolbox. The single type
selected below is Realizes (Implements), and the selected element is the Delete User Use Case. The
Traceability window then shows that Delete User implements REQ017, but this is also partially realized by the
Close Account Use Case.
By moving the cursor around a diagram or the Project Browser, and/or changing the relationship type
combinations in the Traceability window, you can quickly see how elements are connected and how they
influence each other. For example, you can see that REQ017 is realized by two Use Cases, so you might then
explore what else influences and is influenced by these two Use Cases. The Traceability window takes you
well beyond what is likely to be depicted on any single diagram.
If you have used transformations to develop your model, the T icon displays the transformation dependencies
that exist between an element in a PIM and elements in the PSMs.
Relationship Matrix
Using the Relationship Matrix 1261 , you can both create and study the relationships between, for example, the
Requirements and Use Cases for a module. You might identify the 'theme' package (in this case, Manage
Users) in the Requirements model and the Use Case model as the source and target packages, and explore
the likely element and connector types in the packages. This, like the Traceability diagram, identifies which
Requirements are (or should be) realized by which Use Cases. You can then perform similar checks with the
Manage Users packages in, say, the Use Case and Implementation models.
The Source and Target field browsers ([ ... ]) enable you to examine child packages within the 'theme'
package, and obtain further detail on how the feature at this stage is defined.
Other Tools
You can also obtain information on what elements realize and are realized by the elements in a given
package, using the Dependency report 1624 and Implementation report 1626 , respectively.
You can trace how a Class or Interface element in a diagram or the Project Browser is implemented in code
or, for tables, in DDL, using the Source Code viewer 1441 . For code, as you click on features in the element, the
corresponding code is highlighted in the viewer.
From the perspective of model management or project management, you could also use the Audit View 270 as
a means of tracing the change history of a package or element. The Relationship Matrix also assists in this
respect, indicating the impact of changes in one element on others. A Use Case exists because it defines how
a Requirement is met; if the Requirement is changed, the Use Case and its dependent diagrams and
elements should probably be changed, if not deleted.
If you open a diagram and click on the diagram background, the Traceability window lists all the elements in
the diagram. As above, you can expand the display for each individual element to show the relationships and
related elements for that element. This is useful, especially in large and complex diagrams, for exposing
threads through the diagram and indicating what might be impacted by changing or deleting the element or a
connector.
The Element List is a tabular, editable view of elements that can be displayed in the main workspace. You can
use the Element List to streamline the process of creating and updating elements in a package or diagram
selected from the Project Browser. This can be particularly useful for analysts to create and maintain formal
requirement definitions within the model. You can also print the list or generate an RTF document 1259 directly
from the entries on the Element List.
To access the Element List, either:
· Select a diagram or package in the Project Browser and select the View | Element List main menu option
· Select a diagram or package in the Project Browser and press [Ctrl]+[Alt]+[R]
· Right-click on a diagram or package in the Project Browser and select the View Diagram As List or View
Package As List menu option
· Right-click on the background of an open diagram and select the Switch to List View context menu option
The Element List tab displays, showing the element information for the selected package or diagram. There
are two possible formats that you can switch between using the Show Hierarchy button ( ) in the toolbar:
· User-Defined format - as shown below, where you determine how the element information is structured on
the screen, using the value-grouping 1258 band below the toolbar
· Model Hierarchy format - as shown below, where the package and element hierarchies are represented in
the display.
· In User Defined format, change the filtered structure of the information in the list; see Value Grouping 1258 ,
below
· Change the sequence of columns, by dragging column headers left or right
Note:
In Model Hierarchy format, the Name column is always on the left; you cannot move any other column into
that position, although you can rearrange the order of the rest of the columns. Because of this, if you
group or sort information in User Defined format and switch to Model Hierarchy format your information
structure is altered, and it is not restored when you switch back to User Defined format.
· Display the Properties dialog for an item by double-clicking on the item entry
· Select:
· an element by clicking on it
· a specific value by clicking twice on it (not double-clicking); either the value becomes directly
editable or the Properties dialog displays in which you can edit the value
· several individual elements by holding [Ctrl] as you click on them
· a range of elements by holding [Shift] as you click on the first and last in the range.
· Add new items to the package covered by the Element List, by clicking on a listed element and pressing
[Ctrl]+[N] or [Insert], or right-clicking and selecting the Add New context menu option
· in Model Hierarchy format, new elements are inserted in the order in which they appear in the
Project Browser
· in User Defined format, new items are inserted to comply with any sort order and/or grouping; if the
list is not sorted or grouped, the items are added to the end.
· In Model Hierarchy format, you can add a child element to the selected element by pressing [Esc] and
then [Ctrl]+[N]; otherwise, elements are added as siblings of the selected element
Note:
You can add child elements only when the whole row is selected, with none of the row cells or fields
highlighted. Press [Esc] to remove selection from an individual cell.
· Automatically add elements to a diagram by generating the Element List on the diagram and adding
elements to the list
· Delete elements from the list by selecting the item and pressing [Ctrl]+[D].
Note:
In Model Hierarchy format, you cannot delete a parent element until all its child elements have been
removed or deleted.
You can also include each element's notes 1259 (documentation), which are shown underneath the element.
You can add or edit notes by clicking on the item and pressing [Ctrl]+[Space]. This transfers control to the
Notes window, in which you create or edit the note text.
If it is necessary to review the element's custom (advanced) properties, click on the item and press [Ctrl]
+[Enter]. This displays the Custom Properties dialog for the element.
You can do further work on the Element List using the toolbar and context menu options 1258 .
The View header defines the columns of information that are presented by the
Element List, and the order in which data items are presented. By right-clicking
on the header you display the Field Chooser context menu option, which in turn
displays the Field Chooser dialog. This enables you to add or remove columns
from the output. Between them, the View header and Field Chooser dialog show
the full range of column headers available.
To add a column heading to the View header, drag it from the Field Chooser
dialog onto the header, to the position you want the column of data to display.
When you have selected the column headings you require, click on the red
cross in the top right corner of the Field Chooser dialog to close it. If you want to
remove a column from the output, drag the column heading to below the View
header.
You can also change the sequence of columns, by dragging column headers left
or right.
Value Grouping
You can organize the reported data according to the value of one or more of the column categories. As in the
illustration at the start of this topic, you might organize the data by Type, and within each Type by Name. If you
then click on any of the other column headings, the data within this grouping is further sorted with the values of
the selected column (for example, Created) in ascending or descending order.
To set up the value grouping, drag the column heading representing the primary grouping (such as Type) onto
the Drag a column header here to group by that column field. Then drag the column heading for the next
level of grouping (such as Name) to the right of the first heading. The two heading titles display as connected
blocks, as shown below.
You can, if required, add further levels of grouping by dragging other column headings onto the hierarchy
(such as Status), and restructure the order by dragging existing or additional headings into the level you want
them to hold. For example, you could make Type the secondary grouping by dragging it to the right of Name,
or drop Status between Type and Name.
To remove a grouping level, drag the appropriate column heading out of the sequence and below the View
header. Any subordinate groupings move up a level.
Toolbar Options
You can also add to or influence what information is displayed on the Element List by clicking on the following
icons in the toolbar to:
· - display the Notes window, to add or edit notes for the selected element ([Ctrl]+[Space])
· - display the Generate RTF Documentation dialog, to create an RTF report 1573 on the selected element
(s)
· - select the appropriate element type from a list (click on the drop-down
arrow), or All to list all objects; the report then lists only elements of that specific type
· - select a UML, Extended or MDG Toolbox category to specify the category of elements shown in the
filter list (above)
· - toggle between including child packages and their contents in the list, and showing only the first-
level contents of the selected diagram or package
· - toggle the display between model hierarchy format and user-defined value-grouping 1257 format
· - display a short menu from which you can select to hide the contents of the Notes compartment of
each element, display the first few words, or display the full text.
Audit History
In the Corporate, Business and Software Engineering, Systems Engineering and Ultimate editions of
Enterprise Architect, if Auditing 270 is turned on and the Element List is open, you can view a history of
changes to any selected element or connector, in the Audit History 278 tab of the Output 102 window. (If
security is enabled, you must have at least Audit View 198 permissions to display the audit history).
Find in Diagrams Display the diagram that uses the element or, if the element is used in multiple
diagrams, display the Element Usage 526 dialog, which lists the diagrams that
contain the element.
Find In Project Highlight the selected element in the Project Browser.
Browser
Bookmark Item Bookmark the element.
Create Linked Create 599 (or edit 600 ) a Linked Document (Corporate, Business and Software
Document [Ctrl]+[Alt] Engineering, Systems Engineering and Ultimate editions).
+[D]
See the Linked Documents 597 topic.
(Edit Linked
Document)
Delete linked Delete an existing linked document. (Only displays if the element has a linked
document document.)
Diagram Properties Display the Diagram Properties 423 dialog for the diagram.
Sort Contents In Model Hierarchy format, synchronize the list with the Project Browser hierarchy,
to ensure that all element and package hierarchies and sequences are - if
necessary - updated. (Normally changes are updated automatically, but there can
be delays if changes are made outside the Element List).
Reload Reload the element list to refresh the order and content with any recent changes.
Print Print the Element List.
Delete Selected Delete the selected element from the Element List.
Alternatively, select the Delete Selected icon in the Element List toolbar.
The Relationship Matrix is a spreadsheet display of relationships between model elements within packages.
You select a source package and a target package, the relationship type and direction, and Enterprise
Architect identifies all the relationships between source and target elements by highlighting a grid square and
displaying an arrow indicating the direction of the relationship.
Note:
The direction is a reflection of which elements are the source elements and which are the target. It does not
indicate the Direction property of the connector, as defined in the connector Properties dialog.
The Relationship Matrix is a convenient method of visualizing relationships quickly and definitively. It also
enables you to create, modify and delete relationships between elements with a single mouse click - another
quick way to set up complex sets of element relationships with a minimum of effort.
If you click on a square in the matrix, the square, the row headers and the column headers are highlighted, as
shown in the example above. The example also illustrates the 'bent arrow' icon, indicating that connectors
exist in both directions between the source and target elements.
The relationship squares in the example are green. This indicates that the source element is not locked
(because the parent package has not been checked in under version control 263 ). If the element is locked (the
parent package has been checked in) the highlight is pink, as follows:
For information on accessing the Relationship Matrix, see the Open the Relationship Matrix 1262 topic.
You can also:
· Select options 1265 for modifying the type of information the Relationship Matrix displays
· Update, delete and create 1266 relationships through the Relationship Matrix
· Export the contents of the Relationship Matrix to a CSV file 1267 or to a .png or .emf 1265 file
· Print the contents 1265 of the Relationship Matrix, scaled down if required
· Save a profile 1267 of the Relationship Matrix settings to monitor development of the same source and target
packages
· Investigate the Source and Target elements 1268 in the relationship.
The Relationship Matrix refreshes after every change you make to the input parameters.
Tip:
The Relationship Matrix includes ALL child elements in a hierarchy. Sometimes in a large model this can be a
lot of elements, possibly too many to be useful. Take care in selecting the source and target package.
2. Scroll through the list and click on the appropriate connector type.
3. Click on the Direction drop-down arrow to display a list of directions.
4. Scroll through the list and click on the appropriate direction.
Enterprise Architect refreshes the Relationship Matrix content.
Notes:
· If you set Direction to Both, each relationship is indicated by two arrows - a From-To arrow and a To-From
arrow. See the screen illustration in the Relationship Matrix 1261 topic.
· The direction is a reflection of which elements are the source elements and which are the target. It does
not indicate the Direction property of the connector, as defined in the connector Properties dialog.
Tip:
You set the source and target packages AFTER setting the connector and element types/details; as
Enterprise Architect refreshes the content after each change, this is usually faster.
1. Click on the [ ... ] (Browse) button at the end of the Source or Target field.
· Create and update profiles of the configurations of the matrix 1267 that you have designed
· Define local settings 1265 to control what the Relationship Matrix displays.
Scale Printout
When you print the Relationship Matrix, by default it prints on as many pages wide and long as the matrix
requires. You can scale the printout into a fixed number of pages wide, and the row height is automatically
adjusted to maintain the proportions of the matrix. This reduces the overall size of the printout and improves
appearance, especially when used in conjunction with the Landscape option in the printer properties. For
example, a 16-page printout without scaling can, with a scaling of 2 pages wide, be reduced to 6 pages.
To set the page scaling, click on the Scale Setting menu option. The Scale Matrix dialog displays.
Select the Scale Matrix Width Into Pages checkbox, and type or select the number of pages in width to scale
to. Click on the OK button to apply the setting.
Note:
The Delete relationship option does not work if:
· The source element (that is, the owner) is locked
· You have selected Both in the Direction field - you are effectively trying to delete half a relationship.
If you have selected one of the other options, modify any properties as required, and click on the OK button to
save the changes.
3. Select the Create new relationship... option; a submenu displays, listing the types of relationship you
can create.
4. Click on the required type of relationship to create a new connector between the two elements.
Tip:
Use the matrix relationship management features to quickly create and manage relationships like Realization
and Aggregation between Requirements and implementation elements (such as Use Cases).
To delete an existing profile, select it in the drop-down list and select the Profile | Delete Current Profile
menu option.
For each connector, the connector type and target element are displayed. If a 'Yes' appears in the Target in
Diagram column, the target element is visible in the currently loaded diagram. This is useful when you are
dragging related elements from the relationships list onto the current diagram.
Double-click on a connector in the list to open the <connector type> Properties dialog, where you can edit the
connector attributes. Right-click on a connector to open the context menu.
You can locate the related element, view the related element properties or delete the connector. You can also
hide certain connectors from appearing in diagrams, and show hidden connectors (first example of the menu,
below).
If an element is not visible in the current diagram, the context menu has an option to place the selected
element in the current diagram (second example of the menu, below). This is useful when you are building a
picture of what an element interacts with, especially when reverse engineering an existing code base.
Tip:
In the Corporate, Business and Software Engineering, Systems Engineering and Ultimate editions of
Enterprise Architect, with security 188 on, the diagram and the source and target elements must be free for
editing before some of these options are available for use.
Diagram Filters (Dynamic Visual filters) enable you to modify the display of diagram components, so that the
relevant items are immediately identified for the reader's attention without damaging the structure and integrity
of the model. Currently the feature operates on elements, and filters according to element properties such as
Author, Status, Date Created or Stereotype.
Diagram Filters are useful in tailoring the display of diagrams:
· For different users, so that - for example - technical staff and stakeholders each have a view that highlights
the information pertinent to them
· To show what elements have been recently developed or changed
· To show which part of a model was developed by a particular person
· To show which parts of a diagram are at a particular phase, status or version.
You create and define 1272 as many filters as you require, setting up each filter by defining which element
properties to specifically check for and (depending on how you set up the filter parameters) whether to include
or exclude elements having particular property values. You can select to:
· Mute the irrelevant items in grayscale or a faded color
· Hide the irrelevant items completely, or
· Highlight (with a hashed border) the elements that are relevant.
If you select to mute or hide elements, the action of the filters is to exclude elements that do not match the
parameters rather than include elements that do. If, for example, you selected to filter on element name,
looking for elements with the word Class in the name, the filter would apply the following logic:
Does Name contain string Class? If No, apply effect. If Yes, take no action.
The elements you want are therefore what is left on the diagram, rather than what was operated on. The filter
effect 1272 remains in force while you do other work on the diagram, until such time as you disable 1272 the filter.
In you select the Highlight effect, however, the logic is reversed:
Does Name contain string Class? If No, take no action. If Yes, apply effect.
In this case, the filter effect is not permanent, and clicking off the elements deselects them. This effect is,
however, excellent for selecting elements having the same characteristics across a large diagram, to be
processed in a single task. Instead of having to locate the elements and select them with [Ctrl]+click
individually, you can apply the filter. If you inadvertently lose the selection by clicking off the elements, you can
get it back again almost immediately by re-applying the filter.
You can use filters singly, in sequence, or in combination; for example, you could:
· Set up a filter for immediate use on a diagram, and modify that filter as you review the diagram so that you
highlight elements with different values for the same properties - perhaps, by filtering on Phase, to compare
'as-is' and 'to-be' elements
· Set up a filter and leave it active so that all diagrams you display are automatically filtered the same way
· Set up a series of filters to use:
· in one or more sequences to progressively highlight a diminishing set of elements, or
· alternately to highlight contrasting views of the diagram.
A quick-start guide to using Diagram Filters is provided on the Sparx Systems Community Site.
This is a dockable window, which you can move around or fix next to the Diagram View while you activate,
deactivate and edit the filters.
2. In the Enter Filter Name field, type a name for the filter, then click on the OK button. The Diagram Filter
dialog displays, with the Search On field fixed on Element.
3. Scroll through the element properties to filter on, and select the checkbox against each property you
require.
4. For each property, click on the Condition field and select, from the drop-down list, the comparison
condition to be applied. (Be aware of how the combination of Condition - Equal To / Not Equal To -
and Filter Effect 1271 might affect the results on the diagram.)
5. For each property, double-click on the Value field and type or select any specific value to filter on.
6. Click on the OK button to save the filter and return to the Diagram Filters window.
Edit a Filter
To edit an existing filter on the Diagram Filters window, either double-click on the filter name, click on it and
select the Properties icon from the toolbar (the second icon from the left), or right-click on the name and
select the Properties context menu option. The Diagram Filter dialog displays; adjust the filtered fields as
described above.
To just change the name of the filter, right-click on the name and select the Change Name context menu
option. The Create New Diagram Filter dialog displays. Type over the existing name with the new name, and
click on the OK button.
Enable Filters
To enable a filter so that it takes immediate effect on your diagrams, select the check box against the filter
name. You can select more than one filter at a time, to combine their effects.
Disable/Clear Filters
To disable a filter, clear the checkbox. This clears the effect of the filter on the diagram, so that it displays in
full.
To disable all filters, click on the Reload Filters icon in the toolbar (third option from the left), or right-click on
the list panel and select the Reload Filters context menu option.
Delete a Filter
To remove a filter from the Diagram Filters window, either click on the filter name and click on the Delete icon
in the toolbar, or right-click on the filter name and select the Delete Filter context menu option.
The shaded box represents the viewed area on the open diagram. The toolbar provides the following functions
(in order):
· Zoom In
· Zoom Out
· Zoom to fit diagram
· Zoom to fit page
· Zoom to 100%
· Zoom Slider.
Move the cursor inside the window and hold down the mouse button to pan over the open diagram by moving
the shaded box. To zoom, use either the Zoom Slider or the buttons located on the tool bar.
VII
Software Development | 1277
7 Software Development
The Model Driven Development Environment (MDDE) provides tools to design, build and debug an
application.
The MDDE integrates code and model by providing options to either generate source code from the model or
reverse engineer existing source code into a model. Source code and model can be synchronized in either
direction.
Note:
Although you can generate and reverse engineer code in a range of languages, Execution Analysis
debugging and recording are supported for the following platforms / languages only:
· Microsoft Windows Native C
· Microsoft Windows Native C++
· Microsoft Windows Visual Basic
· Microsoft .NET Family (C#, J#, VB)
· Sun Microsystems Java.
Code Engineering with Enterprise Architect broadly encompasses various processes for generating or
transforming code from your UML model and importing code into the model, to support model development in
several coding languages, database development and SOA development.
Code Engineering
Enterprise Architect supports:
· Source code generation and reverse engineering for many popular languages, including C++, C#, Java,
Delphi, VB.Net, Visual Basic, ActionScript, Python and PHP.
Enterprise Architect also provides:
· A built in 'syntax highlighting' source code editor
· Code generation templates, which enable you to customize the generated source code to your company
specifications.
For more information, see the Software Engineering 1281 topic.
MDA Transformations
Enterprise Architect provides:
· Advanced Model Driven Architecture (MDA) transformations using transformation templates
· Built-in transformations for DDL, C#, Java, EJB and XSD.
One PIM can be used to generate and synchronize multiple PSMs, providing a significant productivity
boost.
For more information, see the Model Transformations - MDA 1385 topic.
Database Modeling
Enterprise Architect enables you to:
· Reverse engineer from many popular DBMSs, including SQL Server, My SQL, Access, PostgreSQL
and Oracle 9i, 10g or 11g
· Model database tables, columns, keys, foreign keys and complex relationships using UML and an
inbuilt data modeling profile
· Forward generate DDL scripts to create target database structures.
For more information, see the Data Models 1011 topic.
XML technologies:
· XML Schema (XSD)
· Web Service Definition Language (WSDL).
XSD and WSDL support is critical for the development of a complete Service Oriented Architecture (SOA),
and the coupling of UML 2.3 and XML provides the natural mechanism for implementing XML-based SOA
artifacts within an organization.
For more information, see the XML Schema - XSD 1039 and Web Services - WSDL 1049 topics.
Software Engineering is a process that includes automated code generation, reverse engineering of source
code and synchronization between the source code and model.
Enterprise Architect also enables you to rapidly model, generate - or forward engineer - and reverse engineer:
· XML Technologies, namely XML Schema (XSD) 1039 and Web Service Definition Language (WSDL) 1049
· Database schema 1011 , keys, triggers, constraints, RI and other relational database features, for and from a
range of database products.
Software Engineering is available in the Professional, Corporate, Business and Software Engineering, System
Engineering and Ultimate editions of Enterprise Architect.
Code Generation
Enterprise Architect enables you to generate source code 1308 from UML model elements, creating a source
code equivalent of the Class or Interface element for future elaboration and compilation. In particular you can
generate C, C++, C#, Delphi, Java, PHP, Python, ActionScript, Visual Basic and VB.NET 1347 source code. The
source code generated includes Class definitions, variables and function stubs for each attribute and method
in the UML Class. You can use the Source Code Viewer 1441 to view any source code you are opening.
Note:
You view source code for an element by selecting it and pressing either [Ctrl]+[E] or [F12]. If the element
does not have a generation file (that is, code has not been or cannot be generated, such as for a Use Case),
Enterprise Architect checks whether the element has a link 611 to either an operation or an attribute of
another element. If such a link exists, and that other element has source code, the code for that element
displays.
You can also generate code from three UML behavioral modeling paradigms:
· State Machine diagrams 1316 (SW & HW)
· Interaction (Sequence) diagrams 1322 (SW)
· Activity diagrams 1323 (SW).
The Code Template Framework (CTF) 1301 enables you to customize the way Enterprise Architect generates
source code. It also enables you to generate languages that Enterprise Architect does not specifically support,
by helping you define the appropriate code generation templates for that language.
You can integrate the facilities of Enterprise Architect with other development environments. The MDG
Integration for Eclipse and MDG Integration for Visual Studio 1334 are standalone products that provide an
enhanced code engineering functionality between Enterprise Architect and the development environments.
Reverse Engineering
Reverse Engineering 1328 is the import of existing source code into model elements, mapping the source code
structures onto their UML representations. This enables you to examine legacy code and the functionality of
code libraries for reuse, or to bring the UML model up to date with the code. You can reverse engineer in the
same languages as you perform code generation with Enterprise Architect.
Enterprise Architect is also able to reverse engineer binary files, namely Java .jar files and .NET PE files.
Note:
Reverse Engineering of other languages including CORBA IDL is also currently available through the use of
the MDG Technologies. See www.sparxsystems.com/resources/mdg_tech/.
Synchronization
Synchronization 1327 is when changes in the model are exported to the source code and changes to source
code are imported into the model. This enables you to keep your model and source up to date as the project
develops.
Round-Trip Engineering
Round trip engineering is a combination of reverse and forward generation of code and includes
synchronization between the source code and the model in all but the most trivial of code engineering
projects. In order to get the most out of round trip engineering in Enterprise Architect, you should be familiar
with the modeling conventions 1282 used when generating and reverse engineering the languages you use.
In order to get the most out of the round trip engineering in Enterprise Architect, you must be familiar with the
modeling conventions used when generating and reverse engineering the languages you use. This topic
describes the stereotypes, Tagged Values and other conventions used in code engineering in Enterprise
Architect for the following supported languages:
· ActionScript 1283
· Ada 2005 1284 (for Systems Engineering and Ultimate editions of Enterprise Architect)
· C 1285
· C# 1287
· C++ 1289
· Delphi 1292
· Java 1293
· PHP 1294
· Python 1295
· System C 1295
· VB.Net 1296
· Verilog 1298
· VHDL 1299
· Visual Basic 1301
Note:
Enterprise Architect incorporates a number of visibility indicators or scope values for its supported languages.
These include, for:
· All languages - Public (+), Protected (#) and Private (-)
· Java - Package (~)
· Delphi - Published (^)
· C# - Internal (~), Protected Internal (^)
· ActionScript - Internal (~)
· VB.NET - Friend (~), Protected Friend (^)
· PHP - Package (~)
· Python - Package (~)
· C - Package (~)
· C++ - Package (~).
Stereotypes
Stereotype Applies To Corresponds To
Tagged Values
Tag Applies To Corresponds To
attribute_name Operation with stereotype property The name of the variable behind this
get or property set property.
Common Conventions
· Package qualifiers (ActionScript 2) and Packages (ActionScript 3) are generated when the current package
is not a namespace root 1313
· An unspecified type is modeled as var or an empty Type field.
ActionScript 3 Conventions
· The Is Leaf property of a Class corresponds to the sealed keyword
· If a namespace tag is specified it overrides the Scope that is specified.
See Also
· Import Source Code 1329
· Generate Source Code 1308
· ActionScript Options 1348
Stereotypes
Stereotype Applies To Corresponds To
Tagged Values
Tag Applies To Corresponds To
InstantiatedUnitTy Inner Class with stereotype typedef The instantiated unit's type (Package /
pe Procedure / Function).
PartType Inner Class with stereotype typedef The part type (renames or new).
Type Inner Class with stereotype typedef If Value = SubType, set subtype.
If Value = Access, set access type.
Other Conventions
· Appropriate type of source files: Ada specification file, .ads.
· Ada 2005 imports packages defined as either <<adaPackage>>Class or Class, based on the settings in
the Ada 2005 options 1348 .
· A package in the Ada specification file is imported as a Class if it contains a Tagged Record, the name of
which is governed by the options Use Class Name for Tagged Record and Alternate Tagged Record
Name. All attributes defined in that Tagged Record are absorbed as the Class's attributes.
· A procedure / function in an Ada specification file is considered as the Class's member function if its first
parameter satisfies the conditions specified in the options Ref Param Style, Ignore Reference parameter
name and Ref parameter name.
· The option Define Reference for Tagged Record, if enabled, creates a reference type for the Class, the
name of which is determined by the option Reference Type Name.
-- Public Functions
function MyPublicFunction (P: HelloWorld) return String;
procedure MyPublicFunction (P1: in out HelloWorld; AFlag: Boolean);
private
-- Private Functions
function MyPrivateFunction (P: HelloWorld) return String;
procedure MyPrivateFunction (P1: in out HelloWorld; AFlag: Boolean);
end HelloWorld;
See Also
· Import Source Code 1329
· Generate Source Code 1308
7.2.1.3 C Conventions
Note:
Separate conventions apply to Object Oriented programming in C 1286 .
Enterprise Architect supports round trip engineering of C, where the following conventions are used:
Stereotype
Stereotype Applies To Corresponds To
Tagged Values
Tag Applies To Corresponds To
anonymous Class also containing the The name of this class being defined only by
Tagged Value typedef the typedef statement.
typedef Class with stereotype other This Class being defined in a typedef
than typedef statement.
A Class A pair of C files (.h + .c) File name is the same as Class name.
See Also
· Import Source Code 1329
· Generate Source Code 1308
· C Options 1349
Stereotype
Stereotype Applies To Corresponds To
Tagged Values
Tag Applies To Corresponds To
anonymous Class with stereotype of The name of this Class being defined only by the
enumeration, struct or union. typedef statement.
typedef Class with stereotype of This Class being defined in a typedef statement.
enumeration, struct or union.
See Also
· Import Source Code 1329
· Generate Source Code 1308
· C Options 1349
7.2.1.4 C# Conventions
Enterprise Architect supports the round trip engineering of C#, where the following conventions are used.
Stereotypes
Stereotype Applies To Corresponds To
property Operation A property possibly containing both read and write code.
Tagged Values
Tag Applies To Corresponds To
argumentName Operation with stereotype The name given to the this parameter.
extension
attributeName Operation with stereotype The name of the variable behind this property or event.
property or event
className Operation with stereotype The Class that this method is being added to.
extension
definition Operation with stereotype Whether this is the declaration of the method, or the
partial definition.
enumType Operation with stereotype The datatype that the property is represented as.
property
genericConstraint Templated Class or The constraints on the generic parameters of this type
s Interface, Operation with or operation.
tag generic
Implements Operation The name of the method this implements, including the
interface name.
readonly Operation with stereotype This property only defining read code.
property
Other Conventions
· Namespaces are generated for each package below a namespace root 1313
· The Const property of an attribute corresponds to the readonly keyword, while the tag const corresponds to
the const keyword
· The value of inout for the Kind property of a parameter corresponds to the ref keyword
· The value of out for the Kind property of a parameter corresponds to the out keyword
· Partial Classes can be modeled as two separate Classes with the partial tag
· The Is Leaf property of a Class corresponds to the sealed keyword.
See Also
· Import Source Code 1329
· Generate Source Code 1308
· C# Options 1350
Stereotypes
Stereotype Applies To Corresponds To
Tagged Values
Tag Applies To Corresponds To
anonymous Class also containing the The name of this class being only defined by the typedef
attribute_name Operation with stereotype The name of the variable behind this property.
property get or property
set
bitfield Attribute The size, in bits, allowed for storage of this attribute.
bodyLocation Operation The location the method body is generated to; expected
values are header, classDec or classBody.
inline Operation The inline keyword and inline generation of the method body.
typedef Class with stereotype This Class being defined in a typedef statement.
other than typedef
Other conventions
· Namespaces are generated for each package below a namespace root 1313
· By Reference attributes correspond to a pointer to the type specified
· The Transient property of an attribute corresponds to the volatile keyword
· The Abstract property of an attribute corresponds to the virtual keyword
· The Const property of an operation corresponds to the const keyword, specifying a constant return type
· The Is Query property of an operation corresponds to the const keyword, specifying the method doesn't
modify any fields
· The Pure property of an operation corresponds to a pure virtual method using the "= 0" syntax
· The Fixed property of a parameter corresponds to the const keyword.
See Also
· Import Source Code 1329
· Generate Source Code 1308
· C++ Options 1351
Stereotypes
Stereotype Applies To Corresponds To
Tagged Values
Tag Applies To Corresponds To
managedType Class with stereotype reference, The keyword used in declaration of this type.
value or enumeration; Interface Expected values are class or struct.
Other Conventions
· The typedef and anonymous tags from native C++ are not supported
· The Pure property of an operation corresponds to the keyword __abstract.
See Also
· Import Source Code 1329
· Generate Source Code 1308
Stereotypes
Stereotype Applies To Description
event Operation Defines an event to provide access to the event handler for
this Class.
property Operation, Attribute This is a property possibly containing both read and write
code.
Tagged Values
Tag Applies To Description
attribute_name Operation with The name of the variable behind this property or event.
stereotype property or
event
genericConstraint Templated Class or Defines the constraints on the generic parameters for this
s Interface, Operation Operation.
with tag generic
managedType Class with stereotype Corresponds to either the class or struct keyword.
reference, value or
enumeration; Interface
Other Conventions
· The typedef and anonymous tags are not used
· The property get/property set stereotypes are not used
· The Pure property of an operation corresponds to the keyword abstract.
See Also
· Import Source Code 1329
· Generate Source Code 1308
Stereotypes
Stereotype Applies To Corresponds To
Tagged Values
Tag Applies To Corresponds To
attribute_name Operation with stereotype The name of the variable behind this property.
property get or property set
Other Conventions
· The Static property of an attribute or operation corresponds to the class keyword
· The Fixed property of a parameter corresponds to the const keyword
· The value of inout for the Kind property of a parameter corresponds to the Var keyword
· The value of out for the Kind property of a parameter corresponds to the Out keyword.
See Also
· Import Source Code 1329
· Generate Source Code 1308
· Delphi Options 1352
Stereotypes
Stereotype Applies To Corresponds To
Tagged Values
Tag Applies To Corresponds To
arguments Attribute with stereotype enum The arguments that apply to this
enumerated value.
attribute_name Operation with stereotype property get or The name of the variable behind this
property set property.
Other Conventions
· Package statements are generated when the current package is not a namespace root 1313
See Also
· Import Source Code 1329
· Generate Source Code 1308
· Java Options 1355
Stereotypes
Stereotype Applies To Corresponds To
advice Operation A piece of advice in an AspectJ aspect.
aspect Class An AspectJ aspect.
pointcut Operation A pointcut in an AspectJ aspect.
Tagged Values
Tag Applies To Corresponds To
className Attribute or operation within a Class The Classes this AspectJ intertype member belongs to.
stereotyped aspect
Other Conventions
· The specifications of a pointcut are included in the Behavior field of the method.
See Also
· Import Source Code 1329
· Generate Source Code 1308
Stereotypes
Stereotype Applies To Corresponds To
Tagged Values
Tag Applies To Corresponds To
attribute_name Operation with stereotype property The name of the variable behind this
get or property set property.
Common Conventions
· An unspecified type is modeled as var
· Methods returning a reference are generated by setting the Return Type to var*
Enterprise Architect User Guide
Software Development | Software Engineering 1295
· Reference parameters are generated from parameters with the parameter Kind set to inout or out.
PHP 5 Conventions
· The final Class modifier corresponds to the Is Leaf property
· The abstract Class modifier corresponds to the Abstract property
· Parameter type hinting is supported by setting the Type of a parameter
· The value of inout or out for the Kind property of a parameter corresponds to a reference parameter.
See Also
· Import Source Code 1329
· Generate Source Code 1308
· PHP Options 1356
Tagged values
Tag Applies To Corresponds To
decorators Class, Operation The decorators applied to this element in the source.
Other Conventions
· Model members with Private Scope correspond to code members with two leading underscores
· Attributes are only generated when the Initial value is not empty
· All types are reverse engineered as var.
See Also
· Import Source Code 1329
· Generate Source Code 1308
· Python Options 1356
Stereotypes
Stereotype Applies To Corresponds To
Tagged Values
Tag Applies To Corresponds To
kind Attribute (Port) Port kind (clocked, fifo, master, slave, resolved, vector).
Other Conventions
· SystemC also inherits most of the stereotypes and Tagged Values of C++ 1289 .
See Also
· Import Source Code 1329
· Generate Source Code 1308
· SystemC Options 1357 .
Stereotypes
Stereotype Applies To Corresponds To
Tagged Values
Tag Applies To Corresponds To
Alias Operation with stereotype import The alias for this imported operation.
attribute_name Operation with stereotype property The name of the variable behind this property.
Charset Operation with stereotype import The character set clause for this import. One of
the values Ansi, Unicode or Auto.
enumTag Operation with stereotype property The datatype that this property is represented
as.
Lib Operation with stereotype import The library this import comes from.
readonly Operation with stereotype property This property only defining read code.
writeonly Operation with stereotype property This property only defining write code.
Other Conventions
· Namespaces are generated for each package below a namespace root 1313
· The Is Leaf property of a Class corresponds to the NotInheritable keyword
· The Abstract property of a Class corresponds to the MustInherit keyword
· The Static property of an attribute or operation corresponds to the Shared keyword
· The Abstract property of an operation corresponds to the MustOverride keyword
· The value of in for the Kind property of a parameter corresponds to the ByVal keyword
· The value of inout or out for the Kind property of a parameter corresponds to the ByRef keyword.
See Also
· Import Source Code 1329
· Generate Source Code 1308
· VB.Net Options 1358
Stereotypes
Stereotype Applies To Corresponds To
Tagged Values
Tag Applies To Corresponds To
Portmap Attribute (part) The generic / port map of the component instantiated.
See Also
· Import Source Code 1329
· Generate Source Code 1308
· Verilog Options. 1358
Stereotypes
Stereotype Applies To Corresponds To
Tagged Values
Tag Applies To Corresponds To
mode Attribute (port) The port mode (in, out, inout, buffer, linkage).
portmap Attribute (part) The generic / port map of the component instantiated.
See Also
· Import Source Code 1329
· Generate Source Code 1308
· VHDL Options. 1359
Stereotypes
Stereotype Applies To Corresponds To
Tagged Values
Tag Applies To Corresponds To
Alias Operation with stereotype import The alias for this imported operation.
attribute_name Operation with stereotype property get The name of the variable behind this property.
, property set or property let
Lib Operation with stereotype import The library this import comes from.
Other Conventions
· The value of in for the Kind property of a parameter corresponds to the ByVal keyword
· The value of inout or out for the Kind property of a parameter corresponds to the ByRef keyword.
See Also
· Import Source Code 1329
· Generate Source Code 1308
· Visual Basic Options 1360
The Code Template Framework (CTF) is used during forward engineering of UML models. The CTF enables
you to:
· Generate source code from UML models
· Customize the way in which Enterprise Architect generates source code
· Forward engineer languages not specifically supported by Enterprise Architect.
The CTF consists of:
· Default Code Templates 1302 which are built into Enterprise Architect for forward engineering supported
languages
· A Code Template Editor 1305 for creating and maintaining user-defined Code Templates
· Code Templates to synchronize code 1307 .
Template Description
Attribute Declaration Used by the Attribute template to generate a member variable declaration.
Attribute Notes Used by the Attribute template to generate member variable notes.
Template Description
Class Base Used by the Class template to generate a base Class name in the inheritance list
of a derived Class, where the base Class doesn't exist in the model.
Class Body Used by the Class template to generate the body of a Class.
Class Declaration Used by the Class template to generate the declaration of a Class.
Class Interface Used by the Class template to generate an interface name in the inheritance list
of a derived Class, where the interface doesn't exist in the model.
Class Notes Used by the Class template to generate the Class notes.
File A top-level template for generating the source file. For languages such as C++,
this corresponds to the header file.
Linked Attribute A top-level template for generating attributes derived from UML Associations.
Linked Attribute Notes Used by the Linked Attribute template to generate the attribute notes.
Linked Attribute Used by the Linked Attribute template to generate the attribute declaration.
Declaration
Linked Class Base Used by the Class template to generate a base Class name in the inheritance list
of a derived Class, for a Class element in the model that is a parent of the
current Class.
Linked Class Interface Used by the Class template to generate an Interface name in the inheritance list
of a derived Class, for an Interface element in the model that is a parent of the
current Class.
Namespace A top-level template for generating namespaces from UML packages. (Although
not all languages have namespaces, this template can be used to generate an
equivalent construct, such as packages in Java.)
Namespace Body Used by the Namespace template to generate the body of a namespace.
Namespace Declaration Used by the Namespace template to generate the namespace declaration.
Operation A top-level template for generating operations from a UML Class's operations.
Operation Body Used by the Operation template to generate the body of a UML operation.
Operation Declaration Used by the Operation template to generate the operation declaration.
Operation Notes Used by the Operation template to generate documentation for an operation.
The second table lists templates used for generating code for languages that have separate interface and
implementation sections.
Template Description
Class Body Impl Used by the Class Impl template to generate the implementation of Class
members.
Template Description
File Notes Impl Used by the File Impl template to generate notes in the source file.
Import Section Impl Used by the File Impl template to generate external dependencies.
Operation Impl A top-level template for generating operations from a UML Class's operations.
Operation Body Impl Used by the Operation template to generate the body of a UML operation.
Operation Declaration Used by the Operation template to generate the operation declaration.
Impl
Operation Notes Impl Used by the Operation template to generate documentation for an operation.
The base templates form a hierarchy, which varies slightly across different programming languages. A typical
template hierarchy relevant to a language like C# or Java (which do not have header files) is shown in the
example diagram below. In this diagram the templates are modeled as Classes (in reality they are just plain
text). This hierarchy would be slightly more complicated for languages like C++ and Delphi, which have
separate implementation templates.
Each of the base templates must be specialized to be of use in code engineering. In particular, each template
is specialized for the supported languages (or 'products'). For example, there is a ClassBody template defined
for C++, another for C#, another for Java, and so on. By specializing the templates, you can tailor the code
generated for the corresponding UML entity.
Once the base templates are specialized for a given language, they can be further specialized based on:
· A Class's stereotype
· A feature's stereotype (where the feature can be an operation or attribute)
This type of specialization enables, for example, a C# operation that is stereotyped as «property» to have a
different Operation Body template from an ordinary operation. The Operation Body template can then be
specialized further, based on the Class stereotype.
Note:
The above Class Model shows the hierarchy of Code Generation templates for a language such as C# or
Java. The Aggregation connectors denote references between templates.
Option Use to
New Language Display the Programming Languages Datatypes 666 dialog, which enables you to
include programming languages other than those supported for Enterprise
Architect, for which to create or edit code templates.
Template Display the contents of the active template, and provides the editor for modifying
templates.
Templates List the base code templates. The active template is highlighted. The Modified
field indicates whether you have changed the default template for the current
language.
Stereotype Overrides List the stereotyped templates, for the active base template.
The Modified field indicates whether you have modified a default stereotyped
template.
Add New Custom Invoke a dialog for creating a custom stereotyped template.
Template
Add New Stereotyped Invoke a dialog for adding a stereotyped template, for the currently selected base
Override template.
Get Default Template Update the editor display with the default version of the active template.
Option Use to
Save Overwrite the active templates with the contents of the editor.
Delete If you have overridden the active template, the override is deleted and replaced
by the corresponding default code template.
For information on creating and editing code templates using the Code Template Editor window, see The
Code Template Editor in MDG Development 1202 . 1202
Note:
User-modified and user-defined Code Templates can be imported and exported as Reference Data (see the
Sharing Reference Data 223 topic. The templates defined for each language are indicated in the Export
Reference Data dialog by the language name with the suffix _Code_Templates. If no templates exist for a
language, there is no entry for the language in the dialog.
Three types of change can occur in the source when it is synchronized with the UML model:
· Synchronize Existing Sections 1308 : for example, changing the return type in an operation declaration
· Add New Sections to Existing Features 1308 : for example, adding notes to a Class declaration, where there
were previously none
· Add New Features and Elements 1308 : for example, adding a new operation to a Class.
Each of these changes must be handled differently by Enterprise Architect; their effect on the CTF is
described in the linked topics above.
Generating source code (forward engineering) takes the UML Class or Interface model elements and creates
a source code equivalent for future elaboration and compilation. By forward engineering code from the model,
the mundane work involved with having to key in Classes and attributes and methods is avoided, and
symmetry between model and code is ensured.
Code is generated from Class or Interface model elements, so you must create the required Class and
Interface elements to generate from. Add attributes (which become variables) and operations (which become
methods).
Before you generate code, you should ensure the default settings for code generation match your
requirements. The default generation settings are located in the Source Code Engineering page of the Options
dialog (select the Tools | Options | Source Code Engineering menu option). Set up the defaults to match
your required language and preferences. Preferences that you can define include default constructors and
destructors, methods for interfaces and the Unicode options for created languages. Languages such as Java
support namespaces 1313 and can be configured to specify a namespace root. In addition to the default
settings for generating code, Enterprise Architect supports the following code languages with their own
specific code generation options:
· ActionScript 1348
· C 1349
· C# 1350 (for both .NET 1.1 and .NET 2.0)
· C++ 1351 (standard, plus .NET managed C++ extensions)
· Delphi 1352
· Java 1355 (including Java 1.5, Aspects and Generics)
· PHP 1356
· Python 1356
· Visual Basic 1360
· Visual Basic .NET 1358
The Code Template Framework (CTF) 1301 enables you to customize the way Enterprise Architect generates
source code and also enables generation of languages that are not specifically supported by Enterprise
Architect.
Before generating code, you should also familiarize yourself with the way Enterprise Architect handles local
path names. Local path names enable you to substitute tags for directory names (for example %SRC% = C:
\Source).
When you have completed the design of your Classes, you can generate source code.
Note:
In the Corporate, Business and Software Engineering, System Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Generate Source Code and DDL 198 permission to
generate source code.
Tasks
When you generate code, you perform one or more of the following tasks:
· Generate a Single Class 1309
· Generate a Group of Classes 1311
· Generate a Package 1311
· Update Package Contents 1313
3. On the Path field, click on [ ... ] (Browse) and select a path name for your source code to be generated
to.
4. In the Target Language field, click on the drop-down arrow and select the language to generate; this
becomes the permanent option for that Class, so change it back if you are only doing one pass in
another language.
5. Click on the Advanced button. The Object Options dialog displays.
6. Set any custom options (for this Class alone), then click on the Close button to return to the Generate
Code dialog.
7. In the Import(s) / Header(s) fields, type any import statements, #includes or other header information.
(Note that in the case of Visual Basic this information is ignored; in the case of Java the two import text
boxes are merged; and in the case of C++ the first import text area is placed in the header file and the
second in the body (.cpp) file.)
8. Click on the Generate button to create the source code.
9. When complete, click on the View button to see what has been generated. Note that you should set up
your default viewer 1441 /editor for each language type first. You can also set up the default editor on the
Code Editors page of the Options dialog (Tools | Options | Source Code Engineering | Code Editors
).
Note:
If any of the elements selected are not Classes or interfaces the option to generate code is not
available.
Generate a Package
To generate a package, follow the steps below:
1. In the Project Browser, right-click on the package to generate code for. The context menu displays.
2. Select the Code Engineering | Generate Source Code menu option. The Generate Package Source
Code dialog displays.
3. In the Synchronize field, click on the drop-down arrow and select the appropriate synchronize option:
· Synchronize model and code: Classes with existing files are forward synchronized with that file;
Classes with no existing file are generated to the displayed target file
· Overwrite code: All selected target files are overwritten (forward generated)
· Do not generate: Only selected Classes that do not have an existing file are generated; all other
Classes are ignored.
4. Highlight the Classes to generate. Leave unselected any to not generate. If you want to display the
information in a more readable layout, you can resize the dialog and its columns.
5. To make Enterprise Architect automatically generate directories and filenames based on the package
hierarchy, select the Auto Generate Files checkbox. This then enables the Root Directory field, in
which you select a root directory under which the source directories are to be generated. By default,
the Auto Generate Files feature ignores any file paths that are already associated with a Class. You
can change this behavior by also selecting the Retain Existing File Paths checkbox.
6. To include all sub-packages in the output, select the Include Child Packages checkbox.
7. Click on the Generate button to start generating code.
As code generation proceeds Enterprise Architect displays progress messages. If a Class requires an output
filename Enterprise Architect prompts you to enter one at the appropriate time (assuming Auto Generate
Files is not selected). For example, if the selected Classes include partial Classes, a prompt displays to enter
the filename for the second partial Class.
For additional information on the options on the Generate Package Source Code dialog, see the following
table:
Option Use to
Synchronize Select options that specify how existing files should be generated.
Auto Generate Files Specify whether Enterprise Architect should automatically generate file
names and directories, based on the package hierarchy.
Root Directory If Auto Generate Files is selected, display the path under which the
generated directory structures are created.
Retain Existing File Paths If Auto Generate Files is selected, specify whether to use existing file paths
associated with Classes. If unselected, Enterprise Architect generates
Option Use to
Include all Child Packages Include all Classes from all sub-packages of the target package in the list.
This option facilitates recursive generation of a given package and its sub-
packages.
Select Objects to Generate List all Classes that are available for generation under the target packages.
Only selected (highlighted) Classes are generated. Classes are listed with
their target source file.
Cancel Exit the Generate Package Source Code dialog. No Classes are generated.
3. In the Update Type panel, select the radio button to Forward Engineer or Reverse Engineer the
package Classes.
4. To include child packages in the synchronization, select the Include child packages in generation
checkbox.
5. Click on the OK button to start.
Enterprise Architect uses the directory names specified when the project source was first imported/generated
and updates either the model or the source code depending on the option chosen.
7.2.3.5 Namespaces
Languages such as Java support package structures or namespaces. Enterprise Architect lets you specify a
package as a namespace root, which denotes where the namespace structure starts; all subordinate
packages below this point are generated as namespaces to code.
To define a package as a namespace root, right-click on the package in the Project Browser and select the
Code Engineering | Set as Namespace Root context menu option. The package icon in the Project Browser
changes to include a colored corner ( ).
When you have set the namespace root, the menu option changes to Clear Namespace Root; click on this
option to take the namespace root status off the package. (Also, see the context menu described below.)
Once you have set a namespace root, Java code generated beneath this root automatically adds a package
declaration at the head of the generated file indicating the current package location.
To view a list of namespaces, select the Settings | Namespaces menu option. The Namespaces dialog
displays.
If you double-click on a namespace in the list, the package is highlighted in the Project Browser. Alternatively,
right-click on the namespace to display a context menu, and select the Locate Package in Browser menu
option.
You can also clear the selected namespace, by selecting the Clear Namespace Attribute option.
Notes:
· Software code generation from behavioral models is available in the Business and Software Engineering,
Systems Engineering and Ultimate editions of Enterprise Architect.
· Hardware code generation from State Machine models is available in the Systems Engineering and
Ultimate editions of Enterprise Architect.
· For C(OO), please ensure that, on the C Specifications page of the Options dialog, you have set the
Object Oriented Support option to True.
· To be able to generate code from behavioral models, all behavioral constructs should be contained within a
Class.
Enterprise Architect's system engineering capability facilitates code generation from each of the following UML
behavioral diagrams:
· State Machine diagrams 1316 (SW & HW)
· Interaction (Sequence) diagrams 1322 (SW)
· Activity diagrams 1323 (SW).
You can generate code in various software and hardware 1319 languages, including C(OO), C++, C#, Java,
VB.Net, VHDL, Verilog and SystemC.
To experiment with code generation from these diagrams, use the EAExample project provided with your
Enterprise Architect installer, as follows:
1. Open the EAExample.eap file by selecting the Help | Open Example Model menu option.
2. From the Project Browser, select any of the following packages:
3. When completed, press [Ctrl]+[E] to open the generated source code. You should see methods
generated in the code.
Note:
To be able to generate code from behavioral models, all behavioral constructs should be contained within a
Class.
A State Machine 678 in a Class internally generates the following constructs in software languages to enable
effective execution of the States' behaviors (do, entry and exit) and also to code the appropriate transition's
effect when necessary.
Enumerations
· StateType - comprises an enumeration for each of the States contained within the State Machine
· TransitionType – comprises an enumeration for each transition that has a valid effect associated with it; for
example ProcessOrder_Delivered_to_ProcessOrder_Closed
· CommandType – comprises an enumeration for each of the behavior types that a State can contain (Do,
Entry, Exit).
Attributes
· currState:StateType - a variable to hold the current State's information
· nextState:StateType – a variable to hold the next State's information, set by each State's transitions
accordingly
· currTransition:TransitionType – a variable to hold the current transition information; this is set if the
transition has a valid effect associated with it
· transcend:Boolean - a flag used to advise if a transition is involved in transcending between different State
Machines (or Submachine states)
· xx_history:StateType – a history variable for each State Machine/Submachine State, to hold information
about the last State from which the transition took place.
Operations
· StatesProc - a States procedure, containing a map between a State's enumeration and its operation; it
de-references the current State's information to invoke the respective State's function
· TransitionsProc - a Transitions procedure, containing a map between the Transition's enumeration and its
effect; it invokes the respective effect
· <<State>> - an operation for each of the States contained within the State Machine; this renders a State's
behaviors based on the input CommandType, and also executes its transitions
· initializeStateMachine – a function that initializes all the framework-related attributes
· runStateMachine - a function that iterates through each State, and executes their behaviors and transitions
accordingly.
Click here 1317 to display an example of Java code generated from the State Machine diagram above.
switch(command)
{
case Do:
{
// Do Behaviors..
// State's Transitions
break;
}
default:
{
break;
}
}
}
case ProcessOrder_Packed:
{
processOrder_Packed(command);
break;
}
case ProcessOrder_Closed:
{
processOrder_Closed(command);
break;
}
case ProcessOrder_Dispatched:
{
processOrder_Dispatched(command);
break;
}
case ProcessOrder_New:
{
processOrder_New(command);
break;
}
default:
break;
}
}
private void TransitionsProc(TransitionType transition)
{
switch(transition)
{
case ProcessOrder_Delivered_to_ProcessOrder_Closed:
{
setStatus(closed);
break;
}
default:
break;
}
}
private void initalizeStateMachine()
{
currState = StateType.ProcessOrder_New;
nextState = StateType.ST_NOSTATE;
currTransition = TransitionType.TT_NOTRANSITION;
}
currTransition = TransitionType.TT_NOTRANSITION;
StatesProc(currState, CommandType.Do);
// then check if there is any valid transition assigned after the do behavior
if ( nextState == StateType.ST_NOSTATE)
{
break;
}
if ( currTransition != TransitionType.TT_NOTRANSITION )
{
TransitionsProc( currTransition );
}
if ( currState != nextState)
{
StatesProc(currState, CommandType.Exit);
StatesProc(nextState, CommandType.Entry);
currState = nextState ;
}
}
}
For efficient code generation from State Machine models into Hardware Description Languages (HDL) such as
VHDL, Verilog and Systems C, apply the design practices outlined in this topic.
In an HDL State Machine model, the following are expected:
· Designate Driving Triggers
© 1998-2010 Sparx Systems Pty Ltd
1320 Software Development | Software Engineering
Asynchronous Triggers
Asynchronous triggers should be modeled according to the following pattern:
1. The trigger should be of type Change (specification: true / false)
2. The active state (Submachine State) should have a transition trigger by it.
3. The target state of the triggered transition should have a self transition with the same trigger
Clock
A trigger of type time, which triggers the transitions to the active state (Submachine State) is deemed as the
Clock. The specification of this trigger should be specific to the target language.
Clock Trigger Specifications
A Dependency relationship from the Port to the associated trigger should be used to signify their association.
See Also:
· State Machine Diagram 678
· Transition 892
· SW Code Generation - State Machine Diagrams 1316 .
Note:
The current code generation engine supports only one clock trigger for a component.
During code generation from Interaction (Sequence) diagrams 706 in a Class, Enterprise Architect applies its
system engineering graph optimizer to transform the Class constructs into programmatic paradigms.
Messages and Fragments are identified as one of the several action types based on their functionality, and
Enterprise Architect uses the EASL code generation templates to render their behavior accordingly. For
example:
· A Message that invokes an operation is identified as an Action Call and is rendered accordingly
· Combined Fragments are identified by their types and conditions; for instance, an Alt fragment is identified
as an Action If, and a loop fragment is identified as an Action Loop.
For more information on the EASL code generation macros and templates Enterprise Architect uses to
generate code from behavioral models see the EASL Code Generation Macros 1193 topic.
{
placeOrder(101); //Interaction Occurrence
}
else
{
return;
}
}
Code generation from an Activity diagram 674 in a Class requires a validation phase, during which Enterprise
Architect uses the system engineering graph optimizer to analyze the diagram and render it into various
code-generatable constructs. Enterprise Architect also transforms the constructs into one of the various action
types (if appropriate), similar to the Interaction diagram constructs. Enterprise Architect then uses the EASL
code generation macros to generate code from these constructs.
For more information on the EASL code generation macros and templates Enterprise Architect uses to
generate code from behavioral models see the EASL Code Generation Macros 1193 topic.
To provide a comprehensive analysis of these features several diagrams from the EAExample project are
shown as examples.
Conditional Statements
To model a conditional statement, you use Decision/Merge nodes. Alternatively, you can imply
Decisions/Merges internally. The graph optimizer expects an associated Merge node for each Decision node,
to facilitate efficient tracking of various branches and analysis of the code constructs within them.
The following diagram is interpreted as a nested IF statement.
The Java code that might be generated from this diagram is as follows:
}
else
{
bRet = false;
}
return bRet;
}
}
else
{
System.out.println("Invalid user");
}
return;
}
Loops
Enterprise Architect's system engineering graph optimizer is also capable of analyzing and identifying loops.
An identified loop is internally rendered as an Action Loop, which is translated by the EASL code generation
macros to generate the required code.
The following diagram demonstrates how a loop can be modeled.
{
//No Outstanding orders;
}
return;
}
In addition to generating and importing code, Enterprise Architect provides the option to synchronize the
model and source code, creating a model that represents the latest changes in the source code and vice
versa. You can use either the model as the source, or the code as the source.
For example: you generated some source code, but made subsequent changes to the model. When you
generate code again, Enterprise Architect adds any new attributes or methods to the existing source code,
leaving intact what already exists. This means developers can work on the source code and then generate
additional methods as required from the model, without having their code overwritten or destroyed.
Note:
Code synchronization does not change method bodies. Behavioral code generation 1314 only works when
generating the entire file.
Similarly, you might have made changes to a source code file, but the model has detailed notes and
characteristics you do not want to lose. By synchronizing from the source code into the model, you import
additional attributes and methods but do not change other model elements.
Using the two synchronization methods above, it is simple to keep source code and model elements up to
date and synchronized.
Note:
In the Corporate, Business and Software Engineering, System Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Generate Source Code and DDL 198 permission to
synchronize source code with model elements.
Note:
These buttons are only available when the On forward synch, prompt to delete code features not in
model checkbox is selected in the Options - Attributes and Operations 1341 dialog.
· Delete: when you click on this button the selected code features are removed from the code.
· Reassign: when you click on this button the code elements are reassigned to elements in the model (this
is only possible when an appropriate model element is present that is not already defined in the code).
· Ignore: when you click on this button the code elements not present in the model are ignored completely.
· Reset to Default: when you click on this button the settings for synchronizing during forward generation
are set to Ignore, meaning that the elements present in the code but not in the model are ignored
completely.
Reverse Engineering in Enterprise Architect enables you to import existing source code from a variety of code
languages into a UML model. Existing source code structures are mapped into their UML representations, for
example a Java Class is mapped into a UML Class element with the variables being defined as attributes,
methods are modeled as operations and the interactions between the Java Classes being displayed in the
UML model Class diagram with the appropriate connectors.
Note:
In the Corporate, Business and Software Engineering, System Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Reverse Engineer From DDL And Source Code
198 permission to reverse engineer source code and synchronize model elements against code.
Reverse Engineering enables users to examine legacy code and examine the functionality of code libraries for
reuse or to bring the UML model up to date with the code that has been developed as part of a process called
synchronization. Examining the code in a UML model enables user to identify the critical modules contained
the code, enabling a starting point for understanding of the business and system requirements of the pre-
existing system and to enable the developers to gain a better overall understanding of the source code.
To begin the process of importing existing code into Enterprise Architect, an existing source of code must be
imported into Enterprise Architect 1329 , which can be a single directory or a directory structure 1332 . Several
options are available when performing the reverse engineering process. The Source Code Engineering
Options 1336 topic contains several options that affect the reverse engineering process. These include:
· If comments are reverse engineered into notes fields, and how they are formatted if they are
· How property methods are recognized
· If dependencies should be created for operation return and parameter types.
It is important to note that when a legacy system is not well designed, simply importing the source into
Enterprise Architect does not create an easily understandable UML model. When working with a legacy
system that is poorly designed it is useful to break down the code into manageable components by examining
the code elements individually. This can be achieved by importing a specific Class of interest into a diagram
and then inserting the related elements 551 at one level to determine immediate relationship to other Classes.
From this point it is possible to create Use Cases that identify the interaction between the legacy Classes,
enabling an overview of the legacy system's operation.
Copyright ownership is an important issue to take into account when undertaking the process of reverse
engineering. In some cases, software might have specific limitations that prohibit the process of reverse
engineering. It is important that a user address the issue of copyright before beginning the process of reverse
engineering code. Situations that typically lend themselves to reverse engineering source code include source
code that:
· You have already developed
· Is part of a third-party library that you have obtained permission to use
· Is part of a framework that your organization uses
· Is being developed on a daily basis by your developers.
Enterprise Architect currently supports reverse engineering in the following programming languages:
· ActionScript 1283
· Ada 2005 1284 (Systems Engineering and Ultimate editions)
· C 1285
· C# 1287
· C++ 1289
· Delphi 1292
· Java 1293
· PHP 1294
· Python 1295
· SystemC 1295 (Systems Engineering and Ultimate editions)
· Verilog 1298 (Systems Engineering and Ultimate editions)
· VHDL 1299 (Systems Engineering and Ultimate editions)
· Visual Basic 1301
· Visual Basic .NET 1296
Enterprise Architect is also able to reverse engineer certain types of binary files: Java .jar files and .NET PE
files. See Import Binary Module 1334 for more information.
Note:
Reverse Engineering of other languages is currently available through the use of MDG Technologies from
www.sparxsystems.com/resources/mdg_tech/.
Enterprise Architect supports most constructs and keywords for each coding language.
If there is a particular feature you require support for that you feel is missing, please contact Sparx Systems.
You must select the appropriate type of source file for the language, as the source code to import.
ActionScript
Appropriate type of source file: .as.
C
Appropriate type of source file: .h header files and/or .c files.
When you select a header file Enterprise Architect automatically searches for the corresponding .c
implementation file to import based on the options for extension and search path specified in the C options 1349
.
Enterprise Architect does not expand macros that have been used, these must be added into the internal list
of Language Macros 1344 .
C++
Appropriate type of source file: .h header file.
Enterprise Architect automatically searches for the .cpp implementation file based on the extension and
search path set in the C++ options 1351 . When it finds the implementation file it can use it to resolve parameter
names and method notes as necessary.
When importing C++ source code, Enterprise Architect ignores function pointer declarations. To import them
into your model you could create a typedef to define a function pointer type, then declare function pointers
using that type. Function pointers declared in this way are imported as attributes of the function pointer type.
Enterprise Architect does not expand macros that have been used; these must be added into the internal list
of Language Macros 1344 .
C#
Appropriate type of source file: .cs.
Delphi
Appropriate type of source file: .pas.
Java
Appropriate type of source file: .java.
Enterprise Architect supports the AspectJ language extensions.
Aspects are modeled using Classes with the stereotype aspect. These aspects can then contain attributes and
methods as for a normal Class. If an intertype attribute or operation is required, you can add a tag className
with the value being the name of the Class it belongs to.
Pointcuts are defined as operations with the stereotype of pointcut. These can occur in any Java Class,
Interface or aspect. The details of the pointcut are included in the behavior field of the method.
Advice is defined as an operation with the stereotype advice. The pointcut this advice operates on is in the
behavior field and acts as part of the method's unique signature. After advice can also have one of the
Tagged Values returning or throwing.
PHP
Appropriate type of source file: .php, .php4, or .inc.
Python
Appropriate type of source file: .py.
Visual Basic
Appropriate type of source file: .cls Class file.
between code and the UML model. Merging changes can be achieved with minimal effort, and navigation
between model and source code is significantly enhanced.
A trial version of MDG Integration for Eclipse can be downloaded from www.sparxsystems.com/products/mdg/
int/eclipse/index.html and MDG Integration for Visual Studio can be downloaded from www.sparxsystems.com/
products/mdg/int/vs/index.html.
By default, all Classes are marked for deletion. To keep one or more Classes, select them and click on the
Ignore button.
You can set the default code options such as the editors for each of the programming languages available for
Enterprise Architect and special options for how source code is generated.
See Also
· General Options 1336
· Local Paths 1343
· Local Path Dialog 1343
· Language Macros 1344
© 1998-2010 Sparx Systems Pty Ltd
1336 Software Development | Software Engineering
Most of the settings are self-explanatory. The Remove prefixes when generating Get/Set properties field
enables you to specify prefixes used in your variable naming conventions, if those prefixes should be removed
in the variables' corresponding get/set functions.
Click on the Component Types button to configure what elements 1337 should be created for files of any
extension found while importing a source code directory.
Note:
It is worthwhile to configure these settings, as they serve as the defaults for all Classes in the model. You can
override these on a per-Class basis using the custom settings (from the Code Generation dialog).
Note:
You can transport these import component types between models, using the Export Reference Data 223 and
Import Reference Data 225 options on the Tools menu.
Option Use to
Use inbuilt editor if no Specify the editor for code in a language if no external editor is defined for
external editor set that language.
Show Structure Tree Show a tree with the results of parsing the open file (requires that the file is
parsed successfully).
Don't parse files larger than Specify an upper limit on file size for parsing. Used to prevent performance
decrease due to parsing very large files.
Syntax Highlighting Options Specify both global and language-specific editor language properties 1338 .
General Features
The panel on the left of the dialog lists the languages for which you can set properties. The (Global) item at
the top of the list enables you to set properties that apply to all programming languages; however, you can
reset a global property to a different value for a specific language, on the page for that language. Resetting a
global property for one language does not affect that property's value for the other languages.
Click on the required language in the list, to display the properties for that language. Those properties shown
in bold indicate that this is the highest level at which this property can be defined (for most language options
other than Global, this is effectively the only point at which the property is defined). Properties shown in
normal font are generally the global properties that you can reset just for the current language.
Scroll through the property categories and individual properties for the language. You can collapse and
expand categories as necessary, using the expansion box next to the category name ( ).
When you click on a property name, an explanation of that property displays in the panel at the bottom right of
the dialog, as shown for Tabs Use Spaces in the screen example above.
Define Properties
To define a property, click on the value field following the property name. Depending on the type of property,
either the field is enabled for direct editing or a drop-down arrow or Browse button displays (as described for
the Tagged Values 635 window) to enable you to select the values to define the property. Select or type in the
required values.
The Toolbar icons enable you to:
· Save your changes to the properties
· Reset ALL properties fields to the default settings shipped with Enterprise Architect
· Reset the current style field to the default setting (not enabled for non-style fields).
This dialog lists the existing macros and, if a key combination has been assigned to a macro, what that key
combination is. These keys are [Ctrl]+[Alt]+[n] combinations.
Click on the name of the macro and on the Open button to assign the selected keys to the macro.
2. In the Code page for source editing field, click on the drop-down arrow and select the appropriate
Unicode character set.
3. Click on the Close button.
Note:
You can also set up a hyperlink 840 on a diagram to access the Local Paths dialog, to switch, update or
expand your current Local Path.
Note:
You can transport these language macro (or preprocessor macro) definitions between models, using the
Export Reference Data 223 and Import Reference Data 225 options on the Tools menu. The macros are
exported as a Macro List.
Define a Macro
1. Select the Settings | Preprocessor Macros menu option. The Language Macros dialog displays.
If declspec is defined as a C++ macro, as outlined above, the imported Class and operation contain a Tagged
Value called DeclMacro1 with value __declspec. (Subsequent macros would be defined as DeclMacro2,
DeclMacro3 and so on.) During forward engineering, these Tagged Values are used to regenerate the macros
in code.
Note:
The spaces surrounding the ^ symbol are required.
Function Macros
RTTI_EMULATION()
where Enterprise Architect skips over the token including everything inside the parentheses.
The Collection Classes for Association Roles dialog again displays, but here you define for when only
this Class is used:
· The default Collection Class for 1..* roles
· The ordered Collection Class to use for 1..* roles
· The qualified Collection Class to use for 1..* roles.
When Enterprise Architect generates code for a connector that has a multiplicity role >1, the Collection Class
is calculated as follows:
1. If the Qualifier is set use the qualified collection:
· for the Class if set
· else use the code language qualified collection.
2. If the Order option is set use the ordered collection:
· for the Class if set
· else use the code language ordered collection.
3. Else use the default collection:
· for the Class if set
· else use the code language default collection.
Note:
You can include the marker #TYPE# in the collection name; Enterprise Architect replaces this with the name
of the Class being collected at source generation time (for example, Vector<#TYPE#> would become
Vector<foo>).
Additionally, on both the Source Role and Target Role tabs of the Association Property dialog (accessible from
the right-click context menu of any Association) there is a Member Type field. If you set this, the value you
enter overrides all the above options. The example below shows a defined PersonList; when code is
generated, because this has a Multiplicity greater than 1 and the Member Type is defined, the variable
created is of type PersonList.
Under the Source Code Engineering option, select the required language. The following topics outline the
options available for each language.
· ActionScript 1348
· Ada 2005 1348 (in the System Engineering and Ultimate editions of Enterprise Architect)
· ANSI C 1349
· C# 1350
· C++ 1351
· Delphi 1352
· Delphi Properties 1353
· Java 1355
· PHP 1356
· Python 1356
· SystemC 1357
· VB.Net 1358
· Verilog 1358
· VHDL 1359
· Visual Basic 1360
· MDG Technology Languages 1360
· Reset Options 1361
Note:
Ada 2005 support is available in the System Engineering and Ultimate editions of Enterprise Architect.
Configure options for Ada 2005 code generation using the Ada page of the Options dialog (select the Tools |
Options | Source Code Engineering | Ada menu option). The options you can specify include:
· Use Class Name for Tagged Record - to inform the reverse engineering process whether the name of the
Tagged Record is the same as the package name
· Alternate Tagged Record Name - to advise the engine of the alternate Tagged Record name to locate
· Define Reference for Tagged Record - to specify whether the engine should create a reference type for the
Tagged Record ( if one is not defined)
· Reference Type Name - to supply the name of the reference type to be created (default is Ref)
· Ref Parameter Style - to specify the reference parameter of a Reference / Access type
· Ignore Reference Parameter Name - to tell the engine to ignore the name of the reference parameter
· Ref Parameter Name - to indicate the name of the reference parameter to locate
7.2.7.6.3 C Options
Configure options for C code generation using the C Specifications page of the Options dialog (select the
Tools | Options | Source Code Engineering | C menu option). The options you can specify include:
· Support for Object Oriented coding
· Default file extensions (header and source)
· Default source directory
· Editor for C code
· Path that Enterprise Architect uses to search for the implementation file; the first path in the list is the
default path when generating.
7.2.7.6.4 C# Options
Configure options for C# code generation using the C# Specifications page of the Options dialog (select the
Tools | Options | Source Code Engineering | C# menu option). The options you can specify include the
default:
· File extension
· 'Get' prefix
· 'Set' prefix
· Directory for opening and saving C# source code.
For example, you have a directory inc that contains all of your headers, while the source code is mixed
through directories src, srca, and srcb. You therefore set the Source Path option to ../src/;../srca/;../srcb/.
This ensures that new implementation files are generated into src, but when parsing existing files
Enterprise Architect looks in all three source directories (but never in the inc directory). You must still
ensure that the implementation file name matches the header file name, and that the file extension
matches the extension specified in the options. If these conditions are not met, Enterprise Architect cannot
handle that code.
You should also set Delphi properties 1353 within each Class element.
Note:
When you use the Create Property dialog from the Attribute screen, Enterprise Architect generates a pair of
Get and Set functions, together with the required property definition as Tagged Values. You can manually edit
these Tagged Values if required.
The Delphi Properties editor enables you to build properties in a simple and straightforward manner. From
here you can:
· Change the name and scope (only Public and Published are currently supported)
· Change the property type (the drop-down list includes all defined Classes in the project)
· Set the Read and Write information (the drop-down lists have all the attributes and operations from the
current Class; you can also enter free text)
· Set Stored to True or False
· Set the Implements information
· Set the Default value, if one exists.
Notes:
· Public properties are displayed with a '+' symbol prefix and published with a '^'.
· When creating a property in the Create Property Implementation dialog (accessed through the Attributes
dialog), you can set the scope to Published if the property type is Delphi - see the example below.
Limitations
· Only Public and Published are supported
· If you change the name of a property and forward engineer, a new property is added, but the old one must
be manually deleted from the source file.
These options are set in the technology inside the <CodeOptions> tag of a code module, as follows:
<CodeOption name="DefaultExtension">.rb</CodeOption>
1. Right-click on the Class to change, and select the Generate Code menu option from the context menu.
The Generate Code dialog displays.
2. Click on the Advanced button. The Object Options dialog displays.
3. Click on the Attributes/Operations button.
4. Change the options, and click on the Close button to apply changes.
Notes:
· Import of stored procedures and views is supported for: DB2; SQL Server; Firebird/Interbase; Informix;
Ingres; Oracle 9i, 10g and 11g; MySQL; PostgreSQL; Sybase Adaptive Server Enterprise (ASE) and
Sybase Adaptive Server Anywhere (ASA).
· If you are importing database schema from an MS Access Jet 4.0 database, please ensure that you have
selected the Use Jet 4.0 checkbox on the General 351 page of the Options dialog. Otherwise, the Jet 3.5
routines are loaded. You must restart Enterprise Architect after selecting the checkbox.
· The ODBC connection should use the ODBC driver available from the DBMS vendor. For example,
MySQL's ODBC driver for MySQL, and Oracle's ODBC driver for Oracle. Drivers provided by third-party
vendors are not supported - this includes the Microsoft ODBC driver for Oracle.
· If setting up a ODBC connection for reverse engineering, the default settings are sufficient.
· Additional data types are available from the Datamodeling Data Types section of the Resources page on
the Sparx Systems website.
Note:
Alternatively you can select the Project | Database Engineering | Import DB Schema from ODBC
menu option.
3. In the Database field, click on the [ ... ] (Browse) button and select a suitable ODBC data source 1365
from the ODBC dialog (ODBC must be installed and configured on your machine for this to work
correctly).
When you have selected the data source, the Database field shows the DBMS, the database server ID
and the database name, separated by full stops; that is:
dbms.dbserver.database.
4. If importing from Oracle, to restrict the import to a specific owner, type the owner name in the
Schema/Owner field. By default, Enterprise Architect inserts the Oracle user name in this field.
For imports from other types of database, leave this field blank.
5. In the Filter panel, select the appropriate checkboxes for additional items to include in the import.
Select the appropriate checkboxes to import system tables and views, user views, triggers and/or
Oracle packages.
If you select to import User Functions and/or User Sequences as individual Classes, then they are
imported as separate elements and the Properties dialog is solely concerned with the Function or
Sequence definition. For Stored Procedures, always select this option
If you select to import User Functions and/or User Sequences as Class operations, then they are
imported as operations (methods) and you view and edit them through the Operations Properties dialog
of the parent Class.
6. When synchronizing existing Classes, select the appropriate checkbox in the Synchronization panel to
determine whether the model comments, default values or constraints are to be synchronized with the
ODBC tables, or as new objects.
Note:
It is only possible to import into a diagram if it is in the selected package. If a diagram from another
package is open, a message displays to give the option to cancel the import or to continue importing
into the package only. The Import DB Schema from ODBC Source dialog includes checkbox options to
import into the diagram and package, or into the package only.
If no diagram is open, the Package Only radio button defaults to selected and the options are
disabled. If the open diagram is in the selected package, you can select either option.
Highlight the tables and stored procedures to import and clear those you do not require.
Selection shortcuts:
· To select all tables and procedures, click on the Select All button
· To clear all tables and procedures, click on the Select None button
· Hold down [Ctrl] while clicking on tables and procedures to select multiple objects
· Hold down [Shift] and click on tables and procedures to select a range.
When you have selected the tables and procedures, click on the OK button.
To generate simple DDL scripts to create the tables in your model, follow the steps below:
1. In the diagram, right-click on the table for which to generate DDL. The context menu displays.
2. Select the Generate DDL option. The Generate DDL dialog displays.
3. In the Path field, use the [ ... ] (Browse) button to select the filename of the script to create.
4. To include comments in the DDL, in the Comment Level field select the appropriate level. For
example, Column for comments on columns, or All for comments on all structures.
5. Select the checkboxes for the appropriate inclusions. For example, to include a 'drop table' command in
the script, select the Create Drop SQL checkbox. Deselect the checkboxes for inclusions you do not
require.
Notes:
· Some checkboxes display only if the appropriate database is defined for the table. For example, IF
EXISTS displays only if the database for the table is PostgreSQL.
· For a PostgreSQL database, you must select the Generate Sequences checkbox to enable auto
increment columns to be created.
· If generating Oracle sequences, you must always select the Generate Triggers and Generate
Sequences checkboxes; this ensures that a pre-insert trigger is generated to select the next
sequence value to populate the column. Also set the AutoNum 1021 property to True in the column
properties.
Note:
You can transport these DDL scripts between models, using the Export Reference Data 223 and Import
Reference Data 225 options on the Tools menu.
In this procedure, you can generate DDL for a package, and also compare the DDL with the database.
Generate DDL
To generate DDL for a package, follow the steps below:
1. Right-click on the required package in the Project Browser. The context menu displays.
2. Select the Code Engineering | Generate DDL menu option. The Generate Package DDL dialog
displays.
Note:
Alternatively you can select the Project | Database Engineering | Generate Package DDL menu
option.
3. Select the checkbox against each inclusion required. Deselect the checkboxes for inclusions you do not
require.
Notes:
· Some checkboxes display only if the appropriate database is defined for the tables in the package.
For example, IF EXISTS displays only if the database for the tables is PostgreSQL.
· If generating Oracle sequences, you must always select the Generate Triggers and Generate
Sequences checkboxes; this ensures that a pre-insert trigger is generated to select the next
sequence value to populate the column. Also set the AutoNum 1021 property to True in the column
properties.
4. To recursively generate DDL, select the Include All Child Packages checkbox.
5. Click on the Generate button to proceed. Enterprise Architect prompts you for file names as the
process executes.
2. Click on the [ ... ] button and locate the required database on the Select Data Source dialog.
3. For an Oracle database, if required you can also specify the Owner in the Schema/Owner field.
4. Click on the View button to perform the comparison. The Comparison Database dialog displays with the
results of the comparison. Click on each table name to review information on that table.
3. In the Directory field, click on the [ ... ] (Browse) button. The Select XML Schema(s) dialog displays.
4. Click on the required input file. To select several individual files, press [Ctrl] as you click on each one.
To select a range of files, press [Shift] and click on the first and last file in the range.
5. Click on the Open button to return to the Import XML Schema dialog, which now shows the selected
files in the Selected File(s) field.
6. The Import global elements with "Type" postfix 1375 checkbox defaults to unselected to import a
global element, and the ComplexType to which it refers, as a single ComplexType Class.
7. The Import referenced XML Schema(s) checkbox defaults to selected, to import any other Schema file
referenced by the selected input XML Schema file or files.
Note:
If an XML Schema file being imported already exists in the model, Enterprise Architect skips importing
the file.
8. The Create Diagram for XML Schema(s) checkbox defaults to selected, to display the imported
elements on the diagram. If necessary, deselect the checkbox.
9. For the Import XSD Elements/Attributes as: field, select the appropriate radio button to import
elements and attributes in the XML Schema as:
· UML Association connectors or
· UML Class attributes.
10. Click on the Import button to import the schema.
11. The progress of the schema import is shown in the Progress status bar.
Tip:
The Import XML Schema dialog can also be accessed for the active diagram by selecting the Project | XML
Schema | Import XML Schema menu option.
Note:
Enterprise Architect uses the schemaLocation attribute in the Import and Include elements of an XML
Schema to determine the dependencies between the files. Ensure that this attribute is set to a valid file path
(and not a URL) for the dependent XML Schema(s) to be imported correctly.
You can change this default behaviour by selecting the Import global elements with "Type" postfix
checkbox. When you select this option, Enterprise Architect treats the global element and the ComplexType it
is referring to as two separate entities. So, for the above example, Enterprise Architect creates an
XSDtopLevelElement stereotyped Class for the global element and an XSDcomplexType stereotyped Class
for the ComplexType, and connects them as follows:
Note:
Enterprise Architect treats the following as two separate entities irrespective of whether the Import global
elements with "Type" postfix checkbox is selected or unselected:
<xs:element name="HomeAddress" type="AddressType"/>
<xs:complexType name="AddressType">
<xs:sequence/>
</xs:complexType>
Note:
Enterprise Architect cannot import a WSDL file that references WSDL constructs existing outside the target
file. For example, Enterprise Architect can import a WSDL as shown in
http://www.w3.org/TR/wsdl.html#_example1 but not a file as shown in http://www.w3.org/TR/wsdl.html#_style.
Attempting to import the second WSDL file would result in the following error message:
Cannot Import Split Files.
To avoid this limitation, combine the split WSDL files into a single file and then import it into Enterprise
Architect.
8. Ensure that the checkbox is selected for each package required for generation.
9. Click on the Generate button to generate the schema for each of the selected packages.
10. The progress of the schema generator is shown in the Progress box.
11. When schema generation is complete, click on an entry in the list box and click on the View Schema
button to review the generated schema.
Tip:
The Generate XML Schema dialog can also be accessed from the active diagram by selecting the Project |
XML Schema | Generate XML Schema menu option.
You can change this default behaviour by deselecting the Generate global element for all global
ComplexTypes checkbox on the Generate XML Schema 1376 dialog. Then, the generated XSD no longer
contains the global element, as shown below:
3. For each WSDL component, set the required output file using the Target File column.
4. Using the Encoding field, set the required XML encoding.
5. Click on the Generate button to generate the WSDL files.
6. The progress of the WSDL generator is shown in the Progress edit box.
Tip:
The Generate WSDL dialog can also be accessed from the active diagram by selecting the Project |
Generate WSDL menu option.
Background Knowledge
MOF is an Object Management Group (OMG) standard that originated in the UML, when the OMG required a
Meta-Modeling architecture to define the UML. MOF is designed as a four-layered architecture, as illustrated in
the following diagram.
Because of the similarities between the MOF-model and UML structure models, MOF meta-models are usually
modeled as UML Class diagrams 721 . You can also use the Metamodel 415 page of the Toolbox to create MOF
model elements and connectors. A supporting standard of MOF is XMI, which defines an XML-based
exchange format.
MOF is a closed, strict meta-modeling architecture; every model element on every layer is strictly an instance
of a model element of the layer above. MOF only provides a means to define the structure or abstract syntax
of a languages or of data.
Simplified, MOF uses the notion of Classes, as known from object orientation, to define concepts (model
elements) on a meta-layer. These Classes (concepts) can then be instantiated through objects (instances) of
the model layer below. Because an element on the M2 layer is an object (instance of an M3 model element)
as well as a Class (an M2 layer concept) the notion of a clabject is used. Clabject is a merge of the words
Class and object.
Another related standard is OCL, which describes a formal language that can be used to define model
constraints by means of predicate logic.
See Also
· Getting Started 1381
· Export MOF to XMI 1383
Model Driven Architecture (MDA) Transformations provide a fully configurable way of converting model
elements and model fragments from one domain to another. This typically involves converting Platform-
Independent Model (PIM) elements to Platform-Specific Model (PSM) elements. A single element from the PIM
can be responsible for creating multiple PSM elements across multiple domains.
Transformations are a huge productivity boost, and reduce the necessity of manually implementing stock
Classes and elements for a particular implementation domain: for example, database tables generated from
persistent PIM Classes. Enterprise Architect includes some basic built-in Transformations, such as PIM to
Data Model, PIM to C#, PIM to Java and PIM to XSD. Sparx Systems will make further Transformations
available over time, either as built in Transformations or as downloadable modules from the Sparx Systems
website.
For a further productivity boost, Enterprise Architect can automatically generate code for your transformed
Classes that target code languages. See the Generate Code on result 1388 option on the Model
Transformation dialog.
A Transformation is defined using Enterprise Architect's simple code generation template language, and
involves no more than writing a template to create a simple intermediary source file. Enterprise Architect reads
the source file and binds that to the new PSM.
Enterprise Architect also creates internal bindings (Transformation Dependencies) between each PSM created
and the original PIM. This is essential, as it enables you to forward synchronize from the PIM to the PSM many
times, adding or deleting features as you go. For example, adding a new attribute to a PIM Class can be
forward synchronized to a new column in the Data Model. You can observe the Transformation Dependencies
for a package using the Traceability window. This enables you to check the impact of changes to a PIM
element on the corresponding elements in each generated PSM, or to verify where a change required in a
PSM should be initiated in the PIM (and also to reflect back in other PSMs). The Transformation
Dependencies are a valuable tool in managing the traceability 1245 of your models.
Enterprise Architect does not delete or overwrite any element features that were not originally generated by
the transform. Therefore, you can add new methods to your elements, and Enterprise Architect does not act
on them during the forward generation process.
Note:
If you are using the Corporate, Business and Software Engineering, System Engineering or Ultimate edition,
if security is enabled you must have Transform Package 198 access permission to perform an MDA
Transform on a package.
The following diagram highlights how Transformations work and how they can significantly boost your
productivity:
· JUnit - Converts a Java model to a model where test methods are created for each public method of any
original Class
· NUnit - Converts a .Net language specific model to a model where test methods are created for each
public method of any original Class
· WSDL - Converts a simple representation of a WSDL interface into the elements required to generate that
interface
· XSD - Transforms platform-independent elements to XSD elements.
When the dialog displays, all elements are selected and all transformations previously performed from any of
these Classes are checked.
Option Use to
Elements Select (click on) the individual elements to be included in the transformation.
All Select all of the elements from the list to be included in the transformation.
Include child packages Select to include elements in child packages of the selected package.
Transformations Select which transformations to perform and the package each of them
should be transformed to. (Use the [ ... ] button to select the package in
which the transformed elements are being created.)
Generate Code on result Specify whether or not to automatically generate code for transformed
Classes that target code languages.
Automatically generating code helps boost productivity in development. With
this option selected, the first time you transform to the selected Class
Enterprise Architect enables you to select a filename to generate to.
Subsequent transformations automatically generate any Class with a
filename set.
Intermediary File Specify the filename of the intermediary file (if any).
Write Now Generate the intermediary file but do not perform the transform.
7.5.2.1 C# Transformation
The C# transformation converts Platform-Independent Model (PIM) elements to language-specific C# Class
elements. The transformation converts PIM model types to C# types and creates encapsulation according to
Enterprise Architect's options for creating properties from C# attributes, which you set on the C# Specifications
1350 page 1350 of the Options dialog.
transformation.
The transformation uses and demonstrates support in the intermediary language for the following
database-specific concepts:
Tip:
Sometimes you might want to limit the stretch of the diamond-shape Relationship connectors. Simply pick a
Relationship connector, right-click to display the context menu, and select the Bend Line at Cursor option.
Primary Key Lists all the columns involved; this ensures that they exist in the Class and creates a primary
key method for them.
Foreign Key This is a special sort of connector. The Source and Target sections list all of the columns
involved; this ensures that they exist and that a matching primary key exists in the destination
Class, and that the transformation creates the appropriate foreign key.
The following two diagrams show a typical PIM to Data Model Transformation.
Generalizations are handled by providing the child element with a foreign key to the parent element, as in the
following diagram. Copy-down inheritance is not supported.
After transformation generates a set of Entity Beans, where each one takes the following form (for the
Account Class):
Make sure the primary key exists in the source Entity; the transformation then creates the
Foreign Key
appropriate foreign key.
After transformation becomes the Data Model Diagram (for an Oracle DBMS):
Tip:
Sometimes you might go back to the ERD, make some changes and then want to do another transformation.
To achieve better results, always delete the previous transformation package before doing the next
transformation.
Generalization
Generalization can be handled in ERD technology, as illustrated by the following example. Note that the
copy-down inheritance is currently supported with two levels only.
Note that for each Class in the Java model, a corresponding test Class has been created. Each of these test
Classes contains a test method for every public method in the source Class, plus the methods required to
appropriately set up the tests 1512 . It is your responsibility to fill in the details of each test.
Note that for each Class in the C# model, a corresponding test Class has been created. Each of these test
Classes contains a test method for every public method in the source Class, plus the methods required to
appropriately set up the tests 1512 . It is your responsibility to fill in the details of each test.
This generates the corresponding WSDL component, service, port type, binding and messages as follows.
· Classes are handled in the same way as the XSD Transformation 1409
· All in parameters are transformed into messageParts in the Request message
· The return value and all out and return parameters are transformed into messageParts in the Request
message
· All methods where a value is returned are transformed into Request-Response operations while all
methods not returning a value are transformed into OneWay operations
· The transformation does not handle generation of Solicit-Response and Notification methods or faults.
The resulting package can then have the specifics filled out using the WSDL editing capabilities of Enterprise
Architect, and finally be generated using WSDL generation 1379 .
<xs:element ref="LineItem"/>
<xs:element name="status" type="OrderStatus"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="OrderStatus">
<xs:restriction base="xs:string">
<xs:enumeration value="new"/>
<xs:enumeration value="packed"/>
<xs:enumeration value="dispatched"/>
<xs:enumeration value="delivered"/>
<xs:enumeration value="closed"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="ShoppingBasket" type="ShoppingBasket"/>
<xs:complexType name="ShoppingBasket">
<xs:sequence>
<xs:element ref="LineItem"/>
</xs:sequence>
</xs:complexType>
<xs:element name="StockItem" type="StockItem"/>
<xs:complexType name="StockItem">
<xs:sequence>
<xs:element name="catalogNumber" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="Transaction" type="Transaction"/>
<xs:complexType name="Transaction">
<xs:sequence>
<xs:element name="date" type="xs:date"/>
<xs:element name="orderNumber" type="xs:string"/>
<xs:element ref="Account"/>
<xs:element ref="LineItem"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
Option Use to
Template Display the contents of the active template. Provide the editor for modifying
templates.
Templates List the base transformation templates. The active template is highlighted.
The Modified field indicates whether you have changed the default template
for the current transformation.
Stereotype Overrides List the stereotyped templates, for the active base template.
The Modified field indicates whether you have modified a default stereotyped
template.
Add New Stereotyped Invoke a dialog for adding a stereotyped template, for the currently selected
Override base template.
Add New Custom Invoke a dialog for creating a custom stereotyped template.
Template
Help Launch the Enterprise Architect Help topic for this dialog.
Get Default Template Update the editor display with the default version of the active template.
Save Overwrite the active templates with the contents of the editor.
Delete If you have overridden the active template, delete the override and replace it
Option Use to
2. Click on the Select File button and browse to a .XML file containing the required Transformation
template.
3. Select the name of one or more template datasets and click on the Import button.
Note:
When creating a new transformation you must modify at least one template before the transformation
becomes available.
elementProperty:
packageName
stereotype
propertyName = " propertyValueSymbol* "
packageName:
name = " propertyValueSymbol* " ( . " propertyValueSymbol* " )*
stereotype:
stereotype = " propertyValueSymbol* " (, " propertyValueSymbol* " )*
propertyValueSymbol:
\\
\"
Any character except " (U+0022), \ (U+005C)
· elementName is any one of the set of element types as described in Objects 1415 and Connectors 1419
· propertyName is any one of the set of properties as described in Objects 1415 and Connectors 1419 .
Literal strings can be included in property values by escaping a quote character. For example:
default = "\"Some string value.\""
7.5.4.3 Objects
Objects are created in Enterprise Architect by generating text in the following form:
objectType
{
objectProperties
}
where:
objectType is one of the following object types:
· Action
· ActionPin
· Activity
· ActivityParameter
· ActivityPartition
· ActivityRegion
· Actor
· Association
· Change
· Class
· Collaboration
· CollaborationOccurrence
· Component
· DeploymentSpecification
· DiagramFrame
· Decision
· EntryPoint
· Event
· ExceptionHandler
· ExecutionEnvironment
· ExitPoint
· ExpansionNode
· ExpansionRegion
· ExposedInterface
· GUIElement
· InteractionFragment
· InteractionOccurrence
· InteractionState
· Interface
· InterruptibleActivityRegion
· Issue
· Iteration
· Object
· ObjectNode
· MessageEndpoint
· Node
· Package
· Parameter
· Part
· Port
· ProvidedInterface
· RequiredInterface
· Requirement
· Sequence
· State
· StateMachine
· StateNode
· Synchronization
· Table
· TimeLine
· Trigger
· UMLDiagram
· UseCase.
· Abstract
· Alias
· Arguments
· Author
· Cardinality
· Classifier
· Complexity
· Concurrency
· Filename
· Header
· Import
· IsActive
· IsLeaf
· IsRoot
· IsSpecification
· Keyword
· Language
· Multiplicity
· Name
· Notes
· Persistence
· Phase
· Scope
· Status
· Stereotype
· Version
· Visibility.
Notes:
· Some of the above only apply to certain object types.
· Every object created in a transformation should include an XRef element 1423 , as it enables Enterprise
Architect to synchronize with the element and makes it possible to create a connector to that Class in a
transformation.
Classes
A simple Class can be created as follows:
Class
{
name = "Example"
}
It is then easy to add to this. The following example sets the language to C++, and adds a Tagged Value and
an attribute:
Class
{
name = "Example"
language = "C++"
Tag
{
name = "defaultCollectionClass"
value = "List"
}
Attribute
{
name = "count"
type = "int"
}
}
Attributes
Attributes are created with the same structure as objects, and include the following properties:
· Alias
· Classifier
· Collection
· Container
· Containment
· Constant
· Default
· Derived
· LowerBound
· Name
· Notes
· Ordered
· Scope
· Static
· Stereotype
· Type
· UpperBound
· Volatile.
and the following elements:
· Classifier
· Tag
· XRef.
Operations
Operations are created with the same structure as objects, and include the following properties:
· Abstract
· Alias
· Behavior
· Classifier
· Code
· Constant
· IsQuery
· Name
· Notes
· Pure
· ReturnArray
· Scope
· Static
· Stereotype
· Type.
and the following elements:
· Classifier
· Parameter
· Tag
· XRef.
Parameters
Parameters are created with the same structure as objects, and include the tag element and the following
properties:
· Classifier
· Default
· Fixed
· Name
· Notes
· Kind
· Stereotype.
Packages
Packages differ from other objects in the following ways:
· A reduced set of properties of alias, author, name, namespaceRoot, notes, scope, stereotype and version
· The extra property namespaceRoot
· Must have a name specified
· Name can be a qualified name; when a qualified name is specified the properties given are applied only to
the final package
· Can contain other packages
· Can't contain attributes and operations.
Tables
Tables are a special sort of object, with the following differences from other object types:
· Can include columns and primary keys
· Can't include attributes.
Columns
Columns are similar to attributes, but have an autonumber element containing Startnum and increment, and
the following added properties:
· Length
· NotNull
· Precision
· PrimaryKey
· Scale
· Unique.
Note:
In the column definition, you cannot assign a value to the NotNull, PrimaryKey or Unique properties.
7.5.4.4 Connectors
Creating connectors in a transformation can be complex, but the process has the same form as creating
elements. The difference is that you must also specify each end.
The different connectors that can be created are as follows.
· Aggregation
· Assembly
· Association
· Collaboration
· ControlFlow
· Connector
· Delegate
· Dependency
© 1998-2010 Sparx Systems Pty Ltd
1420 Software Development | Model Transformations - MDA
· Deployment
· ForeignKey
· Generalization
· InformationFlow
· Instantiation
· Interface
· InterruptFlow
· Manifest
· Nesting
· NoteLink
· ObjectFlow
· Package
· Realization
· Sequence
· Transition
· UseCase
· Uses
Note:
· ForeignKey is a special case where not just a connector is created; you must also list the columns involved
in the transformation. In addition, tags specified on the connector are actually created on the foreign key
operation in the source Class, and a cascade property can be added; for example,
cascade="update","delete".
· Each connector is transformed at both end objects, therefore the connector might appear twice in the
transformation. This is nothing to be concerned about, but you should check carefully that the connector is
generated exactly the same way, regardless of which end is on the current Class.
There are two different types of Class that you can use as a connector end: one created by a transformation,
and one for which you already know the GUID.
Another form of this is available when transforming connectors that enables either end of the connector to be
copied:
· TRANSFORM_CURRENT(<connectorEnd>,<listOfExcludedItems>) - Generates an exact copy of the
connector end specified by <connectorEnd> except for the items named in <listOfExcludedItems>, where
<connectorEnd> is either Source or Target.
A similar macro is available when transforming common datatypes to the datatypes for a specified database.
· CONVERT_DB_TYPE(<destinationDatabase>, <originalType>) - Converts <originalType> to the
corresponding datatypes in <destinationDatabase>, which is defined in the model. The <originalType>
refers to a platform independent common datatype.
Note:
Acronyms are not supported when converting from Camel Case or Pascal Case.
The original format might also specify a list of delimiters to be used. For example a value of ' _' breaks words
whenever either a space or underscore is found.
The target format might also use a format string that specifies the case for each word and a delimiter between
them. It takes the following form:
<firstWord>(<delimiter>)<otherWords>
· <firstWord> controls the case of the first word (see below)
· <delimiter> is the string generated between words
· <otherWords> applies to all words after the first word.
<firstWord> and <otherWords> are both a sequence of two characters. The first character represents the case
of the first letter of that word, and the second character represents the case of all subsequent letters. An upper
case letter forces the output to upper case, a lower case letter forces the output to lower case, and any other
character preserves the original case.
Example 1: To capitalize the first letter of each word and separate multiple words with a space:
"Ht( )Ht" to output "My Variable Table"
Example 2: To generate the equivalent of Camel Case, but reverse the roles of upper and lower case; that is,
all characters are upper case except for the first character of each word after the first word:
"HT( )hT" to output "MY vARIABLE tABLE"
REMOVE_PREFIX(<originalName>, <prefixes>)
This macro removes any prefix found in <prefixes> from <originalName>. The prefixes are specified in a semi-
colon separated list.
The macro is often used in conjunction with the CONVERT_NAME macro. For example, this code creates a
get property name according to the options for Java.
$propertyName=%REMOVE_PREFIX(attName,genOptPropertyPrefix)%
%if genOptGenCapitalisedProperties=="T"%
$propertyName=%CONVERT_NAME($propertyName, "camel case", "pascal case")%
%endIf%
Note:
The only time that this should be specified is when creating a connector to a Class created in a different
transformation.
A good example of the use of cross references is in the DDL 1393 templates provided with Enterprise Architect.
In the Class template a cross reference is created with the name table. Then up to two different connectors
can be created, each of which must identify the two Classes it connects using cross references while having
its own unique cross reference.
Specify Classifiers
Objects, attributes, operations and parameters can all reference another element in the model as their type.
When this type is created from a transformation you must use a cross reference to specify it, using the
TRANSFORM_CLASSIFIER macro.
If the target classifier already exists in the model before the transformation, a TRANSFORM_CLASSIFIER is
inappropriate and instead the GUID can be given directly to a classifier attribute.
Note:
If a classifier is specified for any type it overrides the type specified.
This section discusses the Enterprise Architect Integrated, or Model Driven, Development Environment
(MDDE).
It describes:
· Getting started 1424 with the prerequisites and tools of the MDDE
· How to set up 1425 the scripts to control actions
· How to use the code editors 1428 across the development environment
· How to build 1443 , debug 1446 , run 1482 , test 1483 and deploy 1484 your application code
· How to search files 1485 for data names and structures.
7.6.1.1 Prerequisites
Before using the Model Driven Development Environment:
· You should be using the correct edition: Enterprise Architect Professional, Corporate or Suite Editions.
· You should be connected to the required model.
· Relevant source code should be imported into the model.
· Basic Setup 1425 should be complete.
Workspace Toolbar
7.6.2 Setup
To use the execution tools of the Model Driven Development Environment - debugging, build and recording - it
is necessary to record information about the application.This is achieved in Enterprise Architect through the
use of Package Scripts.
A Package Script, when created, is naturally associated with the package that is currently selected.
A Package Script houses all the information the MDDE requires in order to provide support for tasks such as
building the application, debugging and performing unit testing. A model can contain many Package Scripts.
Each can build a separate application, or perhaps the same application but with different compilation options.
When you select a package or child Class in the Project Explorer, the Debug Management window displays
any Package Scripts associated with that package. When you select a package root, the Debug Management
window displays the scripts for the first package it finds under the root that has Scripts.
When you selected another package, the scripts displayed in the Debug Management window change also.
You can force the scripts for a particular package to remain visible at all times by 'pinning 1428 ' the package in
the Debug Management window.
The Package Build Scripts dialog shows which script is active for the current package, and whether or not the
script contains Build, Test, Run, Debug and Deploy components. The current package is as selected in the
Project Browser; if a different package is selected, different scripts are available and different breakpoints and
markers are applied.
Note that you must close the Package Build Scripts dialog to select a different package in the Project Browser.
However, if the Debug window is open ([Alt]+[8]) you can see which debugging configuration is available and
selected, and which breakpoints and markers are displayed, as you change packages in the Project Browser.
· To create a new script, click on the Add button; the Build Script dialog 1427 displays.
· To modify an existing script, highlight the script name in the list and click on the Edit button.
· To copy a script with a new name, highlight the script name to copy and click on the Copy button;
Enterprise Architect prompts you to enter a name for the new copy. Enter the new name in the dialog and
click on the OK button. The new copy appears in the list and can be modified as usual.
· To delete a script, highlight the script name to delete, click on the Delete button, and click on the OK
button.
· To export your scripts, click on the Export button to choose the scripts to export for this package.
· To import build scripts, click on the Import button to choose a .xml file of the scripts to import.
The Default Language field enables you to set the default language for generating source code for all new
elements within this package and its descendents.
Select the Use Live Code Generation checkbox to update your source code instantly as you make changes
to your model.
Click on the All Package Scripts button to open a new window that displays all scripts in the current project.
Once you have created new scripts or made changes to existing ones, click on the OK button to confirm the
changes, otherwise click on the Cancel button to quit the Package Build Scripts dialog without saving any
changes.
When a package is pinned, the Debug window always displays the scripts defined for that package, and the
debugger always uses the selected Package Script.
in the central view area of the Enterprise Architect work area. You can also close the editors individually or all
together, leaving views of other types (such as diagrams or RTF reports) still open.
The Code Editor provides a variety of functions to assist with the code editing process, including:
· Syntax Highlighting 1429
· Bookmarks 1430
· Cursor history 1430
· Brace matching 1430
· Automatic indentation 1431
· Commenting selections 1431
· Scope guides 1431
· Zooming 1432
· Line selection 1432
· intellisense 1432
· File Search 1485 .
A range of these functions is available through keyboard key combinations and/or context menu options; see
the Code Editor Key Bindings 1433 and Code Editor Context Menu 1437 topics.
You can customize several of the Code Editor features by setting properties in the Code Editor configuration
files. For example, by default the line containing the cursor is always highlighted, but you can turn the
highlighting off. For more information see the Code Editor Configuration Guide, located as a PDF file in the
Config directory under your Enterprise Architect installation directory.
You can define 1338 how the Code Editor implements syntax highlighting, through the Code Editors page of the
Options dialog.
7.6.3.2 Bookmarks
Bookmarks denote a line of interest in the document. You can toggle them on and off for a particular line by
pressing [Ctrl]+[F2]. Additionally, you can press [F2] and [Shift]+[F2] to navigate to the next or previous
bookmark in the document.
In the following diagram, a bookmark has been set on line 17.
For more information on customizing selection commenting for each language, see the Configuration 1429
Guide.
Alternatively if the line is off screen, a calltip is displayed advising of the line number and contents.
7.6.3.8 Zooming
You can zoom into and out of the contents of the Code Editor using [Ctrl]+mousewheel or [Ctrl]+keypad[+] /
[Ctrl]+keypad[-].
7.6.3.10 Intellisense
Intellisense is a feature that provides choices of code items and values as you type. Not all code editors use
intellisense; those that do are indicated by an asterisk in the list 1428 of Enterprise Architect code editors.
Intellisense provides you with context-based assistance through autocompletion lists, calltips and mouseover
information.
Intellisense is also disabled while you record a macro in the Source Code Viewer 1441 .
Autocompletion List
An autocompletion list provides a list of possible completions for the current text. The list is automatically
invoked when you enter an accessor token (such as a period or pointer accessor) after an object or type that
contains members.
You can also invoke the autocompletion list manually by pressing [Ctrl]+[Spacebar]; the Code Editor then
searches for matches for the word leading up to the invocation point.
Select an item from the list and press [Enter] or [Tab] to insert the item into the code. To dismiss the
autocompletion list, press [Escape].
Calltips
Calltips display the current method's signature when you type the parameter list token (for example, opening
parenthesis). If the method is overloaded, the calltip displays arrows that you can use to navigate through the
different method signatures.
Mouseover Information
You can display supporting documentation for code elements (for example, attributes and methods) by
hovering the cursor over the element in question.
Key Description
Key Description
Key Description
[Shift]+[Insert] Paste
Key Description
[Ctrl]+keypad[+] Zoom in
[Ctrl]+[Z] Undo
[Ctrl]+[Y] Redo
[Ctrl]+[V] Paste
Key Description
[Ctrl]+[R] Replace
The first six context menu options provide simple editing functions. Other options on the menu can vary
depending on which editor 1428 you are using, but should include most or all of the following:
· Search for '<string>' - Displays a submenu that enables you to locate the search string in a range of
locations:
· Find in Project Browser finds the object containing the selected text in the Project Browser
· Open (Close) IME - opens the Input Method Editor to enable you to enter text in your selected foreign
language script (such as Japanese); you set the keyboard language using the Windows Control Panel -
Regional and Language Options facility
· Line Numbers - shows or hides the line numbers against the lines of code
· Structure Tree - (in the Source Code viewer only) shows or hides the element hierarchy panel
· Set Debugger to Line - (if the debugger is executing and has reached a breakpoint) moves the execution
point to the current line; ensure that you do not skip over any code or declarations that affect the next
section of code being debugged
· Display Variable - (if the debugger is executing) opens the Locals 1474 window and highlights the local
variable for the current point in the code.
Script Editor
If you select the Search for '<string>' context menu option while working in the Script Editor 1439 , a slightly
different submenu displays:
The Search in Scripts option opens the Execution Analyzer File Search 1485 facility, setting the Search Path
field to Search in Scripts and the Search Text field to the selected text, then searching all scripts for the text
string and displaying the results of the search in Tree View.
Note:
This facility is available in the Corporate, Business and Software Engineering, Systems Engineering and
Ultimate editions.
The editor is based on, and provides the facilities of, the common Code Editor 1428 .
To open the Script Editor, double-click on the required script in the Scripts tab of the Scripter window 1661 . The
editor opens in the main work area.
The VBScript example below is a script that iterates all the packages in the current model and prints their
names.
Note:
In the example, note the syntax of declaring variables representing Enterprise Architect's script objects. This
syntax enables the editor to present intellisense 1440 , but is not necessary for executing the script.
You select one of these to complete the line of script. You might, therefore, type:
VBTrace( e.
As you type the period, the editor presents the appropriate list and you might double-click on, for example,
Abstract. This is inserted in the line, and you continue to type or select the rest of the statement. In this case,
adding the end space and parenthesis.
VBTrace( e.Abstract )
Keystrokes
In the Script Editor or Console, intellisense is presented on the following keystrokes.
· Press [.] (period) after an item to list any members for that item's type.
· Press [Ctrl]+[Spacebar] on a word to list any intellisense items with a name starting with the string at the
point keystroke was pressed.
· Press [Ctrl]+[Spacebar] when not on a word to display any available top level intellisense items - these
are the intellisense objects described above plus any built-in methods and properties of the current
scripting language.
Note:
You view source code for an element by selecting menu options in a number of places, or by pressing either
[Ctrl]+[E] or [F12]. If the element does not have a generation file (that is, code has not been or cannot be
generated, such as for a Use Case), Enterprise Architect checks whether the element has a link 611 to either
an operation or an attribute of another element. If such a link exists, and that other element has source code,
the code for that element displays.
A number of options change the way the Source Code viewer works. They can be altered via the Options
dialog (select the Tools | Options | Source Code Engineering | Code Editors 1337 menu option). There are
also many options for developing the code, available through the code editor context menu 1437 and through
the Toolbar 1442 .
By default the Source Code viewer is set to:
· Parse all opened files, and show a tree of the results
· Show line numbers.
If you are editing an XML file, the structure tree is presented in a folder hierarchy rather than a Class structure
hierarchy, as follows:
File Parsing
The Source Code viewer parses files for a number of reasons. The first is to enable it to jump to the location in
the file at which the currently selected item is found (but not when editing external files).
Additionally, parsing displays a structure tree showing an overview of the file in a similar fashion to the main
Project Browser. You can also select anything in that and jump to the appropriate line in the editor.
The viewer cannot parse DDL, and therefore does not show the structure tree for a DDL file.
· Structure Tree - shows or hides the element hierarchy panel (the left panel of the Source Code viewer)
· Line Numbers - shows or hides the line numbers against the lines of code
· Source Code Engineering Properties - displays the Source Code Engineering 1336 page of the Options
dialog, from which you can configure display and behavior options for source code engineering
· Editor Functions - provides quick access to the following functions:
· Open Corresponding File - opens the header or implementation file associated with the currently-
open file
· Go to Matching Brace - for a selected opening or closing brace, highlights the corresponding
closing or opening brace in the pair
· Go to Line - displays a small dialog on which you select the number of the line to highlight; click on
the OK button to move the cursor to that line
· Cursor History Previous - the Source Code viewer keeps a history of the previous 50 cursor
positions, creating a record when the cursor is moved either more than 10 lines away from its
previous position, or in a find-and-replace operation; the menu option moves the cursor to the
position in the immediately-previous cursor history record
· Cursor History Next - moves the cursor to the position in the immediately-following cursor history
record
· Toggle Line Comment - comments out (//) or re-establishes the code for each full line in which text
is highlighted
· Toggle Stream Comment - inserts a stream comment (/* */) at the cursor position or comments out
the highlighted characters and lines, or re-establishes the commented text as code
· Toggle Whitespace Characters - shows or hides the spacing characters: --> (tab space) and .
(character space)
· Toggle EOL Characters - shows or hides the end-of-line characters: CR (carriage return) and LF
(line feed)
· Save Source and Resynchronize Class - saves the source code and resynchronizes the Class
· Code Templates - accesses the Code Templates Editor 1305
· Find in Project Browser - for a selected line of code, highlights the appropriate structure in the Project
Browser; if there is more than one possibility the Possible Matches dialog displays, listing the occurrences
of the appropriate structure from which you can select the required one
· Search in Files - searches for the selected object name in associated files and displays the results of the
search on the File Search 1485 window
· Search in Model - searches for the selected text throughout the model, and displays the results of the
search on the Model Search 1231 window.
· Go to Declaration - locates the declaration of a symbol in the source code
· Go to Definition - locates the definition of a symbol in the source code (applicable to languages where
symbols are declared and defined in separate files e.g. C++, Delphi)
· Autocomplete List - displays the autocompletion list of possible values; double-click on a value to select it
· Parameter Information - when the cursor is between the parentheses of an operation's parameter list,
displays the operation's signature, highlighting the current parameter
· Find Current Class in Project Browser - displays the name of the currently-selected Class in the code,
and highlights that name in the Project Browser; if there is more than one possibility the Possible Matches
dialog displays, listing the occurrences of the Class from which you can select the required one
· Find Member - displays the name of the currently-selected attribute or method in the code, and highlights
that name in the Project Browser; if there is more than one possibility the Possible Matches dialog displays,
listing the occurrences of the feature from which you can select the required one.
7.6.4 Build
The topics in this section describe how you specify the commands to build the project / package:
· Add Comands 1444
· Recursive Builds 1446
Write your script in the large text box using the standard Windows Command Line commands. You can
specify, for example, compiler and linker options, and the names of output files. The format and content of this
section depends on the actual compiler, make system, linker and so on that you use to build your project. You
can also wrap up all these commands into a convenient batch file and call that here instead.
If you select the Capture Output checkbox, output from the script is logged in Enterprise Architect's Output
window. This can be activated by selecting the View | System Output menu option.
The Output Parser field enables you to define a method for automatically parsing the compiler output. If you
have selected the Capture Output checkbox, Enterprise Architect parses the output of the compiler so that by
clicking on an error message in the Output window, you directly access the corresponding line of code.
Notes:
· The command listed in this field is executed as if from the command prompt. Therefore, if the executable
path or any arguments contain spaces, they must be surrounded by quotes.
· Throughout this dialog, you can use Local Paths 1343 in specifying paths to executables.
When you run the compile command inside Enterprise Architect, output from the compiler is piped back to the
Output window and displayed as in the following illustration:
If you double-click on an error line, Enterprise Architect loads the appropriate source file and positions the
cursor on the line where the error has been reported.
Note:
The path being built is displayed along with the exit code.
7.6.5 Debugging
This section describes how you define the debugging actions:
· How it works 1446
· Setup for Debugging 1447
· Breakpoint and Marker Management 1468
3. Ensure any source code for the areas of interest have been generated, or imported into the Model.
4. Ensure the application has been built. You can do this internally using the Build 1443 Script or you can
build the application externally. The important thing is that the application is built on the latest versions
of the source.
5. Ensure that the model and source are synchronized 1327 .
6. Set breakpoints 1469 .
7. Start 1471 the Debugger.
Important:
Please read the information provided in this topic.
Prerequisites
Creation of a Package Build Script and configuration of the Debug command in that script.
Supported Platforms
Enterprise Architect supports debugging on these platforms:
.Net
· MicrosoftÔ .NET Framework 1.1 and later
· Language support: C, C#, C++, J#, Visual Basic
Note:
Debugging under Windows Vista (x64) - If you encounter problems debugging with Enterprise Architect on a
64-bit platform, you should build a Win32 platform configuration in Visual Studio; that is, do not specify
ANY-CPU, specify WIN32.
Java
· Java 2 Platform Standard edition (J2SE) version 5.0
· J2EE JDK 1.4 and above
· Requires previous installation of the Java Runtime Environment and Java Development Kit from Sun
MicrosystemsÔ.
Debugging is implemented through the Java Virtual Machine Tools Interface (JVMTI), which is part of the Java
Platform Debugger Architecture (JPDA). The JPDA is included in the J2SE SDK 1.3 and later.
Note:
Enterprise Architect currently does not support remote debugging.
Alternatively, edit or create a link to Enterprise Architect and configure the link to run as an administrator;
follow the steps below:
1. Right-click on the Enterprise Architect icon and select the Properties menu option. The Enterprise
Architect Properties dialog displays.
Note:
If WINE crashes, the back traces may not be correct.
Set the path of the application on the Debug tab, and set Use Debugger to Microsoft Native.
6. Open the Profiler 1514 (View | Execution Analyzer | Profiler).
7. Click on the Launch button (first button on the Profiler window).
If the sample didn't start, click on the Sampling button (third button on the Profiler window).
8. Once you have finished profiling, shut down the application (not Enterprise Architect).
9. View the Sampler report by clicking the View Report button (fifth button on the Profiler window).
Tips:
· If you are using MFC remember to copy the debug side-by-side assemblies to the C:\window\winsxs
directory.
· To add a windows path to WINE, modify the Registry entry:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment
Select this option to catch genuine (unexpected) access violations; deselect it to ignore expected violations.
As the debugger cannot distinguish between expected and unexpected violations, you might have to use trial
and error to capture and inspect genuine program crashes.
7.6.5.2.3 Java
This section describes how to set up 1453 Enterprise Architect for debugging Java applications and Web
Servers 1456 .
Option Use to
Application (Enter path) Identify the fully qualified Class name to debug, followed by any arguments.
The Class must have a method declared with the following signature:
public static void main(String[]);
The debugger calls this method on the Class you name. In the example above,
the parameters 1, 2 and 3 are passed to the method.
You can also debug a Java application by attaching to an existing Java
process 1454 .
Enter any run time Type any required command line options to the Java Virtual Machine.
variables below
You also must provide a parameter (jre) that is a path to be searched for the
jvm.dll. This is the DLL supplied as part of the Java runtime environment or
Java JDK from Sun MicrosystemsTM (see Debugging 1490 ).
In the example above, a virtual machine is created with a new Class path
property that comprises any paths named in the environment variable
classpath 1603 plus the single path "C:\benchmark\java\example1".
If no Class path is specified, the debugger always creates the virtual machine
with a Class path property equal to any path contained in the environment
variable plus the path entered in the default working directory of this script.
Note:
If source files and .class files are located under different directory trees, the
Class path property MUST include both root path(s) to the source and root
path(s) to binary class files.
Show Console Create a console window for Java. If no console window is required, leave
Option Use to
blank.
Note:
The Show Console checkbox has no effect when attaching to an existing virtual machine.
No run time variables are necessary when attaching as these are specified as startup parameters to the
process.
This topic describes the configuration requirements and procedure for debugging Java Applets running in a
browser from Enterprise Architect.
The procedure requires you to attach to the browser process hosting the Java Virtual Machine (JVM) from
Enterprise Architect, as summarized below:
1. Ensure binaries for the applet code to be debugged have been built with debug information.
2. Configure the JVM using the Java Control Panel.
3. In the Java Applet Runtime Settings panel, click on the View button. The Java Runtime Settings dialog
displays.
4. Click on the appropriate entry and click on the OK button to load the Sparx Systems Agent.
5. Import source code 1329 into the Enterprise Architect model, or synchronize existing code 1327 .
6. Create or modify the Package Build Script 1425 to specify the option for attaching to the process.
5. Set breakpoints 1468 .
6. Launch the browser.
7. Attach to the browser process from Enterprise Architect.
Note that the class.path property specified for the JVM includes the root path to the applet source files. This is
necessary for the Enterprise Architect debugger to match the execution to the imported source in the model.
Server Configuration
The configuration necessary for the web servers to interact with Enterprise Architect must address the
following two essential points:
· Any VM to be debugged, created or hosted by the server must have the Sparx Systems Agent
SSJavaProfiler75 command line option specified in the VM startup option (that is: -agentlib:SSJavaProfiler75)
· The CLASSPATH, however it is passed to the VM, must specify the root path to the package source files.
The Enterprise Architect debugger uses the java.class.path property in the VM being debugged, to locate the
source file corresponding to a breakpoint occurring in a Class during execution. For example, a Class to be
debugged is called:
a.b.C
This is located in physical directory:
C:\source\a\b
So, for debugging to be successful, the CLASSPATH must contain the root path:
c:\source.
All other fields are unimportant. The Directory field is normally used in the absence of any Class path
property.
Debugging
First ensure that the server is running, and that the server process has loaded the Sparx Systems Agent DLL
SSJavaProfiler75.DLL (use Process Explorer or similar tools to prove this).
Launch the client and ensure the client executes. This must be done before attaching to the server process in
Enterprise Architect.
After the client has been executed at least once, return to Enterprise Architect, open the source code you
imported and set some breakpoints 1468 .
Click on the Run Debugger 1471 button in Enterprise Architect. The Attach To Process dialog displays.
Click on the OK button. A confirmation message displays in the Debug Output window, stating that the
process has been attached.
The breakpoints should remain enabled (bright red). If the breakpoints fail, and contain either an exclamation
mark or a question mark, then either the process is not hosting the SSJavaprofiler75 Agent or the binaries being
executed by the server are not based on the source code. If so, check your configuration.
Consider the JBoss example below. The source code for a simple servlet is located in the directory location:
The binaries executed by JBOSS are located in the JAW.EAR file in this location:
The Enterprise Architect debugger has to be able to locate source files during debugging. To do this it also
uses the CLASSPATH, searching in any listed path for a matching JAVA source file, so the CLASSPATH must
include a path to the root of the package for Enterprise Architect to find the source during debugging.
The following is an excerpt from the command file that executes the JBOSS server. Since the Class to be
debugged is at com/inventory/dto/carDTO, the root of this path is included in the JBOSS classpath.
RUN.BAT
-------------
set SOURCE=C:\Benchmark\Java\JBOSS\Inventory
set JAVAC_JAR=%JAVA_HOME%\lib\tools.jar
if "%JBOSS_CLASSPATH%" == ""
(
set JBOSS_CLASSPATH=%SOURCE%;%JAVAC_JAR%;%RUNJAR%;
)
else
(
set JBOSS_CLASSPATH=%SOURCE%;%JBOSS_CLASSPATH%;%JAVAC_JAR%;%RUNJAR%;
)
This configuration is for the same application as outlined in the JBOSS server 1458 configuration topic.
There are two things to notice of importance.
· The Java VM option: -agentpath:c:\program files\sparx systems\ea\ssjavaprofiler75
· The addition to the Class path property of the path to the source code: C:\JBOSS\03b-dao\common\src;
For users running Apache Tomcat as a WindowsTM service, it is important to configure the service to enable
interaction with the Desktop. Failure to do so causes debugging to fail within Enterprise Architect.
7.6.5.2.4 .NET
This section describes how to configure Enterprise Architect for debugging .NET applications. It covers:
· General Setup 1461
· Debug Assemblies 1461
· Debug CLR Versions 1462
· Debug COM Interop 1463
· Debug ASP .NET 1463
Option Use to
Application (Enter path) Select and enter either the full or the relative path to the application
executable, followed by any command line arguments.
Enter any runtime variables Type any required command line options, if debugging a single .NET
below Assembly 1461 .
Show Console Create a console window for the debugger. Not applicable for attaching
to a process.
Use Debugger Select the debugger to suit the .NET Framework under which your
application runs.
Note:
If you intend to debug managed code using an unmanaged application, please see the Debug - CLR
Versions 1462 topic.
Constraints
Debugging of assemblies is only supported for .NET version 2.
The following image is of a Build Script configured for debugging a .NET assembly.
Notice the Enter any run time variables below field. This field is a comma-delimited list of values that must
present in the following order:
type_name, method_name, { method_argument_1, method_argument2,....}
where:
· type_name is the qualified type to instantiate
· method_name is the unqualified name of the method belonging to the type that is invoked
· the argument list is optional depending on the method invoked.
The information in this field is passed to the debugger.
Important:
Detaching from a COM interop process you have been debugging terminates the process. This is a known
issue for Microsoft .NET Framework, and information on it can be found on many of the MSDN .NET blogs.
It is necessary to launch the client first, as the ASP .NET service process might not already be running. Load
the client by using your browser. This ensures that the web server is running. The only difference to a debug
script for ASP is that you specify the attach keyword in your script, as follows:
When you start the debugger (click on the Debug window 1471 Run button) the Attach To Process dialog
displays.
Note that the name of the process varies across Microsoft operating systems.; check the ASP .NET SDK for
more information. The image above shows the IIS process w3wp.exe, which is the name of the process that
runs under Windows Vista.
On Windows XP, the name of the process is something like aspnet_wp.exe, although the name could reflect
the version of the .NET framework that it is supporting. There can be multiple ASP.NET processes running
under XP; you must ensure that you attach to the correct version, which would be the one hosting the .NET
framework version that your application runs on. Check the web.config file for your web service to verify the
version of .NET framework it is tied to.
The Debug window Stop button should be enabled and any breakpoints 1468 should be red, indicating they
have been bound.
Note:
Some breakpoints might not have bound successfully, but if none at all are bound (indicated by being dark
red with question marks) something has gone out of sync. Try rebuilding and re-importing source code.
You can set breakpoints at any time in the web server code. You can also set breakpoints in the ASP web
page(s) if you imported them.
You can pin the package scripts so that they remain listed in the Debug window even if you select a
different package. To do this, right-click on the folder title and select the Pin Package context menu option;
the Scripts folder icon changes. To unpin the scripts, right-click on the folder title and deselect the Pin
Package option.
You can also drag a script onto a diagram to automatically create a hyperlink 842 that executes the script.
· The Debugger Windows folder lists the debug windows, which you can display or hide by selecting or
deselecting the checkbox against each one. If the window is docked, you can bring it to the front by clicking
on the window name:
· Breakpoints & Markers 1468 - lists any breakpoints placed in the package source code, along with
their status (enabled/disabled), line number, and the physical source file in which they are located
· Call Stack 1473 - shows the position of the debugger in the code; clicking on the > button advances
the stack through the code until the next breakpoint is reached
· Locals 1474 - shows the local variables defined in the current code segment, their type and value
· Watches 1475 - shows the values of static and globally scoped expressions you have entered
· Modules 1478 - displays all the modules loaded during a debug session
· Debug Output 1478 - displays output from the debugger including any messages output by the
debugged process, such as writes to standard output.
· The Analyzer Windows folder lists the advanced control windows of the Execution Analyzer, which you can
display or hide by selecting or deselecting the checkbox against each one:
· Record & Analyze 1506 - records any activity that takes place during a debug session; once the
activity has been logged, Enterprise Architect can use it to create a new Sequence diagram
You can dock and combine 76 the windows to suit your working requirements.
Note:
The debugger does not stop automatically. It runs to completion unless it encounters a breakpoint.
An Enterprise Architect model maintains breakpoints for every package having a Build Script - Debug
command. Breakpoints themselves are listed in their own Breakpoints & Markers window (View | Execution
Analyzer | Breakpoints & Markers).
Breakpoint States
DEBUGGER STATE
Bound Enabled
Disabled Disabled
Not bound - this usually means that the DLL is not yet N/a
loaded or was not built with debug information
Breakpoint Failures
A breakpoint failure occurs if there is a problem in binding the breakpoint. A warning message displays in the
Details column of the Breakpoints & Markers window, identifying the type of problem. For example:
· The source file for the breakpoint does not match the source file used to build the application image
· The time date stamp on the file is greater than that of the image.
To disable a breakpoint, deselect its checkbox on the Breakpoints & Markers window or, to disable all
breakpoints, click on the Disable all breakpoints button in the toolbar ( ). The breakpoint is then shown
as an empty grey circle. Select the checkbox or use the Enable all breakpoints button to enable it again (
).
If the code is currently halted at a breakpoint, that point is indicated by a blue arrow next to the marker.
The Debugger windows 1467 are available from the View | Execution Analyzer menu options.
These windows can also be displayed and hidden from the debug management control checkboxes shown
below:
If Basic Setup 1425 has been completed, pressing [F6] starts the application using the configured Debugger.
If not, debugging is still possible by using the Attach button on either one of the Debugger toolbars.
To stop debugging, click on the Stop button in the Debug window toolbar, or press [Ctrl]+[Alt]+[F6].
Notes:
In most situations, the debugger ends:
· when it encounters breakpoints (which should be set beforehand)
· when the debug process terminates or
· when the Java Class thread exits.
However, due to the nature of the Java Virtual Machine, it is necessary at times for Java developers to stop
the debugger manually with the Stop button.
Once Enterprise Architect is attached to the process, any breakpoints encountered are detected by the
debugger and the information is available in the Debugger windows.
To detach from a process, click on the Debug Stop button.
Alternatively, press [Alt]+[F6] or select the Project | Execution Analyzer | Step Over context menu option.
Alternatively, press [Shift]+[F6] or select the Project | Execution Analyzer | Step In context menu option.
If no source is available for the function then the debugger continues stepping until it either enters a new
function or reaches the next line of the current one.
The Step Out function is executed by clicking on the Step Out button.
Alternatively, press [Ctrl]+[F6] or select the Project | Execution Analyzer | Step Out context menu option.
If no source is available for the function then the debugger will continue stepping till it either enters a new
function or reaches the
next line of the current one.
Toolbar
- Stop recording
Local variables are displayed with colored box icons with the following meanings:
· Green Arrays
· Yellow Parameters
To use the Watches window, type the name of the variable to examine in the field in the window toolbar, and
either press [Enter] or click on the Add new watched item icon.
To examine a static Class member variable in C++, Java or Microsoft .NET enter its fully qualified name. For
example:
CMyClass::MyStaticVar
To examine a C++ data symbol with module or file scope, just enter its name. Note, items are evaluated only if
the package in whose scope the item resides is currently loaded by the process being debugged. If the
debugger is not running, no items are listed.
The names of the items to evaluate persist for the package and user ID, so the next time you debug the same
project, the items evaluate automatically whenever a breakpoint occurs. They do not appear if another user
debugs the same code.
If necessary, you can delete items using the Delete all watched items icon in the toolbar, or the right-click
context menu options inside the window.
The Memory Viewer is available for debugging Microsoft Native Code Applications (C,C++,VB) running on
Windows or within WINE on Linux.
Note:
This feature is not presently supported by the Microsoft .NET platform.
The example below creates a notification on a variable from the Watches window. The item being watched is
an integer in the SSP namespace scope.
Column Use To
Modified Date Determine the local file date and time the module was modified.
Debug Symbols Establish the debug symbols type, whether debug information is present in the
module and whether line information is present for the module (required for
debugging).
Symbol File Match Check the validity of the symbol file; if the value is false, the symbol file is out of
date.
Symbol Path Determine the file path of the symbol file, which must be present for debugging to
work.
Modified Date Determine the local file date and time the symbol file was created.
The Step Through function can be executed by clicking on the Step Through button on the Record & Analyze
window toolbar.
Alternatively, press [Shift]+[F6] or select the Project | Execution Analyzer | Step Into context menu option.
The Step Through command causes a Step Into command to be executed. If any function is detected, then
that function call is recorded in the History window. The debugger then steps out, and the process can be
repeated.
This button enables you to record a call without having to actually step into a function. The button is only
enabled when at a breakpoint and in manual recording mode.
To generate a Sequence diagram from the current Stack, click on the Generate Sequence Diagram of Stack
button on the Call Stack window toolbar.
Toolbar
7.6.6 Run
This section describes how to create a command for running 1482 your executable code.
Note:
Enterprise Architect provides the ability to start your application normally OR with debugging from the same
script. The Execution Analyzer menu has separate options for starting a normal run and a debug run.
The following two examples show scripts configured to run a .Net and a Java application in Enterprise
Architect.
Note:
The command listed in this field is executed as if from the command prompt. As a result, if the executable
path or any arguments contain spaces, they must be surrounded in quotes.
7.6.7 Testing
This section describes how to create a command for performing unit testing 1483 on your code.
Note:
NUnit and JUnit must be downloaded and installed prior to their use. Enterprise Architect does not include
these products in the base installer.
The Capture Output checkbox enables Enterprise Architect to show the output of the program in the Output
window, while the Output Parser field specifies what format output is expected. When parsing is enabled,
double-clicking on a result in the Output window opens the corresponding code segment in Enterprise
Architect's code window.
Selecting the Build before Test checkbox ensures that the package is recompiled each time you run the test.
Two example test scripts are included below. The first is an NUnit example that shows the Build before Test
checkbox selected. As a result, every time the test command is given it runs the build script first.
Note:
The command listed in this field is executed as if from the command prompt. As a result, if the executable
path or any arguments contain spaces, they must be surrounded in quotes.
The second example is for JUnit. It doesn't have the Build before Test checkbox selected, so the build script
won't be executed before every test, but as a result it could test out of date code. This also shows the use of %
N, which is replaced by the fully namespace-qualified name of the currently selected Class when the script is
executed.
7.6.8 Deploying
This section describes how to create a command for deploying 1484 the current package.
· Tree View - each result line consists of the file path that matches the search criteria, and the number of
lines matching the search text within that file; you can expand the entry to show the line number and text of
each line.
Search Toolbar
You can use the toolbar options in the Search window to control the search operation. The state of all buttons
persists over time to always reflect your previous search criteria.
Option Use to
Search File Types list Limit the search to specific types of files. You can select multiple file types in a
box string, separated by either a comma or a semi-colon as shown in the image above.
Option Use to
Case Sensitivity Toggle the case sensitivity of the search. The tooltip message identifies the
button current status of the button.
Word Match button Toggle between searching for any match and searching for only those matches
that form an entire word. The tooltip message identifies the current status of the
button.
SubFolders button Toggle between limiting the search to a single path and including all subfolders
under that path. The tooltip message identifies the current status of the button.
Result View button Select the presentation format of the search results - List View or Tree View
format.
Clear Search Criteria Remove all the entries in the Search Path, Search Text and Search File Types
button list boxes, if required.
The Visual Execution Analyzer provides facilities to model, develop, debug, profile and manage an application
from within the modeling environment.
The Visual Execution Analyzer can generate a number of outputs, including:
· Sequence Diagrams, recording live execution of an application, or specific call stacks
· State Transition Diagrams, a Sequence diagram with states, illustrating changes in data structures
· Profiler reports, showing application sequences and operation call frequency.
These outputs provide a better understanding of how your system works, enabling you to document system
features and providing information on the sequence of events that lead to an erroneous event or an
unexpected system behavior.
Note:
The Visual Execution Analyzer is available in the Enterprise Architect Professional, Corporate, Business and
Software Engineering, System Engineering, and Ultimate editions.
With the Visual Execution Analyzer, you can create and store custom scripts that specify how to build, test,
run and deploy code associated with a package. You can investigate and manipulate the output of the debug
process. The Analyzer also includes an Execution Profiler, which enables you to determine how the functions
in an application are called and executed.
You access the Visual Execution Analyzer using the Project | Execution Analyzer menu option, or the
context menu of the required package in the Project Browser. These menus provide a number of options to
facilitate debugging, such as setting recording options or breakpoints.
The Visual Execution Analyzer can be used to:
· Optimize existing system resources and understand resource allocation
· Ensure that the system is following the rules as designed
· Produce high quality documentation that more accurately reflects system behavior
· Understand how and why systems work
· Train new employees in the structure and function of a system
· Provide a comprehensive understanding of how existing code works
· Identify costly or unnecessary function calls
· Illustrate interactions, data structures and important relationships within a system
· Trace problems to a specific line of code, system interaction or event
· Visualize why a sequence of events is important
· Establish the sequence of events that occur immediately prior to system failure.
The Visual Execution Analyzer comprises a Model Driven Development Environment and an Execution
Analyzer.
The Model Driven Development Environment 1277 (MDDE) provides tools to design, build and debug an
application:
· UML technologies 1066 and tools to model software 370
· Code generation 1308 tools to generate/reverse engineer source code
· Tools to import source code 1329 and binaries 1334
· Code editors that support different programming languages 1425
· Intellisense to aid coding 1432
· Package scripts that enable a user to describe how to build, debug, test and deploy the application 1426 .
The Execution Analyzer 1490 (EA) provides tools to visualize an existing application's behaviour:
· Record sequence diagrams of application activities 1490
· Capture State Transitions for a particular State Machine 1507
This section describes the Visual Analysis of executing applications by recording application execution and
generating:
· Sequence Diagrams
· Sequence/State Diagrams
· Profile (execution) Reports
Execution analysis is configured by creating a debug script 1447 for the packages to be tested. One of the
primary objectives of this feature is to enable you to perform a debug walk-through executing code, and
capture your stack trace for direct conversion into a Sequence diagram. This is a great way to document and
understand what your program is doing during its execution phase.
Execution Analysis debugging and recording are supported for the following platforms / languages:
· Microsoft Windows Native C
· Microsoft Windows Native C++
· Microsoft Windows Visual Basic
· Microsoft .NET Family (C#, J#, VB)
· Sun Microsystems Java.
transitions based on any given constraint. This information can be integrated with existing system knowledge
and test data to optimize code execution, reduce errors and understand why application failure and system
crashes occur.
A Sequence Diagram extends traditional analysis to help identify errors in logic, explain unexpected system
behavior and identify data flow inconsistencies. The Visual Execution Analyzer extends analysis through the
use of a comprehensive array of reports that detail everything from state transitions through to the contents of
the stack at a given time. A Sequence Diagram can convey more detail and provide greater understanding
than reading unfamiliar code that has potentially been written by someone else. It also makes it easier to
document existing code when a Sequence Diagram illustrates functions are being called and the specific
sequence of events that occur to produce a particular type of system behavior.
7.7.3.1.2.1 Pre-Requisites
Recording is available to users of all editions of Enterprise Architect except the Desktop edition.
Basic setup 1425 must be completed.
You should first be able to successfully debug 1446 the application.
These options are not all available for each platform, as indicated in the following table:
If the Enable Filter option is selected on the Sequence Diagram Recording tab, the debugger excludes calls
to matching methods from the generated sequence history and diagram. The comparison is case-sensitive.
To add a value, click on the New (Insert) icon in the right corner of the Filters box, and type in the comparison
string. Each filter string takes the form:
class_name_token::method_name_token
The class_name_token excludes calls to all methods of a Class or Classes having a name that matches the
token. The string can contain the wildcard character * (asterisk). The token is optional.
The method_name_token excludes calls to methods having a name that matches token. The string can
contain the wildcard character *. The token is optional.
Where no Class token is present, the filter is applied only to global or public functions; that is, methods not
belonging to any Class.
All public functions having a name beginning with Get from the recording
::Get*
session (GetClientRect for example in Windows API).
All methods beginning with Get for every Class member method.
*::Get*
All methods for Classes belonging to Standard Template and Active Template
Libraries. · ATL*
· std*
In the Java example in the screen below, the debugger would exclude:
· Calls to the OnDraw method for the Class Example.common.draw.DrawPane
· Calls to any method of any Class having a name beginning with Example.source.Collection
· Calls to any constructor for any Class (ie: <clint> and <init>).
When recording the sequence history, Enterprise Architect can record the arguments passed to method calls.
When the Record Arguments to function calls option is selected on the Build Script dialog Sequence
Diagram Recording tab, the resulting Sequence diagram shows the values of elemental and string types
passed to the method. See the following Java example.
Where the argument is not an elemental type, the type name is recorded instead.
On the Sequence Diagram Recording tab, the Record calls to external modules option causes function calls
to external modules outside the model to be included in the sequence history and generated diagram.
For applications built in a Microsoft Native code (C, C++) you can record calls to the WIN32 API if required,
using the Record calls to external modules option. This option can also be used to record calls to
functions in modules that have a PDB file but for which there is no source.
Only calls originating within the model to functions external to the model are recorded.
Note:
External calls are displayed with a blue connector, as shown below.
This example shows three external calls (ToString()) to the Microsoft .NET framework assembly function
System.Single.
Where the Stack window shows recording to be involved in function calls that are not particularly useful, and
that are not being excluded in a filter, you can achieve a quicker and more general picture of a sequence by
limiting the stack depth being recorded. You can do this on the Sequence Diagram Recording tab, by selecting
the Limit auto recording to stack frame threshold: option.
If you use this option, be aware that the threshold value you set is a relative frame count; that is, the count is
relative to the frame at which recording begins. For example:
A breakpoint has occurred, and the Stack window shows five frames. If the stack frame threshold is set
to 3 and you begin auto-recording at this breakpoint, the debugger records all function calls between the
current frame 5 and a maximum stack frame depth of 8 inclusive.
For situations during auto-recording where the stack is very large, it is recommended that you first use a low
stack frame threshold of 2 or 3, gradually increasing it if necessary to expand the picture. You can also use the
threshold to work out which filters you could add to the script in order to further clarify the Sequence diagram
that is ultimately produced.
The Enable diagnostic messages checkbox triggers the debugger to output more self-reporting, diagnostic
messages as it executes. For example, the debugger might output messages about method calls that are
being excluded from the recording history due to a filter also having been set in the Sequence Diagram
Recording tab of the Build Script dialog.
In addition to setting breakpoints and markers in the code editor, you record all the operations of a class, or a
subset by using the Class Markup Feature.
This feature is available from the Project Browser context menu while on a Class. Select the operations to
record, choose the marker type and enter a name for the set. When you click on the OK button the markers
are stored as a marker set using the name you specify.
This set can then be loaded either before or during a session.
The marker type specifies the action to take when the process encounters that marker.
· Record function
· Record Stack Trace
· Break execution
You can also specify a recording depth. This limits the recording, which if uncontrolled can ultimately produce
Sequence Diagrams that are too complicated to read. When you specify a depth, the Debugger does not
record beyond this depth.
The depth is relative to the stack depth where the Debugger first encountered the recording marker. So, if the
stack depth is 7 when recording begins, and the Limit Depth is set to 3, the Debugger does not record
beyond a Stack depth of 10.
A Method Auto Record 1499 marker enables you to record activity for a particular function during a debug
session. The debugger records any function calls executed after the marker point, and always stops recording
when this function exits. The function marker combines a Start Recording marker and an End Recording
marker in one.
Select the Add Start Recording Marker option, then right-click on the breakpoint margin at the point to stop
recording and select the Add End Recording Marker context menu option. The markers are shown below:
When the debugger is run it continues to run the thread, recording a stack history, until either the End
Recording marker is encountered or the thread terminates, unlike normal breakpoints where the debugger
halts and displays the line of code.
It is useful to limit the stack depth 1496 when recording particularly high-level points in an application, as the
stack frame count can result in too much information being collected. You can limit stack depth using the
Sequence Diagram Recording tab on the Build Script dialog.
Running this Calendar example with the one function record marker in CRecurrenceDlg::OnInitDialog()
produced the following output in the Recording History window:
(Native Code only.) Stack markers enable you to capture any unique stack traces that occur at a point in an
application. To insert a marker at the required point in code, right-click on the line and select the Add Stack
Auto Capture Marker context menu option.
Each time the debugger encounters the marker it performs a stack trace. If the stack trace is not in the
recording history, it is copied. The application then continues running. Stack markers provide a quick and
useful picture of where a point in an application is being called from.
Select the Add Start Recording Marker option, then right-click on the breakpoint margin at the point to stop
recording and select the Add End Recording Marker context menu option. The markers are shown below:
When the debugger is run it continues to run the thread, recording a stack history, until either the End
Recording marker is encountered or the thread terminates, unlike normal breakpoints where the debugger
halts and displays the line of code.
To disable a breakpoint, deselect its checkbox on the Breakpoints & Markers window or, to disable all
breakpoints, click on the Disable all breakpoints button in the toolbar ( ). The breakpoint is then shown
as an empty grey circle. Select the checkbox or use the Enable all breakpoints button to enable it again (
).
7.7.3.1.4.1 Auto-Recording
Auto-Recording is available when the process being debugged is at a breakpoint.
You can use the record button on the Record & Analyze window toolbar.
Thereafter you must issue debug commands {StepIn, StepOver, StepOut, Stop} manually.
Each time you issue a step command and the thread stack changes, the sequence of execution is logged.
For example: supposing a Class CName has an internal value of 4567 and the program created two
instances of that Class; the values might be:
· 4567,1
· 4567,2
The first entry shows the first instance of the Class and the second entry shows the second instance.
To generate a Sequence diagram for all history click on the toolbar Create Sequence Diagram icon ( ).
To generate a Sequence diagram for a single sequence, select it and then click the toolbar Create Sequence
Diagram icon ( ).
To save a sequence to an XML file, click on the sequence and on the toolbar Save button ( ).
Showing State transitions on your debug-generated Sequence diagrams is optional; you set an option in the
package script associated with the Class for which you intend to record States.
Note:
If you do not have a package script for the Class or package you must create one. Sequence diagrams can
only be generated for a package that has been configured for debug.
Next, you create a State Machine under the Class. On the State Machine you create the State elements that
correspond to any states to be captured for your Class. The debugger evaluates your States by checking
constraints on the States you create. The States on this diagram are then used by the debugger and State
transitions are incorporated into the diagram.
This figure shows the Class CXTrain with a State Machine called Stations. It has a child diagram also called
Stations, on which the States {Central,Flinders,Lonsdale...} are placed.
The CXTrain Class has a member called Location of type int, and a member called Departing.Name of type
CString.
The values of constraints can only be compared for elemental, enum and string types. What this constraint
means is:
· when an instance of the CXTrain Class exists and
· its member variable Location has the value 0 and
· the member variable Departing.Name has the value Parliament then
· this State is evaluated to true.
Operators in Constraints
There are two types of operators you can use on constraints to define a State:
· Logical operators AND and OR can be used to combine constraints
· Equivalence operators {= and !=} can be used to define the conditions of a constraint.
All the constraints for a State are subject to an AND operation unless otherwise specified. You can use the OR
operation on them instead, so you could rewrite the constraints in the above example as:
Location=0 OR
Location=1 AND
Departing.Name!=Central
Location!=1
Note:
Quotes around strings are optional. The comparison for strings is always case-sensitive in determining the
truth of a constraint.
[Test]
public void testAdd(){
Assert.AreEqual(1+1,2);
}
[Test]
public void testDivide(){
Assert.AreEqual(2/2,1);
}
[Test]
public void testMultiply(){
Assert.AreEqual(1*1,1);
}
[Test]
public void testSubtract(){
Assert.AreEqual(1-1,1);
}
}
This code can be reverse engineered into Enterprise Architect so that Enterprise Architect can record all test
results against this Class.
Once the unit tests are set up, you can then set up the Build and Test scripts to run the tests. These scripts
must be set up against a package.
The sample above can be called by setting up the Package Build Scripts 1444 dialog as follows.
If Enterprise Architect is to handle unit testing, it is important that you select the Capture Output checkbox
and select the appropriate Output Parser for the testing. Without doing this you won't see the program output
and therefore you cannot open the source at the appropriate location.
Notice how NUnit reports that four tests have run, including one failure. It also reports what method failed and
the file and line number the failure occurred at. If you double-click on that error, Enterprise Architect opens the
editor to that line of code.
The error description for each failed test is added to any existing results for that test case, along with the
current date and time. Over time this provides a log of all test runs where each test case has failed. This can
then be included in generated documentation and could resemble the following.
Failed at 05-Jul-2006 1:02:08 PM
expected: <0>
but was: <1>
Note:
The Profiler only works with MS Native Windows applications, but can be used under WINE (Linux and Mac)
to debug standard Windows applications deployed in a WINE environment.
The Profiler can generate a report that shows how these functions are called in relation to the application, as
illustrated below:
See Also
· Profiler System Requirements 1516
Prerequisites
The Profiler window 1514 becomes available when a model is opened. Options 1516 on the Profiler window
toolbar enable you to attach to an existing process or launch a new application if a Package Script been
specified.
Supported Platforms
Enterprise Architect supports profiling on native Windows applications (C, C++ and Visual Basic) compiled
with the MicrosoftÔ native compiler where an associated PDB file is available. Select Microsoft Native from
the list of debugging platforms in your package script.
The Profiler can sample both Debug and Release configurations of an application, providing the PDB for each
executable exists and is up to date.
Icon Use to
(When an application is configured for the package) 1426 create the Profiler process, which
launches the configured application.
When the application is running, pause and resume sample capture. Pausing sampling enables
the Report and Erase buttons.
Stop the Profiler process. If any samples have been collected, the Report button is enabled.
Set the interval 1518 , in milliseconds, at which samples are taken of the target process. The range of
possible values is 1 - 250.
Icon Use to
· Stop Process on Exit - select to terminate the target process when the Profiler is stopped.
If the Application to Profile is the one defined in the current Package, use the Launch button.
(When an application is configured for the package) 1426 create the Profiler process, which
launches the configured application.
The sampler process exits if you click on the Stop button, if the target application terminates, or if you close
the current model.
You can turn sample collection on and off at any time during a session. When sampling is turned on or
resumed, the Profiler process becomes active and samples are collected from the target. Resuming sampling
collects completely new samples.
The Profiler process idles if sampling is turned off or paused during a session. The Report and Erase buttons
then become enabled.
Click on the Report button to produce a call graph summary similar to that in the Profile Native Applications
1514 topic. This report can be saved to file.
Click on the Erase button to discard any samples currently collected for the target.
Interval
Set the interval, in milliseconds, at which samples are taken of the target process. The range of
possible values is 1 - 250.
To load a report use the Profiler Toolbar Options button and select the Load Report From Disk
option.
Platforms Supported
The Workbench supports the following workbench platforms:
· Microsoft .NET (version 2.0 or later)
· Java (JDK 1.4 or later)
Note:
The Workbench does not currently support the creation of Class instances written in native C++, C or VB.
Mode
The Workbench operates in two modes:
Idle mode
When the Workbench is in idle mode, instances can be created and viewed and their members inspected.
Active mode
When methods are invoked on an instance, the Workbench enters Active mode, and the variables displayed
change if the debugger encounters any breakpoints. If no breakpoints are set, then the variables do not
change. The Workbench immediately returns to Idle mode.
Logging
The results of creating variables and the results of calls on their methods are displayed in the Debug Output
window.
Workbench Requirements
· NET framework version 2 is required to workbench any .NET model.
· The package from which the variable is created must have a debugger configured (see the Set Up For
Debugging 1447 topic).
Constraints (.NET)
· Members defined as struct in managed code are not supported.
· Classes defined as internal are not supported.
Choosing a Constructor
Having given the variable a name, you must now choose which constructor to use.
If you do not define a constructor, or define a single constructor taking no arguments, the default constructor
or the defined constructor is automatically invoked.
Otherwise the following dialog displays. Select the constructor from the drop-down list and fill in any
parameters required.
Choose Method
A list of methods for the type are presented in a dialog. Select a method from the list and click on the Invoke
button. Note that all methods listed are public; private methods are not available.
Supply Arguments
In this example, you have created an instance or variable named Rob of type MyClassLibrary.CRobert, and
have invoked a method named AddFriends that takes an array of CPerson objects as its only argument. What
you now supply to it are the three other Workbench instances Fred, John and William.
Arguments
In the dialog above, type any parameters required by the constructor.
· Literals as arguments
· Text: abc or "abc" or "a b c"
· Numbers: 1 or 1.5
· Objects as arguments
If an argument is not a literal then you can supply it in the list only if you have already created an
instance of that type in the workbench. You do this by typing the name of the instance as the
argument. The debugger checks any name entered in an argument against its list of workbench
instances, and substitutes that instance in the actual call to the method.
· Strings as arguments
Surrounding strings with quotes is unnecessary as anything you type for a string argument becomes
the value of the string; for example, the only time you should surround strings with quotes is in
supplying elements of a string array, or where the string is equal to the name of an existing
workbench instance.
"A b c"
"a b $ % 6 4"
Abcd
As 5 7 ) 2 === 4
· Arrays as arguments
Enter the elements that compose the array, separated by commas.
Type Arguments
String[] one,two,three,"a book","a bigger book"
CPerson[] Tom,Dick,Harry
Note:
If you enter text that matches the name of an existing instance, surround it in quotes to avoid the debugger
passing the instance rather than a string.
Invoke
Having chosen the constructor and supplied any arguments, click on the Invoke button to create the variable.
Output confirming this action is displayed in the Output tab 1478 .
VIII
Test and Quality Control | 1527
This section discusses quality control in your project with Enterprise Architect, describing:
· Model Validation 1528 checks
· Testing 1536
· Spell Checking 1552 .
You use Model Validation to check UML models against known UML rules 1530 (which you identify in
configuring validation 1530 ) as well as any constraints defined within the model, using the Object Constraint
Language (OCL).
You can run Model Validation against a single UML element, a diagram or an entire package. Validating a
UML:
· Element validates the element and its children, features (attributes and operations) and relationships
(connectors)
· Diagram validates the diagram itself (for correctness) as well as any elements and connectors within the
diagram
· Package validates the package and all subpackages, elements, connectors and diagrams within it.
To use Model Validation, follow the steps below:
1. Select the package, diagram or element either from the Project Browser or within an open diagram.
2. Select the Project | Model Validation | Validate Selected menu option, or press [Ctrl]+[Alt]+[V].
Enterprise Architect performs the validation, and displays the results in the Output 102 window (if the Output
window does not automatically display, select the View | System Output menu option).
While performing the validation, Enterprise Architect also displays a progress window containing the Cancel
Validation button, which enables you to cancel the validation process at any time.
Alternatively, select the Project | Model Validation | Cancel Validation menu option.
If you run Model Validation on this diagram, Enterprise Architect lists the following violations in the Output
window:
Note:
If you double-click on an error in the Output window, you select the diagram element that the error message
refers to.
Click on the checkbox against each Validation Rule to apply in performing a model validation 1528 .
Tip:
To disable UML syntax ("The requested connection is not UML compliant"), select the Tools | Options menu
option, click on Diagram in the hierarchy, and in the General panel deselect the Strict UML Syntax
checkbox.
When you perform a validation, each violation listed on the Output 1529 window has a violation ID of the format
MVRxxnnnn, where:
· MVR stands for Model Validation Rule
· xx is a hexadecimal number corresponding to the position of the validation rule in the Model Validation
Configuration dialog, thus indicating which rule is applied and violated
· nnnn is the number of the violation message.
Therefore, messages with the ID MVR01nnnn indicate that the Element: Well-Formedness checkbox is
selected and a violation of that rule has been detected. Messages with the ID MVR0Annnn indicate that the
Feature: OCL Conformance checkbox (10th in order on the dialog, or Ath in hexadecimal) is selected and a
violation of that rule has been detected.
Checks whether or not the item has the correct UML properties defined, and whether the properties contain
incorrect or conflicting values; for more information on these properties see the Custom Properties 550 topic
· (Element, Relationship, Feature): OCL Conformance 1532
Validates an item against any defined constraints in OCL.
8.1.2.1 Well-Formedness
The well-formedness group of rules checks whether or not an element, relationship, feature or diagram is well
formed.
The rules includes checks such as whether the item is a valid UML item and whether a diagram contains valid
elements within it. Reported violations include:
MVR010001 «Element» is not a valid UML The element is not a recognized UML 2.3 element.
Element
MVR050001 «Relationship» is not a valid UML The relationship is not a recognized UML 2.3
Relationship relationship.
MVR050002 «Relationship» is not legal for The relationship between the given start and end
«Start Element» --> «End elements is not valid for those elements.
Element»
MVR050003 «Parent Element»:isLeaf=true and The Generalization relationship cannot exist between
cannot be generalized by «Child parent and child elements because the parent element
Element» is defined as a leaf element.
MVR050004 «Child Element»:isRoot=true and The Generalization relationship cannot exist between
cannot generalize «Parent parent and child elements because the child element
Element» is defined as a root element.
MVR0B0001 Statechart violation: «extended The State diagram contains a UML violation; see the
information» extended information for more information about the
detected violation.
MVR020001 «Element» is missing required The element is missing a child element of type Child
child element «Child Element». Element.
MVR020002 Invalid UML package child. The element cannot be a direct package child and must
be a child of another element (for example: Ports must
be children of other elements, and not direct UML
package members).
MVR020003 Invalid child «Child Element The child element is invalid on the tested parent
name» («Child Element Type»). element.
MVR030003 «Element»:isLeaf=true and The element's isLeaf and isAbstract properties are
cannot be abstract both set to true, which is invalid.
«Relationship»:«Property»
MVR060002 property has invalid value: " The relationship property contains an invalid value.
«Value»"
MVR040001 OCL violation: «violated OCL» The element violates the OCL constraint specified.
MVR070001 OCL violation: «violated OCL» The relationship violates the OCL constraint
specified.
MVR0A0001 OCL violation: «violated OCL» The attribute violates the OCL constraint specified.
Important:
To have a valid OCL constraint, the syntax must be correctly formed. If the expression is not correct,
Enterprise Architect displays a message stating that the OCL constraint is not valid.
To perform an OCL Validation, display the Model Validation Configuration 1530 dialog and select the Element:
(OCL) Conformance checkbox. Any OCL violations are recorded in the Model Validation tab of the Output 1529
window.
To perform an OCL Validation, display the Model Validation Configuration dialog and select the Relationship:
(OCL) Conformance checkbox. Any OCL violations are recorded in the Model Validation tab of the Output
window.
To perform an OCL Validation, display the Model Validation Configuration dialog and select the Feature:
(OCL) Conformance checkbox. Any OCL violations are recorded in the Model Validation tab of the Output
window.
8.2 Testing
Introduction to Testing
In addition to the integrated JUnit and NUnit testing 1512 capabilities, Enterprise Architect enables you to create
and manage test scripts for model elements, covering unit, integration, scenario, system and acceptance
tests.
You can import tests from other elements, generate them from scenarios, and generate test documentation
and reports. You can also indicate the presence of tests on an element by displaying test information on the
element in a diagram.
Enterprise Architect enables you to attach arbitrarily complex tests to any model element. Keeping the model
elements and the testing documentation in one integrated model significantly improves the communication
between the test-team and the software developers and architects. The detailed search facilities make it easy
to find failing test cases, test cases not run and tests cases that have been passed. Using the testing and
search capabilities, it is easy to navigate through the model and quickly locate problem spots, design flaws
and other critical issues. Enterprise Architect is not only a UML Modeling environment, it is also a complete
Test Management environment.
Basic Tasks
Simple tasks that you might perform include:
· Open the Testing Workspace 1537
· Use the Test Details Dialog 1538 .
Categories
Typically you create:
· Unit tests 1539 for things that are being built, such as Classes and components
· Integration tests 1540 to test how components work together
· System tests 1541 to ensure the system meets business requirements
· Acceptance tests 1542 to test user satisfaction, and
· Scenario tests 1543 to test the end-to-end suitability and functionality of the application.
Using Tests
Other tasks that you might perform when working with tests include:
· Import a Scenario as a Test 1544
· Move or Copy Tests Between Test Types 1544
· Import a Test from Other Elements 1546
· Import a Responsibility or Constraint as a Test 1547
Note:
Most of the tasks identified above relate to a tests for a single element. You can make a set of tests available
to a number of elements by performing the above tasks on a Test Case 848 element and then associating that
Test Case with each of the other elements. The Test Case element also helps to make tests more visible in
diagrams, the Project Browser, windows and searches.
Note:
In the Corporate, Business and Software Engineering, System Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Manage Tests 198 permission to update and delete
test records.
To open the Testing window, select the View | Testing menu option. Alternatively, press [Alt]+[3]. The
window can be docked to the application workspace.
The window has two formats, as illustrated below - Item mode and List mode respectively.
To toggle between the modes, click on the Show/Hide Properties button in the window toolbar.
Click on the New icon in the window toolbar to add new items. In Item mode, this clears the fields for new
data. In List mode, this displays the Test details 1538 dialog. By clicking on the Auto button in Item mode or on
the Test details dialog, you can apply an automatic naming/numbering nomenclature that you have previously
defined 525 .
There are five tabs along the base of the window; one for each of the following types of testing:
· Unit testing 1539
· Integration testing 1540
Double-click on an existing test case or click on the New icon in the window toolbar. The Test Details dialog
displays.
Notes:
· Add multiple test cases in one batch by using the New and Apply buttons.
· You can format the text in the Description, Input, Acceptance Criteria and Results tabs using the Notes 642
toolbar at the top of the field. This text is also reflected in the Notes window, but cannot be edited there.
Option Use to
Status Click on the drop-down arrow and select the current status of the test.
Type Click on the drop-down arrow and select the type of test.
Run By Click on the drop-down arrow and select the name of the person who ran the test.
Checked By Click on the drop-down arrow and select the name of the person who checked the test
run.
Last Run Click on the drop-down arrow and select the date on which the test was last run.
Description Type a description of the test. You can format the text using the Notes 642 toolbar at
the top of the field. This text is also reflected in the Notes window, but cannot be
edited there.
displayed, click on the icon in the Testing window toolbar. Unit Test item icons have a U in the bottom
right corner.
To change the element for which to create test items, click on the required element in the Project Browser.
Option Use to
Status Click on the drop-down arrow and select the current status of the test.
Type Click on the drop-down arrow and select the type of test.
Run By Click on the drop-down arrow and select the name of the person who ran the test.
Checked By Click on the drop-down arrow and select the name of the person who checked the test
run.
Last Run Click on the drop-down arrow and select the date on which the test was last run.
Description Type a description of the test. You can format the text using the Notes 642 toolbar at
the top of the field. This text is also reflected in the Notes window, but cannot be edited
there.
displayed, click on the icon in the Testing window toolbar. Integration Test item icons have an I in the
bottom right corner.
To change the element for which to create test items, click on the required element in the Project Browser.
Option Use to
Status Click on the drop-down arrow and select the current status of the test.
Type Click on the drop-down arrow and select the type of test.
Run By Click on the drop-down arrow and select the name of the person who ran the test.
Checked By Click on the drop-down arrow and select the name of the person who checked the test
run.
Last Run Click on the drop-down arrow and select the date on which the test was last run.
Description Type a description of the test. You can format the text using the Notes 642 toolbar at
the top of the field. This text is also reflected in the Notes window, but cannot be
edited there.
displayed, click on the icon in the Testing window toolbar. System Test item icons have an Sy in the
bottom right corner.
To change the element for which to create test items, click on the required element in the Project Browser.
Option Use to
Status Click on the drop-down arrow and select the current status of the test.
Type Click on the drop-down arrow and select the type of test.
Run By Click on the drop-down arrow and select the name of the person who ran the test.
Checked By Click on the drop-down arrow and select the name of the person who checked the test
run.
Last Run Click on the drop-down arrow and select the date on which the test was last run.
Description Type a description of the test. You can format the text using the Notes 642 toolbar at
the top of the field. This text is also reflected in the Notes window, but cannot be edited
there.
displayed, click on the icon in the Testing window toolbar. Acceptance Test item icons have an A in
the bottom right corner.
To change the element for which to create test items, click on the required element in the Project Browser.
Option Use to
Status Click on the drop-down arrow and select the current status of the test.
Type Click on the drop-down arrow and select the type of test.
Run By Click on the drop-down arrow and select the name of the person who ran the test.
Checked By Click on the drop-down arrow and select the name of the person who checked the test
run.
Last Run Click on the drop-down arrow and select the date on which the test was last run.
Description Type a description of the test. You can format the text using the Notes 642 toolbar at
the top of the field. This text is also reflected in the Notes window, but cannot be edited
there.
displayed, click on the icon in the Testing window toolbar. Scenario Test item icons have an Sc in the
bottom right corner.
To change the element for which to create test items, click on the required element in the Project Browser.
Note:
If you move or copy a test into the Scenario category, some unassociated data could be lost.
4. You can import scenarios from any element in the model by clicking on the Select element drop-down
arrow and selecting the required element. Select the scenarios to import from the Select items to
import list.
5. Click on the OK button to import the selected scenario(s).
The Import Scenario dialog has the following additional options:
Option Use to
Show related elements only Filter selection to apply only to related elements.
Limit selection to these Object Types Type in specific element types, separated by commas, to filter
only for only those element types.
This version of the Import Scenario dialog lists all scenarios against all elements in the package. It does
not enable you to select a specific element, but does enable you to filter the list of scenarios to those
from specific types of element.
4. In the Limit selection to these Object Types only field, type a comma-separated list of the object
types for which to show scenarios. Click on the Refresh button.
5. Click on the OK button to import the scenarios from each element as test scenarios for that element.
Import a Test
To import a test, follow the steps below:
1. Open a diagram or the Project Browser and select the element into which to import the tests.
2. Open either:
· The Testing window, or
· The Testing folder of the Element Browser 510 window.
3. Right-click on the list of tests to display the context menu, and select the Import Tests from Other
Element menu option. The Import Element Tests dialog displays.
4. You can import tests from any element in the model by clicking on the Select element drop-down arrow
and selecting the required element. Select the test to import from the Select items to import list.
5. Click on the OK button to import the selected test(s).
The Import Element Tests dialog has the following additional options:
Option Use to
Show related elements only Filter selection to apply only to related elements.
Limit Selection to these Object Types only Type in specific element types, separated by commas, to
filter for only those element types.
The dialog lists all of the internal requirements or constraints in the selected element.
5. Select one or more of the items to import as tests, and click on the OK button. Each item is added to
the list of tests in the Testing window, as a standard, 'Not Run' test.
6. Edit the items to complete their definition as tests.
Note:
You can create Maintenance Defect items from several Test items at once. Press and hold [Shift] as you
select the Test items, and then right-click and proceed as above. Each selected Test item then generates a
Defect item.
Options Use to
Run By Select a name to filter for tests run by that person. Click on the x button to
clear the field.
Checked By Select a name to filter for tests checked by that person. Click on the x
button to clear the field.
Test Type Select the radio button for the required test type.
Locate Object (After clicking on an element in the Test Details list) locate the element in
the Project Browser.
Note:
You can also access the Generate Test Documentation dialog by selecting the Project | Documentation |
Testing Report menu option.
The Generate Test Documentation dialog enables you to set up your report. You can configure which tests to
include or exclude in the report, whether to include child packages and what file to output to.
Enterprise Architect provides a powerful spell checking facility. This operates at the project level and enables
you to quickly spell check an entire project.
The spell checker can be set to run automatically, so that it highlights possible errors in text as it is created or
pasted in. To turn automatic spell checking on and off, select the Tools | Options menu option, click on the
Objects option in the page hierarchy, and then deselect or select the Disable spelling checkbox.
See Also
· Using the Spell Checker 1552
· Correcting Words 1553
· Select a Different Language 1554
Notes:
· Enterprise Architect currently supports checking an entire model, and spell checking by single package. A
future release will support more detailed spell checking at the element and diagram level.
· In the Corporate, Business and Software Engineering, Systems Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Spell Check 198 permission to spell check a
package and set the spell check language.
Note:
The Spell Check Project menu option enables you to check spelling for the entire project, whereas
the Spell Check Current Package option only checks the package currently open, and does not
enable you to select the options shown above.
2. Select the checkbox against each of the items to spell check within your model.
3. Click on the Start button to begin the spell check.
4. As the spell check proceeds, the text being checked displays in the text panel at the bottom of the
screen. If an error is detected, the Check Spelling dialog displays, offering several options 1553 to correct
the error.
Architect installation directory. During the spell check process, if you add a word, it is written into this file for
later reference.
To select another language for the spell checker in Enterprise Architect, follow the steps below:
1. Select the Tools | Spelling Language menu option. The Spell Check Language dialog displays.
2. Click on the radio button for the required language dictionary to use.
3. Click on the OK button. The selected language remains the current language until changed.
IX
Maintenance and Bug Tracking | 1557
9.1 Maintenance
Maintenance Items
Maintenance items are defects, changes, issues and tasks. They all apply to individual model elements and
can be used to record and capture problems, changes, issues and tasks as they arise, and document the
solution and associated details. They are defined as follows:
· A defect can be considered as a failure to meet a requirement for the current model element
· A change can be considered as a change in requirement for the current model element
· An issue records a risk factor that might affect the project being recorded for the current model element
· A task is a means of recording work in progress and work outstanding for the current model element.
Note that each of these maintenance items applies at the model element level. For changes, defects and
issues that apply to the whole system, see the Changes and Defects 1563 topic; for tasks that apply to the
whole system, see the Project Tasks 329 topic.
The following topics explain how to create and edit Maintenance items:
· The Maintenance Workspace 1558 - describes the Maintenance window
· Maintenance Item Properties 1559 - describes how to complete the Maintenance window tabs for the various
maintenance items
· Move or Copy Maintenance Items 1561 - describes how to move items between maintenance categories or
generate items from an item in a different category
· Create Elements From Maintenance Items 1561 - describes how to generate elements from maintenance
items
· Show Maintenance Script in Diagram 1561 - describes how to display maintenance items in elements on
diagrams
· Insert Maintenance Feature 594 - describes how to add a maintenance item directly to an element via in-
place editing.
window. Click on the icon in the Maintenance window toolbar to display the Element Browser, open the
Maintenance folder and select the required item. In the folder, the 'page' icon contains a C for Change items,
D for Defect items, T for Task items, or I for Issue items.
The window has two formats, as illustrated below - Item mode and List mode respectively.
To toggle between the modes, click on the Show/Hide Properties button in the window toolbar. Item mode
displays a single item with others of the same type listed in the left-hand panel. You can also either switch to
List mode or select another item from the Element Browser window. List mode displays all items of one type in
the selected element; it does not, however, display as much detail on an item as Item mode does.
Using the toolbar, you can add or delete 1559 items and show or hide the Properties window to enable you to
edit 1559 each item in the list. Click on the New icon in the window toolbar to add new items. In Item mode, this
clears the fields for new data. In List mode, this displays the <item type> details for <element type> <element
name> dialog. By clicking on the Auto button in Item mode or on the details dialog, you can apply an
automatic naming/numbering nomenclature that you have previously defined 525 .
An asterisk on a tab (as for the Defects tab, above) indicates that the tab contains saved information. If the tab
has no information or the information has not yet been saved, there is no asterisk, as shown for the Tasks tab.
You can also display the maintenance items in a compartment 1561 of each appropriate element in a diagram.
2. Open a diagram or the Project Browser and select an element. In Item mode, the oldest maintenance
item of each type for that element is shown in the Maintenance window, on the appropriate tab. The
other items are listed either in the left hand panel or in List mode.
3. Click on the Browse Element icon in the window toolbar. The Element Browser window displays.
4. To:
· Add a new item, select the appropriate tab, click on the New icon in the Maintenance window toolbar
and complete the fields as described in the table below
· Modify an existing item, select the item from the left-hand list panel or from the Maintenance folder of
the Element Browser window and edit the fields as described in the table below
· Delete an existing item, select the item from the left-hand list panel or the Maintenance folder of the
Element Browser window and click on the Delete icon in the Maintenance window toolbar.
5. Click on the Save button in the window toolbar.
Complete or edit the following fields on the Maintenance window
Note:
This table describes the fields of the Defects tab of the Maintenance window. The Changes, Issues and
Tasks tabs differ only in minor details.
Option Use to
Reported by Select the name of the person who reported the defect.
Resolved by Select the name of the person who fixed the defect.
Description Type a longer description of the defect. You can format the text using the Notes 642
toolbar at the top of the field. This text is also reflected in the Notes window, but cannot
be edited there.
History Enter any notes or references to previous occurrences of this defect. You can format the
text using the Notes 642 toolbar at the top of the field. This text is also reflected in the
Notes window, but cannot be edited there.
You can, however, create a wide range of other element types should any of these be appropriate, and
use the Select Group button to select a profile, MDG Technology or Add-In to create an element
specific to that element group.
5. If necessary, in the Stereotype field click on the drop-down arrow and select a stereotype to apply to
the new element.
6. If you want to immediately define the properties of the element, select the Open Properties Dialog on
Creation checkbox.
7. If you are adding multiple elements in one session, deselect the Close dialog on OK checkbox.
8. If you want to add the element to the currently-open diagram, select the Add to Current Diagram
checkbox.
9. Click on the OK button to create the element.
The element is added to the Project Browser and - if requested - to the current diagram.
Enterprise Architect enables you to generate and handle issues in much the same way as you can handle
and color code 920 Requirements. For more information, see the Requirements 917 topic.
You can link Issues using Realize connectors to model elements that are responsible for the defect. You can
even structure a hierarchy of Issues using aggregation.
Note:
Issue elements can be created with or without an identifying I in the top right corner of the element. To toggle
the display of this letter, select or deselect the Show stereotype icon for requirements checkbox on the
Options dialog, Objects 362 page.
3. In the Type field, click on the drop-down arrow and select Issue.
4. In the Name field, type a name for the element.
5. Click on the OK button.
9.2.2 Changes
A Change element is a structured comment that contains information about requested changes to the system/
model. This corresponds in some sense to a change in requirements for the current system. A Change
element looks the same as a Requirement element:
Enterprise Architect enables you to generate and handle Changes in much the same way as you can handle
and color code 920 Requirements. For more information, see the Requirements 917 topic.
You can connect Changes using Realization connectors to model elements that implement the Change, and
you can structure a hierarchy of changes using Aggregation.
Note:
Change elements can be created with or without an identifying C in the top right corner of the element. To
toggle the display of this letter, select or deselect the Show stereotype icon for requirements checkbox on
the Options dialog, Objects 362 page.
3. In the Type field, click on the drop-down arrow and select Change.
4. In the Name field, type a name for the element.
5. Click on the OK button.
X
1568 Report Generation |
10 Report Generation
Model documentation is essential to realizing the full benefit of Enterprise Architect. Enterprise Architect
provides a powerful mechanism for generating high quality, customized documentation directly from your
model, in either RTF or HTML format.
There are many ways to specify the Enterprise Architect content being documented. You can:
· Document a package and/or its child packages by manually highlighting the package and selecting a
documentation control
· Specify embedded packages for exclusion 1573 if child packages are recursively documented
· Link a package to an RTF document template to simplify generating consistent types of documentation (eg
Use Case Reports) using the Documents feature 1636
· Select, group and order packages together in a different manner from the Project Browser by creating '
Virtual' Documents 1616 , either linked through a master document with headers, footers and contents list, or
as separate individual documents.
RTF Documentation
Rich text reports are documents produced by Enterprise Architect in Rich Text Format (RTF). RTF formatting
can be modified directly with RTF Style templates to alter the look and feel of generated output. Using MS
Word you can further enhance the separate RTF documents output from the model by connecting and
interweaving them into a linked master document 1638 with headers, footers and contents list.
Enterprise Architect has a fully-featured RTF Document Generator that features:
· Powerful WYSIWYG RTF style template editor support
· An easy-to-use document generator
· An embedded RTF viewer that enables you to view RTF documents generated by Enterprise Architect
within Enterprise Architect.
For further information, see:
· RTF Documents 1569
· Use MS Word. 1638
RTF Reports
You can also generate a number of RTF reports on different aspects of your model. See the Other Documents
1624 topic.
HTML Documentation
Enterprise Architect provides automated web-based publishing of models, making it simple to explore large
models efficiently on-line. Enterprise Architect enables the export of an entire model or a single branch of the
model to HTML Web pages. You can also create web style templates to customize the HTML output.
For further information, see the HTML Reports 1647 topic.
Note:
In the Corporate, Business and Software Engineering, System Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Generate Documents 198 permission to generate
RTF documents.
More Information
A tutorial on using the RTF Generator and creating RTF documentation is provided on the Sparx Systems
website. Click on the following link:
http://www.sparxsystems.com/resources/whitepapers/
For more information, see:
· Generate RTF Documents 1570
· Generate RTF Documentation Dialog 1573
· RTF Document Options 1607
· RTF Templates Tab 1576
· Custom Language Settings 1637
· Include or Exclude a Package from Report 1573
Tip:
Reports can be configured to include all packages within a parent package, or just the top level.
You should also set the diagram properties 1571 to determine how the diagrams in the package are set out in
the RTF document. When you have prepared and selected your package, use the context menu to open the
Generate RTF Documentation dialog and configure the details of your document. The next topic guides you
through creating a rich text report.
Quick Start
To generate and view an example RTF report right now, follow the steps below:
1. Open the EAExample project.
2. Open the QA Model package and right-click on the Testing package.
3. Select the Documentation | Rich Text Format (RTF) Report context menu option. The Generate RTF
Documentation dialog displays.
4. In the Output to file field, select a convenient file location in which to hold the generated report.
5. In the Use Template field, click on the drop-down arrow and select (basic template).
6. Click on the Generate button.
7. When the report has been generated, click on the View button.
Notes:
· If using the Legacy RTF generator, the Element checkbox is automatically checked in your customized
template, when you select the Document each contained element in RTF checkbox.
· Package::Diagram::Element, if left blank, replicates the format of Package::Element including
sub-element sections (for example, Package::Element::Scenario). Package::Diagram::Element does not
have an option to add these sections.
Selecting the checkboxes adds the following set of sections to your report template:
Note:
This option is only effective when the Scaled Printing 456 option is set to None on the Print Advanced dialog.
Rotate Images
Select this checkbox to rotate each diagram image by 90 degrees in the RTF document.
Note:
Only valid for bitmap (.bmp) images.
Notes:
· By default, packages are included in any RTF reports.
· When you exclude a package from RTF reports, all of the selected package's subpackages are also
excluded.
The Generate RTF Documentation dialog enables you to set the exact contents and look and feel of your
report.
Each tab of the dialog offers a number of RTF document generation options, as described in the following
sections:
· Generate Tab (see below)
· RTF Templates 1576
· Document Options 1607
· Advanced Options 1609
· Element Filters 1611
· Other Filters 1612
· Project Constants 1614
· Word Substitution 1615
· Language Substitution (Codepage) 1615
When you have worked through these tabs and set the options you require, return to the Generate tab and
click on the Generate button to produce your report.
Note:
If you have never selected the Optimize for Open Office checkbox, the document generator prompts you to
confirm which document style you want to adopt - Microsoft Office or Sun Open Office. Once you have made
a selection in this prompt, the document generator always acts on the status of the checkbox and does not
display the prompt again.
Option Use to
Model Document Confirm the name of the element selected from the Project Browser, Element List
Option Use to
or Model Search.
Root Element If this is the specially-created model document element for a Virtual Document
Root Package 1616 , the field is Model Document.
Otherwise, this field identifies the selected element of the hierarchy to be reported
on; that is, the Root Element or Root Package.
Output to File Type or select the location and filename for the generated documentation. The
[ ... ] (Browse) button enables you to navigate to the location.
Use Template Type or select the name of the RTF template to apply to document generation.
You can select either a standard template (enclosed in parentheses) or a user-
generated template.
The standard templates include the following:
Use Internal Viewer Enable the View button to launch the generated RTF Documentation in the
Enterprise Architect internal viewer.
Deselect to enable the View button to launch the generated RTF Documentation
in the MS Windows default RTF file viewer.
Note:
If you use Open Office as your default document editor, you must select the
Overwrite Document Fields checkbox in the document options 1607 in order to
show field value text. Open Office defaults to showing field codes only, and you
cannot toggle to the field values.
Include all Diagram Include elements in the report from external packages that are referenced from a
Elements in Report diagram, for every diagram covered by the report. Defaults to selected. The
Package.Diagram.Element or Package.Element checkbox must be selected in
the current template.
If external elements are to be included only for selected diagrams, deselect this
checkbox and select the Document each contained element in RTF checkbox
in the diagram properties 1571 for each required report.
When both options are deselected, or when neither of the Package.Diagram.
Element or Package.Element checkboxes are selected in the template, only
elements in the current package are documented.
Option Use to
Optimize for Open Generate reports where diagrams are adjusted for clean rendering in Sun Open
Office Office. The option also overwrites the value fields defined in a document section
with the actual value text. If you open a generated report in Word, you can format
the text but you cannot display the original field code.
If the checkbox is deselected, diagrams displayed in Open Office are less distinct.
Value fields remain and are populated with the appropriate values; when you
display a generated report in Word, you can right-click on the field and toggle
between the value text and the field code.
Note:
If you use Open Office as your text editor, you must select this checkbox to
show the field values. Open Office defaults to showing the field codes only, and
you cannot toggle to the field values.
Generate Generate the document (after you have set all the options you require, on all tabs
of the dialog).
View Launch the generated RTF Documentation in the MS Windows default RTF file
viewer, or in the Enterprise Architect internal viewer if you have selected the Use
Internal Viewer checkbox.
Edit Template Edit the currently-named template using the RTF Style Template Editor 1578 .
You can only edit user-defined templates, not the standard templates provided
with Enterprise Architect. Standard template names are enclosed in parentheses.
To edit the Normal.rtf template, use the RTF Style Template Editor 1578 to create a new template called, for
example, Normal, and use the File | Import 1588 menu option to import the Normal.rtf file into the Normal
template. Modify the Normal template as required, but ensure there is no text when you save it, just style
definitions. Export 1588 the modified template back into the Normal.rtf file in the RTFTemplates folder.
A related feature in the RTF Style Template Editor is the File | Update Styles 1589 menu option. This enables
you to update existing templates to reflect any changes to Normal.rtf.
Note:
· In the Corporate, Business and Software Engineering, System Engineering and Ultimate editions of
Enterprise Architect, if security is switched on, you must have Configure Resources 198 access
permission to create RTF templates.
· In the Normal.rtf template, you must not edit the SSbookmark style. This defines the section styles and
must be preserved.
To Do this...
Delete a template Click on the template name and click on the Delete button.
Create a new template Click on the New button. The New Document Template dialog displays, on
which you specify the template name and the name of any existing
template to act as the base for the new template.
To make it easier to get up and running, Enterprise Architect provides a
basic template with default settings on which you can base new templates.
Modify the template as required, using the RTF Style Template Editor.
Open the RTF Style Template Click on the template name and click on the Edit button. The Document
Editor Template Editor screen displays, presenting the facilities of the RTF Style
Template Editor.
Import RTF Templates saved to 1. Click on the Import From Reference File button.
XML files using the Tools |
2. On the Import Reference Data dialog, click on the Select File
Export Reference Data menu
button and browse for and select the required file.
option
3. In the Select Datasets to Import panel, click on the required
datasets.
4. Click on the Import button to import the template.
The imported template displays in the list on the Templates tab of the
Generate RTF Documentation dialog.
Note:
There are two methods of exporting and importing RTF templates out of and into models:
· If the template is in a batch file, export it using the Tools | Export Reference Data menu option and import
it using the Templates tab, as above.
· If the template is a one-off copy, use the RTF Template Editor File 1588 menu options, Export and Import.
Note:
You can transport these RTF templates between models, using the Export Reference Data 223 and Import
Reference Data 225 options on the Tools menu.
2. Click on and to move the component up and down the Sections panel.
For example, the section tag for Package | Diagram | Element is displayed in the Sections panel above the
section tag for Package | Diagram | Connector.
Note:
If the Package.Diagram.Element checkboxes are selected, you must select either the Document each
contained element in RTF checkbox in the Diagram Properties 1571 dialog for at least one included diagram,
or the Include all diagram elements in report checkbox on the Generate RTF Documentation 1573 dialog.
The Linked Document checkbox is within the Element hierarchy, towards the end. Remember that
checkboxes can be moved up and down the hierarchy (as has been done above) to position information in the
generated document as you require. In some templates, the Linked Document checkbox is only available as
a child of the External Requirements checkbox.
The linked document is rendered into the RTF documentation at:
<linked document
Notes:
· Under some circumstances, a table might repeat the header row rather than the output row; if this occurs,
create another row in the table between the header row and the output row, and leave this blank.
· If you type a carriage return between the end of the table and the section terminator, the table you
generate has a line space between the rows. For example:
Line Space
To avoid this, ensure that there is no carriage return between the end of the table and the section
terminator, as follows:
Package->Element->Diagram Package->Diagram
Package->Diagram->Element Package->Element
Package->Diagram->Connector Package->Element->Connector
Constraints
The following constraint options are available for selection, as checkboxes in the Sections panel of the RTF
Style Template Editor:
· Pre-Constraint - select this checkbox to include all constraints of the type 'pre-condition' in this section of
the report.
· Post-Constraint - select this checkbox to include all constraints of the type 'post-condition' in this section
of the report.
· Constraint - select this checkbox to include all constraints that have not been generated in the Pre-
Constraint and Post-Constraint sections of the report.
Scenarios
The following scenario options are available for selection, as checkboxes in the Sections panel of the RTF
Style Template Editor:
· Element > Scenario - select this checkbox to include all scenarios in this section of the report; if any of the
following sections are also selected, the report includes all scenarios that are not exception paths.
· Element > Scenario > Exception - select this checkbox to include all exceptions for each scenario
· Element > Scenario > Structured Scenarios - select this checkbox to include all scenario steps in the
scenario sections of the report.
· Element > Scenario > Structured Scenarios > Exception - select this checkbox to include the steps for
each exception path in the scenario sections of the report.
Note:
If you select a field with short date format (such as Pkg.DateCreatedShort, Diagram.DateModifiedShort or
Element.DateCreatedShort) the format is actually drawn from the MS Windows settings. To use a different
short date format, click on the Start icon on the Windows desktop and select the Control Panel | Regional
and Language Options | Customize option.
Note:
Throughout your template editing, be aware that:
· To undo one or more immediately previous edits, press [Ctrl]+[Z], or select the Edit | Undo menu option.
You can still undo a change even after you have saved the change.
· To redo one or more immediately previous undone edits, press [Ctrl]+[Y], or select the Edit | Redo menu
option.
New Clear an existing template from the edit window and start an empty, unnamed
template.
The editor prompts you to save any modification to the previous template.
Save As [Ctrl] Similar to Save File, but you specify a new template name for saving the template.
+[Shift]+[S]
Import Import an existing RTF document 1606 into the Template Editor, so as to insert model
elements from that document into the template.
Note:
This option is useful when creating templates from a predefined document with a
particular 'look and feel'.
Update Styles Imports the styles from Normal.rtf, found in the Doc Templates directory.
Note:
This option is useful when creating a Master Document / Sub Documents that
require consistent user-defined styles across multiple templates (including such
things as numbering formats).
Document Options Display the Document Options 1607 dialog which enables you to set the filter and
order the elements.
Page Layout Specify the page layout, before selecting the Print option. You can specify the
margins (left, right, top and bottom) in inches.
Printer Setup Invoke a printer-specific dialog for the default printer (the default printer selection is
[Ctrl]+[Shift]+[P] made from the Windows Control panel). You select the parameters from a set of
printer-specific options. These options include page size, page orientation,
resolution and fonts.
Print [Ctrl]+[P] Print the contents of the current file. The editor displays a dialog where you can
select the scope of the printing. You can also choose to print only a selected part of
the file.
To print a block of text, highlight the required text before invoking the Print function.
This command prints a highlighted:
· Line block
· Character block
The Print function prints on a default printer selected from the Windows Control
panel. You can alter the printer setup or page layout prior to invoking the Print
function.
Print Preview Preview the document before printing. The editor displays up to two pages at a time.
You can scroll to a different page using [Page Up], [Page Down] or the scroll bar.
By default the preview rectangle is sized to fit the current window. However, you can
use the zoom option to enlarge or shrink the preview rectangle as required.
Click on the Edit button or the File | Print Preview menu option again to return to
editing mode.
Close Close the Template Editor. The editor prompts you to save any unsaved information.
To Do this...
Highlight a line Move the cursor onto the line and press [F8].
Select all file Press [Ctrl]+[A] or select the Edit | Select All menu option.
content
To Do this...
Copy a block Highlight the lines of text to be copied and press [Ctrl]+[C], or select the Edit | Copy
menu option.
Move the cursor to the point at which to insert the text and press [Ctrl]+[V] or select the
Edit | Paste menu option.
Move a block Highlight the lines of text to be moved and press [Ctrl]+[X], or select the Edit | Cut
menu option. The selected text is removed from the page.
Move the cursor to the point at which to insert the text and press [Ctrl]+[V] or select the
Edit | Paste menu option.
Delete a block Highlight the lines of text to be deleted and press [Delete]
Delete a line Press [Shift]+[F9] to delete the current line. The remaining lines close up.
Paste special Select the Edit | Paste Special menu option. The Paste Special dialog displays, listing
objects the appropriate data type formats for pasting the copied object, as listed below.
Click on the Paste button to embed the data into your application, or click on the Paste
Link button to create a link to the original file.
Native Object Format
If available, this is the first format in the list box. You can edit data in this format using
the original application, by double-clicking the object.
Formatted Text
A text format. This option offers the most suitable format if the data is pasted from
another text output application, as the font and formatting attributes are reproduced
accurately.
Unformatted Text
Another text format. This option pastes the text without retaining the formatting
information.
Picture Format
The data is available in Picture format. You can later edit the object, by double-clicking
on it and invoking the Microsoft MS Draw application.
Note:
This format is preferred over the Bitmap and the Device Independent Bitmap formats.
Page Mode Turn Page Mode on (the equivalent of Print View in Word) or off (the equivalent of Normal
View in Word).
In Page Mode, the editor displays one page at a time. It is most useful for documents
containing multiple columns, as the columns are displayed side by side.
Fitted View Turn Fitted View on or off. This is a special case of Page Mode, in which the text wraps to
the window width and the soft page breaks are not displayed.
If you select Fitted View, Page Mode is automatically selected too. If you deselect Page
Tool Bar Display or hide the tool bar above the ruler.
The tool bar provides a convenient method of selecting fonts, point sizes, character styles
and paragraph properties. The tool bar also shows the current selection for font, point size
and character styles.
Status Ribbon Display or hide the status ribbon at the bottom of the editing panel.
The status ribbon displays the current page number, line number, column number and row
number. It also indicates the current insert/overtype mode.
Paragraph Display or hide the paragraph marker (an inverted 'P') at the end of each paragraph.
Marker
This option is useful when working with lines with many different heights.
Page Header/ Display or hide the text of page headers and footers. If Page Mode is not selected, this
Footer option turns Page Mode on.
When Page Mode is selected, you cannot edit the header or footer text unless you also
select the Edit | Edit Page Header/Footer menu option. See Headers and Footers 1596 .
When Page Mode is deselected, you can see and edit page headers and footers at the
start of the document.
Zoom Shrink or enlarge the display of the document text, by selecting the appropriate percentage
enlargement.
The editor supports zoom percentages from 25 to 200.
To Do this...
Embed a picture Position the cursor at the point at which to insert the picture bitmap or Windows metafile,
in the document and either:
· Select the Insert | Embed Picture menu option, or
· Press [Alt]+[F8].
A browser dialog displays, through which you select the picture to embed in the
document. The picture displays at the current cursor location.
To Do this...
Link a picture Position the cursor at the point at which to link the picture bitmap or Windows metafile,
file to the and select the Insert | Link Picture menu option.
document
A browser dialog displays, through which you select the picture to link to the document.
The picture displays at the current cursor location.
Linked picture data is not saved with the document, only the filename is stored within the
document.
Embed an Ole Position the cursor at the point at which to embed the object, and select the Insert | Ole
object in the text Object menu option. The Insert Object dialog displays, listing the applications that are
available to create the object.
When you select an application, the editor launches it and you create the required object
using this application. When you save the application, the editor inserts an icon that
indicates the inserted object. You can later edit the object using the application, by
double-clicking on the object.
Note:
You can also use the Edit | Paste Special 1589 menu option to import the OLE objects,
provided that the object is available in the clipboard.
Edit an Click on the picture and select the Edit | Edit Picture menu option. The Edit Current
embedded Picture Parameters dialog displays, through which you can change the width and height
picture of the picture, in inches. You can also align the top, bottom, or middle of the picture with
the base line of the text.
Edit an Double-click on the icon that indicates the inserted Ole object. Alternatively, position the
embedded Ole cursor on the icon and select the Edit | Edit Ole Object menu option. The editor opens
object the object in the application used to create it, and you can edit the object.
Insert a Select the Other | Background Picture menu option. A browser dialog displays,
background through which you select the bitmap or metafile file to insert as a background picture.
picture for the The picture occupies the entire text area.
text
To remove the background picture, deselect the Background Picture menu option.
Insert an RTF Position the cursor at the point at which to insert the file, and select the Insert | Insert
File RTF File menu option.
To Do this...
Apply character Highlight the text to which to apply the format, and use one or more of the following
format menu options or key combinations, as required:
· Font | Normal, or press [Alt]+[0]
· Font | Bold, or press [Ctrl]+[B]
· Font | Underline, or press [Ctrl]+[U]
· Font | Double Underline, or press [Ctrl]+[D]
· Font | Italic, or press [Ctrl]+[I]
· Font | Superscript, or press [Alt]+[4]
· Font | Subscript, or press [Alt]+[5]
· Font | Strike, or press [Alt]+[6] (puts a line through the text)
· Font | All Caps
· Font | Small Caps
To Do this...
To reset any character format, highlight the text and select the Font | Normal menu
option, or press [Alt]+[0].
Change font Highlight the text to change and select the Font | Fonts menu option, or press [Alt]+
typeface and [F10]. The Font Selection dialog displays, from which you select the required typeface
point size and point size. Click on the OK button.
Change Highlight the text to change and select the Font | Style menu option. The Select a Style
character style dialog displays, listing the currently-defined character styles in the template stylesheet
1600 .
Change the color Highlight the text to change and select one or more of the following options, as required:
of text, · Font | Text Color
background · Font | Background Color
(permanent · Font | Underline Color
highlight) or
underline In each case, the Color dialog displays, through which you can select or define the
required color. When you have selected a color, click on the OK button.
Change Normal character spacing is 20 Twips. If you want to change this (or return to it),
character highlight the text to adjust, and select the Font | Spacing menu option. The Character
spacing Spacing dialog displays.
Select the radio button to expand or compress spacing, or to return to normal spacing. If
you are changing from normal spacing, enter the number of Twips to set the spacing to.
Click on the OK button.
Hide text Hidden text is not displayed on the screen or printer, but remains in the document and is
not deleted.
Highlight the text to hide and select the Font | Hidden menu option, or press [Ctrl]+[H].
The highlighted text is not displayed and the rest of the text closes up.
To view hidden text, select the View | Hidden Text menu option. You can then make
the text normal again by highlighting it and deselecting the Font | Hidden menu option.
Box text Highlight the text to box and select the Font | Boxed menu option. This creates a
broken-line border around the selected text.
Insert a non- Move the cursor to the point at which to insert the non-breaking space and select the
breaking space Insert | Non-breaking Space menu option.
Insert a non- Move the cursor to the point at which to insert the non-breaking dash and select the
breaking dash Insert | Non-breaking Dash menu option.
Insert an Move the cursor to the point at which to insert the hyphen and select the Insert |
optional hyphen Optional Hyphen menu option.
To Do this...
Clear all Select the Paragraph | Normal menu option. The editor pushes the paragraph back
paragraph up to the page margin.
formatting
To Do this...
Center text Select the Paragraph | Center menu option or press [Alt]+[8].
Right-justify text Select the Paragraph | Right Justify menu option or press [Alt]+[9].
Justify both sides Select the Paragraph | Justify Both menu option.
of text
Set double line Select the Paragraph | Double Space menu option. A double-spaced paragraph has
spacing a blank line between each text line.
Indent paragraph Select the Paragraph | Indent Left menu option or press [Alt]+[L]. Select the option
left again to increase the indent.
Indent paragraph Select the Paragraph | Indent Right menu option or press [Alt]+[R]. Select the option
right again to increase the indent.
Create hanging Select the Paragraph | Hanging Indent menu option or press [Alt]+[T]. Select the
indent option again to increase the indent of all lines below the first.
Keep paragraph Select the Paragraph | Keep Together menu option. The editor attempts to keep all
lines together lines within the paragraph on the same page.
Keep paragraph Select the Paragraph | Keep with Next menu option. The editor attempts to keep the
with next last line of the current paragraph and the first line of the next paragraph on the same
page.
Prevent 'widow' Select the Paragraph | Widow/Orphan Control menu option. The editor attempts to
and 'orphan' lines avoid having:
· the first line of the paragraph on the previous page ('widow' line)
· the last line of the paragraph on the next page ('orphan' line).
Start text on new Move the cursor to the point at which to start the new page, and select the Paragraph
page | Page Break Before menu option.
Insert border and Highlight the required text and select the Paragraph | Border and Shading menu
shading for text option. The Paragraph Box Parameters dialog displays, on which you specify which
block sides of the box to display (including a line between text lines), whether the lines are
thick or doubled, the degree of gray shading behind the text, and the color of the lines.
Define line Highlight the required lines and select the Paragraph | Paragraph Spacing menu
spacing option. The Paragraph Spacing Parameters dialog displays, on which you specify the
line spacing and the point spacing before and after lines.
Set a background Highlight a text string or block of text and select the Paragraph | Background Color
color for text menu option. The Color dialog displays, on which you select the background color.
space The editor highlights the full width of the page in that color, for the selected lines.
Create a bulleted Highlight the required lines of text and select the Paragraph | Bullet menu option. The
list editor formats the lines into a simple bullet list.
Create a Highlight the required lines of text and select the Paragraph | Numbering menu
numbered list option. The editor formats the lines into a simple numbered list.
Apply numbering Set up a numbering list and overrides 1601 (Edit | List and Overrides) and apply the
to paragraphs numbering levels 1603 to the template sections (Paragraph | List Numbering).
Apply a paragraph Select the Paragraph | Style menu option. The Select a Style dialog displays, listing
style from the the currently-defined paragraph styles in the template stylesheet 1600 .
template
To Do this...
Note:
The Other | Snap To Grid menu option affects the movement of the tabs (and the paragraph indentation
markers) on the ruler. When you select this option, the movements of the tab markers are locked on to an
invisible grid at intervals of 1/16 inch (half a ruler division).
If Page Mode is off, the editor also marks automatic page breaks when the text overflows a page; these are
indicated by a dotted line.
You can repaginate your document, using the Edit | Repaginate menu option. This updates the Page
Number and Page Count fields, and recompiles the table of contents.
You insert the Page Number and Page Count fields as follows:
To Do this...
Insert the page Position the cursor at the point at which to display the page number, and select the
number Insert | Page Number menu option. The page number is displayed in gray.
Insert the page Position the cursor at the point at which to display the total number of pages in the
count document, and select the Insert | Page Count menu option. The page count is
displayed in gray.
To Do this...
Edit the page header In Page Mode, select the Edit | Edit Page Header/Footer menu option. A paragraph
and footer text marker displays at the top and bottom of each page, and you can type in, format or
delete the appropriate text.
If Page Mode is turned off, all page headers and footers are displayed in a block at
the start of the document, with identifying labels. You can also edit the text here.
Each section in a document can have its own page header and footer.
Create the header In Page Mode, select the Edit | Edit Page Header/Footer menu option and then
and footer for the select the Edit | First Page Header/Footer | Create First Page Header or Create
initial page of the First Page Footer menu option. A paragraph marker displays at the top or bottom of
document the first page, and you can type in and format the appropriate text.
If Page Mode is turned off, all page headers and footers are listed in a block at the
start of the document, with identifying labels. You can also edit the text here.
Delete the header Whilst you can delete the first page header or footer text by simple editing, you must
and footer for the specifically delete the 'first page' assignment in order to display the header and
initial page of the footer text of the next section on the first page.
document In Page Mode, select the Edit | Edit Page Header/Footer menu option and then
select the Edit | First Page Header/Footer | Delete First Page Header or Delete
First Page Footer menu option. This removes the first page text and assignment,
and displays the next-defined header and footer text.
Create a footnote Move the cursor to the position at which to insert the footnote marker, and select
the Insert | Footnote/Endnote | Footnote menu option. The Footnote Parameters
dialog displays, on which you enter the footnote marker and footnote text, and select
whether to make the marker a superscript.
Click on the OK button. The editor inserts the footnote marker at the current cursor
location and, in Page Mode, displays the footnote text at the bottom of the page.
Edit footnote text Select the Edit | Edit Footnote/Endnote | Edit Footnote Text menu option. The
text of each footnote displays in the document text where its marker was inserted.
Locate the text and make the required changes. In Page Mode, the modified
footnote displays at the bottom of the page.
When you have finished editing footnote text, deselect the Edit | Edit Footnote/
Endnote | Edit Footnote Text menu option. The footnote text is no longer shown in
the document text.
Create an endnote Move the cursor to the position at which to insert the endnote marker, and select
the Insert | Footnote/Endnote | Endnote menu option. The Endnote Parameters
dialog displays, on which you enter the endnote marker and endnote text, and select
whether to make the marker a superscript.
Click on the OK button. The editor inserts the endnote marker at the current cursor
location and, in Page Mode, displays the endnote text at the end of the section or
document.
Edit endnote text Select the Edit | Edit Footnote/Endnote | Edit Endnote Text menu option. The text
of each endnote displays in the document text where its marker was inserted.
Locate the text and make the required changes. In Page Mode, the modified
endnote displays at the bottom of the page.
When you have finished editing endnote text, deselect the Edit | Edit Footnote/
Endnote | Edit Endnote Text menu option. The endnote text is no longer shown in
the document text.
To Do this...
Manage bookmarks Each template contains a number of bookmarks that mark the sections. You can
apply these bookmarks to related sections, create and assign your own, delete
those that are not required, and locate specific bookmarks in the document.
In Page Mode, select the Insert | Bookmark menu option. The Bookmark dialog
displays.
· To assign a bookmark to the current cursor position, either type a new
bookmark in the top field or select one from the list, and click on the Insert
button.
· To delete an existing bookmark, click on it in the list and click on the Delete
button.
· To mark a bookmark with the number of the page it is on, click on the bookmark
in the list and click on the Set Page Reference button.
· To locate a bookmark in the text, click on it in the list and click on the Go to
button.
Insert hyperlinks Right-click on the point at which to create the hyperlink and select the Insert |
Hyperlink context menu option. The Insert Hyperlink dialog displays. You can create
a hyperlink within an RTF document to an external document, Help topic or web
page.
In the Link Text field type the text to be hyperlinked, and in the Link Code field type
or paste the web page URL, help topic file or external file path and name.
Tip:
To capture the help topic file name, right-click on the displayed topic, select the
Properties context menu option, and copy the file name. When you insert the file
name in the Link Code field, ensure that the file name has the prefix $Help:/ /.
To Do This...
Insert a table in Position the cursor at the appropriate point, and select the Table | Insert Table menu
the document option. The New Table Parameters dialog displays, in which you specify the number of
table rows and columns.
The editor initially creates cells of equal width. You can, however, change the cell width
by dragging the cell borders using the mouse. When Page Mode is deselected, the table
structure is not visible.
Add a header Select the rows to act on, and then select the Table | Header Row menu option. Apply
row any heading settings and formatting to the rows in the highlighted block.
Merge cells Select the cells to merge and select the Table | Merge Cells menu option. The width of
To Do This...
the resulting cell is equal to the sum of the merged cells. You can merge cells across a
row, down a column, and in a block spanning both rows and columns.
Split a cell Select the cell to split and select the Table | Split Cell menu option. The selected cell is
split into two cells of equal width. Any text in the original cell is assigned to the first cell.
The second cell is created empty.
Delete cells Select the cells to delete and select the Table | Delete Cells menu option. The Delete
Table Cells dialog displays, on which you specify whether to delete:
· Cells - deletes the highlighted cells
· Columns - deletes all the cells in the highlighted column or columns
· Rows - deletes all the cells in the highlighted row or rows.
If you delete all cells in a table, the table itself is automatically deleted.
Position the Click on any part of the table and select the Table | Row Position menu option. The
table on the Table Row Alignment dialog displays, on which you select to left-align, center or right-
page align the table on the page.
This option has little effect if the table is wide enough to span the page or text column.
Set the height of Select the row to adjust and select the Table | Row Height menu option
a row, or all
The Row Height Parameters dialog displays, enabling you to set an automatic row
rows
height, a minimum row height, or an exact row height. You can apply the setting to the
selected rows only, or to all rows in the table.
Keep row text Select the rows to protect (preferably all rows in the table) and select the Table | Keep
together if it Row Together menu option. If the row continues over the end of the page, the whole
continues over row is moved to the top of the next page.
a page
Set text flow in Select the rows and select the Table | Row Text Flow menu option. The Table Text
rows Flow dialog displays, on which you select the direction of flow of the text and select to
apply the setting to the selected rows or all rows in the table.
This option also moves the whole row over to the appropriate side of the page or column.
Set the width of Select the cells to act on and select the Table | Cell Width menu option. The Set Cell
selected cells Width dialog displays, on which you set the cell width and text margin and apply them to:
· All cells in a highlighted block
· The selected cells only
· All cells in the selected column or columns, or
· All cells in the selected row or rows.
Define the cell Select the cells to act on and select the Table | Cell Border Width menu option. The Set
border width Cell Border dialog displays, on which you set the width of the line at any or all of the top,
bottom, left and right of a cell, or whether to draw a uniform border around the cells. You
can also set the text margin, and apply all the settings to:
· All cells in a highlighted block
· The selected cells only
· All cells in the selected column or columns, or
· All cells in the selected row or rows.
Define the cell Select the cells to act on and select the Table | Cell Border Color menu option. The Set
border color Cell Border Color dialog displays, on which you set the color of the line at any or all of
the top, bottom, left and right of a cell, or whether to have a uniformly colored border
around the cells. You then apply the settings to:
· All cells in a highlighted block
· The selected cells only
· All cells in the selected column or columns, or
To Do This...
Show / hide Click on a table cell and select the Table | Show Gridlines menu option. This displays
table outline or hides the grid lines around the table cells. The grid lines are for display purpose only
and do not appear on the printed document.
To Do this...
Create a new section Select the Insert | Insert Break | Section Break menu option. This creates a new
section on a new page.
Note:
This option is not available when Edit | Edit Page Header/Footer is active.
To Do this...
Edit the section Select the Edit | Edit Section menu option. The Section Parameters dialog
parameters displays. Define:
· The number of columns and column spacing; text in a multiple column section
wraps at the end of the column. When the text reaches the end of the page, it
resumes in the next column. When Page Mode is off, the page contains a
single very thin and long column. When Page Mode is on, the correct column
layout is shown.
· The orientation - Portrait or Landscape
· Whether to start the new section on the next page
· The direction of text flow
· Any special printing characteristics for the section.
You can also define any special page margins by selecting the File | Page Layout
1588 menu option.
Delete a section break Move the cursor onto the section break line and press [Delete].
Create a column Move the cursor to the appropriate point in the text and select the Insert | Insert
break Break | Column Breakmenu option.
Normally in a multiple column section, the text flows from the end of one column to
the top of the next column. A column break forces the text to the next column
before the current column is completely filled.
A column break is indicated by a line with a 'dot and dash' pattern. To delete the
column break, simply position the cursor on the column break line and press
[Delete].
To Do this...
Use double-byte Select the Edit | Inline Ime menu option. This enables you to enter double-byte
characters characters without using an external IME application
Create and edit Select the Edit | Edit Style menu option. The Edit Stylesheet dialog displays.
styles
Select the appropriate radio button to define a character style or a paragraph style.
Either select an existing style to modify from the list box, or type in a name for a new
style. Click on the OK button to begin recording the style properties. You can use the
ruler, toolbar or menu selections to modify the style items. These also reflect the
currently-selected properties for the stylesheet item. Please note that the paragraph
properties are enabled only for the paragraph stylesheet items.
After you have defined the required style, either select the Edit | Edit Style menu
option again or click anywhere in the document. If you modified an existing stylesheet
item, the document automatically reflects the updated style. If you created a new
stylesheet item, you can apply the style to highlighted text by selecting the Font | Style
or Paragraph | Style menu options.
Apply character Select the Font | Style menu option to apply a stylesheet style to a highlighted
styles character string.
Apply paragraph Select the Paragraph | Style menu option to apply a stylesheet style to a highlighted
styles paragraph or range of paragraphs.
To Do this...
Insert a table of Create and apply the required heading styles using the Edit | Edit Style menu option,
contents as above.
Move the cursor to the point at which to insert the table of contents and select the
Insert | Table of Contents menu option.
The table of contents is automatically updated whenever repagination 1595 occurs.
Insert date and Move the cursor to the point at which to insert the current date and time, and select
time fields the Insert | Date and Time menu option. The Insert Current Date/Time dialog
displays, from which you select the required date and time format.
The date and time are automatically updated whenever the page text is refreshed.
Insert your own Not Supported In The Enterprise Architect RTF Generator.
data fields
Move the cursor to the point at which to insert the data field and select the Insert |
Data Field menu option. The Data Field Parameters dialog displays, in which you
enter the field name and data value.
Insert a text entry Move the cursor to the point at which to insert the text entry field and select the Insert |
field Text Input Field menu option. The Input Field Parameters dialog displays, in which
you enter the field name, initial value, maximum field length and text font, and specify
whether or not the field has a border.
Insert a selectable Move the cursor to the point at which to insert the checkbox and select the Insert |
checkbox Checkbox Field menu option. The Checkbox Field Parameters dialog displays, in
which you enter the field name, whether it defaults to selected, and the size of the box
surrounding the check.
Define level Select the Edit | List and Overrides menu option, set up the numbering list and the
numbering in list overrides 1601 , then apply the numbering list to the headings set for packages and
generated elements, using paragraph numbering.
document
To define the numbering format you first create a numbering list and then create a set of list overrides for this
list. The overrides must also have the initial 1.0.0 setting altered to 1.1.1. You can then apply the numbering
list to the headings set for packages and elements, using paragraph numbering.
(See Section Numbering in Virtual Documents 1623 for further information on applying continuous section
numbering throughout a Virtual Document 1616 .)
Procedure
To define the numbering format, follow the steps below.
1. In the Template Editor, select the Edit | List and Overrides | Create List Item menu option. The List
Properties dialog displays.
2. In the List Name field, type a name for the list. Click on the OK button to close the dialog.
3. Select the Edit | List and Overrides | Create List Override menu option. The List Override Properties
dialog displays.
4. In the List to Override field, type or select the name of the list you have just created. Click on the OK
button to close the dialog.
5. To set the list level properties for each level, select the Edit | List and Overrides | Edit List Level
menu option. The List Level Properties dialog displays.
6. To set the first level numbering (used in the Package Section), select the List override radio button and
type or select the list override item you have just created.
7. Ensure that the List Level field is set to 1 (for Packages) and the Number text field is set to ~1~. Click
Enterprise Architect User Guide
Report Generation | RTF Documents 1603
2. Set the text style, using the style drop-down field in the Template Editor toolbar.
3. Click on the Paragraph | List Numbering menu option. The Apply paragraph numbering using Lists
dialog displays.
4. Select the required Numbering List and Override, and set the Level field to the required level (1, for the
top level). Click on the OK button to close the dialog, and check that the required level has been applied
to the selected text.
5. Repeat steps 1 to 4 for the next level (Element), but at step 4 change the Level field to 2.
6. Continue applying the overrides for lower section levels as necessary, then save the template and
generate your RTF report. The output should now resemble the following example:
To Do this...
Embed a frame or Select the Insert | Frame or Insert | Drawing Object menu option.
drawing object at the
cursor position
Insert text into the Click inside the outline and type the text at the cursor position.
frame or drawing
object text box
Rotate text to display Select the Edit | Edit Frame/Drawing Object | Rotate Text menu option and select
it down the side of the the text direction.
frame or text box
Insert a picture into a Copy the picture, click inside the outline and paste the picture at the cursor position.
frame or drawing
object text box
Size a frame or Click inside the outline, click on a sizing tab on the outline and drag the tab to the
drawing object required position.
If the frame or text box contains only a picture, the picture size is automatically
adjusted to fill the outline. Any text inside the outline is automatically wrapped to
adjust to the new width.
In a frame the frame height is automatically adjusted, if necessary, to enclose all
To Do this...
lines. In a text box, you must adjust the height manually to enclose the text.
Move the frame or Click inside the outline and then move the cursor just outside the outline so that the
drawing object cursor changes to a plus-shape. Drag the plus shape (and hence the outline) to the
new location.
Edit the relationship Click on the outline and select the Edit | Edit Frame/Drawing Object | Vertical
between a frame or Base Position menu option. Select the point to lock the outline to. Outlines locked
drawing object and a to the top of the page or the top of the margin retain their vertical position when you
point on the page (the insert text before them.
vertical base position)
Edit the border and Select the Edit | Edit Frame/Drawing Object | Edit Drawing Object menu option.
the background of a On the Line and fill attributes dialog, select the options for the preferred border, line
drawing object color, fill color and wrapping effect on the template text.
Delete a frame or Click on the outline and press [Delete]. The editor prompts you to confirm the
drawing object deletion. Click on the OK button. Note that the deletion is actually reversible - press
[Ctrl]+[Z] or select the Edit | Undo menu option.
Specify the term to search for, whether to search from the start of the file or forwards or backwards from the
current cursor position, and whether the search should exactly match the case of the search term.
To Do this...
Search for a text Select the Other | Search menu option, or press [F5]. The Search String
string Parameters dialog displays.
The editor searches for the first instance of the specified character string as defined
by the parameters.
Find the next Select the Other | Search Forward menu option, or press [Ctrl]+[F]. The editor
instance of a searches forwards for the next instance of the specified text string in the file, and
previously-defined highlights it.
text string in the file
Find the previous Select the Other | Search Backward menu option, or press [Ctrl]+[Shift]+[F]. The
instance of the editor searches backwards for the previous instance of the text string in the file, and
previously-defined highlights it.
text string in the file
Replace a text string Select the Other | Replace menu option, or press [F6].
The Replace String Parameters dialog displays, in which you specify the text string
to locate and the text string to replace it with, whether to search the whole document
or a highlighted block of text, and whether to confirm each replacement before
To Do this...
Note:
Standard graphical images (such as a logo in the header, main text or footer) are imported. However, any
Word-based meta-file graphics are not imported.
You can select the new template to use in generating an RTF document, either on the Generate RTF
Documentation 1570 dialog or in a Master Document 1618 or Model Document 1619 element.
Note:
Resource Documents, saved into the Resources window, save only the package, output file destination and
template name from the Generate tab of the Generate RTF Documentation 1573 dialog. They do not retain the
RTF data separately defined in the Options, Advanced 1607 and Element Filter 1611 tabs of the dialog.
To save and re-use the options data, edit the template directly in the template editor and use the File |
Document options 1588 option to set the values as part of the template.
2. Click on the Resource Document button. The Save current as document definition dialog displays:
3. In the Enter Value field, type a name for the document and click on the OK button. The document is
added to the Resources window for easy future access (as for the usecasedoc entry in the illustration
below).
4. To generate documentation from the Resources window, right-click on the required document. The
context menu displays.
5. Select the required option.
The context menu options are:
· Open Document - Opens the corresponding .RTF file, as specified by the RTF template Filename property
· Generate Document - Opens the Generate RTF Documentation dialog, loaded with the specified template
· Auto Generate Document - Generates documentation, with the document located at the path specified by
the template's Filename property
· Delete Document - Removes the specified document.
The dialog lists all resource documents in the RTF Documents folder, defaulted to selected. Deselect the
checkbox against each document that you do not want to generate (or click on the Deselect All button to clear
all selections, then select those you require). Click on the OK button to generate each of the remaining reports
into their respective target file locations.
The Generate All Documents context menu option automatically generates every document in the RTF
Documents folder, without displaying the Batch Document Generation dialog.
Option Use to
Filter
Only include objects Filter elements according to date created or modified. In the first two fields,
select the qualifiers from the drop-down lists. In the third field, select the
appropriate date.
Where Package Phase Filter elements according to the value of the Package Phase field. In the first
field select the qualifier, and in the second type the required phase (or leave
the default value All).
With element status Filter elements according to status. In the first field, select the qualifier (like,
not like, in, not in) and in the second field type the value to be used. Values
should be enclosed in quotes; for example: "Proposed". If you type more than
one value, separate them with a comma; for example: "Proposed",
"Implemented".
Option Use to
Order
Exclude details for Exclude all elements of the selected type or types from the generated
document.
Exclude connector type Exclude all connectors of the selected type or types from the generated
document.
The Advanced tab of the Generate RTF Documentation dialog has the following fields:
Option Use to
Hide 'note-less' elements Exclude all elements without notes from the documentation.
Diagram Format Set the diagram format for the images included within the documentation to
either Metafile or Bitmap.
Skip root package Exclude the parent package from the documentation and include only the
child packages.
Option Use to
No bookmarks Stop RTF bookmarks being inserted into the generated document.
Adjust Heading Levels Enable the RTF Generator to automatically restrict the levels of heading
generated for nested sub-packages in a document.
The generator reproduces heading levels down to the value you set. For
example, if you have four nested levels of sub-packages and you set this field
to:
· Heading 2, all sub-packages in the report are documented under level 2
headings.
· Heading 4, the first level of subpackages are documented under level 2
headings, the next level under level 3 headings, and the remainder all
under level 4 headings.
· Heading 6, the first level of subpackages are documented under level 2
headings, the next level under level 3 headings, the next under level 4
headings, and the next under level 5 headings. If you added further levels
of sub-package they would all be documented under level 6 headings.
The field defaults to Heading 9 to accommodate the maximum number of
levels of nested subpackages.
Use style defined in Change where the style definition for Notes is drawn from, so that you use
template for notes the style for notes that is defined in your template, instead of the RTF style
applied in the element Notes field.
If you use this option, you should have a style for notes defined in your
template, otherwise the Notes text is printed in the default font with no
formatting.
Disable large OLE file Disable support for large Object Linking and Embedding (OLE) files.
support
Insert page breaks when Insert a page break after each Model Document in a Master Document 1616 .
generating a Master
Document
Switch generator Switch from this Generate RTF Documentation dialog (the Enhanced
Template Driven Generator) to the Rich Text Format Report dialog 1628
(Legacy Generator).
Note:
This button is not available if you displayed the dialog from the Element List
or Model Search.
The Document Options dialog provides both sets of options, except for:
· The Switch generator button
· The Disable large OLE file support option
· The Insert page breaks when generating a Master Document option.
The dialog also contains the Optimize for Open Office option, as described for the Generate RTF
Documentation 1573 dialog, and tabs for setting Element Filters 1611 and Other Filters 1612 .
Click on the OK button to save your changes.
Column/Button Use to
Search In Select the type and name of each element field to search on.
Condition 1243 Select the condition of the search parameter. The available options are
Contains, Equal To, Not Equals and One Of.
Look For 1243 Specify the search term to perform the conditional search on. This value can
pertain to the selected element field. For example, the value could be a date
for DateCreated or a text value for other fields. The search term can contain
multiple values, separated by commas.
Column/Button Use to
Required Indicate that the search results must include elements with your search term in
that field. You select these checkboxes on the Add Filters 1242 dialog
Important:
The fields listed as filters have an OR relationship when no Required
checkboxes are selected; that is, if the search term is found in any one of
those fields, then the element is displayed.
Any field having the Required checkbox ticked overrides fields where the
Required checkbox is not ticked.
Element Features Specify whether element features are optional or required. These appear as a
new branch underneath the root element term in the Search In column.
- Optional
If you scroll down the Search In column, you see sub-branches such as
- Required Attribute, Change and Custom Property. These are the element features.
You can add these features by clicking on the Add Filter button. The Add
Filters dialog displays, with a list of all the filters you can choose for an
element or element feature. Click on the Search On drop-down arrow to see a
list of the element features you can search on. Each feature has its own set of
filters such as Name, Notes and Alias, which you can add to your search. To
search on an element attribute name, you would add the Attribute feature with
a Name filter to your search.
The Optional radio button enables you to generate a list of elements that
meet one of the element features (Element Type = Object), or one of the
feature filters (Attribute Name = Class1). For example, if your search is:
Element Name = Class11, Attribute Name = m_Att1 or Scope = Public
the search results would list all the elements that have the name of Class11
and all the elements that have an Attribute Name of m_Att1 or a Scope of
Public.
The Required radio button enables you to generate a list of elements that
must have the element features you have added. For example, if your search
is:
Element Name = Class, Attribute Name = m_Att1 or Scope = Public
you would get elements that must have the name of Class AND an Attribute
with a name of m_att1 or a Scope of Public.
Add Filter Add a new set 1242 of parameters to filter the search on.
Edit Filter Open the Edit Filters dialog, which enables you to change the search
parameters.
You add filters by clicking on the Add Filters 1242 button. To edit the filters, either double-click on the panel
contents or click on the Edit Filter button, to display the Edit Filters dialog. The format is the feature field
name, the conditions placed on the field value, the actual value or delimiting value to search on, and whether
the filter item is required (mandatory).
Column/Button Use to
Condition 1243 Select the condition of the search parameter. The available options are
Contains, Equal To, Not Equals and One Of.
Look For 1243 Specify the search term to perform the conditional search on. This value can
pertain to the selected field. For example, the value could be a date for
DateCreated or a text value for other fields. The search term can contain
multiple values, separated by commas.
Required Indicate that the search results must include elements with your search term in
that field. You select these checkboxes on the Add Filters 1242 dialog.
Important:
The fields listed as filters have an OR relationship when no Required
checkboxes are selected; that is, if the search term is found in any one of
those fields, then the element is displayed.
Any field having the Required checkbox ticked overrides fields where the
Required checkbox is not ticked.
Add Filter Add a new set 1242 of parameters to filter the search on.
Column/Button Use to
Edit Filter Open the Edit Filters dialog, which enables you to change the search
parameters.
Option Use to
Add Add a new field and value to the list. A prompt displays for the two data items.
Delete Remove the selected field from the list. A prompt displays to confirm the deletion.
Import Import a set of fields from an external XML file. A browser displays to select the source file
and location.
Export Export all fields to an external XML file. A browser displays to specify the target file and
location.
2. Type the foreign language translation in the Enter Value field, and click on the OK button.
Note:
You can transport these tag definitions between models, using the Export Reference Data 223 and Import
Reference Data 225 options on the Tools menu.
that diagram searches are not supported; when you generate the document, this search captures the
required data throughout the model, and populates the document.
Notes:
· In a Model Document, you should not define both a list of packages and a search; if both are present,
when you generate the document Enterprise Architect works from the package list only.
· You cannot use RTF Bookmarking 1639 in Master Document elements, which effectively replace RTF
Bookmarking in Word.
RTF Bookmarking requires each bookmark to be unique. When you generate a report with a standard RTF
template (including in a single Model Document element), each bookmark is unique and there is a 1:1
association between the Elements-details being generated and the elements in the repository. As Master
Documents are intended to contain multiple sub-documents, the association ceases to be 1:1. There is no
simple method that enables the generated data to be uniquely identified directly in association with the
original element.
You can control the sequence in which information is presented in the document; see the Document Order 1622
topic.
Tip:
You can create as many Model Documents as required, for as many combinations of information as required.
The Master Document element contains its own template Tagged Value, which defines the headers, footers
and central contents list. You can import your corporate standards template 1606 and edit the Tagged Value to
identify that.
Tip:
The template in the Master Document overrides the templates in the Model Documents. For example,
headers and footers in the Master Document template override any header and footer definitions in the Model
Document templates. This enables you to apply consistent and continuous styles and page numbering
throughout the report generated through the Master Document.
If you want the Model Documents to have their own styles, applied through their own RTFTemplate Tagged
Values, either leave the Master Document RTFTemplate Tagged Value blank (for completely separate overall
styles) or remove the definition of specific styles from the Master Document template.
Document Elements
The Master Document and Model Document elements are available from the Documentation page of the
Toolbox; on the Toolbox, select More Tools | Documentation. (This Toolbox page also provides the
Document Artifact 819 element, used for linked documents.)
When you drag the Master Document and Model Document elements onto a diagram, the following symbols
display, respectively:
6. The RTFTemplate Tagged Value defaults to (model document: master template). If you want to use an
alternative master template, click on the drop down arrow at the right of the field and click on that
template in the list.
7. Return to the Project Browser and open the Master Document child diagram.
At this point, you create the Model Document 1619 elements in the child diagram, to provide the content for the
generated document.
When you have added all your Model Document elements to the Master Document diagram, the Master
Document element resembles the following:
Your completed Master document element and child diagram display in the Project Browser as shown below:
Tip:
The new diagram can live anywhere outside the packages you are adding to the document; you could
create a Class diagram called Documentation within a specific Documentation package, and use this
to hold the independent Model Document elements for your virtual documents.
2. From the Documentation page of the Toolbox (More Tools | Documentation) drag the Model
Document icon onto the diagram to create a new Model Document element. Give the element an
appropriate name: for example, if the documentation is relevant to the shopping cart requirements of a
model, you could call it ShoppingCartReqDocumentation. Click on the OK button.
3. Open the Tagged Values window (View | Tagged Values) and click on the Model Document element.
The RTFTemplate, SearchName and SearchValueTagged Values display in the window.
4. Click on the drop-down arrow to the right of the RTFTemplate field, and click on the template to use for
this Model Document.
5. If you are creating a list of packages for the Model Document, go now to Add Packages to Model
Document 1620 . Otherwise, click on the drop-down arrow to the right of the SearchName field, and click
on the model search type to populate this Model Document.
Notes:
· Diagram Searches are not supported.
· Custom SQL searches are supported if they are returning elements. The SQL must include 1239
When you have created all the required Model Document elements, see the Document Order 1622 topic.
2. Drag and drop the package from the Project Browser onto the Model Document element as shown
below:
3. The title of the package displays in the Model Document element in the Attributes compartment, as
shown below:
4. This means that the Resources package is included in the document when you generate it. Using the
above method, you can add as many packages from as many different views as required.
The next step is to generate your document 1623 , but consider the impact of your package list on the Document
Order 1622 . You can also delete packages 1621 if required.
To delete a package from a Model Document element, follow the steps below:
1. In the Project Browser, expand the element to list the package attributes.
2. Right-click on the package to delete, and select the Delete Attribute context menu option.
Alternatively:
1. In either the Project Browser or the diagram, right-click on the Model Document element and select the
Attributes context menu option. The Attributes dialog displays.
2. On the Attributes list, click on the package to delete.
3. Click on the Delete button to remove the package from the document element.
Model Search
A Model Search operates on the database, and accesses records in the order in which they are stored. This
order depends on many factors, and can change with database maintenance. Therefore, the sequence of
information provided by the search is unpredictable.
Package Order
When you create a package list in a Model Document element, the sequence of information is determined by
the order in which the package attributes are listed within the element. You can change the sequence using
the Attributes dialog, and if you prefer a package to be in a different section of the document, you can move
the attribute from one Model Document element to another. Both these procedures are described below.
1. Right-click on the Model Document and select the Attributes option from the context menu. The
Attributes dialog displays.
2. On the Attributes list, click on a package to move and click on the Up or Down (hand) buttons to change
the order in which the packages are included in the documentation.
3. When you are satisfied with the order of your packages, click on the Close button.
3. Set the options for your RTF document as required. See the Generate RTF Documentation Dialog 1573
3. The Dependency Details dialog displays, showing the results of the report. Save or print the results if
required.
Option Use to
Root Package Confirm the root package. All elements and packages under this package appear in the
report.
Details List dependency details; lists the elements in the current package and the elements that
they implement.
3. In the Output Path field, type or browse for the output location to create the report in.
© 1998-2010 Sparx Systems Pty Ltd
1626 Report Generation | RTF Documents
Option Use to
Root Package Confirm the root package. All elements and packages under this package appear in
the report.
Show Show non-implemented elements. Non-implemented elements are those that don't
Unimplemented have any other element to realize them (for example, a Use Case has no
Component or Class to implement the Use Case behavior).
Show Implemented Show implemented elements. These are elements that do have some element
associated with them in a Realization relationship. For example a Use Case has a
Component that implements it.
Details List elements in the current hierarchy and elements that implement them.
Set Target Types Set the list of types to report on. By default Enterprise Architect only reports on a
limited number of element types, such as Use Cases and Requirements. For
Option Use to
further information see the Set Target Types Dialog 1627 topic.
Creating a Rich Text Format (RTF) document is a simple and flexible process. An RTF document is based on
a package or an element in your project (more usually a package). To produce a document, you select the
package or element to report on in the Project Browser, Element List or Model Search, then press [F8] to
display the Generate RTF Documentation dialog. 1573 On the Advanced tab, click on the Switch generator
button to access the Legacy Rich Text Format Report dialog.
The Rich Text Format Report dialog enables you to set the exact contents and look and feel of your report.
You enter the file name of the report, a heading, additional notes, template name (for saving the set-up) and
other options. You can also select the style of the report; either plain or formal.
Optionally, you can set up a filter, the details to include, element types to exclude, whether to process child
packages, whether to show diagrams and the diagram format.
You can switch back to the Generate RTF Documentation dialog by clicking on the Switch RTF Generator
button.
Note:
The Rich Text Format Report dialog panels are individually described in the subsequent topics of this section
(listed below). The dialog has a lot of options; get to know them all to produce output at the level of detail
suited to your project.
Click on the Switch Generator button to display the Rich Text Format Report dialog. See The Legacy RTF
Report Generator 1628 and its related topics for further information.
2. Supply an Output Filename to save the report into; always include the extension .RTF as part of the
filename.
3. Provide a Template Name to save this report set-up.
4. Select a report Style: Formal or Basic.
5. Type a Heading for your report; this appears as the first heading item in your output.
6. Select your required Heading Style and Initial Heading Level Indent from the drop-down lists.
Note:
It is recommended that you enter a full path name for your report. The images in your report are saved
externally in an images directory, and supplying the full directory path avoids confusion over the location of
these images. Also, if you move your report you must also move the images directory.
· To enable the date filter, select the checkbox in the date field.
· In the first two Only include objects fields, click on the drop-down arrows and select the appropriate
criteria (Modified/Created, Before/After).
· The package phase filter applies at the package level (not the element level) and ignores the phase of the
root package that you are documenting. To enable the phase filter, in the Where Package Phase field click
on the drop-down arrow and select an operator; Enterprise Architect filters out all packages that do not
meet the selection criteria. All elements in the package are ignored, regardless of their individual phase.
· The element status filter enables you to limit the output by element status. Unlike the package phase filter,
this filter applies to every element. You can filter against a status of like or unlike a criterion, for example,
like proposed, or against the in and not in operators, such as in approved, not in validated. When using
the in and not in operators, enter a comma-separated list of status types as your criteria expression.
Click on each element to exclude, or click on the All button to exclude all elements. Click on the None button
to clear your selections.
· Bitmap files are raster images with a high level of detail but large size; they do not scale up or down very
well
· GIF files are raster images with reasonable detail and small size; they scale a little better than bitmaps
· Metafiles are vector images with high detail and small size (but can have compatibility problems with some
printers or software); metafiles scale very well
· PNG files are raster images with reasonable level of detail and smaller file sizes than GIF
· JPEG are lossy raster images with average levels of detail, they do not work very well with line drawings
and lose clarity when re sized; JPEG file sizes are typically very small.
Note:
Generally metafiles are the best option, although it sometimes pays to experiment.
Select the appropriate checkbox to include the items in the generated RTF documentation.
You can select whether or not to recursively document packages, show diagrams or add a page break before
each new package. Select the:
· Process all Children checkbox to recursively process all child packages within the main package
· Show Diagrams checkbox to include diagrams in your document. Clear this item for no diagrams
· New page per package checkbox to force a page break on each new package (excepting empty
packages)
· Document all elements checkbox to include all elements included in the project
· Document Packages checkbox to document the package as an element in addition to the documentation
that would normally be produced for package documentation
· Hide 'note-less' elements checkbox to exclude all elements without notes from the documentation
· Embed Diagrams in Document checkbox to ensure that the diagram images are contained within the RTF
document rather than stored in a linked external file
· Skip root package checkbox to exclude the parent package from the documentation and include only the
child packages
· Document Linked Elements checkbox to include the object details for linked elements that do not
originate from the selected package
· Use Heading styles for Details checkbox to ensure that the details are formatted as heading styles rather
than formatted text; this option is only available when the Heading Style field in the Main section 1629 of the
Rich Text Format Report dialog is set to Max 9 levels - elements are package + 1.
What you include or exclude governs how simple or detailed your report is. You can create multiple reports at
different levels of detail for different audiences. Experiment with these options to see what effect inclusion or
exclusion has. Most items are self-explanatory.
Selecting the checkbox against a category item in the list selects all of the options that are contained in the
category. To expand a category, click on the +symbol next to the category name. To exercise greater control
over a category of options expand the top level item and then select the required individual items from the list.
Sometimes an item applies only to a certain type of element; for example, Attributes only applies to Class
elements and a few other element types. The Child Diagrams option shows or hides any diagrams that are
attached under a model element; for example, a Use Case might have a Scenario diagram attached.
Note:
Use this feature to produce the right level of detail for your audience. Technical readers might want to see
everything, whilst management might require only the general outline.
Notes:
· The RTF Style Editor discussed here automatically displays when you modify or create a Legacy RTF
template. If you select a template created in the enhanced RTF Style Template Editor 1578 , that editor
opens automatically instead.
· You can transport these RTF templates between models, using the Export Reference Data 223 and
Import Reference Data 225 options on the Tools menu.
If you have previously defined and saved a template, click on the Load button on the Rich Text Format Report
dialog to open the list of defined templates. Select one in order to load it as the current template; all the
features saved become the current features. This enables you to define a set of standard report types that
streamline document production.
3. To edit an existing Legacy template, expand the Legacy Templates tree and double-click on the
template name, or right-click and select the Modify Document Template context menu option. The
RTF Style Editor displays. See RTF Style Editor 1635 for further details.
4. Alternatively, to create a new Legacy template, right-click on Legacy Templates and select the Create
RTF Style Template (Legacy) context menu option. Enterprise Architect displays a prompt for the new
template name.
5. Type the name of the new template and click on the OK button. The RTF Style Editor displays. See RTF
Style Editor 1635 for further details.
Tip:
To delete a template, right-click on it and select the Delete Document Template context menu option.
Each fragment typically contains RTF plus one or more special tag names that Enterprise Architect replaces
with information during generation. Currently you cannot alter the content within the tag names, but you can
omit a complete tag by removing it, or alter its basic display properties in the surrounding RTF.
Special tag names are delimited by # characters; for example, #NOTES#
Click on the:
· Get Default button to retrieve the default Enterprise Architect template for the currently-selected template
item in the left hand list
· Save button to save the version of the template for this style only
· Delete button to remove your modified version of the template, which causes Enterprise Architect to use
the default template during report generation.
To select a template during report generation, click on the Style drop-down arrow on the Rich Text Format
Report 1628 dialog. Once a style is selected, Enterprise Architect applies that to the current report. Select
<Basic> for the inbuilt style.
Tip:
You can also alter the custom language settings 1637 .
3. In the Enter Value field, type a name for the document and click on the OK button. The document is
added to the Resources window for easy future access (as for the usecasedoc entry in the illustration
below).
4. To generate documentation from the Resources window, right-click on the required document. The
context menu displays.
5. Select the required option.
The context menu options are:
· Open Document - Opens the corresponding .RTF file, as specified by the RTF template Filename property
· Generate Document - Opens the Rich Text Format Report dialog, loaded with the specified template
· Auto Generate Document - Generates documentation, with the document located at the path specified by
To Set Up Substitutions
1. Open the Rich Text Format Report dialog (see The Legacy RTF Report Generator 1628 for how to do
this).
2. In the Language panel (bottom left of dialog) click on the Adjust button. The Customize RTF Language
dialog displays.
3. To clear the substitution list, double-click on each item in turn and delete the substitute value.
4. When you have completed the settings, click on the OK button to save them.
Now when you generate RTF documents, the substitute tags are used in the output.
Note:
You can transport these language and tag definitions between models, using the Export Reference Data 223
and Import Reference Data 225 options on the Tools menu.
Note:
You can develop a report using the combined facilities of Word and Enterprise Architect with few problems,
as long as you leave definition of the section styles to the final stages in Enterprise Architect just prior to
report generation. Word truncates the section bookmarks, as it uses a smaller field length for sections. In
Word, you can review and edit reports generated by Enterprise Architect, but you cannot import them back
into Enterprise Architect without damaging the section style definition.
Tip:
If you have Word configured to view RTF files, you can also click on the View Output button on the Generate
RTF Documentation dialog.
Note:
You cannot use RTF Bookmarking in Master Document 1618 elements, which effectively replace RTF
Bookmarking in Word.
RTF Bookmarking requires each bookmark to be unique. When you generate a report with a standard RTF
template (including in a single Model Document element), each bookmark is unique and there is a 1:1
association between the Elements-details being generated and the elements in the repository. As Master
Documents are intended to contain multiple sub-documents, the association ceases to be 1:1. There is no
simple method that enables the generated data to be uniquely identified directly in association with the
original element.
3. Locate and click on the file to insert, then click on the Range button.
4. In the Range cell type or paste the information from the clipboard.
The Insert option sets a permanent copy; the Insert as Link option creates a link that is updateable on
altering the source document. For Insert as Link to operate you must first set Refresh Links 1646 .
Every package is bookmarked in the RTF document according to the following rules:
· All alphabetic and numeric characters remain the same
· All other characters (including spaces) are converted to underscores.
For example UC01: Use Case Model becomes UC01__Use_Case_Model.
Tip:
Enterprise Architect provides the basic content for your document - use Word to add the presentation and
linkages.
The format of the table of contents is dependant on the heading levels created when the RTF is generated. To
set the heading style for details in Enterprise Architect RTF documentation, see the RTF Document Options
1607 topic.
This enables you to enter information into the header section and the footer section of the RTF
Documentation.
Resize Tables
When the amount of detail for a documented item such as an attribute or operation exceeds the margins of
the page in MS Word it is necessary to manually resize the table in order to view all of the details. To manually
resize the table follow the steps below:
1. Select the table that exceeds the margin size.
2. Mouse over the border of the table until the mouse pointer changes into the icon shown below.
3. Drag the cursor to the left to reduce the width of the table and then select the File | Print Preview menu
option to confirm that the table borders are within the page margins.
4. Resize all of the tables that overhang the margins of the page by using the steps detailed above.
Enterprise Architect provides automated web-based publishing of models. A new outline structure closely
mirrors the model hierarchy and makes it very simple to explore models on-line. With a great new look and the
ability to explore very large models efficiently on-line, the new web-publishing capability is a significant
enhancement.
Enterprise Architect enables export of an entire model or a single branch of the model to HTML Web pages.
The HTML report 1647 provides an easy to use, highly detailed, Javascript based model tree. In addition,
hyperlinked elements make browsing to related information very simple.
The current implementation is based on internal and external templates and generated Javascript. The ability
to edit all templates is to be added in a future version of Enterprise Architect.
Tip:
You can create Web Style Templates 1649 to customize your HTML output.
Note:
In the Corporate, Business and Software Engineering, System Engineering and Ultimate editions of
Enterprise Architect, if security is enabled you must have Generate Documents 198 permission to generate
HTML documents.
displays.
3. In the Output to field, select an output directory for your report. Set any other required options.
4. Click on the Generate button to generate the report. The Progress field shows total percentage
complete.
5. Once the report is complete, click on the View button to launch your default HTML viewer and view the
web pages.
Note:
If you are using Microsoft Internet Explorer 7.0 or later, and you do not have it open, its security profile might
block the report display. Click on the explanation banner at the top of the screen and select the Allow
Blocked Content context menu option.
The web report produced is compatible with any standard web server, on either Unix or Windows platforms.
Simply bundle up the entire output directory and place it within the context of your web server. All path names
should be relative and case sensitive.
When you view the HTML report in your HTML viewer, you can switch directly to a page for a specific diagram
or element by specifying the appropriate GUID after the report web address. That is:
http://path/path/path/Index.htm?guid=xxxxxxxxxxxx
The word guid must be in lower case, and the value must not include braces { }. For example:
http:// .../path/Index.htm?guid=DC62B0DA-0D60-4447-85E6-B9BBAE7FC90F
You can obtain the GUID for the diagram or element using the Copy Reference option on the Project Browser
Diagram 1220 , Element 1218 and Package 1214 context menu options.
Note:
The page locator does not work directly in Internet Explorer. Firefox automatically converts the path to file:///
C:/path protocol, and actions it. That protocol also works in Internet Explorer. Therefore, to use the absolute
references without a web server you must access the path using the file:/// protocol.
Quick Start
To generate an HTML report right now, follow the steps above on the System Model package of the
EAExample project.
Option Use to
Package Display the name of the package you are creating documentation for.
Title Type the title for your HTML documentation; defaults to Package.
Style Select a web style template 1649 to apply to your documentation (optional).
File Specify the file extension for your HTML documentation files; the default
is .htm.
Option Use to
Header Image Enter or select the file path for the header image graphic to display on
your HTML output. If you do not specify a file path, the image defaults to
the Enterprise Architect logo.
Preserve White space in Notes Preserve existing white space in your notes; deselect to remove white
space.
No page for Note and Text Omit the page for your notes and text items in the HTML report.
items
Default Diagram Select the diagram the report should open to when the generated
documentation is loaded.
Image Format Select the image file format to save your images in, either PNG or GIF.
Click on the Generate button to generate the HTML report with the settings you have defined.
Click on the View button to display the report you have generated.
Note:
To delete a template, right-click on it and select the Delete HTML Template context menu option.
The HTML and CSS Style Editor contains a list of all available HTML fragments for modification and
customization. These fragments are defined in the HTML Template Fragments 1651 topic.
Each fragment typically contains HTML plus one or more special tag names that Enterprise Architect replaces
with information during generation. Currently you cannot alter the content within the tag names, but you can
omit a complete tag by removing it, or alter its basic display properties in the surrounding HTML.
Special tag names are delimited by # characters - for example, #NOTES#.
· Get Default retrieves the default Enterprise Architect template for the currently selected template item in
the left hand list
· Save saves your version of the template for this style only
· Delete removes your modified version of the template, which causes Enterprise Architect to use the default
template during report generation.
To select a template during generation, use the Style drop-down arrow on the Generate HTML Report dialog.
Once a style is selected, Enterprise Architect applies that to the current report. Select <default> for the inbuilt
style.
Note:
Each time Enterprise Architect generates the web report it overwrites these files, so you must back up your
modified versions and copy them back in after every update.
Section Fields
Section Fields
Body – Project Glossary · #CONTENT# - Loops Content – Project Glossary Item for each
Project Glossary item.
Body – Project Issues · #CONTENT# - Loops Content – Project Issue Item for each
Project Issue item.
Body – Project Tasks · #CONTENT# - Loops Content – Project Task Item for each
Project Task item.
Content – Attributes · #CONTENT# - Loops Content – Attributes Item for each attribute
on an element.
Section Fields
Content – Custom Properties · #CONTENT# - List of all Content – Custom Properties - Item.
Section Fields
Content – Project Issues Item · #DATERESOLVED# - Project Issue resolved date (blank if no date
entered)
· #ISSUE# - Project Issue name
· #ISSUEDATE# - Project Issue issue date
· #NOTES# - Project Issue notes
· #OWNER# - Project Issue owner
· #RESOLUTION# - Project Issue resolution
· #RESOLVER# - Project Issue resolver
· #STATUS# - Project Issue status.
Section Fields
Javascript · None.
Section Fields
Page - Basic template · #CONTENT# - Contains Body - Diagram through to Body - Object
· #TITLE# - Current package name.
Section Fields
Scenario Exception · #CONTENT# - Loops Scenario Exception Item for each exception.
Tagged Value Line Item · #IMAGE# - The file path of the images
· #NOTES# - Tagged Value notes
· #NUMBER# - A unique number used to identify div elements
· #PROPERTY# - Tagged Value name
· #VALUE# - Tagged Value if type is boolean (value is true or false).
XI
Automation and Scripts | 1659
This section describes how you can automate and extend the facilities of Enterprise Architect through:
· Scripts 1660
· The Enterprise Architect Object Model 1666
· The Enterprise Architect Add-In Model. 1776
11.1 Scripting
Notes:
· This facility is available in the Corporate, Business and Software Engineering, Systems Engineering and
Ultimate editions.
· If you intend to use the Scripting facility under Crossover/WINE, you must also install Internet Explorer
version 6.0 or above.
Scripts executed in Enterprise Architect have access to the currently open model and are a powerful tool for
querying and updating the model in situations that would otherwise require you to perform time consuming
and repetitive GUI tasks. Enterprise Architect supports management of scripts using the following script
engines:
· JavaScript
· Microsoft JScript
· Microsoft VBScript
The management interface for Scripting is the Scripter window, which contains the:
· Script Tree View 1661 (Scripts tab), which you use to review, create and edit scripts
· Script Console 1663 (Console tab), which you use to operate on an executing script.
Scripts are managed in groups. The first group in the list is always Local Scripts, which are available to any
model. You cannot create, edit, drag-and-drop or delete these scripts. Local Scripts are files in the Scripts
subdirectory of the Enterprise Architect installation - any instance of Enterprise Architect that has a currently
open model can see these scripts.
All other groups are User Scripts, which you create yourself. A user group can be one of four types 1663 , each
of which applies a template and certain conditions to the scripts you create within that group. User scripts are
only visible inside the model in which they were created; the contents of the scripts are stored with the model,
although they can be saved to the file system easily using the Script Editor 1439 .
The Scripts tab is composed of a toolbar and a view of all scripts according to group.
To execute a script, press [Ctrl] while you double-click on the script name.
To write or edit a user script, double-click on the script name to display the Script Editor 1439 . This usually
displays a script template, determined by the user group type as assigned on the Script Group Properties
dialog 1663 .
You can move or copy a script from one user scripts folder to another. To:
· Move a script, highlight it in the Scripts tab and drag it into the user scripts folder it now belongs to
· Copy a script, highlight it in the Scripts tab and press [Ctrl] while you drag it into the user scripts folder in
which to duplicate it.
Icon Use to
Create a new script group. The new group is added to the end of the list in the Scripter window, with
the 'New group' text highlighted so that you can type in the group name.
Create a new script file in the selected script group; displays a short menu of the types of script you
can create, namely:
· VBScript ( )
· JScript ( )
· JavaScript ( )
The new script is added to the end of the list in the selected group, with the 'New script' text
highlighted so that you can type in the script name.
Refresh the script tree in the Scripter window. This icon also reloads any changes made to a
workflow script.
Compile and execute the selected script. The output from the script is written to the Script tab of the
Output window, which you display using the View Script Output button (below).
Delete a script from the model. You cannot use this icon to delete a script group (see the Context
Menu 1662 section, below), scripts in the Local Scripts group, or a script that is executing.
Important:
The system prompts you to confirm the deletion only if the Confirm Deletes checkbox is selected
in the Project Browser panel of the General page 351 of the Options dialog. If this option is not
selected, no prompt is displayed. Script deletion is permanent - scripts cannot be recovered.
Display the Output window with the results of the most recently executed script displayed in the
Script tab.
Context Menus
The script groups and their scripts also have context menus that provide some or all of the following options:
· Group Properties - to display or edit script group properties in the Script Group Properties 1663 dialog
· Run Script - to execute the selected script
· Rename Script - to change the name of the selected group or script
· New VBScript/JScript/JavaScript - add a new script to the selected user group
· Import Workflow Script - to display the Browser dialog through which you locate and select a workflow
script source (.vbs) file to import into the Workflow script folder
· Delete Group/Script - to delete the selected user group or script.
Note:
If you select to delete a script group that contains scripts, the system always prompts you to confirm the
action regardless of any system settings for delete operations. Be certain that you intend to delete the group
and its scripts before confirming the deletion - deletion of script groups and scripts is permanent.
The Script Group Properties dialog enables you to set the following properties of the script group:
· Name - The name of the script group; the dialog also displays the automatically-assigned GUID of the
group
· Group Type - The type of scripts contained in the group. This can be one of:
· Normal - ( ) Ordinary scripts
· Project Browser - ( ) Scripts that are listed in and can be executed from the Project Browser
Scripts 1214 context menu option 1214
· Workflow - ( ) Scripts executed by Enterprise Architect's workflow engine 220 ; you can create only
VB scripts of this type)
· Search - ( ) Scripts that can be executed as model searches 1231 ; these scripts are listed in the
Search field of the Model Search window.
· Notes - Your own notes on the script group.
The script console is a tab of the Scripter window. It is a command line interpreter with which you can quickly
enable a script engine and enter commands to act on the script.
You type the commands in the field at the bottom of the tab; when you press the [Enter] key, the script
console executes the commands and displays any output immediately.
You can input two types of command:
· Console commands
· Script commands.
Console Commands
Console commands are preceded by the ! character and instruct the console to perform an action. The
available console commands are listed below; to list these commands on the Console tab itself (as shown
above) type? in the console field (without the preceding ! character) .
· c(lear) - clears the console display
· sa(ve) - saves the console display to a file
· h(elp) - prints a list of commands, as for ?
· VB - opens a VBScript console
· JA - opens a JavaScript console
· JS - opens a JScript console
· st(op) - closes any script running console
· i(nclude) name - executes the named script item; name is of the format GroupName.ScriptName (spaces
are allowed in names)
· ? - (without the !) lists commands
· ?name - Outputs the value of a variable name (only if a script console is opened).
Script Commands
A script command is script code that depends on the script engine. Script commands can be executed only
once a script console has been created.
Examples:
The following lines, entered into the console, create a VBScript console and then execute the script MyScript
in the user group MyGroup.
>!VB
>!i MyGroup.MyScript
The following lines, entered into the console, create a JScript console and then create a variable called x with
the value 1.
>!JS
>var x = 1
The following diagram shows the result of entering the above JScript example. Remember that you can use
?<variable name> to get the current value of any item you have created during the console session.
· Open Console ( ) - click on the down-arrow and select to open a VBScript console, JScript console or
JavaScript console
· Stop Script ( ) - click to stop an executing script and close the current console.
Introduction
Automation provides a way for other applications to access the information in an Enterprise Architect model
using Windows OLE Automation (ActiveX). Typically this involves scripting clients such as MS Word or Visual
Basic, or using scripts created within Enterprise Architect using the Scripter window 1660 .
The Automation Interface provides a way of accessing the internals of Enterprise Architect models. Examples
of things you can do using the Automation Interface include:
· Perform repetitive tasks, such as update the version number for all elements in a model
· Generate code from a State Machine diagram
· Produce custom reports
· Perform ad hoc queries.
EA.exe /unregister
then
EA.exe /register).
4. See the general library documentation on the use of Classes. The following example creates and opens
a repository object:
EA.exe /unregister
then
EA.exe /register).
4. Click on the Create Unit button.
5. Include EA_TLB in Project1's Uses clause.
6. See the general library documentation on the use of Classes. The following example creates and opens
a repository object:
Microsoft C#
1. Select the Visual Studio Project | Add Reference menu option.
2. Click on the Browse tab.
3. Navigate to the folder in which you installed Enterprise Architect (usually Program Files/Sparx Systems/EA)
and select Interop.EA.dll.
4. See the general library documentation on the use of Classes. The following example creates and opens
a repository object:
Java
1. Copy the file SSJavaCOM.dll from the Java API subdirectory of your installed directory (usually Program
Files/Sparx Systems/EA) into any location within the Windows PATH. For example, the windows\system32
directory.
2. Copy the eaapi.jar file from the Java API subdirectory of your installed directory (usually Program Files/
Sparx Systems/EA) to a location in the Java CLASSPATH or where the Java class loader can find it at run
time.
3. All of the Classes described in the documentation are in the package org.sparx. See the general library
documentation 1671 for their use. The following example creates and opens a repository object.
{
org.sparx.Repository r = new org.sparx.Repository();
r.OpenFile("c:\\eatest.eap");
}
2. Select the Enterprise Architect Object Model 2.10 checkbox from the list.
3. Do the same for VB or VB Word: select the checkbox for the Microsoft Word 10.0 Object Library.
4. Click on the OK button.
Note:
If Enterprise Architect Object Model 2.10 does not appear in the list, go to the command line and manually re-
enter Enterprise Architect using the following:
· To unregister Enterprise Architect: ea.exe /unregister
Visual Basic 5/6 users should also note that the version number of the Enterprise Architect interface is stored
in the VBP project file in a form similar to the following:
Reference=*\G{64FB2BF4-9EFA-11D2-8307-C45586000000}#2.2#0#..\..\..\..\Program Files\Sparx Systems\EA\EA.
TLB#Enterprise Architect Object Model 2.02
If you experience problems moving from one version of Enterprise Architect to another, open the VBP file in a
text editor and remove this line. Then open the project in Visual Basic and use Project-References to create
a new reference to the Enterprise Architect Object model.
Reference to objects in Enterprise Architect and Word should now be available in the Object Browser. This
can be accessed from the main menu by selecting View | Object Browser, or by pressing [F2].
The drop-down list on the top-left of the window should now include Enterprise Architect and Word. If MS-
Project is installed this must also be set up.
Enterprise Architect model via the App object enables querying the current User Interface status, such as
using GetContextItem() on the Repository 1680 object to detect the current selection by the user, allowing for
rapid prototyping and testing.
$e Comma separated list of element IDs All elements selected in the current diagram.
$E Comma separated list of element All elements selected in the current diagram.
GUIDs
Once this has been set up, the application can be called from the main menu in Enterprise Architect using the
Tools | YourApplication menu option.
11.2.2 Reference
This section provides detailed information on all the objects available in the object model provided by the
Automation Interface, covering:
· Interface Overview 1672
· App 1674
· Enumerations 1675
· Repository 1679
· Element 1708
· Element Features 1726
· Connector 1738
· Diagram Package 1745
· Project Interface 1753
· Code Samples 1765
public Package
This package provides an overview of the main elements within the Automation Interface. These are:
· The Repository 1679 , which represents the model as a whole and provides entry to model packages and
collections
· Elements 1708 , which are the basic structural unit (such as Class, Use Case and Object)
· Element Features 1726 , which are attributes and operations defined on an element
· Diagram Package 1745 , the visible drawings contained in the model
· Connectors 1738 , relationships between elements.
The following diagram illustrates the main interface elements and their associated contents. Each element in
this document is creatable by Automation and can be accessed through the various collections that exist or, in
some cases, directly.
The following diagram provides a high level overview of the Automation Interface for accessing, manipulating,
modifying and creating elements. The top level object is the Repository, which contains collections for a
variety of system level objects, as well as the main Models collection that provides access to the UML
elements, diagrams and packages within the project. In general, the Role names applied at the Target end of
associations indicate the name of the Collection that is used to access instances of that object.
Internal Links
· Logical diagram:: Automation Interface
Package:: Automation Interface
· Logical diagram:: Automation Interface
Package:: Automation Interface
· Logical diagram:: Automation Interface
Package:: Automation Interface
· Logical diagram:: Automation Interface
Connectors
Connector Source Target
11.2.2.2 App
The App object represents a running instance of Enterprise Architect. Its object provides access to the
Automation Interface.
GetObject() Support
The App object is creatable and a handle can be obtained by creating one. In addition, clients can use the
equivalent of Visual Basic's GetObject() to obtain a reference to a currently running instance of Enterprise
Architect.
Use this method to more quickly test changes to Add-Ins and external clients, as the Enterprise Architect
application and data files do not have to be constantly re-loaded.
For example:
Dim App as EA.App
Set App = GetObject(,"EA.App")
MsgBox App.Repository.Models.Count
Another example, which uses the App object without saving it to a variable:
Dim Rep as EA.Repository
Set Rep = GetObject(, "EA.App").Repository
MsgBox Rep.ConnectionString
11.2.2.3 Enumerations
These enumerations are defined by the Automation Interface:
· ConstLayoutStyles 1675
· CreateBaselineFlag 1676
· CreateModelType 1676
· EAEditionTypes 1676
· EnumRelationSetType 1676
· ExportPackageXMIFlag 1677
· MDGMenus 1677
· ObjectType 1677
· PropType 1678
· ReloadType 1678
· ScenarioDiagramType 1678
· ScenarioStepType 1679
· ScenarioTestType 1679
· XMIType 1679
Method Use to
lsInitializeDFSIn Initialize the layout using the Depth First Search Inward algorithm.
lsInitializeNaive Initialize the layout using the Naïve Initialize Indices algorithm.
lsInitializeDFSOut Initialize the layout using the Depth First Search Outward algorithm.
lsLayeringLongestPathSink Layer the diagram using the Longest Path Sink algorithm.
lsLayeringLongestPathSource Layer the diagram using the Longest Path Source algorithm.
lsLayeringOptimalLinkLength Layer the diagram using the Optimal Link Length algorithm.
Method Use to
Method Use to
cmEAPFromBase Create a copy of the EABase model file to the specified file path.
Method Notes
Method Use to
epSaveToStub Export this package with only immediate children. (Child packages
are included as stubs only.)
Method Use to
otAttribute otPackage
otAttributeConstraint otParameter
otAttributeTag otPartition
otAuthor otProject
otClient otProjectIssues
otCollection otProjectResource
otConnector otProperties
otConnectorConstraint otProperty
otConnectorEnd otPropertyType
otConnectorTag otReference
otConstraint otRepository
otCustomProperty otRequirement
otDatatype otResource
otDiagram otRisk
otDiagramLink otRoleTag
otDiagramObject otScenario
otEffort otScenarioExtension
otElement otScenarioStep
otEventProperties otStereotype
otEventProperty otSwimlane
otFile otSwimlaneDef
otIssue otSwimlanes
otMethod otTaggedValue
otMethodConstraint otTask
otMethodTag otTerm
otMetric otTest
otModel otTransition
otNone
Method Notes
ptEnum A string being an entry in the semi-colon separated list specified in the
validation field of the Property.
Method Notes
rtElement The Item parameter represents a particular element that must be reloaded.
rtEntireModel Entire model must be reloaded to ensure that all changes are reloaded.
rtPackage The Item parameter represents a particular package that must be reloaded.
Method Use to
Method Use to
Method Use to
11.2.2.4 Repository
public Package
The Repository package contains the high level system objects and entry point into the model itself using the
Models collection and the other system level collections.
This diagram illustrates the Repository 1680 and its first level functions and collections.
11.2.2.4.1 Repository
public Class
The Repository is the main container of all structures such as models, packages and elements. You can
iteratively begin accessing the model using the Models collection. It also has some convenient methods to
directly access the structures without having to locate them in the hierarchy first.
Associated table in .EAP file: <none>
Repository Attributes
Attribute Type Notes
Authors Collection 1695 Read only. The system Authors collection. Contains 0 or
more Author objects, each of which can be associated
with, for example, elements or diagrams as the item author
or owner. Use AddNew, Delete and GetAt to manage
Authors.
Clients Collection 1695 Read only. A list of Clients associated with the project. You
can modify, delete and add new Client objects using this
collection.
Datatypes Collection 1695 Read only. The Datatypes collection. Contains a list of
Datatype objects, each representing a data type definition
for either data modeling or code generation purposes.
EAEdition EAEditionTyp Read only. Returns the level of core licensed functionality
es 1676 available to the current repository.
Note:
This property returns Corporate when the edition is
Business and Software Engineering, Systems
Engineering or Ultimate. Use EAEditionEx to identify
which of these extended editions is available.
InstanceGUID String Read only. The identifier string identifying the Enterprise
Architect runtime session.
IsSecurityEnabled Boolean Read only. Checks whether User Security is enabled for
the current repository.
Issues Collection 1695 Read only. The System Issues list. Contains ProjectIssues
objects, each detailing a particular issue as it relates to the
project as a whole.
LastUpdate String Read only. The identifier string identifying the Enterprise
Architect runtime session and the timestamp for when it
was set.
LibraryVersion Long Read only. The build number of the Enterprise Architect
runtime.
Models Collection 1695 Read only. Models are of type package and belong to a
of type collection of packages. This is the top level entry point to
Package 1698 an Enterprise Architect project file. Each model is a root
node in the Project Browser and can contain items such as
Views and packages.
A model is a special form of a package; it has a ParentID
of 0. By iterating through all models, you can access all
the elements within the project hierarchy.
You can also use the AddNew function to create a new
model. A model can be deleted, but remember that
everything contained in the model is deleted as well.
PropertyTypes Collection 1695 Read only. Collection of Property Types 1704 available to
the Repository.
Stereotypes Collection 1695 Read only. The Stereotype 1706 collection. A list of
Stereotype objects that contain information on a
stereotype and which elements it can be applied to.
Tasks Collection 1695 Read only. A list of system tasks (to do list). Each entry is
a Task 1707 Item; you can modify, delete and add new
tasks.
Terms Collection 1695 Read only. The project Glossary. Each Term 1708 object is
an entry in the Glossary. Add, modify and delete Terms to
maintain the Glossary.
Repository Methods
Method Type Notes
ActivateDiagram (long Activates an already open diagram (that is, makes it the
DiagramID) active tab) in the main Enterprise Architect user interface.
Parameters:
· DiagramID: Long - the ID of the diagram to make
active.
ActivatePerspective (string, Boolean Deprecated - no longer in use.
long)
AddTab (string TabName, activeX Adds an ActiveX custom control as a tabbed window.
string ControlID) custom Enterprise Architect creates a control and, if successful,
control returns its Unknown pointer, which can be used by the caller
to manipulate the control.
Parameters:
· TabName: String - used as the tab caption.
· ControlID: String - the ProgID of the control; for
example, Project1,UserControl1.
AddWindow (string activeX Adds an ActiveX custom control as a window to the Add-Ins
WindowName, string custom docked window. Enterprise Architect creates a control and,
ControlID) control if successful, returns its Unknown pointer, which can be
used by the caller to manipulate the control.
The window can be shown by selecting it from the list in the
Workspace Layouts 86 toolbar - click on the third icon from
the right and look at the end of the list.
Parameters:
· WindowName: String - used as the window title.
· ControlID: String - the ProgID of the control; for
example, Project1,UserControl1.
AdviseConnectorChange (long Provides an Add-In or automation client with the ability to
ConnectorID) advise the Enterprise Architect user interface that a
particular connector has changed and, if it is visible in any
open diagram, to reload and refresh that connector for the
user.
Parameters:
· ConnectorID: Long - the ID of the connector.
AdviseElementChange (long Provides an Add-In or automation client with the ability to
advise the Enterprise Architect user interface that a
Notes:
· This method cannot be undone. It is strongly advised
that you call SaveAuditLogs first to backup the logs.
· This method might fail if the user logged into the model
does not have the correct access permission.
Parameters:
· StartDateTime: Variant [DateTime] - the earliest date
and time of log entries to clear.
· EndDateTime; Variant [DateTime] - the latest date and
time of log entries to clear.
ClearOutput (string Name) Removes all the text from a tab in the Output window. See
also CreateOutputTab 1685 , EnsureOutput Visible 1685 ,
WriteOutput 1693 .
Parameters:
· Name: String - the name of the tab to remove text from.
CloseAddins () Called by automation controllers to ensure that Add-Ins
created in
.NET do not linger after all controller references to
Enterprise Architect have been cleared.
CreateModel Boolean Creates a new .eap model file based on the standard
(CreateModelType CreateType, Enterprise Architect Base model, or a shortcut .eap based
string FilePath, long on a provided SQL connection.
ParentWnd) Returns true when the new file is created, otherwise returns
false.
Parameters:
· CreateType: CreateModelType 1676 - Specify whether to
Parameters:
· Name: String - the name of the tab to create.
DeletePerspective (string Boolean Deprecated - no longer in use.
Perspective, long Options)
DeleteTechnology (string ID) Boolean Removes a specified MDG Technology resource from the
repository.
Returns true, if the technology is successfully removed from
the model. Returns false otherwise.
Note:
This applies to technologies imported into pre-7.0 versions
of Enterprise Architect (imported technologies), not to
technologies referenced in version 7.0 and later
(referenced technologies). See Deploy an MDG
Technology 1147 (from Add-Ins).
Parameters:
· ID: String - the ID of the technology.
EnsureOutputVisible (string Ensures that a specified tab in the Output window is visible
Name) to the user. The Output window is made visible if it is
hidden. See also ClearOutput 1684 , CreateOutputTab 1685 ,
WriteOutput 1693 .
Parameters:
· Name: String - the name of the tab to make visible.
ExecutePackageBuildScript Enables you to run the active package build script based on
(long ScriptOptions, string your current selection in the Project Browser. You can also
PackageGuid) run a script by passing in the package GUID.
Parameters:
· ScriptOptions: Long - the script type; can be any one of
these numerical values:
1 = Build
2 = Test
3 = Run
4 = Create Workbench Instance
5 = Debug.
· PackageGuid: String - the ID of the package for which
to run the script.
Exit Shuts down Enterprise Architect immediately. Used by .NET
programmers where the garbage collector does not
immediately release all referenced COM objects.
GetCounts () String Returns a set of counts from a number of tables within the
base Enterprise Architect repository. These can be used to
determine whether records have been added or deleted
from the tables for which information is retrieved.
1746
GetDiagramByGuid (string Diagram Returns a pointer to a diagram using the global reference ID
Guid) 1746 (global ID). This is usually found using the diagram GUID
property of an element, and stored for later use to open an
diagram without using the collection GetAt() function.
Parameters:
· Guid: String - the GUID of the diagram to locate.
GetDiagramByID (long Diagram Gets a pointer to a diagram using an absolute reference
DiagramID) 1746 number (local ID). This is usually found using the DiagramID
property of an element, and stored for later use to open a
diagram without using the collection GetAt() function.
Parameters:
· DiagramID: Long - the ID of the diagram to locate.
GetElementByGuid (string Element Returns a pointer to an element in the repository, using the
Guid) 1711 element's GUID reference number (global ID). This is
usually found using the ElementGUID property of an
element, and stored for later use to open an element without
using the collection GetAt() function.
Parameters:
· Guid: String - the GUID of the element to locate.
GetElementByID (long Element Gets a pointer to an element using an absolute reference
ElementID) 1711 number (local ID). This is usually found using the ElementID
property of an element, and stored for later use to open an
element without using the collection GetAt() function.
Parameters:
· ElementID: Long - the ID of the element to locate.
GetElementsByQuery (string Enables the user to run a search in Enterprise Architect,
QueryName, string returning the result as a collection.
SearchTerm) For example GetElementsByQuery('Simple','Class1'), where
results contain elements with Class1 in the Name and
Notes fields.
Parameters:
· QueryName: String - the name of the search to run, for
example 'Simple'.
· SearchTerm: String - the term to search for.
GetElementSet (string IDList, Collection Returns a set of elements as a collection based on a
long Options) 1695 comma-separated list of ElementID values. By default, if no
values are provided in the IDList parameter, all objects for
the entire project are returned.
Parameters
· IDList: String - a comma-separated list of ElementID
values
· Options: Long - modifies default behaviour of this
method
GetMethodByGuid (string Method 1732 Returns a pointer to a method in the repository. This is
Guid) usually found using the MethodGUID property of a method.
Parameters:
· Guid: String - the GUID of the method to look for.
GetMethodById (string Id) Method 1732 Returns a pointer to a method in the repository. This is
usually found using the MethodID property of a method.
Parameters:
· Id: String - the ID of the method to look for.
GetPackageByGuid (string Package Returns a pointer to a package in the repository using the
Guid) 1698 package's GUID reference number (global ID). This is
usually found using the PackageGUID property of the
package.
Each package in the model also has an associated element
with the same GUID, so if you have an element with
Type="Package" then you can load the package by calling:
GetPackageByGuid(Element.ElementGUID).
Parameters:
· Guid: String - the GUID of the package to look for.
GetPackageByID (long Package Get a pointer to a package using an absolute reference
PackageID) 1698 number (local ID). This is usually found using the
PackageID property of an package, and stored for later use
GetReferenceList (string Type) Reference Uses the list type to get a pointer to a Reference List object.
1705
Parameters:
· Type: String - specifies the list type to get; valid list
types are:
Diagram
Element
Constraint
Requirement
Connector
Status
Cardinality
Effort
Metric
Scenario
Status and
Test.
GetTechnologyVersion (string String Returns the version of a specified MDG Technology
ID) resource.
Parameters:
· ID: String - the specified technology ID.
GetTreeSelectedElements() Collection Returns the set of elements currently selected in the Project
1695 Browser as a collection.
GetTreeSelectedItem (object ObjectTyp Gets an object variable and type corresponding to the
SelectedItem) e 1677 currently selected item in the tree view.
To use this function, create a generic object variable and
pass this as the parameter. Depending on the return type,
cast it to a more specific type.
The object passed back through the parameter can be a
package, element, diagram, attribute or operation object.
Parameters:
· SelectedItem: Object - the object to get the variable
and type for.
GetTreeSelectedItemType () ObjectTyp Returns the type of the object currently selected in the tree.
e 1677 One of:
· otDiagram
· otElement
· otPackage
· otAttribute
· otMethod.
GetTreeSelectedObject () Object The related method GetTreeSelectedItem 1689 () has an
output parameter that is inaccessible by some scripting
GetTreeSelectedPackage () Package Returns the package in which the currently selected tree
1698 view object is contained.
Note:
This applies to technologies imported into pre-7.0 versions
of Enterprise Architect (imported technologies), not to
technologies referenced in version 7.0 and later
(referenced technologies). See Deploy an MDG
Technology 1147 (from Add-Ins).
Parameters:
· Technology: String - the contents of the technology
resource file.
IsTabOpen (string TabName) String Checks whether a named Enterprise Architect tabbed view
is open and active. This includes open diagram windows or
custom controls added using Repository.AddTab() 1683 .
Returns:
· 2 to indicate that a tab is open and active (top-most)
· 1 to indicate that it is open but not top-most, or
· 0 to indicate that it is not visible at all.
Note:
TabName is case-sensitive.
Parameters:
· TabName: String - the name of the tab to check for.
IsTechnologyEnabled (string Boolean Checks whether a specified technology is enabled in
ID) Enterprise Architect.
Returns True if the MDG Technology resource is enabled.
Otherwise returns False.
Parameters:
· ID: String - the technology ID to check for.
IsTechnologyLoaded (string Boolean Checks whether a specified technology is loaded into the
ID) repository.
Returns True if the MDG Technology resource is loaded into
the repository. Otherwise returns False.
Parameters:
· ID: String - the technology ID to check for.
OpenDiagram (long Provides a method for an automation client or Add-In to
DiagramID) open a diagram. The diagram is added to the tabbed list of
open diagrams in the main Enterprise Architect view.
Parameters:
· DiagramID: Long - the ID of the diagram to open.
OpenFile (string Filename) Boolean This is the main point for opening an Enterprise Architect
project file from an automation client, and working with the
contained objects.
If the required project is a DBMS repository, and you have
created a shortcut .EAP file containing the database
connection string, you can call this shortcut file to access
the DBMS repository.
You can also connect to a SQL database by passing in the
connection string itself instead of a filename. A valid
connection string can be obtained from the Open Project 114
dialog by selecting a recently opened SQL repository.
Parameters:
· Filename: String - the filename of the Enterprise
Architect project to open.
OpenFile2 (string FilePath, Boolean As for OpenFile() except this enables the specification of a
string Username, string password.
Password)
Parameters:
· Filepath: String - the file path of the Enterprise Architect
project to open.
· Username: String - the user login ID
· Password: String - the user password.
RefreshModelView (long Reloads a package or the entire model, updating the user
PackageID) interface.
Parameters:
· PackageID: Long - the ID of the package to reload: if 0,
the entire model is reloaded; if a valid package ID, only
that package is reloaded.
RefreshOpenDiagrams Refreshes the diagram contents for all diagrams open in
(boolean FullReload) Enterprise Architect.
Parameters:
· FullReload: Boolean - if false the displayed contents of
elements and connectors are refreshed in each
diagram; if true each of the diagrams is completely
reloaded from the repository.
ReloadDiagram (long Reloads a specified diagram. This would commonly be used
DiagramID) to refresh a visible diagram after code import/export or other
batch process where the diagram requires complete
refreshing.
Parameters:
· DiagramID: Long - the ID of the diagram to be
reloaded.
RemoveOutputTab (string Removes a specified tab from the Output window.
Name)
Parameters:
SaveAuditLogs (string Boolean Saves the Audit Logs contained within a model to a
FilePath, object specified file.
StartDateTime, object If StartDateTime and EndDateTime are not null then only log
EndDateTime) items that fall into this period are saved.
Returns true for success, false for failure.
Note:
This might fail if the user logged into the model does not
have the correct access permission.
Parameters:
· FilePath: String - the file to save the Audit Logs to.
· StartDateTime: Variant [DateTime] - the earliest date
and time of log entries to save.
· EndDateTime; Variant [DateTime] - the latest date and
time of log entries to save.
SaveDiagram (long DiagramID) Saves an open diagram. Assumes the diagram is open in
the main user interface Tab list.
Parameters:
· DiagramID: Long - the ID of the diagram to save.
ShowDynamicHelp (string Shows a help topic as a view.
Topic)
Parameters:
· Topic: String - specifies the help topic.
ShowInProjectView (object Selects a specified object in the Project Browser.
Item)
Accepted object types are Package, Element, Diagram,
Attribute, and Method. An exception is thrown if the object is
of an invalid type.
Parameters:
· Item: Object - the object to highlight.
ShowProfileToolbox (string Shows/hides the contents of a specified technology or
Technology, string Profile, profile in the Toolbox.
boolean Show) To show/hide a profile in the Toolbox, specify the profile's ID
value in the Profile parameter and set the Technology
parameter to a null string.
To show/hide a technology in the Toolbox, specify the
11.2.2.4.2 Author
public Class
An Author object represents a named model author. Accessed using the Repository Authors collection.
Associated table in .EAP file: t_authors
Author Attributes
Attribute Type Notes
ObjectType ObjectType Read only. Distinguishes objects referenced through a Dispatch interface.
1677
Roles String Read/Write. Roles the author might play in this project.
Author Methods
Method Type Notes
GetLastError () String Returns a string value describing the most recent error that occurred in
relation to this object.
This function is rarely used as an exception is thrown when an error
occurs.
Update () Boolean Updates the current Author object after modification or appending a new
item. If false is returned, check the GetLastError function for more
information.
11.2.2.4.3 Client
public Class
A Client represents one or more people or organizations related to the project. Accessed using the Repository
Clients collection.
Associated table in .EAP file: t_clients
Client Attributes
Attribute Type Notes
ObjectType ObjectType Read only. Distinguishes objects referenced through the Dispatch
1677 interface.
Roles String Read/Write. Roles this client might play in the project.
Client Methods
Method Type Notes
GetLastError () String Returns a string value describing the most recent error that occurred in
relation to this object.
This function is rarely used as an exception is thrown when an error occurs.
Update () Boolean Updates the current Client object after modification or appending a new
item. If false is returned, check the GetLastError function for more
information.
11.2.2.4.4 Collection
public Class
This is the main collection Class used by all elements within the Automation Interface. It contains methods to
iterate through the collection, refresh the collection and delete an item from the collection. It is important to
realize that when AddNew is called, the item is not automatically added to the current collection. The typical
steps are:
1. Call AddNew to add a new item.
2. Modify the item as required.
3. Call Update on the item to save it to the database.
4. Call Refresh on the collection to include it in the current set.
Delete is much the same; until Refresh is called, the collection still contains a reference to the deleted item,
which should not be called.
Each can be used to iterate through the collection for languages that support this type of construct.
Collection Attributes
Attribute Type Notes
Count Short Read only. The number of objects referenced by this list.
Collection Methods
Method Type Notes
Refresh () Void Refreshes the collection by re-querying the model and reloading the
collection. Should be called after adding a new item or after deleting
an item.
11.2.2.4.5 Datatype
public Class
A Datatype is a named type that can be associated with attribute or method types. It typically is related to
either code engineering or database modeling. Datatypes also indicate which language or database system
they relate to. Accessed using the Repository Datatypes collection.
Associated table in .EAP file: t_datatypes
Datatype Attributes
Attribute Type Notes
DatatypeID Long Read/Write. Instance ID for this datatype within the current model.
System maintained.
GenericType String Read/Write. The associated generic type for this data type.
Name String Read/Write. The datatype name (such as integer). This appears in the
related drop-down datatype lists where appropriate.
Product String Read/Write. The datatype product, such as Java, C++, Oracle.
Type String Read/Write. The type can be DDL for database datatype or Code for
language datatypes.
Datatype Methods
Method Type Notes
GetLastError () String Returns a string value describing the most recent error that occurred in
relation to this object.
This function is rarely used as an exception is thrown when an error
occurs.
Update () Boolean Updates the current Datatype object after modification or appending a
new item.
If false is returned, check the GetLastError function for more information.
11.2.2.4.6 EventProperties
An EventProperties object is passed to BroadcastFunctions to facilitate parameter passing.
EventProperties Attributes
Attribute Type Notes
Count Long Read only. Number of parameters being passed to this broadcast event.
ObjectType ObjectType 1677 Read only. Distinguishes objects referenced through a Dispatch
interface.
EventProperties Methods
Method Type Notes
Get (object EventProperty Read only. Returns an EventProperty in the list, raising an error if Index
Index) 1697 is out of range.
Parameters:
· Index: Variant - can either be a number representing a zero-based
index into the array, or a string representing the name of the
EventProperty. For example, Props.Get(3) or Props.Get("ObjectID").
11.2.2.4.7 EventProperty
EventProperty objects are always part of an EventProperties 1697 collection, and are passed to Add-In methods
responding to broadcast events 1787 .
EventProperty Attributes
Attribute Type Notes
Name String A string distinguishing this property from others in the list.
1677
Value Variant A string, number or object reference representing the property value.
11.2.2.4.8 ModelWatcher
public Class
The ModelWatcher object enables an automation client to track changes in a particular model.
Note:
After your model has been loaded, you only create the ModelWatcher once. If you reload 267 the model, or
load another model, the created ModelWatcher is still valid.
ModelWatcher Attributes
Attribute Type Notes
ModelWatcher Methods
Methods Type Notes
GetReloadItem ReloadType The object that must be reloaded in order to see all changes is returned
(object Item) 1678 through the Item parameter. If there are no changes or the entire model
must be reloaded, this value is returned as null (C#) or Nothing (VB).
Calling this method clears the records so that the next time it is called the
return values refer only to new changes.Returns a value from the
ReloadType enumeration that specifies which type of change, if any, has
occurred.
Parameters:
· Item: Object
PeekReloadItem ReloadType This method behaves identically to GetReloadItem() but does not clear
1678 the change record.
11.2.2.4.9 Package
public Class
A Package object corresponds to a Package element in the Enterprise Architect Project Browser. It is
accessed either through the Repository Models 1682 collection (a Model is a special form of Package) or
through the Package Packages 1700 collection. Note that a Package has an Element object as an attribute; this
corresponds to an Enterprise Architect Package element in the t_object table and is used to associate
additional information (such as scenarios and constraints) with the logical package. To set additional
information for a package, reference the Element object directly. Also note that if you add a Package to a
diagram, you should add an instance of the element (not the Package itself) to the DiagramObjects collection
for a diagram.
Associated table in .EAP file: t_package
Package Attributes
Attribute Type Notes
BatchLoad Long Read/Write. Flag to indicate that the package is batch loaded
during batch import from controlled packages. Not currently
used.
Element Element 1711 Read only. The associated element object. Use to get/set
common information such as Stereotype, Complexity, Alias,
Author, Constraints, Tagged Values and Scenarios.
IsVersionControlled Boolean Read. Indicates whether or not this package is under version
control.
LastLoadDate Date Read/Write. The date XML was last loaded for the package.
LastSaveDate Date Read/Write. The date XML was last saved from the package.
PackageGUID Variant Read only. The global Package ID. Valid across models.
PackageID Long Read only. The local Package ID number. Valid only in this
model file.
ParentID Long Read/Write. The ID of the package that is the parent of this
one. 0 indicates this package is a model (that is, it has no
parent).
TreePos Long Read/Write. The relative position in the tree compared to other
packages (use to sort packages).
UMLVersion String Read/Write. The UML version for XMI export purposes.
XMLPath String Read/Write. The path to where the XML is saved when using
controlled packages.
Package Methods
Method Type Notes
ApplyGroupLock (string Boolean Applies a group lock to the package object, for the specified
aGroupName) group, on behalf of the current user.
Throws an exception if the operation fails. Use GetLastError()
to retrieve error information.
Parameter:
· aGroupName: String - The name of the security group for
which to apply the lock.
ApplyUserLock () Boolean Applies a user lock to the package object for the current user.
Throws an exception if the operation fails. Use GetLastError()
to retrieve error information.
Clone LDISPATCH Inserts a copy of the package into the same parent as the
original package.
Returns the newly-created package.
ReleaseUserLock () Boolean Removes an existing User or Group lock from the package
object.
VersionControlAdd (string Void Places the package under version control, using the specified
ConfigGuid, string Version Control Configuration and the specified XMI filename.
XMLFile, string Comment, Throws an exception if the operation fails. Use GetLastError( )
boolean to retrieve error information.
KeepCheckedOut)
It is recommended that the package be saved using Update()
before calling VersionControlAdd(), so that any outstanding
changes are not lost.
Parameters:
· ConfigGuid: String - Name corresponding to the Unique
ID of the version control configuration to use.
· XMLFile: String - Name of the XML file to use for this
package. This filename is relative to the Working Copy
folder specified for the Config.
· Comment: String - Log message that is added to the
version controlled file's history (where applicable).
· KeepCheckedOut: Boolean - Specify True to add to
version control and keep package checked-out.
VersionControlCheckin Void Perform checkin of the version controlled package.
(string Comment)
Throws an exception if the operation fails. Use GetLastError( )
to retrieve error information.
Parameters:
· Comment: String - Log message that is added to the
version controlled file's history (where applicable).
VersionControlCheckout Void Perform checkout of the version controlled package.
(string Comment)
Throws an exception if the operation fails. Use GetLastError( )
to retrieve error information.
Parameters:
· Comment: String - Log message that is added to the
version controlled file's history (where applicable).
VersionControlGetLatest Updates the local working copy of the package file associated
(boolean ForceImport) with the object package, before re-importing the package data
from the package file.
Parameters:
· ForceImport: Boolean - Used if the package data in the
model is found to be up-to-date with respect to the version
controlled package file. If:
· False, the package data that exists in the model is
accepted as being up-to-date and no attempt is made to
re-import data from the package file
VersionControlGetStatus Long Returns the version control status of the package. Throws an
() exception if the operation fails. Use GetLastError( ) to retrieve
error information.
Return value maps to the following enumerated type:
enum EnumCheckOutStatus
{
csUncontrolled = 0,
csCheckedIn,
csCheckedOutToThisUser,
csReadOnlyVersion,
csCheckedOutToAnotherUser,
csOfflineCheckedIn,
csCheckedOutOfflineByUser,
csCheckedOutOfflineByOther,
csDeleted,
};
csUncontrolled - Either unable to communicate with the
version control provider associated with the package or the
package file is unknown to the provider.
csReadOnlyVersion - Package is marked as read-only. An
earlier revision of the package has been retrieved from version
control.
csOfflineCheckedOutToThisUser - Indicates that the package
was 'checked out' by this user whilst disconnected from version
control.
csOfflineNotCheckedOutToThisUser - Indicates that Enterprise
Architect can not currently connect to the version control config
and the package was not previously checked out to this user.
csDeleted - The package file has been deleted from version
control.
VersionControlResynchPk Synchronizes 267 the version control status of the single object
gStatus (boolean package recorded in your current model with the package
ClearSettings) status reported by your version control provider.
Parameters:
· ClearSettings: Boolean - used if the package file associated
11.2.2.4.10 ProjectIssues
public Class
A system-level Issue. Indicates a problem or risk associated with the system as a whole. Accessed using the
Repository Issues collection.
Associated table in .EAP file: t_issues
ProjectIssues Attributes
Attribute Type Notes
Name String Read/Write. Issue name (that is, the issue itself).
ObjectType ObjectType Read only. Distinguishes objects referenced through a Dispatch interface.
1677
Priority String Read/Write. Issue priority. Generally should use Low, Medium or High.
Severity String Read/Write. Issue severity. Should be marked as Low, Medium or High.
ProjectIssues Methods
Method Type Notes
GetLastError () String Returns a string value describing the most recent error that occurred in
relation to this object.
This function is rarely used as an exception is thrown when an error
occurs.
Update () Boolean Update the current Issue object after modification or appending a new
item. If false is returned, check the GetLastError function for more
information.
11.2.2.4.11 ProjectResource
public Class
A Project Resource is a named person who is available to work on the current project in any capacity.
Accessed using the Repository Resources collection.
Associated table in .EAP file: t_resources
ProjectResource Attributes
Attribute Type Notes
ObjectType ObjectType 1677 Read only. Distinguishes objects referenced through a Dispatch
interface.
Roles String The roles this resource can play in the current project.
ProjectResource Methods
Method Type Notes
GetLastError () String Returns a string value describing the most recent error that occurred in
relation to this object.
This function is rarely used as an exception is thrown when an error
occurs.
Update () Boolean Update the current Resource object after modification or appending a
new item. If false is returned, check the GetLastError function for more
information.
11.2.2.4.12 PropertyType
public Class
A PropertyType object represents a defined property that can be applied to UML elements as a Tagged Value.
Accessed using the Repository PropertyTypes collection. Each PropertyType corresponds to one of the
predefined Tagged Values for the model.
Associated table in .EAP file: t_propertytypes
Author Attributes
Attribute Type Notes
ObjectType ObjectType 1677 Read only. Distinguishes objects referenced through a Dispatch
interface.
Author Methods
Method Type Notes
GetLastError () String Returns a string value describing the most recent error that occurred in
relation to this object.
This function is rarely used as an exception is thrown when an error
occurs.
Update () Boolean Update the current PropertyType object after modification or appending
a new item. If false is returned, check the GetLastError function for
more information.
11.2.2.4.13 Reference
public Class
This Interface provides access to the various lookup tables within Enterprise Architect. Use the Repository
GetReferenceList() method to get a handle to a list. Valid lists are:
· Diagram
· Element
· Constraint
· Requirement
· Connector
· Status
· Cardinality
· Effort
· Metric
· Scenario
· Status
· Test
Reference Attributes
Attribute Type Notes
Reference Methods
Method Type Notes
Parameters:
· Index: Short - The index of the item to retrieve from the list.
GetLastError () String Returns a string value describing the most recent error that occurred in
relation to this object.
This function is rarely used as an exception is thrown when an error
occurs.
Refresh () Short Refresh the current list and return the count of items.
11.2.2.4.14 Stereotype
public Class
The Stereotype element corresponds to a UML stereotype, which is an extension mechanism for varying the
behavior and type of a model element. Use the Repository Stereotypes collection to add new elements and
delete existing ones.
Associated table in .EAP file: t_stereotypes
Stereotype Attributes
Attribute Type Notes
AppliesTo String Read/Write. A reference to the stereotype Base Class, that is, which
element it applies to.
Name String Read/Write. The stereotype name. Appears in the Stereotype drop list
for elements that match the AppliesTo attribute.
StereotypeGUID String Read/Write. Unique identifier for stereotype, generally set and
maintained by Enterprise Architect.
Stereotype Methods
Method Type Notes
GetLastError () String Returns a string value describing the most recent error that occurred in
relation to this object.
This function is rarely used as an exception is thrown when an error
occurs.
Update () Boolean Update the current stereotype object after modification or appending a
new item. If false is returned, check the GetLastError function for more
information.
11.2.2.4.15 Task
public Class
A Task is an entry in the System ToDo list. Accessed using the Repository Tasks collection.
Associated table in .EAP file: t_tasks
Task Attributes
Attribute Type Notes
ActualTime Long Read/Write. Time already expended on task, in hours, days or other units.
AssignedTo String Read/Write. Person this task is assigned to; that is, the responsible
resource.
History String Read/Write. Memo field to hold, for example, task history or notes.
ObjectType ObjectType Read only. Distinguishes objects referenced through a Dispatch interface.
1677
Phase String Read/Write. The phase of the project the task relates to.
TotalTime Long Read/Write. The total expected time the task might run - in hours, days or
some other unit.
Task Methods
Method Type Notes
GetLastError String Returns a string value describing the most recent error that occurred in
() relation to this object.
This function is rarely used as an exception is thrown when an error occurs.
Update () Boolean Update the current Task object after modification or appending a new item.
If false is returned, check the GetLastError function for more information.
11.2.2.4.16 Term
public Class
A Term object represents one entry in the system glossary. Accessed using the Repository Terms collection.
Associated table in .EAP file: t_glossary
Term Attributes
Attribute Type Notes
ObjectType ObjectType Read only. Distinguishes objects referenced through a Dispatch interface.
1677
TermID Long Read only. A local ID number to identify the term in the model.
Type String Read/Write. The type this term applies to (for example, business or
technical).
Term Methods
Method Type Notes
GetLastError () String Returns a string value describing the most recent error that occurred in
relation to this object.
This function is rarely used as an exception is thrown when an error
occurs.
Update () Boolean Update the current Term object after modification or appending a new
item. If false is returned, check the GetLastError function for more
information.
11.2.2.5 Element
public Package
The Element package contains information about an element and its associated extended properties such as
testing and project management information. An element is the basic item in an Enterprise Architect model.
Classes, Use Cases and Components are all different types of UML element.
The diagram below illustrates the relationships between an element and its associated extended information.
The related information is accessed through the collections owned by the element (for example, Scenarios
and Tests). It also includes a full description of the element object (the basic model structural unit).
11.2.2.5.1 Constraint
public Class
A Constraint is a condition imposed on an element. Constraints are accessed through the Element Constraints
collection.
Associated table in .EAP file: t_objectconstraints
Constraint Attributes
Attribute Type Notes
Name String Read/Write. The name of the constraint (that is, the constraint).
ObjectType ObjectType Read only. Distinguishes objects referenced through a Dispatch interface.
1677
ParentID Long Read only. The ElementID of the element to which this constraint applies.
Constraint Methods
Method Type Notes
GetLastError () String Returns a string value describing the most recent error that occurred in
relation to this object.
This function is rarely used as an exception is thrown when an error
occurs.
Update () Boolean Update the current Constraint object after modification or appending a
new item. If false is returned, check the GetLastError function for more
information.
11.2.2.5.2 Effort
public Class
An Effort is a named item with a weighting that can be associated with an element for purposes of building
metrics about the model. Accessed through the Element Efforts collection.
Associated table in .EAP file: t_objecteffort
Effort Attributes
Attribute Type Notes
ObjectType ObjectType Read only. Distinguishes objects referenced through a Dispatch interface.
1677
Effort Methods
Method Type Notes
GetLastError () String Returns a string value describing the most recent error that occurred in
relation to this object.
This function is rarely used as an exception is thrown when an error
occurs.
11.2.2.5.3 Element
public Class
An Element is the main modeling unit. It corresponds to (for example) Class, Use Case, Node or Component.
You create new elements by adding to the Package Elements collection. Once you have created an element,
you can add it to the DiagramObjects collection of a diagram to include it in the diagram.
Elements also have a collection of connectors. Each entry in this collection indicates a relationship to another
element.
There are also some extended collections for managing addition information about the element, including
things such as Tagged Values, Issues, Constraints and Requirements.
Associated table in .EAP file: t_object
Element Attributes
Attribute Type Notes
Attributes Collection 1695 Read only. Collection of Attribute objects for current element.
Use the AddNew and Delete functions to manage attributes.
AttributesEx Collection 1695 Read only. Collection of Attribute objects belonging to the
current element and its parent elements.
Author String Read/Write. The element author (see the Repository: Authors
1680 list for more details).
BaseClasses Collection 1695 Read only. List of Base Classes for this element presented as a
collection for convenience.
CompositeDiagram Diagram 1746 Read only. If the element is Composite, returns its associated
diagram; otherwise returns null.
Connectors Collection 1695 Read only. Returns a collection containing the connectors to
other elements.
ConstraintsEx Collection 1695 Read only. Collection of Constraint objects belonging to the
current element and its parent elements.
CustomProperties Collection 1695 Read only. List of advanced properties for an element. The
collection of advanced properties differs depending on element
type; for example, an Action and an Activity have different
advanced properties. Currently only editable from the user
interface.
Difficulty String Read/Write. A difficulty level associated with this element for
estimation/metrics; only useable for Requirement, Change and
Issue element types, otherwise ignored.
Valid values are: Low, Medium, High.
ElementGUID String Read only. A globally unique ID for this element; that is, unique
across all model files. If you have to set this value manually,
you should only do so when the element is first created, and
make sure you format the GUID exactly as Enterprise Architect
expects.
ElementID Long Read only. The local ID of the Element. Valid for this file only.
Elements Collection 1695 Read only. Returns a collection of child elements (sub-
elements) attached to this element as seen in the tree view.
EmbeddedElements Collection 1695 Read only. List of elements that are embedded into this
element, such as Ports, Parts, Pins and Parameter Sets.
GenFile String Read/Write. The file associated with this element for code
generation and synchronization purposes. Can include macro
expansion tags for local conversion to full path.
GenType String Read/Write. The code generation type; for example, Java, C++,
C#, VBNet, Visual Basic, Delphi.
Header1 Variant Read/Write. A user defined string for inclusion as header in the
source files generated.
Header2 Variant Read/Write. Same as for Header1, but used in the CPP source
file.
Locked Boolean Read/Write. Indicates if the element has been locked against
further change.
Methods Collection 1695 Read only. Collection of Method objects for current element.
MethodsEx Collection 1695 Read only. Collection of Method objects belonging to the
current element and its parent elements.
Metrics Collection 1695 Read only. Collection of Metric elements for current element.
MiscData String Read only. This low-level property provides information about
the contents of the PDatax fields. These database fields are not
documented and developers must gain understanding of these
fields through their own endeavors to use this property.
MiscData is zero based, therefore:
· MiscData(0) corresponds to PData1
· MiscData(1) to PData2
and so on.
Modified Date Read/Write. The date the element was last modified.
Name String Read/Write. The element name; should be unique within the
current package.
PackageID Long Read/Write. A local ID for the package containing this element.
Partitions Collection 1695 Read only. List of logical partitions into which an element can
be divided. Only valid for elements that support partitions, such
as Activities and States.
Persistence String Read/Write. The persistence associated with this element. Can
be Persistent or Transient.
Properties Properties 1736 Returns a list of specialized properties that apply to the element
that might not be available using the automation model. The
properties are purposely undocumented because of their
obscure nature and because they are subject to change as
progressive enhancements are made to them.
Realizes Collection 1695 Read only. List of Interfaces realized by this element for
convenience.
RequirementsEx Collection 1695 Read only. Collection of Requirement 1719 objects belonging to
the current element and its parent elements.
Resources Collection 1695 Read only. Collection of Resource 1720 objects for current
element.
Scenarios Collection 1695 Read only. Collection of Scenario 1722 objects for current
element.
StateTransitions Collection 1695 Read only. List of State Transitions that an element can
support. Applies in particular to Timing elements.
Stereotype String Read/Write. The primary element stereotype. This is the first of
the list of stereotypes you can access using the StereotypeEx
attribute.
StyleEx String Read/Write. Advanced style settings. Reserved for the use of
Sparx Systems.
Subtype Long Read/Write. A numeric subtype that qualifies the Type 1715 of
Note:
If 17, because an Association Class has been created through
the user interface, MiscData(3) will contain the ID of the
related Association. As MiscData is read-only, you cannot
create an Association Class through the Automation Interface.
TaggedValues Collection 1695 Read only. Returns a collection of TaggedValue 1724 objects.
of type
TaggedValue
1724
TaggedValuesEx Collection 1695 Read only. Returns a collection of TaggedValue 1724 objects
of type belonging to the current element and the elements specialized
TaggedValue or realized by the current element.
1724
Tests Collection 1695 Read only. Collection of Test 1725 objects for current element.
Action InteractionOccurrence
Activity InteractionState
ActivityPartition Interface
ActivityRegion InterruptibleActivityRegion
Actor Issue
Artifact Node
Association Note
Boundary Object
Change Package
Class Parameter
Collaboration Part
Component Port
Constraint ProvidedInterface
Decision Report
DeploymentSpecification RequiredInterface
DiagramFrame
Requirement
EmbeddedElement
Screen
Entity
Sequence
EntryPoint
State
Event
StateNode
ExceptionHandler
Synchronization
ExitPoint
Text
ExpansionNode
TimeLine
ExpansionRegion
UMLDiagram
GUIElement
UseCase
InteractionFragment
Visibility String Read/Write. The Scope of this element within the current
package.
Valid values are: Public, Private, Protected or Package.
Element Methods
Method Type Notes
ApplyGroupLock (string Boolean Applies a group lock to the element object, for the specified
aGroupName) group, on behalf of the current user.
Throws an exception if the operation fails. Use GetLastError() to
retrieve error information.
Parameter:
· aGroupName: String - the name of the user group for
which to set the group lock.
ApplyUserLock () Boolean Applies a user lock to the element object for the current user.
Throws an exception if the operation fails. Use GetLastError() to
retrieve error information.
GetLastError () String Returns a string value describing the most recent error that
occurred in relation to this object.
This function is rarely used as an exception is thrown when an
error occurs.
LoadLinkedDocument Boolean Loads the RTF document from the specified file into the
(string Filename) element's linked document.
Parameter:
· FileName: String - the name of the file from which to load
the RTF document.
Refresh () Void Refreshes the element features in the Project Browser. Usually
called after adding or deleting attributes or methods, when the
user interface is required to be updated as well.
ReleaseUserLock () Boolean Releases a user lock or group lock on the element object.
Throws an exception if the operation fails. Use GetLastError() to
retrieve error information.
SaveLinkedDocument Boolean Saves the linked document for this element to the specified
(string Filename) RTF file.
Parameter:
· FileName: String - the name of the RTF file to which to
save the linked document.
SetAppearance (long Void Sets the visual appearance of the element.
Scope, long Item, long
Parameter:
Value)
· Scope: Long - Scope of appearance set to modify
0 – Background color
1 – Font Color
2 – Border Color
3 – Border Width
· Value: Long - Value to set appearance to.
Update () Boolean Update the current element object after modification or
appending a new item.
If false is returned, check the GetLastError function for more
information.
11.2.2.5.4 File
public Class
A File represents an associated file for an element. It is accessed through the Element Files collection.
Associated table in .EAP file: t_objectfiles
File Attributes
Attribute Type Notes
Name String Read/Write. The file name can be a logical file or a reference to a web
address (using http://).
ObjectType ObjectTyp Read only. Distinguishes objects referenced through a Dispatch interface.
e 1677
File Methods
Method Type Notes
GetLastError String Returns a string value describing the most recent error that occurred in relation
() to this object.
This function is rarely used as an exception is thrown when an error occurs.
Update () Boolean Update the current File object after modification or appending a new item. If
false is returned, check the GetLastError function for more information.
public Class
An Issue is either a Change or a Defect, is associated with the containing element, and is accessed through
the Issues collection of an element.
Associated table in .EAP file: t_objectproblems
Issue Attributes
Attribute Type Notes
Name String Read/Write. The Issue name; that is, the Issue itself.
ObjectType ObjectType Read only. Distinguishes objects referenced through a Dispatch interface.
1677
Priority String Read/Write. Issue priority. Generally should use Low, Medium and High.
Severity String Read/Write. Issue severity. Should be marked as Low, Medium or High.
Type Variant Read/Write. Issue type - can be Defect or Change, Issue and ToDo.
Version String Read/Write. Version associated with issue. Note that this method is only
available through a Dispatch interface. For example:
Object ob = Issue;
Issue Methods
Method Type Notes
GetLastError () String Returns a string value describing the most recent error that occurred in
relation to this object.
This function is rarely used as an exception is thrown when an error occurs.
Update () Boolean Update the current Issue object after modification or appending a new item.
If false is returned, check the GetLastError function for more information.
11.2.2.5.6 Metric
public Class
A Metric is a named item with a weighting that can be associated with an element for purposes of building
metrics about the model. Accessed through the Element Metrics collection.
Associated table in .EAP file: t_objectmetrics
Metric Attributes
Attribute Type Notes
Weight Long Read/Write. A user defined weighting for estimation or metric purposes.
Metric Methods
Method Type Notes
GetLastError () String Returns a string value describing the most recent error that occurred in
relation to this object.
This function is rarely used as an exception is thrown when an error
occurs.
Update () Boolean Update the current Metric object after modification or appending a new
item. If false is returned, check the GetLastError function for more
information.
11.2.2.5.7 Requirement
public Class
An Element Requirement object holds information about the responsibilities of an element in the context of the
model. Accessed using the Element Requirements collection.
Associated table in .EAP file: t_objectrequires
Requirement Attributes
Attribute Type Notes
ObjectType ObjectType Read only. Distinguishes objects referenced through a Dispatch interface.
1677
ParentID Long Read only. The ElementID of the element to which this requirement
applies.
Requirement Methods
Method Type Notes
GetLastError () String Returns a string value describing the most recent error that occurred in
relation to this object.
This function is rarely used as an exception is thrown when an error
occurs.
Update () Boolean Update the current Requirement object after modification or appending a
new item. If false is returned, check the GetLastError function for more
information.
11.2.2.5.8 Resource
public Class
An Element Resource is a named person/task pair with timing constraints and percent complete indicators.
Use this to manage the work associated with delivering an Element.
Associated table in .EAP file: t_objectresources
Resource Attributes
Attribute Type Notes
ActualHours Long Read/Write. Time already expended on the task, in hours, days or other
units.
ExpectedHours Long Read/Write. The total expected time the task might run, in hours, days
or other units.
Resource Methods
Method Type Notes
GetLastError () String Returns a string value describing the most recent error that occurred in
relation to this object.
This function is rarely used as an exception is thrown when an error
occurs.
Update () Boolean Update the current Resource object after modification or appending a
new item. If false is returned, check the GetLastError function for more
information.
11.2.2.5.9 Risk
public Class
A Risk object represents a named risk associated with an element and is used for project management
purposes. Accessed through the Element Risks collection.
Associated table in .EAP file: t_objectrisks
Risk Attributes
Attribute Type Notes
ObjectType ObjectType Read only. Distinguishes objects referenced through a Dispatch interface.
1677
Type String Read/Write. The risk type associated with this element.
Risk Methods
Method Type Notes
GetLastError String Returns a string value describing the most recent error that occurred in
() relation to this object.
This function is rarely used as an exception is thrown when an error occurs.
Update () Boolean Update the current Risk object after modification or appending a new item. If
false is returned, check the GetLastError function for more information.
11.2.2.5.10 Scenario
public Class
A Scenario corresponds to a Collaboration or Use Case instance. Each Scenario is a path of execution
through the logic of a Use Case. Scenarios can be added to using the Element Scenarios collection.
Associated table in .EAP file: t_objectscenarios
Scenario Attributes
Attribute Type Notes
Notes String Read/Write. Description of the Scenario. Usually contains the steps to
execute the scenario.
ObjectType ObjectType Read only. Distinguishes objects referenced through a Dispatch interface.
1677
ScenarioGUID String Read/Write. A unique ID for the Scenario. Used to identify the Scenario
unambiguously within a model.
Steps Collection of Read only. A collection of step objects for this Scenario. Use the AddNew
ScenarioStep 1695 and Delete functions to manage steps. AddNew passes the step
Type String Read/Write. The scenario type (for example, Basic Path).
Weight Long Read/Write. Currently used to position scenarios in the scenario list (that
is, List Position).
XMLContent String Read/Write. A structured field that can contain scenario details in XML
format. It is recommended that you use the Steps 1722 collection to read
or modify this field.
Scenario Methods
Method Type Notes
GetLastError String Returns a string value describing the most recent error that occurred in
() relation to this object.
This function is rarely used as an exception is thrown when an error
occurs.
Update () Boolean Update the current Scenario object after modification or appending a new
item. If false is returned, check the GetLastError function for more
information.
11.2.2.5.11 ScenarioExtension
ScenarioExtension Attributes
Attribute Type Notes
Join String Read/Write. The GUID of the step where this Extension rejoins the
Scenario.
JoiningStep ScenarioStep Read only. The actual step where this Extension rejoins the Scenario, if
1723 any.
Level String Read only. The number of this Extension as shown in the scenario editor.
This is derived from the value of Pos for this object and the owning step.
Note:
This should match the name of the linked scenario.
ObjectType ObjectType Read only. Distinguishes objects referenced through a Dispatch interface.
1677
Pos Long Read/Write. The position of the Extension in the Extensions list
Scenario Scenario 1722 Read only. The scenario that is executed as an alternative path for this
Extension.
ScenarioExtension Methods
Method Type Notes
GetLastError String Returns a string value describing the most recent error that occurred in
() relation to this object.
This function is rarely used as an exception is thrown when an error
occurs.
11.2.2.5.12 ScenarioStep
ScenarioStep Attributes
Attribute Type Notes
Extensions Collection of Read only. A collection of ScenarioExtension objects that specify how
ScenarioExtens the scenario is extended from this step. The arguments to AddNew 1695
ion 1723 should match the name and GUID of the alternative scenario being
linked to.
Level String Read only. The number of this Step as shown in the scenario editor. This
is derived from the value of Pos.
Link String Read/Write. The GUID of a Use Case that is relevant to this step.
LinkedElemen Element 1711 Read only. The actual element specified by Link, if any.
ObjectType ObjectType 1677 Read only. Distinguishes objects referenced through a Dispatch
interface.
Pos Long Read/Write. The position of the Step in the Scenario Step list.
Results String Read/Write. Any results that are given from this step.
State String Read/Write. A description of the state the system enters when this Step
is executed.
StepType ScenarioStepT Read/Write. Identifies whether this step is being performed by a user or
ype 1679 the system.
Uses String Read/Write. Input and requirements that are relevant to this step.
ScenarioStep Methods
Method Type Notes
GetLastError String Returns a string value describing the most recent error that occurred in
() relation to this object.
This function is rarely used as an exception is thrown when an error
occurs.
Update () Boolean Update the current ScenarioStep object after modification or appending a
new item. If false is returned, check the GetLastError function for more
information.
11.2.2.5.13 TaggedValue
public Class
A TaggedValue is a named property and value associated with an element. It is accessed through the
TaggedValues collection.
Associated table in .EAP file: t_objectproperties
TaggedValue Attributes
Attribute Type Notes
ObjectType ObjectType Read only. Distinguishes objects referenced through a Dispatch interface.
1677
TaggedValue Methods
Method Type Notes
GetLastError() String Returns a string value describing the most recent error that occurred in
relation to this object.
This function is rarely used as an exception is thrown when an error
occurs.
Update() Boolean Update the current TaggedValue object after modification or appending a
new item. If false is returned, check the GetLastError function for more
information.
11.2.2.5.14 Test
public Class
A Test is a single Test Case applied to an element. Tests are added and accessed through the Element Tests
collection.
Associated table in .EAP file: t_objecttests
Test Attributes
Attribute Type Notes
Test Methods
Method Type Notes
GetLastError () String Returns a string value describing the most recent error that occurred in
relation to this object.
This function is rarely used as an exception is thrown when an error
occurs.
Update () Boolean Update the current Test object after modification or appending a new
item. If false is returned, check the GetLastError function for more
information.
public Package
The ElementFeatures package contains descriptions of the model interfaces that enable access to operations
and attributes, and their associated Tagged Values and constraints.
This diagram illustrates the components associated with element features. These include Attributes and
Methods, and the associated constraints and Tagged Values related to them. It also includes the Parameter
object that defines the arguments associated with an operation (method).
11.2.2.6.1 Attribute
public Class
An attribute corresponds to a UML Attribute. It contains further collections for constraints and Tagged Values.
Attributes are accessed from the Element Attributes collection.
Associated table in .EAP file: t_attribute
Attribute Attributes
Attribute Type Notes
AllowDuplicate Boolean Read/Write. Indicates if duplicates are allowed in the collection. If the
s attribute represents a database column, this when set represents the Not
Null option.
AttributeGUID String Read/Write. A globally unique ID for the current attribute. System
generated.
ClassifierID Long Read/Write. Classifier ID, if appropriate; indicates the base type
associated with attribute, if not a primitive type.
Constraints Collection Read only. A collection of AttributeConstraint objects. Used to access and
1695 manage constraints associated with this attribute.
IsCollection Boolean Read/Write. Indicates if the current feature is a collection or not. If the
attribute represents a database column, this when set represents a
Foreign Key.
IsDerived Boolean Read/Write. Indicates if the attribute is derived (that is, a calculated value).
IsStatic Boolean Read/Write. Indicates if the current attribute is a static feature or not. If the
attribute represents a database column, this when set represents the
Unique option.
ObjectType ObjectType Read only. Distinguishes objects referenced through a Dispatch interface.
1677
ParentID Long Read only. Returns the ElementID of the element that this attribute is a
part of.
Pos Long Read/Write. Position of the attribute in the Class attribute list.
Stereotype String Read/Write. Sets or gets the stereotype for this attribute.
StereotypeEx String Read/Write. All the applied stereotypes of the attribute in a comma-
separated list.
Style String Read/Write. Contains the Alias property for this attribute.
StyleEx String Read/Write. Advanced style settings. Reserved for the use of Sparx
Systems.
TaggedValues Collection Read only. A collection of AttributeTag objects. Use to access and manage
1695 of type Tagged Values associated with this attribute.
AttributeTag
1730
TaggedValuesE Collection Read only. Collection of TaggedValue objects belonging to the current
x 1695 of type attribute and the TaggedValuesEx property of its classifier.
TaggedValu
e 1724
Type String Read/Write. The attribute type (by name; also see ClassifierID).
Visibility String Read/Write. The scope of the attribute. Can be Private, Protected, Public
or Package.
Attribute Methods
Method Type Notes
GetLastError () String Returns a string value describing the most recent error that occurred in
relation to this object.
This function is rarely used as an exception is thrown when an error
occurs.
Update () Boolean Updates the current attribute object after modifying or appending a new
item. If false is returned, check the GetLastError function for more
information.
11.2.2.6.2 AttributeConstraint
public Class
An AttributeConstraint is a constraint associated with the current Attribute.
Associated table in .EAP file: t_attributeconstraints
AttributeConstraint Attributes
Attribute Type Notes
ObjectType ObjectType 1677 Read only. Distinguishes objects referenced through a Dispatch
interface.
AttributeConstraint Methods
Method Type Notes
GetLastError () String Returns a string value describing the most recent error that occurred
in relation to this object.
This function is rarely used as an exception is thrown when an error
occurs.
11.2.2.6.3 AttributeTag
public Class
An AttributeTag represents a Tagged Value associated with an attribute.
Associated table in .EAP file: t_attributetag
AttributeTag Attributes
Attribute Type Notes
AttributeID Long Read/Write. Local ID of attribute associated with this Tagged Value.
AttributeTag Methods
Method Type Notes
GetLastError () String Returns a string value describing the most recent error that occurred in
relation to this object.
This function is rarely used as an exception is thrown when an error
occurs.
Update () Boolean Update the current AttributeTag object after modification or appending
a new item. If false is returned, check the GetLastError function for
more information.
11.2.2.6.4 CustomProperties
public Collection
The CustomProperties collection contains 0 or more Cust Properties associated with the current element.
These properties provide advanced UML configuration options, and must not be added to or deleted. The
value of each property can be set.
Note:
The number and type of properties vary depending on the actual element.
CustomProperty
Attribute Type Notes
ObjectType ObjectType Read only. Distinguishes objects referenced through a Dispatch interface.
1677
Value String Read/Write. The value associated with this custom property. Can be a string,
the boolean values true or false, or an enumeration value from a defined
list. The UML 2.3 specification in general provides information on
enumeration kinds relevant here.
11.2.2.6.5 EmbeddedElements
public Collection
In UML 2.3 an element can have one or more embedded elements such as Ports, Pins, Parameters or
ObjectNodes. These are attached to the boundary of the host element and cannot be moved off the element.
They are owned by their host element. This collection gives easy access to the set of elements embedded on
the surface of an element. Note that some embedded elements can have their own embedded element
collection (for example, Ports can have Interfaces embedded on them).
The EmbeddedElements collection contains Element objects.
11.2.2.6.6 Method
public Class
A method represents a UML operation. It is accessed from the Element Methods collection and includes
collections for parameters, constraints and Tagged Values.
Associated table in .EAP file: t_operation
Method Attributes
Attribute Type Notes
Abstract Boolean Read/Write. Flag indicating if the method is abstract (1) or not (0).
Behavior String Read/Write. Some further explanatory behavior notes (for example,
pseudocode).
Note:
In earlier releases of Enterprise Architect this attribute had the UK/
Australian spelling 'Behaviour'; this is still present for backwards
compatibility, but please now use the 'Behavior' attribute for consistency.
Code String Read/Write. Optional field to hold the method Code (used for the Initial
Code field).
IsLeaf Boolean Read/Write. Flag to indicate if the method is Leaf (cannot be overridden).
IsPure Boolean Read/Write. Flag indicating the method is defined as Pure in C++.
IsQuery Boolean Read/Write. Flag to indicate if the method is a query (that is, does not
alter Class variables).
MethodGUID String Read/Write. A globally unique ID for the current method. System
generated.
MethodID Long Read only. A local ID for the current method, only valid within this .EAP
file.
Parameters Collection 1695 Read only. The Parameters collection for the current method. Use to add
and access parameter objects for the current method.
ParentID Long Read only. Returns the ElementID of the element that this method
belongs to.
Pos Long Read/Write. Specifies the position of the method within the set of
PostConditions Collection 1695 Read only. PostConditions (constraints) as they apply to this method.
Returns a MethodConstraint object of type post.
PreConditions Collection 1695 Read only. PreConditions (constraints) as they apply to this method.
Returns a MethodConstraint object of type pre.
ReturnType String Read/Write. Return type for the method; can be a primitive data type or a
Class or Interface type.
StereotypeEx String Read/Write. All the applied stereotypes of the method in a comma-
separated list.
Style String Read/Write. Contains the Alias property for this method.
StyleEx String Read/Write. Advanced style settings. Reserved for the use of Sparx
Systems.
TaggedValues Collection 1695 Read only. TaggedValues collection for the current method. Accesses a
of type list of MethodTag objects.
MethodTag
1734
Visibility String Read/Write. The method scope: Public, Protected, Private or Package.
Method Methods
Method Type Notes
GetLastError () String Returns a string value describing the most recent error that occurred in
relation to this object.
This function is rarely used as an exception is thrown when an error
occurs.
Update () Boolean Update the current method object after modification or appending a new
item. If false is returned, check the GetLastError function for more
information.
11.2.2.6.7 MethodConstraint
public Class
A MethodConstraint is a condition imposed on a method. It is accessed through either the Method
PreConditions or Method PostConditions collection.
Associated table in .EAP file: t_operationpres and t_operationposts
MethodConstraint Attributes
Attribute Type Notes
MethodConstraint Methods
Method Type Notes
GetLastError () String Returns a string value describing the most recent error that occurred in
relation to this object.
This function is rarely used as an exception is thrown when an error
occurs.
11.2.2.6.8 MethodTag
public Class
A MethodTag is a Tagged Value associated with a method.
Associated table in .EAP file: t_operationtag
MethodTag Attributes
Attribute Type Notes
ObjectType ObjectType Read only. Distinguishes objects referenced through a Dispatch interface.
1677
MethodTag Methods
Method Type Notes
GetLastError () String Returns a string value describing the most recent error that occurred in
relation to this object.
This function is rarely used as an exception is thrown when an error
occurs.
Update () Boolean Update the current MethodTag object after modification or appending a
new item. If false is returned, check the GetLastError function for more
information.
11.2.2.6.9 Parameter
public Class
A Parameter object represents a method argument and is accessed through the Method Parameters
collection.
Associated table in .EAP file: t_operationparams
Parameter Attributes
Attribute Type Notes
IsConst Boolean Read/Write. Flag indicating the parameter is Const (cannot be altered).
Kind String Read/Write. The parameter kind - in, inout, out, return.
Name String Read/Write. The parameter name; must be unique for a single method.
ObjectType ObjectType Read only. Distinguishes objects referenced through a Dispatch interface.
1677
OperationID Long Read only. ID of the method associated with this parameter.
ParameterGUI String Read/Write. A globally unique ID for the current Parameter. System
D generated.
StereotypeEx String Read/Write. All the applied stereotypes of the parameter in a comma-
separated list.
StyleEx String Read/Write. Advanced style settings. Reserved for the use of Sparx
Systems.
Type Variant Read/Write. The parameter type; can be a primitive type or defined
classifier.
Parameter Methods
Method Type Notes
GetLastError String Returns a string value describing the most recent error that occurred in
() relation to this object.
This function is rarely used as an exception is thrown when an error occurs.
Update () Boolean Update the current Parameter object after modifying or appending a new
item. If false is returned, check the GetLastError function for more
information.
11.2.2.6.10 Partitions
public Collection
A collection of internal element partitions (regions). This is commonly seen in Activity 753 , State 789 , Boundary
836 , Diagram Frame 766 and similar elements. Not all elements support partitions.
This collection contains a set of Partition elements. The set is read/write: information is not saved until the host
element is saved, so ensure that you call the Element.Save method after making changes to a Partition.
Partition Attributes
Attribute Type Notes
Name String Read/Write. The partition name; can represent a condition or constraint in
some cases.
Note String Read/Write. A free text note associated with this partition.
ObjectType ObjectType Read only. Distinguishes objects referenced through a Dispatch interface.
1677
Operator String Read/Write. An optional operator value that specifies the partition type.
11.2.2.6.11 Properties
Properties
Properties Attributes
Count Long The number of properties that are available for this object.
ObjectType ObjectType 1677 Read only. Distinguishes objects referenced through a Dispatch
interface.
Properties Methods
Item (object Index) Property Returns a property either by name or by zero-based integer offset
into the list of properties.
Parameter:
· Index: Variant - either a string representing the property name
or an integer representing the zero-based offset into the
property list.
Property
Property Attributes
Name String Read only. Identifies the property. The object to which the
properties list applies can have an automation property with the
same name, in which case the data accessed through Value is
identical to that obtained through the automation property.
ObjectType ObjectType 1677 Read only. Distinguishes objects referenced through a Dispatch
interface.
Type PropType 1678 Read only. Provides an indication of what sort of data is going to
be stored by this property. This restriction can be further defined by
the Validation attribute.
Validation String Read only. Optional string that is used to validate any data that is
passed to the Value attribute. This string is used by the
programmer at run time to provide an indication of what's
expected, and by Enterprise Architect to ensure that the submitted
data is appropriate.
Value Variant Read/write. The value of the property as defined in the other fields.
11.2.2.6.12 Transitions
public Collection
Applies only to Timeline elements. A Timeline element displays 0 or more state transitions at set times on its
extent. This collection enables you to access the transition set. You can also access additional information by
referring to the connectors associated with the Timeline, and by referencing messages passed between
timelines. Note that any changes made to elements in this collection are only saved when the main element is
saved.
Transition Attributes
Attribute Type Notes
DurationConstra String Read/Write. A constraint on the time duration that the transition takes.
int
ObjectType ObjectType Read only. Distinguishes objects referenced through a Dispatch interface.
1677
TimeConstraint String Read/Write. A constraint on when the transition has to be complete by.
TxState String Read/Write. The state to transition to. Defined in the Timeline Properties
dialog.
TxTime String Read/Write. The time that the transition occurs. Value depends on range
set in diagram.
11.2.2.7 Connector
public Package
The Connector package details how connectors between elements are accessed and managed.
11.2.2.7.1 ConnectorConstraint
public Class
A ConnectorConstraint holds information about special conditions that apply to a connector. It is accessed
through the Connector Constraints collection.
Associated table in .EAP file: t_connectorconstraints
ConnectorConstraint Attributes
Attribute Type Notes
ObjectType ObjectType Read only. Distinguishes objects referenced through a Dispatch interface.
1677
ConnectorConstraint Methods
Method Type Notes
GetLastError String Returns a string value describing the most recent error that occurred in relation
() to this object.
This function is rarely used as an exception is thrown when an error occurs.
Update () Boolean Update the current ConnectorConstraint object after modification or appending
a new item. If false is returned, check the GetLastError function for more
information.
11.2.2.7.2 Connector
public Class
A Connector object represents the various kinds of connectors between UML elements. It is accessed from
either the Client or Supplier element, using the Connectors collection of that element. When creating a new
connector you must assign it a valid type from the following list:
· Aggregation
· Assembly
· Association
· Collaboration
· CommunicationPath
· Connector
· ControlFlow
· Delegate
· Dependency
· Deployment
· ERLink
· Generalization
· InformationFlow
· Instantiation
· InterruptFlow
· Manifest
· Nesting
· NoteLink
· ObjectFlow
· Package
· Realization
· Sequence
· StateFlow
· UseCase
Associated table in .EAP file: t_connector
Connector Attributes
Attribute Type Notes
ClientEnd ConnectorEn Read only. A pointer to the ConnectorEnd object representing the source
d 1742 end of the relationship.
ClientID Long Read/Write. ElementID of the element at the source end of this
connector.
ConnectorGUID Variant Read only. A globally unique ID for the current connector. System
generated.
ConnectorID Long Read only. Local identifier for the current connector. System generated.
CustomProperti Collection 1695 Read only. Returns a collection of advanced properties associated with
es an element in the form of CustomProperty 1730 objects.
Direction String Read/Write. Connector direction. Can be set to one of the following:
· Unspecified
· Bi-Directional
· Source -> Destination
· Destination -> Source
EndPointX Long Read/Write. The x-coordinate of the connector's end point.
Note:
Connector end points are specified in Cartesian coordinates with the
origin to the top left of the screen.
Note:
Connector end points are specified in Cartesian coordinates with the
origin to the top left of the screen.
EventFlags String Read/Write. Structure to hold a variety of flags concerned with event
signaling on messages.
MetaType String Read only. The connector's domain-specific meta type, as defined by an
applied stereotype from an MDG Technology.
MiscData String Read only. This low-level property provides information about the
contents of the PDatax fields. These database fields are not
documented and developers must gain understanding of these fields
Properties Properties 1736 Returns a list of specialized properties that apply to the connector that
might not be available using the automation model. The properties are
purposely undocumented because of their obscure nature and because
they are subject to change as progressive enhancements are made to
them.
Note:
Connector end points are specified in Cartesian coordinates with the
origin to the top left of the screen.
Note:
Connector end points are specified in Cartesian coordinates with the
origin to the top left of the screen.
StateFlags String Read/Write. Structure to hold a variety of flags concerned with State
signaling on messages, the list delimited by semi-colons.
Stereotype String Read/Write. Sets or gets the stereotype for this connector end.
StereotypeEx String Read/Write. All the applied stereotypes of the connector in a comma-
separated list.
StyleEx String Read/Write. Advanced style settings. Reserved for the use of Sparx
Systems.
Subtype String Read/Write. A possible subtype to refine the meaning of the connector.
SupplierEnd ConnectorEn Read only. A pointer to the ConnectorEnd object representing the target
d 1742 end of the relationship.
SupplierID Long Read/Write. ElementID of the element at the target end of this
connector.
TransitionActio String Read/Write. See the Transition 892 topic for appropriate values.
n
TransitionEvent String Read/Write. See the Transition 892 topic for appropriate values.
TransitionGuard String Read/Write. See the Transition 892 topic for appropriate values.
Type String Read/Write. Connector type. Valid types are held in the
t_connectortypes table in the .EAP file.
Connector Methods
Method Type Notes
GetLastError () String Returns a string value describing the most recent error that occurred in
relation to this object.
This function is rarely used as an exception is thrown when an error
occurs.
MiscData (long String Read only. This low-level property provides information about the contents
Index) of the PDatax fields. These database fields are not documented and
developers must gain understanding of these fields through their own
endeavors to use this property.
MiscData is zero based, therefore:
· MiscData(0) corresponds to PData1
· MiscData(1) to PData2
Parameters:
· Index: long - the zero based index of the PData field to access.
Update () Boolean Update the current ConnectorObject after modification or appending a new
item. If false is returned, check the GetLastError function for more
information.
11.2.2.7.3 ConnectorEnd
public Class
A ConnectorEnd contains information about a single end of a connector. A ConnectorEnd is accessed from
the connector as either the ClientEnd or SupplierEnd.
Associated table in .EAP file: derived from t_connector
ConnectorEnd Attributes
Attribute Type Notes
Aggregation Long Read/Write. Aggregation as it applies to this end. Valid values are:
0 = None
1 = Shared
2 = Composite.
Alias String Read/Write. An optional alias for this connector end.
AllowDuplicates Boolean Read/Write. For multiplicities greater than 1, indicates that duplicate
entries are possible.
Constraint String Read/Write. A constraint that can be applied to this connector end.
Derived Boolean Read/Write. Indicates that the value of this end is derived.
DerivedUnion Boolean Read/Write. Indicates the value of this role derived from the union of
all roles that subset this.
End String Read only. The end this ConnectorEnd object applies to: Client or
Supplier.
IsChangeable String Read/Write. Flag indicating whether this end is changeable or not.
Values: frozen, addOnly or none.
IsNavigable Boolean Read/Write. Flag indicating this end is navigable from the other end.
RoleNote String Read/Write. Notes associated with the role of this connector end.
RoleType String Read/Write. The role type applied to this end of the connector.
Stereotype String Read/Write. Sets or gets the stereotype for this connector end.
StereotypeEx String Read/Write. All the applied stereotypes of the connector end in a
comma-separated list.
Visibility String Read/Write. Scope associated with this connector end. Valid types
are: Public, Private, Protected and Package.
ConnectorEnd Methods
Method Type Notes
GetLastError () String Returns a string value describing the most recent error that occurred
in relation to this object.
This function is rarely used as an exception is thrown when an error
occurs.
11.2.2.7.4 ConnectorTag
public Class
A ConnectorTag is a Tagged Value for a connector and is accessed through the Connector TaggedValues
collection.
Associated table in .EAP file: t_connectortag
ConnectorTag Attributes
Attribute Type Notes
ConnectorTag Methods
Method Type Notes
GetLastError () String Returns a string value describing the most recent error that occurred in
relation to this object.
This function is rarely used as an exception is thrown when an error
occurs.
Update () Boolean Update the current ConnectorTag object after modification or appending
a new item. If false is returned, check the GetLastError function for
more information.
11.2.2.7.5 RoleTag
public Class
This interface provides access to the association Role Tagged Values. Each connector end has a RoleTag
collection that can be accessed to add, delete and access the RoleTags.
In code you create something that resembles the following (where con is a Connector Object):
Code fragment for accessing a RoleTag in VB.NET:
client = con.ClientEnd
client.Role = "m_client"
client.Update()
tag = client.TaggedValues.AddNew("tag", "value")
tag.Update()
RoleTag Attributes
Attribute Type Notes
ElementGUID String Read/Write. GUID of the connector with which this role tag is associated.
ObjectType ObjectType Read only. Distinguishes objects referenced through a Dispatch interface.
1677
PropertyGUID String Read/Write. A system generated GUID to identify the Tagged Value.
RoleTag Methods
Method Type Notes
GetLastError String Returns a string value describing the most recent error that occurred in
() relation to this object.
This function is rarely used as an exception is thrown when an error occurs.
Update () Boolean Update the RoleTag after changes or on initial creation. If false is returned,
check the GetLastError function for more information.
11.2.2.8 Diagram
public Package
The Diagram package has information on a diagram and on DiagramObjects and DiagramLinks, which are the
instances of elements within a diagram.
11.2.2.8.1 Diagram
public Class
A Diagram corresponds to a single Enterprise Architect diagram. It is accessed through the Package
Diagrams collection and in turn contains a collection of diagram objects and diagram connectors. Adding to
the DiagramObjects collection adds an element to the diagram (the element must already exist). When adding
a new diagram, you must set the diagram type to a valid type; these are:
· Activity
· Analysis
· Component
· Custom
· Deployment
· Logical
· Sequence
· Statechart
· Use Case
Note:
Use the Analysis type for a Collaboration Diagram.
Diagram Attributes
Attribute Type Notes
DiagramLinks Collection Read only. A list of DiagramLink objects, each containing information
1695 about the display characteristics of a connector in a diagram.
Note:
A DiagramLink is only created once a user modifies a connector in a
diagram in some way. Until this condition has been met default values
are used and the DiagramLink is not in use.
HighlightImports Boolean Read/Write. Flag to indicate elements from other packages should be
highlighted.
IsLocked Boolean Read/Write. Flag indicating whether this diagram is locked or not.
MetaType String Read only. The diagram's domain-specific meta type, as defined by an
MDG Technology.
ModifiedDate Variant Read/Write. The date the diagram was last modified.
ObjectType ObjectTyp Read only. Distinguishes objects referenced through a Dispatch interface.
e 1677
PackageID Long Read/Write. An ID of the package that this diagram belongs to.
ParentID Long Read/Write. An optional ID of an element that 'owns' this diagram; for
example, a Sequence diagram owned by a Use Case.
SelectedConnector Connector Read/Write. The currently selected connector on this diagram. Null if
1739 there is no currently selected diagram.
SelectedObjects Collection Read only. Gets a collection representing the currently selected elements
1695 on the diagram. Can remove objects from this collection to deselect them,
and add elements to the collection by passing the Object ID as a name to
select them.
ShowDetails Long Read/Write. Flag to indicate Diagram Details text should be shown. 1 =
Show, 0 = Hide.
ShowPackageCont Boolean Read/Write. Flag to indicate package contents should be shown in the
ents current diagram.
Stereotype String Read/Write. Sets or gets the stereotype for this diagram.
StyleEx String Read/Write. Advanced style settings. Reserved for the use of Sparx
Systems.
Type String Read only. The diagram type. See the t_diagramtypes table in the .EAP
file for more information.
Diagram Methods
Method Type Notes
ApplyGroupLock Boolean Applies a group lock to this diagram object, for the specified group, on
(string behalf of the current user.
aGroupName) Throws an exception if the operation fails. Use GetLastError() to retrieve
error information.
Parameter:
· aGroupName: String - the name of the user group for which to set the
group lock.
ApplyUserLock () Boolean Applies a user lock to this diagram object, for the current user.
Throws an exception if the operation fails. Use GetLastError() to retrieve
error information.
GetLastError () String Returns a string value describing the most recent error that occurred in
relation to this object.
This function is rarely used as an exception is thrown when an error
occurs.
ReleaseUserLock Boolean Releases a group lock or user lock on this diagram object.
()
Throws an exception if the operation fails. Use GetLastError() to retrieve
error information.
ReorderMessages Void Resets the display order of Sequence and Collaboration messages.
() Typically used after inserting or deleting messages in the diagram.
ShowAsElementLi Boolean Toggles the diagram display between diagram format and Element List
st (bool depending on the value of ShowAsList.
ShowAsList, bool
If Persist is set, the display format is written to the database so the
Persist) diagram always opens in that format (diagram or list). Otherwise, the
display format falls back to the default (diagram) once the display is
closed.
Parameters:
· ShowAsList: Boolean - indicates diagram or Element List
· Persist: Boolean - indicates set (maintain ShowAsList value) or not
(revert to default).
Update () Boolean Updates this diagram object after modification or appending a new item.
If false is returned, use GetLastError() to retrieve error information.
11.2.2.8.2 DiagramLinks
public Class
A DiagramLink is an object that holds display information about a connector between two elements in a
specific diagram. It includes, for example, the custom points and display appearance. Accessed from the
Diagram DiagramLinks 1747 collection.
Associated table in .EAP file: t_diagramlinks
DiagramLinks Attributes
Attribute Type Notes
Geometry String Read/Write. The geometry associated with the current connector in this
diagram.
InstanceID Long Read only. Holds the connector identifier for the current model.
ObjectType ObjectType Read only. Distinguishes objects referenced through a Dispatch interface.
1677
Style String Read/Write. Additional style information; for example, color, thickness.
DiagramLinks Methods
Method Type Notes
GetLastError String Returns a string value describing the most recent error that occurred in
() relation to this object.
This function is rarely used as an exception is thrown when an error occurs.
Update () Boolean Update the current DiagramLink object after modification or appending a
new item.
11.2.2.8.3 DiagramObjects
public Class
The DiagramObjects collection holds a list of element IDs and presentation information that indicates what is
displayed in a diagram and how it is shown.
Associated table in .EAP file: t_diagramobjects
DiagramObjects Attributes
Attribute Type Notes
ElementID Long Read/Write. The ElementID of the object instance in this diagram.
InstanceID Long Read/Write. Read only attribute. Holds the connector identifier for the
current model.
ObjectType ObjectType Read only. Distinguishes objects referenced through a Dispatch interface.
1677
Sequence Long Read/Write. The sequence position when loading into diagram (affects Z
order). The Z-order is one-based and the lowest value is in the
foreground.
Style Variant Write only (reading this value gives undefined results). Style information
for this object.
See Setting the Style 1750 below for more information.
DiagramObjects Methods
Method Type Notes
GetLastError () String Returns a string value describing the most recent error that occurred in
relation to this object.
This function is rarely used as an exception is thrown when an error
occurs.
Update () Boolean Update the current DiagramObject object after modification or appending
a new item.
If false is returned, check the GetLastError function for more information.
where:
· BCol = Background Color
· BFol = Font Color
· LCol = Line Color
· LWth = Line Width
The color value is a decimal representation of the hex RGB value, where Red=FF, Green=FF00 and
Blue=FF0000. For example:
DiagObj.Style = "BCol=35723;BFol=9342520;LCol=9342520;LWth=1;"
The following code snippet shows how you might change the style settings for all of the objects in the current
diagram, in this case changing everything to red.
For Each aDiagObj In aDiag.DiagramObjects
aDiagObj.Style = "BCol=255;BFol=9342520;LCol=9342520;LWth=1;"
aDiagObj.Update
aRepos.ReloadDiagram aDiagObj.DiagramID
Next
11.2.2.8.4 SwimlaneDef
A SwimlaneDef object makes available attributes relating to a single row or column in a list of swimlanes.
LineWidth Long Read/Write. Width of line, in pixels, used to draw swimlanes. Valid
values: 1, 2 or 3.
Locked Boolean Read/Write. If set to true, disables user modification of the swimlanes via
the diagram.
ObjectType ObjectType Read only. Distinguishes objects referenced through a Dispatch interface.
1677
Orientation String Read/Write. Indication of whether the swimlanes are vertical or horizontal.
ShowInTitleBar Boolean Read/Write. Enables vertical swimlane titles to be shown in title bar.
11.2.2.8.5 Swimlanes
A Swimlanes object is attached to a diagram's SwimlaneDef 1751 object and provides a mechanism to access
individual swimlanes.
Swimlanes Attributes
Attribute Type Notes
1677 interface.
Swimlanes Methods
Method Type Notes
Add (string Title, Swimlane 1752 Adds a new swimlane to the end of the list. Returns a swimlane object
long Width) representing the newly added entry.
Parameters:
· Title: String - The title text that appears at the top of the swimlane.
Can be the same as an existing swimlane title.
· Width: Long - The width of the swimlane in pixels.
Delete (object Void Deletes a selected swimlane.
Index)
If the string matches more than one entry, only the first entry is deleted.
Parameter:
· Index: Object - Either a string representing the title text or an
integer representing the zero-based index of the swimlane to
delete.
DeleteAll () Void Removes all swimlanes.
Insert (long Swimlane 1752 Inserts a swimlane at a specific position.Returns a swimlane object
Index, string representing the newly added entry.
Title, long Width) Parameters:
· Index: Long - The zero-based index of the existing Swimlane before
which this new entry is inserted.
· Title: String - The title text which appears at the top of the
swimlane. Can be the same as an existing swimlane title.
· Width: Long - The width of the swimlane in pixels.
Items (object Swimlane 1752 Accesses an individual swimlane.
Index) collection
If the string matches more than one swimlane title, the first matching
swimlane is returned.
Parameter:
· Index: Object - Either a string representing the title text or an
integer representing the zero-based index of the swimlane to get.
11.2.2.8.6 Swimlane
A Swimlane object makes available attributes relating to a single row or column in a list of swimlanes 1751 .
BackColor Long Read/Write. The swimlane is filled with this RGB color.
ClassifiedGuid String Read/Write. The GUID of the classifier Class. This can be obtained from
the corresponding Element object via the ElementGUID property.
ObjectType ObjectType Read only. Distinguishes objects referenced through a Dispatch interface.
1677
public Package
The Enterprise Architect.Project interface. This is the XML-based interface to Enterprise Architect elements; it
also includes some utility functions. You can get a pointer to this interface using the Repository.
GetProjectInterface method.
11.2.2.9.1 Project
public Class
The Project interface can be accessed from the Repository using GetProjectInterface(). The returned interface
provides access to the XML-based Enterprise Architect Automation Interface. Use this interface to get XML for
the various internal elements and to run some utility functions to perform tasks such as load diagrams or run
reports.
Note:
These methods all require input GUIDs in XML format; use GUIDtoXML 1760 to change the Enterprise
Architect GUID to an XML GUID.
Project Attributes
Attribute Type Notes
Project Methods
Method Type Notes
2=GIF
3=PNG
4=JPG.
· FormatXML: Long - true if XML output should be
formatted prior to saving.
· UseDTD: Long - true if a DTD should be used.
· FileName: String - the filename to output to.
ExportPackageXMIEx (string protected Exports XMI for a specified package, with a flag to
PackageGUID, enumXMIType abstract: String determine whether the export includes package
XMIType, long DiagramXML, content 295 below the first level.
long DiagramImage, long Parameters:
FormatXML, long UseDTD,
string FileName, ea. · PackageGUID: String - the GUID (in XML format)
ExportPackageXMIFlag Flags) of the package to be exported.
· XMIType: EnumXMIType - specifies the XMI type
and version information; see XMIType Enum 1679
for accepted values.
· DiagramXML: Long - true if XML for diagrams is
required; accepted values:
0 = Do not export diagrams
1 = Export diagrams
2 = Export diagrams along with alternate images.
· DiagramImage: Long - the format for diagram
images to be created at the same time; accepted
values:
-1=NONE
0=EMF
1=BMP
2=GIF
3=PNG
4=JPG.
· FormatXML: Long - true if XML output should be
formatted prior to saving.
· UseDTD: Long - true if a DTD should be used.
· FileName: String - the filename to output to.
· Flags: ea.ExportPackageXMIFlag 1677 - whether or
not to include package content below the first
level (currently only supported for xmiEADefault).
GenerateClass (string Boolean Generates the code for a single Class.
ElementGUID, string
Parameters:
ExtraOptions)
· ElementGUID: String - the GUID (in XML format)
of the element to generate.
· ExtraOptions: String - enables extra options to be
given to the command; currently unused.
GenerateDiagramFromScenari Boolean Generates various diagrams from the Structured
o (string ElementGUID, Specification of an element.
EnumScenarioDiagramType Parameters:
DiagramType, long
OverwriteExistingDiagram) · ElementGUID: String - the GUID (in XML format)
of the element containing the Structured
Specification.
· DiagramType: EnumScenarioDiagramType - the
type of diagram to generate; see
ScenarioDiagramType Enum 1678 for accepted
values
· OverwriteExistingDiagram: Long - determines
EnumScenarioTestType
Parameters:
TestType)
· ElementGUID: String - the GUID (in XML format)
of the element containing the Structured
Specification.
· TestType: EnumScenarioTestType - the type of
test to generate; see ScenarioTestType Enum 1679
for accepted values.
GenerateXSD (string Boolean Creates an XML schema for this GenerateXSD.
PackageGUID, string Returns true on success.
FileName, string Encoding,
Parameters:
string Options)
· PackageGUID: String - the GUID (in XML format)
of the package.
· FileName: String - target filepath.
· Encoding: String - the XML encoding for the code
page instruction.
· Options: String - enables extra options to be given
to the command; currently enables:
· GenGlobalElement - turn the generation of
global elements for all global ComplexTypes
On or Off; for example: - GenGlobalElement=1.
GetBaselines (string String Returns a list (in XML format) of Baselines associated
PackageGUID, string with the supplied package GUID. Optionally, you can
ConnectString) provide a connection string to get Baselines from the
same package, but located in a different model file (or
DBMS).
Parameters:
· PackageGUID: String - the GUID (in XML format)
of the package to get Baselines for.
· ConnectString: String - the location of the EAP file
or DBMS to get the Baselines from, if not in the
same model as the package.
· ImportDiagrams: Long.
· StripGUID: Long - boolean value to indicate
whether to replace the element UniqueIDs on
import; if stripped, then a package could be
imported twice into Enterprise Architect, as two
different versions.
LayoutDiagram (string Boolean Deprecated. it is recommended that
DiagramGUID, long LayoutDiagramEx is used instead.
LayoutStyle)
Calls the function to automatically layout a diagram in
hierarchical fashion. It is only recommended for Class
and Object diagrams.
Parameters:
· DiagramGUID: String - the GUID (in XML format)
of the diagram to lay out.
· LayoutStyle: Long - always ignored.
LayoutDiagramEx (string Boolean Calls the function to automatically layout a diagram in
DiagramGUID, long hierarchical fashion. It is only recommended for Class
LayoutStyle, long Iterations, and Object diagrams.
long LayerSpacing, long LayoutStyle accepts the following options (also see
ColumnSpacing, boolean ConstLayoutStyles Enum 1675 ):
SaveToDiagram)
· Default Options:
lsDiagramDefault
lsProgramDefault.
· Cycle Removal Options:
lsCycleRemoveGreedy
lsCycleRemoveDFS.
· Layering Options:
lsLayeringLongestPathSink
lsLayeringLongestPathSource
lsLayeringOptimalLinkLength.
· Initialize Options:
IsInitializeNaive
IsInitializeDFSOut
IsInitializeDFSIn.
· Crossing Reduction Option:
lsCrossReduceAggressive.
· Layout Options - Direction
lsLayoutDirectionUp
lsLayoutDirectionDown
lsLayoutDirectionLeft
lsLayoutDirectionRight.
Parameters:
· DiagramGUID: String - the GUID (in XML format)
of the diagram to lay out.
· LayoutStyle: Long - the layout style.
· Iterations: Long - the number of layout iterations
the Layout process should take to perform cross
reduction (Default value = 4).
· LayerSpacing: Long - the per-element layer
spacing the Layout process shall use (Default
value = 20).
· ColumnSpacing: Long - the per-element column
spacing the Layout process shall use (Default
value = 20).
· SaveToDiagram: Boolean - specifies whether or
not Enterprise Architect should save the supplied
layout options as default to the diagram in
question.
LoadControlledPackage ( String Loads a package that has been marked and
string PackageGUID) configured as controlled. The filename details are
stored in the package control data.
Parameters:
· PackageGUID: String - the GUID (in XML format)
of the package to load.
LoadDiagram (string protected Loads a diagram by its GUID.
DiagramGUID) abstract:
Boolean Parameter:
· DiagramGUID: String - the GUID (in XML format)
of the diagram to load; if you retrieve the GUID
using the Diagram interface, use the GUIDtoXML
1760 function to convert it to XML format.
LoadProject (string FileName) protected Loads an Enterprise Architect project file. Do not use
abstract: this method if you have accessed the Project interface
Boolean from the Repository, which has already loaded a file.
Parameters:
· FileName: String - the name of the project file to
load.
MigrateToBPMN11 (string Void Migrates every BPMN 1.0 construct in a package or an
GUID, string Type) element (including elements, attributes, diagrams and
connectors) to BPMN 1.1.
Parameters
· GUID: String - the GUID of the package or
element for which the contents are to be migrated
to BPMN 1.1
· Type: String - the type of upgrade, either just to
BPMN 1.1 or to BPMN 1.1 and BPEL. Accepted
values:
BusinessProcess to BPELProcess.
Note:
Migrating to BPEL is possible only in the Ultimate or
Business and Software Engineering editions of
Enterprise Architect.
PublishResult (string String Returns the results of each rule that can be performed
CategoryID, EA. during model validation. It must be called once for
EnumMVErrorType ErrorType, each rule from the EA_OnInitializeUserRules 1812
string ErrorMessage broadcast handler.
The return value is a RuleId, which can be used for
reference purposes when an individual rule is
executed by Enterprise Architect during model
validation.
See Model Validation Example 1816 for a detailed
example of use of this method.
Parameters:
· CategoryId: String - should be passed the return
value from the DefineRuleCategory 1754 method.
· ErrorType: EA.EnumMVErrorType - depending on
the severity of the error being validated, can be:
· mvErrorCritical
· mvError
· mvWarning, or
· mvInformation.
· ErrorMessage: String - contains an error string.
PutDiagramImageOnClipboard protected Copies an image of the specified diagram to the
(string DiagramGUID, long abstract: clipboard.
Type) Boolean
Parameters:
· DiagramGUID: String - the GUID (in XML format)
of the diagram to copy.
· Type: Long - the file type.
· If Type = 0 then it is a metafile
· If Type = 1 then it is a Device Independent
Bitmap.
PutDiagramImageToFile (s protected Saves an image of the specified diagram to file.
tring Diagram GUID, string abstract:
Boolean Parameters:
FileName, long Type)
· DiagramGUID: String - the GUID (in XML format)
of the diagram to save.
· FileName: String - the name of the file to save the
diagram into.
· Type: Long - the file type.
· If type = 0 then it is a metafile
· If type = 1 then it uses the file type from the
name extension (that is, .bmp, .jpg, .gif, .png, .
tga)
ReloadProject () protected Reloads the current project. This is a convenient
abstract: method to refresh the current loaded project (in case
Boolean of outside changes to the .EAP file).
public Object
''An example of how to open an Enterprise Architect repository
''in VB.Net.
....catch e as exception
Console.WriteLine(e)
End try
End Sub
end Class
public Object
''Assume repository has already been opened.
'output package name, then element contents, then process child packages
Sub DumpPackage(Indent as String, Package as Object)
Dim idx as Integer
Console.WriteLine(Indent + Package.Name)
DumpElements(Indent + " ", Package)
public Object
Example illustrating how to add a Model or a Package.
Sub TestPackageLifecycle
model = m_Repository.Models.AddNew("AdvancedModel","")
If not model.Update() Then
Console.WriteLine(model.GetLastError())
End If
package.Element.Stereotype = "system"
package.Update
End If
Next
End Sub
public Object
''Add and delete elements in a package.
Sub ElementLifecycle
package = m_Repository.GetPackageByID(2)
element = package.elements.AddNew("Login to Website","UseCase")
element.Stereotype = "testcase"
element.Update
package.elements.Refresh()
public Object
"Add a connector and set values.
Sub ConnectorTest
source = m_Repository.GetElementByID(129)
target = m_Repository.GetElementByID(169)
Console.WriteLine("Connector Created")
o = con.Constraints.AddNew ("constraint2","type")
If not o.Update Then
Console.WriteLine(o.GetLastError)
End If
o = con.TaggedValues.AddNew ("Tag","Value")
If not o.Update Then
Console.WriteLine(o.GetLastError)
End If
client = con.ClientEnd
client.Visibility = "Private"
client.Role = "m_client"
client.Update
supplier = con.SupplierEnd
supplier.Visibility = "Protected"
supplier.Role = "m_supplier"
supplier.Update
Console.WriteLine(client.Role)
Console.WriteLine(supplier.Role)
End Sub
public Object
''An example of how to create a diagram and add an element to it.
''Note the optional use of element rectangle setting using
''left,right,top and bottom dimensions in AddNew call.
Sub DiagramLifeCycle
package = m_Repository.GetPackageByID(5)
o = package.Elements.AddNew("ReferenceType","Class")
o.Update
v = diagram.DiagramObjects.AddNew("l=200;r=400;t=200;b=600;","")
v.ElementID = o.ElementID
v.Update
Console.WriteLine(diagram.DiagramID)
End Sub
public Object
Dim element as object
Dim idx as integer
Dim attribute as object
Dim method as object
'now loop through methods for Element - and delete our addition
For idx = 0 to element.Methods.Count-1
method =element.Methods.GetAt(idx)
Console.Writeline(method.Name)
If(method.Name = "newMethod") Then
element.Methods.Delete(idx)
End if
Next
'create an attribute
attribute = element.attributes.AddNew("NewAttribute", "int")
attribute.Update
element.attributes.Refresh
public Object
''Examples of how to access and use element extras, such as
''scenarios, constraints and requirements.
Sub ElementExtras
try
element = m_Repository.GetElementByID(129)
'efforts
o = element.Efforts.AddNew("Appended","Type")
If not o.Update Then
Console.WriteLine("Efforts error:" + o.GetLastError())
End if
element.Efforts.Refresh
For idx = 0 to element.Efforts.Count -1
o = element.Efforts.GetAt(idx)
Console.WriteLine(o.Name)
If(o.Name="Appended") Then
If bDel Then element.Efforts.Delete (idx)
End if
Next
'Risks
o = element.Risks.AddNew("Appended","Type")
If not o.Update Then
Console.WriteLine("Risks error:" + o.GetLastError())
End if
element.Risks.Refresh
For idx = 0 to element.Risks.Count -1
o = element.Risks.GetAt(idx)
Console.WriteLine(o.Name)
If(o.Name="Appended") Then
If bDel Then element.Risks.Delete (idx)
End if
Next
'Metrics
o = element.Metrics.AddNew("Appended","Change")
If not o.Update Then
Console.WriteLine("Metrics error:" + o.GetLastError())
End if
element.Metrics.Refresh
For idx = 0 to element.Metrics.Count -1
o = element.Metrics.GetAt(idx)
Console.WriteLine(o.Name)
If(o.Name="Appended") Then
If bDel Then element.Metrics.Delete (idx)
End if
Next
'TaggedValues
o = element.TaggedValues.AddNew("Appended","Change")
If not o.Update Then
Console.WriteLine("TaggedValues error:" + o.GetLastError())
End if
element.TaggedValues.Refresh
For idx = 0 to element.TaggedValues.Count -1
o = element.TaggedValues.GetAt(idx)
Console.WriteLine(o.Name)
If(o.Name="Appended") Then
If bDel Then element.TaggedValues.Delete (idx)
End if
Next
'Scenarios
o = element.Scenarios.AddNew("Appended","Change")
If not o.Update Then
Console.WriteLine("Scenarios error:" + o.GetLastError())
End if
element.Scenarios.Refresh
For idx = 0 to element.Scenarios.Count -1
o = element.Scenarios.GetAt(idx)
Console.WriteLine(o.Name)
If(o.Name="Appended") Then
If bDel Then element.Scenarios.Delete (idx)
End if
Next
'Files
o = element.Files.AddNew("MyFile","doc")
If not o.Update Then
Console.WriteLine("Files error:" + o.GetLastError())
End if
element.Files.Refresh
For idx = 0 to element.Files.Count -1
o = element.Files.GetAt(idx)
Console.WriteLine(o.Name)
If(o.Name="MyFile") Then
If bDel Then element.Files.Delete (idx)
End if
Next
'Tests
o = element.Tests.AddNew("TestPlan","Load")
If not o.Update Then
Console.WriteLine("Tests error:" + o.GetLastError())
End if
element.Tests.Refresh
For idx = 0 to element.Tests.Count -1
o = element.Tests.GetAt(idx)
Console.WriteLine(o.Name)
If(o.Name="TestPlan") Then
If bDel Then element.Tests.Delete (idx)
End if
Next
'Defect
o = element.Issues.AddNew("Broken","Defect")
If not o.Update Then
Console.WriteLine("Issues error:" + o.GetLastError())
End if
element.Issues.Refresh
For idx = 0 to element.Issues.Count -1
o = element.Issues.GetAt(idx)
Console.WriteLine(o.Name)
If(o.Name="Broken") Then
If bDel Then element.Issues.Delete (idx)
End if
Next
'Change
o = element.Issues.AddNew("Change","Change")
If not o.Update Then
Console.WriteLine("Issues error:" + o.GetLastError())
End if
element.Issues.Refresh
For idx = 0 to element.Issues.Count -1
o = element.Issues.GetAt(idx)
Console.WriteLine(o.Name)
If(o.Name="Change") Then
If bDel Then element.Issues.Delete (idx)
End if
Next
catch e as exception
Console.WriteLine(element.Methods.GetLastError())
Console.WriteLine(e)
End try
End Sub
public Object
'' Examples of how to access repository
'' collections for system level information.
Sub RepositoryExtras
Dim o as object
Dim idx as integer
'issues
o = m_Repository.Issues.AddNew("Problem","Type")
If(o.Update=false) Then
Console.WriteLine (o.GetLastError())
End if
o = nothing
m_Repository.Issues.Refresh
For idx = 0 to m_Repository.Issues.Count-1
Console.Writeline(m_Repository.Issues.GetAt(idx).Name)
If(m_Repository.Issues.GetAt(idx).Name = "Problem") then
m_Repository.Issues.DeleteAt(idx,false)
Console.WriteLine("Delete Issues")
End if
Next
''tasks
o = m_Repository.Tasks.AddNew("Task 1","Task type")
If(o.Update=false) Then
Console.WriteLine ("error - " + o.GetLastError())
End if
o = nothing
m_Repository.Tasks.Refresh
For idx = 0 to m_Repository.Tasks.Count-1
COnsole.Writeline(m_Repository.Tasks.GetAt(idx).Name)
If(m_Repository.Tasks.GetAt(idx).Name = "Task 1") then
m_Repository.Tasks.DeleteAt(idx,false)
Console.WriteLine("Delete Tasks")
End if
Next
''glossary
o = m_Repository.Terms.AddNew("Term 1","business")
If(o.Update=false) Then
Console.WriteLine ("error - " + o.GetLastError())
End if
o = nothing
m_Repository.Terms.Refresh
For idx = 0 to m_Repository.Terms.Count-1
COnsole.Writeline(m_Repository.Terms.GetAt(idx).Term)
If(m_Repository.Terms.GetAt(idx).Term = "Term 1") then
m_Repository.Terms.DeleteAt(idx,false)
Console.WriteLine("Delete Terms")
End if
Next
'authors
o = m_Repository.Authors.AddNew("Joe B","Writer")
If(o.Update=false) Then
Console.WriteLine (o.GetLastError())
End if
o = nothing
m_Repository.Authors.Refresh
For idx = 0 to m_Repository.authors.Count-1
COnsole.Writeline(m_Repository.Authors.GetAt(idx).Name)
If(m_Repository.authors.GetAt(idx).Name = "Joe B") then
m_Repository.authors.DeleteAt(idx,false)
Console.WriteLine("Delete Authors")
End if
Next
o = m_Repository.Clients.AddNew("Joe Sphere","Client")
If(o.Update=false) Then
Console.WriteLine (o.GetLastError())
End if
o = nothing
m_Repository.Clients.Refresh
For idx = 0 to m_Repository.Clients.Count-1
COnsole.Writeline(m_Repository.Clients.GetAt(idx).Name)
If(m_Repository.Clients.GetAt(idx).Name = "Joe Sphere") then
m_Repository.Clients.DeleteAt(idx,false)
Console.WriteLine("Delete Clients")
End if
Next
o = m_Repository.Resources.AddNew("Joe Worker","Resource")
If(o.Update=false) Then
Console.WriteLine (o.GetLastError())
End if
o = nothing
m_Repository.Resources.Refresh
For idx = 0 to m_Repository.Resources.Count-1
COnsole.Writeline(m_Repository.Resources.GetAt(idx).Name)
If(m_Repository.Resources.GetAt(idx).Name = "Joe Worker") then
m_Repository.Resources.DeleteAt(idx,false)
Console.WriteLine("Delete Resources")
End if
Next
End Sub
11.2.2.10.10 Stereotypes
public Object
Sub TestStereotypes
Dim o as object
Dim idx as integer
End Sub
public Object
''An example of working with attributes.
Sub AttributeLifecycle
Console.WriteLine("attribute=" + element.Attributes.GetAt(idx).Name)
o = element.Attributes.GetAt(idx)
t = o.Constraints.AddNew("> 123","Precision")
t.Update()
o.Constraints.Refresh
For idx2 = 0 to o.Constraints.Count-1
t = o.Constraints.GetAt(idx2)
Console.WriteLine("Constraint: " + t.Name)
If(t.Name="> 123") Then
o.Constraints.DeleteAt(idx2, false)
End if
Next
t = o.TaggedValues.AddNew("Type2","Number")
t.Update
o.TaggedValues.Refresh
For idx2 = 0 to o.TaggedValues.Count-1
t = o.TaggedValues.GetAt(idx2)
Console.WriteLine("Tagged Value: " + t.Name)
Next
Next
catch e as exception
Console.WriteLine(element.Attributes.GetLastError())
Console.WriteLine(e)
End try
End Sub
public Object
''An example of working with the Methods collection
''of an element - and with Method collections.
Sub MethodLifeCycle
try
element = m_Repository.GetElementByID(129)
t = method.PreConditions.AddNew("TestConstraint","something")
If t.Update = false Then
Console.WriteLine("PreConditions: " + t.GetLastError)
End if
method.PreConditions.Refresh
For idx2 = 0 to method.PreConditions.Count-1
t = method.PreConditions.GetAt(idx2)
Console.WriteLine("PreConditions: " + t.Name)
If t.Name = "TestConstraint" Then
method.PreConditions.DeleteAt(idx2,false)
End If
Next
t = method.PostConditions.AddNew("TestConstraint","something")
If t.Update = false Then
COnsole.WriteLine("PostConditions: " + t.GetLastError)
End if
method.PostConditions.Refresh
For idx2 = 0 to method.PostConditions.Count-1
t = method.PostConditions.GetAt(idx2)
Console.WriteLine("PostConditions: " + t.Name)
If t.Name = "TestConstraint" Then
method.PostConditions.DeleteAt(idx2, false)
End If
Next
t = method.TaggedValues.AddNew("TestTaggedValue","something")
If t.Update = false Then
COnsole.WriteLine("Tagged Values: " + t.GetLastError)
End if
t = method.Parameters.AddNew("TestParam","string")
If t.Update = false Then
Console.WriteLine("Parameters: " + t.GetLastError)
End if
method.Parameters.Refresh
For idx2 = 0 to method.Parameters.Count-1
t = method.Parameters.GetAt(idx2)
Console.WriteLine("Parameter: " + t.Name)
If(t.Name="TestParam") Then
method.Parameters.DeleteAt(idx2, false)
End If
Next
method = nothing
Next
catch e as exception
Console.WriteLine(element.Methods.GetLastError())
Console.WriteLine(e)
End try
End Sub
Introduction
Add-Ins enable you to add functionality to Enterprise Architect. The Enterprise Architect Add-In model builds
on the features provided by the Automation Interface 1666 to enable you to extend the Enterprise Architect user
interface.
Add-Ins are ActiveX COM objects that expose public Dispatch methods. They have several advantages over
stand-alone automation clients:
· Add-Ins can define Enterprise Architect menus and sub-menus
· Add-Ins receive notifications about various Enterprise Architect user-interface events including menu clicks
and file changes
· Add-Ins can (and should) be written as in-process (DLL) components. This provides lower call overhead
and better integration into the Enterprise Architect environment
· Because a current version of Enterprise Architect is already running there is no requirement to start a
second copy of Enterprise Architect via the automation interface
· Because the Add-In receives object handles associated with the currently running copy of Enterprise
Architect, more information is available about the current user's activity; for example, which diagram
objects are selected
· You are not required to do anything other than to install the Add-In to make it usable; that is, you do not
have to configure Add-Ins to run on your systems.
Because Enterprise Architect is constantly evolving in response to customer requests, the Add-In interface is
flexible:
· The Add-In interface does not have its own version, rather it is identified by the version of Enterprise
Architect it first appeared in; for example, the current version of the Enterprise Architect Add-In interface is
version 2.1.
· When creating your Add-In, you do not have to subscribe to a type-library.
Note:
From Enterprise Architect release 7.0 Add-Ins created before 2004 are no longer supported. If an Add-In
subscribes to the Addn_Tmpl.tlb interface (2003 style), it will fail on load. In this event, contact the vendor
or author of the Add-In and request an upgrade.
3. Manage Add-Ins
· Register an Add-In 1876 (developed in-house or brought-in)
· The Add-In Manager 1781
Create an Add-In
An Enterprise Architect Add-In can be created in four steps:
1. Use a development tool to create an ActiveX COM DLL project. Visual Basic users, for example,
choose File-Create New Project-ActiveX DLL.
2. Connect to the interface using the syntax appropriate to the language as detailed in the Connect to the
Interface 1666 topic.
3. Create a COM Class and implement each of the general Add-In Events 1782 applicable to your Add-In.
You only have to define methods for events to respond to.
4. Add a registry key that identifies your Add-In to Enterprise Architect, as described in the Deploy Add-Ins
1778 topic.
To define sub-menus, prefix a parent menu with a dash. Parent and sub-items are defined as follows:
Function EA_GetMenuItems(Repository as EA.Repository, MenuLocation As String, MenuName As String) As Variant
Select Case MenuName
Case ""
'Parent Menu Item
EA_GetMenuItems = "-&Joe's Add-In"
Case "-&Joe's Add-In"
'Define Sub-Menu Items using the Array notation.
'In this example, "Diagram" and "Treeview" compose the "Joe's Add-In" sub-menu.
EA_GetMenuItems = Array("&Diagram", "&Treeview")
Case Else
MsgBox "Invalid Menu", vbCritical
End Select
End Function
To enable or disable menu options by default, you can use this method to show particular items to the user:
Sub EA_GetMenuState(Repository As EA.Repository, Location As String, MenuName As String, ItemName As String,
IsEnabled As Boolean, IsChecked As Boolean)
Select Case Location
Case "TreeView"
'Always enable
Case "Diagram"
'Always enable
Case "MainMenu"
Select Case ItemName
Case "&Translate", "Save &Project"
If GetIsProjectSelected() Then
IsEnabled = False
End If
End Select
End Select
IsChecked = GetIsCurrentSelection()
End Sub
· If compiled as a .NET DLL, such as C# or VB.NET, register the DLL using the RegAsm command
from the command prompt; for example:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe "C:\Program
Files\MyCompany\EAAddin\EAAddin.dll" /codebase
3. Place a new entry into the registry using the registry editor (run regedit) so that Enterprise Architect
recognizes the presence of your Add-In.
4. Add a new key value EAAddIns under the location: HKEY_CURRENT_USER\Software\Sparx Systems
5. Add a new key under this key with the project name.
Note:
[ProjectName] is not necessarily the name of your DLL, but the name of the Project. In Visual Basic,
this is the value for the property Name corresponding to the project file.
6. Specify the default value by modifying the default value of the key.
7. Enter the value of the key by typing in the [project name].[class name]; for example, EaRequirements.
Requirements, where EaRequirements is the project name, as shown in the example below.
It is possible that your Automation client controls a running instance of Enterprise Architect where the Add-Ins
have not complied with the rule above. In this case you could call Repository.Exit() to terminate Enterprise
Architect.
Miscellaneous
In developing Add-Ins using the .Net framework you must select COM Interoperability in the project's
properties in order for it to be recognized as an Add-In.
Some development environments do not automatically register COM DLLs on creation. You might have to do
that manually before Enterprise Architect recognizes the Add-In.
You can use your private Add-In key (as required for Add-In deployment) to store configuration information
pertinent to your Add-In.
Concurrent Calls
In Enterprise Architect releases up to release 7.0, there is a possibility that Enterprise Architect could call two
Add-In methods concurrently if the Add-In calls:
· A message box
· A modal dialog
· VB DoEvents, .NET Application DoEvents or the equivalent in other languages.
In such cases, Enterprise Architect could initiate a second Add-In method before the first returns (re-entrancy).
In release 7.0. and subsequent releases, Enterprise Architect cannot make such concurrent calls.
If developing Add-Ins, ensure that the Add-In users are running Enterprise Architect release 7.0 or a later
release to avoid any risk of concurrent method calls.
To enable an Add-In for use, select the Load on Startup check box. To disable an Add-In, deselect the
checkbox.
Note:
Enterprise Architect must be restarted for changes to take effect.
Parameter Description
Return
The method must return a value for the results to be displayed.
Advanced Usage
In addition to the displayed results, two additional hidden fields can be passed into the XML that provide
special functionality.
CLASSTYPE
Returning a field of CLASSTYPE, containing the Object_Type value from the t_object table, displays the
appropriate icon in the column you place the field.
CLASSGUID
Returning a field of CLASSGUID, containing an ea_guid value, enables the Model Search to track the object in
the Project Browser and open the Properties window for the element by double-clicking in the Model Search.
<Fields>
<Field name=""/>
<Field name=""/>
<Field name=""/>
<Field name=""/>
</Fields>
<Rows>
<Row>
<Field name="" value=""/>
<Field name="" value=""/>
<Field name="" value=""/>
<Field name="" value=""/>
</Row>
<Row>
<Field name="" value=""/>
<Field name="" value=""/>
<Field name="" value=""/>
<Field name="" value=""/>
</Row>
<Row>
<Field name="" value=""/>
<Field name="" value=""/>
<Field name="" value=""/>
<Field name="" value=""/>
</Row>
</Rows>
</ReportViewData>
11.3.4.1 EA_Connect
Details
EA_Connect events enable Add-Ins to identify their type and to respond to Enterprise Architect start up.
This event occurs when Enterprise Architect first loads your Add-In. Enterprise Architect itself is loading at this
time so that while a Repository object is supplied, there is limited information that you can extract from it.
The chief uses for EA_Connect are in initializing global Add-In data and for identifying the Add-In as an MDG
Add-In 1821 .
Also look at EA_Disconnect 1783 .
Syntax
Function EA_Connect(Repository As EA.Repository) As String
The EA_Connect function syntax has the following elements:
Return Value
String identifying a specialized type of Add-In:
Type Details
"MDG" MDG Add-Ins receive MDG Events 1822 and extra menu options.
11.3.4.2 EA_Disconnect
Details
The EA_Disconnect event enables the Add-In to respond to user requests to disconnect the model branch
from an external project.
This function is called when the Enterprise Architect closes. If you have stored references to Enterprise
Architect objects (not particularly recommended anyway), you must release them here.
In addition, .NET users must call memory management functions as shown below:
GC.Collect();
GC.WaitForPendingFinalizers();
Also look at EA_Connect 1782 .
Syntax
Sub EA_Disconnect()
Return Value
None.
11.3.4.3 EA_GetMenuItems
Details
The EA_GetMenuItems event enables the Add-In to provide the Enterprise Architect user interface with
additional Add-In menu options in various context and main menus. When a user selects an Add-In menu
option, an event is raised and passed back to the Add-In that originally defined that menu option.
This event is raised just before Enterprise Architect has to show particular menu options to the user, and its
use is described in the Define Menu Items 1777 topic.
Also look at:
· EA_MenuClick 1785
· EA_GetMenuState 1784 .
Syntax
Function EA_GetMenuItems(Repository As EA.Repository, MenuLocation As String, MenuName As
String) As Variant
The EA_GetMenuItems function syntax has the following elements:
MenuLocatio String String representing the part of the user interface that brought up
n the menu. Can be TreeView, MainMenu or Diagram.
MenuName String The name of the parent menu for which sub-items are to be
defined. In the case of the top-level menu it is an empty string.
Return Value
One of the following types:
· A string indicating the label for a single menu option.
· An array of strings indicating a multiple menu options.
· Empty (Visual Basic/VB.NET) or null (C#) to indicate that no menu should be displayed.
In the case of the top-level menu it should be a single string or an array containing only one item, or Empty/
null.
11.3.4.4 EA_GetMenuState
Details
The EA_GetMenuState event enables the Add-In to set a particular menu option to either enabled or disabled.
This is useful when dealing with locked packages and other situations where it is convenient to show a menu
option, but not enable it for use.
This event is raised just before Enterprise Architect has to show particular menu options to the user. Its use is
described in the Define Menu Items 1777 topic.
Also look at EA_GetMenuItems 1783 .
Syntax
Sub EA_GetMenuState(Repository as EA.Repository, MenuLocation As String, MenuName as String,
ItemName as String, IsEnabled as Boolean, IsChecked as Boolean)
The EA_GetMenuState function syntax has the following elements:
IsChecked Boolean Boolean. Set to True to check this particular menu option.
IsEnabled Boolean Boolean. Set to False to disable this particular menu option.
ItemName String The name of the option actually clicked, for example, Create a
New Invoice.
MenuLocation String String representing the part of the user interface that brought
up the menu. Can be TreeView, MainMenu or Diagram.
MenuName String The name of the parent menu for which sub-items must be
defined. In the case of the top-level menu it is an empty string.
Return Value
None.
11.3.4.5 EA_MenuClick
Details
EA_MenuClick events are received by an Add-In in response to user selection of a menu option.
The event is raised when the user clicks on a particular menu option. When a user clicks on one of your non-
parent menu options, your Add-In receives a MenuClick event, defined as follows:
Sub EA_MenuClick(Repository As EA.Repository, ByVal MenuName As String, ByVal ItemName As
String)
The code below illustrates an example of use:
If MenuName = "-&Diagram" And ItemName = "&Properties" then
MsgBox Repository.GetCurrentDiagram.Name, vbInformation
Else
MsgBox "Not Implemented", vbCritical
End If
Notice that your code can directly access Enterprise Architect data and UI elements using Repository 1680
methods.
Also look at EA_GetMenuItems 1783 .
Syntax
Sub EA_MenuClick(Repository As EA.Repository, MenuLocation As String, MenuName As String,
ItemName As String)
The EA_GetMenuClick function syntax has the following elements:
ItemName String The name of the option actually clicked, for example, Create a
New Invoice.
MenuName String The name of the parent menu for which sub-items are to be
defined. In the case of the top-level menu it is an empty string.
Return Value
None.
11.3.4.6 EA_OnOutputItemClicked
Details
EA_OnOutputItemClicked events inform Add-Ins that the user has clicked on a list entry in the system tab or
one of the user defined output tabs.
Usually an Add-In responds to this event in order to capture activity on an output tab they had previously
created through a call to Repository.AddTab().
Note that every loaded Add-In receives this event for every click on an output tab in Enterprise Architect -
irrespective of whether the Add-In created that tab. Add-Ins should therefore check the TabName parameter
supplied by this event to ensure that they are not responding to other Add-Ins' events.
Also look at EA_OnOutputItemDoubleClicked 1786 .
Syntax
EA_OnOutputItemClicked(Repository As EA.Repository, TabName As String, LineText As String, ID As
Long)
The EA_OnOutputItemClicked function syntax has the following elements:
LineText String IN The text that had been supplied as the String parameter in the
original call to Repository.WriteOutput().
TabName String IN The name of the tab that the click occurred in. Usually this would
have been created through Repository.AddTab().
Return Value
None.
11.3.4.7 EA_OnOutputItemDoubleClicked
Details
EA_OnOutputItemDoubleClicked events informs Add-Ins that the user has used the mouse to double-click on
a list entry in one of the user-defined output tabs.
Usually an Add-In responds to this event in order to capture activity on an output tab they had previously
created through a call to Repository.AddTab().
Note that every loaded Add-In receives this event for every double-click on an output tab in Enterprise
Architect - irrespective of whether the Add-In created that tab. Add-Ins should therefore check the TabName
parameter supplied by this event to ensure that they are not responding to other Add-Ins' events.
Also look at EA_OnOutputItemClicked 1785 .
Syntax
EA_OnOutputItemDoubleClicked(Repository As EA.Repository, TabName As String, LineText As
String, ID As Long)
The EA_OnOutputItemClicked function syntax contains the following elements:
LineText String IN The text that had been supplied as the String parameter in the
original call to Repository.WriteOutput().
TabName String IN The name of the tab that the click occurred in. Usually this would
have been created through Repository.AddTab().
Return Value
None.
11.3.4.8 EA_ShowHelp
Details
The EA_ShowHelp event enables the Add-In to show a help topic for a particular menu option. When the user
has an Add-In menu option selected, pressing [F1] can be delegated to the required Help topic by the Add-In
and a suitable help message shown.
This event is raised when the user presses [F1] on a menu option that is not a parent menu.
Also look at EA_GetMenuItems 1783 .
Syntax
Sub EA_ShowHelp(Repository as EA.Repository, MenuLocation As String, MenuName as String,
ItemName as String)
The EA_ShowHelp function syntax contains the following elements:
ItemName String The name of the option actually clicked, for example, Create a
New Invoice.
MenuLocatio String String representing the part of the user interface that brought up
n the menu. Can be Treeview, MainMenu or Diagram.
MenuName String The name of the parent menu for which sub-items are to be
defined. In the case of the top-level menu it is an empty string.
Return Value
None.
Overview
The following general Broadcast events are sent to all loaded Add-Ins. For an Add-In to receive the event, they
must first implement the required automation event interface. If Enterprise Architect detects that the Add-In
has the required interface, the event is dispatched to the Add-In.
· File Open Event 1788
· File Close Event 1788
· File New Event 1789
· Post Open Diagram Event 1789
· Post Close Diagram Event 1789
· Pre-Deletion Events 1790
· Pre-New Events 1793
· Post-New Events 1798
MDG Events 1822 add quite a number of additional events, but the Add-In must first have registered as an
MDG-style Add-In, rather than as a generic Add-In.
11.3.5.1 EA_FileOpen
Details
The EA_FileOpen event enables the Add-In to respond to a File Open event. When Enterprise Architect opens
a new model file, this event is raised and passed to all Add-Ins implementing this method.
The event occurs when the model being viewed by the Enterprise Architect user changes, for whatever reason
(through user interaction or Add-In activity).
Also look at EA_FileClose 1788 and EA_FileNew 1789 .
Syntax
Sub EA_FileOpen(Repository As EA.Repository)
The EA_FileOpen function syntax contains the following elements:
Return Value
None.
11.3.5.2 EA_FileClose
Details
The EA_FileClose event enables the Add-In to respond to a File Close event. When Enterprise Architect
closes an opened Model file, this event is raised and passed to all Add-Ins implementing this method.
This event occurs when the model currently opened within Enterprise Architect is about to be closed (when
another model is about to be opened or when Enterprise Architect is about to shutdown).
Also look at EA_FileOpen 1788 and EA_FileNew 1789 .
Syntax
Sub EA_FileClose(Repository As EA.Repository)
The EA_FileClose function syntax contains the following elements:
Return Value
None.
11.3.5.3 EA_FileNew
Details
The EA_FileNew event enables the Add-In to respond to a File New event. When Enterprise Architect creates
a new model file, this event is raised and passed to all Add-Ins implementing this method.
The event occurs when the model being viewed by the Enterprise Architect user changes, for whatever reason
(through user interaction or Add-In activity).
Also look at EA_FileClose 1788 and EA_FileOpen 1788 .
Syntax
Sub EA_FileNew(Repository As EA.Repository)
The EA_FileNew function syntax contains the following elements:
Return Value
None.
11.3.5.4 EA_OnPostCloseDiagram
Details
EA_OnPostCloseDiagram notifies Add-Ins that a diagram has been closed.
Also look at EA_OnPostOpenDiagram 1789 .
Syntax
Function EA_OnPostCloseDiagram(Repository As EA.Repository, DiagramID As Integer)
The EA_OnPostCloseDiagram function syntax contains the following elements:
DiagramID Integer IN Contains the Diagram ID of the diagram that was closed.
Return Value
None.
11.3.5.5 EA_OnPostOpenDiagram
Details
EA_OnPostOpenDiagram notifies Add-Ins that a diagram has been opened.
Also look at EA_OnPostCloseDiagram 1789 .
Syntax
Function EA_OnPostOpenDiagram(Repository As EA.Repository, DiagramID As Integer)
The EA_OnPostOpenDiagram function syntax contains the following elements:
DiagramID Integer IN Contains the Diagram ID of the diagram that was opened.
Return Value
None.
11.3.5.6.1 EA_OnPreDeleteElement
Details
EA_OnPreDeleteElement notifies Add-Ins that an element is to be deleted from the model. It enables Add-Ins
to permit or deny deletion of the element.
This event occurs when a user deletes an element from the Project Browser or on a diagram. The notification
is provided immediately before the element is deleted, so that the Add-In can disable deletion of the element.
Syntax
Function EA_OnPreDeleteElement(Repository As EA.Repository, Info As EA.EventProperties) As
Boolean
The EA_OnPreDeleteElement function syntax contains the following elements:
Info EA. IN Contains the following EventProperty Objects for the element
EventProperties to be deleted:
1697
· ElementID: A long value corresponding to Element.
ElementID.
Repository EA.Repository 1680 IN An EA.Repository object representing the currently open
Enterprise Architect model. Poll its members to retrieve model
data and user interface status information.
Return Value
Return True to enable deletion of the element from the model. Return False to disable deletion of the element.
11.3.5.6.2 EA_OnPreDeleteAttribute
Details
EA_OnPreDeleteAttribute notifies Add-Ins that an attribute is to be deleted from the model. It enables Add-Ins
to permit or deny deletion of the attribute.
This event occurs when a user attempts to permanently delete an attribute from the Project Browser. The
notification is provided immediately before the attribute is deleted, so that the Add-In can disable deletion of
the attribute.
Syntax
Function EA_OnPreDeleteAttribute(Repository As EA.Repository, Info As EA.EventProperties) As
Boolean
The EA_OnPreDeleteAttribute function syntax contains the following elements:
Info EA. IN Contains the following EventProperty Objects for the attribute to
EventProperties be deleted:
1697
· AttributeID: A long value corresponding to Attribute.
AttributeID.
Repositor EA.Repository 1680 IN An EA.Repository object representing the currently open
y Enterprise Architect model. Poll its members to retrieve model
data and user interface status information.
Return Value
Return True to enable deletion of the attribute from the model. Return False to disable deletion of the
attribute.
11.3.5.6.3 EA_OnPreDeleteMethod
Details
EA_OnPreDeleteMethod notifies Add-Ins that a method (operation) is to be deleted from the model. It enables
Add-Ins to permit or deny deletion of the method.
This event occurs when a user attempts to permanently delete a method from the Project Browser. The
notification is provided immediately before the method is deleted, so that the Add-In can disable deletion of the
method.
Syntax
Function EA_OnPreDeleteMethod(Repository As EA.Repository, Info As EA.EventProperties) As
Boolean
The EA_OnPreDeleteMethod function syntax contains the following elements:
Info EA. IN Contains the following EventProperty Objects for the method to
EventProperties be deleted:
1697
· MethodID: A long value corresponding to Method.
MethodID.
Repositor EA.Repository 1680 IN An EA.Repository object representing the currently open
y Enterprise Architect model. Poll its members to retrieve model
data and user interface status information.
Return Value
Return True to enable deletion of the method from the model. Return False to disable deletion of the method.
11.3.5.6.4 EA_OnPreDeleteConnector
Details
EA_OnPreDeleteConnector notifies Add-Ins that a connector is to be deleted from the model. It enables Add-
Ins to permit or deny deletion of the connector.
This event occurs when a user attempts to permanently delete a connector on a diagram. The notification is
provided immediately before the connector is deleted, so that the Add-In can disable deletion of the connector.
Syntax
Function EA_OnPreDeleteConnector(Repository As EA.Repository, Info As EA.EventProperties) As
Boolean
The EA_OnPreDeleteConnector function syntax contains the following elements:
Info EA. IN Contains the following EventProperty Objects for the connector
EventProperties to be deleted:
1697
· ConnectorID: A long value corresponding to Connector.
ConnectorID.
Repositor EA.Repository 1680 IN An EA.Repository object representing the currently open
y Enterprise Architect model. Poll its members to retrieve model
data and user interface status information.
Return Value
Return True to enable deletion of the connector from the model. Return False to disable deletion of the
connector.
11.3.5.6.5 EA_OnPreDeleteDiagram
Details
EA_OnPreDeleteDiagram notifies Add-Ins that a diagram is to be deleted from the model. It enables Add-Ins
to permit or deny deletion of the diagram.
This event occurs when a user attempts to permanently delete a diagram from the Project Browser. The
notification is provided immediately before the diagram is deleted, so that the Add-In can disable deletion of
the diagram.
Syntax
Function EA_OnPreDeleteDiagram(Repository As EA.Repository, Info As EA.EventProperties) As
Boolean
The EA_OnPreDeleteDiagram function syntax contains the following elements:
Info EA. IN Contains the following EventProperty Objects for the connector
EventProperties to be deleted:
1697
· DiagramID: A long value corresponding to Diagram.
DiagramID
Repositor EA.Repository IN An EA.Repository object representing the currently-open
1680 Enterprise Architect model. Poll its members to retrieve model
Return Value
Return True to enable deletion of the diagram from the model. Return False to disable deletion of the
diagram.
11.3.5.6.6 EA_OnPreDeletePackage
Details
EA_OnPreDeletePackage notifies Add-Ins that a package is to be deleted from the model. It enables Add-Ins
to permit or deny deletion of the package.
This event occurs when a user attempts to permanently delete a package from the Project Browser. The
notification is provided immediately before the package is deleted, so that the Add-In can disable deletion of
the package.
Syntax
Function EA_OnPreDeletePackage(Repository As EA.Repository, Info As EA.EventProperties) As
Boolean
The EA_OnPreDeletePackage function syntax contains the following elements:
Info EA. IN Contains the following EventProperty Objects for the connector to
EventProperties be deleted:
1697
· PackageID: A long value corresponding to Package.
PackageID.
Repositor EA.Repository IN An EA.Repository object representing the currently open
y 1680 Enterprise Architect model. Poll its members to retrieve model
data and user interface status information.
Return Value
Return True to enable deletion of the package from the model. Return False to disable deletion of the
package.
· EA_OnPreNewAttribute 1796
· EA_OnPreNewMethod 1797
· EA_OnPreNewPackage 1797 .
11.3.5.7.1 EA_OnPreNewElement
Details
EA_OnPreNewElement notifies Add-Ins that a new element is about to be created on a diagram. It enables
Add-Ins to permit or deny creation of the new element.
This event occurs when a user drags a new element from the Toolbox or Resources window onto a diagram.
The notification is provided immediately before the element is created, so that the Add-In can disable addition
of the element.
Also look at EA_OnPostNewElement 1798 .
Syntax
Function EA_OnPreNewElement(Repository As EA.Repository, Info As EA.EventProperties) As
Boolean
The EA_OnPreNewElement function syntax contains the following elements:
Info EA. IN Contains the following EventProperty Objects for the element to
EventProperties be created:
1697
· Type: A string value corresponding to Element.Type
· Stereotype: A string value corresponding to Element.
Stereotype
· ParentID: A long value corresponding to Element.ParentID
· DiagramID: A long value corresponding to the ID of the
diagram to which the element is being added.
Repository EA.Repository 1680 IN An EA.Repository object representing the currently open
Enterprise Architect model. Poll its members to retrieve model
data and user interface status information.
Return Value
Return True to enable addition of the new element to the model. Return False to disable addition of the new
element.
11.3.5.7.2 EA_OnPreNewConnector
Details
EA_OnPreNewConnector notifies Add-Ins that a new connector is about to be created on a diagram. It
enables Add-Ins to permit or deny creation of a new connector.
This event occurs when a user drags a new connector from the Toolbox or Resources window, onto a
diagram. The notification is provided immediately before the connector is created, so that the Add-In can
disable addition of the connector.
Also look at EA_OnPostNewConnector 1799 .
Syntax
Function EA_OnPreNewConnector(Repository As EA.Repository, Info As EA.EventProperties) As
Boolean
The EA_OnPreNewConnector function syntax contains the following elements:
Info EA. IN Contains the following EventProperty Objects for the connector
EventProperties to be created:
1697
· Type: A string value corresponding to Connector.Type
· Subtype: A string value corresponding to Connector.
Subtype
· Stereotype: A string value corresponding to Connector.
Stereotype
· ClientID: A long value corresponding to Connector.
ClientID
Return Value
Return True to enable addition of the new connector to the model. Return False to disable addition of the new
connector.
11.3.5.7.3 EA_OnPreNewDiagram
Details
EA_OnPreNewDiagram notifies Add-Ins that a new diagram is about to be created. It enables Add-Ins to
permit or deny creation of the new diagram.
The notification is provided immediately before the diagram is created, so that the Add-In can disable addition
of the diagram.
Also look at EA_OnPostNewDiagram 1800 .
Syntax
Function EA_OnPreNewDiagram(Repository As EA.Repository, Info As EA.EventProperties) As
Boolean
The EA_OnPreNewDiagram function syntax contains the following elements:
Info EA. IN Contains the following EventProperty Objects for the diagram
EventProperties to be created:
1697
· Type: A string value corresponding to Diagram.Type
· ParentID: A long value corresponding to Diagram.ParentID
· PackageID: A long value corresponding to Diagram.
PackageID.
Repository EA.Repository 1680 IN An EA.Repository object representing the currently open
Enterprise Architect model. Poll its members to retrieve model
data and user interface status information.
Return Value
Return True to enable addition of the new diagram to the model. Return False to disable addition of the new
diagram.
11.3.5.7.4 EA_OnPreNewDiagramObject
Details
EA_OnPreNewDiagramObject notifies Add-Ins that a new diagram object is about to be dropped on a
diagram. It enables Add-Ins to permit or deny creation of the new object.
This event occurs when a user drags an object from the Enterprise Architect Project Browser or Resources
window onto a diagram. The notification is provided immediately before the object is created, so that the Add-
In can disable addition of the object.
Also look at EA_OnPostNewDiagramObject 1800 .
Syntax
Function EA_OnPreNewDiagramObject(Repository As EA.Repository, Info As EA.EventProperties) As
Boolean
The EA_OnPreNewDiagramObject function syntax contains the following elements:
Info EA. IN Contains the following EventProperty Objects for the object to
EventProperties be created:
1697
· Type: A string value corresponding to Object.Type
· Stereotype: A string value corresponding to Object.
Stereotype
· ParentID: A long value corresponding to Object.ParentID
· DiagramID: A long value corresponding to the ID of the
diagram to which the object is being added.
Repository EA.Repository 1680 IN An EA.Repository object representing the currently open
Enterprise Architect model. Poll its members to retrieve model
data and user interface status information.
Return Value
Return True to enable addition of the object to the model. Return False to disable addition of the object.
11.3.5.7.5 EA_OnPreNewAttribute
Details
EA_OnPreNewAttribute notifies Add-Ins that a new attribute is about to be created on an element. It enables
Add-Ins to permit or deny creation of the new attribute.
This event occurs when a user creates a new attribute on an element by either drag-dropping from the Project
Browser, using the Attributes Properties dialog, or using the in-place editor on the diagram. The notification is
provided immediately before the attribute is created, so that the Add-In can disable addition of the attribute.
Also look at EA_OnPostNewAttribute 1801 .
Syntax
Function EA_OnPreNewAttribute(Repository As EA.Repository, Info As EA.EventProperties) As
Boolean
The EA_OnPreNewAttribute function syntax contains the following elements:
Info EA. IN Contains the following EventProperty Objects for the attribute
EventProperties to be created:
1697
· Type: A string value corresponding to Attribute.Type
· Stereotype: A string value corresponding to Attribute.
Stereotype
· ParentID: A long value corresponding to Attribute.
ParentID
· ClassifierID: A long value corresponding to Attribute.
ClassifierID.
Repository EA.Repository IN An EA.Repository object representing the currently open
1680 Enterprise Architect model. Poll its members to retrieve model
data and user interface status information.
Return Value
Return True to enable addition of the new attribute to the model. Return False to disable addition of the new
attribute.
11.3.5.7.6 EA_OnPreNewMethod
Details
EA_OnPreNewMethod notifies Add-Ins that a new method is about to be created on an element. It enables
Add-Ins to permit or deny creation of the new method.
This event occurs when a user creates a new method on an element by either drag-dropping from the Project
Browser, using the method Properties dialog, or using the in-place editor on the diagram. The notification is
provided immediately before the method is created, so that the Add-In can disable addition of the method.
Also look at EA_OnPostNewMethod 1801 .
Syntax
Function EA_OnPreNewMethod(Repository As EA.Repository, Info As EA.EventProperties) As Boolean
The EA_OnPreNewMethod function syntax contains the following elements:
Info EA. IN Contains the following EventProperty Objects for the method to
EventProperties be created:
1697
· ReturnType: A string value corresponding to Method.
ReturnType
· Stereotype: A string value corresponding to Method.
Stereotype
· ParentID: A long value corresponding to Method.ParentID
· ClassifierID: A long value corresponding to Method.
ClassifierID.
Repository EA.Repository 1680 IN An EA.Repository object representing the currently open
Enterprise Architect model. Poll its members to retrieve model
data and user interface status information.
Return Value
Return True to enable addition of the new method to the model. Return False to disable addition of the new
method.
11.3.5.7.7 EA_OnPreNewPackage
Details
EA_OnPreNewPackage notifies Add-Ins that a new package is about to be created in the model. It enables
Add-Ins to permit or deny creation of the new package.
This event occurs when a user drags a new package from the Toolbox or Resources window onto a diagram,
or by selecting the New Package icon from the Project Browser. The notification is provided immediately
before the package is created, so that the Add-In can disable addition of the package.
Also look at EA_OnPostNewPackage 1802 .
Syntax
Function EA_OnPreNewPackage(Repository As EA.Repository, Info As EA.EventProperties) As
Boolean
The EA_OnPreNewPackage function syntax contains the following elements:
Info EA. IN Contains the following EventProperty Objects for the package
EventProperties to be created:
1697
· Stereotype: A string value corresponding to Package.
Stereotype
· ParentID: A long value corresponding to Package.
ParentID
· DiagramID: A long value corresponding to the ID of the
diagram to which the package is being added.
Repository EA.Repository IN An EA.Repository object representing the currently open
1680 Enterprise Architect model. Poll its members to retrieve model
data and user interface status information.
Return Value
Return True to enable addition of the new package to the model. Return False to disable addition of the new
package.
11.3.5.8 EA_OnPreExitInstance
Details
EA_OnPreExitInstance is not currently used.
Syntax
Sub EA_OnPreExitInstance(Repository As EA.Repository)
The EA_OnPreExitInstance function syntax contains the following element:
Return Value
None.
· EA_OnPostNewAttribute 1801
· EA_OnPostNewMethod 1801
· EA_OnPostNewPackage 1802 .
11.3.5.9.1 EA_OnPostNewElement
Details
EA_OnPostNewElement notifies Add-Ins that a new element has been created on a diagram. It enables Add-
Ins to modify the element upon creation.
This event occurs after a user has dragged a new element from the Toolbox or Resources window onto a
diagram. The notification is provided immediately after the element is added to the model. Set Repository.
SuppressEADialogs to true to suppress Enterprise Architect from showing its default dialogs.
Also look at EA_OnPreNewElement 1793 .
Syntax
Function EA_OnPostNewElement(Repository As EA.Repository, Info As EA.EventProperties) As
Boolean
The EA_OnPostNewElement function syntax contains the following elements:
Info EA. IN Contains the following EventProperty objects for the new
EventProperties element:
1697
· ElementID: A long value corresponding to Element.
ElementID.
Repository EA.Repository 1680 IN An EA.Repository object representing the currently open
Enterprise Architect model. Poll its members to retrieve
model data and user interface status information.
Return Value
Return True if the element has been updated during this notification. Return False otherwise.
11.3.5.9.2 EA_OnPostNewConnector
Details
EA_OnPostNewConnector notifies Add-Ins that a new connector has been created on a diagram. It enables
Add-Ins to modify the connector upon creation.
This event occurs after a user has dragged a new connector from the Toolbox or Resources window onto a
diagram. The notification is provided immediately after the connector is added to the model. Set Repository.
SuppressEADialogs to true to suppress Enterprise Architect from showing its default dialogs.
Also look at EA_OnPreNewConnector 1794 .
Syntax
Function EA_OnPostNewConnector(Repository As EA.Repository, Info As EA.EventProperties) As
Boolean
The EA_OnPostNewConnector function syntax contains the following elements:
Info EA. IN Contains the following EventProperty objects for the new
EventProperties connector:
1697
· ConnectorID: A long value corresponding to Connector.
ConnectorID.
Repository EA.Repository 1680 IN An EA.Repository object representing the currently open
Enterprise Architect model. Poll its members to retrieve model
data and user interface status information.
Return Value
Return True if the connector has been updated during this notification. Return False otherwise.
11.3.5.9.3 EA_OnPostNewDiagram
Details
EA_OnPostNewDiagram notifies Add-Ins that a new diagram has been created. It enables Add-Ins to modify
the diagram upon creation.
Set Repository.SuppressEADialogs to true to suppress Enterprise Architect from showing its default dialogs.
Also look at EA_OnPreNewDiagram 1795 .
Syntax
Function EA_OnPostNewDiagram(Repository As EA.Repository, Info As EA.EventProperties) As
Boolean
The EA_OnPostNewDiagram function syntax contains the following elements:
Info EA. IN Contains the following EventProperty objects for the new
EventProperties diagram:
1697
· DiagramID: A long value corresponding to Diagram.
PackageID.
Repository EA.Repository IN An EA.Repository object representing the currently open
1680 Enterprise Architect model. Poll its members to retrieve model
data and user interface status information.
Return Value
Return True if the diagram has been updated during this notification. Return False otherwise.
11.3.5.9.4 EA_OnPostNewDiagramObject
Details
EA_OnPostNewDiagramObject notifies Add-Ins that a new object has been created on a diagram. It enables
Add-Ins to modify the object upon creation.
This event occurs after a user has dragged a new object from the Project Browser or Resources window onto
a diagram. The notification is provided immediately after the object is added to the diagram. Set Repository.
SuppressEADialogs to true to suppress Enterprise Architect from showing its default dialogs.
Also look at EA_OnPreNewDiagramObject 1795 .
Syntax
Function EA_OnPostNewDiagramObject(Repository As EA.Repository, Info As EA.EventProperties) As
Boolean
The EA_OnPostNewDiagramObject function syntax contains the following elements:
Info EA. IN Contains the following EventProperty objects for the new
EventProperties element:
1697
· ObjectID: A long value corresponding to Object.
ObjectID.
Repository EA.Repository 1680 IN An EA.Repository object representing the currently open
Enterprise Architect model. Poll its members to retrieve
model data and user interface status information.
Return Value
Return True if the element has been updated during this notification. Return False otherwise.
11.3.5.9.5 EA_OnPostNewAttribute
Details
EA_OnPostNewAttribute notifies Add-Ins that a new attribute has been created on a diagram. It enables Add-
Ins to modify the attribute upon creation.
This event occurs when a user creates a new attribute on an element by either drag-dropping from the Project
Browser, using the Attributes Properties dialog, or using the in-place editor on the diagram. The notification is
provided immediately after the attribute is created. Set Repository.SuppressEADialogs to true to suppress
Enterprise Architect from showing its default dialogs.
Also look at EA_OnPreNewAttribute 1796 .
Syntax
Function EA_OnPostNewAttribute(Repository As EA.Repository, Info As EA.EventProperties) As
Boolean
The EA_OnPostNewAttribute function syntax contains the following elements:
Info EA. IN Contains the following EventProperty objects for the new
EventProperties attribute:
1697
· AttributeID: A long value corresponding to Attribute.
AttributeID.
Repository EA.Repository IN An EA.Repository object representing the currently open
1680 Enterprise Architect model. Poll its members to retrieve model
data and user interface status information.
Return Value
Return True if the attribute has been updated during this notification. Return False otherwise.
11.3.5.9.6 EA_OnPostNewMethod
Details
EA_OnPostNewMethod notifies Add-Ins that a new method has been created on a diagram. It enables Add-
Ins to modify the method upon creation.
This event occurs when a user creates a new method on an element by either drag-dropping from the Project
Browser, using the method's Properties dialog, or using the in-place editor on the diagram. The notification is
provided immediately after the method is created. Set Repository.SuppressEADialogs to true to suppress
Enterprise Architect from showing its default dialogs.
Also look at EA_OnPreNewMethod 1797 .
Syntax
Function EA_OnPostNewMethod(Repository As EA.Repository, Info As EA.EventProperties) As
Boolean
The EA_OnPostNewMethod function syntax contains the following elements:
Info EA. IN Contains the following EventProperty objects for the new
EventProperties method:
Return Value
Return True if the method has been updated during this notification. Return False otherwise.
11.3.5.9.7 EA_OnPostNewPackage
Details
EA_OnPostNewPackage notifies Add-Ins that a new package has been created on a diagram. It enables Add-
Ins to modify the package upon creation.
This event occurs when a user drags a new package from the Toolbox or Resources window onto a diagram,
or by selecting the New Package icon from the Project Browser. Set Repository.SuppressEADialogs to true to
suppress Enterprise Architect from showing its default dialogs.
Also look at EA_OnPreNewPackage 1797 .
Syntax
Function EA_OnPostNewPackage(Repository As EA.Repository, Info As EA.EventProperties) As
Boolean
The EA_OnPostNewPackage function syntax contains the following elements:
Info EA. IN Contains the following EventProperty objects for the new
EventProperties package:
1697
· PackageID: A long value corresponding to Package.
PackageID.
Repository EA.Repository IN An EA.Repository object representing the currently open
1680 Enterprise Architect model. Poll its members to retrieve model
data and user interface status information.
Return Value
Return True if the package has been updated during this notification. Return False otherwise.
11.3.5.10 EA_OnPostInitialized
Details
EA_OnPostInitialized notifies Add-Ins that the Repository object has finished loading and any necessary
initialization steps can now be performed on the object.
For example, the Add-In can create an Output tab using Repository.CreateOutputTab 1685 .
Syntax
Sub EA_OnPostInitialized(Repository As EA.Repository)
The EA_OnPostInitialized function syntax contains the following elements.
Return Value
None.
11.3.5.11 EA_OnPostTransform
Details
EA_OnPostTransform notifies Add-Ins that an MDG transformation has taken place with the output in the
specified target package.
This event occurs when a user runs an MDG transform on one or more target packages. The notification is
provided for each transform/target package immediately after all transform processes have completed.
Syntax
Function EA_OnPostTransform(Repository As EA.Repository, Info As EA.EventProperties) As Boolean
The EA_OnPostTransform function syntax contains the following elements:
Return Value
Reserved for future use.
11.3.5.12.1 EA_OnInitializeTechnologies
Details
EA_OnInitializeTechnologies requests that an Add-In pass an MDG Technology to Enterprise Architect for
loading.
This event occurs on Enterprise Architect startup. Return your technology XML to this function and Enterprise
Syntax
Function EA_OnInitializeTechnologies(Repository As EA.Repository) As Object
The EA_OnInitializeTechnologies function syntax contains the following element:
Return Value
Return the MDG Technology as a single XML string.
Example
Public Function EA_OnInitializeTechnologies(ByVal Repository As EA.Repository) As Object
EA_OnInitializeTechnologies = My.Resources.MyTechnology
End Function
11.3.5.12.2 EA_OnPreActivateTechnology
Details
EA_OnPreActivateTechnology notifies Add-Ins that an MDG Technology resource is about to be activated in
the model. This event occurs when a user selects to activate an MDG Technology resource in the model (by
clicking on the Set Active button on the MDG Technologies 1069 dialog or by selecting the technology in the list
box in the Default Tools 80 toolbar).
The notification is provided immediately after the user attempts to activate the MDG Technology, so that the
Add-In can permit or disable activation of the Technology.
Also look at EA_OnPostActivateTechnology 1805 .
Syntax
Function EA_OnPreActivateTechnology(Repository As EA.Repository, Info As EA.EventProperties) As
Boolean
The EA_OnPreActivateTechnology function syntax contains the following elements:
Info EA.EventProperties IN Contains the following EventProperty objects for the MDG
1697 Technology to be activated:
· TechnologyID: A string value corresponding to the
MDG Technology ID.
Repository EA.Repository 1680 IN An EA.Repository object representing the currently open
Enterprise Architect model. Poll its members to retrieve
model data and user interface status information.
Return Value
Return True to enable activation of the MDG Technology resource in the model. Return False to disable
activation of the MDG Technology resource.
11.3.5.12.3 EA_OnPostActivateTechnology
Details
EA_OnPostActivateTechnology notifies Add-Ins that an MDG Technology resource has been activated in the
model. This event occurs when a user activates an MDG Technology resource in the model (by clicking on
the Set Active button on the MDG Technologies 1069 dialog or by selecting the technology in the list box in the
Default Tools 80 toolbar). The notification is provided immediately after the user succeeds in activating the
MDG Technology, so that the Add-In can update the Technology if necessary.
Also look at EA_OnPreActivateTechnology 1804 .
Syntax
Function EA_OnPostActivateTechnology(Repository As EA.Repository, Info As EA.EventProperties)
The EA_OnPostActivateTechnology function syntax contains the following elements:
Info EA.EventProperties IN Contains the following EventProperty objects for the MDG
1697 Technology to be activated:
· TechnologyID: A string value corresponding to the
MDG Technology ID.
Repository EA.Repository 1680 IN An EA.Repository object representing the currently open
Enterprise Architect model. Poll its members to retrieve
model data and user interface status information.
Return Value
Return True if the MDG Technology resource is updated during this notification. Return False otherwise.
11.3.5.12.4 EA_OnPreDeleteTechnology
Deprecated - refers to deleting a technology through the Resources window; this process is no longer
recommended. See:
· EA_OnPreActivateTechnology 1804
· EA_OnPostActivateTechnology 1805
· EA_OnInitializeTechnologies 1803 .
Details
EA_OnPreDeleteTechnology notifies Add-Ins that an MDG Technology resource is about to be deleted from
the model. This event occurs when a user deletes an MDG Technology resource from the model. The
notification is provided immediately after the user confirms their request to delete the MDG Technology, so
that the Add-In can disable deletion of the MDG Technology.
Also look at EA_OnDeleteTechnology 1806 .
Syntax
Function EA_OnPreDeleteTechnology(Repository As EA.Repository, Info As EA.EventProperties) As
Boolean
The EA_OnPreDeleteTechnology function syntax contains the following elements:
Info EA.EventProperties IN Contains the following EventProperty objects for the MDG
1697 Technology to be deleted:
· TechnologyID: A string value corresponding to the
MDG Technology ID.
Return Value
Return True to enable deletion of the MDG Technology resource from the model. Return False to disable
deletion of the MDG Technology resource.
11.3.5.12.5 EA_OnDeleteTechnology
Deprecated - refers to deleting a technology through the Resources window; this process is no longer
recommended. See:
· EA_OnPreActivateTechnology 1804
· EA_OnPostActivateTechnology 1805
· EA_OnInitializeTechnologies 1803 .
Details
EA_OnDeleteTechnology notifies Add-Ins that an MDG Technology resource has been deleted from the
model.
This event occurs after a user has deleted an MDG Technology resource from the model. Add-Ins that require
an MDG Technology resource to be loaded can catch this event to disable certain functionality.
Also look at EA_OnPreDeleteTechnology 1805 .
Syntax
Sub EA_OnDeleteTechnology(Repository As EA.Repository, Info As EA.EventProperties)
The EA_OnDeleteTechnology function syntax contains the following elements:
Return Value
None.
11.3.5.12.6 EA_OnImportTechnology
Deprecated - refers to deleting a technology through the Resources window; this process is no longer
recommended. See:
· EA_OnPreActivateTechnology 1804
· EA_OnPostActivateTechnology 1805
· EA_OnInitializeTechnologies 1803 .
Details
EA_OnImportTechnology notifies Add-Ins that you have imported an MDG Technology resource into the
model.
This event occurs after you have imported an MDG Technology resource into the model. Add-Ins that require
an MDG Technology resource to be loaded can catch this Add-In to enable certain functionality.
Syntax
Sub EA_OnImportTechnology(Repository As EA.Repository, Info As EA.EventProperties)
The EA_OnImportTechnology function syntax contains the following elements:
Return Value
None.
11.3.5.13.1 EA_OnContextItemChanged
Details
EA_OnContextItemChanged notifies Add-Ins that a different item is now in context.
This event occurs after a user has selected an item anywhere in the Enterprise Architect GUI. Add-Ins that
require knowledge of the current item in context can subscribe to this broadcast function. If ot = otRepository,
then this function behaves the same as EA_FileOpen 1788 .
Also look at EA_OnContextItemDoubleClicked 1808 and EA_OnNotifyContextItemModified 1809 .
Syntax
Sub EA_OnContextItemChanged(Repository As EA.Repository, GUID As String, ot as EA.ObjectType)
The EA_OnContextItemChanged function syntax contains the following elements:
GUID String IN Contains the GUID of the new context item. This value corresponds
to the following properties, depending on the value of the ot
parameter:
Return Value
None.
11.3.5.13.2 EA_OnContextItemDoubleClicked
Details
EA_OnContextItemDoubleClicked notifies Add-Ins that the user has double-clicked the item currently in
context.
This event occurs when a user has double-clicked (or pressed [Enter]) on the item in context, either in a
diagram or in the Project Browser. Add-Ins to handle events can subscribe to this broadcast function.
Also look at EA_OnContextItemChanged 1807 and EA_OnNotifyContextItemModified 1809 .
Syntax
Function EA_OnContextItemDoubleClicked(Repository As EA.Repository, GUID As String, ot as EA.
ObjectType)
The EA_OnContextItemDoubleClicked function syntax contains the following elements:
GUID String IN Contains the GUID of the new context item. This value corresponds
to the following properties, depending on the value of the ot
parameter:
Return Value
Return True to notify Enterprise Architect that the double-click event has been handled by an Add-In. Return
False to enable Enterprise Architect to continue processing the event.
11.3.5.13.3 EA_OnNotifyContextItemModified
Details
EA_OnNotifyContextItemModified notifies Add-Ins that the current context item has been modified.
This event occurs when a user has modified the context item. Add-Ins that require knowledge of when an item
has been modified can subscribe to this broadcast function.
Also look at EA_OnContextItemChanged 1807 and EA_OnContextItemDoubleClicked 1808 .
Syntax
Sub EA_OnNotifyContextItemModified(Repository As EA.Repository, GUID As String, ot as EA.
ObjectType)
The EA_OnNotifyContextItemModified function syntax contains the following elements:
GUID String IN Contains the GUID of the new context item. This value
corresponds to the following properties, depending on the
value of the ot parameter:
· otElement - Element.ElementGUID
· otPackage - Package.PackageGUID
· otDiagram - Diagram.DiagramGUID
· otAttribute - Attribute.AttributeGUID
· otMethod - Method.MethodGUID
· otConnector - Connector.ConnectorGUID
Return Value
None.
· EA_GetCompartmentData 1810
11.3.5.14.1 EA_QueryAvailableCompartments
Details
This event occurs when Enterprise Architect's diagrams are refreshed. It is a request for the Add-In to provide
a list of user-defined compartments. The EA_GetCompartmentData 1810 event then queries each object for the
data to display in each user-defined compartment.
Syntax
Function EA_QueryAvailableCompartments(Repository As EA.Repository) As Variant
Return Value
A String containing a comma-separated list of user-defined compartments.
Example
Function EA_QueryAvailableCompartments(Repository As EA.Repository) As Variant
Dim sReturn As String
sReturn = ""
If m_FirstCompartmentVisible = True Then
sReturn = sReturn + "first,"
End If
If m_SecondCompartmentVisible = True Then
sReturn = sReturn + "second,"
End If
If m_ThirdCompartmentVisible = True Then
sReturn = sReturn + "third,"
End If
EA_QueryAvailableCompartments = sReturn
End Function
11.3.5.14.2 EA_GetCompartmentData
Details
This event occurs when Enterprise Architect is instructed to redraw an element. It requests that the Add-In
provide the data to populate the element's compartment.
Syntax
Function EA_GetCompartmentData(Repository As EA.Repository, sCompartment As String, sGUID As
String, oType As EA.ObjectType) As Variant
The EA_QueryAvailableCompartments function syntax contains the following elements:
oType ObjectType IN The type of the element for which data is being requested.
sCompartment String IN The name of the compartment for which data is being
requested.
sGUID String IN The GUID of the element for which data is being requested.
Return Value
Variant containing a formatted string. See the example below to understand the format.
Example
sCompartmentData = ""
Set oXML = New MSXML2.DOMDocument
sData = ""
oXML.loadXML (Repository.GetTreeXMLByGUID(sGUID))
Set Node1 = oXML.selectSingleNode("//ModelItem")
Case "ports"
Set Nodes = Node1.selectNodes("ModelItem[@Metatype=""Port""]")
For Each Node In Nodes
sData = sData + "Data&_eq_^" + Node.Attributes.getNamedItem("Name").nodeValue + "&_sc_^"
sData = sData + "GUID&_eq_^" + Node.Attributes.getNamedItem("GUID").nodeValue + "&_sc_^,"
Next
End Select
' If there's no data to display, then don't return any compartment data
If sData <> "" Then
sCompartmentData = sCompartmentData + "CompartmentData=" + sData + ";"
Else
sCompartmentData = ""
End If
EA_GetCompartmentData = sCompartmentData
Exit Function
ERR_GetCompartmentData:
EA_GetCompartmentData = ""
End Function
· EA_OnRunElementRule 1813
· EA_OnRunPackageRule 1813
· EA_OnRunDiagramRule 1814
· EA_OnRunConnectorRule 1814
· EA_OnRunAttributeRule 1815
· EA_OnRunMethodRule 1815
· EA_OnEndValidation 1813 can be intercepted to perform any required clean-up after validation has
completed.
11.3.5.15.1 EA_OnInitializeUserRules
Details
EA_OnInitializeUserRules is called on Enterprise Architect start-up and requests that the Add-In provide
Enterprise Architect with a rule category and list of rule IDs for model validation.
This function must be implemented by any Add-In that is to perform its own model validation. It must call
Project.DefineRuleCategory once and Project.DefineRule for each rule; these functions are described in the
Project Interface 1753 section.
Syntax
Sub EA_OnInitializeUserRules(Repository As EA.Repository)
The EA_OnInitializeUserRules function syntax contains the following elements:
11.3.5.15.2 EA_OnStartValidation
Details
EA_OnStartValidation notifies Add-Ins that a user has invoked the model validation command from Enterprise
Architect.
Syntax
Sub EA_OnStartValidation(Repository As EA.Repository, ParamArray Args() as Variant)
The EA_OnStartValidation function syntax contains the following elements:
Args ParamArray of Variant IN Contains a list of Rule Categories that are active for the
current invocation of model validation.
11.3.5.15.3 EA_OnEndValidation
Details
EA_OnEndValidation notifies Add-Ins that model validation has completed. Use this event to arrange any
clean-up operations arising from the validation.
Syntax
Sub EA_OnEndValidation(Repository As EA.Repository, ParamArray Args() as Variant)
The EA_OnEndValidation function syntax contains the following elements:
Args ParamArray of IN Contains a list of Rule Categories that were active for
Variant the invocation of model validation that has just
completed.
11.3.5.15.4 EA_OnRunElementRule
Details
This event is triggered once for each rule defined in EA_OnInitializeUserRules to be performed on each
element in the selection being validated. If you don't want to perform the rule defined by RuleID on the given
element, then simply return without performing any action. On performing any validation, if a validation error is
found, use the Repository.ProjectInterface.PublishResult method to notify Enterprise Architect.
Also look at EA_OnInitializeUserRules 1812 .
Syntax
Sub EA_OnRunElementRule(Repository As EA.Repository, RuleID As String, Element As EA.Element)
The EA_OnRunElementRule function syntax contains the following elements:
RuleID String IN The ID that was passed into the Project.DefineRule command.
11.3.5.15.5 EA_OnRunPackageRule
Details
This event is triggered once for each rule defined in EA_OnInitializeUserRules 1812 to be performed on each
package in the selection being validated. If you don't want to perform the rule defined by RuleID on the given
package, then simply return without performing any action. On performing any validation, if a validation error is
found, use the Repository.ProjectInterface.PublishResult method to notify Enterprise Architect.
Syntax
Sub EA_OnRunPackageRule(Repository As EA.Repository, RuleID As String, PackageID As Long)
The EA_OnRunElementRule function syntax contains the following elements:
PackageID Long IN The ID of the package to potentially perform validation on. Use
the Repository.GetPackageByID method to retrieve the package
object.
RuleID String IN The ID that was passed into the Project.DefineRule method.
11.3.5.15.6 EA_OnRunDiagramRule
Details
This event is triggered once for each rule defined in EA_OnInitializeUserRules 1812 to be performed on each
diagram in the selection being validated. If you don't want to perform the rule defined by RuleID on the given
diagram, then simply return without performing any action. On performing any validation, if a validation error is
found, use the Repository.ProjectInterface.PublishResult method to notify Enterprise Architect.
Syntax
Sub EA_OnRunDiagramRule(Repository As EA.Repository, RuleID As String, DiagramID As Long)
The EA_OnRunDiagramRule function syntax contains the following elements:
DiagramID Long IN The ID of the diagram to potentially perform validation on. Use
the Repository.GetDiagramByID method to retrieve the
diagram object.
RuleID String IN The ID that was passed into the Project.DefineRule command.
11.3.5.15.7 EA_OnRunConnectorRule
Details
This event is triggered once for each rule defined in EA_OnInitializeUserRules 1812 to be performed on each
connector in the selection being validated. If you don't want to perform the rule defined by RuleID on the given
connector, then simply return without performing any action. On performing any validation, if a validation error
is found, use the Repository.ProjectInterface.PublishResult method to notify Enterprise Architect.
Syntax
Sub EA_OnRunConnectorRule(Repository As EA.Repository, RuleID As String, ConnectorID As Long)
The EA_OnRunConnectorRule function syntax contains the following elements:
ConnectorI Long IN The ID of the connector to potentially perform validation on. Use
D the Repository.GetConnectorByID method to retrieve the
connector object.
RuleID String IN The ID that was passed into the Project.DefineRule command.
11.3.5.15.8 EA_OnRunAttributeRule
Details
This event is triggered once for each rule defined in EA_OnInitializeUserRules 1812 to be performed on each
attribute in the selection being validated. If you don't want to perform the rule defined by RuleID on the given
attribute, then simply return without performing any action. On performing any validation, if a validation error is
found, use the Repository.ProjectInterface.PublishResult method to notify Enterprise Architect.
Syntax
Sub EA_OnRunAttributeRule(Repository As EA.Repository, RuleID As String, AttributeGUID As String,
ObjectID As Long)
The EA_OnRunAttributeRule function syntax contains the following elements:
AttributeGUID String IN The GUID of the attribute to potentially perform validation on.
Use the Repository.GetAttributeByGuid method to retrieve
the attribute object.
ObjectID Long IN The ID of the object that owns the given attribute. Use the
Repository.GetObjectByID method to retrieve the object.
11.3.5.15.9 EA_OnRunMethodRule
Details
This event is triggered once for each rule defined in EA_OnInitializeUserRules 1812 to be performed on each
method in the selection being validated. If you don't want to perform the rule defined by RuleID on the given
method, then simply return without performing any action. On performing any validation, if a validation error is
found, use the Repository.ProjectInterface.PublishResult method to notify Enterprise Architect.
Syntax
Sub EA_OnRunMethodRule(Repository As EA.Repository, RuleID As String, MethodGUID As String,
ObjectID As Long)
The EA_OnRunMethodRule function syntax contains the following elements:
MethodGUI String IN The GUID of the method to potentially perform validation on.
D Use the Repository.GetMethodByGuid method to retrieve the
method object.
ObjectID Long IN The ID of the object that owns the given method. Use the
Repository.GetObjectByID method to retrieve the object.
RuleID String IN The ID that was passed into the Project.DefineRule command.
11.3.5.15.10 EA_OnRunParameterRule
Details
This event is triggered once for each rule defined in EA_OnInitializeUserRules 1812 to be performed on each
parameter in the selection being validated. If you don't want to perform the rule defined by RuleID on the given
parameter, then simply return without performing any action. On performing any validation, if a validation error
is found, use the Repository.ProjectInterface.PublishResult method to notify Enterprise Architect.
Syntax
Sub EA_OnRunParameterRule(Repository As EA.Repository, RuleID As String, ParameterGUID As
String, MethodGUID As String, ObjectID As Long)
The EA_OnRunMethodRule function syntax contains the following elements:
MethodGUID String IN The GUID of the method that owns the given parameter. Use
the Repository.GetMethodByGuid method to retrieve the
method object.
ObjectID Long IN The ID of the object that owns the given parameter. Use the
Repository.GetObjectByID method to retrieve the object.
Main.cs
using System;
namespace myAddin
{
public class Main
{
public Rules theRules;
public Main()
{
theRules = new Rules();
}
GC.Collect();
GC.WaitForPendingFinalizers();
}
lObjectID)
{
return;
}
Rules.cs
using System;
using System.Collections;
namespace myAddin
{
public class Rules
{
private string m_sCategoryID;
private System.Collections.ArrayList m_RuleIDs;
private System.Collections.ArrayList m_RuleIDEx;
public Rules()
{
m_RuleIDs = new System.Collections.ArrayList();
m_RuleIDEx = new System.Collections.ArrayList();
}
case cRule02:
return "Error Message 02";
case cRule03:
return "Error Message 03";
// TODO: add extra cases as much as necessary
}
return "";
}
11.3.5.16 EA_OnRetrieveModelTemplate
Details
EA_OnRetrieveModelTemplate requests that an Add-In pass a model template to Enterprise Architect.
This event occurs when a user executes the Add a New Model Using Wizard command to add a model that
has been defined by an MDG Technology. See the Incorporate Model Templates 1146 topic for details of how to
define such model templates.
Syntax
Function EA_OnRetrieveModelTemplate(Repository As EA.Repository,sLocation As String) As String
The EA_OnRetrieveModelTemplate function syntax contains the following elements:
sLocation String IN The name of the template requested. This should match the
location attribute in the <ModelTemplates> section of an MDG
Technology File. For more information, see the Incorporate Model
Templates in a Technology topic.
Return Value
Return a string containing the XMI export of the model that is being used as a template.
Example
Public Function EA_OnRetrieveModelTemplate(ByRef Rep As EA.Repository, ByRef sLocation As String) As String
Dim sTemplate As String
Select Case sLocation
Case "Templates\Template1.xml"
sTemplate = My.Resources.Template1
Case "Templates\Template2.xml"
sTemplate = My.Resources.Template2
Case "Templates\Template3.xml"
sTemplate = My.Resources.Template3
Case Else
MsgBox("Path for " & sLocation & " not found")
sTemplate = ""
End Select
EA_OnRetrieveModelTemplate = sTemplate
End Function
While it is possible to call AddTab() from any automation client, it is likely that you would call it from an Add-In,
and that Add-In is defined in the same OCX that provides the custom view.
Example C# code is shown below:
public void EA_MenuClick(EA.Repository Rep, string Location, string MenuName, string ItemName)
{
if( ItemName == "&Create" )
m_MyControl = (UserControl1) Rep.AddTab("C# Demo","ContDemo.UserControl1");
else
m_MyControl.ShowButton();
}
· MDG_GetProperty 1824
· MDG_Merge 1825
· MDG_NewClass 1826
· MDG_PostGenerate 1827
· MDG_PostMerge 1827
· MDG_PreGenerate 1828
· MDG_PreMerge 1828
· MDG_PreReverse 1829
· MDG_RunExe 1830
· MDG_View 1830
Details
MDG_BuildProject enables the Add-In to handle file changes caused by generation. This function is called in
response to a user selecting the Add-Ins | Build Project menu option.
Respond to this event by compiling the project source files into a running application.
Also look at MDG_RunExe 1830 .
Syntax
Sub MDG_BuildProject(Repository As EA.Repository, PackageGuid As String)
PackageGuid String IN The GUID identifying the Enterprise Architect package sub-
tree that is controlled by the Add-In.
Return Value
None.
11.3.7.1.2 MDGConnect
Details
MDG_Connect enables the Add-In to handle user driven request to connect a model branch to an external
application. This function is called when the user attempts to connect a particular Enterprise Architect package
to an as yet unspecified external project. This event enables the Add-In to interact with the user to specify
such a project.
The Add-In is responsible for retaining the connection details, which should be stored on a per-user or per-
workstation basis. That is, users who share a common Enterprise Architect model over a network should be
able to connect and disconnect to external projects independently of one another.
The Add-In should therefore not store connection details in an Enterprise Architect repository. A suitable place
to store such details would be:
SHGetFolderPath(..CSIDL_APPDATA..)\AddinName.
The PackageGuid parameter is the same identifier as required for most events relating to the MDG Add-In.
Therefore it is recommended that the connection details be indexed using the PackageGuid value.
The PackageID parameter is provided to aid fast retrieval of package details from Enterprise Architect, should
this be required.
Also look at MDG_Disconnect 1823 .
Syntax
Function MDG_Connect(Repository As EA.Repository, PackageID as Long, PackageGuid As String) As
Long
The MDG_Connect function syntax contains the following elements:
PackageGui String IN The unique ID identifying the project provided by the Add-In
d when a connection to a project branch of an Enterprise
Architect model was first established.
PackageID Long IN The PackageID of the Enterprise Architect package the user
has requested to have connected to an external project.
Return Value
Returns a non-zero to indicate that a connection has been made; a zero indicates that the user has not
nominated a project and connection should not proceed.
11.3.7.1.3 MDGDisconnect
Details
MDG_Disconnect enables the Add-In to respond to user requests to disconnect the model branch from an
external project. This function is called when the user attempts to disconnect an associated external project.
The Add-In is required to delete the details of the connection.
Also look at MDG_Connect 1822 .
Syntax
Function MDG_Disconnect(Repository As EA.Repository, PackageGuid As String) As Long
The MDG_Disconnect function syntax contains the following elements:
PackageGui String IN The GUID identifying the Enterprise Architect package sub-tree
d that is controlled by the Add-In.
Return Value
Returns a non-zero to indicate that a disconnection has occurred enabling Enterprise Architect to update the
user interface. A zero indicates that the user has not disconnected from an external project.
11.3.7.1.4 MDGGetConnectedPackages
Details
MDG_GetConnectedPackages enables the Add-In to return a list of current connection between Enterprise
Architect and an external application. This function is called when the Add-In is first loaded, and is expected to
return a list of the available connections to external projects for this Add-In.
Also look at MDG_Connect 1822 .
Syntax
Function MDG_GetConnectedPackages(Repository As EA.Repository) As Variant
The MDG_GetConnectedPackages function syntax contains the following elements:
Return Value
Returns an array of GUID strings representing individual Enterprise Architect packages.
11.3.7.1.5 MDGGetProperty
Details
MDG_GetProperty provides miscellaneous Add-In details to Enterprise Architect. This function is called by
Enterprise Architect to poll the Add-In for information relating to the PropertyName. This event should occur in
as short a duration as possible as Enterprise Architect does not cache the information provided by the
function.
Values corresponding to the following PropertyNames must be provided:
· IconID - Return the name of a DLL and a resource identifier in the format #ResID, where the resource ID
indicates an Icon; for example, c:\program files\myapp\myapp.dlll#101
· Language - Return the default language that Classes should be assigned when they are created in
Enterprise Architect
· HiddenMenus - Return one or more values from the MDGMenus enumeration to hide menus that do not
apply to your Add-In. For example:
Syntax
Function MDG_GetProperty(Repository As EA.Repository, PackageGuid As String, PropertyName As
String) As Variant
The MDG_GetProperty function syntax contains the following elements:
PackageGuid String IN The GUID identifying the Enterprise Architect package sub-tree
that is controlled by the Add-In.
PropertyNam String IN The name of the property that is used by Enterprise Architect.
See Details for the possible values.
Return Value
See Details, above.
11.3.7.1.6 MDGMerge
Details
MDG_Merge enables the Add-In to jointly handle changes to both the model branch and the code project that
the model branch is connected to. This event should be called whenever the user has asked to merge their
model branch with its connected code project, or whenever the user has established a new connection to a
code project. The purpose of this event is to enable the Add-In to interact with the user to perform a merge
between the model branch and the connected project.
Also look at MDG_Connect 1822 , MDG_PreMerge 1828 and MDG_PostMerge 1827 .
Syntax
Function MDG_Merge(Repository As EA.Repository, PackageGuid As String, SynchObjects As Variant,
SynchType As String, ExportObjects As Variant, ExportFiles As Variant, ImportFiles As Variant,
IgnoreLocked As String, Language As String) As Long
The MDG_Merge function syntax contains the following elements:
ExportFiles Variant OUT A string array containing the list of files for each model object
chosen for export by the Add-In. Each entry in this array must
have a corresponding entry in the ExportObjects parameter at
the same array index, so ExportFiles(2) must contain the
filename of the object by ExportObjects(2).
ExportObject Variant OUT The string array containing the list of new model objects (in
s Object ID format) to be exported by Enterprise Architect to the
code project.
IgnoreLocked String OUT A value indicating whether to ignore any files locked by the code
project (that is, "TRUE" or "FALSE".
ImportFiles Variant OUT A string array containing the list of code files made available to
the code project to be newly imported to the model. Enterprise
Architect imports each file listed in this array for import into the
connected model branch.
Language String OUT The string value containing the name of the code language
supported by the code project connected to the model branch.
PackageGuid String IN The GUID identifying the Enterprise Architect package sub-tree
that is controlled by the Add-In.
SynchObjects Variant OUT A string array containing a list of objects (Object ID format) to be
jointly synchronized between the model branch and the project.
See below 1826 for the format of the Object IDs.
SynchType String OUT The value determining the user-selected type of synchronization
to take place. See below 1826 for a list of valid values.
Return Value
Return a non-zero if the merge operation completed successfully and a zero value when the operation has
been unsuccessful.
Merge
A merge consists of three major operations:
· Export: Where newly created model objects are exported into code and made available to the code
project.
· Import: Where newly created code objects, Classes and such things are imported into the model.
· Synchronize: Where objects available both to the model and in code are jointly updated to reflect changes
made in either the model, code project or both.
Synchronize Type
The Synchronize operation can take place in one of four different ways. Each of these ways corresponds to a
value returned by SynchType:
· None: (SynchType = 0) No synchronization is to be performed
· Forward: (SynchType = 1) Forward synchronization, between the model branch and the code project is to
occur
· Reverse: (SynchType = 2) Reverse synchronization, between the code project and the model branch is to
occur
· Both: (SynchType = 3) Reverse, then Forward synchronization's are to occur.
Object ID Format
Each of the Object IDs listed in the string arrays described above should be composed in the following format:
(@namespace)*(#class)*($attribute|%operation|:property)*
11.3.7.1.7 MDGNewClass
Details
MDG_NewClass enables the Add-In to alter details of a Class before it is created.
This method is called when Enterprise Architect generates a new Class, and requires information relating to
assigning the language and file path. The file path should be passed back as a return value and the language
should be passed back via the language parameter.
Also look at MDG_PreGenerate 1828 .
Syntax
Function MDG_NewClass(Repository As EA.Repository, PackageGuid As String, CodeID As String,
Language As String) As String
The MDG_NewClass function syntax contains the following elements:
CodeID String IN A string used to identify the code element before it is created, for
more information see MDG_View 1830 .
Language String OUT A string used to identify the programming language for the new
Class. The language must be supported by Enterprise Architect.
PackageGui String IN The GUID identifying the Enterprise Architect package sub-tree
Return Value
Returns a string containing the file path that should be assigned to the Class.
11.3.7.1.8 MDGPostGenerate
Details
MDG_PostGenerate enables the Add-In to handle file changes caused by generation.
This event is called after Enterprise Architect has prepared text to replace the existing contents of a file.
Responding to this event enables the Add-In to write to the linked application's user interface rather than
modify the file directly.
When the contents of a file are changed, Enterprise Architect passes FileContents as a non-empty string. New
files created as a result of code generation are also sent through this mechanism, enabling Add-Ins to add
new files to the linked project's file list.
When new files are created Enterprise Architect passes FileContents as an empty string. When a non-zero is
returned by this function, the Add-In has successfully written the contents of the file. A zero value for the return
indicates to Enterprise Architect that the file must be saved.
Also look at MDG_PreGenerate 1828 .
Syntax
Function MDG_PostGenerate(Repository As EA.Repository, PackageGuid As String, FilePath As
String, FileContents As String) As Long
The MDG_PostGenerate function syntax contains the following elements:
FilePath String IN The path of the file Enterprise Architect intends to overwrite.
PackageGui String IN The GUID identifying the Enterprise Architect package sub-tree
d that is controlled by the Add-In.
Return Value
Return value depends on the type of event that this function is responding to (see Details, above). This
function is required to handle two separate and distinct cases.
11.3.7.1.9 MDGPostMerge
Details
MDG_PostMerge is called after a merge process has been completed.
This function is called by Enterprise Architect after the merge process has been completed.
Note:
File save checking should not be performed with this function, but should be handled by MDG_PreGenerate
1828 , MDG_PostGenerate 1827 and MDG_PreReverse 1829 .
Syntax
Function MDG_PostMerge(Repository As EA.Repository, PackageGuid As String) As Long
The MDG_PostMerge function syntax contains the following elements:
PackageGui String IN The GUID identifying the Enterprise Architect package sub-tree
d that is controlled by the Add-In.
Return Value
Return a zero value if the post-merge process has failed, a non-zero return indicates that the post-merge has
been successful. Enterprise Architect assumes a non-zero return if this method is not implemented
11.3.7.1.10 MDGPreGenerate
Details
MDG_PreGenerate enables the Add-In to deal with unsaved changes. This function is called immediately
before Enterprise Architect attempts to generate files from the model. A possible use of this function would be
to prompt the user to save unsaved source files.
Also look at MDG_PostGenerate 1827 .
Syntax
Function MDG_PreGenerate(Repository As EA.Repository, PackageGuid As String) As Long
The MDG_PreGenerate function syntax contains the following elements:
PackageGuid String IN The GUID identifying the Enterprise Architect package sub-tree
that is controlled by the Add-In.
Return Value
Return a zero value to abort generation. Any other value enables the generation to continue.
11.3.7.1.11 MDGPreMerge
Details
MDG_PreMerge is called after a merge process has been initiated by the user and before Enterprise Architect
performs the merge process.
This event is called after a user has performed their interactions with the merge screen and has confirmed the
merge with the OK button, but before Enterprise Architect performs the merge process using the data
provided by the MDG_Merge call, before any changes have been made to the model or the connected project.
This event is made available to provide the Add-In with the opportunity to generally set internal Add-In flags to
augment the MDG_PreGenerate, MDG_PostGenerate and MDG_PreReverse events.
Note:
File save checking should not be performed with this function, but should be handled by MDG_PreGenerate
1828 , MDG_PostGenerate 1827 and MDG_PreReverse 1829 .
Syntax
Function MDG_PreMerge(Repository As EA.Repository, PackageGuid As String) As Long
The MDG_PreMerge function syntax contains the following elements:
PackageGui String IN The GUID identifying the Enterprise Architect package sub-tree
d that is controlled by the Add-In.
Return Value
A return value of zero indicates that the merge process will not occur. If the value is not zero the merge
process will proceed. If this method is not implemented then it is assumed that a merge process is used.
11.3.7.1.12 MDGPreReverse
Details
MDG_PreReverse enables the Add-In to save file changes before being imported into Enterprise Architect.
This function operates on a list of files that are about to be reverse-engineered into Enterprise Architect. If the
user is working on unsaved versions of these files in an editor, you could either prompt the user or save
automatically.
Also look at MDG_PostGenerate 1827 and MDG_PreGenerate 1828 .
Syntax
Sub MDG_PreReverse(Repository As EA.Repository, PackageGuid As String, FilePaths As Variant)
The MDG_PreReverse function syntax contains the following elements:
PackageGui String IN The GUID identifying the Enterprise Architect package sub-tree
d that is controlled by the Add-In.
FilePaths String array IN An array of filepaths pointed to the files that are to be reverse
engineered.
Return Value
None.
11.3.7.1.13 MDGRunExe
Details
MDG_RunExe enables the Add-In to run the target application. This function is called when the user selects
the Add-Ins | Run Exe menu option. Respond to this event by launching the compiled application.
Also look at MDG_BuildProject 1822 .
Syntax
Sub MDG_RunExe(Repository As EA.Repository, PackageGuid As String)
The MDG_RunExe function syntax contains the following elements:
PackageGui String IN The GUID identifying the Enterprise Architect package sub-tree
d that is controlled by the Add-In.
Return Value
None.
11.3.7.1.14 MDGView
Details
MDG_View enables the Add-In to display user specified code elements. This function is called by Enterprise
Architect when the user asks to view a particular code element. This enables the Add-In to present that
element in its own way, usually in a code editor.
Syntax
Function MDG_View(Repository As EA.Repository, PackageGuid As String, CodeID as String) As Long
The MDG_View function syntax contains the following elements:
PackageGuid String IN The GUID identifying the Enterprise Architect package sub-tree
that is controlled by the Add-In.
Return Value
Return a non-zero value to indicate that the Add-In has processed the request. Returning a zero value results
in Enterprise Architect employing the standard viewing process which is to launch the associated source file.
XII
Glossary of Terms | 1833
12 Glossary of Terms
A B C D E F G H I J L
1834 1836 1837 1840 1842 1843 1844 1845 1846 1848 1849
M N O P Q R S T U V
1850 1852 1853 1854 1857 1858 1860 1863 1864 1865
12.1 A
abstract class
A Class that cannot be directly instantiated.
Contrast: concrete class
abstraction
The essential characteristics of an entity that distinguish it from all other kinds of entities. An abstraction
defines a boundary relative to the perspective of the viewer.
action
The specification of an executable statement that forms an abstraction of a computation procedure. An
action typically results in a change in the state of the system, and can be realized by sending a
message to an object or modifying a connector or a value of an attribute.
action sequence
An expression that resolves to a sequence of actions.
action state
A state that represents the execution of an atomic action, typically the invocation of an operation.
activation
The execution of an action.
active class
A Class whose instances are active objects. When instantiated, an active Class controls its execution.
Rather than being invoked or activated by other objects, it can operate standalone, and define its own
thread of behavior.
See also: active object
active object
An object that owns a thread and can initiate control activity. An instance of active Class.
See also: active class, thread
activity
Defines the bounds for the structural organization that contains a set of basic or fundamental behaviors.
It can used to model procedural type application development for system design through to modeling
business processes in organizational structures and work flow.
activity diagram
A diagram used to model procedural type application development for system design through to
modeling business processes in organizational structures and work flow.
activity graph
A special case of a State Machine that is used to model processes involving one or more classifiers.
Contrast: state chart diagram
actor [class]
A coherent set of roles that users of Use Cases play when interacting with these Use Cases. An Actor
has one role for each Use Case with which it communicates.
actual parameter
A binding for a parameter that resolves to a run-time instance.
Synonym: argument
Contrast: (formal) parameter
aggregate [class]
A Class that represents the 'whole' in an Aggregation (whole-part) relationship.
See also: aggregation
aggregation
A special form of Association that specifies a whole-part relationship between the Aggregate (whole)
and a component part.
See also: composition
analysis
The part of the software development process whose primary purpose is to formulate a model of the
problem domain. Analysis focuses on what to do, design focuses on how to do it.
Contrast: design
analysis diagram
A diagram used to capture high level business processes and early models of system behavior and
elements. It is less formal than some other diagrams, but provides a good means of capturing the
essential business characteristics and requirements.
analysis time
Refers to something that occurs during an analysis phase of the software development process.
See also: modeling time, run time, compile time
Contrast: design time
architecture
The organizational structure and associated behavior of a system. An architecture can be recursively
decomposed into parts that interact through interfaces, relationships that connect parts, and constraints
for assembling parts. Parts that interact through interfaces include Classes, Components and
subsystems.
argument
A binding for a parameter that resolves to a run-time instance.
Synonym: actual parameter
Contrast: (formal) parameter
artifact
A physical piece of information that is used or produced by a business or development process.
Examples of Artifacts include models, source files, scripts, and binary executable files. An Artifact can
constitute the implementation of a deployable component.
Synonym: product
Contrast: component
assembly
A connector that bridges the required interface of a component with the provided interface of a second
component.
association
The semantic relationship between two or more classifiers that specifies connections among their
instances.
See also: link
association class
A model element that has both Association and Class properties. An Association Class can be seen as
an Association that also has Class properties, or as a Class that also has Association properties.
See also: class
association end
The endpoint of an Association, which connects the Association to a classifier.
See also: classifier, link end
attribute
A feature within a classifier that describes a range of values that instances of the classifier can hold.
auxiliary class
A stereotyped Class that supports another more central or fundamental Class, typically by implementing
secondary logic or control flow. Auxiliary Classes are typically used together with focus Classes, and
are particularly useful for specifying the secondary business logic or control flow of components during
design.
See also: focus class
12.2 B
behavior
The observable effects of an operation or event, including its results.
behavioral diagram
A diagram that depicts the behavioral features of a system or business process. Behavioral diagrams
include Activity diagrams, State Machine diagrams, Communication diagrams, Interaction Overview
diagrams, Sequence diagrams, Timing diagrams and Use Case diagrams.
behavioral feature
A dynamic feature of a model element, such as an operation or method.
binary association
An Association between two Classes. A special case of an N-ary Association.
Contrast: n-ary association
binding
The creation of a model element from a template by supplying arguments for the parameters of the
template.
bookmark
A marker in a Rich Text Format document that enables you to link inner sections of a document into a
master document (using the Word 'Insert File' function).
boolean
An enumeration whose values are true and false.
boolean expression
An expression that evaluates to a boolean value.
boundary
1. A stereotyped Class that models some system boundary – typically a user interface screen. It is used
in the conceptual phase to capture user interaction with the system at a screen level (or some other
boundary interface type). It is often used in Sequence and Robustness (Analysis) diagrams. It is the
View in the Model-View-Controller pattern.
2. A System Boundary element is used to delineate a particular part of the system.
12.3 C
C++
An object-oriented programming language based on the earlier 'C' language.
call
An action state that invokes an operation on a classifier.
cardinality
The number of elements in a set.
Contrast: multiplicity
CASE
Computer Aided Software Engineering. A tool designed for the purpose of modeling and building
software systems.
child
In a Generalization relationship, the specialization of another element, the parent.
See also: subclass, subtype
Contrast: parent
choice
A pseudo-state used to compose complex transitional paths, where the outgoing transition path is
decided by dynamic, run-time conditions determined by the actions performed by the State Machine on
the path leading to the choice.
class
A description of a set of objects that share the same attributes, operations, methods, relationships and
semantics. A Class can use a set of interfaces to specify collections of operations it provides to its
environment.
See also: interface, object
class diagram
A diagram that shows a collection of declarative (static) model elements, such as Classes, types, and
their contents and relationships.
See also: object diagram
classification
The assignment of an object to a classifier.
See also: dynamic classification, multiple classification and static classification.
classifier
A mechanism that describes behavioral and structural features. Classifiers include Interfaces, Classes,
datatypes, and components.
client
A classifier that requests a service from another classifier.
Contrast: supplier
collaboration
The specification of how an operation or classifier, such as a Use Case, is realized by a set of
classifiers and Associations playing specific roles used in a specific way. The Collaboration defines an
interaction.
See also: interaction
collaboration diagram
Used pre-UML 2.0. Now called a Communication diagram.
collaboration occurrence
Uses an Occurrence to apply a pattern defined by a Collaboration to a specific situation.
combined fragment
A combined fragment reflects a piece or pieces of interaction (called interaction operands) controlled by
an interaction operator, whose corresponding boolean conditions are known as interaction constraints.
It appears graphically as a transparent window, divided by horizontal dashed lines for each operand.
comment
communication diagram
A diagram that shows the interactions between elements at run-time in much the same manner as a
Sequence diagram. However, Communication diagrams are used to visualize inter-object relationships,
while Sequence diagrams are more effective at visualizing processing over time.
See also: collaboration diagram, object diagram
compile time
Refers to something that occurs during the compilation of a software module.
See also: modeling time, run time, analysis time, design time
component
A modular, deployable, and replaceable part of a system that encapsulates implementation and
exposes a set of interfaces. A Component is typically specified by one or more classifiers (such as
implementation Classes) that reside on it, and can be implemented by one or more artifacts (such as
binary, executable, or script files).
See also: module
Contrast: artifact, product
component diagram
A diagram that shows the organizations and dependencies among Components.
composite [class]
A Class that is related to one or more Classes by a Composition relationship.
See also: composition
composite state
A State that consists of either concurrent (orthogonal) substates or sequential (disjoint) substates.
See also: substate, concurrent substate, disjoint substate
composition
A form of Aggregation that requires that a part instance be included in at most one Composite at a time,
and that the Composite object is responsible for the creation and destruction of the parts. Composition
can be recursive.
Synonym: composite aggregation
See also: composite, aggregation
concrete class
A Class that can be directly instantiated.
Contrast: abstract class
concurrency
The occurrence of two or more activities during the same time interval. Concurrency can be achieved by
interleaving or simultaneously executing two or more threads.
See also: thread
concurrent substate
A substate that can be held simultaneously with other substates contained in the same composite
State.
See also: composite state
Contrast: disjoint substate
connector
A logical link between model elements. Can be structural, dynamic or possessive.
constraint
1. A semantic condition or restriction. Certain constraints are predefined in the UML, others can be user
defined. Constraints are one of three extensibility mechanisms in UML.
container
1. An instance that exists to contain other instances, and that provides operations to access or iterate
over its contents.(for example, arrays, lists, sets).
2. A component that exists to contain other components.
containment hierarchy
A namespace hierarchy consisting of model elements, and the containment relationships that exist
between them. A containment hierarchy forms a graph.
context
A view of a set of related modeling elements for a particular purpose, such as specifying an operation.
continuation
A Continuation is used in seq and alt combined fragments, to indicate the branches of continuation an
operand follows.
control
A stereotyped Class that represents a controlling entity or manager. A Control organizes and schedules
other activities and elements. It is the controller of the Model-View-Controller pattern.
control flow
A connector linking two nodes in an activity diagram. Control Flow connectors start a node's activity
when the preceding node's action is finished.
12.4 D
database schema
The description of a database structure. It defines tables and fields and the relationship between them.
datastore
An element used to define permanently stored data. A token of data that is stored in the Datastore is
stored permanently. A token of data that comes out of the Datastore is a copy of the original data. The
tokens imported are kept for the life of the Activity in which it exists.
datatype
A descriptor of a set of values that lack identity and whose operations do not have side effects.
Datatypes include primitive pre-defined types and user-definable types. Pre-defined types include
numbers, string and time. User-definable types include enumerations.
decision
An element of an Activity diagram that indicates a point of conditional progression: if a condition is true,
then processing continues one way, if not, then another.
delegate
A connector that defines the internal assembly of a component's external ports and interfaces. Using a
Delegate connector wires the internal workings of the system to the outside world, by a delegation of
the external interfaces' connections.
delegation
The ability of an object to issue a message to another object in response to a message. Delegation can
be used as an alternative to inheritance.
Contrast: inheritance
dependency
A relationship between two modeling elements, in which a change to one modeling element (the
independent element) affects the other modeling element (the dependent element).
deployment
A type of Dependency relationship that indicates the deployment of an artifact onto a node or
executable target.
deployment diagram
A diagram that shows the configuration of run-time processing nodes and the components, processes,
and objects that live on them. Components represent run-time manifestations of code units.
See also: component diagrams
deployment specification
Specifies parameters guiding deployment of an artifact, as is common with most hardware and software
technologies.
derived element
A model element that can be computed from another element, but that is shown for clarity or that is
included for design purposes even though it adds no semantic information.
design
The part of the software development process whose primary purpose is to decide how the system is to
be implemented. During design, strategic and tactical decisions are made to meet the required
functional and quality requirements of a system.
Contrast: analysis
design time
Refers to something that occurs during a design phase of the software development process.
See also: modeling time, run time, compile time
Contrast: analysis time
development process
A set of partially ordered steps performed for a given purpose during software development, such as
constructing models or implementing models.
diagram
A graphical presentation of a collection of model elements, most often rendered as a connected graph
of arcs (relationships) and vertices (other model elements). UML supports 14 diagram types, and
Enterprise Architect extends these with seven more. Add-Ins, technologies and profiles can provide
further diagram types.
diagram gate
A simple graphical way to indicate the point at which messages can be transmitted into and out of
Interaction Fragments.
diagram view
The Enterprise Architect workspace area where the UML diagrams are displayed.
disjoint substate
A substate that cannot be held simultaneously with other substates contained in the same composite
State.
See also: composite state, substate
Contrast: concurrent substate
distribution unit
A set of objects or components that are allocated to a process or a processor as a group. A distribution
unit can be represented by a run-time composite or an Aggregate.
domain
An area of knowledge or activity characterized by a set of concepts and terminology understood by
practitioners in that area.
dynamic classification
A semantic variation of Generalization in which an object can change its classifier.
See also: multiple classification
Contrast: static classification
12.5 E
element
1. An atomic constituent of a model.
2. A model object of any type, such as Class, Component, Node or Object.
endpoint
Used in Interaction diagrams to reflect a lost message in sequence.
entity
A store or persistence mechanism that captures the information or knowledge in a system. It is the
Model in the Model-View-Controller pattern.
entry action
An action executed upon entering a state in a State Machine regardless of the transition taken to reach
that state.
entry point
Used to define where external states can enter a Sub Machine.
enumeration
A list of named values used as the range of a particular attribute type. For example, RGBColor = {red,
green, blue}. Boolean is a predefined enumeration with values from the set {false, true}.
event
The specification of a significant occurrence that has a location in time and space. In the context of
State diagrams, an event is an occurrence that can trigger a transition.
exception handler
An element that defines the group of operations to carry out when an exception occurs.
exit action
An action executed upon exiting a State in a State Machine regardless of the transition taken to exit that
State.
exit point
Used in Sub Machine states and State Machines to denote the point where the machine is exited and
the transition sourcing this exit point, for Sub Machines, is triggered. Exit points are a type of pseudo-
state used in the State Machine diagram.
export
In the context of packages, to make an element visible outside its enclosing namespace.
See also: visibility
Contrast: import
expose interface
A toolbox icon that is a graphical way to depict the required and supplied interfaces of a Component,
Class or Part.
expression
A string that evaluates to a value of a particular type. For example, the expression (7 + 5 * 3) evaluates
to a value of type number. A relationship from an extension Use Case to a base Use Case, specifying
how the behavior defined for the extension Use Case augments (subject to conditions specified in the
extension) the behavior defined for the base Use Case. The behavior is inserted at the location defined
by the extension point in the base Use Case. The base Use Case does not depend on performing the
behavior of the extension Use Case.
See also: extend, include
extend
A connector used to indicate that an element extends the behavior of another. Extensions are used in
Use Case models to indicate one Use Case (optionally) extends the behavior of another.
See also: expression, include
12.6 F
facade
A stereotyped package containing only references to model elements owned by another package. It is
used to provide a 'public view' of some of the contents of a package.
feature
A property, like operation or attribute, that is encapsulated within a classifier, such as an Interface, a
Class, or a Datatype.
final
A pseudo-state that indicates an end.
final state
A special kind of State signifying that the enclosing composite State or the entire State Machine is
completed.
fire
To execute a State transition.
See also: transition
flow final
An element that depicts an exit from the system, as opposed to the Activity Final, which represents the
completion of the activity.
focus class
A stereotyped Class that defines the core logic or control flow for one or more auxiliary Classes that
support it. Focus Classes are typically used together with one or more auxiliary Classes, and are
particularly useful for specifying the core business logic or control flow of components during design.
See also: auxiliary class
focus of control
A symbol on a Sequence diagram that shows the period of time during which an object is performing an
action, either directly or through a subordinate procedure.
forward engineering
The process of generating source code from the UML model.
fork
Used in State Machine diagrams as pseudo-states. With respect to State Machine diagrams, a Fork
pseudo-state signifies that its incoming transition comes from a single State, and it has multiple
outgoing transitions.
Contrast: join
framework
A stereotyped package containing model elements that specify a reusable architecture for all or part of
a system. Frameworks typically include Classes, Patterns or templates. When frameworks are
specialized for an application domain, they are sometimes referred to as Application frameworks.
See also: pattern
12.7 G
generalizable element
A model element that can participate in a Generalization relationship.
See also: generalization
generalization
A taxonomic relationship between a more general element and a more specific element. The more
specific element is fully consistent with the more general element and contains additional information.
An instance of the more specific element can be used where the more general element is allowed.
See also: generalizable element, inheritance
guard condition
A condition that must be satisfied in order to enable an associated transition to fire.
12.8 H
history state
There are two types of History pseudo-states defined in UML: shallow History and deep History. A
shallow History sub-state is used to represent the most recently active sub-state of a composite State. A
deep History sub-state, in contrast, reflects the most recent active configuration of the composite State.
12.9 I
implementation
A definition of how something is constructed or computed. For example, a Class is an implementation of
a type, a method is an implementation of an operation.
implementation class
A stereotyped Class that specifies the implementation of a Class in some programming language (for
example, C++, Smalltalk, Java) in which an instance can not have more than one Class. An
Implementation Class is said to realize a type if it provides all of the operations defined for the type with
the same behavior as specified for the type's operations.
See also: type
implementation inheritance
The inheritance of the implementation of a more general element. Includes inheritance of the interface.
Contrast: interface inheritance
import
In the context of packages, a dependency that shows the packages whose Classes can be referenced
within a given package (including packages recursively embedded within it).
See also: visibility
Contrast: export
include
A relationship from a base Use Case to an inclusion Use Case, specifying how the behavior for the
base Use Case contains the behavior of the inclusion Use Case. The behavior is included at the
location that is defined in the base Use Case. The base Use Case depends on performing the behavior
of the inclusion Use Case, but not on its structure (that is, attributes or operations).
See also: extend, expression
inheritance
The mechanism by which more specific elements incorporate the structure and behavior of more
general elements related by behavior.
See also: generalization
Contrast: delegation
initial state
A pseudo-state used to denote the default state of a composite State; there can be one initial vertex in
each region of the composite State.
instance
An entity that has a unique identity, a set of operations that can be applied to it, and a state that stores
the effects of the operations.
See also: object
interaction
A specification of how stimuli are sent between instances to perform a specific task. The interaction is
defined in the context of a collaboration.
See also: collaboration
interaction diagram
A generic term that applies to several types of diagrams that emphasize object interactions. These
include Timing diagrams, Sequence diagrams, Interaction Overview diagrams and Communication
diagrams.
interaction occurrence
A reference to an existing interaction element. Interaction occurrences are visually represented by a
frame, with ref in the frame's title space. The diagram name is indicated in the frame contents.
interface
A named set of operations that characterize the behavior of an element.
interface inheritance
The inheritance of the interface of a more general element. Does not include inheritance of the
implementation.
Contrast: implementation inheritance
internal transition
A transition signifying a response to an event without changing the state of an object.
interrupt flow
An Enterprise Architect-defined toolbox icon used to define the exception handler and interruptible
activity region concepts.
12.10 J
Java
A fully object-oriented, cross platform language based on elements from Smalltalk, C++ and other OO
languages.
join
Used in State Machine diagrams and in Activity diagrams to synchronize multiple flows.
Contrast: fork
junction
Junction pseudo-states are used to design complex transitional paths. A Junction can be used to
combine, or merge, multiple paths into a shared transition path or to split an incoming path into multiple
paths.
12.11 L
layer
The organization of classifiers or packages at the same level of abstraction. A layer represents a
horizontal slice through an architecture, whereas a partition represents a vertical slice.
Contrast: partition
lifeline
An individual participant in an interaction (that is, Lifelines cannot have multiplicity). A Lifeline
represents a distinct connectable element.
link
A semantic connector among a tuple of objects. An instance of an Association.
See also: association
link end
An instance of an Association end.
See also: association end, classifier
local path
A relative path on a local machine, enabling developers to store shared source code in machine specific
directories, but still generate and synchronize code.
12.12 M
maintenance
The support of a software system after it is deployed.
manifest
A relationship that indicates that the artifact source embodies the target model element. Stereotypes
can be added to Enterprise Architect to classify the type of manifestation of the model element.
message
Messages indicate a flow of information, or transition of control, between elements. Messages are used
by Communication diagrams, Sequence diagrams, Interaction Overview diagrams and Timing
diagrams.
message endpoint
An element that defines an endpoint of a Lifeline, such as a State or Value Lifeline in a Timing diagram.
message label
Used for messages sent between Lifelines to make the diagram appear less cluttered. Labels with the
same name indicate that a message can be interrupted.
metaclass
A Class whose instances are Classes. Metaclasses are typically used to construct metamodels.
metafile
A vector-based image format native to Windows. Supports high detail and excellent scaling. Typically
used for saving diagram images for placement in documents. Comes in Placeable (an older format) and
Enhanced (current standard format).
meta-metamodel
A model that defines the language for expressing a metamodel. The relationship between a meta-
metamodel and a metamodel is analogous to the relationship between a metamodel and a model.
metamodel
A model that defines the language for expressing a model.
meta-object
A generic term for all meta-entities in a meta-modeling language. For example, meta-types, meta-
classes, meta-attributes, and meta-associations.
method
The implementation of an operation. It specifies the algorithm or procedure associated with an
operation.
model [MOF]
An abstraction of a physical system with a certain purpose.
See also: physical system
Usage note: In the context of the MOF specification, which describes a meta-metamodel, the meta-
metamodel is for brevity frequently referred to simply as the model.
model aspect
A dimension of modeling that emphasizes particular qualities of the metamodel. For example, the
structural model aspect emphasizes the structural qualities of the metamodel.
model elaboration
The process of generating a repository type from a published model. Includes the generation of
interfaces and implementations which enables repositories to be instantiated and populated based on,
and in compliance with, the model elaborated.
model library
A stereotyped package containing model elements that are intended to be reused by other packages. A
model library differs from a profile in that a model library does not extend the metamodel using
stereotypes and tagged definitions. A model library is analogous to a Class library in some
programming languages.
modeling time
Refers to something that occurs during the modeling phase of the software development process. It
includes analysis time and design time.
Usage note: When discussing object systems, it is often important to distinguish between modeling-time
and run-time concerns.
See also: analysis time, design time, compile time
Contrast: run time
module
A software unit of storage and manipulation. Modules include source code modules, binary code
modules and executable code modules.
See also: component
MOF
Meta-Object Facility, an Object Management Group (OMG) standard. MOF originated in the UML, when
the OMG required a Meta-Modeling architecture to define the UML. MOF is designed as a four-layered
architecture.
multiple classification
A semantic variation of Generalization in which an object can belong directly to more than one
classifier.
See also: static classification, dynamic classification
multiple inheritance
A semantic variation of Generalization in which a type can have more than one supertype.
Contrast: single inheritance
multiplicity
A specification of the range of enableable cardinalities that a set can assume. Multiplicity specifications
can be given for roles within Associations, Parts within Composites, repetitions and other purposes.
Essentially a multiplicity is a (possibly infinite) subset of the non-negative integers.
Contrast: cardinality
multi-valued [MOF]
A model element with multiplicity defined whose Multiplicity Type:: upper attribute is set to a number
greater than one. The term multi-valued does not pertain to the number of values held by, for example,
an attribute or parameter, at any point in time.
Contrast: single-valued
12.13 N
name
A string used to identify a model element.
namespace
A part of the model in which the names can be defined and used. Within a namespace, each name has
a unique meaning.
See also: name
n-ary association
An Association among three or more Classes. Each instance of the Association is an n-tuple of values
from the respective Classes.
Contrast: binary association
nesting
A connector used as an alternative membership notation to indicate nested members within an element;
for example, a package that has nested members. The nested members of a package could also be
shown inside the package rather than linked by the Nesting connector.
node
A classifier that represents a run-time computation resource, which generally has at least a memory
and often processing capability. Run-time objects and components can reside on nodes.
12.14 O
object
An entity with a well-defined boundary and identity that encapsulates state and behavior. State is
represented by attributes and relationships, behavior is represented by operations, methods and State
Machines. An Object is an instance of a Class.
See also: class, instance
object diagram
A diagram that encompasses objects and their relationships at a point in time. An Object diagram can
be considered as a special case of a Class diagram or Communication diagram.
See also: class diagram, communication diagram
object flow
A sub type of the State flow or transition. It implies the passing of an object instance between elements
at run-time.
object lifeline
A line in a Sequence diagram that represents the existence of an object over a period of time.
See also: sequence diagram
occurrence
A relationship that indicates that a Collaboration represents a classifier. An Occurrence connector is
drawn from the collaboration to the classifier.
operation
A service that can be requested from an object to effect behavior. An operation has a signature, which
could restrict the actual parameters that are possible.
12.15 P
package
1. A namespace, as well as an element that can be contained in other packages' namespaces.
Packages can own or merge with other packages, and their elements can be imported into a
package's namespace.
2. A logical container of model elements. It groups elements and can also contain other packages.
The OMG UML specification (UML Superstructure Specification, v2.1.1, p. 109) states:
A package is used to group elements, and provides a namespace for the grouped elements.
A package is a namespace for its members, and may contain other packages. Only packageable
elements can be owned members of a package. By virtue of being a namespace, a package can
import either individual members of other packages, or all the members of other packages.
In addition a package can be merged with other packages.
Note that packages own model elements and are the basis for configuration control, storage and
access control. Each element can be directly owned by a single package, so the package hierarchy is a
strict tree. However, packages can reference other packages, modeled by using one of the stereotypes
«import» and «access» of Permission dependency, so the usage network is a graph. Other kinds of
dependencies between packages usually imply that one or more dependencies among the elements
exist.
A package is represented by the common folder icon - a large rectangle with a small rectangle (a 'tab')
attached to the left side on top.
package diagram
Used to reflect the organization of packages and their elements, and provide a visualization of their
corresponding namespaces.
package import
A package import relationship is drawn from a source package to a package whose contents are
imported. Private members of a target package cannot be imported.
package merge
Indicates a relationship between two packages whereby the contents of the target package are merged
with those of the source package. Private contents of a target package are not merged.
parameter
The specification of a variable that can be changed, passed, or returned. A parameter can include a
name, type, and direction. Parameters are used for operations, messages and events.
Synonym: formal parameter
Contrast: argument, actual parameter
parameterized element
The descriptor for a Class with one or more unbound parameters.
Synonym: template, parameterized class
parent
In a generalization relationship, the generalization of another element, the child.
See also: subclass, subtype
Contrast: child
part
A run-time instance of a Class or Interface.
participate
The connection of a model element to a relationship or to a reified relationship. For example, a Class
participates in an Association, an Actor participates in a Use Case.
partition
1. activity graphs: A portion of an activity graph that organizes the responsibilities for actions.
See also: swim lane
2. architecture: A set of related classifiers or packages at the same level of abstraction or across layers
in a layered architecture. A partition represents a vertical slice through an architecture, whereas a
layer represents a horizontal slice.
Contrast: layer
pattern
A template collaboration.
See also: framework
persistent object
An object that exists after the process or thread that created it has ceased to exist.
physical system
1. The subject of a model.
2. A collection of connected physical units, which can include software, hardware and people, that are
organized to accomplish a specific purpose. A physical system can be described by one or more
models, possibly from different viewpoints.
See also: model (MOF)
Contrast: system
port
Defines the interaction between a classifier and its environment. Interfaces controlling this interaction
can be depicted using the 'Expose Interface' toolbox icon.
postcondition
A constraint that must be true at the completion of an operation.
precondition
A constraint that must be true when an operation is invoked.
primitive type
A pre-defined basic datatype without any substructure, such as an integer or a string.
process
1. A heavyweight unit of concurrency and execution in an operating system.
Contrast: thread, which includes heavyweight and lightweight processes. If necessary, an
implementation distinction can be made using stereotypes.
2. A software development process - the steps and guidelines by which to develop a system.
3. To execute an algorithm or otherwise handle something dynamically.
product
A physical piece of information that is produced by a business or development process. Examples of
products include models, source files, scripts, and binary executable files. An product can constitute the
implementation of a deployable component.
Synonym: artifact
Contrast: component
profile
A stereotyped package that contains model elements that have been customized for a specific domain
or purpose using extension mechanisms, such as stereotypes, tagged definitions and constraints. A
profile can also specify model libraries on which it depends and the metamodel subset that it extends.
Project Browser
The workspace window where the model contents are displayed in 'tree' format. Displays structures
such as packages, diagrams and model elements.
projection
A mapping from a set to its subset.
property
A named value denoting a characteristic of an element. A property has semantic impact. Certain
properties are predefined in the UML; others can be user defined.
See also: tagged value
pseudo-state
A vertex in a State Machine that has the form of a State, but doesn't behave as a State. Pseudo-states
include initial and history vertices.
12.16 Q
qualifier
An Association attribute or tuple of attributes whose values partition the set of objects related to an
object across an Association.
12.17 R
realize
A source object realizes the destination object. Realize is used to express traceability and
completeness in the model – a business process or requirement is realized by one or more Use Cases
which are in turn realized by some Classes which in turn are realized by a Component, and so on.
receive [a message]
The handling of a stimulus passed from a sender instance.
See also: sender, receiver
receive
An element used to define the acceptance or receipt of a request. Movement on to the next action
occurs until it has received what is defined.
receiver [object]
The object handling a stimulus passed from a sender object.
Contrast: sender
reception
A declaration that a classifier is prepared to react to the receipt of a signal.
recursion
A type of message used in Sequence diagrams to indicate a recursive function.
reference
1. A denotation of a model element.
2. A named slot within a classifier that facilitates navigation to other classifiers.
Synonym: pointer
region
UML 2.x supports both Expansion Regions and Interruptible Activity Regions. An Expansion Region
defines the bounds of a region consisting of one or more sets of input collections, where an input
collection is a set of elements of the same type. An Interruptible Activity Region contains Activity nodes
- when a token leaves an interruptible region, this terminates all of the region's tokens and behaviors.
refinement
A relationship that represents a fuller specification of something that has already been specified at a
certain level of detail. For example, a design Class is a refinement of an analysis Class.
relationship
A semantic connection among model elements. Examples of relationships include Associations and
Generalizations.
repository
A facility for storing object models, interfaces and implementations.
represents
A connector that indicates a Collaboration is used in a classifier. The connector is drawn from the
Collaboration to its owning classifier.
requirement
A required feature, property or behavior of a system (external requirement).
responsibility
A contract or obligation of a classifier (internal requirement).
reuse
The use of a pre-existing artifact.
reverse engineering
The process of importing source code into the model as standard UML model objects (such as Classes,
attributes and operations).
robustness diagram
Enterprise Architect supports business process modeling extensions from the UML business process
model profile. Robustness diagrams are used in ICONIX - you can read more about this at www.
sparxsystems.com/iconix/iconixsw.htm.
role
1. The named detail and rules associated with one end of an association. Can indicate name,
constraints, multiplicity and collection details.
2. The named specific behavior of an entity participating in a particular context. A role can be static
(such as an Association end) or dynamic (such as a Collaboration role).
role binding
The mapping between a Collaboration Occurrence's internal roles and the respective parts required to
implement a specific situation. The associated parts can have properties defined to enable the binding
to occur, and the collaboration to take place.
run time
The period of time during which a computer program executes.
See also: analysis time, compile time, design time
Contrast: modeling time
12.18 S
scenario
1. A specific sequence of actions that illustrates behaviors. A scenario can be used to illustrate an
interaction or the execution of a Use Case instance.
schema [MOF]
In the context of the MOF, analogous to a package that is a container of model elements. Schema
corresponds to a MOF package.
Contrast: metamodel, package
self-message
Reflects a new process or method invoked within the calling Lifeline's operation. It is a specification of a
message.
send [a message]
The passing of a stimulus from a sender instance to a receiver instance.
See also: sender, receiver
sender [object]
The object passing a stimulus to a receiver object.
Contrast: receiver
sequence diagram
A diagram that shows object interactions arranged in time sequence. In particular, it shows the objects
participating in the interaction and the sequence of messages exchanged. Unlike a Communication
(Collaboration) diagram, a Sequence diagram includes time sequences but does not include object
relationships. A Sequence diagram can exist in a generic form (describes all possible scenarios) and in
an instance form (describes one actual scenario). Sequence diagrams and Communication diagrams
express similar information, but show it in different ways.
See also: communication diagram, object lifeline
signal
The specification of an asynchronous stimulus communicated between instances. Signals can have
parameters.
signature
The name and parameters of a behavioral feature. A signature can include an optional returned
parameter.
single inheritance
A semantic variation of Generalization in which a type can have only one supertype.
Contrast: multiple inheritance
specification
A declarative description of what something is or does.
Contrast: implementation
state
A condition or situation during the life of an object during which it satisfies some condition, performs
state invariant
A condition applied to a Lifeline that must be fulfilled for the Lifeline to exist.
state machine
A behavior that specifies the sequences of States that an object or an interaction goes through during
its life in response to events, together with its responses and actions.
state chart
A diagram that shows a State Machine.
See also: state machine
Contrast: activity graph
state continuation
A symbol that serves two different purposes for Interaction diagrams - as State Invariants and as
Continuations. A State Invariant is a condition applied to a Lifeline that must be fulfilled for the Lifeline to
exist. A Continuation is used in seq and alt combined fragments to indicate the branches of continuation
that an operand follows.
state lifeline
A State Lifeline follows discrete transitions between States, which are defined along the y-axis of the
timeline. Any transition has optional attributes of timing constraints, duration constraints and
observations.
static classification
A semantic variation of Generalization in which an object can not change classifier.
See also: multiple classification
Contrast: dynamic classification
stereotype
A new type of modeling element that extends the semantics of the metamodel. Stereotypes must be
based on certain existing types or Classes in the metamodel. Stereotypes can extend the semantics,
but not the structure of pre-existing types and Classes. Certain stereotypes are predefined in the UML,
others can be user defined. Stereotypes are one of three extensibility mechanisms in UML.
See also: constraint, tagged value
stimulus
The passing of information from one instance to another, such as raising a signal or invoking an
operation. The receipt of a signal is normally considered an event.
See also: message
string
A sequence of text characters. The details of string representation depend on implementation, and can
include character sets that support international characters and graphics.
structural diagram
A diagram that depicts the structural elements composing a system or function. These diagrams can
reflect the static relationships of a structure, as do Class or Package diagrams, or run-time
architectures, such as Object or Composite Structure diagrams. Structural diagrams include Class
diagrams, Composite Structure diagrams, Component diagrams, Deployment diagrams, Object
diagrams and Package diagrams.
structural feature
A static feature of a model element, such as an attribute.
subactivity state
A State in an activity graph that represents the execution of a non-atomic sequence of steps that has
some duration.
subclass
In a Generalization relationship, the specialization of another Class; the superclass.
See also: generalization, child, parent
Contrast: superclass
submachine state
A State in a State Machine that is equivalent to a composite State but its contents are described by
another State Machine.
subpackage
A package that is contained in another package.
substate
A State that is part of a composite State.
See also: composite state, concurrent substate, disjoint substate
subsystem
A grouping of model elements that represents a behavioral unit in a physical system. A subsystem
offers interfaces and has operations. In addition, the model elements of a subsystem can be partitioned
into specification and realization elements.
See also: package, physical system
subtype
In a Generalization relationship, the specialization of another type; the supertype.
See also: generalization, child, parent
Contrast: supertype
superclass
In a Generalization relationship, the generalization of another Class; the subclass.
See also: generalization
Contrast: subclass
supertype
In a Generalization relationship, the generalization of another type; the subtype.
See also: generalization
Contrast: subtype
supplier
A classifier that provides services that can be invoked by others.
Contrast: client
swimlane
A partition on an Activity diagram for organizing the responsibilities for actions. Swimlanes typically
correspond to organizational units in a business model.
See also: partition
synch
A State used for indicating that concurrent paths of a State Machine are synchronized. After bringing
the paths to a synch state, the emerging transition indicates unison.
synchronize code
The process of importing and exporting code changes to ensure the model and source code match.
system
A top-level subsystem in a model.
Contrast: physical system
system boundary
An element used to delineate a particular part of the system.
12.19 T
table
A relational table (composed of columns).
tagged value
The explicit definition of a property as a name-value pair. In a Tagged Value, the name is referred to as
the tag. Certain tags are predefined in the UML; others can be user defined. Tagged Values are one of
three extensibility mechanisms in UML.
See also: constraint, property, stereotype
template
The descriptor for a Class with one or more unbound parameters.
Synonym: parameterized element, parameterized class
terminate
A pseudostate indicating that upon entry of its pseudostate, the State Machine's execution ends.
time event
An event that denotes the time elapsed since the current state was entered.
See also: event
time expression
An expression that resolves to an absolute or relative value of time.
timing diagram
A diagram that defines the behavior of different objects within a time-scale, with visual depictions of
those objects changing state and interacting over time.
toolbox
The main toolbar running down the center of Enterprise Architect, from which you can select model
elements to insert into diagrams. This is also known as the Toolbox and the Object toolbar.
top level
A stereotype of package denoting the top-most package in a containment hierarchy. The topLevel
stereotype defines the outer limit for looking up names, as namespaces 'see' outwards. For example,
opTopLevelsubsystem represents the top of the subsystem containment hierarchy.
trace
A dependency that indicates a historical or process relationship between two elements that represent
the same concept without specific rules for deriving one from the other.
transient object
An object that exists only during the execution of the process or thread that created it.
transition
A relationship between two States indicating that an object in the first State performs certain specified
actions and enters the second State when a specified event occurs and specified conditions are
satisfied. On such a change of State, the transition is said to fire.
See also: fire, object flow
type
A stereotyped Class that specifies a domain of objects together with the operations applicable to the
objects, without defining the physical implementation of those objects. A type can not contain any
methods, maintain its own thread of control, or be nested. However, it can have attributes and
associations. Although an object can have at most one implementation Class, it can conform to multiple
different types.
See also: implementation class
Contrast: interface
type expression
An expression that evaluates to a reference to one or more types.
12.20 U
UML
The Unified Modeling Language, a notation and specification for modeling software systems in an
Object-Oriented manner. You can read more about UML at the OMG home page or at our UML Tutorial.
UML diagrams
Diagrams used to model different aspects of the system under development. They include various
elements and connectors, all of which have their own meanings and purposes. UML 2.3 includes 14
diagrams: Use Case diagram, Activity diagram, State Machine diagram, Timing diagram, Sequence
diagram, Interaction Overview diagram, Communication diagram, Package diagram, Class diagram,
Object diagram, Composite Structure diagram, Component diagram and Deployment diagram.
UML toolbox
The main toolbar running down the center of Enterprise Architect from which you can select model
elements to insert into diagrams. This is also known as the Toolbox and the Object toolbar.
uninterpreted
A placeholder for a type or types whose implementation is not specified by the UML. Every
uninterpreted value has a corresponding string representation.
See also: any [CORBA]
usage
A dependency in which one element (the client) requires the presence of another element (the supplier)
for its correct functioning or implementation.
use
A connector that indicates that one element requires another to perform some interaction. The Usage
relationship does not specify how the target supplier is used, other than that the source client uses it in
definition or implementation.
utility
A stereotype that groups global variables and procedures in the form of a Class declaration. The utility
attributes and operations become global variables and global procedures, respectively. A utility is not a
fundamental modeling construct, but a programming convenience.
12.21 V
value
An element of a type domain.
value lifeline
A Lifeline that shows the Lifeline's state across the diagram, within parallel lines indicating a steady
state. A cross between the lines indicates a transition or change in state.
vertex
A source or a target for a transition in a State Machine. A vertex can be either a State or a pseudo-
state.
See also: state, pseudo-state
view
A projection of a model, which is seen from a given perspective or vantage point and omits entities that
are not relevant to this perspective.
view element
An element that is a textual and/or graphical projection of a collection of model elements.
Contrast: model element (MOF)
view projection
A projection of model elements onto view elements. A view projection provides a location and a style for
each view element.
visibility
An enumeration whose value (public, protected, package or private) denotes how the model element to
which it refers can be seen outside its enclosing namespace.
See also: export, import
Visual Basic
A rapid application development programming language. Windows' only scripting language based on
COM.
XIII
License Management | 1867
13 License Management
The License Management dialog in Enterprise Architect enables you to upgrade Enterprise Architect and to
register Add-Ins.
To access License Management from within Enterprise Architect, select the Help | Register and Manage
License Key(s) menu option. The License Management dialog displays, listing the currently-registered keys,
when the key expires (or, for shared keys 1870 , when they are to be reactivated in the keystore for issue to
another user) and the product each key applies to.
Option Use to
Add Key Display the Add Registration Key dialog, which enables you to:
· Add a new key to update to a higher version of Enterprise Architect or to register an Add-
In.
· Obtain a key from the Sparx Systems Key Store (available for version 4.51 and above).
For more information on adding keys see the Add License Key 1870 topic.
Remove Key (Private Key) Make the Add-In or current version of Enterprise Architect inoperable.
Release Key (Shared Key) Release the key to the keystore; however, the Keystore Manager is normally
configured to release keys automatically when the user logs off.
You can also run the following tasks from the License Management dialog:
· Register a Full License 22
· Upgrade an Existing License 1873
Notes:
· Some license keys can override and remove others. For example, the key for a more advanced edition of
Enterprise Architect replaces the key for a simpler edition, and the key for MDG Integration for Visual
Studio replaces the key for MDG Link for Visual Studio.
· Shared keys and Private keys have different formats and cannot be used interchangeably in the two
procedures below.
dialog displays.
2. Click on the Add Key button. The Add Registration Key dialog displays.
Note:
If any error messages are displayed while attempting to obtain a shared key, see Keystore Troubleshooting
1872 .
dialog displays.
2. Click on the Add Key button. The Add Registration Key dialog displays.
3. Click on the Get Shared Key tab.
4. In the Name and Company fields, type your user name and company name.
5. In the Shared key store field, click on the [ ... ] (Browse) button. The Shared Keystore Selection dialog
displays.
6. If your keystore is file-based, select the File Based Keystore radio button, click on the Browse button,
and locate and select the keystore file. Go to step 9.
7. If the keystore is network-based, click on the Sparx Keystore Server radio button and, in the Server
Address field, type the server address of the keystore.
8. If necessary, type in the password (advised by your administrator) and/or click on the Test button to
ensure that you have a connection to the keystore.
9. Click on the OK button to return to the Get Shared Key tab, which now shows the name of the keystore
in the Shared Keystore field.
10. In the Select a Product field, click on the appropriate product name.
11. Click on the OK button. The License Management dialog redisplays, indicating that the shared key is
registered for the selected product, until the key expiry date.
12. Click on the Close button.
Error reading Key Store file: All users who are to use the shared key facility require Read, Write and
(Access is denied) Modify access to the sskeys.dat file containing the shared keys. Please verify
that all required users have sufficient permissions to the file and try again.
If the problem continues, contact Sparx Support.
Tip:
Review the effective permissions calculated at the location of the key file for
the user account reporting the problem. You should closely examine the
permissions for both the Network Share and the File System. It is possible
that these permissions have been overwritten at some point.
Error reading Key Store file: As a security measure in the key store, the hard drive serial number is
(Key File has been moved) recorded when the file is created. The file then cannot be moved from the
original location in which it was created. If the key store has to be re-located
for any reason, the administrator should re-create the key store in the new
location using the original license keys.
This issue is commonly seen after a file server has undergone a hardware
upgrade in which the physical hard drives have been replaced. Problems
could also occur if the drive used is part of a RAID configuration.
This message could also appear where the key store exists on a Novell-
based file system. When creating the key store, the administrator is prompted
to confirm that the key store is to be located on a Novell Netware file server. If
the administrator clicks on the Yes button, the key store instead records the
logical path used to create it, and all users must connect to the key store
using this same path. The recorded path is case-sensitive and must be an
exact match.
Notes:
· The Lite 15 version and the Trial version cannot be registered or upgraded. If you have purchased
Enterprise Architect, you must download the registered version from www.sparxsystems.com/
securedownloads/easetupfull.exe before you can enter your registration key.
· This topic is mainly relevant to users with private keys. If you are an end-user with a shared key, you would
simply be allocated the relevant key next time you requested one. If, however, you need to upgrade while
using a shared key on a long lease, you would simply click on the Release Key 1874 button and then the
Add Key 1871 button.
Tip:
Once you have successfully completed an upgrade with a Private key, select the Help | About EA menu
option. Copy the registration key shown and store it somewhere safe; this is a key to the full license of the
edition you have upgraded to. If you ever have to reinstall Enterprise Architect, you can register it with this
key, so you won't have to go through the upgrade process again.
4. Click on the Add Key button or the Upgrade button to enter a new license key.
5. If you selected the Add key option, the Add Registration Key dialog displays. Enter the key you
received for the upgraded edition of Enterprise Architect, including the { and } bracket characters (use
copy and paste from an email to avoid typing mistakes).
6. If you selected the Upgrade option, the Upgrade Key dialog displays. Enter the key you received for the
upgraded edition of Enterprise Architect, including the { and } bracket characters (use copy and paste
from an email to avoid typing mistakes).
7. Click on the OK button. If the key is valid, Enterprise Architect modifies the Current Version field to
reflect the upgrade.
8. Close Enterprise Architect and restart to enable the unlocked features.
4. Click on the Add Key button; the Add Registration Key dialog displays
5. In the Name and Company fields, type your name and company name.
6. To avoid typing mistakes, copy the key you received for the upgraded edition of Enterprise Architect -
including the { and } bracket characters - from the email and paste the key into the Copy registration
key field.
7. Click on the OK button. Enterprise Architect displays a Registration succeeded – Thank you for
purchasing Enterprise Architect xxxx Edition message.
8. Click on the OK button, and then on the Close button to continue working in Enterprise Architect.
5. Click on the Add Key button. The Add Registration Key dialog displays.
6. Type in the key you received with the Add-In, including the { and } characters.
Note:
If you have purchased a floating licence (shared key) follow these steps 1871 .
the changes.
Operations 743
BPMN Browser
Core Toolbox Page 952 Element 510
Diagram 952 Build And Run Submenu
Disable 952 Package Context Menu, Project Browser 1217
Element Appearance, Change 956 Build Script
Elements 952 Create 1444
MDG Technology 952 Deploy Script, Create 1484
Migrate 1.0 Model To 1.1 957 Enable Diagnostic Messages, Sequence
Relationships 952 Diagram Recording Tab 1496
Types Toolbox Page 952 Enable Filter, Sequence Diagram Recording Tab
Update Version Via Toolbox Element 956 1493
Version Differences In Appearance 956 Filters 1493
Limit Auto Recording, Sequence Diagram
BPMN 1.1
Recording Tab 1496
Activity Types 974
Options, Sequence Diagram Recording Tab
BPEL Sequence Flow 980 1492
Elements Not Mappable to BPEL 961 Record Arguments To Function Calls, Sequence
End Event, Types 965 Diagram Recording Tab 1494
Gateway Types 972 Record Calls To Dynamic Modules, Sequence
Intermediate Event, Types 968 Diagram Recording Tab 1495
Pool 979 Record Calls To External Modules, Sequence
Start Event, Types 962 Diagram Recording Tab 1494
Sub-Process Types 974 Recursive 1446
Task Types 974 Run Script, Create 1482
Brace Matching Test Script, Create 1483
Code Editor, Common 1430 Wildcard in Filter 1493
Branching Macros Build Scripts
Code Template Syntax 1190 Introduction 1443
Breakpoint Build Systems Using UML
Delete 1468 Enterprise Architect 5
Difference From Recording Marker 1503 Built-In
Disable 1468 Diagram Types 1140
Enable 1468 Transformations 1388
Failure Message 1468 Business
Management 1468 Scenarios & Requirements 514
Set For Modifiable Data 1470 Business Analyst
Set In Code 1469 And Enterprise Architect 38
States 1468 Project Role 38
Storage 1469 Business and Software Engineering Edition
Breakpoints And Markers Window 1503 Of Enterprise Architect 12
Broadcast Event Business Domain Model
Add-In Model 1787 Create 938
EA_FileClose 1788 Business Interaction Diagram
EA_FileNew 1789 Description 739
EA_FileOpen 1788 Elements And Connectors 739
EA_OnPostCloseDiagram 1789 Example 739
EA_OnPostInitialized 1802 Business Model
EA_OnPostOpenDiagram 1789 Analysis 931
EA_OnPostTransform 1803 Business Modeling
EA_OnPreExitInstance 1798 Business Process Outline 933
EA_OnRetrieveModelTemplate 1820 Events 932
BroadcastSignal Action Example 930
Signal Tab 745 Goals 933
Insert InteractionUse
Attribute To Element, In-place Editor 592 Element 780
Bookmarked RTF Into Word 1639 Interface
Boundary Element 803 Element 821
Diagram Properties Note 440 Expose Element 820
Linked Elements 551 Provided 820
Maintenance Feature In Element 594 Required 820
Operation To Element, In-place Editor 592 Set For Element 526
Related Elements 551 Source Code Generation 1308
Testing Features In Element 595 Intermediary Language
Install MDA-Style Transforms 1415
Enterprise Architect 21 Intermediate Event, BPEL
Instance Create 968
Define Behavior On Creation, Supported Model 968
Attributes 1110 Types 968
Paste Object As 430 Internal Binding
Instantiated Template 813 PIM to PSM 1385
Integrated Development Environment 1424 Internal Editor
Integration Testing Language Properties 1337
Display Details 1540 Internal Requirement
Integrity Define 925
Of Model Data 344 Properties 925
Of Project Data 344 Internet Browser Applets
Integrity Check 344 Java, Debug 1454
Intellisense Internet Facilities
Code Editor, Common 1432 Hyperlink To 840
In Script Editor 1439 Internet Search Engine
Keystrokes, Script Editor 1439 Access Within Enterprise Architect 103
Interaction Define Default 351
Behavioral Aspects 581 Interrupt Flow
Diagram 690, 715, 717 Connector 867
Edit Parameters 581 Relationship 867
Element 779 Interruptible Activity Region
Elements and Connectors 410 Add 782
Group, Toolbox 410 Element 781
Parameter 581 Interval Bar
Parameters, Define 583 Context Menu 700
Interaction Diagram Timing Diagram Time Interval 700
Description 706 Introduction
Diagram 706 Copyright Notice 16
Elements And Connectors 706 Enterprise Architect Key Features 8
Example 706 Help File Formats 24
Generate Code From 1314, 1322 License Agreement 16
Interaction Occurrence Support 24
Behavior Call 581 To Code Engineering 1281
Element 780 To Enterprise Architect 3, 4
Interaction Operator To Enterprise Architect SDK 1092
Combined Fragment 762 To Forward Engineering 1281
Interaction Overview Diagram To Quick Linker 474, 1113
Description 717 To Reverse Engineering 1281
Elements And Connectors 717 To Round-trip Engineering 1281
Example 717 To Shape Scripts 1147
© 1998-2010 Sparx Systems Pty Ltd
1926 Index
Subversion Synch
Setting Up 247 Element 802
TortoiseSVN 252 Synchronization 184
UNIX-Based Client 249 Intial Code In Operations 576
Using With Enterprise Architect Under WINE Introduction 1281
Crossover 249 Macros, Code Template Syntax 1190
Version Control Options 247 Of Source Code And Model 1328
Version Control, Create Local Working Copy Synchronize
249 Batch With Code 69
Version Control, Create Repository Subtree By Dragging Element From Toolbox 910
248
Call Argument With Behavior Parameter 582
Windows-Based Client 249
Class With Code 69
Support
Code 1307
For Registered Users 24
Elements With Profile 910
For Trial Users 24
Existing Code Sections 1308
Supported Attribute
Invocation Argument With Behavior Parameter
By XML Element Node 914 582
Create Composite Elements 1111 Package With Source, (Project Menu Option)
Define Behavior On Creating Instance 1110 62
Define Child Diagram Types 1111 Replicas 186
In UML Profiles 914 Stereotypes From Profile 910
Metatype, In Profiles 1108 Tagged Values And Constraints 910
Of Stereotype Tags 1100 Tagged Values From MDG Toolbox Pages
Stereotype, In Profiles 1108 910
Supported Stereotype Attribute Tags 1100 Tagged Values From Resources Window 910
Supported Tags UML Profile Tagged Values And Constraints
In UML Profiles 912 910
Supress Syntax Check
Line Segments 615 For UML, Option 355
SwimlaneDef Syntax Grammar
Automation Interface, Diagram Package 1751 Shape Scripts 1151
Swimlanes Syntax Highlighting
Automation Interface, Diagram Package 1751, Code Editor Options 1338
1752 Code Editor, Common 1429
Manage 450 SysML
On Diagram 450 Activity Elements, Toolbox Page 996
Orientation 450 Activity Relationships, Toolbox Page 996
Swimlanes Matrix Block Definition Elements, Toolbox Page 992
Activate 444 Block Relationships, Toolbox Page 992
And Matrix Dialog, Matrix Tab 444 Concepts 989
Create Columns And Rows 444 Create Operational Domain Model 1007
Define Heading 444 Design Model 1009
Delete Items 444 Diagrams 989
Edit Items 444 Disable 989
Lock 444 Interaction Elements, Toolbox Page 998
Model Profile 444 Interaction Relationships, Toolbox Page 998
Size 444 Internal Block Diagram 1009
Switch Internal Block Elements, Toolbox Page 994
Diagram 396 Internal Block Relationships, Toolbox Page
RTF Generator 1607 994
Sybase Adaptive Server Anywhere MDG Technology 989
ODBC Driver, Set Up 141 MDG Technology For, Enterprise Architect
Upsize To 170 1073
Enterprise Architect User Guide
Index 1969
-Z-
Z Order
Elements 437
Zachman
Profile 444
Zachman Framework
MDG Technology For, Enterprise Architect
1073
Zoom
© 1998-2010 Sparx Systems Pty Ltd
1986